ibmvnic: Check for driver reset first in ibmvnic_xmit
Move the check for the driver resetting to the first thing in ibmvnic_xmit(). Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
46293b940f
Коммит
161b8a8138
|
@ -985,12 +985,6 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
|||
int index = 0;
|
||||
int ret = 0;
|
||||
|
||||
tx_pool = &adapter->tx_pool[queue_num];
|
||||
tx_scrq = adapter->tx_scrq[queue_num];
|
||||
txq = netdev_get_tx_queue(netdev, skb_get_queue_mapping(skb));
|
||||
handle_array = (u64 *)((u8 *)(adapter->login_rsp_buf) +
|
||||
be32_to_cpu(adapter->login_rsp_buf->
|
||||
off_txsubm_subcrqs));
|
||||
if (adapter->resetting) {
|
||||
if (!netif_subqueue_stopped(netdev, skb))
|
||||
netif_stop_subqueue(netdev, queue_num);
|
||||
|
@ -1002,6 +996,12 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
|||
goto out;
|
||||
}
|
||||
|
||||
tx_pool = &adapter->tx_pool[queue_num];
|
||||
tx_scrq = adapter->tx_scrq[queue_num];
|
||||
txq = netdev_get_tx_queue(netdev, skb_get_queue_mapping(skb));
|
||||
handle_array = (u64 *)((u8 *)(adapter->login_rsp_buf) +
|
||||
be32_to_cpu(adapter->login_rsp_buf->off_txsubm_subcrqs));
|
||||
|
||||
index = tx_pool->free_map[tx_pool->consumer_index];
|
||||
offset = index * adapter->req_mtu;
|
||||
dst = tx_pool->long_term_buff.buff + offset;
|
||||
|
|
Загрузка…
Ссылка в новой задаче