I'm wondering if the resource structures are being inadvertently packed.

You might try removing this code from actypes.h:

/*
 * If possible, pack the following structures to byte alignment
 */
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
#pragma pack(1)
#endif

Please send the dsdt or acpidump for this machine
Thanks,
Bob



> -----Original Message-----
> From: Moore, Robert
> Sent: Thursday, February 02, 2006 2:29 PM
> To: Luck, Tony; [email protected]
> Cc: [email protected]
> Subject: RE: some new unaligned access while booting ia64 (HP rx2620)
> 
> The ACPICA resource manager was mostly rewritten around the 20051021
time
> frame, and we may have disturbed some of the aligned access support.
I'll
> look at these, it looks like enough info to fix them.
> 
> Thanks,
> Bob
> 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:linux-acpi-
> > [EMAIL PROTECTED] On Behalf Of Luck, Tony
> > Sent: Thursday, February 02, 2006 11:46 AM
> > To: [email protected]
> > Cc: [email protected]
> > Subject: some new unaligned access while booting ia64 (HP rx2620)
> >
> > Booting a snapshot of Linus' tree this morning I saw a few (new?)
> > kernel unaligned access warnings:
> >
> > ACPI: Subsystem revision 20060127
> > ACPI: Interpreter enabled
> > ACPI: Using IOSAPIC for interrupt routing
> > ACPI: PCI Root Bridge [PCI0] (0000:00)
> > kernel unaligned access to 0xe00000407ec5a204, ip=0xa0000001003af8c0
> > kernel unaligned access to 0xe00000407ec5a23c, ip=0xa0000001003af8c0
> > kernel unaligned access to 0xe00000407ec5a28c, ip=0xa0000001003af8c0
> > kernel unaligned access to 0xe00000407ec5a1fc, ip=0xa0000001003ae6c1
> > kernel unaligned access to 0xe00000407ec5a204, ip=0xa0000001003ae6d1
> > ACPI: PCI Interrupt Routing Table [\_SB_.SBA0.PCI0._PRT]
> > ACPI: PCI Root Bridge [PCI1] (0000:20)
> >
> > The first three at ip=0xa0000001003af8c0 are in
> > acpi_rs_get_resource_source()
> > while zeroing a 64-bit value:
> > a0000001003af8c0:       dc 00 00 46 98 11       [MFB] (p06) st8
[r35]=r0
> >
> > Which looks from the assembly code like we are doing a:
> >    resource_source->string_ptr = 0;
> > but I don't see anything quite like that in the C source (but
> > there may be macros & inlining happening).
> >
> > The other two, ip=0xa0000001003ae6c1 and ip=0xa0000001003ae6d1 are
in
> > acpi_resource_to_address64() close together in this little
> > block:
> >
> > a0000001003ae6c6:       50 02 58 30 20 00                   ld8
> r37=[r22]
> > a0000001003ae6cc:       00 00 00 20                         nop.b
0x0;;
> > a0000001003ae6d0:       19 00 94 1e 98 11       [MMB]       st8
> [r15]=r37
> > a0000001003ae6d6:       70 02 40 30 20 00                   ld8
> r39=[r16]
> >
> > These loads are dereferencing the acpi_resource structure that was
> passed
> > as the first argument (offsets 40 and 48 bytes).
> >
> > -Tony
> > -
> > To unsubscribe from this list: send the line "unsubscribe
linux-acpi" in
> > the body of a message to [EMAIL PROTECTED]
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to