Patchwork [9/9] claw: fix minor findings from code analysis tool

login
register
mail settings
Submitter Ursula Braun
Date March 24, 2009, 1:27 p.m.
Message ID <20090324133049.899501000@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/24969/
State Accepted
Delegated to: David Miller
Headers show

Comments

Ursula Braun - March 24, 2009, 1:27 p.m.
From: Andrew H. Richter <richtera@us.ibm.com>

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>
---

 drivers/s390/net/claw.c |   44 ++++++++++++++++++++------------------------
 1 file changed, 20 insertions(+), 24 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

Index: linux-2.6-uschi/drivers/s390/net/claw.c
===================================================================
--- linux-2.6-uschi.orig/drivers/s390/net/claw.c
+++ linux-2.6-uschi/drivers/s390/net/claw.c
@@ -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,
 	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 *
 			break;
 	}
 
-        return 0;
+	return rc;
 }    /*    end of find_link    */
 
 /*-------------------------------------------------------------------*
@@ -1366,7 +1360,10 @@  claw_hw_tx(struct sk_buff *skb, struct n
                 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;