aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
diff options
context:
space:
mode:
authorIntiyaz Basha <intiyaz.basha@cavium.com>2017-08-09 12:07:08 -0700
committerDavid S. Miller <davem@davemloft.net>2017-08-11 13:54:41 -0700
commitc1550fde51482feebeb8e27742672a2614cb1f12 (patch)
tree689b8d22ee8bba958544cb60ef0ec13f88f9359d /drivers/net/ethernet/cavium/liquidio/octeon_droq.c
parentMerge branch 'net-sched-let-the-offloader-decide-what-to-offload' (diff)
downloadlinux-dev-c1550fde51482feebeb8e27742672a2614cb1f12.tar.xz
linux-dev-c1550fde51482feebeb8e27742672a2614cb1f12.zip
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>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/octeon_droq.c')
-rw-r--r--drivers/net/ethernet/cavium/liquidio/octeon_droq.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
index f7b5d68eb4cf..9372d4ce9954 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
@@ -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;
}