Message ID | 20160614115239.17788-7-aar@pengutronix.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
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@davemloft.net> > Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> > Cc: James Morris <jmorris@namei.org> > Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> > Cc: Patrick McHardy <kaber@trash.net> > Signed-off-by: Alexander Aring <aar@pengutronix.de> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> > --- > 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) > { >
Hello. On 14/06/16 13:52, 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@davemloft.net> > Cc: Alexey Kuznetsov<kuznet@ms2.inr.ac.ru> > Cc: James Morris<jmorris@namei.org> > Cc: Hideaki YOSHIFUJI<yoshfuji@linux-ipv6.org> > Cc: Patrick McHardy<kaber@trash.net> > Signed-off-by: Alexander Aring<aar@pengutronix.de> > --- > 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) > { Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com> regards Stefan Schmidt -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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) {
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@davemloft.net> Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Cc: James Morris <jmorris@namei.org> Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Cc: Patrick McHardy <kaber@trash.net> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/ipv6/ndisc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)