Re: Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4dfdb8c0591f545ba749dd

Linus Torvalds
2008-09-01T17:54:45Z

On Sun, 31 Aug 2008, Yinghai Lu wrote:
>
> how about
>
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index cce2f4c..3b5269a 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -240,6 +240,11 @@ static int __pci_read_base(struct pci_dev *dev,
> enum pci_bar_type type,
> pci_read_config_dword(dev, pos, &l);
> pci_write_config_dword(dev, pos, mask);
> pci_read_config_dword(dev, pos, &sz);
> +
> + /* sticky and non changable */
> + if (sz == l)
> + goto fail;

No, because a resource really _can_ be at the end. It's perfectly ok to
have something like a memory resource at 0xff000000-0xffffffff, and then
the BAR register would always read 0xff000000 (or 0x...4 for a 64-bit
resource).

So calling that a failure case would be wrong.

Linus