Re: [PATCH 2/6] usb:gadget:mass-storage: refactoring the SCSI command handling

From: Alan Stern
Date: Sun Jun 27 2021 - 10:24:02 EST


On Sun, Jun 27, 2021 at 12:18:15AM +0300, Igor Kononenko wrote:
> Implements a universal way to define SCSI commands and configure
> precheck handlers.

What is the reason for doing this?

At first glance, it appears you have added a great deal of complexity
to the driver. The patch replaces a large amount of easily understood
(albeit rather repetitious) code with an approximately equal amount
of rather complicated code. This does not seem like an improvement.

Furthermore, the code you removed is flexible; it easily allows for
small variations as neede by some command handlers. But the code you
added is all table-driven, which does not easily permit arbitrary
variations.

> 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>
> ---
> drivers/usb/gadget/function/f_mass_storage.c | 540 +++++++++++--------
> drivers/usb/gadget/function/storage_common.h | 5 +
> 2 files changed, 310 insertions(+), 235 deletions(-)

I don't see the point of adding 75 lines to the kernel source if they
don't accomplish anything new.

Alan Stern