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

Commit e6d26bd0 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

s2io: Call dev_kfree_skb_any instead of dev_kfree_skb.



Replace dev_kfree_skb with dev_kfree_skb_any in s2io_xmit that can
be called in hard irq and other contexts.

All instances that are changed are packet drops.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 641e9b73
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -4049,7 +4049,7 @@ static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev)
	if (!is_s2io_card_up(sp)) {
		DBG_PRINT(TX_DBG, "%s: Card going down for reset\n",
			  dev->name);
		dev_kfree_skb(skb);
		dev_kfree_skb_any(skb);
		return NETDEV_TX_OK;
	}

@@ -4122,7 +4122,7 @@ static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev)
	    ((put_off+1) == queue_len ? 0 : (put_off+1)) == get_off) {
		DBG_PRINT(TX_DBG, "Error in xmit, No free TXDs.\n");
		s2io_stop_tx_queue(sp, fifo->fifo_no);
		dev_kfree_skb(skb);
		dev_kfree_skb_any(skb);
		spin_unlock_irqrestore(&fifo->tx_lock, flags);
		return NETDEV_TX_OK;
	}
@@ -4244,7 +4244,7 @@ static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev)
	swstats->pci_map_fail_cnt++;
	s2io_stop_tx_queue(sp, fifo->fifo_no);
	swstats->mem_freed += skb->truesize;
	dev_kfree_skb(skb);
	dev_kfree_skb_any(skb);
	spin_unlock_irqrestore(&fifo->tx_lock, flags);
	return NETDEV_TX_OK;
}