mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
qeth: do not apply priority queuing to HiperSockets
OSA cards can be configured to support 1 or 4 output queues. This does not apply to HiperSockets. This patch limits determination of the configured number of output queues to OSA cards only, but excludes HiperSockets. Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1d31f52e38
commit
99558ea93c
@ -995,27 +995,29 @@ static void qeth_get_channel_path_desc(struct qeth_card *card)
|
||||
ccwdev = card->data.ccwdev;
|
||||
chp_dsc = (struct channelPath_dsc *)ccw_device_get_chp_desc(ccwdev, 0);
|
||||
if (chp_dsc != NULL) {
|
||||
/* CHPP field bit 6 == 1 -> single queue */
|
||||
if ((chp_dsc->chpp & 0x02) == 0x02) {
|
||||
if ((atomic_read(&card->qdio.state) !=
|
||||
QETH_QDIO_UNINITIALIZED) &&
|
||||
(card->qdio.no_out_queues == 4))
|
||||
/* change from 4 to 1 outbound queues */
|
||||
qeth_free_qdio_buffers(card);
|
||||
card->qdio.no_out_queues = 1;
|
||||
if (card->qdio.default_out_queue != 0)
|
||||
dev_info(&card->gdev->dev,
|
||||
if (card->info.type != QETH_CARD_TYPE_IQD) {
|
||||
/* CHPP field bit 6 == 1 -> single queue */
|
||||
if ((chp_dsc->chpp & 0x02) == 0x02) {
|
||||
if ((atomic_read(&card->qdio.state) !=
|
||||
QETH_QDIO_UNINITIALIZED) &&
|
||||
(card->qdio.no_out_queues == 4))
|
||||
/* change from 4 to 1 outbound queues */
|
||||
qeth_free_qdio_buffers(card);
|
||||
card->qdio.no_out_queues = 1;
|
||||
if (card->qdio.default_out_queue != 0)
|
||||
dev_info(&card->gdev->dev,
|
||||
"Priority Queueing not supported\n");
|
||||
card->qdio.default_out_queue = 0;
|
||||
} else {
|
||||
if ((atomic_read(&card->qdio.state) !=
|
||||
QETH_QDIO_UNINITIALIZED) &&
|
||||
(card->qdio.no_out_queues == 1)) {
|
||||
/* change from 1 to 4 outbound queues */
|
||||
qeth_free_qdio_buffers(card);
|
||||
card->qdio.default_out_queue = 2;
|
||||
card->qdio.default_out_queue = 0;
|
||||
} else {
|
||||
if ((atomic_read(&card->qdio.state) !=
|
||||
QETH_QDIO_UNINITIALIZED) &&
|
||||
(card->qdio.no_out_queues == 1)) {
|
||||
/* change from 1 to 4 outbound queues */
|
||||
qeth_free_qdio_buffers(card);
|
||||
card->qdio.default_out_queue = 2;
|
||||
}
|
||||
card->qdio.no_out_queues = 4;
|
||||
}
|
||||
card->qdio.no_out_queues = 4;
|
||||
}
|
||||
card->info.func_level = 0x4100 + chp_dsc->desc;
|
||||
kfree(chp_dsc);
|
||||
|
Loading…
Reference in New Issue
Block a user