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

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

 



Il 07/04/23 09:59, Chunfeng Yun (云春峰) ha scritto:
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.


If this patch is a fix for the "original driver", you shall still add a
Fixes tag which advertises that this fixes the first commit, so the driver
was broken from the very beginning.

Thanks,
Angelo.




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux