|
@@ -374,7 +374,6 @@ static int rxq_number = 8;
|
|
|
static int txq_number = 8;
|
|
|
|
|
|
static int rxq_def;
|
|
|
-static int txq_def;
|
|
|
|
|
|
#define MVNETA_DRIVER_NAME "mvneta"
|
|
|
#define MVNETA_DRIVER_VERSION "1.0"
|
|
@@ -1475,7 +1474,8 @@ error:
|
|
|
static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
|
|
|
{
|
|
|
struct mvneta_port *pp = netdev_priv(dev);
|
|
|
- struct mvneta_tx_queue *txq = &pp->txqs[txq_def];
|
|
|
+ u16 txq_id = skb_get_queue_mapping(skb);
|
|
|
+ struct mvneta_tx_queue *txq = &pp->txqs[txq_id];
|
|
|
struct mvneta_tx_desc *tx_desc;
|
|
|
struct netdev_queue *nq;
|
|
|
int frags = 0;
|
|
@@ -1485,7 +1485,7 @@ static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
|
|
|
goto out;
|
|
|
|
|
|
frags = skb_shinfo(skb)->nr_frags + 1;
|
|
|
- nq = netdev_get_tx_queue(dev, txq_def);
|
|
|
+ nq = netdev_get_tx_queue(dev, txq_id);
|
|
|
|
|
|
/* Get a descriptor for the first part of the packet */
|
|
|
tx_desc = mvneta_txq_next_desc_get(txq);
|
|
@@ -2689,7 +2689,7 @@ static int mvneta_probe(struct platform_device *pdev)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- dev = alloc_etherdev_mq(sizeof(struct mvneta_port), 8);
|
|
|
+ dev = alloc_etherdev_mqs(sizeof(struct mvneta_port), txq_number, rxq_number);
|
|
|
if (!dev)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -2844,4 +2844,3 @@ module_param(rxq_number, int, S_IRUGO);
|
|
|
module_param(txq_number, int, S_IRUGO);
|
|
|
|
|
|
module_param(rxq_def, int, S_IRUGO);
|
|
|
-module_param(txq_def, int, S_IRUGO);
|