[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0d4162ea-e161-5afd-8b27-92f8e53b52aa@collabora.com>
Date: Fri, 7 Apr 2023 11:09:06 +0200
From: AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>
To: Chunfeng Yun <chunfeng.yun@...iatek.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Rob Herring <robh+dt@...nel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Matthias Brugger <matthias.bgg@...il.com>,
linux-usb@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
Tianping Fang <tianping.fang@...iatek.com>
Subject: Re: [PATCH v2 3/7] usb: mtu3: fix kernel panic at qmu transfer done
irq handler
Il 07/04/23 10:29, Chunfeng Yun ha scritto:
> When handle qmu transfer irq, it will unlock @mtu->lock before give back
> request, if another thread handle 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
> 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@...iatek.com>
NACK. You still miss the Fixes tag.
Regards,
Angelo
Powered by blists - more mailing lists