Date: Sun, 9 Jan 2000 15:50:02 -0800 (PST) From: Peter Jeremy <peter.jeremy@alcatel.com.au> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/15956: Off-by-1 error in diskstrategy() triggers bug in ATA Message-ID: <200001092350.PAA35697@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/15956; it has been noted by GNATS. From: Peter Jeremy <peter.jeremy@alcatel.com.au> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: FreeBSD-gnats-submit@FreeBSD.ORG Subject: Re: kern/15956: Off-by-1 error in diskstrategy() triggers bug in ATA Date: Mon, 10 Jan 2000 10:39:40 +1100 On 2000-Jan-07 22:57:11 +1100, Poul-Henning Kamp <phk@critter.freebsd.dk> wrote: >>- if (dscheck(bp, dp->d_slice) < 0) { >>+ if (dscheck(bp, dp->d_slice) <= 0) { ... >This was actually done that way deliberately, but not for any >specific reason. I wasn't sure about the reasons. What I did notice was that the other references to dscheck() all do a <= check: /sys/dev/ida/ida_disk.c:205: if (dscheck(bp, drv->slices) <= 0) /sys/dev/vn/vn.c:305: if (vn->sc_slices != NULL && dscheck(bp, vn->sc_slices) <= 0) { /sys/i386/isa/wd.c:581: if (dscheck(bp, du->dk_slices) <= 0) /sys/i386/isa/wfd.c:419: if (dscheck(bp, t->dk_slices) <= 0) { /sys/pc98/pc98/wd.c:675: if (dscheck(bp, du->dk_slices) <= 0) Also, I can't see any point in passing zero-length I/O requests into the low level drivers - bouncing them back out as quick as possible will (if anything) improve performance. I notice Soren has since added a (correct, unlike mine) patch to the ata drivers to catch zero-length requests. Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001092350.PAA35697>