Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8c80b84 authored by Thomas Falcon's avatar Thomas Falcon Committed by David S. Miller
Browse files

ibmvnic: Halt TX and report carrier off on H_CLOSED return code



This patch disables transmissions and reports carrier off if xmit
function returns that the hardware TX queue is closed. The driver can
then await a signal from firmware to determine the correct reset method.

Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8cb31cfc
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1111,8 +1111,14 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
		dev_kfree_skb_any(skb);
		tx_buff->skb = NULL;

		if (lpar_rc == H_CLOSED)
			netif_stop_subqueue(netdev, queue_num);
		if (lpar_rc == H_CLOSED) {
			/* Disable TX and report carrier off if queue is closed.
			 * Firmware guarantees that a signal will be sent to the
			 * driver, triggering a reset or some other action.
			 */
			netif_tx_stop_all_queues(netdev);
			netif_carrier_off(netdev);
		}

		tx_send_failed++;
		tx_dropped++;