Commit aa49cdd9 authored by Jesse Brandeburg's avatar Jesse Brandeburg

e100: fix eeh on pseries during ethtool -t

Olaf Hering reported a problem on pseries with e100 where ethtool -t would
cause a bus error, and the e100 driver would stop working.  Due to the new
load ucode command the cb list must be allocated before calling
e100_init_hw, so remove the call and just let e100_up take care of it.
Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
parent f13b8358
...@@ -2154,6 +2154,9 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) ...@@ -2154,6 +2154,9 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
msleep(10); msleep(10);
pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr,
RFD_BUF_LEN, PCI_DMA_FROMDEVICE);
if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd),
skb->data, ETH_DATA_LEN)) skb->data, ETH_DATA_LEN))
err = -EAGAIN; err = -EAGAIN;
...@@ -2161,8 +2164,8 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) ...@@ -2161,8 +2164,8 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
err_loopback_none: err_loopback_none:
mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, 0); mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, 0);
nic->loopback = lb_none; nic->loopback = lb_none;
e100_hw_init(nic);
e100_clean_cbs(nic); e100_clean_cbs(nic);
e100_hw_reset(nic);
err_clean_rx: err_clean_rx:
e100_rx_clean_list(nic); e100_rx_clean_list(nic);
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment