Alexander Aring wrote: > This patch adds __ndisc_fill_addr_option as low-level function for > ndisc_fill_addr_option which doesn't depend on net_device parameter. > > Cc: David S. Miller <davem@xxxxxxxxxxxxx> > Cc: Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx> > Cc: James Morris <jmorris@xxxxxxxxx> > Cc: Hideaki YOSHIFUJI <yoshfuji@xxxxxxxxxxxxxx> > Cc: Patrick McHardy <kaber@xxxxxxxxx> > Signed-off-by: Alexander Aring <aar@xxxxxxxxxxxxxx> Acked-by: YOSHIFUJI Hideaki <yoshfuji@xxxxxxxxxxxxxx> > --- > net/ipv6/ndisc.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c > index c245895..a7b9468 100644 > --- a/net/ipv6/ndisc.c > +++ b/net/ipv6/ndisc.c > @@ -150,11 +150,10 @@ struct neigh_table nd_tbl = { > }; > EXPORT_SYMBOL_GPL(nd_tbl); > > -static void ndisc_fill_addr_option(struct sk_buff *skb, int type, void *data) > +static void __ndisc_fill_addr_option(struct sk_buff *skb, int type, void *data, > + int data_len, int pad) > { > - int pad = ndisc_addr_option_pad(skb->dev->type); > - int data_len = skb->dev->addr_len; > - int space = ndisc_opt_addr_space(skb->dev); > + int space = __ndisc_opt_addr_space(data_len, pad); > u8 *opt = skb_put(skb, space); > > opt[0] = type; > @@ -172,6 +171,13 @@ static void ndisc_fill_addr_option(struct sk_buff *skb, int type, void *data) > memset(opt, 0, space); > } > > +static inline void ndisc_fill_addr_option(struct sk_buff *skb, int type, > + void *data) > +{ > + __ndisc_fill_addr_option(skb, type, data, skb->dev->addr_len, > + ndisc_addr_option_pad(skb->dev->type)); > +} > + > static struct nd_opt_hdr *ndisc_next_option(struct nd_opt_hdr *cur, > struct nd_opt_hdr *end) > { > -- Hideaki Yoshifuji <hideaki.yoshifuji@xxxxxxxxxxxxxxxx> Technical Division, MIRACLE LINUX CORPORATION -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html