Skip to content

Commit f1d3861

Browse files
Peter ChenFelipe Balbi
Peter Chen
authored and
Felipe Balbi
committed
usb: gadget: f_uac2: fix error handling at afunc_bind
The current error handling flow uses incorrect goto label, fix it Cc: <[email protected]> Fixes: d12a872 ("usb: gadget: function: Remove redundant usb_free_all_descriptors") Signed-off-by: Peter Chen <[email protected]> Signed-off-by: Felipe Balbi <[email protected]>
1 parent 982555f commit f1d3861

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

drivers/usb/gadget/function/f_uac2.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,13 +1067,13 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
10671067
agdev->out_ep = usb_ep_autoconfig(gadget, &fs_epout_desc);
10681068
if (!agdev->out_ep) {
10691069
dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
1070-
goto err;
1070+
return ret;
10711071
}
10721072

10731073
agdev->in_ep = usb_ep_autoconfig(gadget, &fs_epin_desc);
10741074
if (!agdev->in_ep) {
10751075
dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
1076-
goto err;
1076+
return ret;
10771077
}
10781078

10791079
uac2->p_prm.uac2 = uac2;
@@ -1091,7 +1091,7 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
10911091
ret = usb_assign_descriptors(fn, fs_audio_desc, hs_audio_desc, NULL,
10921092
NULL);
10931093
if (ret)
1094-
goto err;
1094+
return ret;
10951095

10961096
prm = &agdev->uac2.c_prm;
10971097
prm->max_psize = hs_epout_desc.wMaxPacketSize;
@@ -1106,19 +1106,19 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
11061106
prm->rbuf = kzalloc(prm->max_psize * USB_XFERS, GFP_KERNEL);
11071107
if (!prm->rbuf) {
11081108
prm->max_psize = 0;
1109-
goto err_free_descs;
1109+
goto err;
11101110
}
11111111

11121112
ret = alsa_uac2_init(agdev);
11131113
if (ret)
1114-
goto err_free_descs;
1114+
goto err;
11151115
return 0;
11161116

1117-
err_free_descs:
1118-
usb_free_all_descriptors(fn);
11191117
err:
11201118
kfree(agdev->uac2.p_prm.rbuf);
11211119
kfree(agdev->uac2.c_prm.rbuf);
1120+
err_free_descs:
1121+
usb_free_all_descriptors(fn);
11221122
return -EINVAL;
11231123
}
11241124

0 commit comments

Comments
 (0)