[WATCHDOG] Fix declaration of struct smbios_entry_point in hpwdt
authorRoland Dreier <rdreier@cisco.com>
Thu, 28 Feb 2008 17:38:44 +0000 (09:38 -0800)
committerWim Van Sebroeck <wim@iguana.be>
Thu, 6 Mar 2008 11:10:35 +0000 (11:10 +0000)
On my HP DL380 G5 system running a 64-bit kernel, loading the hpwdt
driver causes a crash because the driver attempts to ioremap an
invalid physical address.  This is because the driver has an incorrect
definition of the SMBIOS table entry point structure: the table
address is only a 32-bit quantity, and making it a u64 means that the
high-order 32 bits end up containing garbage.

Correcting the structure definition fixes the driver so that it loads
without any problems on my system.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/watchdog/hpwdt.c

index a2e174b09fe7bcc91af2fcd7871e35fd6a3fa3f2..cd1cc2dacee755f9cce1357d3a70fa71821c0fbd 100644 (file)
@@ -88,7 +88,7 @@ struct smbios_entry_point {
        u8 intermediate_anchor[5];
        u8 intermediate_checksum;
        u16 table_length;
-       u64 table_address;
+       u32 table_address;
        u16 table_num_structs;
        u8 bcd_revision;
 };