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

From: Chunfeng Yun (云春峰)
Date: Fri Apr 07 2023 - 03:59:57 EST


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@xxxxxxxxxxxx>
>
> 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
>
>