On Tue, 19 Nov 2019 14:29:48 +0800
Tiwei Bie <tiwei....@intel.com> wrote:

> -static int
> +int
> +vhost_kernel_tap_attach_queue(int fd)
> +{
> +     struct ifreq ifr;
> +
> +     memset(&ifr, 0, sizeof(ifr));
> +     ifr.ifr_flags = IFF_ATTACH_QUEUE;
> +     return ioctl(fd, TUNSETQUEUE, (void *)&ifr);
> +}
> +
> +int
> +vhost_kernel_tap_detach_queue(int fd)
> +{
> +     struct ifreq ifr;
> +
> +     memset(&ifr, 0, sizeof(ifr));
> +     ifr.ifr_flags = IFF_DETACH_QUEUE;
> +     return ioctl(fd, TUNSETQUEUE, (void *)&ifr);
> +}
> +

These both could be squashed into one routine.

int
vhost_kernel_tap_set_queue(int fd, bool attach)
{
        struct ifreq ifr = {
                .ifr_flags = attach ? IFF_ATTACH_QUEUE : IFF_DETACH_QUEUE
        };

        return ioctl(fd, TUNSETQUEUE, &ifr);
}


1. Use initializer instead of memset
2. Cast to void * is unnecessary

Reply via email to