Re: [PATCH] 2.5.45-ac1 CardBus compile Fix

Russell King (rmk@arm.linux.org.uk)
Thu, 7 Nov 2002 15:54:04 +0000


On Fri, Nov 08, 2002 at 12:41:20AM +0900, Osamu Tomita wrote:
> I couldn't compile cistpl.c, that call obsolete function.
>
> Here is trivial patch. This works fine for me.
>
> Regards,
> Osamu Tomita
> --- linux-2.5.45-ac1/drivers/pcmcia/cistpl.c.orig Thu Oct 31 09:42:24 2002
> +++ linux-2.5.45-ac1/drivers/pcmcia/cistpl.c Thu Nov 7 01:03:55 2002
> @@ -429,7 +429,7 @@
> #ifdef CONFIG_CARDBUS
> if (s->state & SOCKET_CARDBUS) {
> u_int ptr;
> - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr);
> + pci_bus_read_config_dword(s->cap.cb_dev->bus, 0, 0x28, &ptr);
> tuple->CISOffset = ptr & ~7;
> SPACE(tuple->Flags) = (ptr & 7);
> } else

I think dev->bus the bus number for the bus that the Cardbus controller
is connected to? If so, this change is wrong.

bus:device.function = 0:0.0
+--------+
| host |
| bridge >--------+------------------ dev->bus
+--------+ |
|
+----v----+ dev
| Cardbus |
| Bridge |
+---------+
|
| bus number = dev->subordinate->number
|
|
+----v----+ bus = dev->subordinate->number
| Cardbus | device = 0
| card |
+---------+

The device we want to read the CIS offset from is the cardbus card.
In the above case, your change means we'll try to read the CIS offset
from the host bridge, which is obviously wrong.

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/