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: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
		
					parent
					
						
							
								641e9b73d8
							
						
					
				
			
			
				commit
				
					
						e6d26bd00c
					
				
			
		
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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 @@ pci_map_failed:
 | 
			
		|||
	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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue