Moved the serial parameter handling code out of "#ifdef CONFIG_USB_FILE_STORAGE_TEST". This modifies Yann Cantin's commit "USB: Add a serial number parameter to g_file_storage" module as per Alan Stern's request. Signed-off-by: Michal Nazarewicz <m.nazarewicz@xxxxxxxxxxx> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Cc: Yann Cantin <yann.cantin@xxxxxxxxxxx> --- Alan Stern wrote: > I have only one objection to this [Yann Cantin's] patch: The new > parameter's name should be "serial", not "serial_parm". Alan Stern wrote: > The serial number parameter is important enough that it should be > available even on builds without CONFIG_USB_FILE_STORAGE_TEST. drivers/usb/gadget/file_storage.c | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c index d57c09f..41af34c 100644 --- a/drivers/usb/gadget/file_storage.c +++ b/drivers/usb/gadget/file_storage.c @@ -317,7 +317,7 @@ static struct { unsigned short vendor; unsigned short product; unsigned short release; - char *serial_parm; + char *serial; unsigned int buflen; int transport_type; @@ -357,6 +357,8 @@ MODULE_PARM_DESC(stall, "false to prevent bulk stalls"); module_param_named(cdrom, mod_data.cdrom, bool, S_IRUGO); MODULE_PARM_DESC(cdrom, "true to emulate cdrom instead of disk"); +module_param_named(serial, mod_data.serial, charp, S_IRUGO); +MODULE_PARM_DESC(serial, "USB serial number"); /* In the non-TEST version, only the module parameters listed above * are available. */ @@ -378,9 +380,6 @@ MODULE_PARM_DESC(product, "USB Product ID"); module_param_named(release, mod_data.release, ushort, S_IRUGO); MODULE_PARM_DESC(release, "USB release number"); -module_param_named(serial, mod_data.serial_parm, charp, S_IRUGO); -MODULE_PARM_DESC(serial, "USB serial number"); - module_param_named(buflen, mod_data.buflen, uint, S_IRUGO); MODULE_PARM_DESC(buflen, "I/O buffer size"); @@ -3281,10 +3280,12 @@ static int __init check_parameters(struct fsg_dev *fsg) return -ETOOSMALL; } +#endif /* CONFIG_USB_FILE_STORAGE_TEST */ + /* Serial string handling. * On a real device, the serial string would be loaded * from permanent storage. */ - if (mod_data.serial_parm) { + if (mod_data.serial) { const char *ch; unsigned len = 0; @@ -3293,7 +3294,7 @@ static int __init check_parameters(struct fsg_dev *fsg) * 12 uppercase hexadecimal characters. * BBB need at least 12 uppercase hexadecimal characters, * with a maximum of 126. */ - for (ch = mod_data.serial_parm; *ch; ++ch) { + for (ch = mod_data.serial; *ch; ++ch) { ++len; if ((*ch < '0' || *ch > '9') && (*ch < 'A' || *ch > 'F')) { /* not uppercase hex */ @@ -3312,8 +3313,11 @@ static int __init check_parameters(struct fsg_dev *fsg) "Failing back to default\n"); goto fill_serial; } - fsg_strings[FSG_STRING_SERIAL - 1].s = mod_data.serial_parm; + fsg_strings[FSG_STRING_SERIAL - 1].s = mod_data.serial; } else { + WARNING(fsg, + "Userspace failed to provide serial number; " + "Failing back to default\n"); fill_serial: /* Serial number not specified or invalid, make our own. * We just encode it from the driver version string, @@ -3329,8 +3333,6 @@ fill_serial: } } -#endif /* CONFIG_USB_FILE_STORAGE_TEST */ - return 0; } -- 1.7.1 -- 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