Commit 6da025fa authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

ipv4: avoid a test in ip_rt_put()

We can save a test in ip_rt_put(), considering dst_release() accepts
a NULL parameter, and dst is first element in rtable.

Add a BUILD_BUG_ON() to catch any change that could break this
assertion.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Cong Wang <amwang@redhat.com>
Acked-by: default avatarCong Wang <amwang@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b26ddd81
...@@ -198,10 +198,13 @@ struct in_ifaddr; ...@@ -198,10 +198,13 @@ struct in_ifaddr;
extern void fib_add_ifaddr(struct in_ifaddr *); extern void fib_add_ifaddr(struct in_ifaddr *);
extern void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *); extern void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
static inline void ip_rt_put(struct rtable * rt) static inline void ip_rt_put(struct rtable *rt)
{ {
if (rt) /* dst_release() accepts a NULL parameter.
dst_release(&rt->dst); * We rely on dst being first structure in struct rtable
*/
BUILD_BUG_ON(offsetof(struct rtable, dst) != 0);
dst_release(&rt->dst);
} }
#define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3) #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment