.. | .. |
---|
210 | 210 | return ring->enqueue; |
---|
211 | 211 | } |
---|
212 | 212 | |
---|
| 213 | +/* @dequeue may be NULL if ring is unallocated or freed */ |
---|
213 | 214 | static struct qmu_gpd *advance_deq_gpd(struct mtu3_gpd_ring *ring) |
---|
214 | 215 | { |
---|
215 | 216 | if (ring->dequeue < ring->end) |
---|
.. | .. |
---|
484 | 485 | dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n", |
---|
485 | 486 | __func__, epnum, gpd, gpd_current, ring->enqueue); |
---|
486 | 487 | |
---|
487 | | - while (gpd != gpd_current && !GET_GPD_HWO(gpd)) { |
---|
| 488 | + while (gpd && gpd != gpd_current && !GET_GPD_HWO(gpd)) { |
---|
488 | 489 | |
---|
489 | 490 | mreq = next_request(mep); |
---|
490 | 491 | |
---|
.. | .. |
---|
523 | 524 | dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n", |
---|
524 | 525 | __func__, epnum, gpd, gpd_current, ring->enqueue); |
---|
525 | 526 | |
---|
526 | | - while (gpd != gpd_current && !GET_GPD_HWO(gpd)) { |
---|
| 527 | + while (gpd && gpd != gpd_current && !GET_GPD_HWO(gpd)) { |
---|
527 | 528 | |
---|
528 | 529 | mreq = next_request(mep); |
---|
529 | 530 | |
---|