[dpdk-dev] [PATCH 20.02] net/virtio-user: do not close tap when disabling queue pairs

Stephen Hemminger stephen at networkplumber.org
Tue Nov 19 17:36:38 CET 2019


On Tue, 19 Nov 2019 14:29:48 +0800
Tiwei Bie <tiwei.bie at 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


More information about the dev mailing list