usb: gadget: f_diag: Fix check to update dload cookie
This change update dload cookie if cdev->desc.iSerialNumber is already available instead of trying to get string descriptors. It also adds check against possibility of string descriptors being NULL to avoid device crash. Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This commit is contained in:
parent
cb8b39f631
commit
06a8a7d33a
1 changed files with 5 additions and 1 deletions
|
@ -225,13 +225,17 @@ static void diag_update_pid_and_serial_num(struct diag_context *ctxt)
|
|||
local_diag_dload.pid = cdev->desc.idProduct;
|
||||
|
||||
/* pass on product id and serial number to dload */
|
||||
if (cdev->desc.iSerialNumber) {
|
||||
if (!cdev->desc.iSerialNumber) {
|
||||
/*
|
||||
* Serial number is filled by the composite driver. So
|
||||
* it is fair enough to assume that it will always be
|
||||
* found at first table of strings.
|
||||
*/
|
||||
table = *(cdev->driver->strings);
|
||||
if (!table) {
|
||||
pr_err("%s: can't update dload cookie\n", __func__);
|
||||
return;
|
||||
}
|
||||
for (s = table->strings; s && s->s; s++) {
|
||||
if (s->id == cdev->desc.iSerialNumber) {
|
||||
local_diag_dload.magic_struct.serial_num =
|
||||
|
|
Loading…
Add table
Reference in a new issue