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: Jesse Brandeburg <jesse.brandeburg@intel.com>
This commit is contained in:
parent
f13b83580a
commit
aa49cdd93b
1 changed files with 4 additions and 1 deletions
|
@ -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)
|
||||||
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;
|
||||||
|
|
Reference in a new issue