From owner-freebsd-questions Fri Sep 6 20:52:07 1996 Return-Path: owner-questions Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id UAA29145 for questions-outgoing; Fri, 6 Sep 1996 20:52:07 -0700 (PDT) Received: from dyson.iquest.net (dyson.iquest.net [198.70.144.127]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id UAA29017; Fri, 6 Sep 1996 20:50:29 -0700 (PDT) Received: (from root@localhost) by dyson.iquest.net (8.7.5/8.6.9) id WAA02660; Fri, 6 Sep 1996 22:50:07 -0500 (EST) From: "John S. Dyson" Message-Id: <199609070350.WAA02660@dyson.iquest.net> Subject: Re: CCD Setup woes ... (Kernel Panic) To: gordon@drogon.net (Gordon Henderson) Date: Fri, 6 Sep 1996 22:50:07 -0500 (EST) Cc: questions@freebsd.org, scsi@freebsd.org In-Reply-To: from "Gordon Henderson" at Sep 6, 96 04:54:34 pm Reply-To: dyson@freebsd.org X-Mailer: ELM [version 2.4 PL24 ME8] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-questions@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > > I'm tring to get a CCD going as an experiment and it's causing the kernel > to panic. > Yep, there is a problem with CCD using the FreeBSD bounce scheme. Of course, it is only noticed on ISA systems. > > which resulted in a kernel panic. The message is: > > vm_bounce_alloc: b_bufsize(0x80) < b_count(0x200) !! > panic: vm_bounce_alloc > b_bufsize is not being setup correctly in ccd (I think). > > followed by the usual syncing disks bit. The number in the b_bufsize() > varies from crash to crash. > > Am I doing anything obviously wrong? > No. Hope the following works for you!!! If it does, let me know so that I can commit it. Try this patch to ccd relative to -current (the equiv patch might work for -stable), I haven't tested this though: Index: ccd.c =================================================================== RCS file: /local/home/ncvs/src/sys/dev/ccd/ccd.c,v retrieving revision 1.16 diff -C5 -r1.16 ccd.c *** ccd.c 1996/07/24 23:45:24 1.16 --- ccd.c 1996/09/07 03:46:27 *************** *** 909,918 **** --- 909,920 ---- else cbp->cb_buf.b_bcount = dbtob(cs->sc_ileave - cboff); if (cbp->cb_buf.b_bcount > bcount) cbp->cb_buf.b_bcount = bcount; + cbp->cb_buf.b_bufsize = cbp->cb_buf.b_bcount; + /* * context for ccdiodone */ cbp->cb_obp = bp; cbp->cb_unit = cs - ccd_softc;