diff options
author | Andrew H. Richter <richtera@us.ibm.com> | 2009-03-24 04:27:51 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-24 23:24:50 +0100 |
commit | b9d2fceecb6afd9dead4fd2488a543b302a3272e (patch) | |
tree | ddfa9fc2bea3673c141f01eac894b77f20f2290a /drivers/s390 | |
parent | ctcm: fix minor findings from code analysis tool (diff) | |
download | linux-b9d2fceecb6afd9dead4fd2488a543b302a3272e.tar.xz linux-b9d2fceecb6afd9dead4fd2488a543b302a3272e.zip |
claw: fix minor findings from code analysis tool
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>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/claw.c | 44 |
1 files changed, 20 insertions, 24 deletions
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c index a4524ecd9dc4..30a43cc79e76 100644 --- a/drivers/s390/net/claw.c +++ b/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, 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; |