Hi list,

each time I start up my laptop (Debian testing, Linux 3.0 as provided in the 
repositories), the following error (warning?) appears:

[    5.083819] shpchp 0000:00:01.0: Cannot reserve MMIO region

The system is working fine as far as I can tell. I observed that message for 
quite a while already, even back when I still used Kubuntu with the kernel 
version 2.6.38, then with 2.6.39 on Debian testing, and now with 3.0.

I reported this downstream at http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=638863 where you can also find the full dmesg and lspci 
output, the loaded kernel modules, and so on. Jonathan replied with a quick 
analysis and saying that I should report this upstream on this list. Here's 
what he wrote:

> The relevant code is in drivers/pci/hotplug/shpchp_hpc.c:
> 
>       if (!request_mem_region(ctrl->mmio_base, ctrl->mmio_size, MY_NAME)) {
>               ctrl_err(ctrl, "Cannot reserve MMIO region\n");
>               rc = -1;
>               goto abort;
>       }
> 
> This comes after a message like
> 
>       shpchp 0000:00:01.0: HPC vendor_id 1022 device_id 9602 ss_vid 1022 
> ss_did
> 9602
> 
> which means that a hotplug controller was detected.  Looking at "lspci -nn"
> output, I can see that this device is
> 
>       00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI
> bridge (int gfx)
> 
> So the problem would seem to be that Linux thinks this PCI-PCI bridge
> supports the standard hotplug controller interface (because it assumes
> _anything_ with AMD's vendor id does), when it doesn't.
> 
>       static int is_shpc_capable(struct pci_dev *dev)
>       {
>               if ((dev->vendor == PCI_VENDOR_ID_AMD) || (dev->device ==
>                                                       
> PCI_DEVICE_ID_AMD_GOLAM_7450))
>                       return 1;
>               if (!pci_find_capability(dev, PCI_CAP_ID_SHPC))
>                       return 0;
>               if (get_hp_hw_control_from_firmware(dev))
>                       return 0;
>               return 1;
>       }
> 
> The test has been that way ever since v2.6.15-rc1~731^2~22^2~13
> (shpchp: detect SHPC capability before doing a lot of work,
> 2006-10-13).  The false positive (if it actually is a false positive)
> is clearly harmless.  If someone wants to remove the "if (dev->vendor
> == PCI_VENDOR_ID_AMD)" exception, it would be necessary to research
> why it is there in the first place (are there AMD hotplug controllers
> that do not advertise the shpc capability for which that exception is
> needed?) and if so, what a more precise exception to solve the same
> problem would be.

Kind regards,
Ralf

(I am not subscribed to linux-pci, so please CC me in replies)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201108231433.08257.ralfjun...@gmx.de

Reply via email to