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
