mirror of https://gitee.com/openkylin/linux.git
tg3: Fix a memory leak on 5717+ devices
The rx resources for MSI-X interrupt vector 0 were not being freed correctly. This happens because the teardown loop continue's to the next loop iteration if it detects the tx ring for that vector is not setup, thus bypassing the rx teardown code. This patch moves the call to tg3_rx_prodring_free() earlier in the loop. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b1d0521059
commit
b28f6428af
|
@ -6229,6 +6229,8 @@ static void tg3_free_rings(struct tg3 *tp)
|
|||
for (j = 0; j < tp->irq_cnt; j++) {
|
||||
struct tg3_napi *tnapi = &tp->napi[j];
|
||||
|
||||
tg3_rx_prodring_free(tp, &tp->prodring[j]);
|
||||
|
||||
if (!tnapi->tx_buffers)
|
||||
continue;
|
||||
|
||||
|
@ -6264,8 +6266,6 @@ static void tg3_free_rings(struct tg3 *tp)
|
|||
|
||||
dev_kfree_skb_any(skb);
|
||||
}
|
||||
|
||||
tg3_rx_prodring_free(tp, &tp->prodring[j]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue