Patch "s390/qeth: issue STARTLAN as first IPA command" has been added to the 4.9-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
s390/qeth: issue STARTLAN as first IPA command
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-qeth-issue-startlan-as-first-ipa-command.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Nov 9 09:48:01 CET 2017
From: Julian Wiedmann <[email protected]>
Date: Thu, 12 Jan 2017 15:48:42 +0100
Subject: s390/qeth: issue STARTLAN as first IPA command
From: Julian Wiedmann <[email protected]>
[ Upstream commit 1034051045d125579ab1e8fcd5a724eeb0e70149 ]
STARTLAN needs to be the first IPA command after MPC initialization completes.
So move the qeth_send_startlan() call from the layer disciplines into the core path, right after the MPC handshake.
While at it, replace the magic LAN OFFLINE return code with the existing enum.
--- drivers/s390/net/qeth_core.h | 1 - drivers/s390/net/qeth_core_main.c | 21 +++++++++++++++++---- drivers/s390/net/qeth_l2_main.c | 15 --------------- drivers/s390/net/qeth_l3_main.c | 15 --------------- 4 files changed, 17 insertions(+), 35 deletions(-)
drivers/s390/net/qeth_core.h +0 -1
@@ -921,7 +921,6 @@ void qeth_clear_thread_running_bit(strucint qeth_core_hardsetup_card (struct qeth_card *);void qeth_print_status_message (struct qeth_card *);int qeth_init_qdio_queues (struct qeth_card *); -int qeth_send_startlan (struct qeth_card *); int qeth_send_ipa_cmd(struct qeth_card *, struct qeth_cmd_buffer *, int (*reply_cb) (struct qeth_card *, struct qeth_reply *, unsigned long),
drivers/s390/net/qeth_core_main.c +17 -4
@@ -2944,7 +2944,7 @@ int qeth_send_ipa_cmd(struct qeth_card * }EXPORT_SYMBOL_GPL (qeth_send_ipa_cmd); -int qeth_send_startlan (struct qeth_card *card) +static int qeth_send_startlan (struct qeth_card *card) {int rc;struct qeth_cmd_buffer *iob;
@@ -2957,7 +2957,6 @@ int qeth_send_startlan(struct qeth_card rc =qeth_send_ipa_cmd (card, iob,NULL ,NULL );return rc; } -EXPORT_SYMBOL_GPL (qeth_send_startlan);static int qeth_default_setadapterparms_cb (struct qeth_card *card,struct qeth_reply *reply,unsigned long data)
@@ -5091,6 +5090,20 @@ retriable: goto out; } + rc =qeth_send_startlan (card); +if (rc) { +QETH_DBF_TEXT_ (SETUP ,2 ,"6err%d" , rc); +if (rc ==IPA_RC_LAN_OFFLINE ) { +dev_warn (&card->gdev->dev, +"The LAN is offline\n" ); + card->lan_online =0 ; + }else { + rc = -ENODEV ; + goto out; + } + }else + card->lan_online =1 ; + card->options.ipa4.supported_funcs =0 ; card->options.ipa6.supported_funcs =0 ; card->options.adp.supported_funcs =0 ;
@@ -5102,14 +5115,14 @@ retriable:if (qeth_is_supported (card,IPA_SETADAPTERPARMS )) { rc =qeth_query_setadapterparms (card);if (rc <0 ) { -QETH_DBF_TEXT_ (SETUP ,2 ,"6err%d" , rc); +QETH_DBF_TEXT_ (SETUP ,2 ,"7err%d" , rc); goto out; } }if (qeth_adp_supported (card,IPA_SETADP_SET_DIAG_ASSIST )) { rc =qeth_query_setdiagass (card);if (rc <0 ) { -QETH_DBF_TEXT_ (SETUP ,2 ,"7err%d" , rc); +QETH_DBF_TEXT_ (SETUP ,2 ,"8err%d" , rc); goto out; } }
drivers/s390/net/qeth_l2_main.c +0 -15
@@ -1204,21 +1204,6 @@ static int __qeth_l2_set_online(struct c/* softsetup */ QETH_DBF_TEXT (SETUP ,2 ,"softsetp" ); - rc =qeth_send_startlan (card); -if (rc) { -QETH_DBF_TEXT_ (SETUP ,2 ,"1err%d" , rc); -if (rc ==0xe080 ) { -dev_warn (&card->gdev->dev, -"The LAN is offline\n" ); - card->lan_online =0 ; - goto contin; - } - rc = -ENODEV ; - goto out_remove; - }else - card->lan_online =1 ; - -contin:if ((card->info.type ==QETH_CARD_TYPE_OSD ) || (card->info.type ==QETH_CARD_TYPE_OSX )) { rc =qeth_l2_start_ipassists (card);
drivers/s390/net/qeth_l3_main.c +0 -15
@@ -3230,21 +3230,6 @@ static int __qeth_l3_set_online(struct c/* softsetup */ QETH_DBF_TEXT (SETUP ,2 ,"softsetp" ); - rc =qeth_send_startlan (card); -if (rc) { -QETH_DBF_TEXT_ (SETUP ,2 ,"1err%d" , rc); -if (rc ==0xe080 ) { -dev_warn (&card->gdev->dev, -"The LAN is offline\n" ); - card->lan_online =0 ; - goto contin; - } - rc = -ENODEV ; - goto out_remove; - }else - card->lan_online =1 ; - -contin: rc =qeth_l3_setadapter_parms (card);if (rc)QETH_DBF_TEXT_ (SETUP ,2 ,"2err%04x" , rc);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/s390-qeth-fix-retrieval-of-vipa-and-proxy-arp-addresses.patch queue-4.9/s390-qeth-issue-startlan-as-first-ipa-command.patch