On 9/9/2019 12:58 PM, Andrew Rybchenko wrote:
> Enabling/disabling of promiscuous mode is not always successful and
> it should be taken into account to be able to handle it properly.
> 
> When correct return status is unclear from driver code, -EAGAIN is used.
> 
> Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>

<...>

> diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c 
> b/drivers/net/af_xdp/rte_eth_af_xdp.c
> index aa716f3195..1da22ff866 100644
> --- a/drivers/net/af_xdp/rte_eth_af_xdp.c
> +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
> @@ -750,37 +750,43 @@ static void
>  eth_dev_change_flags(char *if_name, uint32_t flags, uint32_t mask)
>  {
>       struct ifreq ifr;
> +     int ret = 0;
>       int s;
>  
>       s = socket(PF_INET, SOCK_DGRAM, 0);
>       if (s < 0)
> -             return;
> +             return -errno;
>  
>       strlcpy(ifr.ifr_name, if_name, IFNAMSIZ);
> -     if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0)
> +     if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0) {
> +             ret = -errno;
>               goto out;
> +     }
>       ifr.ifr_flags &= mask;
>       ifr.ifr_flags |= flags;
> -     if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0)
> +     if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0) {
> +             ret = -errno;
>               goto out;
> +     }
>  out:
>       close(s);
> +     return ret;
>  }

../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘eth_dev_change_flags’:
../drivers/net/af_xdp/rte_eth_af_xdp.c:758:10: warning: ‘return’ with a value,
in function returning void [-Wreturn-type]
  758 |   return -errno;
      |          ^

Reply via email to