Date: Wed, 25 Feb 1998 20:20:23 -0800 (PST) From: Bruce Evans <bde@zeta.org.au> To: freebsd-bugs Subject: Re: kern/5846: Generic SCSI ioctl w/ big data transfer fails with "physio split the request" diagnostics. Message-ID: <199802260420.UAA02031@hub.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR kern/5846; it has been noted by GNATS.
From: Bruce Evans <bde@zeta.org.au>
To: freebsd-gnats-submit@FreeBSD.ORG, gene@nttlabs.com
Cc: Subject: Re: kern/5846: Generic SCSI ioctl w/ big data transfer fails with "physio split the request" diagnostics.
Date: Thu, 26 Feb 1998 15:12:19 +1100
>>Description:
>Generic SCSI ioctl, particularly SCIOCCOMMAND, with data-in/out phase
>fails if the size of data to be transferred is larger than a certain
>threshold (approximately 128 bytes in my case). The kernel dumps
>"physio split the request.. cannot proceed" onto the console and the
>ioctl returns -1 with errno=EIO, as programmed in /sys/scsi/scsi_ioctl.h.
This is essentially the same problem as in PR 5599.
>>Fix:
Untested unimplemented fixes:
1) In maxphys(), don't reduce the transfer size to bp->b_kvasize if that
size is 0.
2) Consider fixing all the places that allocate buffer headers bogusly
using malloc() and bzero(). scsi_do_ioctl() knows nothing of
bp->b_kvasize, but it happens to initialize it correctly using
bzero() (I think the bug is in maxphys() in this case - some buffers
just don't have kva).
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199802260420.UAA02031>
