diff options
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/adm5120/files/drivers/net/adm5120sw.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/target/linux/adm5120/files/drivers/net/adm5120sw.c b/target/linux/adm5120/files/drivers/net/adm5120sw.c index c8c3f1d5b..234b6c514 100644 --- a/target/linux/adm5120/files/drivers/net/adm5120sw.c +++ b/target/linux/adm5120/files/drivers/net/adm5120sw.c @@ -843,6 +843,7 @@ static int adm5120_if_hard_start_xmit(struct sk_buff *skb,  	struct adm5120_if_priv *priv = netdev_priv(dev);  	unsigned int entry;  	unsigned long data; +	int i;  	/* lock switch irq */  	spin_lock_irq(&tx_lock); @@ -875,8 +876,11 @@ static int adm5120_if_hard_start_xmit(struct sk_buff *skb,  	cur_txl++;  	if (cur_txl == dirty_txl + TX_QUEUE_LEN) { -		/* FIXME: stop queue for all devices */ -		netif_stop_queue(dev); +		for (i = 0; i < SWITCH_NUM_PORTS; i++) { +			if (!adm5120_devs[i]) +				continue; +			netif_stop_queue(dev); +		}  	}  	dev->trans_start = jiffies; | 
