• Linus Torvalds's avatar
    Make pci_claim_resource() use request_resource() rather than insert_resource() · 79896cf4
    Linus Torvalds authored
    This function has traditionally used "insert_resource()", because before
    commit cebd78a8 ("Fix pci_claim_resource") it used to just insert the
    resource into whatever root resource tree that was indicated by
    "pcibios_select_root()".
    
    So there Matthew fixed it to actually look up the proper parent
    resource, which means that now it's actively wrong to then traverse the
    resource tree any more: we already know exactly where the new resource
    should go.
    
    And when we then did commit a76117df ("x86: Use pci_claim_resource"),
    which changed the x86 PCI code from the open-coded
    
    	pr = pci_find_parent_resource(dev, r);
    	if (!pr || request_resource(pr, r) < 0) {
    
    to using
    
    	if (pci_claim_resource(dev, idx) < 0) {
    
    that "insert_resource()" now suddenly became a problem, and causes a
    regression covered by
    
    	http://bugzilla.kernel.org/show_bug.cgi?id=13891
    
    which this fixes.
    Reported-and-tested-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Cc: Andrew Patterson <andrew.patterson@hp.com>
    Cc: Linux PCI <linux-pci@vger.kernel.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    79896cf4
setup-res.c 7.71 KB