lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 10 Mar 2014 08:54:18 +0900
From:	Daeseok Youn <daeseok.youn@...il.com>
To:	gregkh@...uxfoundation.org
Cc:	shaun@...source.ca, sachin.kamat@...aro.org, davem@...emloft.net,
	ying.xue@...driver.com, dulshani.gunawardhana89@...il.com,
	himangi774@...il.com, nandu.hgowda@...il.com,
	sima.baymani@...il.com, gang.chen@...anux.com,
	devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: [PATCH 1/2] staging: cxtie1: remove unneeded mkret() calls


The mkret() change a value of error from positive to
negative. This patch is modified to return negative value
when it failed. It doesn't need to call with function
for changing from positive to negative.

Signed-off-by: Daeseok Youn <daeseok.youn@...il.com>
---
 drivers/staging/cxt1e1/linux.c     |   72 +++++++++++++----------------------
 drivers/staging/cxt1e1/musycc.c    |    2 +-
 drivers/staging/cxt1e1/pmcc4_drv.c |   40 ++++++++++----------
 3 files changed, 48 insertions(+), 66 deletions(-)

diff --git a/drivers/staging/cxt1e1/linux.c b/drivers/staging/cxt1e1/linux.c
index 549efd1..5d7ddd4 100644
--- a/drivers/staging/cxt1e1/linux.c
+++ b/drivers/staging/cxt1e1/linux.c
@@ -145,16 +145,6 @@ get_hdlc_name(hdlc_device *hdlc)
 	return dev->name;
 }
 
-
-static status_t
-mkret(int bsd)
-{
-	if (bsd > 0)
-		return -bsd;
-	else
-		return bsd;
-}
-
 /***************************************************************************/
 #include <linux/workqueue.h>
 
@@ -292,8 +282,8 @@ chan_open(struct net_device *ndev)
 	}
 
 	ret = c4_chan_up(priv->ci, priv->channum);
-	if (ret)
-		return -ret;
+	if (ret < 0)
+		return ret;
 	try_module_get(THIS_MODULE);
 	netif_start_queue(ndev);
 	return 0;                       /* no error = success */
@@ -523,8 +513,8 @@ do_get_port(struct net_device *ndev, void *data)
 	if (!ci)
 		return -EINVAL;             /* get card info */
 
-	ret = mkret(c4_get_port(ci, pp.portnum));
-	if (ret)
+	ret = c4_get_port(ci, pp.portnum);
+	if (ret < 0)
 		return ret;
 	if (copy_to_user(data, &ci->port[pp.portnum].p,
 			 sizeof(struct sbecom_port_param)))
@@ -551,7 +541,7 @@ do_set_port(struct net_device *ndev, void *data)
 		return -ENXIO;
 
 	memcpy(&ci->port[pp.portnum].p, &pp, sizeof(struct sbecom_port_param));
-	return mkret(c4_set_port(ci, pp.portnum));
+	return c4_set_port(ci, pp.portnum);
 }
 
 /* work the port loopback mode as per directed */
@@ -566,7 +556,7 @@ do_port_loop(struct net_device *ndev, void *data)
 	ci = get_ci_by_dev(ndev);
 	if (!ci)
 		return -EINVAL;
-	return mkret(c4_loop_port(ci, pp.portnum, pp.port_mode));
+	return c4_loop_port(ci, pp.portnum, pp.port_mode);
 }
 
 /* set the specified register with the given value / or just read it */
@@ -582,8 +572,8 @@ do_framer_rw(struct net_device *ndev, void *data)
 	ci = get_ci_by_dev(ndev);
 	if (!ci)
 		return -EINVAL;
-	ret = mkret(c4_frame_rw(ci, &pp));
-	if (ret)
+	ret = c4_frame_rw(ci, &pp);
+	if (ret < 0)
 		return ret;
 	if (copy_to_user(data, &pp, sizeof(struct sbecom_port_param)))
 		return -EFAULT;
@@ -603,7 +593,8 @@ do_pld_rw(struct net_device *ndev, void *data)
 	ci = get_ci_by_dev(ndev);
 	if (!ci)
 		return -EINVAL;
-	ret = mkret(c4_pld_rw(ci, &pp));
+
+	ret = c4_pld_rw(ci, &pp);
 	if (ret)
 		return ret;
 	if (copy_to_user(data, &pp, sizeof(struct sbecom_port_param)))
@@ -624,8 +615,8 @@ do_musycc_rw(struct net_device *ndev, void *data)
 	ci = get_ci_by_dev(ndev);
 	if (!ci)
 		return -EINVAL;
-	ret = mkret(c4_musycc_rw(ci, &mp));
-	if (ret)
+	ret = c4_musycc_rw(ci, &mp);
+	if (ret < 0)
 		return ret;
 	if (copy_to_user(data, &mp, sizeof(struct c4_musycc_param)))
 		return -EFAULT;
@@ -642,8 +633,8 @@ do_get_chan(struct net_device *ndev, void *data)
 				sizeof(struct sbecom_chan_param)))
 		return -EFAULT;
 
-	ret = mkret(c4_get_chan(cp.channum, &cp));
-	if (ret)
+	ret = c4_get_chan(cp.channum, &cp);
+	if (ret < 0)
 		return ret;
 
 	if (copy_to_user(data, &cp, sizeof(struct sbecom_chan_param)))
@@ -655,7 +646,6 @@ static status_t
 do_set_chan(struct net_device *ndev, void *data)
 {
 	struct sbecom_chan_param cp;
-	int         ret;
 	ci_t       *ci;
 
 	if (copy_from_user(&cp, data, sizeof(struct sbecom_chan_param)))
@@ -663,13 +653,7 @@ do_set_chan(struct net_device *ndev, void *data)
 	ci = get_ci_by_dev(ndev);
 	if (!ci)
 		return -EINVAL;
-	switch (ret = mkret(c4_set_chan(cp.channum, &cp)))
-	{
-	case 0:
-		return 0;
-	default:
-		return ret;
-	}
+	return c4_set_chan(cp.channum, &cp);
 }
 
 static status_t
@@ -688,8 +672,8 @@ do_create_chan(struct net_device *ndev, void *data)
 	dev = create_chan(ndev, ci, &cp);
 	if (!dev)
 		return -EBUSY;
-	ret = mkret(c4_new_chan(ci, cp.port, cp.channum, dev));
-	if (ret) {
+	ret = c4_new_chan(ci, cp.port, cp.channum, dev);
+	if (ret < 0) {
 		/* needed due to Ioctl calling sequence */
 		rtnl_unlock();
 		unregister_hdlc_device(dev);
@@ -709,13 +693,11 @@ do_get_chan_stats(struct net_device *ndev, void *data)
 	if (copy_from_user(&ccs, data,
 			   sizeof(struct c4_chan_stats_wrap)))
 		return -EFAULT;
-	switch (ret = mkret(c4_get_chan_stats(ccs.channum, &ccs.stats)))
-	{
-	case 0:
-		break;
-	default:
+
+	ret = c4_get_chan_stats(ccs.channum, &ccs.stats);
+	if (ret < 0)
 		return ret;
-	}
+
 	if (copy_to_user(data, &ccs,
 			 sizeof(struct c4_chan_stats_wrap)))
 		return -EFAULT;
@@ -823,7 +805,7 @@ do_reset_chan_stats(struct net_device *musycc_dev, void *data)
 	if (copy_from_user(&cp, data,
 			   sizeof(struct sbecom_chan_param)))
 		return -EFAULT;
-	return mkret(c4_del_chan_stats(cp.channum));
+	return c4_del_chan_stats(cp.channum);
 }
 
 static status_t
@@ -937,7 +919,7 @@ c4_ioctl(struct net_device *ndev, struct ifreq *ifr, int cmd)
 		ret = -EINVAL;
 		break;
 	}
-	return mkret(ret);
+	return ret;
 }
 
 static const struct net_device_ops c4_ops = {
@@ -963,7 +945,7 @@ c4_add_dev(hdw_info_t *hi, int brdno, unsigned long f0, unsigned long f1,
 	if (!ndev) {
 		pr_warning("%s: no memory for struct net_device !\n",
 			   hi->devname);
-		error_flag = ENOMEM;
+		error_flag = -ENOMEM;
 		return NULL;
 	}
 	ci = (ci_t *)(netdev_priv(ndev));
@@ -998,7 +980,7 @@ c4_add_dev(hdw_info_t *hi, int brdno, unsigned long f0, unsigned long f1,
 		(c4_init(ci, (u_char *) f0, (u_char *) f1) != SBE_DRVR_SUCCESS)) {
 		OS_kfree(netdev_priv(ndev));
 		OS_kfree(ndev);
-		error_flag = ENODEV;
+		error_flag = -ENODEV;
 		return NULL;
 	}
 	/*************************************************************
@@ -1024,7 +1006,7 @@ c4_add_dev(hdw_info_t *hi, int brdno, unsigned long f0, unsigned long f1,
 		unregister_netdev(ndev);
 		OS_kfree(netdev_priv(ndev));
 		OS_kfree(ndev);
-		error_flag = EIO;
+		error_flag = -EIO;
 		return NULL;
 	}
 #ifdef CONFIG_SBE_PMCC4_NCOMM
@@ -1034,7 +1016,7 @@ c4_add_dev(hdw_info_t *hi, int brdno, unsigned long f0, unsigned long f1,
 		free_irq(irq0, ndev);
 		OS_kfree(netdev_priv(ndev));
 		OS_kfree(ndev);
-		error_flag = EIO;
+		error_flag = -EIO;
 		return NULL;
 	}
 #endif
diff --git a/drivers/staging/cxt1e1/musycc.c b/drivers/staging/cxt1e1/musycc.c
index 42b6ada..f91b5510 100644
--- a/drivers/staging/cxt1e1/musycc.c
+++ b/drivers/staging/cxt1e1/musycc.c
@@ -1548,7 +1548,7 @@ musycc_chan_down(ci_t *dummy, int channum)
 
     ch = sd_find_chan(dummy, channum);
     if (!ch)
-	return EINVAL;
+	return -EINVAL;
     pi = ch->up;
     gchan = ch->gchan;
 
diff --git a/drivers/staging/cxt1e1/pmcc4_drv.c b/drivers/staging/cxt1e1/pmcc4_drv.c
index a9d9575..bcd61df 100644
--- a/drivers/staging/cxt1e1/pmcc4_drv.c
+++ b/drivers/staging/cxt1e1/pmcc4_drv.c
@@ -756,7 +756,7 @@ c4_frame_rw (ci_t *ci, struct sbecom_port_param *pp)
     volatile u_int32_t data;
 
     if (pp->portnum >= ci->max_port)/* sanity check */
-        return ENXIO;
+        return -ENXIO;
 
     comet = ci->port[pp->portnum].cometbase;
     data = pci_read_32 ((u_int32_t *) comet + pp->port_mode) & 0xff;
@@ -845,7 +845,7 @@ c4_musycc_rw (ci_t *ci, struct c4_musycc_param *mcp)
      */
     portnum = (mcp->offset % 0x6000) / 0x800;
     if (portnum >= ci->max_port)
-        return ENXIO;
+        return -ENXIO;
     pi = &ci->port[portnum];
     if (mcp->offset >= 0x6000)
         offset += 0x6000;           /* put back in MsgCfgDesc address offset */
@@ -894,7 +894,7 @@ status_t
 c4_get_port (ci_t *ci, int portnum)
 {
     if (portnum >= ci->max_port)    /* sanity check */
-        return ENXIO;
+        return -ENXIO;
 
     SD_SEM_TAKE (&ci->sem_wdbusy, "_wd_");      /* only 1 thru here, per
                                                  * board */
@@ -915,7 +915,7 @@ c4_set_port (ci_t *ci, int portnum)
     int         i;
 
     if (portnum >= ci->max_port)    /* sanity check */
-        return ENXIO;
+        return -ENXIO;
 
     pi = &ci->port[portnum];
     pp = &ci->port[portnum].p;
@@ -927,7 +927,7 @@ c4_set_port (ci_t *ci, int portnum)
                 portnum, e1mode, pi->openchans);
     }
     if (pi->openchans)
-        return EBUSY;               /* group needs initialization only for
+        return -EBUSY;               /* group needs initialization only for
                                      * first channel of a group */
 
     {
@@ -1018,10 +1018,10 @@ c4_new_chan (ci_t *ci, int portnum, int channum, void *user)
     int         gchan;
 
     if (c4_find_chan (channum))     /* a new channel shouldn't already exist */
-        return EEXIST;
+        return -EEXIST;
 
     if (portnum >= ci->max_port)    /* sanity check */
-        return ENXIO;
+        return -ENXIO;
 
     pi = &(ci->port[portnum]);
     /* find any available channel within this port */
@@ -1032,7 +1032,7 @@ c4_new_chan (ci_t *ci, int portnum, int channum, void *user)
             break;
     }
     if (gchan == MUSYCC_NCHANS)     /* exhausted table, all were assigned */
-        return ENFILE;
+        return -ENFILE;
 
     ch->up = pi;
 
@@ -1080,7 +1080,7 @@ c4_del_chan (int channum)
     mch_t      *ch;
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
     if (ch->state == UP)
         musycc_chan_down ((ci_t *) 0, channum);
     ch->state = UNASSIGNED;
@@ -1096,7 +1096,7 @@ c4_del_chan_stats (int channum)
     mch_t      *ch;
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
 
     memset (&ch->s, 0, sizeof (struct sbecom_chan_stats));
     return 0;
@@ -1110,18 +1110,18 @@ c4_set_chan (int channum, struct sbecom_chan_param *p)
     int         i, x = 0;
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
 
 #if 1
     if (ch->p.card != p->card ||
         ch->p.port != p->port ||
         ch->p.channum != p->channum)
-        return EINVAL;
+        return -EINVAL;
 #endif
 
     if (!(ch->up->group_is_set))
     {
-        return EIO;                 /* out of order, SET_PORT command
+        return -EIO;                 /* out of order, SET_PORT command
                                      * required prior to first group's
                                      * SET_CHAN command */
     }
@@ -1160,7 +1160,7 @@ c4_get_chan (int channum, struct sbecom_chan_param *p)
     mch_t      *ch;
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
     *p = ch->p;
     return 0;
 }
@@ -1171,7 +1171,7 @@ c4_get_chan_stats (int channum, struct sbecom_chan_stats *p)
     mch_t      *ch;
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
     *p = ch->s;
     p->tx_pending = atomic_read (&ch->tx_pending);
     return 0;
@@ -1241,7 +1241,7 @@ c4_chan_up (ci_t *ci, int channum)
                                  * platform */
 
     if (!(ch = c4_find_chan (channum)))
-        return ENOENT;
+        return -ENOENT;
     if (ch->state == UP)
     {
         if (cxt1e1_log_level >= LOG_MONITOR)
@@ -1264,7 +1264,7 @@ c4_chan_up (ci_t *ci, int channum)
                 pr_info("+ ask4 %x, currently %x\n",
                         ch->p.bitmask[i], pi->tsm[i]);
             }
-            return EINVAL;
+            return -EINVAL;
         }
         for (j = 0; j < 8; j++)
             if (ch->p.bitmask[i] & (1 << j))
@@ -1277,7 +1277,7 @@ c4_chan_up (ci_t *ci, int channum)
         /* if( cxt1e1_log_level >= LOG_WARN)  */
         pr_info("%s: c4_chan_up[%d] ENOBUFS (no TimeSlots assigned)\n",
                 ci->devname, channum);
-        return ENOBUFS;             /* this should not happen */
+        return -ENOBUFS;             /* this should not happen */
     }
     addr = c4_fifo_alloc (pi, gchan, &nbuf);
     ch->state = UP;
@@ -1454,7 +1454,7 @@ errfree:
     ch->mdr = NULL;
     ch->rxd_num = 0;
     ch->state = DOWN;
-    return ENOBUFS;
+    return -ENOBUFS;
 }
 
 /* stop the hardware from servicing & interrupting */
@@ -1534,7 +1534,7 @@ c4_get_iidinfo (ci_t *ci, struct sbe_iid_info *iip)
     char       *np;
 
     if (!(dev = getuserbychan (iip->channum)))
-        return ENOENT;
+        return -ENOENT;
 
     np = dev->name;
     strncpy (iip->iname, np, CHNM_STRLEN - 1);
-- 
1.7.4.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists