@@ -2265,6 +2265,7 @@ static void btusb_mtk_wmt_recv(struct urb *urb)
2265
2265
skb = bt_skb_alloc (HCI_WMT_MAX_EVENT_SIZE , GFP_ATOMIC );
2266
2266
if (!skb ) {
2267
2267
hdev -> stat .err_rx ++ ;
2268
+ kfree (urb -> setup_packet );
2268
2269
return ;
2269
2270
}
2270
2271
@@ -2285,6 +2286,7 @@ static void btusb_mtk_wmt_recv(struct urb *urb)
2285
2286
data -> evt_skb = skb_clone (skb , GFP_ATOMIC );
2286
2287
if (!data -> evt_skb ) {
2287
2288
kfree_skb (skb );
2289
+ kfree (urb -> setup_packet );
2288
2290
return ;
2289
2291
}
2290
2292
}
@@ -2293,6 +2295,7 @@ static void btusb_mtk_wmt_recv(struct urb *urb)
2293
2295
if (err < 0 ) {
2294
2296
kfree_skb (data -> evt_skb );
2295
2297
data -> evt_skb = NULL ;
2298
+ kfree (urb -> setup_packet );
2296
2299
return ;
2297
2300
}
2298
2301
@@ -2303,6 +2306,7 @@ static void btusb_mtk_wmt_recv(struct urb *urb)
2303
2306
wake_up_bit (& data -> flags ,
2304
2307
BTUSB_TX_WAIT_VND_EVT );
2305
2308
}
2309
+ kfree (urb -> setup_packet );
2306
2310
return ;
2307
2311
} else if (urb -> status == - ENOENT ) {
2308
2312
/* Avoid suspend failed when usb_kill_urb */
@@ -2323,6 +2327,7 @@ static void btusb_mtk_wmt_recv(struct urb *urb)
2323
2327
usb_anchor_urb (urb , & data -> ctrl_anchor );
2324
2328
err = usb_submit_urb (urb , GFP_ATOMIC );
2325
2329
if (err < 0 ) {
2330
+ kfree (urb -> setup_packet );
2326
2331
/* -EPERM: urb is being killed;
2327
2332
* -ENODEV: device got disconnected
2328
2333
*/
0 commit comments