So, I upgrade to 2.4.0 and it's cool, except that I can't do
anything neat with my voodoo3 anymore. I've been looking
for a solution for weeks but to no avail. 3dfx's web site
looks like it's gone and nothing on lk about it.
[ By all means, if someone has fixed this, do let me know ]
Tracing the Glide test programs shows that ioctl() is returning
-EPERM. Compiling the driver with 'make debug' shows:
[ To aid in the confusion, my machine's hostname is 'mmap' ]
[ insmod 3dfx.o ]
Feb 14 15:08:14 mmap kernel: 3dfx: Entering init_module()
Feb 14 15:08:14 mmap kernel: 3dfx: Successfully registered device 3dfx
Feb 14 15:08:14 mmap kernel: 3dfx: board vendor 4634 type 5 located at de000000/
[ ./test3Dfx ]
Feb 14 15:08:29 mmap kernel: 3dfx: Entering mmap_3dfx
Feb 14 15:08:29 mmap kernel: 3dfx: Couldn't match address 0 to a card
Feb 14 15:08:29 mmap kernel: 3dfx: Entering release_3dfx
mmap_3dfx is being called before ioctl_3dfx is ever reached. Looking
to make heads of the "Couldn't match address 0 to a card" message, I
stuck in some more debugging output:
[ VM_OFFSET is #define VM_OFFSET(vma) (vma->vm_pgoff << PAGE_SHIFT) ]
Feb 14 15:08:29 mmap kernel: 3dfx: Entering mmap_3dfx
Feb 14 15:08:29 mmap kernel: 3dfx: Entering decode_vma:
Feb 14 15:08:29 mmap kernel: 3dfx: start = c1270640, end = c5e40840
Feb 14 15:08:29 mmap kernel: 3dfx: offset = 0 (VM_OFFSET = 0)
Feb 14 15:08:29 mmap kernel: 3dfx: Leaving decode_vma
Feb 14 15:08:29 mmap kernel: 3dfx: compare de000000 or e2000000 to 0
Feb 14 15:08:29 mmap kernel: 3dfx: Couldn't match address 0 to a card
Feb 14 15:08:29 mmap kernel: 3dfx: Entering release_3dfx
Sure stumped me. By my guess, it seems that mmap_3dfx is provided by
the char driver so that a userland process can map a region of (video?)
memory on the card.
The process calls ioctl() after opening /dev/3dfx. That ioctl() triggers
an mmap() call, the driver gets addresses it's totally not expecting,
and it returns -EPERM.
Why does mmap get called first?? Am I reading this right?
-- Michael Bacarella <mbac@nyct.net> Technical Staff / System Development, New York Connect.Net, Ltd. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Feb 15 2001 - 21:00:25 EST