ctcm: fix minor findings from code analysis tool
authorJoel A. Fowler <fowlerja@us.ibm.com>
Tue, 24 Mar 2009 03:27:49 +0000 (03:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2009 22:24:31 +0000 (15:24 -0700)
From: Ursula Braun <ursula.braun@de.ibm.com>

This patch fixes problems in the ctcm driver identified by
static code analysis:
o remove an unnecessary always true condition in ctcm_unpack_skb
o remove duplicate assignment in ctc_mpc_alloc_channel
o remove an unnecessary always true condition in ctcmpc_send_sweep_resp
o remove duplicate initialization in ctcmpc_unpack_skb
o shorten if condition in mpc_action_go_inop
o remove INOP event if mpc group is undefined in mpc_action_doxid7

Signed-off-by: Joel A. Fowler <fowlerja@us.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/ctcm_main.c
drivers/s390/net/ctcm_mpc.c

index a7a25383db763d3be2b5f16b37288ef61b7739dd..77f4033a0f4fe0b651ed11464241aaab5ce15191 100644 (file)
@@ -168,11 +168,9 @@ void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb)
                if (len > 0) {
                        skb_pull(pskb, header->length);
                        if (skb_tailroom(pskb) < LL_HEADER_LENGTH) {
-                               if (!(ch->logflags & LOG_FLAG_OVERRUN)) {
-                                       CTCM_DBF_DEV_NAME(TRACE, dev,
-                                               "Overrun in ctcm_unpack_skb");
-                                       ch->logflags |= LOG_FLAG_OVERRUN;
-                               }
+                               CTCM_DBF_DEV_NAME(TRACE, dev,
+                                       "Overrun in ctcm_unpack_skb");
+                               ch->logflags |= LOG_FLAG_OVERRUN;
                                return;
                        }
                        skb_put(pskb, LL_HEADER_LENGTH);
index 3db5f846bbf686f9473b3dbc99c1d1e60b039551..781e18be7e8fb1cb26dcabc09df6750edac6bd2f 100644 (file)
@@ -393,7 +393,6 @@ int ctc_mpc_alloc_channel(int port_num, void (*callback)(int, int))
                } else {
                        /* there are problems...bail out            */
                        /* there may be a state mismatch so restart */
-                       grp->port_persist = 1;
                        fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
                        grp->allocchan_callback_retries = 0;
                }
@@ -699,11 +698,9 @@ static void ctcmpc_send_sweep_resp(struct channel *rch)
        return;
 
 done:
-       if (rc != 0) {
-               grp->in_sweep = 0;
-               ctcm_clear_busy_do(dev);
-               fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
-       }
+       grp->in_sweep = 0;
+       ctcm_clear_busy_do(dev);
+       fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
 
        return;
 }
@@ -1118,7 +1115,6 @@ static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
 
                if (unlikely(fsm_getstate(grp->fsm) != MPCG_STATE_READY))
                                        goto done;
-               pdu_last_seen = 0;
                while ((pskb->len > 0) && !pdu_last_seen) {
                        curr_pdu = (struct pdu *)pskb->data;
 
@@ -1396,8 +1392,7 @@ static void mpc_action_go_inop(fsm_instance *fi, int event, void *arg)
                                CTCM_FUNTAIL, dev->name);
        if ((grp->saved_state != MPCG_STATE_RESET) ||
                /* dealloc_channel has been called */
-                       ((grp->saved_state == MPCG_STATE_RESET) &&
-                                               (grp->port_persist == 0)))
+               (grp->port_persist == 0))
                fsm_deltimer(&priv->restart_timer);
 
        wch = priv->channel[WRITE];
@@ -1917,10 +1912,8 @@ static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg)
 
        if (priv)
                grp = priv->mpcg;
-       if (grp == NULL) {
-               fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
+       if (grp == NULL)
                return;
-       }
 
        for (direction = READ; direction <= WRITE; direction++) {
                struct channel *ch = priv->channel[direction];