[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061113141400.12ff22be@localhost.localdomain>
Date: Mon, 13 Nov 2006 14:14:00 +0000
From: Alan <alan@...rguk.ukuu.org.uk>
To: Remi <remi.colinet@...e.fr>, linux-kernel@...r.kernel.org
Subject: Re: 2.6.19-rc5-mm1 : probe of 0000:00:1f.2 failed with error -16
On Mon, 13 Nov 2006 14:44:37 +0100
Remi <remi.colinet@...e.fr> wrote:
> => Step 1 : with the patch applied, the resource of the pci device
> dev->resource[x] are initialized to claim legacy I/O ports from 0x01f0 up to
> 0x01f7 with the flag IORESOURCE_IO (drivers/pci/probe.c).
This is correct behaviour. The resource addresses are implied resources.
> => Step 2 : then, these resources are allocated from the I/O port resources, by
> pcibios_allocate_resources (arch/i386/pci/i386.c).
That is correct, the implied resources end up in the tree as they should
so we now have a correct map of the PCI resources
> which requests the same resources but with the IORESOURCE_BUSY flag. I/O ports
> resources are then :
>
> 01f0-01f7 : 0000:00:1f.2
> 01f0-01f7 : libata
This is an ugly hack that is done by the libata code to deal with old v
new IDE handling. All is still correct however
>
> => Step 4 : then the libata tries to allocate once more the same ressources and
> fails.
>
> [<f00e3eed>] ata_pci_init_one+0xad/0x423 [libata]
> [<f001f9c1>] piix_init_one+0x4b7/0x4d4 [ata_piix]
ata_pci_init_one should have followed the legacy_mode path at this point,
and the legacy mode path should not be trying to request the legacy
regions the quirk code already reserved.
I suspect the code should only do the pci_request_regions() call if the
device on if (!legacy_mode), and the legacy code should
pci_request_region(pdev, 4, ...);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists