|
@@ -198,10 +198,13 @@ struct in_ifaddr;
|
|
|
extern void fib_add_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(&rt->dst);
|
|
|
+ /* dst_release() accepts a NULL parameter.
|
|
|
+ * 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)
|