Iirc it was in the ddx, and it was actually using the mmap code. Leftovers from ums, but unfortunately X crashes if we take them away. If I recall correctly nouveau was in staging still, but per Linus staging or not doesn't matter when distros are shipping with the code already. I did dig out the details way back out of curiosity, but lost them since then again. -Daniel
There were two different nouveau problems
a) old libdrm used contexts, it called drmCreateContext and drmDestroyContext from what I could see.
b) old DDX used DRI1 functions, DRIOpenDRMMaster in the X server when it wanted to use open, that function added maps with locks and mapped them.
I get the impression this is case (b).
Dave.