|
@@ -127,13 +127,19 @@ static int ndisc_addr_option_pad(unsigned short type)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static inline int ndisc_opt_addr_space(struct net_device *dev)
|
|
|
+{
|
|
|
+ return NDISC_OPT_SPACE(dev->addr_len +
|
|
|
+ ndisc_addr_option_pad(dev->type));
|
|
|
+}
|
|
|
+
|
|
|
static inline u8 *ndisc_opt_addr_data(struct nd_opt_hdr *p,
|
|
|
struct net_device *dev)
|
|
|
{
|
|
|
u8 *lladdr = (u8 *)(p + 1);
|
|
|
int lladdrlen = p->nd_opt_len << 3;
|
|
|
int prepad = ndisc_addr_option_pad(dev->type);
|
|
|
- if (lladdrlen != NDISC_OPT_SPACE(dev->addr_len + prepad))
|
|
|
+ if (lladdrlen != ndisc_opt_addr_space(dev))
|
|
|
return NULL;
|
|
|
return lladdr + prepad;
|
|
|
}
|