From: yuan linyu <cugyly@163.com>
To: netdev@vger.kernel.org
Cc: "David S . Miller" <davem@davemloft.net>,
Joe Perches <joe@perches.com>, David Ahern <dsahern@gmail.com>,
yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
Subject: [PATCH net-next v1 2/2] net: ndisc.c: minor code improvement
Date: Fri, 26 May 2017 21:48:09 +0800 [thread overview]
Message-ID: <1495806489-5693-1-git-send-email-cugyly@163.com> (raw)
From: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
on x86_64, text size decrease 64 bytes
Signed-off-by: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
---
net/ipv6/ndisc.c | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
index 292c827..8051b46 100644
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -147,17 +147,18 @@ void __ndisc_fill_addr_option(struct sk_buff *skb, int type, void *data,
opt[0] = type;
opt[1] = space >> 3;
+ opt += 2;
+ space -= 2;
- memset(opt + 2, 0, pad);
+ memset(opt, 0, pad);
opt += pad;
space -= pad;
- memcpy(opt + 2, data, data_len);
- data_len += 2;
+ memcpy(opt, data, data_len);
opt += data_len;
space -= data_len;
- if (space > 0)
- memset(opt, 0, space);
+
+ memset(opt, 0, space);
}
EXPORT_SYMBOL_GPL(__ndisc_fill_addr_option);
@@ -997,6 +998,7 @@ static void ndisc_recv_na(struct sk_buff *skb)
if (neigh) {
u8 old_flags = neigh->flags;
struct net *net = dev_net(dev);
+ u32 flags;
if (neigh->nud_state & NUD_FAILED)
goto out;
@@ -1013,13 +1015,14 @@ static void ndisc_recv_na(struct sk_buff *skb)
goto out;
}
+ flags = NEIGH_UPDATE_F_WEAK_OVERRIDE | NEIGH_UPDATE_F_OVERRIDE_ISROUTER;
+ if (msg->icmph.icmp6_override)
+ flags |= NEIGH_UPDATE_F_OVERRIDE;
+ if (msg->icmph.icmp6_router)
+ flags |= NEIGH_UPDATE_F_ISROUTER;
ndisc_update(dev, neigh, lladdr,
msg->icmph.icmp6_solicited ? NUD_REACHABLE : NUD_STALE,
- NEIGH_UPDATE_F_WEAK_OVERRIDE|
- (msg->icmph.icmp6_override ? NEIGH_UPDATE_F_OVERRIDE : 0)|
- NEIGH_UPDATE_F_OVERRIDE_ISROUTER|
- (msg->icmph.icmp6_router ? NEIGH_UPDATE_F_ISROUTER : 0),
- NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts);
+ flags, NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts);
if ((old_flags & ~neigh->flags) & NTF_ROUTER) {
/*
@@ -1217,12 +1220,11 @@ static void ndisc_router_discovery(struct sk_buff *skb)
* received RA message (RFC 2462) -- yoshfuji
*/
old_if_flags = in6_dev->if_flags;
- in6_dev->if_flags = (in6_dev->if_flags & ~(IF_RA_MANAGED |
- IF_RA_OTHERCONF)) |
- (ra_msg->icmph.icmp6_addrconf_managed ?
- IF_RA_MANAGED : 0) |
- (ra_msg->icmph.icmp6_addrconf_other ?
- IF_RA_OTHERCONF : 0);
+ in6_dev->if_flags &= ~(IF_RA_MANAGED | IF_RA_OTHERCONF);
+ if (ra_msg->icmph.icmp6_addrconf_managed)
+ in6_dev->if_flags |= IF_RA_MANAGED;
+ if (ra_msg->icmph.icmp6_addrconf_other)
+ in6_dev->if_flags |= IF_RA_OTHERCONF;
if (old_if_flags != in6_dev->if_flags)
send_ifinfo_notify = true;
--
2.7.4
reply other threads:[~2017-05-26 13:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=1495806489-5693-1-git-send-email-cugyly@163.com \
--to=cugyly@163.com \
--cc=Linyu.Yuan@alcatel-sbell.com.cn \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=joe@perches.com \
--cc=netdev@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox