qeth: allow HiperSockets framesize change in suspend
For HiperSockets the framesize-definition determines the selected mtu-size and the size of the allocated qdio buffers. A framesize-change may occur while a Linux system with probed HiperSockets device is in suspend state. This patch enables proper resuming of a HiperSockets device in this case. 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
9853b97bcc
commit
8b2e18f662
1 changed files with 9 additions and 1 deletions
|
@ -1887,8 +1887,16 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply,
|
|||
QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc);
|
||||
return 0;
|
||||
}
|
||||
card->info.max_mtu = mtu;
|
||||
if (card->info.initial_mtu && (card->info.initial_mtu != mtu)) {
|
||||
/* frame size has changed */
|
||||
if (card->dev &&
|
||||
((card->dev->mtu == card->info.initial_mtu) ||
|
||||
(card->dev->mtu > mtu)))
|
||||
card->dev->mtu = mtu;
|
||||
qeth_free_qdio_buffers(card);
|
||||
}
|
||||
card->info.initial_mtu = mtu;
|
||||
card->info.max_mtu = mtu;
|
||||
card->qdio.in_buf_size = mtu + 2 * PAGE_SIZE;
|
||||
} else {
|
||||
card->info.initial_mtu = qeth_get_initial_mtu_for_card(card);
|
||||
|
|
Loading…
Reference in a new issue