Hi all,

I've been investigating Bill Gou's problem with the DRM on the dualhead
card, and while we have an issue (we probably shouldn't register the
second head in that cards case), it has led me to an issue in the new PCI
probing code in the DRM,

The code uses the inter_module_put/get to store the pointer for
info_register/unregister and drm_class, the code uses a check to see if
minor 0 is being unregistered and if it is cleans up, however this works
fine in the old probing system, but in the new system when we do a
drm_exit it frees from 0 up, the old one goes from the top down.. I'd say
I could have crashed the old system with 3-4 graphics cards :-)

I've just checked in a fix using a reference count to keep track of how
many stubs are in use and when it hits 0, I unregister the class and inter
module stuff... having the dereference is ugly but is the only way to do
it with the current setup..

Has anyone any ideas why we don't kmalloc the stub info on the first
driver load, register it and then make all the other drivers use a pointer
to that registered stub, it looks to me like a simpler plan and gets rid
of the ugly dereferences I've had to make ...

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
pam_smb / Linux DECstation / Linux VAX / ILUG person



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to