Re: [PATCH] gadget: mass_storage: make mass_storage support multi-luns with different logic block size

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

 



2011/10/18 Michal Nazarewicz <mina86@xxxxxxxxxx>:
> On Mon, 17 Oct 2011 19:56:20 -0700, Yuping Luo <lypingsh@xxxxxxxxx> wrote:
>
>> On Tue, Oct 18, 2011 at 4:30 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
>> wrote:
>>>
>>> On Mon, 17 Oct 2011, Michal Nazarewicz wrote:
>>>
>>>> On Mon, 17 Oct 2011 02:01:48 -0700, Yuping Luo <lypingsh@xxxxxxxxx>
>>>> wrote:
>>>> > here you are , :)
>>>> >
>>>> > diff --git a/drivers/usb/gadget/f_mass_storage.c
>>>> > b/drivers/usb/gadget/f_mass_storage.c
>>>> > index 524381a..6a5c42d 100644
>>>> > --- a/drivers/usb/gadget/f_mass_storage.c
>>>> > +++ b/drivers/usb/gadget/f_mass_storage.c
>>>> > @@ -379,6 +379,7 @@ struct fsg_common {
>>>> >     enum data_direction     data_dir;
>>>> >     u32                     data_size;
>>>> >     u32                     data_size_from_cmnd;
>>>> > +   u32                     data_size_is_in_blocks;
>>>>
>>>> Personally, I'd make it an argument to check_command() or create a
>>>> simple
>>>> wrapper for check_command() that calculates the size.
>>>
>>> I considered making this a new argument to check_command().  In the end
>>> I decided against it, because check_command() already has a lot of
>>> arguments, and also it would be necessary to add the new argument to
>>> every call (of which there are quite a few).
>>>
>>> Using a wrapper routine is a good idea -- it didn't occur to me before.
>>>
>>> Alan Stern
>>>
>> the codes only occur one time, which makes the wrapper unnecessary.
>
> In do_scsi_command() you add a bunch of ->data_size_is_in_blocks = 1
> statements.  Instead of doing that, you might create a
> check_command_size_in_blocks() function like so:
>
> static int check_command_size_in_blocks(...)
> {
>        if (*->curlun)
>                *->->data_size_from_cmnd <<= *->curlun->blkbits;
>        return check_command(...);
> }
>
> and call it instead.  This would make data_size_is_in_blocks unnecessary
> which IMO is a good thing since it is a hidden state.
>
got it , thanks.
> --
> Best regards,                                         _     _
> .o. | Liege of Serenely Enlightened Majesty of      o' \,=./ `o
> ..o | Computer Science,  Michał “mina86” Nazarewicz    (o o)
> ooo +----<email/xmpp: mpn@xxxxxxxxxx>--------------ooO--(_)--Ooo--
>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux