Re: 4.14 dwc3 gadget mode panic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 24 Nov 2017 16:45:53 +0200, Felipe Balbi <balbi@xxxxxxxxxx>
wrote:
> no, it's not. This is because of our call to wait_event_lock_irq() in
> dwc3_gadget_ep_dequeue(). That call works fine in all other cases
> because dequeue is never called with IRQs disabled, apart from this one
> case in f_fs.c :-)
> 
> Can you confirm that this helps:
> 
> modified   drivers/usb/gadget/function/f_fs.c
> @@ -1077,15 +1077,11 @@ static int ffs_aio_cancel(struct kiocb *kiocb)
>  
>  	ENTER();
>  
> -	spin_lock_irq(&epfile->ffs->eps_lock);
> -
>  	if (likely(io_data && io_data->ep && io_data->req))
>  		value = usb_ep_dequeue(io_data->ep, io_data->req);
>  	else
>  		value = -EINVAL;
>  
> -	spin_unlock_irq(&epfile->ffs->eps_lock);
> -
>  	return value;
>  }
>  

It sadly does not help, though it does something: now serial output
stops early (tried twice, happened twice):

[  103.274725] BUG: scheduling while atomic: swapper/1/0/0x00000100
[  103.280990] 3 locks held by swapper/1/0:
[  103.280998]  #0:  (rcu_callback){....}, at: [<c10b4ff0>] rcu_process_callbacks+0x260/0x440
[  103.281053]  #1:  (rcu_read_lock_sched){....}, at: [<c1358ba0>] percpu_ref_switch_to_atomic_rcu+0xb0/0x130
[  103.281097]  #2:  (&(&ctx->ctx_lock)->rlock){....}, at: [<c11f0c73>] free_ioctx_us

So I do not get dropped to kdb...
-- 
Vincent Pelletier
--
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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux