diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-18 19:58:20 +0100 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-18 19:58:20 +0100 |
commit | e1d7a2de6c4249072dd886c129410e11e637ceff (patch) | |
tree | 14f3488490c4792007d4c9d678c9899c408b85f8 /drivers/net | |
parent | [PATCH] s390: fix class_device_create calls in 3270 the driver (diff) | |
parent | [PATCH] e1000: zero-out pointers in e1000_free_desc_rings (diff) | |
download | linux-e1d7a2de6c4249072dd886c129410e11e637ceff.tar.xz linux-e1d7a2de6c4249072dd886c129410e11e637ceff.zip |
Merge branch 'linville-e1000' of git://git.tuxdriver.com/git/netdev-jwl
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 8eae8ba27e84..8646914964e7 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -960,13 +960,21 @@ e1000_free_desc_rings(struct e1000_adapter *adapter) } } - if(txdr->desc) + if(txdr->desc) { pci_free_consistent(pdev, txdr->size, txdr->desc, txdr->dma); - if(rxdr->desc) + txdr->desc = NULL; + } + if(rxdr->desc) { pci_free_consistent(pdev, rxdr->size, rxdr->desc, rxdr->dma); + rxdr->desc = NULL; + } kfree(txdr->buffer_info); + txdr->buffer_info = NULL; + kfree(rxdr->buffer_info); + rxdr->buffer_info = NULL; + return; } @@ -1440,9 +1448,11 @@ static int e1000_loopback_test(struct e1000_adapter *adapter, uint64_t *data) { if((*data = e1000_setup_desc_rings(adapter))) goto err_loopback; - if((*data = e1000_setup_loopback_test(adapter))) goto err_loopback; + if((*data = e1000_setup_loopback_test(adapter))) + goto err_loopback_setup; *data = e1000_run_loopback_test(adapter); e1000_loopback_cleanup(adapter); +err_loopback_setup: e1000_free_desc_rings(adapter); err_loopback: return *data; |