mirror of https://gitee.com/openkylin/linux.git
liquidio: rx/tx queue cleanup
When deleting a queue, clear its corresponding bit in the qmask, vfree its memory, clear out the pointer that's pointing to it, and decrement the queue count. Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com> Signed-off-by: Felix Manlunas <fmanlunas@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d853d11239
commit
c1550fde51
|
@ -209,6 +209,10 @@ int octeon_delete_droq(struct octeon_device *oct, u32 q_no)
|
|||
droq->desc_ring, droq->desc_ring_dma);
|
||||
|
||||
memset(droq, 0, OCT_DROQ_SIZE);
|
||||
oct->io_qmask.oq &= ~(1ULL << q_no);
|
||||
vfree(oct->droq[q_no]);
|
||||
oct->droq[q_no] = NULL;
|
||||
oct->num_oqs--;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -190,6 +190,10 @@ int octeon_delete_instr_queue(struct octeon_device *oct, u32 iq_no)
|
|||
q_size = iq->max_count * desc_size;
|
||||
lio_dma_free(oct, (u32)q_size, iq->base_addr,
|
||||
iq->base_addr_dma);
|
||||
oct->io_qmask.iq &= ~(1ULL << iq_no);
|
||||
vfree(oct->instr_queue[iq_no]);
|
||||
oct->instr_queue[iq_no] = NULL;
|
||||
oct->num_iqs--;
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue