firmware: Fix unaligned memory accesses in dmi-sysfs
authorMike Waychison <mikew@google.com>
Fri, 25 Feb 2011 23:41:49 +0000 (15:41 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 26 Feb 2011 00:10:03 +0000 (16:10 -0800)
commit66245ad025e02fe9e727c03d43308bb24e346bb6
tree9597235bf126cde0d4d5e0a6d51a58bcbe8d15ca
parent9effd8221fc109e5d33e417e3eaaf8e475003e2d
firmware: Fix unaligned memory accesses in dmi-sysfs

DMI entries are arranged in memory back to back with no alignment
guarantees. This means that the struct dmi_header passed to callbacks
from dmi_walk() itself isn't byte aligned.  This causes problems on
architectures that expect aligned data, such as IA64.

The dmi-sysfs patchset introduced structure member accesses through this
passed in dmi_header.  Fix this by memcpy()ing the structures to
temporary locations on stack when inspecting/copying them.

Signed-off-by: Mike Waychison <mikew@google.com>
Tested-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/firmware/dmi-sysfs.c