Re: [PATCH 1/6] usb:gadget:mass-storage: Improve the signature of SCSI handler function
From: Alan Stern
Date: Sun Jun 27 2021 - 10:18:48 EST
On Sun, Jun 27, 2021 at 12:18:14AM +0300, Igor Kononenko wrote:
> SCSI command handlers currently have an ambiguous return value. This
(I dislike very much this way of writing patch descriptions. Unless
the reader has already looked at the email subject line and remembers
that this patch affects the mass-storage gadget, he will think the
sentence above is talking about command handlers in the SCSI core -- a
completely different part of the kernel. When writing patch
descriptions, please do not assume that the reader already knows what
the patch is about.)
> return value may indicate the length of the data written to the response
> buffer and the command's processing status. Thus, the understanding of
> command handling may be implicit.
The return value is _not_ ambiguous. If the value is >= 0 then it is
a data length, otherwise it is a status. Yes, this is implicit, but it
is a very common pattern used throughout the kernel and everyone
understands it.
> After this patch, the output buffer's size will be set in the
> 'data_size_to_handle' field of 'struct fsg_common', and the command
> handler's return value indicates only the processing status.
What is the reason for making this change? Does it fix any problems
or prepare the way for any future patches? It seems like this is
completely unnecessary.
Alan Stern
> Tested: By probing the USBGadget Mass-Storage on the YADRO VEGMAN
> BMC(AST2500) sample, each SCSI command was sent through HOST->BMC; the
> USBGadget MassStorage debug print showed all sent commands works
> properly.
>
> Signed-off-by: Igor Kononenko <i.kononenko@xxxxxxxxx>