From: Andrew Morton - coding style cleanups - Remove many unneeded casts of void* - Seems strange that tpm_binary_bios_measurements_show() returns -EFAULT on kmalloc() failure. Switch it to -ENOMEM. - Ditto in read_log() - What's up with the global tcg_eventlog? Is there some reason why all this code will never run concurrently with itself? Signed-off-by: Seiji Munetoh Signed-off-by: Stefan Berger Signed-off-by: Reiner Sailer Signed-off-by: Kylene Hall Signed-off-by: Andrew Morton --- drivers/char/tpm/tpm.h | 8 ++++---- drivers/char/tpm/tpm_bios.c | 41 +++++++++++++++++++++-------------------- 2 files changed, 25 insertions(+), 24 deletions(-) diff -puN drivers/char/tpm/tpm_bios.c~tpm-add-bios-measurement-log-tidy drivers/char/tpm/tpm_bios.c --- devel/drivers/char/tpm/tpm_bios.c~tpm-add-bios-measurement-log-tidy 2005-11-26 18:42:11.000000000 -0800 +++ devel-akpm/drivers/char/tpm/tpm_bios.c 2005-11-26 18:42:11.000000000 -0800 @@ -25,8 +25,8 @@ #include "tpm.h" #define TCG_EVENT_NAME_LEN_MAX 255 -#define MAX_TEXT_EVENT 1000 /* Max event string length */ -#define ACPI_TCPA_SIG "TCPA" /* 0x41504354 /'TCPA' */ +#define MAX_TEXT_EVENT 1000 /* Max event string length */ +#define ACPI_TCPA_SIG "TCPA" /* 0x41504354 /'TCPA' */ struct acpi_tcpa { struct acpi_table_header hdr; @@ -113,8 +113,7 @@ static const char* tcpa_pc_event_id_stri "Option ROM microcode", "S-CRTM Version", "S-CRTM Contents", - "S-CRTM POST Contents" - + "S-CRTM POST Contents", }; /* (Binary) bios measurement buffer */ @@ -122,7 +121,7 @@ static void *tcg_eventlog; static void *tcg_eventlog_addr_limit; /* MAX */ /* returns pointer to start of pos. entry of tcg log */ -static void *tpm_bios_measurements_start(struct seq_file *m, loff_t * pos) +static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos) { loff_t i; void *addr = tcg_eventlog; @@ -130,7 +129,7 @@ static void *tpm_bios_measurements_start /* read over *pos measurements */ for (i = 0; i < *pos; i++) { - event = (struct tcpa_event *) addr; + event = addr; if ((addr + sizeof(struct tcpa_event)) < tcg_eventlog_addr_limit) { @@ -145,7 +144,7 @@ static void *tpm_bios_measurements_start if ((addr + sizeof(struct tcpa_event)) >= tcg_eventlog_addr_limit) return NULL; - event = (struct tcpa_event *) addr; + event = addr; if ((event->event_type == 0 && event->event_size == 0) || ((addr + sizeof(struct tcpa_event) + event->event_size) >= @@ -156,9 +155,9 @@ static void *tpm_bios_measurements_start } static void *tpm_bios_measurements_next(struct seq_file *m, void *v, - loff_t * pos) + loff_t *pos) { - struct tcpa_event *event = (struct tcpa_event *) v; + struct tcpa_event *event = v; v += sizeof(struct tcpa_event) + event->event_size; @@ -166,7 +165,7 @@ static void *tpm_bios_measurements_next( if ((v + sizeof(struct tcpa_event)) >= tcg_eventlog_addr_limit) return NULL; - event = (struct tcpa_event *) v; + event = v; if (event->event_type == 0 && event->event_size == 0) return NULL; @@ -184,7 +183,8 @@ static void tpm_bios_measurements_stop(s { } -static int get_event_name(char* dest, struct tcpa_event *event, unsigned char* event_entry ) +static int get_event_name(char *dest, struct tcpa_event *event, + unsigned char * event_entry) { const char *name = ""; char data[40] = ""; @@ -242,7 +242,8 @@ static int get_event_name(char* dest, st name = tcpa_pc_event_id_strings[event_id]; n_len = strlen(name); for (i = 0; i < 20; i++) - d_len += sprintf(data, "%02x", event_entry[8 + i]); + d_len += sprintf(data, "%02x", + event_entry[8 + i]); break; default: break; @@ -251,7 +252,8 @@ static int get_event_name(char* dest, st break; } - return snprintf( dest, MAX_TEXT_EVENT, "[%.*s%.*s]", n_len, name, d_len, data ); + return snprintf(dest, MAX_TEXT_EVENT, "[%.*s%.*s]", + n_len, name, d_len, data); } @@ -270,7 +272,7 @@ static int tpm_binary_bios_measurements_ if (!eventname) { printk(KERN_ERR "%s: ERROR - No Memory for event name\n ", __func__); - return -EFAULT; + return -ENOMEM; } /* 1st: PCR used is in little-endian format (4 bytes) */ @@ -321,8 +323,7 @@ static int tpm_ascii_bios_measurements_s int len = 0; int i; char *eventname; - - struct tcpa_event *event = (struct tcpa_event *) v; + struct tcpa_event *event = v; unsigned char *event_entry = (unsigned char *) (v + sizeof(struct tcpa_event)); @@ -354,14 +355,14 @@ static struct seq_operations tpm_ascii_b .start = tpm_bios_measurements_start, .next = tpm_bios_measurements_next, .stop = tpm_bios_measurements_stop, - .show = tpm_ascii_bios_measurements_show + .show = tpm_ascii_bios_measurements_show, }; static struct seq_operations tpm_binary_b_measurments_seqops = { .start = tpm_bios_measurements_start, .next = tpm_bios_measurements_next, .stop = tpm_bios_measurements_stop, - .show = tpm_binary_bios_measurements_show + .show = tpm_binary_bios_measurements_show, }; /* read binary bios log */ @@ -402,14 +403,14 @@ static int read_log(void) printk ("%s: ERROR - Not enough Memory for BIOS measurements\n", __func__); - return -EFAULT; + return -ENOMEM; } tcg_eventlog_addr_limit = tcg_eventlog + buff->log_max_len; acpi_os_map_memory(buff->log_start_addr, buff->log_max_len, &virt); - memcpy((void *) tcg_eventlog, virt, buff->log_max_len); + memcpy(tcg_eventlog, virt, buff->log_max_len); acpi_os_unmap_memory(virt, buff->log_max_len); return 0; diff -puN drivers/char/tpm/tpm.h~tpm-add-bios-measurement-log-tidy drivers/char/tpm/tpm.h --- devel/drivers/char/tpm/tpm.h~tpm-add-bios-measurement-log-tidy 2005-11-26 18:42:11.000000000 -0800 +++ devel-akpm/drivers/char/tpm/tpm.h 2005-11-26 18:42:11.000000000 -0800 @@ -111,14 +111,14 @@ extern int tpm_pm_suspend(struct device extern int tpm_pm_resume(struct device *); #ifdef CONFIG_ACPI -extern struct dentry** tpm_bios_log_setup(char*); -extern void tpm_bios_log_teardown(struct dentry**); +extern struct dentry ** tpm_bios_log_setup(char *); +extern void tpm_bios_log_teardown(struct dentry **); #else -static inline struct dentry* tpm_bios_log_setup(char* name) +static inline struct dentry* tpm_bios_log_setup(char *name) { return NULL; } -static inline void tpm_bios_log_teardown(struct dentry** dir) +static inline void tpm_bios_log_teardown(struct dentry **dir) { } #endif _