mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 10:44:23 +08:00
s390/qeth: keep track of fixed prio-queue configuration
When a device is configured in prio-queue mode to pin all traffic onto a specific HW queue, treat this as a distinct variant of prio-queueing instead of QETH_NO_PRIO_QUEUEING. This corrects an error message from qeth_osa_set_output_queues() for devices configured in such a mode. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bdb0cc128b
commit
c91a1fb7a4
@ -211,6 +211,7 @@ struct qeth_vnicc_info {
|
||||
#define QETH_PRIO_Q_ING_TOS 2
|
||||
#define QETH_PRIO_Q_ING_SKB 3
|
||||
#define QETH_PRIO_Q_ING_VLAN 4
|
||||
#define QETH_PRIO_Q_ING_FIXED 5
|
||||
|
||||
/* Packing */
|
||||
#define QETH_LOW_WATERMARK_PACK 2
|
||||
|
@ -3646,6 +3646,8 @@ int qeth_get_priority_queue(struct qeth_card *card, struct sk_buff *skb)
|
||||
return ~ntohs(veth->h_vlan_TCI) >>
|
||||
(VLAN_PRIO_SHIFT + 1) & 3;
|
||||
break;
|
||||
case QETH_PRIO_Q_ING_FIXED:
|
||||
return card->qdio.default_out_queue;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -211,16 +211,16 @@ static ssize_t qeth_dev_prioqing_store(struct device *dev,
|
||||
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_VLAN;
|
||||
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
||||
} else if (sysfs_streq(buf, "no_prio_queueing:0")) {
|
||||
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
||||
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_FIXED;
|
||||
card->qdio.default_out_queue = 0;
|
||||
} else if (sysfs_streq(buf, "no_prio_queueing:1")) {
|
||||
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
||||
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_FIXED;
|
||||
card->qdio.default_out_queue = 1;
|
||||
} else if (sysfs_streq(buf, "no_prio_queueing:2")) {
|
||||
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
||||
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_FIXED;
|
||||
card->qdio.default_out_queue = 2;
|
||||
} else if (sysfs_streq(buf, "no_prio_queueing:3")) {
|
||||
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
||||
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_FIXED;
|
||||
card->qdio.default_out_queue = 3;
|
||||
} else if (sysfs_streq(buf, "no_prio_queueing")) {
|
||||
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
||||
|
Loading…
Reference in New Issue
Block a user