From owner-freebsd-hackers Sat Jun 3 23:52:18 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id XAA20504 for hackers-outgoing; Sat, 3 Jun 1995 23:52:18 -0700 Received: from irz301.inf.tu-dresden.de (irz301.inf.tu-dresden.de [141.76.1.11]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id XAA20484 for ; Sat, 3 Jun 1995 23:52:16 -0700 Received: from sax.sax.de by irz301.inf.tu-dresden.de with SMTP (5.67b+/DEC-Ultrix/4.3) id AA20606; Sun, 4 Jun 1995 08:52:14 +0200 Received: by sax.sax.de (8.6.12/8.6.12-s1) with UUCP id IAA27883 for freebsd-hackers@freebsd.org; Sun, 4 Jun 1995 08:52:12 +0200 Received: (from j@localhost) by uriah.heep.sax.de (8.6.11/8.6.9) id IAA26014 for freebsd-hackers@freebsd.org; Sun, 4 Jun 1995 08:40:53 +0200 From: J Wunsch Message-Id: <199506040640.IAA26014@uriah.heep.sax.de> Subject: Re: kernel page fault while doing tar to /dev/rft0 To: freebsd-hackers@freebsd.org (FreeBSD hackers) Date: Sun, 4 Jun 1995 08:40:51 +0200 (MET DST) Reply-To: freebsd-hackers@freebsd.org (FreeBSD hackers) In-Reply-To: <199506040429.VAA18283@gndrsh.aac.dev.com> from "Rodney W. Grimes" at Jun 3, 95 09:29:42 pm Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) X-Phone: +49-351-2012 669 X-Mailer: ELM [version 2.4 PL23] Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Content-Length: 1911 Sender: hackers-owner@freebsd.org Precedence: bulk As Rodney W. Grimes wrote: > > > > > > Yes, it is a derefernced null some place in the Driver, some one > > > is suppose to be working on fixing this but I have not heard from > > > them in 2 months :-(. > > > > About three weeks. I just finished getting settled from a big move > > from my apartment. Fun stuff. > > It was not you I was refering to :-). Huh, i don't hope you think about me here? Anyway, i don't have a (working) floppy tape drive either, but i figured that your last changes to the code _should_ have fixed this behaviour, so i didn't pursue it anymore. (The bug report which started this thread referred to 2.0R.) Here's the relevant part: void fdstrategy(struct buf *bp) { register struct buf *dp; long nblocks, blknum; int s; fdcu_t fdcu; fdu_t fdu; fdc_p fdc; fd_p fd; size_t fdblk; fdu = FDUNIT(minor(bp->b_dev)); fd = &fd_data[fdu]; fdc = fd->fdc; fdcu = fdc->fdcu; fdblk = 128 << (fd->ft->secsize); #if NFT > 0 if (FDTYPE(minor(bp->b_dev)) & F_TAPE_TYPE) { /* ft tapes do not (yet) support strategy i/o */ bp->b_error = ENXIO; bp->b_flags |= B_ERROR; goto bad; } Actually, you're right. It's apparently not yet fixed. The five lines above #if NFT > 0 should be moved below; i think the offending expression is ``fd->ft->secsize''. This has been introduced with revision 1.30 of fd.c, which is supposed to move over the final version from 1.1.5.1 into the V2 source tree. CAN SOMEBODY WITH A WORKING FLOPPY TAPE PLEASE CHECK IF THE SUGGESTED FIX (move 5 lines below the #ifdef block) WOULD WORK? THIS MUST GO INTO 2.0.5!!! -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ Never trust an operating system you don't have sources for. ;-)