From owner-freebsd-bugs Sun Dec 29 14:50:04 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id OAA15698 for bugs-outgoing; Sun, 29 Dec 1996 14:50:04 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id OAA15687; Sun, 29 Dec 1996 14:50:02 -0800 (PST) Resent-Date: Sun, 29 Dec 1996 14:50:02 -0800 (PST) Resent-Message-Id: <199612292250.OAA15687@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, jmrueda@diatel.upm.es Received: from vec.ccupm.upm.es (vec.ccupm.upm.es [138.100.1.2]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id OAA15335 for ; Sun, 29 Dec 1996 14:42:50 -0800 (PST) Received: from ozono.asin.es by vec.ccupm.upm.es (IBM VM SMTP V2R3) with TCP; Sun, 29 Dec 96 23:42:21 INV Received: (from javier@localhost) by ozono.asin.es (8.8.2/8.8.2) id XAA01090; Sun, 29 Dec 1996 23:41:31 +0100 (MET) Message-Id: <199612292241.XAA01090@ozono.asin.es> Date: Sun, 29 Dec 1996 23:41:31 +0100 (MET) From: jmrueda@diatel.upm.es Reply-To: jmrueda@diatel.upm.es To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/2319: Using Genius GS-4500 scanner causes page fault panic Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Number: 2319 >Category: kern >Synopsis: Using Genius GS-4500 scanner causes page fault panic >Confidential: yes >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Dec 29 14:50:01 PST 1996 >Last-Modified: >Originator: Javier Martmn Rueda >Organization: >Release: FreeBSD 2.2-ALPHA i386 >Environment: >Description: Apparently, someone changed the gsc driver to allocate one big buffer at device attach time, instead of allocating and freeing buffers as necessary. But he or she forgot to remove the line that invalidated the buffer when the device is closed. Therefore, after using the device for the first time, the buffer was incorrectly invalidated and that caused a page fault on the second, and subsequent uses. >How-To-Repeat: sgsc -r 400 -h 800 cat < /dev/gsc0p > /tmp/file WARNING: that will make the system panic. >Fix: This simple patch fixes this: *** gsc.c.orig Wed Jun 12 07:03:37 1996 --- gsc.c Sun Dec 29 22:39:05 1996 *************** *** 635,641 **** outb(scu->ctrl, scu->ctrl_byte & ~GSC_POWER_ON); - scu->sbuf.base = NULL; scu->sbuf.size = INVALID; scu->sbuf.poi = INVALID; --- 635,640 ---- >Audit-Trail: >Unformatted: