lkml.org 
[lkml]   [2009]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [git pull] PCI changes for 2.6.30
    Hi Linus,

    * Jesse Barnes <jbarnes@virtuousgeek.org>:
    > On Wed, 1 Apr 2009 10:01:12 -0700 (PDT)
    > Linus Torvalds <torvalds@linux-foundation.org> wrote:
    > > On Tue, 31 Mar 2009, Jesse Barnes wrote:
    > > >
    > > > Please consider pulling my PCI tree from
    > > > git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
    > > > linux-next
    > >
    > > This produces
    > >
    > > WARNING: drivers/built-in.o(.text+0x69a1): Section mismatch in
    > > reference from the function dev_rescan_store() to the
    > > function .devinit.text:pci_rescan_bus() The function
    > > dev_rescan_store() references the function __devinit
    > > pci_rescan_bus(). This is often because dev_rescan_store lacks a
    > > __devinit annotation or the annotation of pci_rescan_bus is wrong.
    > >
    > > Hmm?
    >
    > Arg how did I miss that? Maybe the last build I did was missing
    > hotplug support or something... Anyway looking now (at first glance I
    > think pci_rescan_bus needs to drop __devinit).

    This patch eliminates the warning in what I think is the correct
    manner.

    Thanks.

    /ac

    From: Alex Chiang <achiang@hp.com>

    PCI: annotate pci_rescan_bus as __ref, not __devinit

    pci_rescan_bus was annotated as __devinit, which is wrong,
    because it will never be part of device initialization.
    Howevever, we can't simply drop the annotation, because then we
    get section warnings about calling pci_scan_child_bus (which is
    correctly marked as __devinit).

    pci_rescan_bus will only get built when CONFIG_HOTPLUG is set,
    meaning that __devinit is a nop, so we know that pci_scan_child_bus
    has not been freed.

    Annotate as __ref to silence modpost.

    Signed-off-by: Alex Chiang <achiang@hp.com>
    ---
    diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
    index e2f3dd0..8eb50df 100644
    --- a/drivers/pci/probe.c
    +++ b/drivers/pci/probe.c
    @@ -1220,7 +1220,7 @@ EXPORT_SYMBOL(pci_scan_bus_parented);
    *
    * Returns the max number of subordinate bus discovered.
    */
    -unsigned int __devinit pci_rescan_bus(struct pci_bus *bus)
    +unsigned int __ref pci_rescan_bus(struct pci_bus *bus)
    {
    unsigned int max;
    struct pci_dev *dev;

    \
     
     \ /
      Last update: 2009-04-02 02:27    [W:0.026 / U:64.708 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site