• Jarkko Lavinen's avatar
    i82875p_edac: fix overflow device resource setup · 307d1144
    Jarkko Lavinen authored
    When I do "modprobe i82875p_edac" on my Asus P4C800 MB on kernels 2.6.26
    or later, the module load fails due to BAR 0 collision.  On 2.6.25 the
    module loads just fine.
    
    The overflow device on the MB seems to be hidden and its resources are not
    allocated at normal PCI bus init.  Log shows the missing resource problem:
    
      EDAC DEBUG: i82875p_probe1()
      PCI: 0000:00:06.0 reg 10 32bit mmio: [fecf0000, fecf0fff]
      pci 0000:00:06.0: device not available because of BAR 0
    [0xfecf0000-0xfecf0fff] collisions
      EDAC i82875p: i82875p_setup_overfl_dev(): Failed to enable overflow
    device
    
    The patch below fixes this by calling pci_bus_assign_resources() after
    the overflow device is revealed and added to the bus. With this patch
    I am again able to load and use the module.
    Signed-off-by: default avatarJarkko Lavinen <jlavi@iki.fi>
    Cc: Doug Thompson <norsk5@yahoo.com>
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    307d1144
i82875p_edac.c 14.5 KB