Hello All! I'm porting a CPI card driver from linux to FreeBSD. Some initialization routines require much time (~1-2 seconds). Initialization of hardware should be done during opening device special file. So, I need to switch thread context.
I'm doing it in such way: mi_switch(SW_VOL, choosethread()); Main trouble: system panic after program exit. dmesg output: -------------------------- Fatal trap 12: page fault while in user mode fault virtual address = 0xbfbfe5bc fault code = user write, protection violation instruction pointer = 0x1f:0x8074604 stack pointer = 0x2f:0xbfbfe5c0 frame pointer = 0x2f:0xbfbfe5f8 code segment = base 0xc090f8c0, limit 0x0, type 0x13 = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 472 (bash) trap number = 12 panic: page fault -------------------------- Please, tell how correct context switching should be implemented? OS version: FreeBSD 5.4 -- Best regards, Nickolas mailto:[EMAIL PROTECTED] _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"