Date: Sat, 13 May 1995 11:00:01 -0700 From: wpaul@ctr.columbia.edu To: freebsd-bugs Subject: kern/400: fade_saver loadable kernel module crashes system Message-ID: <199505131800.LAA07401@freefall.cdrom.com> In-Reply-To: Your message of Sat, 13 May 1995 13:54:05 -0400 <199505131754.NAA02863@nakedgun.ctr.columbia.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
>Number: 400 >Category: kern >Synopsis: fade_saver loadable kernel module crashes system >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs (FreeBSD bugs mailing list) >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat May 13 11:00:01 1995 >Originator: Bill Paul >Organization: Center for Telecommunications Research, Columbia University >Release: FreeBSD 2.0.950418-SNAP i386 >Environment: The problem has been noted on two different systems, both running FreeBSD-current (as of today): Pentium 90Mhz CPU EISA system with 16 Mbytes RAM Adaptec 2740T EISA Twin Channel SCSI adapter Seagate ST31200N 1 Gbyte drive WD90C50 integrated SVGA hardware with 1 MB video RAM Inter EtherExpress Ethernet adapter SoundBlaster 16 sound card i386DX CPU (no FPU) ISA system with 8 Mbytes RAM IDE disk controller Quantum 50 Mbyte IDE disk 3Com 3c503 ethernet adapter Diamond Speedstar 3.01 (ET4000) SVGA adapter with 1Mbyte video RAM Kernel config file: Both systems have the syscons console driver compiled into their kernels. >Description: The fade_saver loadable screen saver module causes a fatal kernel trap when it activates. It can be modload'ed just fine, but as soon as syscons activates it, the system panics. The other modules seem to work fine. Here's a sample console log showing the panic. This is from a kernel built with sources supped just this morning: marple# modload -e saver_init fade_saver_mod.o fade screen saver installed Module loaded as ID 0 marple# modstat Type Id Off Loadaddr Size Info Rev Module Name MISC 0 0 f049f000 0008 f04a0000 1 fade_saver marple# vidcontrol -t 5 < /dev/ttyv0 marple# Fatal trap 12: page fault while in kernel mode fault virtual address = 0x3 fault code = supervisor read, page not present instruction pointer = 0x8:0xf049f080 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = Idle interrupt mask = panic: page fault syncing disks... 1 1 done Note that the instruction pointer points to a location inside the fade_saver's address space. Also note that 'make load' does not seem to work for for any of the syscons screen saver modules. It should. >How-To-Repeat: # cd /lkm # modload -e saver_init fade_saver_mod.o # vidcontrol -t 5 <wait 5 seconds for the screen saver timer to expire> >Fix: No idea, though I suspect that the module may have fallen out of sync with the code in the syscons driver proper. I don't suppose it's occured to anyone what could happen if a clueless user tries to load a syscons saver module into a kernel that doesn't have the syscons driver in it? It might be a good idea to have the saver modules check to see if the syscons driver is actually present when they start, and if it isn't, unload themselves before they can do any damage, or at least scream loudly and not touch anything dangerous while they're there. >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199505131800.LAA07401>