From: Balakumaran Kannan <kumaran.4353@gmail.com>
To: davem@davemloft.net, kuznet@ms2.inr.ac.ru, jmorris@namei.org,
yoshfuji@linux-ipv6.org, kaber@trash.net, netdev@vger.kernel.org,
kumaran.4353@gmail.com
Subject: [PATCH] net : Remove unnecessary assignments
Date: Tue, 18 Mar 2014 21:40:56 +0530 [thread overview]
Message-ID: <53287010.8000703@gmail.com> (raw)
Remove unnecessary assignments
Signed-off-by: Balakumaran Kannan <kumaran.4353@gmail.com>
---
Some unnecessary assignments has been removed from devinet_ioctl function.
The 'ret' variable is set in multiple places, but used only based on if
conditions. So keeping the assignment inside if will be a better.
Patch is prepared for Linux-3.14-rc7 kernel.
---
--- net/ipv4/devinet.c.orig 2014-03-19 02:15:33.000000000 +0530
+++ net/ipv4/devinet.c 2014-03-19 03:02:16.000000000 +0530
@@ -886,15 +886,17 @@ int devinet_ioctl(struct net *net, unsig
struct in_ifaddr *ifa = NULL;
struct net_device *dev;
char *colon;
- int ret = -EFAULT;
+ int ret;
int tryaddrmatch = 0;
/*
* Fetch the caller's info block into kernel space
*/
- if (copy_from_user(&ifr, arg, sizeof(struct ifreq)))
+ if (copy_from_user(&ifr, arg, sizeof(struct ifreq))) {
+ ret = -EFAULT;
goto out;
+ }
ifr.ifr_name[IFNAMSIZ - 1] = 0;
/* save original address for comparison */
@@ -921,20 +923,23 @@ int devinet_ioctl(struct net *net, unsig
break;
case SIOCSIFFLAGS:
- ret = -EPERM;
- if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
+ if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) {
+ ret = -EPERM;
goto out;
+ }
break;
case SIOCSIFADDR: /* Set interface address (and family) */
case SIOCSIFBRDADDR: /* Set the broadcast address */
case SIOCSIFDSTADDR: /* Set the destination address */
case SIOCSIFNETMASK: /* Set the netmask for the interface */
- ret = -EPERM;
- if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
+ if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) {
+ ret = -EPERM;
goto out;
- ret = -EINVAL;
- if (sin->sin_family != AF_INET)
+ }
+ if (sin->sin_family != AF_INET) {
+ ret = -EINVAL;
goto out;
+ }
break;
default:
ret = -EINVAL;
@@ -943,10 +948,11 @@ int devinet_ioctl(struct net *net, unsig
rtnl_lock();
- ret = -ENODEV;
dev = __dev_get_by_name(net, ifr.ifr_name);
- if (!dev)
+ if (!dev) {
+ ret = -ENODEV;
goto done;
+ }
if (colon)
*colon = ':';
@@ -979,9 +985,10 @@ int devinet_ioctl(struct net *net, unsig
}
}
- ret = -EADDRNOTAVAIL;
- if (!ifa && cmd != SIOCSIFADDR && cmd != SIOCSIFFLAGS)
+ if (!ifa && cmd != SIOCSIFADDR && cmd != SIOCSIFFLAGS) {
+ ret = -EADDRNOTAVAIL;
goto done;
+ }
switch (cmd) {
case SIOCGIFADDR: /* Get interface address */
@@ -1002,9 +1009,10 @@ int devinet_ioctl(struct net *net, unsig
case SIOCSIFFLAGS:
if (colon) {
- ret = -EADDRNOTAVAIL;
- if (!ifa)
+ if (!ifa) {
+ ret = -EADDRNOTAVAIL;
break;
+ }
ret = 0;
if (!(ifr.ifr_flags & IFF_UP))
inet_del_ifa(in_dev, ifap, 1);
@@ -1014,24 +1022,27 @@ int devinet_ioctl(struct net *net, unsig
break;
case SIOCSIFADDR: /* Set interface address (and family) */
- ret = -EINVAL;
- if (inet_abc_len(sin->sin_addr.s_addr) < 0)
+ if (inet_abc_len(sin->sin_addr.s_addr) < 0) {
+ ret = -EINVAL;
break;
+ }
if (!ifa) {
- ret = -ENOBUFS;
ifa = inet_alloc_ifa();
- if (!ifa)
+ if (!ifa) {
+ ret = -ENOBUFS;
break;
+ }
INIT_HLIST_NODE(&ifa->hash);
if (colon)
memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ);
else
memcpy(ifa->ifa_label, dev->name, IFNAMSIZ);
} else {
- ret = 0;
- if (ifa->ifa_local == sin->sin_addr.s_addr)
+ if (ifa->ifa_local == sin->sin_addr.s_addr) {
+ ret = 0;
break;
+ }
inet_del_ifa(in_dev, ifap, 0);
ifa->ifa_broadcast = 0;
ifa->ifa_scope = 0;
@@ -1064,12 +1075,14 @@ int devinet_ioctl(struct net *net, unsig
break;
case SIOCSIFDSTADDR: /* Set the destination address */
- ret = 0;
- if (ifa->ifa_address == sin->sin_addr.s_addr)
+ if (ifa->ifa_address == sin->sin_addr.s_addr) {
+ ret = 0;
break;
- ret = -EINVAL;
- if (inet_abc_len(sin->sin_addr.s_addr) < 0)
+ }
+ if (inet_abc_len(sin->sin_addr.s_addr) < 0) {
+ ret = -EINVAL;
break;
+ }
ret = 0;
inet_del_ifa(in_dev, ifap, 0);
ifa->ifa_address = sin->sin_addr.s_addr;
@@ -1081,9 +1094,10 @@ int devinet_ioctl(struct net *net, unsig
/*
* The mask we set must be legal.
*/
- ret = -EINVAL;
- if (bad_mask(sin->sin_addr.s_addr, 0))
+ if (bad_mask(sin->sin_addr.s_addr, 0)) {
+ ret = -EINVAL;
break;
+ }
ret = 0;
if (ifa->ifa_mask != sin->sin_addr.s_addr) {
__be32 old_mask = ifa->ifa_mask;
@@ -1107,6 +1121,8 @@ int devinet_ioctl(struct net *net, unsig
inet_insert_ifa(ifa);
}
break;
+ default:
+ ret = -EADDRNOTAVAIL;
}
done:
rtnl_unlock();
next reply other threads:[~2014-03-18 16:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-18 16:10 Balakumaran Kannan [this message]
2014-03-18 16:22 ` [PATCH] net : Remove unnecessary assignments David Laight
2014-03-18 17:03 ` Joe Perches
2014-03-19 4:53 ` Balakumaran Kannan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53287010.8000703@gmail.com \
--to=kumaran.4353@gmail.com \
--cc=davem@davemloft.net \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@vger.kernel.org \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.