summaryrefslogtreecommitdiff
path: root/drivers/s390/net/qeth_ethtool.c
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2020-10-01 19:11:32 +0200
committerDavid S. Miller <davem@davemloft.net>2020-10-02 16:22:49 -0700
commit949bbf4d2db873a6c229a43d816d9f8152b31704 (patch)
treea7d879f76b6568970c895d6c6dd685a692b3adca /drivers/s390/net/qeth_ethtool.c
parent72d5e8504e3b2b83a94403b0bbe3070b70538bb9 (diff)
downloadlwn-949bbf4d2db873a6c229a43d816d9f8152b31704.tar.gz
lwn-949bbf4d2db873a6c229a43d816d9f8152b31704.zip
s390/qeth: allow configuration of TX queues for OSA devices
For OSA devices that are _not_ configured in prio-queue mode, give users the option of selecting the number of active TX queues. This requires setting up the HW queues with a reasonable default QoS value in the QIB's PQUE parm area. As with the other device types, we bring up the device with a minimal number of TX queues for compatibility reasons. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_ethtool.c')
-rw-r--r--drivers/s390/net/qeth_ethtool.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/s390/net/qeth_ethtool.c b/drivers/s390/net/qeth_ethtool.c
index bc3ea0efb58b..b5caa723326e 100644
--- a/drivers/s390/net/qeth_ethtool.c
+++ b/drivers/s390/net/qeth_ethtool.c
@@ -220,6 +220,10 @@ static int qeth_set_channels(struct net_device *dev,
if (channels->tx_count > card->qdio.no_out_queues)
return -EINVAL;
+ /* Prio-queueing needs all TX queues: */
+ if (qeth_uses_tx_prio_queueing(card))
+ return -EPERM;
+
if (IS_IQD(card)) {
if (channels->tx_count < QETH_IQD_MIN_TXQ)
return -EINVAL;
@@ -230,10 +234,6 @@ static int qeth_set_channels(struct net_device *dev,
if (netif_running(dev) &&
channels->tx_count < dev->real_num_tx_queues)
return -EPERM;
- } else {
- /* OSA still uses the legacy prio-queue mechanism: */
- if (!IS_VM_NIC(card))
- return -EOPNOTSUPP;
}
rc = qeth_set_real_num_tx_queues(card, channels->tx_count);