Re: Badness in pci_find_subsys

From: Tobias Oed
Date: Mon Feb 23 2004 - 11:53:25 EST


Date: Mon, 23 Feb 2004 11:51:45 -0500
Mime-Version: 1.0
Content-Type: text/plain; format=flowed

Please cc me as I'm not subscribed to the list.

Robin Rosenberg wrote:

>Tracing the stack, I see:
>
>pci_find_subsys is deprecated which is called from
>pci_find_device which is deprecated which is called from
>pci_find_slot, which is NOT deprecated.
>

I noticed that a while ago and modified the nvidia kernel interface
(os-interface.c): I save a reference to struct pci_dev and return that when
called in interrupt context [*]. Unfortunately it doesn't fix the problem:
the badness goes away as expected but X is still frozen.
>From what I understand it's an agp related problem (specially on via
chipset). The driver is hopelessly confused and tries to reinit itself and
the card. Limiting my agp rate to x2in the bios makes things stable. With
that even gaim runs stable. (gaim triggers the problem systematically when
displaying the buddy list if I use agp x4).
btw I'm running 4620 as all later releases of the driver have terrible
performance with my tnt2.

[*]
Do I need to hold the pci_bus_lock spinlock for the following (checks for
NULL omitted here)
dev = pci_find_slot(bus, PCI_DEVFN(slot, function));
dev = pci_dev_get(dev);
I'd rater use pci_get_slot instead of pci_find_slot, but I don't know how to
get a struct pci_bus * from an int.

Tobias.

_________________________________________________________________
Watch high-quality video with fast playback at MSN Video. Free!
http://click.atdmt.com/AVE/go/onm00200365ave/direct/01/

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