libertas: don't set URB_ZERO_PACKET on IN USB transfer
diff mbox series

Message ID 20181006201232.2789936-1-lkundrak@v3.sk
State Accepted
Commit 6528d88047801b80d2a5370ad46fb6eff2f509e0
Delegated to: Kalle Valo
Headers show
Series
  • libertas: don't set URB_ZERO_PACKET on IN USB transfer
Related show

Commit Message

Lubomir Rintel Oct. 6, 2018, 8:12 p.m. UTC
The USB core gets rightfully upset:

  usb 1-1: BOGUS urb flags, 240 --> 200
  WARNING: CPU: 0 PID: 60 at drivers/usb/core/urb.c:503 usb_submit_urb+0x2f8/0x3ed
  Modules linked in:
  CPU: 0 PID: 60 Comm: kworker/0:3 Not tainted 4.19.0-rc6-00319-g5206d00a45c7 #39
  Hardware name: OLPC XO/XO, BIOS OLPC Ver 1.00.01 06/11/2014
  Workqueue: events request_firmware_work_func
  EIP: usb_submit_urb+0x2f8/0x3ed
  Code: 75 06 8b 8f 80 00 00 00 8d 47 78 89 4d e4 89 55 e8 e8 35 1c f6 ff 8b 55 e8 56 52 8b 4d e4 51 50 68 e3 ce c7 c0 e8 ed 18 c6 ff <0f> 0b 83 c4 14 80 7d ef 01 74 0a 80 7d ef 03 0f 85 b8 00 00 00 8b
  EAX: 00000025 EBX: ce7d4980 ECX: 00000000 EDX: 00000001
  ESI: 00000200 EDI: ce7d8800 EBP: ce7f5ea8 ESP: ce7f5e70
  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 EFLAGS: 00210292
  CR0: 80050033 CR2: 00000000 CR3: 00e80000 CR4: 00000090
  Call Trace:
   ? if_usb_fw_timeo+0x64/0x64
   __if_usb_submit_rx_urb+0x85/0xe6
   ? if_usb_fw_timeo+0x64/0x64
   if_usb_submit_rx_urb_fwload+0xd/0xf
   if_usb_prog_firmware+0xc0/0x3db
   ? _request_firmware+0x54/0x47b
   ? _request_firmware+0x89/0x47b
   ? if_usb_probe+0x412/0x412
   lbs_fw_loaded+0x55/0xa6
   ? debug_smp_processor_id+0x12/0x14
   helper_firmware_cb+0x3c/0x3f
   request_firmware_work_func+0x37/0x6f
   process_one_work+0x164/0x25a
   worker_thread+0x1c4/0x284
   kthread+0xec/0xf1
   ? cancel_delayed_work_sync+0xf/0xf
   ? kthread_create_on_node+0x1a/0x1a
   ret_from_fork+0x2e/0x38
  ---[ end trace 3ef1e3b2dd53852f ]---

Cc: stable@vger.kernel.org
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 drivers/net/wireless/marvell/libertas/if_usb.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Kalle Valo Oct. 13, 2018, 5:03 p.m. UTC | #1
Lubomir Rintel <lkundrak@v3.sk> wrote:

> The USB core gets rightfully upset:
> 
>   usb 1-1: BOGUS urb flags, 240 --> 200
>   WARNING: CPU: 0 PID: 60 at drivers/usb/core/urb.c:503 usb_submit_urb+0x2f8/0x3ed
>   Modules linked in:
>   CPU: 0 PID: 60 Comm: kworker/0:3 Not tainted 4.19.0-rc6-00319-g5206d00a45c7 #39
>   Hardware name: OLPC XO/XO, BIOS OLPC Ver 1.00.01 06/11/2014
>   Workqueue: events request_firmware_work_func
>   EIP: usb_submit_urb+0x2f8/0x3ed
>   Code: 75 06 8b 8f 80 00 00 00 8d 47 78 89 4d e4 89 55 e8 e8 35 1c f6 ff 8b 55 e8 56 52 8b 4d e4 51 50 68 e3 ce c7 c0 e8 ed 18 c6 ff <0f> 0b 83 c4 14 80 7d ef 01 74 0a 80 7d ef 03 0f 85 b8 00 00 00 8b
>   EAX: 00000025 EBX: ce7d4980 ECX: 00000000 EDX: 00000001
>   ESI: 00000200 EDI: ce7d8800 EBP: ce7f5ea8 ESP: ce7f5e70
>   DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 EFLAGS: 00210292
>   CR0: 80050033 CR2: 00000000 CR3: 00e80000 CR4: 00000090
>   Call Trace:
>    ? if_usb_fw_timeo+0x64/0x64
>    __if_usb_submit_rx_urb+0x85/0xe6
>    ? if_usb_fw_timeo+0x64/0x64
>    if_usb_submit_rx_urb_fwload+0xd/0xf
>    if_usb_prog_firmware+0xc0/0x3db
>    ? _request_firmware+0x54/0x47b
>    ? _request_firmware+0x89/0x47b
>    ? if_usb_probe+0x412/0x412
>    lbs_fw_loaded+0x55/0xa6
>    ? debug_smp_processor_id+0x12/0x14
>    helper_firmware_cb+0x3c/0x3f
>    request_firmware_work_func+0x37/0x6f
>    process_one_work+0x164/0x25a
>    worker_thread+0x1c4/0x284
>    kthread+0xec/0xf1
>    ? cancel_delayed_work_sync+0xf/0xf
>    ? kthread_create_on_node+0x1a/0x1a
>    ret_from_fork+0x2e/0x38
>   ---[ end trace 3ef1e3b2dd53852f ]---
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>

Patch applied to wireless-drivers-next.git, thanks.

6528d8804780 libertas: don't set URB_ZERO_PACKET on IN USB transfer
Pavel Machek Nov. 5, 2018, 9:19 a.m. UTC | #2
On Sat 2018-10-06 22:12:32, Lubomir Rintel wrote:
> The USB core gets rightfully upset:
> 
>   usb 1-1: BOGUS urb flags, 240 --> 200
>   WARNING: CPU: 0 PID: 60 at drivers/usb/core/urb.c:503 usb_submit_urb+0x2f8/0x3ed
>   Modules linked in:
>   CPU: 0 PID: 60 Comm: kworker/0:3 Not tainted 4.19.0-rc6-00319-g5206d00a45c7 #39
>   Hardware name: OLPC XO/XO, BIOS OLPC Ver 1.00.01 06/11/2014
>   Workqueue: events request_firmware_work_func
>   EIP: usb_submit_urb+0x2f8/0x3ed
>   Code: 75 06 8b 8f 80 00 00 00 8d 47 78 89 4d e4 89 55 e8 e8 35 1c f6 ff 8b 55 e8 56 52 8b 4d e4 51 50 68 e3 ce c7 c0 e8 ed 18 c6 ff <0f> 0b 83 c4 14 80 7d ef 01 74 0a 80 7d ef 03 0f 85 b8 00 00 00 8b
>   EAX: 00000025 EBX: ce7d4980 ECX: 00000000 EDX: 00000001
>   ESI: 00000200 EDI: ce7d8800 EBP: ce7f5ea8 ESP: ce7f5e70
>   DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 EFLAGS: 00210292
>   CR0: 80050033 CR2: 00000000 CR3: 00e80000 CR4: 00000090
>   Call Trace:
>    ? if_usb_fw_timeo+0x64/0x64
>    __if_usb_submit_rx_urb+0x85/0xe6
>    ? if_usb_fw_timeo+0x64/0x64
>    if_usb_submit_rx_urb_fwload+0xd/0xf
>    if_usb_prog_firmware+0xc0/0x3db
>    ? _request_firmware+0x54/0x47b
>    ? _request_firmware+0x89/0x47b
>    ? if_usb_probe+0x412/0x412
>    lbs_fw_loaded+0x55/0xa6
>    ? debug_smp_processor_id+0x12/0x14
>    helper_firmware_cb+0x3c/0x3f
>    request_firmware_work_func+0x37/0x6f
>    process_one_work+0x164/0x25a
>    worker_thread+0x1c4/0x284
>    kthread+0xec/0xf1
>    ? cancel_delayed_work_sync+0xf/0xf
>    ? kthread_create_on_node+0x1a/0x1a
>    ret_from_fork+0x2e/0x38
>   ---[ end trace 3ef1e3b2dd53852f ]---
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>

Acked-by: Pavel Machek <pavel@ucw.cz>

> ---
>  drivers/net/wireless/marvell/libertas/if_usb.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c
> index 5fee555a3d60..220dcdee8d2b 100644
> --- a/drivers/net/wireless/marvell/libertas/if_usb.c
> +++ b/drivers/net/wireless/marvell/libertas/if_usb.c
> @@ -459,8 +459,6 @@ static int __if_usb_submit_rx_urb(struct if_usb_card *cardp,
>  			  MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn,
>  			  cardp);
>  
> -	cardp->rx_urb->transfer_flags |= URB_ZERO_PACKET;
> -
>  	lbs_deb_usb2(&cardp->udev->dev, "Pointer for rx_urb %p\n", cardp->rx_urb);
>  	if ((ret = usb_submit_urb(cardp->rx_urb, GFP_ATOMIC))) {
>  		lbs_deb_usbd(&cardp->udev->dev, "Submit Rx URB failed: %d\n", ret);

Patch
diff mbox series

diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c
index 5fee555a3d60..220dcdee8d2b 100644
--- a/drivers/net/wireless/marvell/libertas/if_usb.c
+++ b/drivers/net/wireless/marvell/libertas/if_usb.c
@@ -459,8 +459,6 @@  static int __if_usb_submit_rx_urb(struct if_usb_card *cardp,
 			  MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn,
 			  cardp);
 
-	cardp->rx_urb->transfer_flags |= URB_ZERO_PACKET;
-
 	lbs_deb_usb2(&cardp->udev->dev, "Pointer for rx_urb %p\n", cardp->rx_urb);
 	if ((ret = usb_submit_urb(cardp->rx_urb, GFP_ATOMIC))) {
 		lbs_deb_usbd(&cardp->udev->dev, "Submit Rx URB failed: %d\n", ret);