On Wed, Feb 23, 2011 at 01:29:46PM -0800, Tony Luck wrote:
On Wed, Feb 23, 2011 at 12:28 PM, Mike Waychison [off-list ref] wrote:
quoted
Ya, I don't think there is anything that guarantees that dmi_header is
aligned. The access is probably the struct copy I did here:
/* Set the key */
entry->dh = *dh;
Yup - looking back at the assembly I see that one of the 2-byte
accesses is offset 2
(picking up ->handle), but the second is offset 0 (picking up ->type
and ->length). The
compiler assumed the structure was 2-byte aligned because of ->handle.
quoted
What if we changed that guy to use memcpy? We'd probably need to
memcpy the dmi_system_event_log as well. Patch attached (applies on
top of the entire patchset).
With the patch, all the unaligned accesses go away.
Tested-by: Tony Luck <redacted>
Great!
Mike, care to resend this last patch as a 6/5 patch with a proper
subject, changelog comment, and signed-off-by: section so that I can
queue it up?
thanks,
greg k-h