Alexander Aring wrote:
> This patch adds __ndisc_opt_addr_data as low-level function for
> ndisc_opt_addr_data which doesn't depend on net_device parameter.
> 
> Cc: David S. Miller <da...@davemloft.net>
> Cc: Alexey Kuznetsov <kuz...@ms2.inr.ac.ru>
> Cc: James Morris <jmor...@namei.org>
> Cc: Hideaki YOSHIFUJI <yoshf...@linux-ipv6.org>
> Cc: Patrick McHardy <ka...@trash.net>
> Signed-off-by: Alexander Aring <a...@pengutronix.de>

Acked-by: YOSHIFUJI Hideaki <yoshf...@linux-ipv6.org>

> ---
>  include/net/ndisc.h | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/include/net/ndisc.h b/include/net/ndisc.h
> index 4cee826..c8962ad 100644
> --- a/include/net/ndisc.h
> +++ b/include/net/ndisc.h
> @@ -138,17 +138,23 @@ static inline int ndisc_opt_addr_space(struct 
> net_device *dev)
>                                     ndisc_addr_option_pad(dev->type));
>  }
>  
> -static inline u8 *ndisc_opt_addr_data(struct nd_opt_hdr *p,
> -                                   struct net_device *dev)
> +static inline u8 *__ndisc_opt_addr_data(struct nd_opt_hdr *p,
> +                                     unsigned char addr_len, int prepad)
>  {
>       u8 *lladdr = (u8 *)(p + 1);
>       int lladdrlen = p->nd_opt_len << 3;
> -     int prepad = ndisc_addr_option_pad(dev->type);
> -     if (lladdrlen != ndisc_opt_addr_space(dev))
> +     if (lladdrlen != __ndisc_opt_addr_space(addr_len, prepad))
>               return NULL;
>       return lladdr + prepad;
>  }
>  
> +static inline u8 *ndisc_opt_addr_data(struct nd_opt_hdr *p,
> +                                   struct net_device *dev)
> +{
> +     return __ndisc_opt_addr_data(p, dev->addr_len,
> +                                  ndisc_addr_option_pad(dev->type));
> +}
> +
>  static inline u32 ndisc_hashfn(const void *pkey, const struct net_device 
> *dev, __u32 *hash_rnd)
>  {
>       const u32 *p32 = pkey;
> 

-- 
Hideaki Yoshifuji <hideaki.yoshif...@miraclelinux.com>
Technical Division, MIRACLE LINUX CORPORATION

Reply via email to