s390/qeth: clean up drop conditions for received cmds
authorJulian Wiedmann <jwi@linux.ibm.com>
Wed, 26 Sep 2018 16:29:15 +0000 (18:29 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Sep 2018 16:56:07 +0000 (09:56 -0700)
If qeth_check_ipa_data() consumed an event, there's no point in
processing it further. So drop it early, and make the surrounding code
a tiny bit more readable.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core_main.c

index 954dc6c688e8176433d3d8d2f50497dbdc55b592..9cbdc6760abab0449b243f6f1a2ac19e46a159df 100644 (file)
@@ -826,16 +826,17 @@ static void qeth_send_control_data_cb(struct qeth_card *card,
        if (IS_IPA(iob->data)) {
                cmd = (struct qeth_ipa_cmd *) PDU_ENCAPSULATION(iob->data);
                cmd = qeth_check_ipa_data(card, cmd);
-       }
-       if ((cmd == NULL) && (card->state != CARD_STATE_DOWN))
-               goto out;
-       /*in case of OSN : check if cmd is set */
-       if (card->info.type == QETH_CARD_TYPE_OSN &&
-           cmd &&
-           cmd->hdr.command != IPA_CMD_STARTLAN &&
-           card->osn_info.assist_cb != NULL) {
-               card->osn_info.assist_cb(card->dev, cmd);
-               goto out;
+               if (!cmd)
+                       goto out;
+               if (IS_OSN(card) && card->osn_info.assist_cb &&
+                   cmd->hdr.command != IPA_CMD_STARTLAN) {
+                       card->osn_info.assist_cb(card->dev, cmd);
+                       goto out;
+               }
+       } else {
+               /* non-IPA commands should only flow during initialization */
+               if (card->state != CARD_STATE_DOWN)
+                       goto out;
        }
 
        spin_lock_irqsave(&card->lock, flags);