Re: [PATCH] bugfix for an underflow condition in usb storage & isd200.c

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

 



On Thu, 31 Jan 2008, Boaz Harrosh wrote:

> >> The code in usb_stor_access_xfer_buf() will 
> >> now correctly attempt to transfer according to buflen and what ever is available
> >> at the passed sg's. Now this can be less or it can be more. SCSI standard defines
> >> this as underflow/overflow. When overflow should be reported as negative values.
> >> and an error status. (BUT not CHECK_CONDITION)
> > 
> > I don't understand.  How could you ever transfer more data than the 
> > requested amount?  The host won't expect to receive it and won't be 
> > able to handle it when it arrives.
> > 
> > (Furthmore, the USB mass-storage specification does not permit more 
> > data to be transferred than requested.  This fact isn't relevant to our 
> > discussion because we're talking about situations where the data was 
> > transferred via a non-standard protocol.  But even so...)
> That's fine then the transfer will abort with an error condition and will
> be handled correctly.

I still don't understand.  Can you explain exactly what an overflow 
condition (negative residue) really means?

Does it mean that the device had more data available than the host
asked for?  If it does, then you don't need to change the isd200 code
at all.  The changes to protocol.c will be enough.

However you should realize that usb-storage, as it stands, won't work
properly with negative residues.  Look at usb_stor_Bulk_transport() in
transport.c.  The residue variable is declared to be unsigned int.  
There's also code later on in the routine which assumes the residue is
never negative.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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