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/