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 index = 0;
|
||||||
int ret = 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 (adapter->resetting) {
|
||||||
if (!netif_subqueue_stopped(netdev, skb))
|
if (!netif_subqueue_stopped(netdev, skb))
|
||||||
netif_stop_subqueue(netdev, queue_num);
|
netif_stop_subqueue(netdev, queue_num);
|
||||||
|
@ -1002,6 +996,12 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
|
||||||
goto out;
|
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];
|
index = tx_pool->free_map[tx_pool->consumer_index];
|
||||||
offset = index * adapter->req_mtu;
|
offset = index * adapter->req_mtu;
|
||||||
dst = tx_pool->long_term_buff.buff + offset;
|
dst = tx_pool->long_term_buff.buff + offset;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче