Thread (54 messages) 54 messages, 6 authors, 2013-01-11

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

From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-12-27 00:10:39
Also in: linux-pci, lkml

On Wed, Dec 26, 2012 at 2:36 PM, Rafael J. Wysocki [off-list ref] wrote:
On Wednesday, December 26, 2012 12:41:05 PM Yinghai Lu wrote:
quoted
On Wed, Dec 26, 2012 at 12:16 PM, Yinghai Lu [off-list ref] wrote:
quoted
On Wed, Dec 26, 2012 at 12:10 PM, Bjorn Helgaas [off-list ref] wrote:
quoted
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 [off-list ref]
| 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help