claw: fix minor findings from code analysis tool
authorAndrew H. Richter <richtera@us.ibm.com>
Tue, 24 Mar 2009 03:27:51 +0000 (03:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2009 22:24:50 +0000 (15:24 -0700)
This patch fixes two problems in the claw driver identified by
static code analysis:
o Change in case differentiation of received sense codes
o Use correct data length in claw hard_start_xmit routine

Signed-off-by: Andrew H. Richter <richtera@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/claw.c

index a4524ecd9dc48df8391cc1f9f74e79fa84bfd78b..30a43cc79e7657c585ecbe1d34f82756fb7f3af5 100644 (file)
@@ -1033,7 +1033,7 @@ static int
 pages_to_order_of_mag(int num_of_pages)
 {
        int     order_of_mag=1;         /* assume 2 pages */
-       int     nump=2;
+       int     nump;
 
        CLAW_DBF_TEXT_(5, trace, "pages%d", num_of_pages);
        if (num_of_pages == 1)   {return 0; }  /* magnitude of 0 = 1 page */
@@ -1187,37 +1187,31 @@ ccw_check_unit_check(struct chbk * p_ch, unsigned char sense )
        dev_warn(dev, "The communication peer of %s disconnected\n",
                ndev->name);
 
-        if (sense & 0x40) {
-                if (sense & 0x01) {
+       if (sense & 0x40) {
+               if (sense & 0x01) {
                        dev_warn(dev, "The remote channel adapter for"
                                " %s has been reset\n",
                                ndev->name);
-                }
-        }
-        else if (sense & 0x20) {
-                if (sense & 0x04) {
+               }
+       } else if (sense & 0x20) {
+               if (sense & 0x04) {
                        dev_warn(dev, "A data streaming timeout occurred"
                                " for %s\n",
                                ndev->name);
-                }
-                else  {
-                       dev_warn(dev, "A data transfer parity error occurred"
-                               " for %s\n",
-                               ndev->name);
-                }
-        }
-        else if (sense & 0x10) {
-                if (sense & 0x20) {
+               } else if (sense & 0x10) {
                        dev_warn(dev, "The remote channel adapter for %s"
                                " is faulty\n",
                                ndev->name);
-                }
-                else {
-                       dev_warn(dev, "A read data parity error occurred"
+               } else {
+                       dev_warn(dev, "A data transfer parity error occurred"
                                " for %s\n",
                                ndev->name);
-                }
-        }
+               }
+       } else if (sense & 0x10) {
+               dev_warn(dev, "A read data parity error occurred"
+                       " for %s\n",
+                       ndev->name);
+       }
 
 }   /*    end of ccw_check_unit_check    */
 
@@ -1254,7 +1248,7 @@ find_link(struct net_device *dev, char *host_name, char *ws_name )
                        break;
        }
 
-        return 0;
+       return rc;
 }    /*    end of find_link    */
 
 /*-------------------------------------------------------------------*
@@ -1366,7 +1360,10 @@ claw_hw_tx(struct sk_buff *skb, struct net_device *dev, long linkid)
                 privptr->p_write_free_chain=p_this_ccw->next;
                 p_this_ccw->next=NULL;
                 --privptr->write_free_count; /* -1 */
-                bytesInThisBuffer=len_of_data;
+               if (len_of_data >= privptr->p_env->write_size)
+                       bytesInThisBuffer = privptr->p_env->write_size;
+               else
+                       bytesInThisBuffer = len_of_data;
                 memcpy( p_this_ccw->p_buffer,pDataAddress, bytesInThisBuffer);
                 len_of_data-=bytesInThisBuffer;
                 pDataAddress+=(unsigned long)bytesInThisBuffer;
@@ -2517,7 +2514,6 @@ unpack_read(struct net_device *dev )
        p_dev = &privptr->channel[READ].cdev->dev;
        p_env = privptr->p_env;
         p_this_ccw=privptr->p_read_active_first;
-        i=0;
        while (p_this_ccw!=NULL && p_this_ccw->header.flag!=CLAW_PENDING) {
                pack_off = 0;
                p = 0;