Date: Mon, 10 Apr 2006 16:55:11 +0300 From: Nickolas <nickolas@atlas.ua> To: freebsd-hackers@freebsd.org Subject: Context switching Message-ID: <1879959918.20060410165511@atlas.ua>
next in thread | raw e-mail | index | archive | help
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:nickolas@atlas.ua
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1879959918.20060410165511>