Re: [Alternative][PATCH] ACPI / PCI: Set root bridge ACPI handle in advance

From: Yinghai Lu
Date: Wed Dec 26 2012 - 19:11:21 EST


On Wed, Dec 26, 2012 at 2:36 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> On Wednesday, December 26, 2012 12:41:05 PM Yinghai Lu wrote:
>> On Wed, Dec 26, 2012 at 12:16 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
>> > On Wed, Dec 26, 2012 at 12:10 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:
>> >> Do you have a reference for this? I think this might have been true
>> >> in the past, but I don't think it's true for any version of gcc we
>> >> support for building Linux.
>> >
>> > http://lkml.indiana.edu/hypermail/linux/kernel/0804.3/3600.html
>>
>> the problem is already addressed by:
>>
>> | commit f9d14250071eda9972e4c9cea745a11185952114
>> | Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>> | Date: Fri Jan 2 09:29:43 2009 -0800
>> |
>> | Disallow gcc versions 4.1.{0,1}
>> |
>> | These compiler versions are known to miscompile __weak functions and
>> | thus generate kernels that don't necessarily work correctly. If a weak
>> | function is int he same compilation unit as a caller, gcc may end up
>> | inlining it, and thus binding the weak function too early.
>> |
>> | See
>> |
>> | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27781
>> |
>> | for details.
>>
>> so it is ok to put the __weak in the same file now.
>
> Cool, thanks for checking and for the ACK!

wait, we have some problem on systems that root bus is not exported via DSDT ...

one of my nehalem system that have uncore cpu devices are not exported via ACPI.

also there will be problem that system is booting with acpi=off.


+int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
+{
+ struct pci_sysdata *sd = bridge->bus->sysdata;
+ struct pci_root_info *info = container_of(sd, struct pci_root_info, sd);
+
+ ACPI_HANDLE_SET(&bridge->dev, info->bridge->handle);
+ return 0;
+}

will get wrong info...via sd... as their sd is standalone

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/