[haiku-development] Re: RTL8101/8102 FreeBSD Driver

Hi Graham

> 80204e4c (+ 104) 8078f84a </boot/beos/system/add-ons/kernel/drivers/ 
> dev/net/rtl8101>:tq_lock + 0x0019
> 80204eb4 (+  48) 8078f8f0 </boot/beos/system/add-ons/kernel/drivers/ 
> dev/net/rtl8101>:taskqueue_enqueue + 0x0025
> 80204ee4 (+  32) 8078f952 </boot/beos/system/add-ons/kernel/drivers/ 
> dev/net/rtl8101>:taskqueue_enqueue_fast + 0x001e
> 80204f04 (+  32) 807859c5 </boot/beos/system/add-ons/kernel/drivers/ 
> dev/net/rtl8101>:re_intr + 0x005a
> 80204f24 (+  48) 80038878 <kernel>:int_io_interrupt_handler + 0x00bb

This looks like your driver intends to use fast taskqueues but they're 
not configured. If you copied the glue from rl without further changes, 
taskqueues won't be enabled for your driver (since the rl doesn't need 
them they are not specified there). You have a 
HAIKU_DRIVER_REQUIREMENTS() macro in the glue file that specifies what 
features the driver needs, which probably is set to 0. For taskqueues 
you'd want to enable FBSD_TASKQUEUES, for fast taskqueues 
FBSD_FAST_TASKQUEUE and for the shared SWI taskqueue you'd use 
FBSD_SWI_TASKQUEUE. I haven't looked at the re source, but probably 
using the following should get it going:

HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_FAST_TASKQUEUE);

If that's not enough you could try adding the SWI taskqueue as well.

Regards
Michael

Other related posts: