Re: [PATCH 1/3] scsi: core: Fix the scsi_set_resid() documentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 21, 2023 at 09:01:32AM -0700, Bart Van Assche wrote:
> Because scsi_finish_command() subtracts the residual from the buffer
> length, residual overflows must not be reported. Reflect this in the
> SCSI documentation. See also commit 9237f04e12cc ("scsi: core: Fix
> scsi_get/set_resid() interface")
> 
> Cc: Damien Le Moal <dlemoal@xxxxxxxxxx>
> Cc: Hannes Reinecke <hare@xxxxxxx>
> Cc: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
> ---
>  Documentation/scsi/scsi_mid_low_api.rst | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/scsi/scsi_mid_low_api.rst b/Documentation/scsi/scsi_mid_low_api.rst
> index 6fa3a6279501..022198c51350 100644
> --- a/Documentation/scsi/scsi_mid_low_api.rst
> +++ b/Documentation/scsi/scsi_mid_low_api.rst
> @@ -1190,11 +1190,11 @@ Members of interest:
>  		 - pointer to scsi_device object that this command is
>                     associated with.
>      resid
> -		 - an LLD should set this signed integer to the requested
> +		 - an LLD should set this unsigned integer to the requested
>                     transfer length (i.e. 'request_bufflen') less the number
>                     of bytes that are actually transferred. 'resid' is
>                     preset to 0 so an LLD can ignore it if it cannot detect
> -                   underruns (overruns should be rare). If possible an LLD
> +                   underruns (overruns should not be reported). An LLD

I'm very late to party, sorry. But we have certainly seen at least one
overrun reported some years ago on a FC SAN. We've changed some handling
in zFCP due to that (
a099b7b1fc1f ("scsi: zfcp: add handling for FCP_RESID_OVER to the fcp ingress path")
). The theory back than was, that it was cause by either a faulty ISL in
the fabric, or some other "bit-errors" on the wire that caused some FC
frames being dropped during transmit.

I added that we mark such commands with `DID_ERROR`, so they are
retried, if that is permissible.

>                     should set 'resid' prior to invoking 'done'. The most
>                     interesting case is data transfers from a SCSI target
>                     device (e.g. READs) that underrun.

-- 
Best Regards, Benjamin Block        /        Linux on IBM Z Kernel Development
IBM Deutschland Research & Development GmbH    /   https://www.ibm.com/privacy
Vors. Aufs.-R.: Gregor Pillen         /         Geschäftsführung: David Faller
Sitz der Ges.: Böblingen     /    Registergericht: AmtsG Stuttgart, HRB 243294



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux