diff options
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index ddeef41049ae..eca3e094031a 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -1887,8 +1887,16 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, | |||
1887 | QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); | 1887 | QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); |
1888 | return 0; | 1888 | return 0; |
1889 | } | 1889 | } |
1890 | card->info.max_mtu = mtu; | 1890 | if (card->info.initial_mtu && (card->info.initial_mtu != mtu)) { |
1891 | /* frame size has changed */ | ||
1892 | if (card->dev && | ||
1893 | ((card->dev->mtu == card->info.initial_mtu) || | ||
1894 | (card->dev->mtu > mtu))) | ||
1895 | card->dev->mtu = mtu; | ||
1896 | qeth_free_qdio_buffers(card); | ||
1897 | } | ||
1891 | card->info.initial_mtu = mtu; | 1898 | card->info.initial_mtu = mtu; |
1899 | card->info.max_mtu = mtu; | ||
1892 | card->qdio.in_buf_size = mtu + 2 * PAGE_SIZE; | 1900 | card->qdio.in_buf_size = mtu + 2 * PAGE_SIZE; |
1893 | } else { | 1901 | } else { |
1894 | card->info.initial_mtu = qeth_get_initial_mtu_for_card(card); | 1902 | card->info.initial_mtu = qeth_get_initial_mtu_for_card(card); |