Re: Configfs usb mass_storage device always reports 8 LUNs ?

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

 





On 07/02/2015 05:25 PM, Michal Nazarewicz wrote:
Sorry, I didn’t notice this reply before.

On 06/22/2015 04:24 PM, Michal Nazarewicz wrote:
common->nluns is set to FSG_MAX_LUNS in fsg_alloc_inst (which is called
prior to fsg_alloc) so this is not an issue.

On Mon, Jun 22 2015, Krzysztof Opasiak wrote:
True, but all legacy gadgets which use mass storage call
fsg_common_set_nluns() after reading module parameters and after
allocating function instance. As argument they pass number luns received
in module params.

Right.  As a quick fix I would propose doing:

----------- >8 ---------------------------------------------------------
diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c
index e1beb14..15c3071 100644
--- a/drivers/usb/gadget/function/f_mass_storage.c
+++ b/drivers/usb/gadget/function/f_mass_storage.c
@@ -2786,7 +2786,7 @@ int fsg_common_set_nluns(struct fsg_common *common, int nluns)
                 return -EINVAL;
         }

-       curlun = kcalloc(nluns, sizeof(*curlun), GFP_KERNEL);
+       curlun = kcalloc(FSG_MAX_LUNS, sizeof(*curlun), GFP_KERNEL);
         if (unlikely(!curlun))
                 return -ENOMEM;

----------- >8 ---------------------------------------------------------


Now it should be fine as a temporary solution.

Since I think we agreed that luns should just be turned into an array
with static length the above won’t be too far from that goal.


True, just started working on it.

--
Krzysztof Opasiak
Samsung R&D Institute Poland
Samsung Electronics
--
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