hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/mtu3/mtu3_qmu.c
....@@ -210,6 +210,7 @@
210210 return ring->enqueue;
211211 }
212212
213
+/* @dequeue may be NULL if ring is unallocated or freed */
213214 static struct qmu_gpd *advance_deq_gpd(struct mtu3_gpd_ring *ring)
214215 {
215216 if (ring->dequeue < ring->end)
....@@ -484,7 +485,7 @@
484485 dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
485486 __func__, epnum, gpd, gpd_current, ring->enqueue);
486487
487
- while (gpd != gpd_current && !GET_GPD_HWO(gpd)) {
488
+ while (gpd && gpd != gpd_current && !GET_GPD_HWO(gpd)) {
488489
489490 mreq = next_request(mep);
490491
....@@ -523,7 +524,7 @@
523524 dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
524525 __func__, epnum, gpd, gpd_current, ring->enqueue);
525526
526
- while (gpd != gpd_current && !GET_GPD_HWO(gpd)) {
527
+ while (gpd && gpd != gpd_current && !GET_GPD_HWO(gpd)) {
527528
528529 mreq = next_request(mep);
529530