lkml.org 
[lkml]   [2008]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 02/42] PCI: fix reference leak in pci_get_dev_by_id()
    2.6.26-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Greg Kroah-Hartman <gregkh@suse.de>

    commit ebca4f1bce1eb7b91a63c515db66316db9391221 upstream

    Alex Chiang and Matthew Wilcox pointed out that pci_get_dev_by_id() does
    not properly decrement the reference on the from pointer if it is
    present, like the documentation for the function states it will.

    It fixes a pretty bad leak in the hotplug core (we were leaking an
    entire struct pci_dev for each function of each offlined card, the first
    time around; subsequent onlines/offlines were ok).

    Cc: Matthew Wilcox <matthew@wil.cx>
    Tested-by: Alex Chiang <achiang@hp.com>
    Acked-by: Alex Chiang <achiang@hp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

    ---
    drivers/pci/search.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/drivers/pci/search.c
    +++ b/drivers/pci/search.c
    @@ -280,6 +280,8 @@ static struct pci_dev *pci_get_dev_by_id
    match_pci_dev_by_id);
    if (dev)
    pdev = to_pci_dev(dev);
    + if (from)
    + pci_dev_put(from);
    return pdev;
    }

    --


    \
     
     \ /
      Last update: 2008-09-03 19:35    [W:0.020 / U:33.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site