Messages in this thread | | | From | Mike Waychison <> | Date | Wed, 23 Feb 2011 12:28:46 -0800 | Subject | Re: [PATCH v2 2/5] firmware: Basic dmi-sysfs support |
| |
On Wed, Feb 23, 2011 at 11:43 AM, Tony Luck <tony.luck@intel.com> wrote: > On Tue, Feb 22, 2011 at 5:53 PM, Mike Waychison <mikew@google.com> wrote: >> +static void __init dmi_sysfs_register_handle(const struct dmi_header *dh, >> + void *_ret) >> +{ > > I'm seeing some unaligned references from this function > on ia64. Code is loading a 2-byte value from an odd > address. We are dereferencing "dh", so looking at the > dmi_header definition, I'd have thought that we must > be touching dh->handle: > > struct dmi_header { > u8 type; > u8 length; > u16 handle; > }; > > I don't see any code in this function that does this, > so I assume there is some inlining or macro stuff > happening.
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;
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). [unhandled content-type:application/octet-stream] | |