[PATCH 3/7] usb: mtu3: fix KE at qmu transfer done irq handler

Chunfeng Yun (云春峰) Chunfeng.Yun at mediatek.com
Fri Apr 7 00:59:32 PDT 2023


On Mon, 2023-04-03 at 14:31 +0200, AngeloGioacchino Del Regno wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Il 03/04/23 04:52, Chunfeng Yun ha scritto:
> > When handle qmu transfer irq, it will unlock @mtu->lock before give
> > back
> > request, if another thread hanlde disconnect event at the same
> > time, and
> > try to disable ep, it may lock @mtu->lock and free qmu ring, then
> > qmu
> > irq hanlder may get a NULL gpd, avoid the KE by checking gpd's
> > value before
> 
> KE == Kernel Error? I think you wanted to say KP == Kernel Panic
> instead.
> 
> Also, s/hanlder/handler/g.
Ok, will modify it
> 
> > handling it.
> > 
> > e.g.
> > qmu done irq on cpu0                 thread running on cpu1
> > 
> > qmu_done_tx()
> >    handle gpd [0]
> >      mtu3_requ_complete()        mtu3_gadget_ep_disable()
> >        unlock @mtu->lock
> >          give back request         lock @mtu->lock
> >                                      mtu3_ep_disable()
> >                                        mtu3_gpd_ring_free()
> >                                     unlock @mtu->lock
> >        lock @mtu->lock
> >      get next gpd [1]
> > 
> > [1]: goto [0] to handle next gpd, and next gpd may be NULL.
> 
>  >
>  > Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
> 
> This is a fix and needs a Fixes tag.
I usually add Fixes tag when the issue introduced by a patch except the
original one when the driver applied.

Thanks a lot

> 
> Regards,
> Angelo
> 
> 


More information about the Linux-mediatek mailing list