DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
@ 2014-11-05  4:40 Huawei Xie
  0 siblings, 0 replies; 10+ messages in thread
From: Huawei Xie @ 2014-11-05  4:40 UTC (permalink / raw)
  To: dev

This patch fixes code style issues and refines some comments in vhost library.


---
 lib/librte_vhost/eventfd_link/eventfd_link.c | 244 ++++++++++-----------
 lib/librte_vhost/eventfd_link/eventfd_link.h | 127 ++++++-----
 lib/librte_vhost/rte_virtio_net.h            |   3 +-
 lib/librte_vhost/vhost-net-cdev.c            | 187 +++++++++-------
 lib/librte_vhost/vhost_rxtx.c                |  13 +-
 lib/librte_vhost/virtio-net.c                | 317 +++++++++++++++++----------
 6 files changed, 494 insertions(+), 397 deletions(-)

diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.c b/lib/librte_vhost/eventfd_link/eventfd_link.c
index fc0653a..542ec2c 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.c
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.c
@@ -1,26 +1,26 @@
 /*-
- *  * GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *   */
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ */
 
 #include <linux/eventfd.h>
 #include <linux/miscdevice.h>
@@ -42,15 +42,15 @@
  * get_files_struct is copied from fs/file.c
  */
 struct files_struct *
-get_files_struct (struct task_struct *task)
+get_files_struct(struct task_struct *task)
 {
 	struct files_struct *files;
 
-	task_lock (task);
+	task_lock(task);
 	files = task->files;
 	if (files)
-		atomic_inc (&files->count);
-	task_unlock (task);
+		atomic_inc(&files->count);
+	task_unlock(task);
 
 	return files;
 }
@@ -59,17 +59,15 @@ get_files_struct (struct task_struct *task)
  * put_files_struct is extracted from fs/file.c
  */
 void
-put_files_struct (struct files_struct *files)
+put_files_struct(struct files_struct *files)
 {
-	if (atomic_dec_and_test (&files->count))
-	{
-		BUG ();
-	}
+	if (atomic_dec_and_test(&files->count))
+		BUG();
 }
 
 
 static long
-eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
+eventfd_link_ioctl(struct file *f, unsigned int ioctl, unsigned long arg)
 {
 	void __user *argp = (void __user *) arg;
 	struct task_struct *task_target = NULL;
@@ -78,96 +76,88 @@ eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
 	struct fdtable *fdt;
 	struct eventfd_copy eventfd_copy;
 
-	switch (ioctl)
-	{
-		case EVENTFD_COPY:
-			if (copy_from_user (&eventfd_copy, argp, sizeof (struct eventfd_copy)))
-				return -EFAULT;
-
-			/*
-			 * Find the task struct for the target pid
-			 */
-			task_target =
-				pid_task (find_vpid (eventfd_copy.target_pid), PIDTYPE_PID);
-			if (task_target == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get mem ctx for target pid\n");
-				return -EFAULT;
-			}
-
-			files = get_files_struct (current);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.source_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
-					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from source pid\n");
-				return 0;
-			}
-
-			/*
-			 * Release the existing eventfd in the source process
-			 */
-			spin_lock (&files->file_lock);
-			filp_close (file, files);
-			fdt = files_fdtable (files);
-			fdt->fd[eventfd_copy.source_fd] = NULL;
-			spin_unlock (&files->file_lock);
-
-			/*
-			 * Find the file struct associated with the target fd.
-			 */
-
-			files = get_files_struct (task_target);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.target_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
+	switch (ioctl) {
+	case EVENTFD_COPY:
+		if (copy_from_user(&eventfd_copy, argp,
+			sizeof(struct eventfd_copy)))
+			return -EFAULT;
+
+		/*
+		 * Find the task struct for the target pid
+		 */
+		task_target =
+			pid_task(find_vpid(eventfd_copy.target_pid), PIDTYPE_PID);
+		if (task_target == NULL) {
+			printk(KERN_DEBUG "Failed to get mem ctx for target pid\n");
+			return -EFAULT;
+		}
+
+		files = get_files_struct(current);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.source_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
+				file = NULL;
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
+
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from source pid\n");
+			return 0;
+		}
+
+		/*
+		 * Release the existing eventfd in the source process
+		 */
+		spin_lock(&files->file_lock);
+		filp_close(file, files);
+		fdt = files_fdtable(files);
+		fdt->fd[eventfd_copy.source_fd] = NULL;
+		spin_unlock(&files->file_lock);
+
+		/*
+		 * Find the file struct associated with the target fd.
+		 */
+
+		files = get_files_struct(task_target);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.target_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
 					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from target pid\n");
-				return 0;
-			}
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
 
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from target pid\n");
+			return 0;
+		}
 
-			/*
-			 * Install the file struct from the target process into the
-			 * file desciptor of the source process,
-			 */
+		/*
+		 * Install the file struct from the target process into the
+		 * file desciptor of the source process,
+		 */
 
-			fd_install (eventfd_copy.source_fd, file);
+		fd_install(eventfd_copy.source_fd, file);
 
-			return 0;
+		return 0;
 
-		default:
-			return -ENOIOCTLCMD;
+	default:
+		return -ENOIOCTLCMD;
 	}
 }
 
@@ -183,23 +173,23 @@ static struct miscdevice eventfd_link_misc = {
 };
 
 static int __init
-eventfd_link_init (void)
+eventfd_link_init(void)
 {
-	return misc_register (&eventfd_link_misc);
+	return misc_register(&eventfd_link_misc);
 }
 
-module_init (eventfd_link_init);
+module_init(eventfd_link_init);
 
 static void __exit
-eventfd_link_exit (void)
+eventfd_link_exit(void)
 {
-	misc_deregister (&eventfd_link_misc);
+	misc_deregister(&eventfd_link_misc);
 }
 
-module_exit (eventfd_link_exit);
+module_exit(eventfd_link_exit);
 
-MODULE_VERSION ("0.0.1");
-MODULE_LICENSE ("GPL v2");
-MODULE_AUTHOR ("Anthony Fee");
-MODULE_DESCRIPTION ("Link eventfd");
-MODULE_ALIAS ("devname:eventfd-link");
+MODULE_VERSION("0.0.1");
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Anthony Fee");
+MODULE_DESCRIPTION("Link eventfd");
+MODULE_ALIAS("devname:eventfd-link");
diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.h b/lib/librte_vhost/eventfd_link/eventfd_link.h
index a32a8dd..ea619ec 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.h
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.h
@@ -1,79 +1,76 @@
 /*-
- *  * This file is provided under a dual BSD/GPLv2 license.  When using or
- *  *   redistributing this file, you may do so under either license.
- *  *
- *  *   GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *  *
- *  *   BSD LICENSE
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *   All rights reserved.
- *  *
- *  *   Redistribution and use in source and binary forms, with or without
- *  *   modification, are permitted provided that the following conditions
- *  *   are met:
- *  *
- *  *     * Redistributions of source code must retain the above copyright
- *  *       notice, this list of conditions and the following disclaimer.
- *  *     * Redistributions in binary form must reproduce the above copyright
- *  *       notice, this list of conditions and the following disclaimer in
- *  *       the documentation and/or other materials provided with the
- *  *       distribution.
- *  *     * Neither the name of Intel Corporation nor the names of its
- *  *       contributors may be used to endorse or promote products derived
- *  *       from this software without specific prior written permission.
- *  *
- *  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *  *
- *   */
+ *  This file is provided under a dual BSD/GPLv2 license.  When using or
+ *  redistributing this file, you may do so under either license.
+ *
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ *
+ * BSD LICENSE
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *   Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *   Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ *   Neither the name of Intel Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
 
 #ifndef _EVENTFD_LINK_H_
 #define _EVENTFD_LINK_H_
 
 /*
- *	ioctl to copy an fd entry in calling process to an fd in a target process
+ * ioctl to copy an fd entry in calling process to an fd in a target process
  */
 #define EVENTFD_COPY 1
 
 /*
- *	arguements for the EVENTFD_COPY ioctl
+ * arguements for the EVENTFD_COPY ioctl
  */
 struct eventfd_copy {
-	// fd in the target pid
-    unsigned target_fd;
-	// fd in the calling pid
-    unsigned source_fd;
-	// pid of the target pid
-    pid_t target_pid;
+	unsigned target_fd; /* fd in the target pid */
+	unsigned source_fd; /* fd in the calling pid */
+	pid_t target_pid; /* pid of the target pid */
 };
 #endif /* _EVENTFD_LINK_H_ */
diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index b6548a1..00b1328 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -90,8 +90,7 @@ struct vhost_virtqueue {
 /**
  * Device structure contains all configuration information relating to the device.
  */
-struct virtio_net
-{
+struct virtio_net {
 	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/**< Contains all virtqueue information. */
 	struct virtio_memory	*mem;		/**< QEMU memory and memory region information. */
 	uint64_t		features;	/**< Negotiated feature set. */
diff --git a/lib/librte_vhost/vhost-net-cdev.c b/lib/librte_vhost/vhost-net-cdev.c
index 91ff0d8..57c76cb 100644
--- a/lib/librte_vhost/vhost-net-cdev.c
+++ b/lib/librte_vhost/vhost-net-cdev.c
@@ -46,21 +46,21 @@
 
 #include "vhost-net-cdev.h"
 
-#define FUSE_OPT_DUMMY		"\0\0"
-#define FUSE_OPT_FORE		"-f\0\0"
-#define FUSE_OPT_NOMULTI	"-s\0\0"
+#define FUSE_OPT_DUMMY "\0\0"
+#define FUSE_OPT_FORE  "-f\0\0"
+#define FUSE_OPT_NOMULTI "-s\0\0"
 
-static const uint32_t	default_major = 231;
-static const uint32_t	default_minor = 1;
-static const char	cuse_device_name[]	= "/dev/cuse";
-static const char	default_cdev[] = "vhost-net";
+static const uint32_t default_major = 231;
+static const uint32_t default_minor = 1;
+static const char cuse_device_name[] = "/dev/cuse";
+static const char default_cdev[] = "vhost-net";
 
-static struct fuse_session			*session;
-static struct vhost_net_device_ops	const *ops;
+static struct fuse_session *session;
+static struct vhost_net_device_ops const *ops;
 
 /*
- * Returns vhost_device_ctx from given fuse_req_t. The index is populated later when
- * the device is added to the device linked list.
+ * Returns vhost_device_ctx from given fuse_req_t. The index is populated later
+ * when the device is added to the device linked list.
  */
 static struct vhost_device_ctx
 fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
@@ -75,7 +75,8 @@ fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
 }
 
 /*
- * When the device is created in QEMU it gets initialised here and added to the device linked list.
+ * When the device is created in QEMU it gets initialised here and
+ * added to the device linked list.
  */
 static void
 vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
@@ -91,7 +92,8 @@ vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
 
 	fi->fh = err;
 
-	RTE_LOG(INFO, VHOST_CONFIG, "(%"PRIu64") Device configuration started\n", fi->fh);
+	RTE_LOG(INFO, VHOST_CONFIG,
+		"(%"PRIu64") Device configuration started\n", fi->fh);
 	fuse_reply_open(req, fi);
 }
 
@@ -113,8 +115,8 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate code for CUSE IOCTL
  * Implicit arguments: ctx, req, result.
  */
-#define VHOST_IOCTL(func) do {			\
-	result = (func)(ctx);			\
+#define VHOST_IOCTL(func) do {	\
+	result = (func)(ctx);	\
 	fuse_reply_ioctl(req, result, NULL, 0);	\
 } while (0)
 
@@ -122,57 +124,58 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate IOCTL RETRY
  * Implicit arguments: req.
  */
-#define VHOST_IOCTL_RETRY(size_r, size_w) do {		\
-	struct iovec iov_r = { arg, (size_r) };		\
-	struct iovec iov_w = { arg, (size_w) };		\
-	fuse_reply_ioctl_retry(req, &iov_r, (size_r)?1:0, &iov_w, (size_w)?1:0);	\
+#define VHOST_IOCTL_RETRY(size_r, size_w) do {	\
+	struct iovec iov_r = { arg, (size_r) };	\
+	struct iovec iov_w = { arg, (size_w) };	\
+	fuse_reply_ioctl_retry(req, &iov_r,	\
+		(size_r) ? 1 : 0, &iov_w, (size_w) ? 1 : 0);\
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_R(type, var, func) do {		\
-	if (!in_bufsz) {				\
-		VHOST_IOCTL_RETRY(sizeof(type), 0);	\
-	} else {					\
-		(var) = *(const type*) in_buf;		\
-		result = func(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, NULL, 0);	\
-	}						\
+#define VHOST_IOCTL_R(type, var, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type), 0);\
+	} else {	\
+		(var) = *(const type*)in_buf;	\
+		result = func(ctx, &(var));	\
+		fuse_reply_ioctl(req, result, NULL, 0);\
+	}	\
 } while (0)
 
 /*
- *	Boilerplate code for CUSE Write IOCTL
+ * Boilerplate code for CUSE Write IOCTL
  * Implicit arguments: ctx, req, result, out_bufsz.
  */
-#define	VHOST_IOCTL_W(type, var, func) do {		\
-	if (!out_bufsz) {				\
-		VHOST_IOCTL_RETRY(0, sizeof(type));	\
-	} else {					\
-		result = (func)(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, &(var), sizeof(type));	\
-	}								\
+#define VHOST_IOCTL_W(type, var, func) do {	\
+	if (!out_bufsz) {	\
+		VHOST_IOCTL_RETRY(0, sizeof(type));\
+	} else {	\
+		result = (func)(ctx, &(var));\
+		fuse_reply_ioctl(req, result, &(var), sizeof(type));\
+	} \
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read/Write IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {		\
-	if (!in_bufsz) {						\
-		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));	\
-	} else {							\
-		(var1) = *(const type1*) (in_buf);			\
-		result = (func)(ctx, (var1), &(var2));			\
-		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));	\
-	}								\
+#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));\
+	} else {	\
+		(var1) = *(const type1*) (in_buf);	\
+		result = (func)(ctx, (var1), &(var2));	\
+		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));\
+	}	\
 } while (0)
 
 /*
- * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on
- * the type of IOCTL a buffer is requested to read or to write. This
- * request is handled by FUSE and the buffer is then given to CUSE.
+ * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on the type
+ * of IOCTL a buffer is requested to read or to write. This request is handled
+ * by FUSE and the buffer is then given to CUSE.
  */
 static void
 vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
@@ -189,33 +192,39 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 
 	switch (cmd) {
 	case VHOST_NET_SET_BACKEND:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
 		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_backend);
 		break;
 
 	case VHOST_GET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_W(uint64_t, features, ops->get_features);
 		break;
 
 	case VHOST_SET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_R(uint64_t, features, ops->set_features);
 		break;
 
 	case VHOST_RESET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->reset_owner);
 		break;
 
 	case VHOST_SET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->set_owner);
 		break;
 
 	case VHOST_SET_MEM_TABLE:
 		/*TODO fix race condition.*/
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
 		static struct vhost_memory mem_temp;
 
 		switch (in_bufsz) {
@@ -227,7 +236,9 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			mem_temp = *(const struct vhost_memory *) in_buf;
 
 			if (mem_temp.nregions > 0) {
-				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) + (sizeof(struct vhost_memory_region) * mem_temp.nregions), 0);
+				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) +
+					(sizeof(struct vhost_memory_region) *
+						mem_temp.nregions), 0);
 			} else {
 				result = -1;
 				fuse_reply_ioctl(req, result, NULL, 0);
@@ -235,56 +246,70 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			break;
 
 		default:
-			result = ops->set_mem_table(ctx, in_buf, mem_temp.nregions);
+			result = ops->set_mem_table(ctx,
+					in_buf, mem_temp.nregions);
 			if (result)
 				fuse_reply_err(req, EINVAL);
 			else
 				fuse_reply_ioctl(req, result, NULL, 0);
-
 		}
-
 		break;
 
 	case VHOST_SET_VRING_NUM:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_num);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_num);
 		break;
 
 	case VHOST_SET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_base);
 		break;
 
 	case VHOST_GET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_RW(uint32_t, index, struct vhost_vring_state, state, ops->get_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_RW(uint32_t, index,
+			struct vhost_vring_state, state, ops->get_vring_base);
 		break;
 
 	case VHOST_SET_VRING_ADDR:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_addr, addr, ops->set_vring_addr);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_addr, addr,
+			ops->set_vring_addr);
 		break;
 
 	case VHOST_SET_VRING_KICK:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_kick);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_kick);
 		break;
 
 	case VHOST_SET_VRING_CALL:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_call);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_call);
 		break;
 
 	default:
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
 		result = -1;
 		fuse_reply_ioctl(req, result, NULL, 0);
 	}
 
 	if (result < 0)
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
 	else
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
 }
 
 /*
@@ -297,8 +322,8 @@ static const struct cuse_lowlevel_ops vhost_net_ops = {
 };
 
 /*
- * cuse_info is populated and used to register the cuse device. vhost_net_device_ops are
- * also passed when the device is registered in main.c.
+ * cuse_info is populated and used to register the cuse device.
+ * vhost_net_device_ops are also passed when the device is registered in app.
  */
 int
 rte_vhost_driver_register(const char *dev_name)
@@ -314,20 +339,23 @@ rte_vhost_driver_register(const char *dev_name)
 	char *fuse_argv[] = {fuse_opt_dummy, fuse_opt_fore, fuse_opt_nomulti};
 
 	if (access(cuse_device_name, R_OK | W_OK) < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s can't be accessed, maybe not exist\n", cuse_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s can't be accessed, maybe not exist\n",
+			cuse_device_name);
 		return -1;
 	}
 
 	/*
-	 * The device name is created. This is passed to QEMU so that it can register
-	 * the device with our application.
+	 * The device name is created. This is passed to QEMU so that it can
+	 * register the device with our application.
 	 */
 	snprintf(device_name, PATH_MAX, "DEVNAME=%s", dev_name);
 	snprintf(char_device_name, PATH_MAX, "/dev/%s", dev_name);
 
 	/* Check if device already exists. */
 	if (access(char_device_name, F_OK) != -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s already exists\n", char_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s already exists\n", char_device_name);
 		return -1;
 	}
 
@@ -341,7 +369,7 @@ rte_vhost_driver_register(const char *dev_name)
 	ops = get_virtio_net_callbacks();
 
 	session = cuse_lowlevel_setup(3, fuse_argv,
-				&cuse_info, &vhost_net_ops, 0, NULL);
+			&cuse_info, &vhost_net_ops, 0, NULL);
 	if (session == NULL)
 		return -1;
 
@@ -349,7 +377,8 @@ rte_vhost_driver_register(const char *dev_name)
 }
 
 /**
- * The CUSE session is launched allowing the application to receive open, release and ioctl calls.
+ * The CUSE session is launched allowing the application to receive open,
+ * release and ioctl calls.
  */
 int
 rte_vhost_driver_session_start(void)
diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 84ec0e8..ccfd82f 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -45,7 +45,7 @@
 /**
  * This function adds buffers to the virtio devices RX virtqueue. Buffers can
  * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
+ * count is returned to indicate the number of packets that are succesfully
  * added to the RX queue. This function works when mergeable is disabled.
  */
 static inline uint32_t __attribute__((always_inline))
@@ -76,7 +76,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 	count = (count > MAX_PKT_BURST) ? MAX_PKT_BURST : count;
 
 	/*
-	 * As many data cores may want access to available buffers, 
+	 * As many data cores may want access to available buffers,
 	 * they need to be reserved.
 	 */
 	do {
@@ -143,7 +143,8 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 		}
 
 		/* Update used ring with desc information */
-		vq->used->ring[res_cur_idx & (vq->size - 1)].id = head[packet_success];
+		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
+							head[packet_success];
 		vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
 
 		/* Copy mbuf data to buffer */
@@ -389,10 +390,7 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 }
 
 /*
- * This function adds buffers to the virtio devices RX virtqueue. Buffers can
- * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
- * added to the RX queue. This function works for mergeable RX.
+ * This function works for mergeable RX.
  */
 static inline uint32_t __attribute__((always_inline))
 virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
@@ -729,5 +727,4 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, uint16_t queue_id,
 	if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT))
 		eventfd_write((int)vq->kickfd, 1);
 	return entry_success;
-
 }
diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
index 8015dd8..c07a11e 100644
--- a/lib/librte_vhost/virtio-net.c
+++ b/lib/librte_vhost/virtio-net.c
@@ -52,27 +52,27 @@
 #include "vhost-net-cdev.h"
 #include "eventfd_link/eventfd_link.h"
 
-/**
+/*
  * Device linked list structure for configuration.
  */
 struct virtio_net_config_ll {
-	struct virtio_net		dev;	/* Virtio device.*/
-	struct virtio_net_config_ll	*next;	/* Next entry on linked list.*/
+	struct virtio_net dev;			/* Virtio device.*/
+	struct virtio_net_config_ll *next;	/* Next dev on linked list.*/
 };
 
 const char eventfd_cdev[] = "/dev/eventfd-link";
 
-/* device ops to add/remove device to data core. */
+/* device ops to add/remove device to/from data core. */
 static struct virtio_net_device_ops const *notify_ops;
-/* Root address of the linked list in the configuration core. */
-static struct virtio_net_config_ll	*ll_root;
+/* root address of the linked list of managed virtio devices */
+static struct virtio_net_config_ll *ll_root;
 
-/* Features supported by this application. RX merge buffers are enabled by default. */
+/* Features supported by this lib. */
 #define VHOST_SUPPORTED_FEATURES (1ULL << VIRTIO_NET_F_MRG_RXBUF)
 static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;
 
 /* Line size for reading maps file. */
-const uint32_t BUFSIZE = PATH_MAX;
+static const uint32_t BUFSIZE = PATH_MAX;
 
 /* Size of prot char array in procmap. */
 #define PROT_SZ 5
@@ -82,19 +82,19 @@ const uint32_t BUFSIZE = PATH_MAX;
 
 /* Structure containing information gathered from maps file. */
 struct procmap {
-	uint64_t	va_start;	/* Start virtual address in file. */
-	uint64_t	len;		/* Size of file. */
-	uint64_t	pgoff;		/* Not used. */
-	uint32_t	maj;		/* Not used. */
-	uint32_t	min;		/* Not used. */
-	uint32_t	ino;		/* Not used. */
-	char		prot[PROT_SZ];	/* Not used. */
-	char		fname[PATH_MAX];/* File name. */
+	uint64_t va_start;	/* Start virtual address in file. */
+	uint64_t len;		/* Size of file. */
+	uint64_t pgoff;		/* Not used. */
+	uint32_t maj;		/* Not used. */
+	uint32_t min;		/* Not used. */
+	uint32_t ino;		/* Not used. */
+	char prot[PROT_SZ];	/* Not used. */
+	char fname[PATH_MAX];	/* File name. */
 };
 
 /*
- * Converts QEMU virtual address to Vhost virtual address. This function is used
- * to convert the ring addresses to our address space.
+ * Converts QEMU virtual address to Vhost virtual address. This function is
+ * used to convert the ring addresses to our address space.
  */
 static uint64_t
 qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
@@ -107,8 +107,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
 		region = &dev->mem->regions[regionidx];
 		if ((qemu_va >= region->userspace_address) &&
-				(qemu_va <= region->userspace_address +
-				region->memory_size)) {
+			(qemu_va <= region->userspace_address +
+			region->memory_size)) {
 			vhost_va = dev->mem->mapped_address + qemu_va -
 					dev->mem->base_address;
 			break;
@@ -118,7 +118,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 }
 
 /*
- * Locate the file containing QEMU's memory space and map it to our address space.
+ * Locate the file containing QEMU's memory space and
+ * map it to our address space.
  */
 static int
 host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
@@ -134,10 +135,10 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	char procdir[PATH_MAX];
 	char resolved_path[PATH_MAX];
 	char *path = NULL;
-	FILE		*fmap;
-	void		*map;
-	uint8_t		found = 0;
-	char		line[BUFSIZE];
+	FILE *fmap;
+	void *map;
+	uint8_t found = 0;
+	char line[BUFSIZE];
 	char dlm[] = "-   :   ";
 	char *str, *sp, *in[PROCMAP_SZ];
 	char *end = NULL;
@@ -159,7 +160,7 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	while (fgets(line, BUFSIZE, fmap) != 0) {
 		str = line;
 		errno = 0;
-		/* Split line in to fields. */
+		/* Split line into fields. */
 		for (i = 0; i < PROCMAP_SZ; i++) {
 			in[i] = strtok_r(str, &dlm[i], &sp);
 			if ((in[i] == NULL) || (errno != 0)) {
@@ -171,37 +172,43 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 
 		/* Convert/Copy each field as needed. */
 		procmap.va_start = strtoull(in[0], &end, 16);
-		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.len = strtoull(in[1], &end, 16);
-		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.pgoff = strtoull(in[3], &end, 16);
-		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.maj = strtoul(in[4], &end, 16);
-		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.min = strtoul(in[5], &end, 16);
-		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.ino = strtoul(in[6], &end, 16);
-		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
@@ -218,16 +225,19 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	fclose(fmap);
 
 	if (!found) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file in pid %d maps file\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file in pid %d maps file\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 
 	/* Find the guest memory file among the process fds. */
 	dp = opendir(procdir);
 	if (dp == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Cannot open pid %d process directory\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Cannot open pid %d process directory\n",
+			dev->device_fh, pid);
 		return -1;
-
 	}
 
 	found = 0;
@@ -254,23 +264,29 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	closedir(dp);
 
 	if (found == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file for pid %d\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file for pid %d\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 	/* Open the shared memory file and map the memory into this process. */
 	fd = open(memfile, O_RDWR);
 
 	if (fd == -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to open %s for pid %d\n", dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to open %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
-	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE ,
-			MAP_POPULATE|MAP_SHARED, fd, 0);
+	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE,
+		MAP_POPULATE|MAP_SHARED, fd, 0);
 	close(fd);
 
 	if (map == MAP_FAILED) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Error mapping the file %s for pid %d\n",  dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Error mapping the file %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
@@ -278,8 +294,11 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	mem->mapped_address = (uint64_t)(uintptr_t)map;
 	mem->mapped_size = procmap.len;
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n", dev->device_fh,
-		memfile, resolved_path, (long long unsigned)mem->mapped_size, map);
+	LOG_DEBUG(VHOST_CONFIG,
+		"(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n",
+		dev->device_fh,
+		memfile, resolved_path,
+		(long long unsigned)mem->mapped_size, map);
 
 	return 0;
 }
@@ -303,7 +322,8 @@ get_config_ll_entry(struct vhost_device_ctx ctx)
 }
 
 /*
- * Searches the configuration core linked list and retrieves the device if it exists.
+ * Searches the configuration core linked list and
+ * retrieves the device if it exists.
  */
 static struct virtio_net *
 get_device(struct vhost_device_ctx ctx)
@@ -312,11 +332,11 @@ get_device(struct vhost_device_ctx ctx)
 
 	ll_dev = get_config_ll_entry(ctx);
 
-	/* If a matching entry is found in the linked list, return the device in that entry. */
 	if (ll_dev)
 		return &ll_dev->dev;
 
-	RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Device not found in linked list.\n", ctx.fh);
+	RTE_LOG(ERR, VHOST_CONFIG,
+		"(%"PRIu64") Device not found in linked list.\n", ctx.fh);
 	return NULL;
 }
 
@@ -331,13 +351,18 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 	/* If ll_dev == NULL then this is the first device so go to else */
 	if (ll_dev) {
 		/* If the 1st device_fh != 0 then we insert our device here. */
-		if (ll_dev->dev.device_fh != 0)	{
+		if (ll_dev->dev.device_fh != 0) {
 			new_ll_dev->dev.device_fh = 0;
 			new_ll_dev->next = ll_dev;
 			ll_root = new_ll_dev;
 		} else {
-			/* Increment through the ll until we find un unused device_fh. Insert the device at that entry*/
-			while ((ll_dev->next != NULL) && (ll_dev->dev.device_fh == (ll_dev->next->dev.device_fh - 1)))
+			/*
+			 * Increment through the ll until we find un unused
+			 * device_fh. Insert the device at that entry.
+			 */
+			while ((ll_dev->next != NULL) &&
+				(ll_dev->dev.device_fh ==
+					(ll_dev->next->dev.device_fh - 1)))
 				ll_dev = ll_dev->next;
 
 			new_ll_dev->dev.device_fh = ll_dev->dev.device_fh + 1;
@@ -352,7 +377,8 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 }
 
 /*
- * Unmap any memory, close any file descriptors and free any memory owned by a device.
+ * Unmap any memory, close any file descriptors and
+ * free any memory owned by a device.
  */
 static void
 cleanup_device(struct virtio_net *dev)
@@ -386,6 +412,7 @@ free_device(struct virtio_net_config_ll *ll_dev)
 	free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
 	free(ll_dev);
 }
+
 /*
  * Remove an entry from the device configuration linked list.
  */
@@ -423,7 +450,10 @@ init_device(struct virtio_net *dev)
 {
 	uint64_t vq_offset;
 
-	/* Virtqueues have already been malloced so we don't want to set them to NULL. */
+	/*
+	 * Virtqueues have already been malloced so
+	 * we don't want to set them to NULL.
+	 */
 	vq_offset = offsetof(struct virtio_net, mem);
 
 	/* Set everything to 0. */
@@ -491,8 +521,8 @@ new_device(struct vhost_device_ctx ctx)
 }
 
 /*
- * Function is called from the CUSE release function. This function will cleanup
- * the device and remove it from device configuration linked list.
+ * Function is called from the CUSE release function. This function will
+ * cleanup the device and remove it from device configuration linked list.
  */
 static void
 destroy_device(struct vhost_device_ctx ctx)
@@ -503,15 +533,19 @@ destroy_device(struct vhost_device_ctx ctx)
 	/* Find the linked list entry for the device to be removed. */
 	ll_dev_cur_ctx = get_config_ll_entry(ctx);
 	while (ll_dev_cur != NULL) {
-		/* If the device is found or a device that doesn't exist is found then it is removed. */
+		/*
+		 * If the device is found or
+		 * a device that doesn't exist is found then it is removed.
+		 */
 		if (ll_dev_cur == ll_dev_cur_ctx) {
 			/*
-			 * If the device is running on a data core then call the function to remove it from
-			 * the data core.
+			 * If the device is running on a data core then call
+			 * the function to remove it from the data core.
 			 */
 			if ((ll_dev_cur->dev.flags & VIRTIO_DEV_RUNNING))
 				notify_ops->destroy_device(&(ll_dev_cur->dev));
-			ll_dev_cur = rm_config_ll_entry(ll_dev_cur, ll_dev_last);
+			ll_dev_cur = rm_config_ll_entry(ll_dev_cur,
+					ll_dev_last);
 		} else {
 			ll_dev_last = ll_dev_cur;
 			ll_dev_cur = ll_dev_cur->next;
@@ -521,7 +555,8 @@ destroy_device(struct vhost_device_ctx ctx)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_OWNER
- * This function just returns success at the moment unless the device hasn't been initialised.
+ * This function just returns success at the moment unless
+ * the device hasn't been initialised.
  */
 static int
 set_owner(struct vhost_device_ctx ctx)
@@ -571,7 +606,7 @@ get_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_FEATURES
- * We receive the negotiated set of features supported by us and the virtio device.
+ * We receive the negotiated features supported by us and the virtio device.
  */
 static int
 set_features(struct vhost_device_ctx ctx, uint64_t *pu)
@@ -589,13 +624,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 	/* Set the vhost_hlen depending on if VIRTIO_NET_F_MRG_RXBUF is set. */
 	if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers enabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers enabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 	} else {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers disabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers disabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
@@ -607,8 +646,8 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_MEM_TABLE
- * This function creates and populates the memory structure for the device. This includes
- * storing offsets used to translate buffer addresses.
+ * This function creates and populates the memory structure for the device.
+ * This includes storing offsets used to translate buffer addresses.
  */
 static int
 set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
@@ -634,7 +673,9 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	mem = calloc(1, sizeof(struct virtio_memory) +
 		(sizeof(struct virtio_memory_regions) * nregions));
 	if (mem == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to allocate memory for dev->mem.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to allocate memory for dev->mem.\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -656,15 +697,18 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 			mem_regions[regionidx].userspace_addr;
 
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") REGION: %u - GPA: %p - QEMU VA: %p - SIZE (%"PRIu64")\n", dev->device_fh,
-				regionidx, (void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
-				(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
-				mem->regions[regionidx].memory_size);
+			regionidx,
+			(void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
+			(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
+			mem->regions[regionidx].memory_size);
 
 		/*set the base address mapping*/
 		if (mem->regions[regionidx].guest_phys_address == 0x0) {
-			mem->base_address = mem->regions[regionidx].userspace_address;
+			mem->base_address =
+				mem->regions[regionidx].userspace_address;
 			/* Map VM memory file */
-			if (host_memory_map(dev, mem, ctx.pid, mem->base_address) != 0) {
+			if (host_memory_map(dev, mem, ctx.pid,
+				mem->base_address) != 0) {
 				free(mem);
 				return -1;
 			}
@@ -678,27 +722,42 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 		return -1;
 	}
 
-	/* Check if all of our regions have valid mappings. Usually one does not exist in the QEMU memory file. */
+	/*
+	 * Check if all of our regions have valid mappings.
+	 * Usually one does not exist in the QEMU memory file.
+	 */
 	valid_regions = mem->nregions;
 	for (regionidx = 0; regionidx < mem->nregions; regionidx++) {
-		if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-			(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size)))
+		if ((mem->regions[regionidx].userspace_address <
+			mem->base_address) ||
+			(mem->regions[regionidx].userspace_address >
+			(mem->base_address + mem->mapped_size)))
 				valid_regions--;
 	}
 
-	/* If a region does not have a valid mapping we rebuild our memory struct to contain only valid entries. */
+	/*
+	 * If a region does not have a valid mapping,
+	 * we rebuild our memory struct to contain only valid entries.
+	 */
 	if (valid_regions != mem->nregions) {
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Not all memory regions exist in the QEMU mem file. Re-populating mem structure\n",
 			dev->device_fh);
 
-		/* Re-populate the memory structure with only valid regions. Invalid regions are over-written with memmove. */
+		/*
+		 * Re-populate the memory structure with only valid regions.
+		 * Invalid regions are over-written with memmove.
+		 */
 		valid_regions = 0;
 
 		for (regionidx = mem->nregions; 0 != regionidx--;) {
-			if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-					(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size))) {
-				memmove(&mem->regions[regionidx], &mem->regions[regionidx + 1],
-					sizeof(struct virtio_memory_regions) * valid_regions);
+			if ((mem->regions[regionidx].userspace_address <
+				mem->base_address) ||
+				(mem->regions[regionidx].userspace_address >
+				(mem->base_address + mem->mapped_size))) {
+				memmove(&mem->regions[regionidx],
+					&mem->regions[regionidx + 1],
+					sizeof(struct virtio_memory_regions) *
+						valid_regions);
 			} else {
 				valid_regions++;
 			}
@@ -708,12 +767,16 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	dev->mem = mem;
 
 	/*
-	 * Calculate the address offset for each region. This offset is used to identify the vhost virtual address
+	 * Calculate the address offset for each region.
+	 * This offset is used to identify the vhost virtual address
 	 * corresponding to a QEMU guest physical address.
 	 */
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
-		dev->mem->regions[regionidx].address_offset = dev->mem->regions[regionidx].userspace_address - dev->mem->base_address
-			+ dev->mem->mapped_address - dev->mem->regions[regionidx].guest_phys_address;
+		dev->mem->regions[regionidx].address_offset =
+			dev->mem->regions[regionidx].userspace_address -
+				dev->mem->base_address +
+				dev->mem->mapped_address -
+				dev->mem->regions[regionidx].guest_phys_address;
 
 	}
 	return 0;
@@ -732,7 +795,7 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->size = state->num;
 
 	return 0;
@@ -740,8 +803,8 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_ADDR
- * The virtio device sends us the desc, used and avail ring addresses. This function
- * then converts these to our address space.
+ * The virtio device sends us the desc, used and avail ring addresses.
+ * This function then converts these to our address space.
  */
 static int
 set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
@@ -753,31 +816,43 @@ set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
 	if (dev == NULL)
 		return -1;
 
-	/* addr->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* addr->index refers to the queue index. The txq 1, rxq is 0. */
 	vq = dev->virtqueue[addr->index];
 
 	/* The addresses are converted from QEMU virtual to Vhost virtual. */
-	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev, addr->desc_user_addr);
+	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev,
+			addr->desc_user_addr);
 	if (vq->desc == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find descriptor ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find desc ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev, addr->avail_user_addr);
+	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev,
+			addr->avail_user_addr);
 	if (vq->avail == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find available ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find avail ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev, addr->used_user_addr);
+	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev,
+			addr->used_user_addr);
 	if (vq->used == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find used ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find used ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n", dev->device_fh, vq->desc);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n", dev->device_fh, vq->avail);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n", dev->device_fh, vq->used);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n",
+			dev->device_fh, vq->desc);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n",
+			dev->device_fh, vq->avail);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n",
+			dev->device_fh, vq->used);
 
 	return 0;
 }
@@ -795,7 +870,7 @@ set_vring_base(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->last_used_idx = state->num;
 	dev->virtqueue[state->index]->last_used_idx_res = state->num;
 
@@ -817,15 +892,15 @@ get_vring_base(struct vhost_device_ctx ctx, uint32_t index,
 		return -1;
 
 	state->index = index;
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	state->num = dev->virtqueue[state->index]->last_used_idx;
 
 	return 0;
 }
 
 /*
- * This function uses the eventfd_link kernel module to copy an eventfd file descriptor
- * provided by QEMU in to our process space.
+ * This function uses the eventfd_link kernel module to copy an eventfd file
+ * descriptor provided by QEMU in to our process space.
  */
 static int
 eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
@@ -835,7 +910,9 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	/* Open the character device to the kernel module. */
 	eventfd_link = open(eventfd_cdev, O_RDWR);
 	if (eventfd_link < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") eventfd_link module is not loaded\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") eventfd_link module is not loaded\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -844,18 +921,19 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	close(eventfd_link);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") EVENTFD_COPY ioctl failed\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") EVENTFD_COPY ioctl failed\n",
+			dev->device_fh);
 		return -1;
 	}
 
-
 	return 0;
 }
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_CALL
- * The virtio device sends an eventfd to interrupt the guest. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd to interrupt the guest. This fd gets
+ * copied into our process space.
  */
 static int
 set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -868,7 +946,7 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->kickfd)
@@ -888,8 +966,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_KICK
- * The virtio device sends an eventfd that it can use to notify us. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd that it can use to notify us.
+ * This fd gets copied into our process space.
  */
 static int
 set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -902,7 +980,7 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->callfd)
@@ -922,10 +1000,12 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_NET_SET_BACKEND
- * To complete device initialisation when the virtio driver is loaded we are provided with a
- * valid fd for a tap device (not used by us). If this happens then we can add the device to a
- * data core. When the virtio driver is removed we get fd=-1. At that point we remove the device
- * from the data core. The device will still exist in the device configuration linked list.
+ * To complete device initialisation when the virtio driver is loaded,
+ * we are provided with a valid fd for a tap device (not used by us).
+ * If this happens then we can add the device to a data core.
+ * When the virtio driver is removed we get fd=-1.
+ * At that point we remove the device from the data core.
+ * The device will still exist in the device configuration linked list.
  */
 static int
 set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -936,10 +1016,13 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[file->index]->backend = file->fd;
 
-	/* If the device isn't already running and both backend fds are set we add the device. */
+	/*
+	 * If the device isn't already running and both backend fds are set,
+	 * we add the device.
+	 */
 	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
 		if (((int)dev->virtqueue[VIRTIO_TXQ]->backend != VIRTIO_DEV_STOPPED) &&
 			((int)dev->virtqueue[VIRTIO_RXQ]->backend != VIRTIO_DEV_STOPPED))
@@ -952,8 +1035,8 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 }
 
 /*
- * Function pointers are set for the device operations to allow CUSE to call functions
- * when an IOCTL, device_add or device_release is received.
+ * Function pointers are set for the device operations to allow CUSE to call
+ * functions when an IOCTL, device_add or device_release is received.
  */
 static const struct vhost_net_device_ops vhost_device_ops = {
 	.new_device = new_device,
@@ -991,11 +1074,13 @@ int rte_vhost_enable_guest_notification(struct virtio_net *dev,
 	uint16_t queue_id, int enable)
 {
 	if (enable) {
-		RTE_LOG(ERR, VHOST_CONFIG, "guest notification isn't supported.\n");
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"guest notification isn't supported.\n");
 		return -1;
 	}
 
-	dev->virtqueue[queue_id]->used->flags = enable ? 0 : VRING_USED_F_NO_NOTIFY;
+	dev->virtqueue[queue_id]->used->flags =
+		enable ? 0 : VRING_USED_F_NO_NOTIFY;
 	return 0;
 }
 
-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05 21:55       ` Xie, Huawei
@ 2014-11-05 22:06         ` Thomas Monjalon
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2014-11-05 22:06 UTC (permalink / raw)
  To: Xie, Huawei; +Cc: dev

2014-11-05 21:55, Xie, Huawei:
> > 2014-11-05 21:21, Xie, Huawei:
> Btw, for alignment in structure,  I see different projects use different way,
> some use tab, and some use space(between type and var), do we have rules for this?
> {
> 	Type 	var1
> 	Type 	var2
> }

I prefer using spaces for such alignments. But Linux style is to use a mix of
tab and space with tab being equivalent to 8 spaces.
We have to write clear rules about such things and have our own checkpatch.
For release 1.8, we still don't care about this level of details.
Please let's re-open this topic after the release.

-- 
Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05 21:25     ` Thomas Monjalon
@ 2014-11-05 21:55       ` Xie, Huawei
  2014-11-05 22:06         ` Thomas Monjalon
  0 siblings, 1 reply; 10+ messages in thread
From: Xie, Huawei @ 2014-11-05 21:55 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, November 05, 2014 2:25 PM
> To: Xie, Huawei
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
> 
> 2014-11-05 21:21, Xie, Huawei:
> > Thomas:
> > I checked before. checkpatch reports  9 warnings, "over 80 characters" and
> "prefer pr_deubg".
> > This code style fixes code style issue only, not the pr_debug/printk issue.
> Thoughts?
> 
> Using pr_debug is a code style fix.
> 
Ok, will also fix this.
If there are other code style issue you want to be fixed in this patch, please let me know.
Btw, for alignment in structure,  I see different projects use different way, some use tab, and some use space(between type and var), do we have rules for this?
{
	Type 	var1
	Type 	var2
}
> > Besides, I don't understand the MISORDERED_TYPE.
> 
> You should replace (long long unsigned) by (unsigned long long).
Check patch at my side doesn't report warnings about the patch. I remember I have also check against the source file. Will double check and fix those.
> 
> > > -----Original Message-----
> > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > Sent: Wednesday, November 05, 2014 1:42 PM
> > > To: Xie, Huawei
> > > Cc: dev@dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
> > >
> > > Hi Huawei,
> > >
> > > checkpatch.pl reports some errors of types PREFER_PR_LEVEL
> > > and MISORDERED_TYPE.
> > >
> > > --
> > > Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05 21:21   ` Xie, Huawei
@ 2014-11-05 21:25     ` Thomas Monjalon
  2014-11-05 21:55       ` Xie, Huawei
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2014-11-05 21:25 UTC (permalink / raw)
  To: Xie, Huawei; +Cc: dev

2014-11-05 21:21, Xie, Huawei:
> Thomas:
> I checked before. checkpatch reports  9 warnings, "over 80 characters" and "prefer pr_deubg".
> This code style fixes code style issue only, not the pr_debug/printk issue. Thoughts?

Using pr_debug is a code style fix.

> Besides, I don't understand the MISORDERED_TYPE.

You should replace (long long unsigned) by (unsigned long long).

> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > Sent: Wednesday, November 05, 2014 1:42 PM
> > To: Xie, Huawei
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
> > 
> > Hi Huawei,
> > 
> > checkpatch.pl reports some errors of types PREFER_PR_LEVEL
> > and MISORDERED_TYPE.
> > 
> > --
> > Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05 20:41 ` Thomas Monjalon
@ 2014-11-05 21:21   ` Xie, Huawei
  2014-11-05 21:25     ` Thomas Monjalon
  0 siblings, 1 reply; 10+ messages in thread
From: Xie, Huawei @ 2014-11-05 21:21 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Thomas:
I checked before. checkpatch reports  9 warnings, "over 80 characters" and "prefer pr_deubg".
This code style fixes code style issue only, not the pr_debug/printk issue. Thoughts?
Besides, I don't understand the MISORDERED_TYPE. 


> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, November 05, 2014 1:42 PM
> To: Xie, Huawei
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
> 
> Hi Huawei,
> 
> checkpatch.pl reports some errors of types PREFER_PR_LEVEL
> and MISORDERED_TYPE.
> 
> --
> Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05 17:03 Huawei Xie
@ 2014-11-05 20:41 ` Thomas Monjalon
  2014-11-05 21:21   ` Xie, Huawei
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2014-11-05 20:41 UTC (permalink / raw)
  To: Huawei Xie; +Cc: dev

Hi Huawei,

checkpatch.pl reports some errors of types PREFER_PR_LEVEL
and MISORDERED_TYPE.

-- 
Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05  9:09 ` Thomas Monjalon
@ 2014-11-05 17:07   ` Xie, Huawei
  0 siblings, 0 replies; 10+ messages in thread
From: Xie, Huawei @ 2014-11-05 17:07 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

:(.
Resent done. Please drop this patch.

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, November 05, 2014 2:10 AM
> To: Xie, Huawei
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
> 
> Hi Huawei,
> 
> Please set a Signed-off in your patch.
> 
> 2014-11-05 12:42, Huawei Xie:
> > This patch fixes code style issues and refines some comments in vhost library.
> >
> >
> > ---
> >  lib/librte_vhost/eventfd_link/eventfd_link.c | 244 ++++++++++-----------
> >  lib/librte_vhost/eventfd_link/eventfd_link.h | 127 ++++++-----
> >  lib/librte_vhost/rte_virtio_net.h            |   3 +-
> >  lib/librte_vhost/vhost-net-cdev.c            | 187 +++++++++-------
> >  lib/librte_vhost/vhost_rxtx.c                |  13 +-
> >  lib/librte_vhost/virtio-net.c                | 317 +++++++++++++++++----------
> >  6 files changed, 494 insertions(+), 397 deletions(-)
> >
> > diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.c
> b/lib/librte_vhost/eventfd_link/eventfd_link.c
> > index fc0653a..542ec2c 100644
> > --- a/lib/librte_vhost/eventfd_link/eventfd_link.c
> > +++ b/lib/librte_vhost/eventfd_link/eventfd_link.c
> > @@ -1,26 +1,26 @@
> >  /*-
> > - *  * GPL LICENSE SUMMARY
> > - *  *
> > - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > - *  *
> > - *  *   This program is free software; you can redistribute it and/or modify
> > - *  *   it under the terms of version 2 of the GNU General Public License as
> > - *  *   published by the Free Software Foundation.
> > - *  *
> > - *  *   This program is distributed in the hope that it will be useful, but
> > - *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> > - *  *   General Public License for more details.
> > - *  *
> > - *  *   You should have received a copy of the GNU General Public License
> > - *  *   along with this program; if not, write to the Free Software
> > - *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301
> USA.
> > - *  *   The full GNU General Public License is included in this distribution
> > - *  *   in the file called LICENSE.GPL.
> > - *  *
> > - *  *   Contact Information:
> > - *  *   Intel Corporation
> > - *   */
> > + * GPL LICENSE SUMMARY
> > + *
> > + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > + *
> > + *   This program is free software; you can redistribute it and/or modify
> > + *   it under the terms of version 2 of the GNU General Public License as
> > + *   published by the Free Software Foundation.
> > + *
> > + *   This program is distributed in the hope that it will be useful, but
> > + *   WITHOUT ANY WARRANTY; without even the implied warranty of
> > + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> > + *   General Public License for more details.
> > + *
> > + *   You should have received a copy of the GNU General Public License
> > + *   along with this program; if not, write to the Free Software
> > + *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> > + *   The full GNU General Public License is included in this distribution
> > + *   in the file called LICENSE.GPL.
> > + *
> > + *   Contact Information:
> > + *   Intel Corporation
> > + */
> >
> >  #include <linux/eventfd.h>
> >  #include <linux/miscdevice.h>
> > @@ -42,15 +42,15 @@
> >   * get_files_struct is copied from fs/file.c
> >   */
> >  struct files_struct *
> > -get_files_struct (struct task_struct *task)
> > +get_files_struct(struct task_struct *task)
> >  {
> >  	struct files_struct *files;
> >
> > -	task_lock (task);
> > +	task_lock(task);
> >  	files = task->files;
> >  	if (files)
> > -		atomic_inc (&files->count);
> > -	task_unlock (task);
> > +		atomic_inc(&files->count);
> > +	task_unlock(task);
> >
> >  	return files;
> >  }
> > @@ -59,17 +59,15 @@ get_files_struct (struct task_struct *task)
> >   * put_files_struct is extracted from fs/file.c
> >   */
> >  void
> > -put_files_struct (struct files_struct *files)
> > +put_files_struct(struct files_struct *files)
> >  {
> > -	if (atomic_dec_and_test (&files->count))
> > -	{
> > -		BUG ();
> > -	}
> > +	if (atomic_dec_and_test(&files->count))
> > +		BUG();
> >  }
> >
> >
> >  static long
> > -eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
> > +eventfd_link_ioctl(struct file *f, unsigned int ioctl, unsigned long arg)
> >  {
> >  	void __user *argp = (void __user *) arg;
> >  	struct task_struct *task_target = NULL;
> > @@ -78,96 +76,88 @@ eventfd_link_ioctl (struct file *f, unsigned int ioctl,
> unsigned long arg)
> >  	struct fdtable *fdt;
> >  	struct eventfd_copy eventfd_copy;
> >
> > -	switch (ioctl)
> > -	{
> > -		case EVENTFD_COPY:
> > -			if (copy_from_user (&eventfd_copy, argp, sizeof (struct
> eventfd_copy)))
> > -				return -EFAULT;
> > -
> > -			/*
> > -			 * Find the task struct for the target pid
> > -			 */
> > -			task_target =
> > -				pid_task (find_vpid (eventfd_copy.target_pid),
> PIDTYPE_PID);
> > -			if (task_target == NULL)
> > -			{
> > -				printk (KERN_DEBUG "Failed to get mem ctx for
> target pid\n");
> > -				return -EFAULT;
> > -			}
> > -
> > -			files = get_files_struct (current);
> > -			if (files == NULL)
> > -			{
> > -				printk (KERN_DEBUG "Failed to get files
> struct\n");
> > -				return -EFAULT;
> > -			}
> > -
> > -			rcu_read_lock ();
> > -			file = fcheck_files (files, eventfd_copy.source_fd);
> > -			if (file)
> > -			{
> > -				if (file->f_mode & FMODE_PATH
> > -						|| !atomic_long_inc_not_zero
> (&file->f_count))
> > -					file = NULL;
> > -			}
> > -			rcu_read_unlock ();
> > -			put_files_struct (files);
> > -
> > -			if (file == NULL)
> > -			{
> > -				printk (KERN_DEBUG "Failed to get file from
> source pid\n");
> > -				return 0;
> > -			}
> > -
> > -			/*
> > -			 * Release the existing eventfd in the source process
> > -			 */
> > -			spin_lock (&files->file_lock);
> > -			filp_close (file, files);
> > -			fdt = files_fdtable (files);
> > -			fdt->fd[eventfd_copy.source_fd] = NULL;
> > -			spin_unlock (&files->file_lock);
> > -
> > -			/*
> > -			 * Find the file struct associated with the target fd.
> > -			 */
> > -
> > -			files = get_files_struct (task_target);
> > -			if (files == NULL)
> > -			{
> > -				printk (KERN_DEBUG "Failed to get files
> struct\n");
> > -				return -EFAULT;
> > -			}
> > -
> > -			rcu_read_lock ();
> > -			file = fcheck_files (files, eventfd_copy.target_fd);
> > -			if (file)
> > -			{
> > -				if (file->f_mode & FMODE_PATH
> > -						|| !atomic_long_inc_not_zero
> (&file->f_count))
> > +	switch (ioctl) {
> > +	case EVENTFD_COPY:
> > +		if (copy_from_user(&eventfd_copy, argp,
> > +			sizeof(struct eventfd_copy)))
> > +			return -EFAULT;
> > +
> > +		/*
> > +		 * Find the task struct for the target pid
> > +		 */
> > +		task_target =
> > +			pid_task(find_vpid(eventfd_copy.target_pid),
> PIDTYPE_PID);
> > +		if (task_target == NULL) {
> > +			printk(KERN_DEBUG "Failed to get mem ctx for target
> pid\n");
> > +			return -EFAULT;
> > +		}
> > +
> > +		files = get_files_struct(current);
> > +		if (files == NULL) {
> > +			printk(KERN_DEBUG "Failed to get files struct\n");
> > +			return -EFAULT;
> > +		}
> > +
> > +		rcu_read_lock();
> > +		file = fcheck_files(files, eventfd_copy.source_fd);
> > +		if (file) {
> > +			if (file->f_mode & FMODE_PATH ||
> > +				!atomic_long_inc_not_zero(&file->f_count))
> > +				file = NULL;
> > +		}
> > +		rcu_read_unlock();
> > +		put_files_struct(files);
> > +
> > +		if (file == NULL) {
> > +			printk(KERN_DEBUG "Failed to get file from source
> pid\n");
> > +			return 0;
> > +		}
> > +
> > +		/*
> > +		 * Release the existing eventfd in the source process
> > +		 */
> > +		spin_lock(&files->file_lock);
> > +		filp_close(file, files);
> > +		fdt = files_fdtable(files);
> > +		fdt->fd[eventfd_copy.source_fd] = NULL;
> > +		spin_unlock(&files->file_lock);
> > +
> > +		/*
> > +		 * Find the file struct associated with the target fd.
> > +		 */
> > +
> > +		files = get_files_struct(task_target);
> > +		if (files == NULL) {
> > +			printk(KERN_DEBUG "Failed to get files struct\n");
> > +			return -EFAULT;
> > +		}
> > +
> > +		rcu_read_lock();
> > +		file = fcheck_files(files, eventfd_copy.target_fd);
> > +		if (file) {
> > +			if (file->f_mode & FMODE_PATH ||
> > +				!atomic_long_inc_not_zero(&file->f_count))
> >  					file = NULL;
> > -			}
> > -			rcu_read_unlock ();
> > -			put_files_struct (files);
> > -
> > -			if (file == NULL)
> > -			{
> > -				printk (KERN_DEBUG "Failed to get file from
> target pid\n");
> > -				return 0;
> > -			}
> > +		}
> > +		rcu_read_unlock();
> > +		put_files_struct(files);
> >
> > +		if (file == NULL) {
> > +			printk(KERN_DEBUG "Failed to get file from target
> pid\n");
> > +			return 0;
> > +		}
> >
> > -			/*
> > -			 * Install the file struct from the target process into the
> > -			 * file desciptor of the source process,
> > -			 */
> > +		/*
> > +		 * Install the file struct from the target process into the
> > +		 * file desciptor of the source process,
> > +		 */
> >
> > -			fd_install (eventfd_copy.source_fd, file);
> > +		fd_install(eventfd_copy.source_fd, file);
> >
> > -			return 0;
> > +		return 0;
> >
> > -		default:
> > -			return -ENOIOCTLCMD;
> > +	default:
> > +		return -ENOIOCTLCMD;
> >  	}
> >  }
> >
> > @@ -183,23 +173,23 @@ static struct miscdevice eventfd_link_misc = {
> >  };
> >
> >  static int __init
> > -eventfd_link_init (void)
> > +eventfd_link_init(void)
> >  {
> > -	return misc_register (&eventfd_link_misc);
> > +	return misc_register(&eventfd_link_misc);
> >  }
> >
> > -module_init (eventfd_link_init);
> > +module_init(eventfd_link_init);
> >
> >  static void __exit
> > -eventfd_link_exit (void)
> > +eventfd_link_exit(void)
> >  {
> > -	misc_deregister (&eventfd_link_misc);
> > +	misc_deregister(&eventfd_link_misc);
> >  }
> >
> > -module_exit (eventfd_link_exit);
> > +module_exit(eventfd_link_exit);
> >
> > -MODULE_VERSION ("0.0.1");
> > -MODULE_LICENSE ("GPL v2");
> > -MODULE_AUTHOR ("Anthony Fee");
> > -MODULE_DESCRIPTION ("Link eventfd");
> > -MODULE_ALIAS ("devname:eventfd-link");
> > +MODULE_VERSION("0.0.1");
> > +MODULE_LICENSE("GPL v2");
> > +MODULE_AUTHOR("Anthony Fee");
> > +MODULE_DESCRIPTION("Link eventfd");
> > +MODULE_ALIAS("devname:eventfd-link");
> > diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.h
> b/lib/librte_vhost/eventfd_link/eventfd_link.h
> > index a32a8dd..ea619ec 100644
> > --- a/lib/librte_vhost/eventfd_link/eventfd_link.h
> > +++ b/lib/librte_vhost/eventfd_link/eventfd_link.h
> > @@ -1,79 +1,76 @@
> >  /*-
> > - *  * This file is provided under a dual BSD/GPLv2 license.  When using or
> > - *  *   redistributing this file, you may do so under either license.
> > - *  *
> > - *  *   GPL LICENSE SUMMARY
> > - *  *
> > - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > - *  *
> > - *  *   This program is free software; you can redistribute it and/or modify
> > - *  *   it under the terms of version 2 of the GNU General Public License as
> > - *  *   published by the Free Software Foundation.
> > - *  *
> > - *  *   This program is distributed in the hope that it will be useful, but
> > - *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
> > - *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> > - *  *   General Public License for more details.
> > - *  *
> > - *  *   You should have received a copy of the GNU General Public License
> > - *  *   along with this program; if not, write to the Free Software
> > - *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301
> USA.
> > - *  *   The full GNU General Public License is included in this distribution
> > - *  *   in the file called LICENSE.GPL.
> > - *  *
> > - *  *   Contact Information:
> > - *  *   Intel Corporation
> > - *  *
> > - *  *   BSD LICENSE
> > - *  *
> > - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > - *  *   All rights reserved.
> > - *  *
> > - *  *   Redistribution and use in source and binary forms, with or without
> > - *  *   modification, are permitted provided that the following conditions
> > - *  *   are met:
> > - *  *
> > - *  *     * Redistributions of source code must retain the above copyright
> > - *  *       notice, this list of conditions and the following disclaimer.
> > - *  *     * Redistributions in binary form must reproduce the above copyright
> > - *  *       notice, this list of conditions and the following disclaimer in
> > - *  *       the documentation and/or other materials provided with the
> > - *  *       distribution.
> > - *  *     * Neither the name of Intel Corporation nor the names of its
> > - *  *       contributors may be used to endorse or promote products derived
> > - *  *       from this software without specific prior written permission.
> > - *  *
> > - *  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> > - *  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
> NOT
> > - *  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
> FITNESS FOR
> > - *  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> COPYRIGHT
> > - *  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> INCIDENTAL,
> > - *  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
> BUT NOT
> > - *  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> LOSS OF USE,
> > - *  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> AND ON ANY
> > - *  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
> TORT
> > - *  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> OF THE USE
> > - *  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
> DAMAGE.
> > - *  *
> > - *   */
> > + *  This file is provided under a dual BSD/GPLv2 license.  When using or
> > + *  redistributing this file, you may do so under either license.
> > + *
> > + * GPL LICENSE SUMMARY
> > + *
> > + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > + *
> > + *   This program is free software; you can redistribute it and/or modify
> > + *   it under the terms of version 2 of the GNU General Public License as
> > + *   published by the Free Software Foundation.
> > + *
> > + *   This program is distributed in the hope that it will be useful, but
> > + *   WITHOUT ANY WARRANTY; without even the implied warranty of
> > + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> > + *   General Public License for more details.
> > + *
> > + *   You should have received a copy of the GNU General Public License
> > + *   along with this program; if not, write to the Free Software
> > + *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> > + *   The full GNU General Public License is included in this distribution
> > + *   in the file called LICENSE.GPL.
> > + *
> > + *   Contact Information:
> > + *   Intel Corporation
> > + *
> > + * BSD LICENSE
> > + *
> > + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> > + *   All rights reserved.
> > + *
> > + *   Redistribution and use in source and binary forms, with or without
> > + *   modification, are permitted provided that the following conditions
> > + *   are met:
> > + *
> > + *   Redistributions of source code must retain the above copyright
> > + *   notice, this list of conditions and the following disclaimer.
> > + *   Redistributions in binary form must reproduce the above copyright
> > + *   notice, this list of conditions and the following disclaimer in
> > + *   the documentation and/or other materials provided with the
> > + *   distribution.
> > + *   Neither the name of Intel Corporation nor the names of its
> > + *   contributors may be used to endorse or promote products derived
> > + *   from this software without specific prior written permission.
> > + *
> > + *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> > + *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
> NOT
> > + *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
> FITNESS FOR
> > + *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> COPYRIGHT
> > + *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> INCIDENTAL,
> > + *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> NOT
> > + *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
> OF USE,
> > + *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> AND ON ANY
> > + *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
> TORT
> > + *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
> THE USE
> > + *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
> DAMAGE.
> > + *
> > + */
> >
> >  #ifndef _EVENTFD_LINK_H_
> >  #define _EVENTFD_LINK_H_
> >
> >  /*
> > - *	ioctl to copy an fd entry in calling process to an fd in a target process
> > + * ioctl to copy an fd entry in calling process to an fd in a target process
> >   */
> >  #define EVENTFD_COPY 1
> >
> >  /*
> > - *	arguements for the EVENTFD_COPY ioctl
> > + * arguements for the EVENTFD_COPY ioctl
> >   */
> >  struct eventfd_copy {
> > -	// fd in the target pid
> > -    unsigned target_fd;
> > -	// fd in the calling pid
> > -    unsigned source_fd;
> > -	// pid of the target pid
> > -    pid_t target_pid;
> > +	unsigned target_fd; /* fd in the target pid */
> > +	unsigned source_fd; /* fd in the calling pid */
> > +	pid_t target_pid; /* pid of the target pid */
> >  };
> >  #endif /* _EVENTFD_LINK_H_ */
> > diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
> > index b6548a1..00b1328 100644
> > --- a/lib/librte_vhost/rte_virtio_net.h
> > +++ b/lib/librte_vhost/rte_virtio_net.h
> > @@ -90,8 +90,7 @@ struct vhost_virtqueue {
> >  /**
> >   * Device structure contains all configuration information relating to the
> device.
> >   */
> > -struct virtio_net
> > -{
> > +struct virtio_net {
> >  	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/**< Contains
> all virtqueue information. */
> >  	struct virtio_memory	*mem;		/**< QEMU memory and
> memory region information. */
> >  	uint64_t		features;	/**< Negotiated feature set.
> */
> > diff --git a/lib/librte_vhost/vhost-net-cdev.c b/lib/librte_vhost/vhost-net-
> cdev.c
> > index 91ff0d8..57c76cb 100644
> > --- a/lib/librte_vhost/vhost-net-cdev.c
> > +++ b/lib/librte_vhost/vhost-net-cdev.c
> > @@ -46,21 +46,21 @@
> >
> >  #include "vhost-net-cdev.h"
> >
> > -#define FUSE_OPT_DUMMY		"\0\0"
> > -#define FUSE_OPT_FORE		"-f\0\0"
> > -#define FUSE_OPT_NOMULTI	"-s\0\0"
> > +#define FUSE_OPT_DUMMY "\0\0"
> > +#define FUSE_OPT_FORE  "-f\0\0"
> > +#define FUSE_OPT_NOMULTI "-s\0\0"
> >
> > -static const uint32_t	default_major = 231;
> > -static const uint32_t	default_minor = 1;
> > -static const char	cuse_device_name[]	= "/dev/cuse";
> > -static const char	default_cdev[] = "vhost-net";
> > +static const uint32_t default_major = 231;
> > +static const uint32_t default_minor = 1;
> > +static const char cuse_device_name[] = "/dev/cuse";
> > +static const char default_cdev[] = "vhost-net";
> >
> > -static struct fuse_session			*session;
> > -static struct vhost_net_device_ops	const *ops;
> > +static struct fuse_session *session;
> > +static struct vhost_net_device_ops const *ops;
> >
> >  /*
> > - * Returns vhost_device_ctx from given fuse_req_t. The index is populated
> later when
> > - * the device is added to the device linked list.
> > + * Returns vhost_device_ctx from given fuse_req_t. The index is populated
> later
> > + * when the device is added to the device linked list.
> >   */
> >  static struct vhost_device_ctx
> >  fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
> > @@ -75,7 +75,8 @@ fuse_req_to_vhost_ctx(fuse_req_t req, struct
> fuse_file_info *fi)
> >  }
> >
> >  /*
> > - * When the device is created in QEMU it gets initialised here and added to the
> device linked list.
> > + * When the device is created in QEMU it gets initialised here and
> > + * added to the device linked list.
> >   */
> >  static void
> >  vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
> > @@ -91,7 +92,8 @@ vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
> >
> >  	fi->fh = err;
> >
> > -	RTE_LOG(INFO, VHOST_CONFIG, "(%"PRIu64") Device configuration
> started\n", fi->fh);
> > +	RTE_LOG(INFO, VHOST_CONFIG,
> > +		"(%"PRIu64") Device configuration started\n", fi->fh);
> >  	fuse_reply_open(req, fi);
> >  }
> >
> > @@ -113,8 +115,8 @@ vhost_net_release(fuse_req_t req, struct
> fuse_file_info *fi)
> >   * Boilerplate code for CUSE IOCTL
> >   * Implicit arguments: ctx, req, result.
> >   */
> > -#define VHOST_IOCTL(func) do {			\
> > -	result = (func)(ctx);			\
> > +#define VHOST_IOCTL(func) do {	\
> > +	result = (func)(ctx);	\
> >  	fuse_reply_ioctl(req, result, NULL, 0);	\
> >  } while (0)
> >
> > @@ -122,57 +124,58 @@ vhost_net_release(fuse_req_t req, struct
> fuse_file_info *fi)
> >   * Boilerplate IOCTL RETRY
> >   * Implicit arguments: req.
> >   */
> > -#define VHOST_IOCTL_RETRY(size_r, size_w) do {		\
> > -	struct iovec iov_r = { arg, (size_r) };		\
> > -	struct iovec iov_w = { arg, (size_w) };		\
> > -	fuse_reply_ioctl_retry(req, &iov_r, (size_r)?1:0, &iov_w, (size_w)?1:0);
> 	\
> > +#define VHOST_IOCTL_RETRY(size_r, size_w) do {	\
> > +	struct iovec iov_r = { arg, (size_r) };	\
> > +	struct iovec iov_w = { arg, (size_w) };	\
> > +	fuse_reply_ioctl_retry(req, &iov_r,	\
> > +		(size_r) ? 1 : 0, &iov_w, (size_w) ? 1 : 0);\
> >  } while (0)
> >
> >  /*
> >   * Boilerplate code for CUSE Read IOCTL
> >   * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
> >   */
> > -#define VHOST_IOCTL_R(type, var, func) do {		\
> > -	if (!in_bufsz) {				\
> > -		VHOST_IOCTL_RETRY(sizeof(type), 0);	\
> > -	} else {					\
> > -		(var) = *(const type*) in_buf;		\
> > -		result = func(ctx, &(var));		\
> > -		fuse_reply_ioctl(req, result, NULL, 0);	\
> > -	}						\
> > +#define VHOST_IOCTL_R(type, var, func) do {	\
> > +	if (!in_bufsz) {	\
> > +		VHOST_IOCTL_RETRY(sizeof(type), 0);\
> > +	} else {	\
> > +		(var) = *(const type*)in_buf;	\
> > +		result = func(ctx, &(var));	\
> > +		fuse_reply_ioctl(req, result, NULL, 0);\
> > +	}	\
> >  } while (0)
> >
> >  /*
> > - *	Boilerplate code for CUSE Write IOCTL
> > + * Boilerplate code for CUSE Write IOCTL
> >   * Implicit arguments: ctx, req, result, out_bufsz.
> >   */
> > -#define	VHOST_IOCTL_W(type, var, func) do {		\
> > -	if (!out_bufsz) {				\
> > -		VHOST_IOCTL_RETRY(0, sizeof(type));	\
> > -	} else {					\
> > -		result = (func)(ctx, &(var));		\
> > -		fuse_reply_ioctl(req, result, &(var), sizeof(type));	\
> > -	}								\
> > +#define VHOST_IOCTL_W(type, var, func) do {	\
> > +	if (!out_bufsz) {	\
> > +		VHOST_IOCTL_RETRY(0, sizeof(type));\
> > +	} else {	\
> > +		result = (func)(ctx, &(var));\
> > +		fuse_reply_ioctl(req, result, &(var), sizeof(type));\
> > +	} \
> >  } while (0)
> >
> >  /*
> >   * Boilerplate code for CUSE Read/Write IOCTL
> >   * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
> >   */
> > -#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {		\
> > -	if (!in_bufsz) {						\
> > -		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));	\
> > -	} else {							\
> > -		(var1) = *(const type1*) (in_buf);			\
> > -		result = (func)(ctx, (var1), &(var2));			\
> > -		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));	\
> > -	}								\
> > +#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {	\
> > +	if (!in_bufsz) {	\
> > +		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));\
> > +	} else {	\
> > +		(var1) = *(const type1*) (in_buf);	\
> > +		result = (func)(ctx, (var1), &(var2));	\
> > +		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));\
> > +	}	\
> >  } while (0)
> >
> >  /*
> > - * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on
> > - * the type of IOCTL a buffer is requested to read or to write. This
> > - * request is handled by FUSE and the buffer is then given to CUSE.
> > + * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on the
> type
> > + * of IOCTL a buffer is requested to read or to write. This request is handled
> > + * by FUSE and the buffer is then given to CUSE.
> >   */
> >  static void
> >  vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
> > @@ -189,33 +192,39 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
> >
> >  	switch (cmd) {
> >  	case VHOST_NET_SET_BACKEND:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_NET_SET_BACKEND\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n",
> ctx.fh);
> >  		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_backend);
> >  		break;
> >
> >  	case VHOST_GET_FEATURES:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_GET_FEATURES\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
> >  		VHOST_IOCTL_W(uint64_t, features, ops->get_features);
> >  		break;
> >
> >  	case VHOST_SET_FEATURES:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_FEATURES\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
> >  		VHOST_IOCTL_R(uint64_t, features, ops->set_features);
> >  		break;
> >
> >  	case VHOST_RESET_OWNER:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_RESET_OWNER\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
> >  		VHOST_IOCTL(ops->reset_owner);
> >  		break;
> >
> >  	case VHOST_SET_OWNER:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_OWNER\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
> >  		VHOST_IOCTL(ops->set_owner);
> >  		break;
> >
> >  	case VHOST_SET_MEM_TABLE:
> >  		/*TODO fix race condition.*/
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_MEM_TABLE\n", ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n",
> ctx.fh);
> >  		static struct vhost_memory mem_temp;
> >
> >  		switch (in_bufsz) {
> > @@ -227,7 +236,9 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
> >  			mem_temp = *(const struct vhost_memory *) in_buf;
> >
> >  			if (mem_temp.nregions > 0) {
> > -				VHOST_IOCTL_RETRY(sizeof(struct
> vhost_memory) + (sizeof(struct vhost_memory_region) * mem_temp.nregions),
> 0);
> > +				VHOST_IOCTL_RETRY(sizeof(struct
> vhost_memory) +
> > +					(sizeof(struct vhost_memory_region) *
> > +						mem_temp.nregions), 0);
> >  			} else {
> >  				result = -1;
> >  				fuse_reply_ioctl(req, result, NULL, 0);
> > @@ -235,56 +246,70 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
> >  			break;
> >
> >  		default:
> > -			result = ops->set_mem_table(ctx, in_buf,
> mem_temp.nregions);
> > +			result = ops->set_mem_table(ctx,
> > +					in_buf, mem_temp.nregions);
> >  			if (result)
> >  				fuse_reply_err(req, EINVAL);
> >  			else
> >  				fuse_reply_ioctl(req, result, NULL, 0);
> > -
> >  		}
> > -
> >  		break;
> >
> >  	case VHOST_SET_VRING_NUM:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_VRING_NUM\n", ctx.fh);
> > -		VHOST_IOCTL_R(struct vhost_vring_state, state, ops-
> >set_vring_num);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n",
> ctx.fh);
> > +		VHOST_IOCTL_R(struct vhost_vring_state, state,
> > +			ops->set_vring_num);
> >  		break;
> >
> >  	case VHOST_SET_VRING_BASE:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_VRING_BASE\n", ctx.fh);
> > -		VHOST_IOCTL_R(struct vhost_vring_state, state, ops-
> >set_vring_base);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n",
> ctx.fh);
> > +		VHOST_IOCTL_R(struct vhost_vring_state, state,
> > +			ops->set_vring_base);
> >  		break;
> >
> >  	case VHOST_GET_VRING_BASE:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_GET_VRING_BASE\n", ctx.fh);
> > -		VHOST_IOCTL_RW(uint32_t, index, struct vhost_vring_state,
> state, ops->get_vring_base);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n",
> ctx.fh);
> > +		VHOST_IOCTL_RW(uint32_t, index,
> > +			struct vhost_vring_state, state, ops->get_vring_base);
> >  		break;
> >
> >  	case VHOST_SET_VRING_ADDR:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_VRING_ADDR\n", ctx.fh);
> > -		VHOST_IOCTL_R(struct vhost_vring_addr, addr, ops-
> >set_vring_addr);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n",
> ctx.fh);
> > +		VHOST_IOCTL_R(struct vhost_vring_addr, addr,
> > +			ops->set_vring_addr);
> >  		break;
> >
> >  	case VHOST_SET_VRING_KICK:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_VRING_KICK\n", ctx.fh);
> > -		VHOST_IOCTL_R(struct vhost_vring_file, file, ops-
> >set_vring_kick);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n",
> ctx.fh);
> > +		VHOST_IOCTL_R(struct vhost_vring_file, file,
> > +			ops->set_vring_kick);
> >  		break;
> >
> >  	case VHOST_SET_VRING_CALL:
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL:
> VHOST_SET_VRING_CALL\n", ctx.fh);
> > -		VHOST_IOCTL_R(struct vhost_vring_file, file, ops-
> >set_vring_call);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n",
> ctx.fh);
> > +		VHOST_IOCTL_R(struct vhost_vring_file, file,
> > +			ops->set_vring_call);
> >  		break;
> >
> >  	default:
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") IOCTL: DOESN
> NOT EXIST\n", ctx.fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
> >  		result = -1;
> >  		fuse_reply_ioctl(req, result, NULL, 0);
> >  	}
> >
> >  	if (result < 0)
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: FAIL\n",
> ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
> >  	else
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: SUCCESS\n",
> ctx.fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
> >  }
> >
> >  /*
> > @@ -297,8 +322,8 @@ static const struct cuse_lowlevel_ops vhost_net_ops =
> {
> >  };
> >
> >  /*
> > - * cuse_info is populated and used to register the cuse device.
> vhost_net_device_ops are
> > - * also passed when the device is registered in main.c.
> > + * cuse_info is populated and used to register the cuse device.
> > + * vhost_net_device_ops are also passed when the device is registered in app.
> >   */
> >  int
> >  rte_vhost_driver_register(const char *dev_name)
> > @@ -314,20 +339,23 @@ rte_vhost_driver_register(const char *dev_name)
> >  	char *fuse_argv[] = {fuse_opt_dummy, fuse_opt_fore,
> fuse_opt_nomulti};
> >
> >  	if (access(cuse_device_name, R_OK | W_OK) < 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s can't be
> accessed, maybe not exist\n", cuse_device_name);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"char device %s can't be accessed, maybe not exist\n",
> > +			cuse_device_name);
> >  		return -1;
> >  	}
> >
> >  	/*
> > -	 * The device name is created. This is passed to QEMU so that it can
> register
> > -	 * the device with our application.
> > +	 * The device name is created. This is passed to QEMU so that it can
> > +	 * register the device with our application.
> >  	 */
> >  	snprintf(device_name, PATH_MAX, "DEVNAME=%s", dev_name);
> >  	snprintf(char_device_name, PATH_MAX, "/dev/%s", dev_name);
> >
> >  	/* Check if device already exists. */
> >  	if (access(char_device_name, F_OK) != -1) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s already
> exists\n", char_device_name);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"char device %s already exists\n", char_device_name);
> >  		return -1;
> >  	}
> >
> > @@ -341,7 +369,7 @@ rte_vhost_driver_register(const char *dev_name)
> >  	ops = get_virtio_net_callbacks();
> >
> >  	session = cuse_lowlevel_setup(3, fuse_argv,
> > -				&cuse_info, &vhost_net_ops, 0, NULL);
> > +			&cuse_info, &vhost_net_ops, 0, NULL);
> >  	if (session == NULL)
> >  		return -1;
> >
> > @@ -349,7 +377,8 @@ rte_vhost_driver_register(const char *dev_name)
> >  }
> >
> >  /**
> > - * The CUSE session is launched allowing the application to receive open,
> release and ioctl calls.
> > + * The CUSE session is launched allowing the application to receive open,
> > + * release and ioctl calls.
> >   */
> >  int
> >  rte_vhost_driver_session_start(void)
> > diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
> > index 84ec0e8..ccfd82f 100644
> > --- a/lib/librte_vhost/vhost_rxtx.c
> > +++ b/lib/librte_vhost/vhost_rxtx.c
> > @@ -45,7 +45,7 @@
> >  /**
> >   * This function adds buffers to the virtio devices RX virtqueue. Buffers can
> >   * be received from the physical port or from another virtio device. A packet
> > - * count is returned to indicate the number of packets that were succesfully
> > + * count is returned to indicate the number of packets that are succesfully
> >   * added to the RX queue. This function works when mergeable is disabled.
> >   */
> >  static inline uint32_t __attribute__((always_inline))
> > @@ -76,7 +76,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
> >  	count = (count > MAX_PKT_BURST) ? MAX_PKT_BURST : count;
> >
> >  	/*
> > -	 * As many data cores may want access to available buffers,
> > +	 * As many data cores may want access to available buffers,
> >  	 * they need to be reserved.
> >  	 */
> >  	do {
> > @@ -143,7 +143,8 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
> >  		}
> >
> >  		/* Update used ring with desc information */
> > -		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
> head[packet_success];
> > +		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
> > +							head[packet_success];
> >  		vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
> >
> >  		/* Copy mbuf data to buffer */
> > @@ -389,10 +390,7 @@ copy_from_mbuf_to_vring(struct virtio_net *dev,
> uint16_t res_base_idx,
> >  }
> >
> >  /*
> > - * This function adds buffers to the virtio devices RX virtqueue. Buffers can
> > - * be received from the physical port or from another virtio device. A packet
> > - * count is returned to indicate the number of packets that were succesfully
> > - * added to the RX queue. This function works for mergeable RX.
> > + * This function works for mergeable RX.
> >   */
> >  static inline uint32_t __attribute__((always_inline))
> >  virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
> > @@ -729,5 +727,4 @@ rte_vhost_dequeue_burst(struct virtio_net *dev,
> uint16_t queue_id,
> >  	if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT))
> >  		eventfd_write((int)vq->kickfd, 1);
> >  	return entry_success;
> > -
> >  }
> > diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
> > index 8015dd8..c07a11e 100644
> > --- a/lib/librte_vhost/virtio-net.c
> > +++ b/lib/librte_vhost/virtio-net.c
> > @@ -52,27 +52,27 @@
> >  #include "vhost-net-cdev.h"
> >  #include "eventfd_link/eventfd_link.h"
> >
> > -/**
> > +/*
> >   * Device linked list structure for configuration.
> >   */
> >  struct virtio_net_config_ll {
> > -	struct virtio_net		dev;	/* Virtio device.*/
> > -	struct virtio_net_config_ll	*next;	/* Next entry on linked list.*/
> > +	struct virtio_net dev;			/* Virtio device.*/
> > +	struct virtio_net_config_ll *next;	/* Next dev on linked list.*/
> >  };
> >
> >  const char eventfd_cdev[] = "/dev/eventfd-link";
> >
> > -/* device ops to add/remove device to data core. */
> > +/* device ops to add/remove device to/from data core. */
> >  static struct virtio_net_device_ops const *notify_ops;
> > -/* Root address of the linked list in the configuration core. */
> > -static struct virtio_net_config_ll	*ll_root;
> > +/* root address of the linked list of managed virtio devices */
> > +static struct virtio_net_config_ll *ll_root;
> >
> > -/* Features supported by this application. RX merge buffers are enabled by
> default. */
> > +/* Features supported by this lib. */
> >  #define VHOST_SUPPORTED_FEATURES (1ULL <<
> VIRTIO_NET_F_MRG_RXBUF)
> >  static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;
> >
> >  /* Line size for reading maps file. */
> > -const uint32_t BUFSIZE = PATH_MAX;
> > +static const uint32_t BUFSIZE = PATH_MAX;
> >
> >  /* Size of prot char array in procmap. */
> >  #define PROT_SZ 5
> > @@ -82,19 +82,19 @@ const uint32_t BUFSIZE = PATH_MAX;
> >
> >  /* Structure containing information gathered from maps file. */
> >  struct procmap {
> > -	uint64_t	va_start;	/* Start virtual address in file. */
> > -	uint64_t	len;		/* Size of file. */
> > -	uint64_t	pgoff;		/* Not used. */
> > -	uint32_t	maj;		/* Not used. */
> > -	uint32_t	min;		/* Not used. */
> > -	uint32_t	ino;		/* Not used. */
> > -	char		prot[PROT_SZ];	/* Not used. */
> > -	char		fname[PATH_MAX];/* File name. */
> > +	uint64_t va_start;	/* Start virtual address in file. */
> > +	uint64_t len;		/* Size of file. */
> > +	uint64_t pgoff;		/* Not used. */
> > +	uint32_t maj;		/* Not used. */
> > +	uint32_t min;		/* Not used. */
> > +	uint32_t ino;		/* Not used. */
> > +	char prot[PROT_SZ];	/* Not used. */
> > +	char fname[PATH_MAX];	/* File name. */
> >  };
> >
> >  /*
> > - * Converts QEMU virtual address to Vhost virtual address. This function is
> used
> > - * to convert the ring addresses to our address space.
> > + * Converts QEMU virtual address to Vhost virtual address. This function is
> > + * used to convert the ring addresses to our address space.
> >   */
> >  static uint64_t
> >  qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
> > @@ -107,8 +107,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
> >  	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
> >  		region = &dev->mem->regions[regionidx];
> >  		if ((qemu_va >= region->userspace_address) &&
> > -				(qemu_va <= region->userspace_address +
> > -				region->memory_size)) {
> > +			(qemu_va <= region->userspace_address +
> > +			region->memory_size)) {
> >  			vhost_va = dev->mem->mapped_address + qemu_va -
> >  					dev->mem->base_address;
> >  			break;
> > @@ -118,7 +118,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
> >  }
> >
> >  /*
> > - * Locate the file containing QEMU's memory space and map it to our address
> space.
> > + * Locate the file containing QEMU's memory space and
> > + * map it to our address space.
> >   */
> >  static int
> >  host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
> > @@ -134,10 +135,10 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >  	char procdir[PATH_MAX];
> >  	char resolved_path[PATH_MAX];
> >  	char *path = NULL;
> > -	FILE		*fmap;
> > -	void		*map;
> > -	uint8_t		found = 0;
> > -	char		line[BUFSIZE];
> > +	FILE *fmap;
> > +	void *map;
> > +	uint8_t found = 0;
> > +	char line[BUFSIZE];
> >  	char dlm[] = "-   :   ";
> >  	char *str, *sp, *in[PROCMAP_SZ];
> >  	char *end = NULL;
> > @@ -159,7 +160,7 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >  	while (fgets(line, BUFSIZE, fmap) != 0) {
> >  		str = line;
> >  		errno = 0;
> > -		/* Split line in to fields. */
> > +		/* Split line into fields. */
> >  		for (i = 0; i < PROCMAP_SZ; i++) {
> >  			in[i] = strtok_r(str, &dlm[i], &sp);
> >  			if ((in[i] == NULL) || (errno != 0)) {
> > @@ -171,37 +172,43 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >
> >  		/* Convert/Copy each field as needed. */
> >  		procmap.va_start = strtoull(in[0], &end, 16);
> > -		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> >
> >  		procmap.len = strtoull(in[1], &end, 16);
> > -		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> >
> >  		procmap.pgoff = strtoull(in[3], &end, 16);
> > -		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> >
> >  		procmap.maj = strtoul(in[4], &end, 16);
> > -		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> >
> >  		procmap.min = strtoul(in[5], &end, 16);
> > -		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> >
> >  		procmap.ino = strtoul(in[6], &end, 16);
> > -		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0))
> {
> > +		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') ||
> > +			(errno != 0)) {
> >  			fclose(fmap);
> >  			return -1;
> >  		}
> > @@ -218,16 +225,19 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >  	fclose(fmap);
> >
> >  	if (!found) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find
> memory file in pid %d maps file\n", dev->device_fh, pid);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to find memory file in pid %d maps
> file\n",
> > +			dev->device_fh, pid);
> >  		return -1;
> >  	}
> >
> >  	/* Find the guest memory file among the process fds. */
> >  	dp = opendir(procdir);
> >  	if (dp == NULL) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Cannot open
> pid %d process directory\n", dev->device_fh, pid);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Cannot open pid %d process directory\n",
> > +			dev->device_fh, pid);
> >  		return -1;
> > -
> >  	}
> >
> >  	found = 0;
> > @@ -254,23 +264,29 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >  	closedir(dp);
> >
> >  	if (found == 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find
> memory file for pid %d\n", dev->device_fh, pid);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to find memory file for pid %d\n",
> > +			dev->device_fh, pid);
> >  		return -1;
> >  	}
> >  	/* Open the shared memory file and map the memory into this process.
> */
> >  	fd = open(memfile, O_RDWR);
> >
> >  	if (fd == -1) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to open %s
> for pid %d\n", dev->device_fh, memfile, pid);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to open %s for pid %d\n",
> > +			dev->device_fh, memfile, pid);
> >  		return -1;
> >  	}
> >
> > -	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE ,
> > -			MAP_POPULATE|MAP_SHARED, fd, 0);
> > +	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE,
> > +		MAP_POPULATE|MAP_SHARED, fd, 0);
> >  	close(fd);
> >
> >  	if (map == MAP_FAILED) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Error mapping the
> file %s for pid %d\n",  dev->device_fh, memfile, pid);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Error mapping the file %s for pid %d\n",
> > +			dev->device_fh, memfile, pid);
> >  		return -1;
> >  	}
> >
> > @@ -278,8 +294,11 @@ host_memory_map(struct virtio_net *dev, struct
> virtio_memory *mem,
> >  	mem->mapped_address = (uint64_t)(uintptr_t)map;
> >  	mem->mapped_size = procmap.len;
> >
> > -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mem File: %s->%s -
> Size: %llu - VA: %p\n", dev->device_fh,
> > -		memfile, resolved_path, (long long unsigned)mem-
> >mapped_size, map);
> > +	LOG_DEBUG(VHOST_CONFIG,
> > +		"(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n",
> > +		dev->device_fh,
> > +		memfile, resolved_path,
> > +		(long long unsigned)mem->mapped_size, map);
> >
> >  	return 0;
> >  }
> > @@ -303,7 +322,8 @@ get_config_ll_entry(struct vhost_device_ctx ctx)
> >  }
> >
> >  /*
> > - * Searches the configuration core linked list and retrieves the device if it
> exists.
> > + * Searches the configuration core linked list and
> > + * retrieves the device if it exists.
> >   */
> >  static struct virtio_net *
> >  get_device(struct vhost_device_ctx ctx)
> > @@ -312,11 +332,11 @@ get_device(struct vhost_device_ctx ctx)
> >
> >  	ll_dev = get_config_ll_entry(ctx);
> >
> > -	/* If a matching entry is found in the linked list, return the device in that
> entry. */
> >  	if (ll_dev)
> >  		return &ll_dev->dev;
> >
> > -	RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Device not found in linked
> list.\n", ctx.fh);
> > +	RTE_LOG(ERR, VHOST_CONFIG,
> > +		"(%"PRIu64") Device not found in linked list.\n", ctx.fh);
> >  	return NULL;
> >  }
> >
> > @@ -331,13 +351,18 @@ add_config_ll_entry(struct virtio_net_config_ll
> *new_ll_dev)
> >  	/* If ll_dev == NULL then this is the first device so go to else */
> >  	if (ll_dev) {
> >  		/* If the 1st device_fh != 0 then we insert our device here. */
> > -		if (ll_dev->dev.device_fh != 0)	{
> > +		if (ll_dev->dev.device_fh != 0) {
> >  			new_ll_dev->dev.device_fh = 0;
> >  			new_ll_dev->next = ll_dev;
> >  			ll_root = new_ll_dev;
> >  		} else {
> > -			/* Increment through the ll until we find un unused
> device_fh. Insert the device at that entry*/
> > -			while ((ll_dev->next != NULL) && (ll_dev->dev.device_fh
> == (ll_dev->next->dev.device_fh - 1)))
> > +			/*
> > +			 * Increment through the ll until we find un unused
> > +			 * device_fh. Insert the device at that entry.
> > +			 */
> > +			while ((ll_dev->next != NULL) &&
> > +				(ll_dev->dev.device_fh ==
> > +					(ll_dev->next->dev.device_fh - 1)))
> >  				ll_dev = ll_dev->next;
> >
> >  			new_ll_dev->dev.device_fh = ll_dev->dev.device_fh + 1;
> > @@ -352,7 +377,8 @@ add_config_ll_entry(struct virtio_net_config_ll
> *new_ll_dev)
> >  }
> >
> >  /*
> > - * Unmap any memory, close any file descriptors and free any memory owned
> by a device.
> > + * Unmap any memory, close any file descriptors and
> > + * free any memory owned by a device.
> >   */
> >  static void
> >  cleanup_device(struct virtio_net *dev)
> > @@ -386,6 +412,7 @@ free_device(struct virtio_net_config_ll *ll_dev)
> >  	free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
> >  	free(ll_dev);
> >  }
> > +
> >  /*
> >   * Remove an entry from the device configuration linked list.
> >   */
> > @@ -423,7 +450,10 @@ init_device(struct virtio_net *dev)
> >  {
> >  	uint64_t vq_offset;
> >
> > -	/* Virtqueues have already been malloced so we don't want to set them
> to NULL. */
> > +	/*
> > +	 * Virtqueues have already been malloced so
> > +	 * we don't want to set them to NULL.
> > +	 */
> >  	vq_offset = offsetof(struct virtio_net, mem);
> >
> >  	/* Set everything to 0. */
> > @@ -491,8 +521,8 @@ new_device(struct vhost_device_ctx ctx)
> >  }
> >
> >  /*
> > - * Function is called from the CUSE release function. This function will cleanup
> > - * the device and remove it from device configuration linked list.
> > + * Function is called from the CUSE release function. This function will
> > + * cleanup the device and remove it from device configuration linked list.
> >   */
> >  static void
> >  destroy_device(struct vhost_device_ctx ctx)
> > @@ -503,15 +533,19 @@ destroy_device(struct vhost_device_ctx ctx)
> >  	/* Find the linked list entry for the device to be removed. */
> >  	ll_dev_cur_ctx = get_config_ll_entry(ctx);
> >  	while (ll_dev_cur != NULL) {
> > -		/* If the device is found or a device that doesn't exist is found
> then it is removed. */
> > +		/*
> > +		 * If the device is found or
> > +		 * a device that doesn't exist is found then it is removed.
> > +		 */
> >  		if (ll_dev_cur == ll_dev_cur_ctx) {
> >  			/*
> > -			 * If the device is running on a data core then call the
> function to remove it from
> > -			 * the data core.
> > +			 * If the device is running on a data core then call
> > +			 * the function to remove it from the data core.
> >  			 */
> >  			if ((ll_dev_cur->dev.flags & VIRTIO_DEV_RUNNING))
> >  				notify_ops->destroy_device(&(ll_dev_cur-
> >dev));
> > -			ll_dev_cur = rm_config_ll_entry(ll_dev_cur, ll_dev_last);
> > +			ll_dev_cur = rm_config_ll_entry(ll_dev_cur,
> > +					ll_dev_last);
> >  		} else {
> >  			ll_dev_last = ll_dev_cur;
> >  			ll_dev_cur = ll_dev_cur->next;
> > @@ -521,7 +555,8 @@ destroy_device(struct vhost_device_ctx ctx)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_OWNER
> > - * This function just returns success at the moment unless the device hasn't
> been initialised.
> > + * This function just returns success at the moment unless
> > + * the device hasn't been initialised.
> >   */
> >  static int
> >  set_owner(struct vhost_device_ctx ctx)
> > @@ -571,7 +606,7 @@ get_features(struct vhost_device_ctx ctx, uint64_t *pu)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_FEATURES
> > - * We receive the negotiated set of features supported by us and the virtio
> device.
> > + * We receive the negotiated features supported by us and the virtio device.
> >   */
> >  static int
> >  set_features(struct vhost_device_ctx ctx, uint64_t *pu)
> > @@ -589,13 +624,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t
> *pu)
> >
> >  	/* Set the vhost_hlen depending on if VIRTIO_NET_F_MRG_RXBUF is set.
> */
> >  	if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX
> buffers enabled\n", dev->device_fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") Mergeable RX buffers enabled\n",
> > +			dev->device_fh);
> >  		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
> >  			sizeof(struct virtio_net_hdr_mrg_rxbuf);
> >  		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
> >  			sizeof(struct virtio_net_hdr_mrg_rxbuf);
> >  	} else {
> > -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX
> buffers disabled\n", dev->device_fh);
> > +		LOG_DEBUG(VHOST_CONFIG,
> > +			"(%"PRIu64") Mergeable RX buffers disabled\n",
> > +			dev->device_fh);
> >  		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
> >  			sizeof(struct virtio_net_hdr);
> >  		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
> > @@ -607,8 +646,8 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_MEM_TABLE
> > - * This function creates and populates the memory structure for the device.
> This includes
> > - * storing offsets used to translate buffer addresses.
> > + * This function creates and populates the memory structure for the device.
> > + * This includes storing offsets used to translate buffer addresses.
> >   */
> >  static int
> >  set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
> > @@ -634,7 +673,9 @@ set_mem_table(struct vhost_device_ctx ctx, const
> void *mem_regions_addr,
> >  	mem = calloc(1, sizeof(struct virtio_memory) +
> >  		(sizeof(struct virtio_memory_regions) * nregions));
> >  	if (mem == NULL) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to allocate
> memory for dev->mem.\n", dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to allocate memory for dev-
> >mem.\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > @@ -656,15 +697,18 @@ set_mem_table(struct vhost_device_ctx ctx, const
> void *mem_regions_addr,
> >  			mem_regions[regionidx].userspace_addr;
> >
> >  		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") REGION: %u -
> GPA: %p - QEMU VA: %p - SIZE (%"PRIu64")\n", dev->device_fh,
> > -				regionidx, (void *)(uintptr_t)mem-
> >regions[regionidx].guest_phys_address,
> > -				(void *)(uintptr_t)mem-
> >regions[regionidx].userspace_address,
> > -				mem->regions[regionidx].memory_size);
> > +			regionidx,
> > +			(void *)(uintptr_t)mem-
> >regions[regionidx].guest_phys_address,
> > +			(void *)(uintptr_t)mem-
> >regions[regionidx].userspace_address,
> > +			mem->regions[regionidx].memory_size);
> >
> >  		/*set the base address mapping*/
> >  		if (mem->regions[regionidx].guest_phys_address == 0x0) {
> > -			mem->base_address = mem-
> >regions[regionidx].userspace_address;
> > +			mem->base_address =
> > +				mem->regions[regionidx].userspace_address;
> >  			/* Map VM memory file */
> > -			if (host_memory_map(dev, mem, ctx.pid, mem-
> >base_address) != 0) {
> > +			if (host_memory_map(dev, mem, ctx.pid,
> > +				mem->base_address) != 0) {
> >  				free(mem);
> >  				return -1;
> >  			}
> > @@ -678,27 +722,42 @@ set_mem_table(struct vhost_device_ctx ctx, const
> void *mem_regions_addr,
> >  		return -1;
> >  	}
> >
> > -	/* Check if all of our regions have valid mappings. Usually one does not
> exist in the QEMU memory file. */
> > +	/*
> > +	 * Check if all of our regions have valid mappings.
> > +	 * Usually one does not exist in the QEMU memory file.
> > +	 */
> >  	valid_regions = mem->nregions;
> >  	for (regionidx = 0; regionidx < mem->nregions; regionidx++) {
> > -		if ((mem->regions[regionidx].userspace_address < mem-
> >base_address) ||
> > -			(mem->regions[regionidx].userspace_address > (mem-
> >base_address + mem->mapped_size)))
> > +		if ((mem->regions[regionidx].userspace_address <
> > +			mem->base_address) ||
> > +			(mem->regions[regionidx].userspace_address >
> > +			(mem->base_address + mem->mapped_size)))
> >  				valid_regions--;
> >  	}
> >
> > -	/* If a region does not have a valid mapping we rebuild our memory
> struct to contain only valid entries. */
> > +	/*
> > +	 * If a region does not have a valid mapping,
> > +	 * we rebuild our memory struct to contain only valid entries.
> > +	 */
> >  	if (valid_regions != mem->nregions) {
> >  		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Not all memory
> regions exist in the QEMU mem file. Re-populating mem structure\n",
> >  			dev->device_fh);
> >
> > -		/* Re-populate the memory structure with only valid regions.
> Invalid regions are over-written with memmove. */
> > +		/*
> > +		 * Re-populate the memory structure with only valid regions.
> > +		 * Invalid regions are over-written with memmove.
> > +		 */
> >  		valid_regions = 0;
> >
> >  		for (regionidx = mem->nregions; 0 != regionidx--;) {
> > -			if ((mem->regions[regionidx].userspace_address <
> mem->base_address) ||
> > -					(mem-
> >regions[regionidx].userspace_address > (mem->base_address + mem-
> >mapped_size))) {
> > -				memmove(&mem->regions[regionidx], &mem-
> >regions[regionidx + 1],
> > -					sizeof(struct virtio_memory_regions) *
> valid_regions);
> > +			if ((mem->regions[regionidx].userspace_address <
> > +				mem->base_address) ||
> > +				(mem->regions[regionidx].userspace_address >
> > +				(mem->base_address + mem->mapped_size))) {
> > +				memmove(&mem->regions[regionidx],
> > +					&mem->regions[regionidx + 1],
> > +					sizeof(struct virtio_memory_regions) *
> > +						valid_regions);
> >  			} else {
> >  				valid_regions++;
> >  			}
> > @@ -708,12 +767,16 @@ set_mem_table(struct vhost_device_ctx ctx, const
> void *mem_regions_addr,
> >  	dev->mem = mem;
> >
> >  	/*
> > -	 * Calculate the address offset for each region. This offset is used to
> identify the vhost virtual address
> > +	 * Calculate the address offset for each region.
> > +	 * This offset is used to identify the vhost virtual address
> >  	 * corresponding to a QEMU guest physical address.
> >  	 */
> >  	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
> > -		dev->mem->regions[regionidx].address_offset = dev->mem-
> >regions[regionidx].userspace_address - dev->mem->base_address
> > -			+ dev->mem->mapped_address - dev->mem-
> >regions[regionidx].guest_phys_address;
> > +		dev->mem->regions[regionidx].address_offset =
> > +			dev->mem->regions[regionidx].userspace_address -
> > +				dev->mem->base_address +
> > +				dev->mem->mapped_address -
> > +				dev->mem-
> >regions[regionidx].guest_phys_address;
> >
> >  	}
> >  	return 0;
> > @@ -732,7 +795,7 @@ set_vring_num(struct vhost_device_ctx ctx, struct
> vhost_vring_state *state)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* State->index refers to the queue index. The TX queue is 1, RX queue is
> 0. */
> > +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	dev->virtqueue[state->index]->size = state->num;
> >
> >  	return 0;
> > @@ -740,8 +803,8 @@ set_vring_num(struct vhost_device_ctx ctx, struct
> vhost_vring_state *state)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_VRING_ADDR
> > - * The virtio device sends us the desc, used and avail ring addresses. This
> function
> > - * then converts these to our address space.
> > + * The virtio device sends us the desc, used and avail ring addresses.
> > + * This function then converts these to our address space.
> >   */
> >  static int
> >  set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
> > @@ -753,31 +816,43 @@ set_vring_addr(struct vhost_device_ctx ctx, struct
> vhost_vring_addr *addr)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* addr->index refers to the queue index. The TX queue is 1, RX queue is
> 0. */
> > +	/* addr->index refers to the queue index. The txq 1, rxq is 0. */
> >  	vq = dev->virtqueue[addr->index];
> >
> >  	/* The addresses are converted from QEMU virtual to Vhost virtual. */
> > -	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev, addr-
> >desc_user_addr);
> > +	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev,
> > +			addr->desc_user_addr);
> >  	if (vq->desc == 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find
> descriptor ring address.\n", dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to find desc ring address.\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > -	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev, addr-
> >avail_user_addr);
> > +	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev,
> > +			addr->avail_user_addr);
> >  	if (vq->avail == 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find
> available ring address.\n", dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to find avail ring address.\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > -	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev, addr-
> >used_user_addr);
> > +	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev,
> > +			addr->used_user_addr);
> >  	if (vq->used == 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find used
> ring address.\n", dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") Failed to find used ring address.\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> desc: %p\n", dev->device_fh, vq->desc);
> > -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> avail: %p\n", dev->device_fh, vq->avail);
> > -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> used: %p\n", dev->device_fh, vq->used);
> > +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> desc: %p\n",
> > +			dev->device_fh, vq->desc);
> > +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> avail: %p\n",
> > +			dev->device_fh, vq->avail);
> > +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address
> used: %p\n",
> > +			dev->device_fh, vq->used);
> >
> >  	return 0;
> >  }
> > @@ -795,7 +870,7 @@ set_vring_base(struct vhost_device_ctx ctx, struct
> vhost_vring_state *state)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* State->index refers to the queue index. The TX queue is 1, RX queue is
> 0. */
> > +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	dev->virtqueue[state->index]->last_used_idx = state->num;
> >  	dev->virtqueue[state->index]->last_used_idx_res = state->num;
> >
> > @@ -817,15 +892,15 @@ get_vring_base(struct vhost_device_ctx ctx,
> uint32_t index,
> >  		return -1;
> >
> >  	state->index = index;
> > -	/* State->index refers to the queue index. The TX queue is 1, RX queue is
> 0. */
> > +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	state->num = dev->virtqueue[state->index]->last_used_idx;
> >
> >  	return 0;
> >  }
> >
> >  /*
> > - * This function uses the eventfd_link kernel module to copy an eventfd file
> descriptor
> > - * provided by QEMU in to our process space.
> > + * This function uses the eventfd_link kernel module to copy an eventfd file
> > + * descriptor provided by QEMU in to our process space.
> >   */
> >  static int
> >  eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
> > @@ -835,7 +910,9 @@ eventfd_copy(struct virtio_net *dev, struct
> eventfd_copy *eventfd_copy)
> >  	/* Open the character device to the kernel module. */
> >  	eventfd_link = open(eventfd_cdev, O_RDWR);
> >  	if (eventfd_link < 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") eventfd_link
> module is not loaded\n",  dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") eventfd_link module is not loaded\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > @@ -844,18 +921,19 @@ eventfd_copy(struct virtio_net *dev, struct
> eventfd_copy *eventfd_copy)
> >  	close(eventfd_link);
> >
> >  	if (ret < 0) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") EVENTFD_COPY
> ioctl failed\n",  dev->device_fh);
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"(%"PRIu64") EVENTFD_COPY ioctl failed\n",
> > +			dev->device_fh);
> >  		return -1;
> >  	}
> >
> > -
> >  	return 0;
> >  }
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_VRING_CALL
> > - * The virtio device sends an eventfd to interrupt the guest. This fd gets copied
> in
> > - * to our process space.
> > + * The virtio device sends an eventfd to interrupt the guest. This fd gets
> > + * copied into our process space.
> >   */
> >  static int
> >  set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> > @@ -868,7 +946,7 @@ set_vring_call(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0.
> */
> > +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	vq = dev->virtqueue[file->index];
> >
> >  	if (vq->kickfd)
> > @@ -888,8 +966,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_SET_VRING_KICK
> > - * The virtio device sends an eventfd that it can use to notify us. This fd gets
> copied in
> > - * to our process space.
> > + * The virtio device sends an eventfd that it can use to notify us.
> > + * This fd gets copied into our process space.
> >   */
> >  static int
> >  set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> > @@ -902,7 +980,7 @@ set_vring_kick(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0.
> */
> > +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	vq = dev->virtqueue[file->index];
> >
> >  	if (vq->callfd)
> > @@ -922,10 +1000,12 @@ set_vring_kick(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >
> >  /*
> >   * Called from CUSE IOCTL: VHOST_NET_SET_BACKEND
> > - * To complete device initialisation when the virtio driver is loaded we are
> provided with a
> > - * valid fd for a tap device (not used by us). If this happens then we can add
> the device to a
> > - * data core. When the virtio driver is removed we get fd=-1. At that point we
> remove the device
> > - * from the data core. The device will still exist in the device configuration
> linked list.
> > + * To complete device initialisation when the virtio driver is loaded,
> > + * we are provided with a valid fd for a tap device (not used by us).
> > + * If this happens then we can add the device to a data core.
> > + * When the virtio driver is removed we get fd=-1.
> > + * At that point we remove the device from the data core.
> > + * The device will still exist in the device configuration linked list.
> >   */
> >  static int
> >  set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> > @@ -936,10 +1016,13 @@ set_backend(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >  	if (dev == NULL)
> >  		return -1;
> >
> > -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0.
> */
> > +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
> >  	dev->virtqueue[file->index]->backend = file->fd;
> >
> > -	/* If the device isn't already running and both backend fds are set we
> add the device. */
> > +	/*
> > +	 * If the device isn't already running and both backend fds are set,
> > +	 * we add the device.
> > +	 */
> >  	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
> >  		if (((int)dev->virtqueue[VIRTIO_TXQ]->backend !=
> VIRTIO_DEV_STOPPED) &&
> >  			((int)dev->virtqueue[VIRTIO_RXQ]->backend !=
> VIRTIO_DEV_STOPPED))
> > @@ -952,8 +1035,8 @@ set_backend(struct vhost_device_ctx ctx, struct
> vhost_vring_file *file)
> >  }
> >
> >  /*
> > - * Function pointers are set for the device operations to allow CUSE to call
> functions
> > - * when an IOCTL, device_add or device_release is received.
> > + * Function pointers are set for the device operations to allow CUSE to call
> > + * functions when an IOCTL, device_add or device_release is received.
> >   */
> >  static const struct vhost_net_device_ops vhost_device_ops = {
> >  	.new_device = new_device,
> > @@ -991,11 +1074,13 @@ int rte_vhost_enable_guest_notification(struct
> virtio_net *dev,
> >  	uint16_t queue_id, int enable)
> >  {
> >  	if (enable) {
> > -		RTE_LOG(ERR, VHOST_CONFIG, "guest notification isn't
> supported.\n");
> > +		RTE_LOG(ERR, VHOST_CONFIG,
> > +			"guest notification isn't supported.\n");
> >  		return -1;
> >  	}
> >
> > -	dev->virtqueue[queue_id]->used->flags = enable ? 0 :
> VRING_USED_F_NO_NOTIFY;
> > +	dev->virtqueue[queue_id]->used->flags =
> > +		enable ? 0 : VRING_USED_F_NO_NOTIFY;
> >  	return 0;
> >  }
> >
> >
> 
> 
> --
> Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
@ 2014-11-05 17:03 Huawei Xie
  2014-11-05 20:41 ` Thomas Monjalon
  0 siblings, 1 reply; 10+ messages in thread
From: Huawei Xie @ 2014-11-05 17:03 UTC (permalink / raw)
  To: dev

This patch fixes code style issues and refines some comments in vhost library.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
---
 lib/librte_vhost/eventfd_link/eventfd_link.c | 244 ++++++++++-----------
 lib/librte_vhost/eventfd_link/eventfd_link.h | 127 ++++++-----
 lib/librte_vhost/rte_virtio_net.h            |   3 +-
 lib/librte_vhost/vhost-net-cdev.c            | 187 +++++++++-------
 lib/librte_vhost/vhost_rxtx.c                |  13 +-
 lib/librte_vhost/virtio-net.c                | 317 +++++++++++++++++----------
 6 files changed, 494 insertions(+), 397 deletions(-)

diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.c b/lib/librte_vhost/eventfd_link/eventfd_link.c
index fc0653a..542ec2c 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.c
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.c
@@ -1,26 +1,26 @@
 /*-
- *  * GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *   */
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ */
 
 #include <linux/eventfd.h>
 #include <linux/miscdevice.h>
@@ -42,15 +42,15 @@
  * get_files_struct is copied from fs/file.c
  */
 struct files_struct *
-get_files_struct (struct task_struct *task)
+get_files_struct(struct task_struct *task)
 {
 	struct files_struct *files;
 
-	task_lock (task);
+	task_lock(task);
 	files = task->files;
 	if (files)
-		atomic_inc (&files->count);
-	task_unlock (task);
+		atomic_inc(&files->count);
+	task_unlock(task);
 
 	return files;
 }
@@ -59,17 +59,15 @@ get_files_struct (struct task_struct *task)
  * put_files_struct is extracted from fs/file.c
  */
 void
-put_files_struct (struct files_struct *files)
+put_files_struct(struct files_struct *files)
 {
-	if (atomic_dec_and_test (&files->count))
-	{
-		BUG ();
-	}
+	if (atomic_dec_and_test(&files->count))
+		BUG();
 }
 
 
 static long
-eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
+eventfd_link_ioctl(struct file *f, unsigned int ioctl, unsigned long arg)
 {
 	void __user *argp = (void __user *) arg;
 	struct task_struct *task_target = NULL;
@@ -78,96 +76,88 @@ eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
 	struct fdtable *fdt;
 	struct eventfd_copy eventfd_copy;
 
-	switch (ioctl)
-	{
-		case EVENTFD_COPY:
-			if (copy_from_user (&eventfd_copy, argp, sizeof (struct eventfd_copy)))
-				return -EFAULT;
-
-			/*
-			 * Find the task struct for the target pid
-			 */
-			task_target =
-				pid_task (find_vpid (eventfd_copy.target_pid), PIDTYPE_PID);
-			if (task_target == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get mem ctx for target pid\n");
-				return -EFAULT;
-			}
-
-			files = get_files_struct (current);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.source_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
-					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from source pid\n");
-				return 0;
-			}
-
-			/*
-			 * Release the existing eventfd in the source process
-			 */
-			spin_lock (&files->file_lock);
-			filp_close (file, files);
-			fdt = files_fdtable (files);
-			fdt->fd[eventfd_copy.source_fd] = NULL;
-			spin_unlock (&files->file_lock);
-
-			/*
-			 * Find the file struct associated with the target fd.
-			 */
-
-			files = get_files_struct (task_target);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.target_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
+	switch (ioctl) {
+	case EVENTFD_COPY:
+		if (copy_from_user(&eventfd_copy, argp,
+			sizeof(struct eventfd_copy)))
+			return -EFAULT;
+
+		/*
+		 * Find the task struct for the target pid
+		 */
+		task_target =
+			pid_task(find_vpid(eventfd_copy.target_pid), PIDTYPE_PID);
+		if (task_target == NULL) {
+			printk(KERN_DEBUG "Failed to get mem ctx for target pid\n");
+			return -EFAULT;
+		}
+
+		files = get_files_struct(current);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.source_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
+				file = NULL;
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
+
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from source pid\n");
+			return 0;
+		}
+
+		/*
+		 * Release the existing eventfd in the source process
+		 */
+		spin_lock(&files->file_lock);
+		filp_close(file, files);
+		fdt = files_fdtable(files);
+		fdt->fd[eventfd_copy.source_fd] = NULL;
+		spin_unlock(&files->file_lock);
+
+		/*
+		 * Find the file struct associated with the target fd.
+		 */
+
+		files = get_files_struct(task_target);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.target_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
 					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from target pid\n");
-				return 0;
-			}
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
 
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from target pid\n");
+			return 0;
+		}
 
-			/*
-			 * Install the file struct from the target process into the
-			 * file desciptor of the source process,
-			 */
+		/*
+		 * Install the file struct from the target process into the
+		 * file desciptor of the source process,
+		 */
 
-			fd_install (eventfd_copy.source_fd, file);
+		fd_install(eventfd_copy.source_fd, file);
 
-			return 0;
+		return 0;
 
-		default:
-			return -ENOIOCTLCMD;
+	default:
+		return -ENOIOCTLCMD;
 	}
 }
 
@@ -183,23 +173,23 @@ static struct miscdevice eventfd_link_misc = {
 };
 
 static int __init
-eventfd_link_init (void)
+eventfd_link_init(void)
 {
-	return misc_register (&eventfd_link_misc);
+	return misc_register(&eventfd_link_misc);
 }
 
-module_init (eventfd_link_init);
+module_init(eventfd_link_init);
 
 static void __exit
-eventfd_link_exit (void)
+eventfd_link_exit(void)
 {
-	misc_deregister (&eventfd_link_misc);
+	misc_deregister(&eventfd_link_misc);
 }
 
-module_exit (eventfd_link_exit);
+module_exit(eventfd_link_exit);
 
-MODULE_VERSION ("0.0.1");
-MODULE_LICENSE ("GPL v2");
-MODULE_AUTHOR ("Anthony Fee");
-MODULE_DESCRIPTION ("Link eventfd");
-MODULE_ALIAS ("devname:eventfd-link");
+MODULE_VERSION("0.0.1");
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Anthony Fee");
+MODULE_DESCRIPTION("Link eventfd");
+MODULE_ALIAS("devname:eventfd-link");
diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.h b/lib/librte_vhost/eventfd_link/eventfd_link.h
index a32a8dd..ea619ec 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.h
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.h
@@ -1,79 +1,76 @@
 /*-
- *  * This file is provided under a dual BSD/GPLv2 license.  When using or
- *  *   redistributing this file, you may do so under either license.
- *  *
- *  *   GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *  *
- *  *   BSD LICENSE
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *   All rights reserved.
- *  *
- *  *   Redistribution and use in source and binary forms, with or without
- *  *   modification, are permitted provided that the following conditions
- *  *   are met:
- *  *
- *  *     * Redistributions of source code must retain the above copyright
- *  *       notice, this list of conditions and the following disclaimer.
- *  *     * Redistributions in binary form must reproduce the above copyright
- *  *       notice, this list of conditions and the following disclaimer in
- *  *       the documentation and/or other materials provided with the
- *  *       distribution.
- *  *     * Neither the name of Intel Corporation nor the names of its
- *  *       contributors may be used to endorse or promote products derived
- *  *       from this software without specific prior written permission.
- *  *
- *  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *  *
- *   */
+ *  This file is provided under a dual BSD/GPLv2 license.  When using or
+ *  redistributing this file, you may do so under either license.
+ *
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ *
+ * BSD LICENSE
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *   Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *   Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ *   Neither the name of Intel Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
 
 #ifndef _EVENTFD_LINK_H_
 #define _EVENTFD_LINK_H_
 
 /*
- *	ioctl to copy an fd entry in calling process to an fd in a target process
+ * ioctl to copy an fd entry in calling process to an fd in a target process
  */
 #define EVENTFD_COPY 1
 
 /*
- *	arguements for the EVENTFD_COPY ioctl
+ * arguements for the EVENTFD_COPY ioctl
  */
 struct eventfd_copy {
-	// fd in the target pid
-    unsigned target_fd;
-	// fd in the calling pid
-    unsigned source_fd;
-	// pid of the target pid
-    pid_t target_pid;
+	unsigned target_fd; /* fd in the target pid */
+	unsigned source_fd; /* fd in the calling pid */
+	pid_t target_pid; /* pid of the target pid */
 };
 #endif /* _EVENTFD_LINK_H_ */
diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index b6548a1..00b1328 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -90,8 +90,7 @@ struct vhost_virtqueue {
 /**
  * Device structure contains all configuration information relating to the device.
  */
-struct virtio_net
-{
+struct virtio_net {
 	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/**< Contains all virtqueue information. */
 	struct virtio_memory	*mem;		/**< QEMU memory and memory region information. */
 	uint64_t		features;	/**< Negotiated feature set. */
diff --git a/lib/librte_vhost/vhost-net-cdev.c b/lib/librte_vhost/vhost-net-cdev.c
index 91ff0d8..57c76cb 100644
--- a/lib/librte_vhost/vhost-net-cdev.c
+++ b/lib/librte_vhost/vhost-net-cdev.c
@@ -46,21 +46,21 @@
 
 #include "vhost-net-cdev.h"
 
-#define FUSE_OPT_DUMMY		"\0\0"
-#define FUSE_OPT_FORE		"-f\0\0"
-#define FUSE_OPT_NOMULTI	"-s\0\0"
+#define FUSE_OPT_DUMMY "\0\0"
+#define FUSE_OPT_FORE  "-f\0\0"
+#define FUSE_OPT_NOMULTI "-s\0\0"
 
-static const uint32_t	default_major = 231;
-static const uint32_t	default_minor = 1;
-static const char	cuse_device_name[]	= "/dev/cuse";
-static const char	default_cdev[] = "vhost-net";
+static const uint32_t default_major = 231;
+static const uint32_t default_minor = 1;
+static const char cuse_device_name[] = "/dev/cuse";
+static const char default_cdev[] = "vhost-net";
 
-static struct fuse_session			*session;
-static struct vhost_net_device_ops	const *ops;
+static struct fuse_session *session;
+static struct vhost_net_device_ops const *ops;
 
 /*
- * Returns vhost_device_ctx from given fuse_req_t. The index is populated later when
- * the device is added to the device linked list.
+ * Returns vhost_device_ctx from given fuse_req_t. The index is populated later
+ * when the device is added to the device linked list.
  */
 static struct vhost_device_ctx
 fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
@@ -75,7 +75,8 @@ fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
 }
 
 /*
- * When the device is created in QEMU it gets initialised here and added to the device linked list.
+ * When the device is created in QEMU it gets initialised here and
+ * added to the device linked list.
  */
 static void
 vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
@@ -91,7 +92,8 @@ vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
 
 	fi->fh = err;
 
-	RTE_LOG(INFO, VHOST_CONFIG, "(%"PRIu64") Device configuration started\n", fi->fh);
+	RTE_LOG(INFO, VHOST_CONFIG,
+		"(%"PRIu64") Device configuration started\n", fi->fh);
 	fuse_reply_open(req, fi);
 }
 
@@ -113,8 +115,8 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate code for CUSE IOCTL
  * Implicit arguments: ctx, req, result.
  */
-#define VHOST_IOCTL(func) do {			\
-	result = (func)(ctx);			\
+#define VHOST_IOCTL(func) do {	\
+	result = (func)(ctx);	\
 	fuse_reply_ioctl(req, result, NULL, 0);	\
 } while (0)
 
@@ -122,57 +124,58 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate IOCTL RETRY
  * Implicit arguments: req.
  */
-#define VHOST_IOCTL_RETRY(size_r, size_w) do {		\
-	struct iovec iov_r = { arg, (size_r) };		\
-	struct iovec iov_w = { arg, (size_w) };		\
-	fuse_reply_ioctl_retry(req, &iov_r, (size_r)?1:0, &iov_w, (size_w)?1:0);	\
+#define VHOST_IOCTL_RETRY(size_r, size_w) do {	\
+	struct iovec iov_r = { arg, (size_r) };	\
+	struct iovec iov_w = { arg, (size_w) };	\
+	fuse_reply_ioctl_retry(req, &iov_r,	\
+		(size_r) ? 1 : 0, &iov_w, (size_w) ? 1 : 0);\
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_R(type, var, func) do {		\
-	if (!in_bufsz) {				\
-		VHOST_IOCTL_RETRY(sizeof(type), 0);	\
-	} else {					\
-		(var) = *(const type*) in_buf;		\
-		result = func(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, NULL, 0);	\
-	}						\
+#define VHOST_IOCTL_R(type, var, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type), 0);\
+	} else {	\
+		(var) = *(const type*)in_buf;	\
+		result = func(ctx, &(var));	\
+		fuse_reply_ioctl(req, result, NULL, 0);\
+	}	\
 } while (0)
 
 /*
- *	Boilerplate code for CUSE Write IOCTL
+ * Boilerplate code for CUSE Write IOCTL
  * Implicit arguments: ctx, req, result, out_bufsz.
  */
-#define	VHOST_IOCTL_W(type, var, func) do {		\
-	if (!out_bufsz) {				\
-		VHOST_IOCTL_RETRY(0, sizeof(type));	\
-	} else {					\
-		result = (func)(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, &(var), sizeof(type));	\
-	}								\
+#define VHOST_IOCTL_W(type, var, func) do {	\
+	if (!out_bufsz) {	\
+		VHOST_IOCTL_RETRY(0, sizeof(type));\
+	} else {	\
+		result = (func)(ctx, &(var));\
+		fuse_reply_ioctl(req, result, &(var), sizeof(type));\
+	} \
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read/Write IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {		\
-	if (!in_bufsz) {						\
-		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));	\
-	} else {							\
-		(var1) = *(const type1*) (in_buf);			\
-		result = (func)(ctx, (var1), &(var2));			\
-		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));	\
-	}								\
+#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));\
+	} else {	\
+		(var1) = *(const type1*) (in_buf);	\
+		result = (func)(ctx, (var1), &(var2));	\
+		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));\
+	}	\
 } while (0)
 
 /*
- * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on
- * the type of IOCTL a buffer is requested to read or to write. This
- * request is handled by FUSE and the buffer is then given to CUSE.
+ * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on the type
+ * of IOCTL a buffer is requested to read or to write. This request is handled
+ * by FUSE and the buffer is then given to CUSE.
  */
 static void
 vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
@@ -189,33 +192,39 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 
 	switch (cmd) {
 	case VHOST_NET_SET_BACKEND:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
 		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_backend);
 		break;
 
 	case VHOST_GET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_W(uint64_t, features, ops->get_features);
 		break;
 
 	case VHOST_SET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_R(uint64_t, features, ops->set_features);
 		break;
 
 	case VHOST_RESET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->reset_owner);
 		break;
 
 	case VHOST_SET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->set_owner);
 		break;
 
 	case VHOST_SET_MEM_TABLE:
 		/*TODO fix race condition.*/
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
 		static struct vhost_memory mem_temp;
 
 		switch (in_bufsz) {
@@ -227,7 +236,9 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			mem_temp = *(const struct vhost_memory *) in_buf;
 
 			if (mem_temp.nregions > 0) {
-				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) + (sizeof(struct vhost_memory_region) * mem_temp.nregions), 0);
+				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) +
+					(sizeof(struct vhost_memory_region) *
+						mem_temp.nregions), 0);
 			} else {
 				result = -1;
 				fuse_reply_ioctl(req, result, NULL, 0);
@@ -235,56 +246,70 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			break;
 
 		default:
-			result = ops->set_mem_table(ctx, in_buf, mem_temp.nregions);
+			result = ops->set_mem_table(ctx,
+					in_buf, mem_temp.nregions);
 			if (result)
 				fuse_reply_err(req, EINVAL);
 			else
 				fuse_reply_ioctl(req, result, NULL, 0);
-
 		}
-
 		break;
 
 	case VHOST_SET_VRING_NUM:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_num);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_num);
 		break;
 
 	case VHOST_SET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_base);
 		break;
 
 	case VHOST_GET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_RW(uint32_t, index, struct vhost_vring_state, state, ops->get_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_RW(uint32_t, index,
+			struct vhost_vring_state, state, ops->get_vring_base);
 		break;
 
 	case VHOST_SET_VRING_ADDR:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_addr, addr, ops->set_vring_addr);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_addr, addr,
+			ops->set_vring_addr);
 		break;
 
 	case VHOST_SET_VRING_KICK:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_kick);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_kick);
 		break;
 
 	case VHOST_SET_VRING_CALL:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_call);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_call);
 		break;
 
 	default:
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
 		result = -1;
 		fuse_reply_ioctl(req, result, NULL, 0);
 	}
 
 	if (result < 0)
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
 	else
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
 }
 
 /*
@@ -297,8 +322,8 @@ static const struct cuse_lowlevel_ops vhost_net_ops = {
 };
 
 /*
- * cuse_info is populated and used to register the cuse device. vhost_net_device_ops are
- * also passed when the device is registered in main.c.
+ * cuse_info is populated and used to register the cuse device.
+ * vhost_net_device_ops are also passed when the device is registered in app.
  */
 int
 rte_vhost_driver_register(const char *dev_name)
@@ -314,20 +339,23 @@ rte_vhost_driver_register(const char *dev_name)
 	char *fuse_argv[] = {fuse_opt_dummy, fuse_opt_fore, fuse_opt_nomulti};
 
 	if (access(cuse_device_name, R_OK | W_OK) < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s can't be accessed, maybe not exist\n", cuse_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s can't be accessed, maybe not exist\n",
+			cuse_device_name);
 		return -1;
 	}
 
 	/*
-	 * The device name is created. This is passed to QEMU so that it can register
-	 * the device with our application.
+	 * The device name is created. This is passed to QEMU so that it can
+	 * register the device with our application.
 	 */
 	snprintf(device_name, PATH_MAX, "DEVNAME=%s", dev_name);
 	snprintf(char_device_name, PATH_MAX, "/dev/%s", dev_name);
 
 	/* Check if device already exists. */
 	if (access(char_device_name, F_OK) != -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s already exists\n", char_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s already exists\n", char_device_name);
 		return -1;
 	}
 
@@ -341,7 +369,7 @@ rte_vhost_driver_register(const char *dev_name)
 	ops = get_virtio_net_callbacks();
 
 	session = cuse_lowlevel_setup(3, fuse_argv,
-				&cuse_info, &vhost_net_ops, 0, NULL);
+			&cuse_info, &vhost_net_ops, 0, NULL);
 	if (session == NULL)
 		return -1;
 
@@ -349,7 +377,8 @@ rte_vhost_driver_register(const char *dev_name)
 }
 
 /**
- * The CUSE session is launched allowing the application to receive open, release and ioctl calls.
+ * The CUSE session is launched allowing the application to receive open,
+ * release and ioctl calls.
  */
 int
 rte_vhost_driver_session_start(void)
diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 84ec0e8..ccfd82f 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -45,7 +45,7 @@
 /**
  * This function adds buffers to the virtio devices RX virtqueue. Buffers can
  * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
+ * count is returned to indicate the number of packets that are succesfully
  * added to the RX queue. This function works when mergeable is disabled.
  */
 static inline uint32_t __attribute__((always_inline))
@@ -76,7 +76,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 	count = (count > MAX_PKT_BURST) ? MAX_PKT_BURST : count;
 
 	/*
-	 * As many data cores may want access to available buffers, 
+	 * As many data cores may want access to available buffers,
 	 * they need to be reserved.
 	 */
 	do {
@@ -143,7 +143,8 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 		}
 
 		/* Update used ring with desc information */
-		vq->used->ring[res_cur_idx & (vq->size - 1)].id = head[packet_success];
+		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
+							head[packet_success];
 		vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
 
 		/* Copy mbuf data to buffer */
@@ -389,10 +390,7 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 }
 
 /*
- * This function adds buffers to the virtio devices RX virtqueue. Buffers can
- * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
- * added to the RX queue. This function works for mergeable RX.
+ * This function works for mergeable RX.
  */
 static inline uint32_t __attribute__((always_inline))
 virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
@@ -729,5 +727,4 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, uint16_t queue_id,
 	if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT))
 		eventfd_write((int)vq->kickfd, 1);
 	return entry_success;
-
 }
diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
index 8015dd8..c07a11e 100644
--- a/lib/librte_vhost/virtio-net.c
+++ b/lib/librte_vhost/virtio-net.c
@@ -52,27 +52,27 @@
 #include "vhost-net-cdev.h"
 #include "eventfd_link/eventfd_link.h"
 
-/**
+/*
  * Device linked list structure for configuration.
  */
 struct virtio_net_config_ll {
-	struct virtio_net		dev;	/* Virtio device.*/
-	struct virtio_net_config_ll	*next;	/* Next entry on linked list.*/
+	struct virtio_net dev;			/* Virtio device.*/
+	struct virtio_net_config_ll *next;	/* Next dev on linked list.*/
 };
 
 const char eventfd_cdev[] = "/dev/eventfd-link";
 
-/* device ops to add/remove device to data core. */
+/* device ops to add/remove device to/from data core. */
 static struct virtio_net_device_ops const *notify_ops;
-/* Root address of the linked list in the configuration core. */
-static struct virtio_net_config_ll	*ll_root;
+/* root address of the linked list of managed virtio devices */
+static struct virtio_net_config_ll *ll_root;
 
-/* Features supported by this application. RX merge buffers are enabled by default. */
+/* Features supported by this lib. */
 #define VHOST_SUPPORTED_FEATURES (1ULL << VIRTIO_NET_F_MRG_RXBUF)
 static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;
 
 /* Line size for reading maps file. */
-const uint32_t BUFSIZE = PATH_MAX;
+static const uint32_t BUFSIZE = PATH_MAX;
 
 /* Size of prot char array in procmap. */
 #define PROT_SZ 5
@@ -82,19 +82,19 @@ const uint32_t BUFSIZE = PATH_MAX;
 
 /* Structure containing information gathered from maps file. */
 struct procmap {
-	uint64_t	va_start;	/* Start virtual address in file. */
-	uint64_t	len;		/* Size of file. */
-	uint64_t	pgoff;		/* Not used. */
-	uint32_t	maj;		/* Not used. */
-	uint32_t	min;		/* Not used. */
-	uint32_t	ino;		/* Not used. */
-	char		prot[PROT_SZ];	/* Not used. */
-	char		fname[PATH_MAX];/* File name. */
+	uint64_t va_start;	/* Start virtual address in file. */
+	uint64_t len;		/* Size of file. */
+	uint64_t pgoff;		/* Not used. */
+	uint32_t maj;		/* Not used. */
+	uint32_t min;		/* Not used. */
+	uint32_t ino;		/* Not used. */
+	char prot[PROT_SZ];	/* Not used. */
+	char fname[PATH_MAX];	/* File name. */
 };
 
 /*
- * Converts QEMU virtual address to Vhost virtual address. This function is used
- * to convert the ring addresses to our address space.
+ * Converts QEMU virtual address to Vhost virtual address. This function is
+ * used to convert the ring addresses to our address space.
  */
 static uint64_t
 qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
@@ -107,8 +107,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
 		region = &dev->mem->regions[regionidx];
 		if ((qemu_va >= region->userspace_address) &&
-				(qemu_va <= region->userspace_address +
-				region->memory_size)) {
+			(qemu_va <= region->userspace_address +
+			region->memory_size)) {
 			vhost_va = dev->mem->mapped_address + qemu_va -
 					dev->mem->base_address;
 			break;
@@ -118,7 +118,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 }
 
 /*
- * Locate the file containing QEMU's memory space and map it to our address space.
+ * Locate the file containing QEMU's memory space and
+ * map it to our address space.
  */
 static int
 host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
@@ -134,10 +135,10 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	char procdir[PATH_MAX];
 	char resolved_path[PATH_MAX];
 	char *path = NULL;
-	FILE		*fmap;
-	void		*map;
-	uint8_t		found = 0;
-	char		line[BUFSIZE];
+	FILE *fmap;
+	void *map;
+	uint8_t found = 0;
+	char line[BUFSIZE];
 	char dlm[] = "-   :   ";
 	char *str, *sp, *in[PROCMAP_SZ];
 	char *end = NULL;
@@ -159,7 +160,7 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	while (fgets(line, BUFSIZE, fmap) != 0) {
 		str = line;
 		errno = 0;
-		/* Split line in to fields. */
+		/* Split line into fields. */
 		for (i = 0; i < PROCMAP_SZ; i++) {
 			in[i] = strtok_r(str, &dlm[i], &sp);
 			if ((in[i] == NULL) || (errno != 0)) {
@@ -171,37 +172,43 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 
 		/* Convert/Copy each field as needed. */
 		procmap.va_start = strtoull(in[0], &end, 16);
-		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.len = strtoull(in[1], &end, 16);
-		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.pgoff = strtoull(in[3], &end, 16);
-		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.maj = strtoul(in[4], &end, 16);
-		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.min = strtoul(in[5], &end, 16);
-		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.ino = strtoul(in[6], &end, 16);
-		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
@@ -218,16 +225,19 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	fclose(fmap);
 
 	if (!found) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file in pid %d maps file\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file in pid %d maps file\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 
 	/* Find the guest memory file among the process fds. */
 	dp = opendir(procdir);
 	if (dp == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Cannot open pid %d process directory\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Cannot open pid %d process directory\n",
+			dev->device_fh, pid);
 		return -1;
-
 	}
 
 	found = 0;
@@ -254,23 +264,29 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	closedir(dp);
 
 	if (found == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file for pid %d\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file for pid %d\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 	/* Open the shared memory file and map the memory into this process. */
 	fd = open(memfile, O_RDWR);
 
 	if (fd == -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to open %s for pid %d\n", dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to open %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
-	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE ,
-			MAP_POPULATE|MAP_SHARED, fd, 0);
+	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE,
+		MAP_POPULATE|MAP_SHARED, fd, 0);
 	close(fd);
 
 	if (map == MAP_FAILED) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Error mapping the file %s for pid %d\n",  dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Error mapping the file %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
@@ -278,8 +294,11 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	mem->mapped_address = (uint64_t)(uintptr_t)map;
 	mem->mapped_size = procmap.len;
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n", dev->device_fh,
-		memfile, resolved_path, (long long unsigned)mem->mapped_size, map);
+	LOG_DEBUG(VHOST_CONFIG,
+		"(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n",
+		dev->device_fh,
+		memfile, resolved_path,
+		(long long unsigned)mem->mapped_size, map);
 
 	return 0;
 }
@@ -303,7 +322,8 @@ get_config_ll_entry(struct vhost_device_ctx ctx)
 }
 
 /*
- * Searches the configuration core linked list and retrieves the device if it exists.
+ * Searches the configuration core linked list and
+ * retrieves the device if it exists.
  */
 static struct virtio_net *
 get_device(struct vhost_device_ctx ctx)
@@ -312,11 +332,11 @@ get_device(struct vhost_device_ctx ctx)
 
 	ll_dev = get_config_ll_entry(ctx);
 
-	/* If a matching entry is found in the linked list, return the device in that entry. */
 	if (ll_dev)
 		return &ll_dev->dev;
 
-	RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Device not found in linked list.\n", ctx.fh);
+	RTE_LOG(ERR, VHOST_CONFIG,
+		"(%"PRIu64") Device not found in linked list.\n", ctx.fh);
 	return NULL;
 }
 
@@ -331,13 +351,18 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 	/* If ll_dev == NULL then this is the first device so go to else */
 	if (ll_dev) {
 		/* If the 1st device_fh != 0 then we insert our device here. */
-		if (ll_dev->dev.device_fh != 0)	{
+		if (ll_dev->dev.device_fh != 0) {
 			new_ll_dev->dev.device_fh = 0;
 			new_ll_dev->next = ll_dev;
 			ll_root = new_ll_dev;
 		} else {
-			/* Increment through the ll until we find un unused device_fh. Insert the device at that entry*/
-			while ((ll_dev->next != NULL) && (ll_dev->dev.device_fh == (ll_dev->next->dev.device_fh - 1)))
+			/*
+			 * Increment through the ll until we find un unused
+			 * device_fh. Insert the device at that entry.
+			 */
+			while ((ll_dev->next != NULL) &&
+				(ll_dev->dev.device_fh ==
+					(ll_dev->next->dev.device_fh - 1)))
 				ll_dev = ll_dev->next;
 
 			new_ll_dev->dev.device_fh = ll_dev->dev.device_fh + 1;
@@ -352,7 +377,8 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 }
 
 /*
- * Unmap any memory, close any file descriptors and free any memory owned by a device.
+ * Unmap any memory, close any file descriptors and
+ * free any memory owned by a device.
  */
 static void
 cleanup_device(struct virtio_net *dev)
@@ -386,6 +412,7 @@ free_device(struct virtio_net_config_ll *ll_dev)
 	free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
 	free(ll_dev);
 }
+
 /*
  * Remove an entry from the device configuration linked list.
  */
@@ -423,7 +450,10 @@ init_device(struct virtio_net *dev)
 {
 	uint64_t vq_offset;
 
-	/* Virtqueues have already been malloced so we don't want to set them to NULL. */
+	/*
+	 * Virtqueues have already been malloced so
+	 * we don't want to set them to NULL.
+	 */
 	vq_offset = offsetof(struct virtio_net, mem);
 
 	/* Set everything to 0. */
@@ -491,8 +521,8 @@ new_device(struct vhost_device_ctx ctx)
 }
 
 /*
- * Function is called from the CUSE release function. This function will cleanup
- * the device and remove it from device configuration linked list.
+ * Function is called from the CUSE release function. This function will
+ * cleanup the device and remove it from device configuration linked list.
  */
 static void
 destroy_device(struct vhost_device_ctx ctx)
@@ -503,15 +533,19 @@ destroy_device(struct vhost_device_ctx ctx)
 	/* Find the linked list entry for the device to be removed. */
 	ll_dev_cur_ctx = get_config_ll_entry(ctx);
 	while (ll_dev_cur != NULL) {
-		/* If the device is found or a device that doesn't exist is found then it is removed. */
+		/*
+		 * If the device is found or
+		 * a device that doesn't exist is found then it is removed.
+		 */
 		if (ll_dev_cur == ll_dev_cur_ctx) {
 			/*
-			 * If the device is running on a data core then call the function to remove it from
-			 * the data core.
+			 * If the device is running on a data core then call
+			 * the function to remove it from the data core.
 			 */
 			if ((ll_dev_cur->dev.flags & VIRTIO_DEV_RUNNING))
 				notify_ops->destroy_device(&(ll_dev_cur->dev));
-			ll_dev_cur = rm_config_ll_entry(ll_dev_cur, ll_dev_last);
+			ll_dev_cur = rm_config_ll_entry(ll_dev_cur,
+					ll_dev_last);
 		} else {
 			ll_dev_last = ll_dev_cur;
 			ll_dev_cur = ll_dev_cur->next;
@@ -521,7 +555,8 @@ destroy_device(struct vhost_device_ctx ctx)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_OWNER
- * This function just returns success at the moment unless the device hasn't been initialised.
+ * This function just returns success at the moment unless
+ * the device hasn't been initialised.
  */
 static int
 set_owner(struct vhost_device_ctx ctx)
@@ -571,7 +606,7 @@ get_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_FEATURES
- * We receive the negotiated set of features supported by us and the virtio device.
+ * We receive the negotiated features supported by us and the virtio device.
  */
 static int
 set_features(struct vhost_device_ctx ctx, uint64_t *pu)
@@ -589,13 +624,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 	/* Set the vhost_hlen depending on if VIRTIO_NET_F_MRG_RXBUF is set. */
 	if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers enabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers enabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 	} else {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers disabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers disabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
@@ -607,8 +646,8 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_MEM_TABLE
- * This function creates and populates the memory structure for the device. This includes
- * storing offsets used to translate buffer addresses.
+ * This function creates and populates the memory structure for the device.
+ * This includes storing offsets used to translate buffer addresses.
  */
 static int
 set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
@@ -634,7 +673,9 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	mem = calloc(1, sizeof(struct virtio_memory) +
 		(sizeof(struct virtio_memory_regions) * nregions));
 	if (mem == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to allocate memory for dev->mem.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to allocate memory for dev->mem.\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -656,15 +697,18 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 			mem_regions[regionidx].userspace_addr;
 
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") REGION: %u - GPA: %p - QEMU VA: %p - SIZE (%"PRIu64")\n", dev->device_fh,
-				regionidx, (void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
-				(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
-				mem->regions[regionidx].memory_size);
+			regionidx,
+			(void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
+			(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
+			mem->regions[regionidx].memory_size);
 
 		/*set the base address mapping*/
 		if (mem->regions[regionidx].guest_phys_address == 0x0) {
-			mem->base_address = mem->regions[regionidx].userspace_address;
+			mem->base_address =
+				mem->regions[regionidx].userspace_address;
 			/* Map VM memory file */
-			if (host_memory_map(dev, mem, ctx.pid, mem->base_address) != 0) {
+			if (host_memory_map(dev, mem, ctx.pid,
+				mem->base_address) != 0) {
 				free(mem);
 				return -1;
 			}
@@ -678,27 +722,42 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 		return -1;
 	}
 
-	/* Check if all of our regions have valid mappings. Usually one does not exist in the QEMU memory file. */
+	/*
+	 * Check if all of our regions have valid mappings.
+	 * Usually one does not exist in the QEMU memory file.
+	 */
 	valid_regions = mem->nregions;
 	for (regionidx = 0; regionidx < mem->nregions; regionidx++) {
-		if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-			(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size)))
+		if ((mem->regions[regionidx].userspace_address <
+			mem->base_address) ||
+			(mem->regions[regionidx].userspace_address >
+			(mem->base_address + mem->mapped_size)))
 				valid_regions--;
 	}
 
-	/* If a region does not have a valid mapping we rebuild our memory struct to contain only valid entries. */
+	/*
+	 * If a region does not have a valid mapping,
+	 * we rebuild our memory struct to contain only valid entries.
+	 */
 	if (valid_regions != mem->nregions) {
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Not all memory regions exist in the QEMU mem file. Re-populating mem structure\n",
 			dev->device_fh);
 
-		/* Re-populate the memory structure with only valid regions. Invalid regions are over-written with memmove. */
+		/*
+		 * Re-populate the memory structure with only valid regions.
+		 * Invalid regions are over-written with memmove.
+		 */
 		valid_regions = 0;
 
 		for (regionidx = mem->nregions; 0 != regionidx--;) {
-			if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-					(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size))) {
-				memmove(&mem->regions[regionidx], &mem->regions[regionidx + 1],
-					sizeof(struct virtio_memory_regions) * valid_regions);
+			if ((mem->regions[regionidx].userspace_address <
+				mem->base_address) ||
+				(mem->regions[regionidx].userspace_address >
+				(mem->base_address + mem->mapped_size))) {
+				memmove(&mem->regions[regionidx],
+					&mem->regions[regionidx + 1],
+					sizeof(struct virtio_memory_regions) *
+						valid_regions);
 			} else {
 				valid_regions++;
 			}
@@ -708,12 +767,16 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	dev->mem = mem;
 
 	/*
-	 * Calculate the address offset for each region. This offset is used to identify the vhost virtual address
+	 * Calculate the address offset for each region.
+	 * This offset is used to identify the vhost virtual address
 	 * corresponding to a QEMU guest physical address.
 	 */
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
-		dev->mem->regions[regionidx].address_offset = dev->mem->regions[regionidx].userspace_address - dev->mem->base_address
-			+ dev->mem->mapped_address - dev->mem->regions[regionidx].guest_phys_address;
+		dev->mem->regions[regionidx].address_offset =
+			dev->mem->regions[regionidx].userspace_address -
+				dev->mem->base_address +
+				dev->mem->mapped_address -
+				dev->mem->regions[regionidx].guest_phys_address;
 
 	}
 	return 0;
@@ -732,7 +795,7 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->size = state->num;
 
 	return 0;
@@ -740,8 +803,8 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_ADDR
- * The virtio device sends us the desc, used and avail ring addresses. This function
- * then converts these to our address space.
+ * The virtio device sends us the desc, used and avail ring addresses.
+ * This function then converts these to our address space.
  */
 static int
 set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
@@ -753,31 +816,43 @@ set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
 	if (dev == NULL)
 		return -1;
 
-	/* addr->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* addr->index refers to the queue index. The txq 1, rxq is 0. */
 	vq = dev->virtqueue[addr->index];
 
 	/* The addresses are converted from QEMU virtual to Vhost virtual. */
-	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev, addr->desc_user_addr);
+	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev,
+			addr->desc_user_addr);
 	if (vq->desc == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find descriptor ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find desc ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev, addr->avail_user_addr);
+	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev,
+			addr->avail_user_addr);
 	if (vq->avail == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find available ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find avail ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev, addr->used_user_addr);
+	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev,
+			addr->used_user_addr);
 	if (vq->used == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find used ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find used ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n", dev->device_fh, vq->desc);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n", dev->device_fh, vq->avail);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n", dev->device_fh, vq->used);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n",
+			dev->device_fh, vq->desc);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n",
+			dev->device_fh, vq->avail);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n",
+			dev->device_fh, vq->used);
 
 	return 0;
 }
@@ -795,7 +870,7 @@ set_vring_base(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->last_used_idx = state->num;
 	dev->virtqueue[state->index]->last_used_idx_res = state->num;
 
@@ -817,15 +892,15 @@ get_vring_base(struct vhost_device_ctx ctx, uint32_t index,
 		return -1;
 
 	state->index = index;
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	state->num = dev->virtqueue[state->index]->last_used_idx;
 
 	return 0;
 }
 
 /*
- * This function uses the eventfd_link kernel module to copy an eventfd file descriptor
- * provided by QEMU in to our process space.
+ * This function uses the eventfd_link kernel module to copy an eventfd file
+ * descriptor provided by QEMU in to our process space.
  */
 static int
 eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
@@ -835,7 +910,9 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	/* Open the character device to the kernel module. */
 	eventfd_link = open(eventfd_cdev, O_RDWR);
 	if (eventfd_link < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") eventfd_link module is not loaded\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") eventfd_link module is not loaded\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -844,18 +921,19 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	close(eventfd_link);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") EVENTFD_COPY ioctl failed\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") EVENTFD_COPY ioctl failed\n",
+			dev->device_fh);
 		return -1;
 	}
 
-
 	return 0;
 }
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_CALL
- * The virtio device sends an eventfd to interrupt the guest. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd to interrupt the guest. This fd gets
+ * copied into our process space.
  */
 static int
 set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -868,7 +946,7 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->kickfd)
@@ -888,8 +966,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_KICK
- * The virtio device sends an eventfd that it can use to notify us. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd that it can use to notify us.
+ * This fd gets copied into our process space.
  */
 static int
 set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -902,7 +980,7 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->callfd)
@@ -922,10 +1000,12 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_NET_SET_BACKEND
- * To complete device initialisation when the virtio driver is loaded we are provided with a
- * valid fd for a tap device (not used by us). If this happens then we can add the device to a
- * data core. When the virtio driver is removed we get fd=-1. At that point we remove the device
- * from the data core. The device will still exist in the device configuration linked list.
+ * To complete device initialisation when the virtio driver is loaded,
+ * we are provided with a valid fd for a tap device (not used by us).
+ * If this happens then we can add the device to a data core.
+ * When the virtio driver is removed we get fd=-1.
+ * At that point we remove the device from the data core.
+ * The device will still exist in the device configuration linked list.
  */
 static int
 set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -936,10 +1016,13 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[file->index]->backend = file->fd;
 
-	/* If the device isn't already running and both backend fds are set we add the device. */
+	/*
+	 * If the device isn't already running and both backend fds are set,
+	 * we add the device.
+	 */
 	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
 		if (((int)dev->virtqueue[VIRTIO_TXQ]->backend != VIRTIO_DEV_STOPPED) &&
 			((int)dev->virtqueue[VIRTIO_RXQ]->backend != VIRTIO_DEV_STOPPED))
@@ -952,8 +1035,8 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 }
 
 /*
- * Function pointers are set for the device operations to allow CUSE to call functions
- * when an IOCTL, device_add or device_release is received.
+ * Function pointers are set for the device operations to allow CUSE to call
+ * functions when an IOCTL, device_add or device_release is received.
  */
 static const struct vhost_net_device_ops vhost_device_ops = {
 	.new_device = new_device,
@@ -991,11 +1074,13 @@ int rte_vhost_enable_guest_notification(struct virtio_net *dev,
 	uint16_t queue_id, int enable)
 {
 	if (enable) {
-		RTE_LOG(ERR, VHOST_CONFIG, "guest notification isn't supported.\n");
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"guest notification isn't supported.\n");
 		return -1;
 	}
 
-	dev->virtqueue[queue_id]->used->flags = enable ? 0 : VRING_USED_F_NO_NOTIFY;
+	dev->virtqueue[queue_id]->used->flags =
+		enable ? 0 : VRING_USED_F_NO_NOTIFY;
 	return 0;
 }
 
-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
  2014-11-05  4:42 Huawei Xie
@ 2014-11-05  9:09 ` Thomas Monjalon
  2014-11-05 17:07   ` Xie, Huawei
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2014-11-05  9:09 UTC (permalink / raw)
  To: Huawei Xie; +Cc: dev

Hi Huawei,

Please set a Signed-off in your patch.

2014-11-05 12:42, Huawei Xie:
> This patch fixes code style issues and refines some comments in vhost library.
> 
> 
> ---
>  lib/librte_vhost/eventfd_link/eventfd_link.c | 244 ++++++++++-----------
>  lib/librte_vhost/eventfd_link/eventfd_link.h | 127 ++++++-----
>  lib/librte_vhost/rte_virtio_net.h            |   3 +-
>  lib/librte_vhost/vhost-net-cdev.c            | 187 +++++++++-------
>  lib/librte_vhost/vhost_rxtx.c                |  13 +-
>  lib/librte_vhost/virtio-net.c                | 317 +++++++++++++++++----------
>  6 files changed, 494 insertions(+), 397 deletions(-)
> 
> diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.c b/lib/librte_vhost/eventfd_link/eventfd_link.c
> index fc0653a..542ec2c 100644
> --- a/lib/librte_vhost/eventfd_link/eventfd_link.c
> +++ b/lib/librte_vhost/eventfd_link/eventfd_link.c
> @@ -1,26 +1,26 @@
>  /*-
> - *  * GPL LICENSE SUMMARY
> - *  *
> - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> - *  *
> - *  *   This program is free software; you can redistribute it and/or modify
> - *  *   it under the terms of version 2 of the GNU General Public License as
> - *  *   published by the Free Software Foundation.
> - *  *
> - *  *   This program is distributed in the hope that it will be useful, but
> - *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
> - *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> - *  *   General Public License for more details.
> - *  *
> - *  *   You should have received a copy of the GNU General Public License
> - *  *   along with this program; if not, write to the Free Software
> - *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> - *  *   The full GNU General Public License is included in this distribution
> - *  *   in the file called LICENSE.GPL.
> - *  *
> - *  *   Contact Information:
> - *  *   Intel Corporation
> - *   */
> + * GPL LICENSE SUMMARY
> + *
> + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + *
> + *   This program is free software; you can redistribute it and/or modify
> + *   it under the terms of version 2 of the GNU General Public License as
> + *   published by the Free Software Foundation.
> + *
> + *   This program is distributed in the hope that it will be useful, but
> + *   WITHOUT ANY WARRANTY; without even the implied warranty of
> + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + *   General Public License for more details.
> + *
> + *   You should have received a copy of the GNU General Public License
> + *   along with this program; if not, write to the Free Software
> + *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> + *   The full GNU General Public License is included in this distribution
> + *   in the file called LICENSE.GPL.
> + *
> + *   Contact Information:
> + *   Intel Corporation
> + */
>  
>  #include <linux/eventfd.h>
>  #include <linux/miscdevice.h>
> @@ -42,15 +42,15 @@
>   * get_files_struct is copied from fs/file.c
>   */
>  struct files_struct *
> -get_files_struct (struct task_struct *task)
> +get_files_struct(struct task_struct *task)
>  {
>  	struct files_struct *files;
>  
> -	task_lock (task);
> +	task_lock(task);
>  	files = task->files;
>  	if (files)
> -		atomic_inc (&files->count);
> -	task_unlock (task);
> +		atomic_inc(&files->count);
> +	task_unlock(task);
>  
>  	return files;
>  }
> @@ -59,17 +59,15 @@ get_files_struct (struct task_struct *task)
>   * put_files_struct is extracted from fs/file.c
>   */
>  void
> -put_files_struct (struct files_struct *files)
> +put_files_struct(struct files_struct *files)
>  {
> -	if (atomic_dec_and_test (&files->count))
> -	{
> -		BUG ();
> -	}
> +	if (atomic_dec_and_test(&files->count))
> +		BUG();
>  }
>  
>  
>  static long
> -eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
> +eventfd_link_ioctl(struct file *f, unsigned int ioctl, unsigned long arg)
>  {
>  	void __user *argp = (void __user *) arg;
>  	struct task_struct *task_target = NULL;
> @@ -78,96 +76,88 @@ eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
>  	struct fdtable *fdt;
>  	struct eventfd_copy eventfd_copy;
>  
> -	switch (ioctl)
> -	{
> -		case EVENTFD_COPY:
> -			if (copy_from_user (&eventfd_copy, argp, sizeof (struct eventfd_copy)))
> -				return -EFAULT;
> -
> -			/*
> -			 * Find the task struct for the target pid
> -			 */
> -			task_target =
> -				pid_task (find_vpid (eventfd_copy.target_pid), PIDTYPE_PID);
> -			if (task_target == NULL)
> -			{
> -				printk (KERN_DEBUG "Failed to get mem ctx for target pid\n");
> -				return -EFAULT;
> -			}
> -
> -			files = get_files_struct (current);
> -			if (files == NULL)
> -			{
> -				printk (KERN_DEBUG "Failed to get files struct\n");
> -				return -EFAULT;
> -			}
> -
> -			rcu_read_lock ();
> -			file = fcheck_files (files, eventfd_copy.source_fd);
> -			if (file)
> -			{
> -				if (file->f_mode & FMODE_PATH
> -						|| !atomic_long_inc_not_zero (&file->f_count))
> -					file = NULL;
> -			}
> -			rcu_read_unlock ();
> -			put_files_struct (files);
> -
> -			if (file == NULL)
> -			{
> -				printk (KERN_DEBUG "Failed to get file from source pid\n");
> -				return 0;
> -			}
> -
> -			/*
> -			 * Release the existing eventfd in the source process
> -			 */
> -			spin_lock (&files->file_lock);
> -			filp_close (file, files);
> -			fdt = files_fdtable (files);
> -			fdt->fd[eventfd_copy.source_fd] = NULL;
> -			spin_unlock (&files->file_lock);
> -
> -			/*
> -			 * Find the file struct associated with the target fd.
> -			 */
> -
> -			files = get_files_struct (task_target);
> -			if (files == NULL)
> -			{
> -				printk (KERN_DEBUG "Failed to get files struct\n");
> -				return -EFAULT;
> -			}
> -
> -			rcu_read_lock ();
> -			file = fcheck_files (files, eventfd_copy.target_fd);
> -			if (file)
> -			{
> -				if (file->f_mode & FMODE_PATH
> -						|| !atomic_long_inc_not_zero (&file->f_count))
> +	switch (ioctl) {
> +	case EVENTFD_COPY:
> +		if (copy_from_user(&eventfd_copy, argp,
> +			sizeof(struct eventfd_copy)))
> +			return -EFAULT;
> +
> +		/*
> +		 * Find the task struct for the target pid
> +		 */
> +		task_target =
> +			pid_task(find_vpid(eventfd_copy.target_pid), PIDTYPE_PID);
> +		if (task_target == NULL) {
> +			printk(KERN_DEBUG "Failed to get mem ctx for target pid\n");
> +			return -EFAULT;
> +		}
> +
> +		files = get_files_struct(current);
> +		if (files == NULL) {
> +			printk(KERN_DEBUG "Failed to get files struct\n");
> +			return -EFAULT;
> +		}
> +
> +		rcu_read_lock();
> +		file = fcheck_files(files, eventfd_copy.source_fd);
> +		if (file) {
> +			if (file->f_mode & FMODE_PATH ||
> +				!atomic_long_inc_not_zero(&file->f_count))
> +				file = NULL;
> +		}
> +		rcu_read_unlock();
> +		put_files_struct(files);
> +
> +		if (file == NULL) {
> +			printk(KERN_DEBUG "Failed to get file from source pid\n");
> +			return 0;
> +		}
> +
> +		/*
> +		 * Release the existing eventfd in the source process
> +		 */
> +		spin_lock(&files->file_lock);
> +		filp_close(file, files);
> +		fdt = files_fdtable(files);
> +		fdt->fd[eventfd_copy.source_fd] = NULL;
> +		spin_unlock(&files->file_lock);
> +
> +		/*
> +		 * Find the file struct associated with the target fd.
> +		 */
> +
> +		files = get_files_struct(task_target);
> +		if (files == NULL) {
> +			printk(KERN_DEBUG "Failed to get files struct\n");
> +			return -EFAULT;
> +		}
> +
> +		rcu_read_lock();
> +		file = fcheck_files(files, eventfd_copy.target_fd);
> +		if (file) {
> +			if (file->f_mode & FMODE_PATH ||
> +				!atomic_long_inc_not_zero(&file->f_count))
>  					file = NULL;
> -			}
> -			rcu_read_unlock ();
> -			put_files_struct (files);
> -
> -			if (file == NULL)
> -			{
> -				printk (KERN_DEBUG "Failed to get file from target pid\n");
> -				return 0;
> -			}
> +		}
> +		rcu_read_unlock();
> +		put_files_struct(files);
>  
> +		if (file == NULL) {
> +			printk(KERN_DEBUG "Failed to get file from target pid\n");
> +			return 0;
> +		}
>  
> -			/*
> -			 * Install the file struct from the target process into the
> -			 * file desciptor of the source process,
> -			 */
> +		/*
> +		 * Install the file struct from the target process into the
> +		 * file desciptor of the source process,
> +		 */
>  
> -			fd_install (eventfd_copy.source_fd, file);
> +		fd_install(eventfd_copy.source_fd, file);
>  
> -			return 0;
> +		return 0;
>  
> -		default:
> -			return -ENOIOCTLCMD;
> +	default:
> +		return -ENOIOCTLCMD;
>  	}
>  }
>  
> @@ -183,23 +173,23 @@ static struct miscdevice eventfd_link_misc = {
>  };
>  
>  static int __init
> -eventfd_link_init (void)
> +eventfd_link_init(void)
>  {
> -	return misc_register (&eventfd_link_misc);
> +	return misc_register(&eventfd_link_misc);
>  }
>  
> -module_init (eventfd_link_init);
> +module_init(eventfd_link_init);
>  
>  static void __exit
> -eventfd_link_exit (void)
> +eventfd_link_exit(void)
>  {
> -	misc_deregister (&eventfd_link_misc);
> +	misc_deregister(&eventfd_link_misc);
>  }
>  
> -module_exit (eventfd_link_exit);
> +module_exit(eventfd_link_exit);
>  
> -MODULE_VERSION ("0.0.1");
> -MODULE_LICENSE ("GPL v2");
> -MODULE_AUTHOR ("Anthony Fee");
> -MODULE_DESCRIPTION ("Link eventfd");
> -MODULE_ALIAS ("devname:eventfd-link");
> +MODULE_VERSION("0.0.1");
> +MODULE_LICENSE("GPL v2");
> +MODULE_AUTHOR("Anthony Fee");
> +MODULE_DESCRIPTION("Link eventfd");
> +MODULE_ALIAS("devname:eventfd-link");
> diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.h b/lib/librte_vhost/eventfd_link/eventfd_link.h
> index a32a8dd..ea619ec 100644
> --- a/lib/librte_vhost/eventfd_link/eventfd_link.h
> +++ b/lib/librte_vhost/eventfd_link/eventfd_link.h
> @@ -1,79 +1,76 @@
>  /*-
> - *  * This file is provided under a dual BSD/GPLv2 license.  When using or
> - *  *   redistributing this file, you may do so under either license.
> - *  *
> - *  *   GPL LICENSE SUMMARY
> - *  *
> - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> - *  *
> - *  *   This program is free software; you can redistribute it and/or modify
> - *  *   it under the terms of version 2 of the GNU General Public License as
> - *  *   published by the Free Software Foundation.
> - *  *
> - *  *   This program is distributed in the hope that it will be useful, but
> - *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
> - *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> - *  *   General Public License for more details.
> - *  *
> - *  *   You should have received a copy of the GNU General Public License
> - *  *   along with this program; if not, write to the Free Software
> - *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> - *  *   The full GNU General Public License is included in this distribution
> - *  *   in the file called LICENSE.GPL.
> - *  *
> - *  *   Contact Information:
> - *  *   Intel Corporation
> - *  *
> - *  *   BSD LICENSE
> - *  *
> - *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> - *  *   All rights reserved.
> - *  *
> - *  *   Redistribution and use in source and binary forms, with or without
> - *  *   modification, are permitted provided that the following conditions
> - *  *   are met:
> - *  *
> - *  *     * Redistributions of source code must retain the above copyright
> - *  *       notice, this list of conditions and the following disclaimer.
> - *  *     * Redistributions in binary form must reproduce the above copyright
> - *  *       notice, this list of conditions and the following disclaimer in
> - *  *       the documentation and/or other materials provided with the
> - *  *       distribution.
> - *  *     * Neither the name of Intel Corporation nor the names of its
> - *  *       contributors may be used to endorse or promote products derived
> - *  *       from this software without specific prior written permission.
> - *  *
> - *  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> - *  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> - *  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> - *  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> - *  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - *  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> - *  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> - *  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> - *  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> - *  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> - *  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> - *  *
> - *   */
> + *  This file is provided under a dual BSD/GPLv2 license.  When using or
> + *  redistributing this file, you may do so under either license.
> + *
> + * GPL LICENSE SUMMARY
> + *
> + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + *
> + *   This program is free software; you can redistribute it and/or modify
> + *   it under the terms of version 2 of the GNU General Public License as
> + *   published by the Free Software Foundation.
> + *
> + *   This program is distributed in the hope that it will be useful, but
> + *   WITHOUT ANY WARRANTY; without even the implied warranty of
> + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + *   General Public License for more details.
> + *
> + *   You should have received a copy of the GNU General Public License
> + *   along with this program; if not, write to the Free Software
> + *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
> + *   The full GNU General Public License is included in this distribution
> + *   in the file called LICENSE.GPL.
> + *
> + *   Contact Information:
> + *   Intel Corporation
> + *
> + * BSD LICENSE
> + *
> + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + *   All rights reserved.
> + *
> + *   Redistribution and use in source and binary forms, with or without
> + *   modification, are permitted provided that the following conditions
> + *   are met:
> + *
> + *   Redistributions of source code must retain the above copyright
> + *   notice, this list of conditions and the following disclaimer.
> + *   Redistributions in binary form must reproduce the above copyright
> + *   notice, this list of conditions and the following disclaimer in
> + *   the documentation and/or other materials provided with the
> + *   distribution.
> + *   Neither the name of Intel Corporation nor the names of its
> + *   contributors may be used to endorse or promote products derived
> + *   from this software without specific prior written permission.
> + *
> + *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> + *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> + *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> + *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> + *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> + *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> + *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> + *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> + *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + *
> + */
>  
>  #ifndef _EVENTFD_LINK_H_
>  #define _EVENTFD_LINK_H_
>  
>  /*
> - *	ioctl to copy an fd entry in calling process to an fd in a target process
> + * ioctl to copy an fd entry in calling process to an fd in a target process
>   */
>  #define EVENTFD_COPY 1
>  
>  /*
> - *	arguements for the EVENTFD_COPY ioctl
> + * arguements for the EVENTFD_COPY ioctl
>   */
>  struct eventfd_copy {
> -	// fd in the target pid
> -    unsigned target_fd;
> -	// fd in the calling pid
> -    unsigned source_fd;
> -	// pid of the target pid
> -    pid_t target_pid;
> +	unsigned target_fd; /* fd in the target pid */
> +	unsigned source_fd; /* fd in the calling pid */
> +	pid_t target_pid; /* pid of the target pid */
>  };
>  #endif /* _EVENTFD_LINK_H_ */
> diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
> index b6548a1..00b1328 100644
> --- a/lib/librte_vhost/rte_virtio_net.h
> +++ b/lib/librte_vhost/rte_virtio_net.h
> @@ -90,8 +90,7 @@ struct vhost_virtqueue {
>  /**
>   * Device structure contains all configuration information relating to the device.
>   */
> -struct virtio_net
> -{
> +struct virtio_net {
>  	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/**< Contains all virtqueue information. */
>  	struct virtio_memory	*mem;		/**< QEMU memory and memory region information. */
>  	uint64_t		features;	/**< Negotiated feature set. */
> diff --git a/lib/librte_vhost/vhost-net-cdev.c b/lib/librte_vhost/vhost-net-cdev.c
> index 91ff0d8..57c76cb 100644
> --- a/lib/librte_vhost/vhost-net-cdev.c
> +++ b/lib/librte_vhost/vhost-net-cdev.c
> @@ -46,21 +46,21 @@
>  
>  #include "vhost-net-cdev.h"
>  
> -#define FUSE_OPT_DUMMY		"\0\0"
> -#define FUSE_OPT_FORE		"-f\0\0"
> -#define FUSE_OPT_NOMULTI	"-s\0\0"
> +#define FUSE_OPT_DUMMY "\0\0"
> +#define FUSE_OPT_FORE  "-f\0\0"
> +#define FUSE_OPT_NOMULTI "-s\0\0"
>  
> -static const uint32_t	default_major = 231;
> -static const uint32_t	default_minor = 1;
> -static const char	cuse_device_name[]	= "/dev/cuse";
> -static const char	default_cdev[] = "vhost-net";
> +static const uint32_t default_major = 231;
> +static const uint32_t default_minor = 1;
> +static const char cuse_device_name[] = "/dev/cuse";
> +static const char default_cdev[] = "vhost-net";
>  
> -static struct fuse_session			*session;
> -static struct vhost_net_device_ops	const *ops;
> +static struct fuse_session *session;
> +static struct vhost_net_device_ops const *ops;
>  
>  /*
> - * Returns vhost_device_ctx from given fuse_req_t. The index is populated later when
> - * the device is added to the device linked list.
> + * Returns vhost_device_ctx from given fuse_req_t. The index is populated later
> + * when the device is added to the device linked list.
>   */
>  static struct vhost_device_ctx
>  fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
> @@ -75,7 +75,8 @@ fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
>  }
>  
>  /*
> - * When the device is created in QEMU it gets initialised here and added to the device linked list.
> + * When the device is created in QEMU it gets initialised here and
> + * added to the device linked list.
>   */
>  static void
>  vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
> @@ -91,7 +92,8 @@ vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
>  
>  	fi->fh = err;
>  
> -	RTE_LOG(INFO, VHOST_CONFIG, "(%"PRIu64") Device configuration started\n", fi->fh);
> +	RTE_LOG(INFO, VHOST_CONFIG,
> +		"(%"PRIu64") Device configuration started\n", fi->fh);
>  	fuse_reply_open(req, fi);
>  }
>  
> @@ -113,8 +115,8 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
>   * Boilerplate code for CUSE IOCTL
>   * Implicit arguments: ctx, req, result.
>   */
> -#define VHOST_IOCTL(func) do {			\
> -	result = (func)(ctx);			\
> +#define VHOST_IOCTL(func) do {	\
> +	result = (func)(ctx);	\
>  	fuse_reply_ioctl(req, result, NULL, 0);	\
>  } while (0)
>  
> @@ -122,57 +124,58 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
>   * Boilerplate IOCTL RETRY
>   * Implicit arguments: req.
>   */
> -#define VHOST_IOCTL_RETRY(size_r, size_w) do {		\
> -	struct iovec iov_r = { arg, (size_r) };		\
> -	struct iovec iov_w = { arg, (size_w) };		\
> -	fuse_reply_ioctl_retry(req, &iov_r, (size_r)?1:0, &iov_w, (size_w)?1:0);	\
> +#define VHOST_IOCTL_RETRY(size_r, size_w) do {	\
> +	struct iovec iov_r = { arg, (size_r) };	\
> +	struct iovec iov_w = { arg, (size_w) };	\
> +	fuse_reply_ioctl_retry(req, &iov_r,	\
> +		(size_r) ? 1 : 0, &iov_w, (size_w) ? 1 : 0);\
>  } while (0)
>  
>  /*
>   * Boilerplate code for CUSE Read IOCTL
>   * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
>   */
> -#define VHOST_IOCTL_R(type, var, func) do {		\
> -	if (!in_bufsz) {				\
> -		VHOST_IOCTL_RETRY(sizeof(type), 0);	\
> -	} else {					\
> -		(var) = *(const type*) in_buf;		\
> -		result = func(ctx, &(var));		\
> -		fuse_reply_ioctl(req, result, NULL, 0);	\
> -	}						\
> +#define VHOST_IOCTL_R(type, var, func) do {	\
> +	if (!in_bufsz) {	\
> +		VHOST_IOCTL_RETRY(sizeof(type), 0);\
> +	} else {	\
> +		(var) = *(const type*)in_buf;	\
> +		result = func(ctx, &(var));	\
> +		fuse_reply_ioctl(req, result, NULL, 0);\
> +	}	\
>  } while (0)
>  
>  /*
> - *	Boilerplate code for CUSE Write IOCTL
> + * Boilerplate code for CUSE Write IOCTL
>   * Implicit arguments: ctx, req, result, out_bufsz.
>   */
> -#define	VHOST_IOCTL_W(type, var, func) do {		\
> -	if (!out_bufsz) {				\
> -		VHOST_IOCTL_RETRY(0, sizeof(type));	\
> -	} else {					\
> -		result = (func)(ctx, &(var));		\
> -		fuse_reply_ioctl(req, result, &(var), sizeof(type));	\
> -	}								\
> +#define VHOST_IOCTL_W(type, var, func) do {	\
> +	if (!out_bufsz) {	\
> +		VHOST_IOCTL_RETRY(0, sizeof(type));\
> +	} else {	\
> +		result = (func)(ctx, &(var));\
> +		fuse_reply_ioctl(req, result, &(var), sizeof(type));\
> +	} \
>  } while (0)
>  
>  /*
>   * Boilerplate code for CUSE Read/Write IOCTL
>   * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
>   */
> -#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {		\
> -	if (!in_bufsz) {						\
> -		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));	\
> -	} else {							\
> -		(var1) = *(const type1*) (in_buf);			\
> -		result = (func)(ctx, (var1), &(var2));			\
> -		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));	\
> -	}								\
> +#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {	\
> +	if (!in_bufsz) {	\
> +		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));\
> +	} else {	\
> +		(var1) = *(const type1*) (in_buf);	\
> +		result = (func)(ctx, (var1), &(var2));	\
> +		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));\
> +	}	\
>  } while (0)
>  
>  /*
> - * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on
> - * the type of IOCTL a buffer is requested to read or to write. This
> - * request is handled by FUSE and the buffer is then given to CUSE.
> + * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on the type
> + * of IOCTL a buffer is requested to read or to write. This request is handled
> + * by FUSE and the buffer is then given to CUSE.
>   */
>  static void
>  vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
> @@ -189,33 +192,39 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
>  
>  	switch (cmd) {
>  	case VHOST_NET_SET_BACKEND:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
>  		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_backend);
>  		break;
>  
>  	case VHOST_GET_FEATURES:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
>  		VHOST_IOCTL_W(uint64_t, features, ops->get_features);
>  		break;
>  
>  	case VHOST_SET_FEATURES:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
>  		VHOST_IOCTL_R(uint64_t, features, ops->set_features);
>  		break;
>  
>  	case VHOST_RESET_OWNER:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
>  		VHOST_IOCTL(ops->reset_owner);
>  		break;
>  
>  	case VHOST_SET_OWNER:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
>  		VHOST_IOCTL(ops->set_owner);
>  		break;
>  
>  	case VHOST_SET_MEM_TABLE:
>  		/*TODO fix race condition.*/
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
>  		static struct vhost_memory mem_temp;
>  
>  		switch (in_bufsz) {
> @@ -227,7 +236,9 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
>  			mem_temp = *(const struct vhost_memory *) in_buf;
>  
>  			if (mem_temp.nregions > 0) {
> -				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) + (sizeof(struct vhost_memory_region) * mem_temp.nregions), 0);
> +				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) +
> +					(sizeof(struct vhost_memory_region) *
> +						mem_temp.nregions), 0);
>  			} else {
>  				result = -1;
>  				fuse_reply_ioctl(req, result, NULL, 0);
> @@ -235,56 +246,70 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
>  			break;
>  
>  		default:
> -			result = ops->set_mem_table(ctx, in_buf, mem_temp.nregions);
> +			result = ops->set_mem_table(ctx,
> +					in_buf, mem_temp.nregions);
>  			if (result)
>  				fuse_reply_err(req, EINVAL);
>  			else
>  				fuse_reply_ioctl(req, result, NULL, 0);
> -
>  		}
> -
>  		break;
>  
>  	case VHOST_SET_VRING_NUM:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
> -		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_num);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
> +		VHOST_IOCTL_R(struct vhost_vring_state, state,
> +			ops->set_vring_num);
>  		break;
>  
>  	case VHOST_SET_VRING_BASE:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
> -		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_base);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
> +		VHOST_IOCTL_R(struct vhost_vring_state, state,
> +			ops->set_vring_base);
>  		break;
>  
>  	case VHOST_GET_VRING_BASE:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
> -		VHOST_IOCTL_RW(uint32_t, index, struct vhost_vring_state, state, ops->get_vring_base);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
> +		VHOST_IOCTL_RW(uint32_t, index,
> +			struct vhost_vring_state, state, ops->get_vring_base);
>  		break;
>  
>  	case VHOST_SET_VRING_ADDR:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
> -		VHOST_IOCTL_R(struct vhost_vring_addr, addr, ops->set_vring_addr);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
> +		VHOST_IOCTL_R(struct vhost_vring_addr, addr,
> +			ops->set_vring_addr);
>  		break;
>  
>  	case VHOST_SET_VRING_KICK:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
> -		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_kick);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
> +		VHOST_IOCTL_R(struct vhost_vring_file, file,
> +			ops->set_vring_kick);
>  		break;
>  
>  	case VHOST_SET_VRING_CALL:
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
> -		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_call);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
> +		VHOST_IOCTL_R(struct vhost_vring_file, file,
> +			ops->set_vring_call);
>  		break;
>  
>  	default:
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
>  		result = -1;
>  		fuse_reply_ioctl(req, result, NULL, 0);
>  	}
>  
>  	if (result < 0)
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
>  	else
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
>  }
>  
>  /*
> @@ -297,8 +322,8 @@ static const struct cuse_lowlevel_ops vhost_net_ops = {
>  };
>  
>  /*
> - * cuse_info is populated and used to register the cuse device. vhost_net_device_ops are
> - * also passed when the device is registered in main.c.
> + * cuse_info is populated and used to register the cuse device.
> + * vhost_net_device_ops are also passed when the device is registered in app.
>   */
>  int
>  rte_vhost_driver_register(const char *dev_name)
> @@ -314,20 +339,23 @@ rte_vhost_driver_register(const char *dev_name)
>  	char *fuse_argv[] = {fuse_opt_dummy, fuse_opt_fore, fuse_opt_nomulti};
>  
>  	if (access(cuse_device_name, R_OK | W_OK) < 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s can't be accessed, maybe not exist\n", cuse_device_name);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"char device %s can't be accessed, maybe not exist\n",
> +			cuse_device_name);
>  		return -1;
>  	}
>  
>  	/*
> -	 * The device name is created. This is passed to QEMU so that it can register
> -	 * the device with our application.
> +	 * The device name is created. This is passed to QEMU so that it can
> +	 * register the device with our application.
>  	 */
>  	snprintf(device_name, PATH_MAX, "DEVNAME=%s", dev_name);
>  	snprintf(char_device_name, PATH_MAX, "/dev/%s", dev_name);
>  
>  	/* Check if device already exists. */
>  	if (access(char_device_name, F_OK) != -1) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s already exists\n", char_device_name);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"char device %s already exists\n", char_device_name);
>  		return -1;
>  	}
>  
> @@ -341,7 +369,7 @@ rte_vhost_driver_register(const char *dev_name)
>  	ops = get_virtio_net_callbacks();
>  
>  	session = cuse_lowlevel_setup(3, fuse_argv,
> -				&cuse_info, &vhost_net_ops, 0, NULL);
> +			&cuse_info, &vhost_net_ops, 0, NULL);
>  	if (session == NULL)
>  		return -1;
>  
> @@ -349,7 +377,8 @@ rte_vhost_driver_register(const char *dev_name)
>  }
>  
>  /**
> - * The CUSE session is launched allowing the application to receive open, release and ioctl calls.
> + * The CUSE session is launched allowing the application to receive open,
> + * release and ioctl calls.
>   */
>  int
>  rte_vhost_driver_session_start(void)
> diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
> index 84ec0e8..ccfd82f 100644
> --- a/lib/librte_vhost/vhost_rxtx.c
> +++ b/lib/librte_vhost/vhost_rxtx.c
> @@ -45,7 +45,7 @@
>  /**
>   * This function adds buffers to the virtio devices RX virtqueue. Buffers can
>   * be received from the physical port or from another virtio device. A packet
> - * count is returned to indicate the number of packets that were succesfully
> + * count is returned to indicate the number of packets that are succesfully
>   * added to the RX queue. This function works when mergeable is disabled.
>   */
>  static inline uint32_t __attribute__((always_inline))
> @@ -76,7 +76,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
>  	count = (count > MAX_PKT_BURST) ? MAX_PKT_BURST : count;
>  
>  	/*
> -	 * As many data cores may want access to available buffers, 
> +	 * As many data cores may want access to available buffers,
>  	 * they need to be reserved.
>  	 */
>  	do {
> @@ -143,7 +143,8 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
>  		}
>  
>  		/* Update used ring with desc information */
> -		vq->used->ring[res_cur_idx & (vq->size - 1)].id = head[packet_success];
> +		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
> +							head[packet_success];
>  		vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
>  
>  		/* Copy mbuf data to buffer */
> @@ -389,10 +390,7 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
>  }
>  
>  /*
> - * This function adds buffers to the virtio devices RX virtqueue. Buffers can
> - * be received from the physical port or from another virtio device. A packet
> - * count is returned to indicate the number of packets that were succesfully
> - * added to the RX queue. This function works for mergeable RX.
> + * This function works for mergeable RX.
>   */
>  static inline uint32_t __attribute__((always_inline))
>  virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
> @@ -729,5 +727,4 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, uint16_t queue_id,
>  	if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT))
>  		eventfd_write((int)vq->kickfd, 1);
>  	return entry_success;
> -
>  }
> diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
> index 8015dd8..c07a11e 100644
> --- a/lib/librte_vhost/virtio-net.c
> +++ b/lib/librte_vhost/virtio-net.c
> @@ -52,27 +52,27 @@
>  #include "vhost-net-cdev.h"
>  #include "eventfd_link/eventfd_link.h"
>  
> -/**
> +/*
>   * Device linked list structure for configuration.
>   */
>  struct virtio_net_config_ll {
> -	struct virtio_net		dev;	/* Virtio device.*/
> -	struct virtio_net_config_ll	*next;	/* Next entry on linked list.*/
> +	struct virtio_net dev;			/* Virtio device.*/
> +	struct virtio_net_config_ll *next;	/* Next dev on linked list.*/
>  };
>  
>  const char eventfd_cdev[] = "/dev/eventfd-link";
>  
> -/* device ops to add/remove device to data core. */
> +/* device ops to add/remove device to/from data core. */
>  static struct virtio_net_device_ops const *notify_ops;
> -/* Root address of the linked list in the configuration core. */
> -static struct virtio_net_config_ll	*ll_root;
> +/* root address of the linked list of managed virtio devices */
> +static struct virtio_net_config_ll *ll_root;
>  
> -/* Features supported by this application. RX merge buffers are enabled by default. */
> +/* Features supported by this lib. */
>  #define VHOST_SUPPORTED_FEATURES (1ULL << VIRTIO_NET_F_MRG_RXBUF)
>  static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;
>  
>  /* Line size for reading maps file. */
> -const uint32_t BUFSIZE = PATH_MAX;
> +static const uint32_t BUFSIZE = PATH_MAX;
>  
>  /* Size of prot char array in procmap. */
>  #define PROT_SZ 5
> @@ -82,19 +82,19 @@ const uint32_t BUFSIZE = PATH_MAX;
>  
>  /* Structure containing information gathered from maps file. */
>  struct procmap {
> -	uint64_t	va_start;	/* Start virtual address in file. */
> -	uint64_t	len;		/* Size of file. */
> -	uint64_t	pgoff;		/* Not used. */
> -	uint32_t	maj;		/* Not used. */
> -	uint32_t	min;		/* Not used. */
> -	uint32_t	ino;		/* Not used. */
> -	char		prot[PROT_SZ];	/* Not used. */
> -	char		fname[PATH_MAX];/* File name. */
> +	uint64_t va_start;	/* Start virtual address in file. */
> +	uint64_t len;		/* Size of file. */
> +	uint64_t pgoff;		/* Not used. */
> +	uint32_t maj;		/* Not used. */
> +	uint32_t min;		/* Not used. */
> +	uint32_t ino;		/* Not used. */
> +	char prot[PROT_SZ];	/* Not used. */
> +	char fname[PATH_MAX];	/* File name. */
>  };
>  
>  /*
> - * Converts QEMU virtual address to Vhost virtual address. This function is used
> - * to convert the ring addresses to our address space.
> + * Converts QEMU virtual address to Vhost virtual address. This function is
> + * used to convert the ring addresses to our address space.
>   */
>  static uint64_t
>  qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
> @@ -107,8 +107,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
>  	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
>  		region = &dev->mem->regions[regionidx];
>  		if ((qemu_va >= region->userspace_address) &&
> -				(qemu_va <= region->userspace_address +
> -				region->memory_size)) {
> +			(qemu_va <= region->userspace_address +
> +			region->memory_size)) {
>  			vhost_va = dev->mem->mapped_address + qemu_va -
>  					dev->mem->base_address;
>  			break;
> @@ -118,7 +118,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
>  }
>  
>  /*
> - * Locate the file containing QEMU's memory space and map it to our address space.
> + * Locate the file containing QEMU's memory space and
> + * map it to our address space.
>   */
>  static int
>  host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
> @@ -134,10 +135,10 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  	char procdir[PATH_MAX];
>  	char resolved_path[PATH_MAX];
>  	char *path = NULL;
> -	FILE		*fmap;
> -	void		*map;
> -	uint8_t		found = 0;
> -	char		line[BUFSIZE];
> +	FILE *fmap;
> +	void *map;
> +	uint8_t found = 0;
> +	char line[BUFSIZE];
>  	char dlm[] = "-   :   ";
>  	char *str, *sp, *in[PROCMAP_SZ];
>  	char *end = NULL;
> @@ -159,7 +160,7 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  	while (fgets(line, BUFSIZE, fmap) != 0) {
>  		str = line;
>  		errno = 0;
> -		/* Split line in to fields. */
> +		/* Split line into fields. */
>  		for (i = 0; i < PROCMAP_SZ; i++) {
>  			in[i] = strtok_r(str, &dlm[i], &sp);
>  			if ((in[i] == NULL) || (errno != 0)) {
> @@ -171,37 +172,43 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  
>  		/* Convert/Copy each field as needed. */
>  		procmap.va_start = strtoull(in[0], &end, 16);
> -		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
>  
>  		procmap.len = strtoull(in[1], &end, 16);
> -		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
>  
>  		procmap.pgoff = strtoull(in[3], &end, 16);
> -		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
>  
>  		procmap.maj = strtoul(in[4], &end, 16);
> -		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
>  
>  		procmap.min = strtoul(in[5], &end, 16);
> -		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
>  
>  		procmap.ino = strtoul(in[6], &end, 16);
> -		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
> +		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') ||
> +			(errno != 0)) {
>  			fclose(fmap);
>  			return -1;
>  		}
> @@ -218,16 +225,19 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  	fclose(fmap);
>  
>  	if (!found) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file in pid %d maps file\n", dev->device_fh, pid);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to find memory file in pid %d maps file\n",
> +			dev->device_fh, pid);
>  		return -1;
>  	}
>  
>  	/* Find the guest memory file among the process fds. */
>  	dp = opendir(procdir);
>  	if (dp == NULL) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Cannot open pid %d process directory\n", dev->device_fh, pid);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Cannot open pid %d process directory\n",
> +			dev->device_fh, pid);
>  		return -1;
> -
>  	}
>  
>  	found = 0;
> @@ -254,23 +264,29 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  	closedir(dp);
>  
>  	if (found == 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file for pid %d\n", dev->device_fh, pid);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to find memory file for pid %d\n",
> +			dev->device_fh, pid);
>  		return -1;
>  	}
>  	/* Open the shared memory file and map the memory into this process. */
>  	fd = open(memfile, O_RDWR);
>  
>  	if (fd == -1) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to open %s for pid %d\n", dev->device_fh, memfile, pid);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to open %s for pid %d\n",
> +			dev->device_fh, memfile, pid);
>  		return -1;
>  	}
>  
> -	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE ,
> -			MAP_POPULATE|MAP_SHARED, fd, 0);
> +	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE,
> +		MAP_POPULATE|MAP_SHARED, fd, 0);
>  	close(fd);
>  
>  	if (map == MAP_FAILED) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Error mapping the file %s for pid %d\n",  dev->device_fh, memfile, pid);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Error mapping the file %s for pid %d\n",
> +			dev->device_fh, memfile, pid);
>  		return -1;
>  	}
>  
> @@ -278,8 +294,11 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
>  	mem->mapped_address = (uint64_t)(uintptr_t)map;
>  	mem->mapped_size = procmap.len;
>  
> -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n", dev->device_fh,
> -		memfile, resolved_path, (long long unsigned)mem->mapped_size, map);
> +	LOG_DEBUG(VHOST_CONFIG,
> +		"(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n",
> +		dev->device_fh,
> +		memfile, resolved_path,
> +		(long long unsigned)mem->mapped_size, map);
>  
>  	return 0;
>  }
> @@ -303,7 +322,8 @@ get_config_ll_entry(struct vhost_device_ctx ctx)
>  }
>  
>  /*
> - * Searches the configuration core linked list and retrieves the device if it exists.
> + * Searches the configuration core linked list and
> + * retrieves the device if it exists.
>   */
>  static struct virtio_net *
>  get_device(struct vhost_device_ctx ctx)
> @@ -312,11 +332,11 @@ get_device(struct vhost_device_ctx ctx)
>  
>  	ll_dev = get_config_ll_entry(ctx);
>  
> -	/* If a matching entry is found in the linked list, return the device in that entry. */
>  	if (ll_dev)
>  		return &ll_dev->dev;
>  
> -	RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Device not found in linked list.\n", ctx.fh);
> +	RTE_LOG(ERR, VHOST_CONFIG,
> +		"(%"PRIu64") Device not found in linked list.\n", ctx.fh);
>  	return NULL;
>  }
>  
> @@ -331,13 +351,18 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
>  	/* If ll_dev == NULL then this is the first device so go to else */
>  	if (ll_dev) {
>  		/* If the 1st device_fh != 0 then we insert our device here. */
> -		if (ll_dev->dev.device_fh != 0)	{
> +		if (ll_dev->dev.device_fh != 0) {
>  			new_ll_dev->dev.device_fh = 0;
>  			new_ll_dev->next = ll_dev;
>  			ll_root = new_ll_dev;
>  		} else {
> -			/* Increment through the ll until we find un unused device_fh. Insert the device at that entry*/
> -			while ((ll_dev->next != NULL) && (ll_dev->dev.device_fh == (ll_dev->next->dev.device_fh - 1)))
> +			/*
> +			 * Increment through the ll until we find un unused
> +			 * device_fh. Insert the device at that entry.
> +			 */
> +			while ((ll_dev->next != NULL) &&
> +				(ll_dev->dev.device_fh ==
> +					(ll_dev->next->dev.device_fh - 1)))
>  				ll_dev = ll_dev->next;
>  
>  			new_ll_dev->dev.device_fh = ll_dev->dev.device_fh + 1;
> @@ -352,7 +377,8 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
>  }
>  
>  /*
> - * Unmap any memory, close any file descriptors and free any memory owned by a device.
> + * Unmap any memory, close any file descriptors and
> + * free any memory owned by a device.
>   */
>  static void
>  cleanup_device(struct virtio_net *dev)
> @@ -386,6 +412,7 @@ free_device(struct virtio_net_config_ll *ll_dev)
>  	free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
>  	free(ll_dev);
>  }
> +
>  /*
>   * Remove an entry from the device configuration linked list.
>   */
> @@ -423,7 +450,10 @@ init_device(struct virtio_net *dev)
>  {
>  	uint64_t vq_offset;
>  
> -	/* Virtqueues have already been malloced so we don't want to set them to NULL. */
> +	/*
> +	 * Virtqueues have already been malloced so
> +	 * we don't want to set them to NULL.
> +	 */
>  	vq_offset = offsetof(struct virtio_net, mem);
>  
>  	/* Set everything to 0. */
> @@ -491,8 +521,8 @@ new_device(struct vhost_device_ctx ctx)
>  }
>  
>  /*
> - * Function is called from the CUSE release function. This function will cleanup
> - * the device and remove it from device configuration linked list.
> + * Function is called from the CUSE release function. This function will
> + * cleanup the device and remove it from device configuration linked list.
>   */
>  static void
>  destroy_device(struct vhost_device_ctx ctx)
> @@ -503,15 +533,19 @@ destroy_device(struct vhost_device_ctx ctx)
>  	/* Find the linked list entry for the device to be removed. */
>  	ll_dev_cur_ctx = get_config_ll_entry(ctx);
>  	while (ll_dev_cur != NULL) {
> -		/* If the device is found or a device that doesn't exist is found then it is removed. */
> +		/*
> +		 * If the device is found or
> +		 * a device that doesn't exist is found then it is removed.
> +		 */
>  		if (ll_dev_cur == ll_dev_cur_ctx) {
>  			/*
> -			 * If the device is running on a data core then call the function to remove it from
> -			 * the data core.
> +			 * If the device is running on a data core then call
> +			 * the function to remove it from the data core.
>  			 */
>  			if ((ll_dev_cur->dev.flags & VIRTIO_DEV_RUNNING))
>  				notify_ops->destroy_device(&(ll_dev_cur->dev));
> -			ll_dev_cur = rm_config_ll_entry(ll_dev_cur, ll_dev_last);
> +			ll_dev_cur = rm_config_ll_entry(ll_dev_cur,
> +					ll_dev_last);
>  		} else {
>  			ll_dev_last = ll_dev_cur;
>  			ll_dev_cur = ll_dev_cur->next;
> @@ -521,7 +555,8 @@ destroy_device(struct vhost_device_ctx ctx)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_OWNER
> - * This function just returns success at the moment unless the device hasn't been initialised.
> + * This function just returns success at the moment unless
> + * the device hasn't been initialised.
>   */
>  static int
>  set_owner(struct vhost_device_ctx ctx)
> @@ -571,7 +606,7 @@ get_features(struct vhost_device_ctx ctx, uint64_t *pu)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_FEATURES
> - * We receive the negotiated set of features supported by us and the virtio device.
> + * We receive the negotiated features supported by us and the virtio device.
>   */
>  static int
>  set_features(struct vhost_device_ctx ctx, uint64_t *pu)
> @@ -589,13 +624,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
>  
>  	/* Set the vhost_hlen depending on if VIRTIO_NET_F_MRG_RXBUF is set. */
>  	if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers enabled\n", dev->device_fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") Mergeable RX buffers enabled\n",
> +			dev->device_fh);
>  		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
>  			sizeof(struct virtio_net_hdr_mrg_rxbuf);
>  		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
>  			sizeof(struct virtio_net_hdr_mrg_rxbuf);
>  	} else {
> -		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers disabled\n", dev->device_fh);
> +		LOG_DEBUG(VHOST_CONFIG,
> +			"(%"PRIu64") Mergeable RX buffers disabled\n",
> +			dev->device_fh);
>  		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
>  			sizeof(struct virtio_net_hdr);
>  		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
> @@ -607,8 +646,8 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_MEM_TABLE
> - * This function creates and populates the memory structure for the device. This includes
> - * storing offsets used to translate buffer addresses.
> + * This function creates and populates the memory structure for the device.
> + * This includes storing offsets used to translate buffer addresses.
>   */
>  static int
>  set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
> @@ -634,7 +673,9 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
>  	mem = calloc(1, sizeof(struct virtio_memory) +
>  		(sizeof(struct virtio_memory_regions) * nregions));
>  	if (mem == NULL) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to allocate memory for dev->mem.\n", dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to allocate memory for dev->mem.\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> @@ -656,15 +697,18 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
>  			mem_regions[regionidx].userspace_addr;
>  
>  		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") REGION: %u - GPA: %p - QEMU VA: %p - SIZE (%"PRIu64")\n", dev->device_fh,
> -				regionidx, (void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
> -				(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
> -				mem->regions[regionidx].memory_size);
> +			regionidx,
> +			(void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
> +			(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
> +			mem->regions[regionidx].memory_size);
>  
>  		/*set the base address mapping*/
>  		if (mem->regions[regionidx].guest_phys_address == 0x0) {
> -			mem->base_address = mem->regions[regionidx].userspace_address;
> +			mem->base_address =
> +				mem->regions[regionidx].userspace_address;
>  			/* Map VM memory file */
> -			if (host_memory_map(dev, mem, ctx.pid, mem->base_address) != 0) {
> +			if (host_memory_map(dev, mem, ctx.pid,
> +				mem->base_address) != 0) {
>  				free(mem);
>  				return -1;
>  			}
> @@ -678,27 +722,42 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
>  		return -1;
>  	}
>  
> -	/* Check if all of our regions have valid mappings. Usually one does not exist in the QEMU memory file. */
> +	/*
> +	 * Check if all of our regions have valid mappings.
> +	 * Usually one does not exist in the QEMU memory file.
> +	 */
>  	valid_regions = mem->nregions;
>  	for (regionidx = 0; regionidx < mem->nregions; regionidx++) {
> -		if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
> -			(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size)))
> +		if ((mem->regions[regionidx].userspace_address <
> +			mem->base_address) ||
> +			(mem->regions[regionidx].userspace_address >
> +			(mem->base_address + mem->mapped_size)))
>  				valid_regions--;
>  	}
>  
> -	/* If a region does not have a valid mapping we rebuild our memory struct to contain only valid entries. */
> +	/*
> +	 * If a region does not have a valid mapping,
> +	 * we rebuild our memory struct to contain only valid entries.
> +	 */
>  	if (valid_regions != mem->nregions) {
>  		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Not all memory regions exist in the QEMU mem file. Re-populating mem structure\n",
>  			dev->device_fh);
>  
> -		/* Re-populate the memory structure with only valid regions. Invalid regions are over-written with memmove. */
> +		/*
> +		 * Re-populate the memory structure with only valid regions.
> +		 * Invalid regions are over-written with memmove.
> +		 */
>  		valid_regions = 0;
>  
>  		for (regionidx = mem->nregions; 0 != regionidx--;) {
> -			if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
> -					(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size))) {
> -				memmove(&mem->regions[regionidx], &mem->regions[regionidx + 1],
> -					sizeof(struct virtio_memory_regions) * valid_regions);
> +			if ((mem->regions[regionidx].userspace_address <
> +				mem->base_address) ||
> +				(mem->regions[regionidx].userspace_address >
> +				(mem->base_address + mem->mapped_size))) {
> +				memmove(&mem->regions[regionidx],
> +					&mem->regions[regionidx + 1],
> +					sizeof(struct virtio_memory_regions) *
> +						valid_regions);
>  			} else {
>  				valid_regions++;
>  			}
> @@ -708,12 +767,16 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
>  	dev->mem = mem;
>  
>  	/*
> -	 * Calculate the address offset for each region. This offset is used to identify the vhost virtual address
> +	 * Calculate the address offset for each region.
> +	 * This offset is used to identify the vhost virtual address
>  	 * corresponding to a QEMU guest physical address.
>  	 */
>  	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
> -		dev->mem->regions[regionidx].address_offset = dev->mem->regions[regionidx].userspace_address - dev->mem->base_address
> -			+ dev->mem->mapped_address - dev->mem->regions[regionidx].guest_phys_address;
> +		dev->mem->regions[regionidx].address_offset =
> +			dev->mem->regions[regionidx].userspace_address -
> +				dev->mem->base_address +
> +				dev->mem->mapped_address -
> +				dev->mem->regions[regionidx].guest_phys_address;
>  
>  	}
>  	return 0;
> @@ -732,7 +795,7 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
>  	dev->virtqueue[state->index]->size = state->num;
>  
>  	return 0;
> @@ -740,8 +803,8 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_VRING_ADDR
> - * The virtio device sends us the desc, used and avail ring addresses. This function
> - * then converts these to our address space.
> + * The virtio device sends us the desc, used and avail ring addresses.
> + * This function then converts these to our address space.
>   */
>  static int
>  set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
> @@ -753,31 +816,43 @@ set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* addr->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* addr->index refers to the queue index. The txq 1, rxq is 0. */
>  	vq = dev->virtqueue[addr->index];
>  
>  	/* The addresses are converted from QEMU virtual to Vhost virtual. */
> -	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev, addr->desc_user_addr);
> +	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev,
> +			addr->desc_user_addr);
>  	if (vq->desc == 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find descriptor ring address.\n", dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to find desc ring address.\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> -	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev, addr->avail_user_addr);
> +	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev,
> +			addr->avail_user_addr);
>  	if (vq->avail == 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find available ring address.\n", dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to find avail ring address.\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> -	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev, addr->used_user_addr);
> +	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev,
> +			addr->used_user_addr);
>  	if (vq->used == 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find used ring address.\n", dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") Failed to find used ring address.\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n", dev->device_fh, vq->desc);
> -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n", dev->device_fh, vq->avail);
> -	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n", dev->device_fh, vq->used);
> +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n",
> +			dev->device_fh, vq->desc);
> +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n",
> +			dev->device_fh, vq->avail);
> +	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n",
> +			dev->device_fh, vq->used);
>  
>  	return 0;
>  }
> @@ -795,7 +870,7 @@ set_vring_base(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
>  	dev->virtqueue[state->index]->last_used_idx = state->num;
>  	dev->virtqueue[state->index]->last_used_idx_res = state->num;
>  
> @@ -817,15 +892,15 @@ get_vring_base(struct vhost_device_ctx ctx, uint32_t index,
>  		return -1;
>  
>  	state->index = index;
> -	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
>  	state->num = dev->virtqueue[state->index]->last_used_idx;
>  
>  	return 0;
>  }
>  
>  /*
> - * This function uses the eventfd_link kernel module to copy an eventfd file descriptor
> - * provided by QEMU in to our process space.
> + * This function uses the eventfd_link kernel module to copy an eventfd file
> + * descriptor provided by QEMU in to our process space.
>   */
>  static int
>  eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
> @@ -835,7 +910,9 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
>  	/* Open the character device to the kernel module. */
>  	eventfd_link = open(eventfd_cdev, O_RDWR);
>  	if (eventfd_link < 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") eventfd_link module is not loaded\n",  dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") eventfd_link module is not loaded\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> @@ -844,18 +921,19 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
>  	close(eventfd_link);
>  
>  	if (ret < 0) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") EVENTFD_COPY ioctl failed\n",  dev->device_fh);
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"(%"PRIu64") EVENTFD_COPY ioctl failed\n",
> +			dev->device_fh);
>  		return -1;
>  	}
>  
> -
>  	return 0;
>  }
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_VRING_CALL
> - * The virtio device sends an eventfd to interrupt the guest. This fd gets copied in
> - * to our process space.
> + * The virtio device sends an eventfd to interrupt the guest. This fd gets
> + * copied into our process space.
>   */
>  static int
>  set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> @@ -868,7 +946,7 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
>  	vq = dev->virtqueue[file->index];
>  
>  	if (vq->kickfd)
> @@ -888,8 +966,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_SET_VRING_KICK
> - * The virtio device sends an eventfd that it can use to notify us. This fd gets copied in
> - * to our process space.
> + * The virtio device sends an eventfd that it can use to notify us.
> + * This fd gets copied into our process space.
>   */
>  static int
>  set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> @@ -902,7 +980,7 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
>  	vq = dev->virtqueue[file->index];
>  
>  	if (vq->callfd)
> @@ -922,10 +1000,12 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  
>  /*
>   * Called from CUSE IOCTL: VHOST_NET_SET_BACKEND
> - * To complete device initialisation when the virtio driver is loaded we are provided with a
> - * valid fd for a tap device (not used by us). If this happens then we can add the device to a
> - * data core. When the virtio driver is removed we get fd=-1. At that point we remove the device
> - * from the data core. The device will still exist in the device configuration linked list.
> + * To complete device initialisation when the virtio driver is loaded,
> + * we are provided with a valid fd for a tap device (not used by us).
> + * If this happens then we can add the device to a data core.
> + * When the virtio driver is removed we get fd=-1.
> + * At that point we remove the device from the data core.
> + * The device will still exist in the device configuration linked list.
>   */
>  static int
>  set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
> @@ -936,10 +1016,13 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  	if (dev == NULL)
>  		return -1;
>  
> -	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
> +	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
>  	dev->virtqueue[file->index]->backend = file->fd;
>  
> -	/* If the device isn't already running and both backend fds are set we add the device. */
> +	/*
> +	 * If the device isn't already running and both backend fds are set,
> +	 * we add the device.
> +	 */
>  	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
>  		if (((int)dev->virtqueue[VIRTIO_TXQ]->backend != VIRTIO_DEV_STOPPED) &&
>  			((int)dev->virtqueue[VIRTIO_RXQ]->backend != VIRTIO_DEV_STOPPED))
> @@ -952,8 +1035,8 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
>  }
>  
>  /*
> - * Function pointers are set for the device operations to allow CUSE to call functions
> - * when an IOCTL, device_add or device_release is received.
> + * Function pointers are set for the device operations to allow CUSE to call
> + * functions when an IOCTL, device_add or device_release is received.
>   */
>  static const struct vhost_net_device_ops vhost_device_ops = {
>  	.new_device = new_device,
> @@ -991,11 +1074,13 @@ int rte_vhost_enable_guest_notification(struct virtio_net *dev,
>  	uint16_t queue_id, int enable)
>  {
>  	if (enable) {
> -		RTE_LOG(ERR, VHOST_CONFIG, "guest notification isn't supported.\n");
> +		RTE_LOG(ERR, VHOST_CONFIG,
> +			"guest notification isn't supported.\n");
>  		return -1;
>  	}
>  
> -	dev->virtqueue[queue_id]->used->flags = enable ? 0 : VRING_USED_F_NO_NOTIFY;
> +	dev->virtqueue[queue_id]->used->flags =
> +		enable ? 0 : VRING_USED_F_NO_NOTIFY;
>  	return 0;
>  }
>  
> 


-- 
Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes
@ 2014-11-05  4:42 Huawei Xie
  2014-11-05  9:09 ` Thomas Monjalon
  0 siblings, 1 reply; 10+ messages in thread
From: Huawei Xie @ 2014-11-05  4:42 UTC (permalink / raw)
  To: dev

This patch fixes code style issues and refines some comments in vhost library.


---
 lib/librte_vhost/eventfd_link/eventfd_link.c | 244 ++++++++++-----------
 lib/librte_vhost/eventfd_link/eventfd_link.h | 127 ++++++-----
 lib/librte_vhost/rte_virtio_net.h            |   3 +-
 lib/librte_vhost/vhost-net-cdev.c            | 187 +++++++++-------
 lib/librte_vhost/vhost_rxtx.c                |  13 +-
 lib/librte_vhost/virtio-net.c                | 317 +++++++++++++++++----------
 6 files changed, 494 insertions(+), 397 deletions(-)

diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.c b/lib/librte_vhost/eventfd_link/eventfd_link.c
index fc0653a..542ec2c 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.c
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.c
@@ -1,26 +1,26 @@
 /*-
- *  * GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *   */
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ */
 
 #include <linux/eventfd.h>
 #include <linux/miscdevice.h>
@@ -42,15 +42,15 @@
  * get_files_struct is copied from fs/file.c
  */
 struct files_struct *
-get_files_struct (struct task_struct *task)
+get_files_struct(struct task_struct *task)
 {
 	struct files_struct *files;
 
-	task_lock (task);
+	task_lock(task);
 	files = task->files;
 	if (files)
-		atomic_inc (&files->count);
-	task_unlock (task);
+		atomic_inc(&files->count);
+	task_unlock(task);
 
 	return files;
 }
@@ -59,17 +59,15 @@ get_files_struct (struct task_struct *task)
  * put_files_struct is extracted from fs/file.c
  */
 void
-put_files_struct (struct files_struct *files)
+put_files_struct(struct files_struct *files)
 {
-	if (atomic_dec_and_test (&files->count))
-	{
-		BUG ();
-	}
+	if (atomic_dec_and_test(&files->count))
+		BUG();
 }
 
 
 static long
-eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
+eventfd_link_ioctl(struct file *f, unsigned int ioctl, unsigned long arg)
 {
 	void __user *argp = (void __user *) arg;
 	struct task_struct *task_target = NULL;
@@ -78,96 +76,88 @@ eventfd_link_ioctl (struct file *f, unsigned int ioctl, unsigned long arg)
 	struct fdtable *fdt;
 	struct eventfd_copy eventfd_copy;
 
-	switch (ioctl)
-	{
-		case EVENTFD_COPY:
-			if (copy_from_user (&eventfd_copy, argp, sizeof (struct eventfd_copy)))
-				return -EFAULT;
-
-			/*
-			 * Find the task struct for the target pid
-			 */
-			task_target =
-				pid_task (find_vpid (eventfd_copy.target_pid), PIDTYPE_PID);
-			if (task_target == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get mem ctx for target pid\n");
-				return -EFAULT;
-			}
-
-			files = get_files_struct (current);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.source_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
-					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from source pid\n");
-				return 0;
-			}
-
-			/*
-			 * Release the existing eventfd in the source process
-			 */
-			spin_lock (&files->file_lock);
-			filp_close (file, files);
-			fdt = files_fdtable (files);
-			fdt->fd[eventfd_copy.source_fd] = NULL;
-			spin_unlock (&files->file_lock);
-
-			/*
-			 * Find the file struct associated with the target fd.
-			 */
-
-			files = get_files_struct (task_target);
-			if (files == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get files struct\n");
-				return -EFAULT;
-			}
-
-			rcu_read_lock ();
-			file = fcheck_files (files, eventfd_copy.target_fd);
-			if (file)
-			{
-				if (file->f_mode & FMODE_PATH
-						|| !atomic_long_inc_not_zero (&file->f_count))
+	switch (ioctl) {
+	case EVENTFD_COPY:
+		if (copy_from_user(&eventfd_copy, argp,
+			sizeof(struct eventfd_copy)))
+			return -EFAULT;
+
+		/*
+		 * Find the task struct for the target pid
+		 */
+		task_target =
+			pid_task(find_vpid(eventfd_copy.target_pid), PIDTYPE_PID);
+		if (task_target == NULL) {
+			printk(KERN_DEBUG "Failed to get mem ctx for target pid\n");
+			return -EFAULT;
+		}
+
+		files = get_files_struct(current);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.source_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
+				file = NULL;
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
+
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from source pid\n");
+			return 0;
+		}
+
+		/*
+		 * Release the existing eventfd in the source process
+		 */
+		spin_lock(&files->file_lock);
+		filp_close(file, files);
+		fdt = files_fdtable(files);
+		fdt->fd[eventfd_copy.source_fd] = NULL;
+		spin_unlock(&files->file_lock);
+
+		/*
+		 * Find the file struct associated with the target fd.
+		 */
+
+		files = get_files_struct(task_target);
+		if (files == NULL) {
+			printk(KERN_DEBUG "Failed to get files struct\n");
+			return -EFAULT;
+		}
+
+		rcu_read_lock();
+		file = fcheck_files(files, eventfd_copy.target_fd);
+		if (file) {
+			if (file->f_mode & FMODE_PATH ||
+				!atomic_long_inc_not_zero(&file->f_count))
 					file = NULL;
-			}
-			rcu_read_unlock ();
-			put_files_struct (files);
-
-			if (file == NULL)
-			{
-				printk (KERN_DEBUG "Failed to get file from target pid\n");
-				return 0;
-			}
+		}
+		rcu_read_unlock();
+		put_files_struct(files);
 
+		if (file == NULL) {
+			printk(KERN_DEBUG "Failed to get file from target pid\n");
+			return 0;
+		}
 
-			/*
-			 * Install the file struct from the target process into the
-			 * file desciptor of the source process,
-			 */
+		/*
+		 * Install the file struct from the target process into the
+		 * file desciptor of the source process,
+		 */
 
-			fd_install (eventfd_copy.source_fd, file);
+		fd_install(eventfd_copy.source_fd, file);
 
-			return 0;
+		return 0;
 
-		default:
-			return -ENOIOCTLCMD;
+	default:
+		return -ENOIOCTLCMD;
 	}
 }
 
@@ -183,23 +173,23 @@ static struct miscdevice eventfd_link_misc = {
 };
 
 static int __init
-eventfd_link_init (void)
+eventfd_link_init(void)
 {
-	return misc_register (&eventfd_link_misc);
+	return misc_register(&eventfd_link_misc);
 }
 
-module_init (eventfd_link_init);
+module_init(eventfd_link_init);
 
 static void __exit
-eventfd_link_exit (void)
+eventfd_link_exit(void)
 {
-	misc_deregister (&eventfd_link_misc);
+	misc_deregister(&eventfd_link_misc);
 }
 
-module_exit (eventfd_link_exit);
+module_exit(eventfd_link_exit);
 
-MODULE_VERSION ("0.0.1");
-MODULE_LICENSE ("GPL v2");
-MODULE_AUTHOR ("Anthony Fee");
-MODULE_DESCRIPTION ("Link eventfd");
-MODULE_ALIAS ("devname:eventfd-link");
+MODULE_VERSION("0.0.1");
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Anthony Fee");
+MODULE_DESCRIPTION("Link eventfd");
+MODULE_ALIAS("devname:eventfd-link");
diff --git a/lib/librte_vhost/eventfd_link/eventfd_link.h b/lib/librte_vhost/eventfd_link/eventfd_link.h
index a32a8dd..ea619ec 100644
--- a/lib/librte_vhost/eventfd_link/eventfd_link.h
+++ b/lib/librte_vhost/eventfd_link/eventfd_link.h
@@ -1,79 +1,76 @@
 /*-
- *  * This file is provided under a dual BSD/GPLv2 license.  When using or
- *  *   redistributing this file, you may do so under either license.
- *  *
- *  *   GPL LICENSE SUMMARY
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *
- *  *   This program is free software; you can redistribute it and/or modify
- *  *   it under the terms of version 2 of the GNU General Public License as
- *  *   published by the Free Software Foundation.
- *  *
- *  *   This program is distributed in the hope that it will be useful, but
- *  *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  *   General Public License for more details.
- *  *
- *  *   You should have received a copy of the GNU General Public License
- *  *   along with this program; if not, write to the Free Software
- *  *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *  *   The full GNU General Public License is included in this distribution
- *  *   in the file called LICENSE.GPL.
- *  *
- *  *   Contact Information:
- *  *   Intel Corporation
- *  *
- *  *   BSD LICENSE
- *  *
- *  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- *  *   All rights reserved.
- *  *
- *  *   Redistribution and use in source and binary forms, with or without
- *  *   modification, are permitted provided that the following conditions
- *  *   are met:
- *  *
- *  *     * Redistributions of source code must retain the above copyright
- *  *       notice, this list of conditions and the following disclaimer.
- *  *     * Redistributions in binary form must reproduce the above copyright
- *  *       notice, this list of conditions and the following disclaimer in
- *  *       the documentation and/or other materials provided with the
- *  *       distribution.
- *  *     * Neither the name of Intel Corporation nor the names of its
- *  *       contributors may be used to endorse or promote products derived
- *  *       from this software without specific prior written permission.
- *  *
- *  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *  *
- *   */
+ *  This file is provided under a dual BSD/GPLv2 license.  When using or
+ *  redistributing this file, you may do so under either license.
+ *
+ * GPL LICENSE SUMMARY
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of version 2 of the GNU General Public License as
+ *   published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful, but
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *   General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *   The full GNU General Public License is included in this distribution
+ *   in the file called LICENSE.GPL.
+ *
+ *   Contact Information:
+ *   Intel Corporation
+ *
+ * BSD LICENSE
+ *
+ *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *   Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *   Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ *   Neither the name of Intel Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
 
 #ifndef _EVENTFD_LINK_H_
 #define _EVENTFD_LINK_H_
 
 /*
- *	ioctl to copy an fd entry in calling process to an fd in a target process
+ * ioctl to copy an fd entry in calling process to an fd in a target process
  */
 #define EVENTFD_COPY 1
 
 /*
- *	arguements for the EVENTFD_COPY ioctl
+ * arguements for the EVENTFD_COPY ioctl
  */
 struct eventfd_copy {
-	// fd in the target pid
-    unsigned target_fd;
-	// fd in the calling pid
-    unsigned source_fd;
-	// pid of the target pid
-    pid_t target_pid;
+	unsigned target_fd; /* fd in the target pid */
+	unsigned source_fd; /* fd in the calling pid */
+	pid_t target_pid; /* pid of the target pid */
 };
 #endif /* _EVENTFD_LINK_H_ */
diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index b6548a1..00b1328 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -90,8 +90,7 @@ struct vhost_virtqueue {
 /**
  * Device structure contains all configuration information relating to the device.
  */
-struct virtio_net
-{
+struct virtio_net {
 	struct vhost_virtqueue	*virtqueue[VIRTIO_QNUM];	/**< Contains all virtqueue information. */
 	struct virtio_memory	*mem;		/**< QEMU memory and memory region information. */
 	uint64_t		features;	/**< Negotiated feature set. */
diff --git a/lib/librte_vhost/vhost-net-cdev.c b/lib/librte_vhost/vhost-net-cdev.c
index 91ff0d8..57c76cb 100644
--- a/lib/librte_vhost/vhost-net-cdev.c
+++ b/lib/librte_vhost/vhost-net-cdev.c
@@ -46,21 +46,21 @@
 
 #include "vhost-net-cdev.h"
 
-#define FUSE_OPT_DUMMY		"\0\0"
-#define FUSE_OPT_FORE		"-f\0\0"
-#define FUSE_OPT_NOMULTI	"-s\0\0"
+#define FUSE_OPT_DUMMY "\0\0"
+#define FUSE_OPT_FORE  "-f\0\0"
+#define FUSE_OPT_NOMULTI "-s\0\0"
 
-static const uint32_t	default_major = 231;
-static const uint32_t	default_minor = 1;
-static const char	cuse_device_name[]	= "/dev/cuse";
-static const char	default_cdev[] = "vhost-net";
+static const uint32_t default_major = 231;
+static const uint32_t default_minor = 1;
+static const char cuse_device_name[] = "/dev/cuse";
+static const char default_cdev[] = "vhost-net";
 
-static struct fuse_session			*session;
-static struct vhost_net_device_ops	const *ops;
+static struct fuse_session *session;
+static struct vhost_net_device_ops const *ops;
 
 /*
- * Returns vhost_device_ctx from given fuse_req_t. The index is populated later when
- * the device is added to the device linked list.
+ * Returns vhost_device_ctx from given fuse_req_t. The index is populated later
+ * when the device is added to the device linked list.
  */
 static struct vhost_device_ctx
 fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
@@ -75,7 +75,8 @@ fuse_req_to_vhost_ctx(fuse_req_t req, struct fuse_file_info *fi)
 }
 
 /*
- * When the device is created in QEMU it gets initialised here and added to the device linked list.
+ * When the device is created in QEMU it gets initialised here and
+ * added to the device linked list.
  */
 static void
 vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
@@ -91,7 +92,8 @@ vhost_net_open(fuse_req_t req, struct fuse_file_info *fi)
 
 	fi->fh = err;
 
-	RTE_LOG(INFO, VHOST_CONFIG, "(%"PRIu64") Device configuration started\n", fi->fh);
+	RTE_LOG(INFO, VHOST_CONFIG,
+		"(%"PRIu64") Device configuration started\n", fi->fh);
 	fuse_reply_open(req, fi);
 }
 
@@ -113,8 +115,8 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate code for CUSE IOCTL
  * Implicit arguments: ctx, req, result.
  */
-#define VHOST_IOCTL(func) do {			\
-	result = (func)(ctx);			\
+#define VHOST_IOCTL(func) do {	\
+	result = (func)(ctx);	\
 	fuse_reply_ioctl(req, result, NULL, 0);	\
 } while (0)
 
@@ -122,57 +124,58 @@ vhost_net_release(fuse_req_t req, struct fuse_file_info *fi)
  * Boilerplate IOCTL RETRY
  * Implicit arguments: req.
  */
-#define VHOST_IOCTL_RETRY(size_r, size_w) do {		\
-	struct iovec iov_r = { arg, (size_r) };		\
-	struct iovec iov_w = { arg, (size_w) };		\
-	fuse_reply_ioctl_retry(req, &iov_r, (size_r)?1:0, &iov_w, (size_w)?1:0);	\
+#define VHOST_IOCTL_RETRY(size_r, size_w) do {	\
+	struct iovec iov_r = { arg, (size_r) };	\
+	struct iovec iov_w = { arg, (size_w) };	\
+	fuse_reply_ioctl_retry(req, &iov_r,	\
+		(size_r) ? 1 : 0, &iov_w, (size_w) ? 1 : 0);\
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_R(type, var, func) do {		\
-	if (!in_bufsz) {				\
-		VHOST_IOCTL_RETRY(sizeof(type), 0);	\
-	} else {					\
-		(var) = *(const type*) in_buf;		\
-		result = func(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, NULL, 0);	\
-	}						\
+#define VHOST_IOCTL_R(type, var, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type), 0);\
+	} else {	\
+		(var) = *(const type*)in_buf;	\
+		result = func(ctx, &(var));	\
+		fuse_reply_ioctl(req, result, NULL, 0);\
+	}	\
 } while (0)
 
 /*
- *	Boilerplate code for CUSE Write IOCTL
+ * Boilerplate code for CUSE Write IOCTL
  * Implicit arguments: ctx, req, result, out_bufsz.
  */
-#define	VHOST_IOCTL_W(type, var, func) do {		\
-	if (!out_bufsz) {				\
-		VHOST_IOCTL_RETRY(0, sizeof(type));	\
-	} else {					\
-		result = (func)(ctx, &(var));		\
-		fuse_reply_ioctl(req, result, &(var), sizeof(type));	\
-	}								\
+#define VHOST_IOCTL_W(type, var, func) do {	\
+	if (!out_bufsz) {	\
+		VHOST_IOCTL_RETRY(0, sizeof(type));\
+	} else {	\
+		result = (func)(ctx, &(var));\
+		fuse_reply_ioctl(req, result, &(var), sizeof(type));\
+	} \
 } while (0)
 
 /*
  * Boilerplate code for CUSE Read/Write IOCTL
  * Implicit arguments: ctx, req, result, in_bufsz, in_buf.
  */
-#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {		\
-	if (!in_bufsz) {						\
-		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));	\
-	} else {							\
-		(var1) = *(const type1*) (in_buf);			\
-		result = (func)(ctx, (var1), &(var2));			\
-		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));	\
-	}								\
+#define VHOST_IOCTL_RW(type1, var1, type2, var2, func) do {	\
+	if (!in_bufsz) {	\
+		VHOST_IOCTL_RETRY(sizeof(type1), sizeof(type2));\
+	} else {	\
+		(var1) = *(const type1*) (in_buf);	\
+		result = (func)(ctx, (var1), &(var2));	\
+		fuse_reply_ioctl(req, result, &(var2), sizeof(type2));\
+	}	\
 } while (0)
 
 /*
- * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on
- * the type of IOCTL a buffer is requested to read or to write. This
- * request is handled by FUSE and the buffer is then given to CUSE.
+ * The IOCTLs are handled using CUSE/FUSE in userspace. Depending on the type
+ * of IOCTL a buffer is requested to read or to write. This request is handled
+ * by FUSE and the buffer is then given to CUSE.
  */
 static void
 vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
@@ -189,33 +192,39 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 
 	switch (cmd) {
 	case VHOST_NET_SET_BACKEND:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_NET_SET_BACKEND\n", ctx.fh);
 		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_backend);
 		break;
 
 	case VHOST_GET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_W(uint64_t, features, ops->get_features);
 		break;
 
 	case VHOST_SET_FEATURES:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_FEATURES\n", ctx.fh);
 		VHOST_IOCTL_R(uint64_t, features, ops->set_features);
 		break;
 
 	case VHOST_RESET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_RESET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->reset_owner);
 		break;
 
 	case VHOST_SET_OWNER:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_OWNER\n", ctx.fh);
 		VHOST_IOCTL(ops->set_owner);
 		break;
 
 	case VHOST_SET_MEM_TABLE:
 		/*TODO fix race condition.*/
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
 		static struct vhost_memory mem_temp;
 
 		switch (in_bufsz) {
@@ -227,7 +236,9 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			mem_temp = *(const struct vhost_memory *) in_buf;
 
 			if (mem_temp.nregions > 0) {
-				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) + (sizeof(struct vhost_memory_region) * mem_temp.nregions), 0);
+				VHOST_IOCTL_RETRY(sizeof(struct vhost_memory) +
+					(sizeof(struct vhost_memory_region) *
+						mem_temp.nregions), 0);
 			} else {
 				result = -1;
 				fuse_reply_ioctl(req, result, NULL, 0);
@@ -235,56 +246,70 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
 			break;
 
 		default:
-			result = ops->set_mem_table(ctx, in_buf, mem_temp.nregions);
+			result = ops->set_mem_table(ctx,
+					in_buf, mem_temp.nregions);
 			if (result)
 				fuse_reply_err(req, EINVAL);
 			else
 				fuse_reply_ioctl(req, result, NULL, 0);
-
 		}
-
 		break;
 
 	case VHOST_SET_VRING_NUM:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_num);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_NUM\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_num);
 		break;
 
 	case VHOST_SET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_state, state, ops->set_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_state, state,
+			ops->set_vring_base);
 		break;
 
 	case VHOST_GET_VRING_BASE:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
-		VHOST_IOCTL_RW(uint32_t, index, struct vhost_vring_state, state, ops->get_vring_base);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_GET_VRING_BASE\n", ctx.fh);
+		VHOST_IOCTL_RW(uint32_t, index,
+			struct vhost_vring_state, state, ops->get_vring_base);
 		break;
 
 	case VHOST_SET_VRING_ADDR:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_addr, addr, ops->set_vring_addr);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_ADDR\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_addr, addr,
+			ops->set_vring_addr);
 		break;
 
 	case VHOST_SET_VRING_KICK:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_kick);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_KICK\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_kick);
 		break;
 
 	case VHOST_SET_VRING_CALL:
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
-		VHOST_IOCTL_R(struct vhost_vring_file, file, ops->set_vring_call);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: VHOST_SET_VRING_CALL\n", ctx.fh);
+		VHOST_IOCTL_R(struct vhost_vring_file, file,
+			ops->set_vring_call);
 		break;
 
 	default:
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: DOESN NOT EXIST\n", ctx.fh);
 		result = -1;
 		fuse_reply_ioctl(req, result, NULL, 0);
 	}
 
 	if (result < 0)
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: FAIL\n", ctx.fh);
 	else
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") IOCTL: SUCCESS\n", ctx.fh);
 }
 
 /*
@@ -297,8 +322,8 @@ static const struct cuse_lowlevel_ops vhost_net_ops = {
 };
 
 /*
- * cuse_info is populated and used to register the cuse device. vhost_net_device_ops are
- * also passed when the device is registered in main.c.
+ * cuse_info is populated and used to register the cuse device.
+ * vhost_net_device_ops are also passed when the device is registered in app.
  */
 int
 rte_vhost_driver_register(const char *dev_name)
@@ -314,20 +339,23 @@ rte_vhost_driver_register(const char *dev_name)
 	char *fuse_argv[] = {fuse_opt_dummy, fuse_opt_fore, fuse_opt_nomulti};
 
 	if (access(cuse_device_name, R_OK | W_OK) < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s can't be accessed, maybe not exist\n", cuse_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s can't be accessed, maybe not exist\n",
+			cuse_device_name);
 		return -1;
 	}
 
 	/*
-	 * The device name is created. This is passed to QEMU so that it can register
-	 * the device with our application.
+	 * The device name is created. This is passed to QEMU so that it can
+	 * register the device with our application.
 	 */
 	snprintf(device_name, PATH_MAX, "DEVNAME=%s", dev_name);
 	snprintf(char_device_name, PATH_MAX, "/dev/%s", dev_name);
 
 	/* Check if device already exists. */
 	if (access(char_device_name, F_OK) != -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "Character device %s already exists\n", char_device_name);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"char device %s already exists\n", char_device_name);
 		return -1;
 	}
 
@@ -341,7 +369,7 @@ rte_vhost_driver_register(const char *dev_name)
 	ops = get_virtio_net_callbacks();
 
 	session = cuse_lowlevel_setup(3, fuse_argv,
-				&cuse_info, &vhost_net_ops, 0, NULL);
+			&cuse_info, &vhost_net_ops, 0, NULL);
 	if (session == NULL)
 		return -1;
 
@@ -349,7 +377,8 @@ rte_vhost_driver_register(const char *dev_name)
 }
 
 /**
- * The CUSE session is launched allowing the application to receive open, release and ioctl calls.
+ * The CUSE session is launched allowing the application to receive open,
+ * release and ioctl calls.
  */
 int
 rte_vhost_driver_session_start(void)
diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 84ec0e8..ccfd82f 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -45,7 +45,7 @@
 /**
  * This function adds buffers to the virtio devices RX virtqueue. Buffers can
  * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
+ * count is returned to indicate the number of packets that are succesfully
  * added to the RX queue. This function works when mergeable is disabled.
  */
 static inline uint32_t __attribute__((always_inline))
@@ -76,7 +76,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 	count = (count > MAX_PKT_BURST) ? MAX_PKT_BURST : count;
 
 	/*
-	 * As many data cores may want access to available buffers, 
+	 * As many data cores may want access to available buffers,
 	 * they need to be reserved.
 	 */
 	do {
@@ -143,7 +143,8 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 		}
 
 		/* Update used ring with desc information */
-		vq->used->ring[res_cur_idx & (vq->size - 1)].id = head[packet_success];
+		vq->used->ring[res_cur_idx & (vq->size - 1)].id =
+							head[packet_success];
 		vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
 
 		/* Copy mbuf data to buffer */
@@ -389,10 +390,7 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 }
 
 /*
- * This function adds buffers to the virtio devices RX virtqueue. Buffers can
- * be received from the physical port or from another virtio device. A packet
- * count is returned to indicate the number of packets that were succesfully
- * added to the RX queue. This function works for mergeable RX.
+ * This function works for mergeable RX.
  */
 static inline uint32_t __attribute__((always_inline))
 virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
@@ -729,5 +727,4 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, uint16_t queue_id,
 	if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT))
 		eventfd_write((int)vq->kickfd, 1);
 	return entry_success;
-
 }
diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
index 8015dd8..c07a11e 100644
--- a/lib/librte_vhost/virtio-net.c
+++ b/lib/librte_vhost/virtio-net.c
@@ -52,27 +52,27 @@
 #include "vhost-net-cdev.h"
 #include "eventfd_link/eventfd_link.h"
 
-/**
+/*
  * Device linked list structure for configuration.
  */
 struct virtio_net_config_ll {
-	struct virtio_net		dev;	/* Virtio device.*/
-	struct virtio_net_config_ll	*next;	/* Next entry on linked list.*/
+	struct virtio_net dev;			/* Virtio device.*/
+	struct virtio_net_config_ll *next;	/* Next dev on linked list.*/
 };
 
 const char eventfd_cdev[] = "/dev/eventfd-link";
 
-/* device ops to add/remove device to data core. */
+/* device ops to add/remove device to/from data core. */
 static struct virtio_net_device_ops const *notify_ops;
-/* Root address of the linked list in the configuration core. */
-static struct virtio_net_config_ll	*ll_root;
+/* root address of the linked list of managed virtio devices */
+static struct virtio_net_config_ll *ll_root;
 
-/* Features supported by this application. RX merge buffers are enabled by default. */
+/* Features supported by this lib. */
 #define VHOST_SUPPORTED_FEATURES (1ULL << VIRTIO_NET_F_MRG_RXBUF)
 static uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;
 
 /* Line size for reading maps file. */
-const uint32_t BUFSIZE = PATH_MAX;
+static const uint32_t BUFSIZE = PATH_MAX;
 
 /* Size of prot char array in procmap. */
 #define PROT_SZ 5
@@ -82,19 +82,19 @@ const uint32_t BUFSIZE = PATH_MAX;
 
 /* Structure containing information gathered from maps file. */
 struct procmap {
-	uint64_t	va_start;	/* Start virtual address in file. */
-	uint64_t	len;		/* Size of file. */
-	uint64_t	pgoff;		/* Not used. */
-	uint32_t	maj;		/* Not used. */
-	uint32_t	min;		/* Not used. */
-	uint32_t	ino;		/* Not used. */
-	char		prot[PROT_SZ];	/* Not used. */
-	char		fname[PATH_MAX];/* File name. */
+	uint64_t va_start;	/* Start virtual address in file. */
+	uint64_t len;		/* Size of file. */
+	uint64_t pgoff;		/* Not used. */
+	uint32_t maj;		/* Not used. */
+	uint32_t min;		/* Not used. */
+	uint32_t ino;		/* Not used. */
+	char prot[PROT_SZ];	/* Not used. */
+	char fname[PATH_MAX];	/* File name. */
 };
 
 /*
- * Converts QEMU virtual address to Vhost virtual address. This function is used
- * to convert the ring addresses to our address space.
+ * Converts QEMU virtual address to Vhost virtual address. This function is
+ * used to convert the ring addresses to our address space.
  */
 static uint64_t
 qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
@@ -107,8 +107,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
 		region = &dev->mem->regions[regionidx];
 		if ((qemu_va >= region->userspace_address) &&
-				(qemu_va <= region->userspace_address +
-				region->memory_size)) {
+			(qemu_va <= region->userspace_address +
+			region->memory_size)) {
 			vhost_va = dev->mem->mapped_address + qemu_va -
 					dev->mem->base_address;
 			break;
@@ -118,7 +118,8 @@ qva_to_vva(struct virtio_net *dev, uint64_t qemu_va)
 }
 
 /*
- * Locate the file containing QEMU's memory space and map it to our address space.
+ * Locate the file containing QEMU's memory space and
+ * map it to our address space.
  */
 static int
 host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
@@ -134,10 +135,10 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	char procdir[PATH_MAX];
 	char resolved_path[PATH_MAX];
 	char *path = NULL;
-	FILE		*fmap;
-	void		*map;
-	uint8_t		found = 0;
-	char		line[BUFSIZE];
+	FILE *fmap;
+	void *map;
+	uint8_t found = 0;
+	char line[BUFSIZE];
 	char dlm[] = "-   :   ";
 	char *str, *sp, *in[PROCMAP_SZ];
 	char *end = NULL;
@@ -159,7 +160,7 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	while (fgets(line, BUFSIZE, fmap) != 0) {
 		str = line;
 		errno = 0;
-		/* Split line in to fields. */
+		/* Split line into fields. */
 		for (i = 0; i < PROCMAP_SZ; i++) {
 			in[i] = strtok_r(str, &dlm[i], &sp);
 			if ((in[i] == NULL) || (errno != 0)) {
@@ -171,37 +172,43 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 
 		/* Convert/Copy each field as needed. */
 		procmap.va_start = strtoull(in[0], &end, 16);
-		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[0] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.len = strtoull(in[1], &end, 16);
-		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[1] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.pgoff = strtoull(in[3], &end, 16);
-		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[3] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.maj = strtoul(in[4], &end, 16);
-		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[4] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.min = strtoul(in[5], &end, 16);
-		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[5] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
 
 		procmap.ino = strtoul(in[6], &end, 16);
-		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) {
+		if ((in[6] == '\0') || (end == NULL) || (*end != '\0') ||
+			(errno != 0)) {
 			fclose(fmap);
 			return -1;
 		}
@@ -218,16 +225,19 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	fclose(fmap);
 
 	if (!found) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file in pid %d maps file\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file in pid %d maps file\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 
 	/* Find the guest memory file among the process fds. */
 	dp = opendir(procdir);
 	if (dp == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Cannot open pid %d process directory\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Cannot open pid %d process directory\n",
+			dev->device_fh, pid);
 		return -1;
-
 	}
 
 	found = 0;
@@ -254,23 +264,29 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	closedir(dp);
 
 	if (found == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find memory file for pid %d\n", dev->device_fh, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find memory file for pid %d\n",
+			dev->device_fh, pid);
 		return -1;
 	}
 	/* Open the shared memory file and map the memory into this process. */
 	fd = open(memfile, O_RDWR);
 
 	if (fd == -1) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to open %s for pid %d\n", dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to open %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
-	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE ,
-			MAP_POPULATE|MAP_SHARED, fd, 0);
+	map = mmap(0, (size_t)procmap.len, PROT_READ|PROT_WRITE,
+		MAP_POPULATE|MAP_SHARED, fd, 0);
 	close(fd);
 
 	if (map == MAP_FAILED) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Error mapping the file %s for pid %d\n",  dev->device_fh, memfile, pid);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Error mapping the file %s for pid %d\n",
+			dev->device_fh, memfile, pid);
 		return -1;
 	}
 
@@ -278,8 +294,11 @@ host_memory_map(struct virtio_net *dev, struct virtio_memory *mem,
 	mem->mapped_address = (uint64_t)(uintptr_t)map;
 	mem->mapped_size = procmap.len;
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n", dev->device_fh,
-		memfile, resolved_path, (long long unsigned)mem->mapped_size, map);
+	LOG_DEBUG(VHOST_CONFIG,
+		"(%"PRIu64") Mem File: %s->%s - Size: %llu - VA: %p\n",
+		dev->device_fh,
+		memfile, resolved_path,
+		(long long unsigned)mem->mapped_size, map);
 
 	return 0;
 }
@@ -303,7 +322,8 @@ get_config_ll_entry(struct vhost_device_ctx ctx)
 }
 
 /*
- * Searches the configuration core linked list and retrieves the device if it exists.
+ * Searches the configuration core linked list and
+ * retrieves the device if it exists.
  */
 static struct virtio_net *
 get_device(struct vhost_device_ctx ctx)
@@ -312,11 +332,11 @@ get_device(struct vhost_device_ctx ctx)
 
 	ll_dev = get_config_ll_entry(ctx);
 
-	/* If a matching entry is found in the linked list, return the device in that entry. */
 	if (ll_dev)
 		return &ll_dev->dev;
 
-	RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Device not found in linked list.\n", ctx.fh);
+	RTE_LOG(ERR, VHOST_CONFIG,
+		"(%"PRIu64") Device not found in linked list.\n", ctx.fh);
 	return NULL;
 }
 
@@ -331,13 +351,18 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 	/* If ll_dev == NULL then this is the first device so go to else */
 	if (ll_dev) {
 		/* If the 1st device_fh != 0 then we insert our device here. */
-		if (ll_dev->dev.device_fh != 0)	{
+		if (ll_dev->dev.device_fh != 0) {
 			new_ll_dev->dev.device_fh = 0;
 			new_ll_dev->next = ll_dev;
 			ll_root = new_ll_dev;
 		} else {
-			/* Increment through the ll until we find un unused device_fh. Insert the device at that entry*/
-			while ((ll_dev->next != NULL) && (ll_dev->dev.device_fh == (ll_dev->next->dev.device_fh - 1)))
+			/*
+			 * Increment through the ll until we find un unused
+			 * device_fh. Insert the device at that entry.
+			 */
+			while ((ll_dev->next != NULL) &&
+				(ll_dev->dev.device_fh ==
+					(ll_dev->next->dev.device_fh - 1)))
 				ll_dev = ll_dev->next;
 
 			new_ll_dev->dev.device_fh = ll_dev->dev.device_fh + 1;
@@ -352,7 +377,8 @@ add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
 }
 
 /*
- * Unmap any memory, close any file descriptors and free any memory owned by a device.
+ * Unmap any memory, close any file descriptors and
+ * free any memory owned by a device.
  */
 static void
 cleanup_device(struct virtio_net *dev)
@@ -386,6 +412,7 @@ free_device(struct virtio_net_config_ll *ll_dev)
 	free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
 	free(ll_dev);
 }
+
 /*
  * Remove an entry from the device configuration linked list.
  */
@@ -423,7 +450,10 @@ init_device(struct virtio_net *dev)
 {
 	uint64_t vq_offset;
 
-	/* Virtqueues have already been malloced so we don't want to set them to NULL. */
+	/*
+	 * Virtqueues have already been malloced so
+	 * we don't want to set them to NULL.
+	 */
 	vq_offset = offsetof(struct virtio_net, mem);
 
 	/* Set everything to 0. */
@@ -491,8 +521,8 @@ new_device(struct vhost_device_ctx ctx)
 }
 
 /*
- * Function is called from the CUSE release function. This function will cleanup
- * the device and remove it from device configuration linked list.
+ * Function is called from the CUSE release function. This function will
+ * cleanup the device and remove it from device configuration linked list.
  */
 static void
 destroy_device(struct vhost_device_ctx ctx)
@@ -503,15 +533,19 @@ destroy_device(struct vhost_device_ctx ctx)
 	/* Find the linked list entry for the device to be removed. */
 	ll_dev_cur_ctx = get_config_ll_entry(ctx);
 	while (ll_dev_cur != NULL) {
-		/* If the device is found or a device that doesn't exist is found then it is removed. */
+		/*
+		 * If the device is found or
+		 * a device that doesn't exist is found then it is removed.
+		 */
 		if (ll_dev_cur == ll_dev_cur_ctx) {
 			/*
-			 * If the device is running on a data core then call the function to remove it from
-			 * the data core.
+			 * If the device is running on a data core then call
+			 * the function to remove it from the data core.
 			 */
 			if ((ll_dev_cur->dev.flags & VIRTIO_DEV_RUNNING))
 				notify_ops->destroy_device(&(ll_dev_cur->dev));
-			ll_dev_cur = rm_config_ll_entry(ll_dev_cur, ll_dev_last);
+			ll_dev_cur = rm_config_ll_entry(ll_dev_cur,
+					ll_dev_last);
 		} else {
 			ll_dev_last = ll_dev_cur;
 			ll_dev_cur = ll_dev_cur->next;
@@ -521,7 +555,8 @@ destroy_device(struct vhost_device_ctx ctx)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_OWNER
- * This function just returns success at the moment unless the device hasn't been initialised.
+ * This function just returns success at the moment unless
+ * the device hasn't been initialised.
  */
 static int
 set_owner(struct vhost_device_ctx ctx)
@@ -571,7 +606,7 @@ get_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_FEATURES
- * We receive the negotiated set of features supported by us and the virtio device.
+ * We receive the negotiated features supported by us and the virtio device.
  */
 static int
 set_features(struct vhost_device_ctx ctx, uint64_t *pu)
@@ -589,13 +624,17 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 	/* Set the vhost_hlen depending on if VIRTIO_NET_F_MRG_RXBUF is set. */
 	if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers enabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers enabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr_mrg_rxbuf);
 	} else {
-		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Mergeable RX buffers disabled\n", dev->device_fh);
+		LOG_DEBUG(VHOST_CONFIG,
+			"(%"PRIu64") Mergeable RX buffers disabled\n",
+			dev->device_fh);
 		dev->virtqueue[VIRTIO_RXQ]->vhost_hlen =
 			sizeof(struct virtio_net_hdr);
 		dev->virtqueue[VIRTIO_TXQ]->vhost_hlen =
@@ -607,8 +646,8 @@ set_features(struct vhost_device_ctx ctx, uint64_t *pu)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_MEM_TABLE
- * This function creates and populates the memory structure for the device. This includes
- * storing offsets used to translate buffer addresses.
+ * This function creates and populates the memory structure for the device.
+ * This includes storing offsets used to translate buffer addresses.
  */
 static int
 set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
@@ -634,7 +673,9 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	mem = calloc(1, sizeof(struct virtio_memory) +
 		(sizeof(struct virtio_memory_regions) * nregions));
 	if (mem == NULL) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to allocate memory for dev->mem.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to allocate memory for dev->mem.\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -656,15 +697,18 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 			mem_regions[regionidx].userspace_addr;
 
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") REGION: %u - GPA: %p - QEMU VA: %p - SIZE (%"PRIu64")\n", dev->device_fh,
-				regionidx, (void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
-				(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
-				mem->regions[regionidx].memory_size);
+			regionidx,
+			(void *)(uintptr_t)mem->regions[regionidx].guest_phys_address,
+			(void *)(uintptr_t)mem->regions[regionidx].userspace_address,
+			mem->regions[regionidx].memory_size);
 
 		/*set the base address mapping*/
 		if (mem->regions[regionidx].guest_phys_address == 0x0) {
-			mem->base_address = mem->regions[regionidx].userspace_address;
+			mem->base_address =
+				mem->regions[regionidx].userspace_address;
 			/* Map VM memory file */
-			if (host_memory_map(dev, mem, ctx.pid, mem->base_address) != 0) {
+			if (host_memory_map(dev, mem, ctx.pid,
+				mem->base_address) != 0) {
 				free(mem);
 				return -1;
 			}
@@ -678,27 +722,42 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 		return -1;
 	}
 
-	/* Check if all of our regions have valid mappings. Usually one does not exist in the QEMU memory file. */
+	/*
+	 * Check if all of our regions have valid mappings.
+	 * Usually one does not exist in the QEMU memory file.
+	 */
 	valid_regions = mem->nregions;
 	for (regionidx = 0; regionidx < mem->nregions; regionidx++) {
-		if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-			(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size)))
+		if ((mem->regions[regionidx].userspace_address <
+			mem->base_address) ||
+			(mem->regions[regionidx].userspace_address >
+			(mem->base_address + mem->mapped_size)))
 				valid_regions--;
 	}
 
-	/* If a region does not have a valid mapping we rebuild our memory struct to contain only valid entries. */
+	/*
+	 * If a region does not have a valid mapping,
+	 * we rebuild our memory struct to contain only valid entries.
+	 */
 	if (valid_regions != mem->nregions) {
 		LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") Not all memory regions exist in the QEMU mem file. Re-populating mem structure\n",
 			dev->device_fh);
 
-		/* Re-populate the memory structure with only valid regions. Invalid regions are over-written with memmove. */
+		/*
+		 * Re-populate the memory structure with only valid regions.
+		 * Invalid regions are over-written with memmove.
+		 */
 		valid_regions = 0;
 
 		for (regionidx = mem->nregions; 0 != regionidx--;) {
-			if ((mem->regions[regionidx].userspace_address < mem->base_address) ||
-					(mem->regions[regionidx].userspace_address > (mem->base_address + mem->mapped_size))) {
-				memmove(&mem->regions[regionidx], &mem->regions[regionidx + 1],
-					sizeof(struct virtio_memory_regions) * valid_regions);
+			if ((mem->regions[regionidx].userspace_address <
+				mem->base_address) ||
+				(mem->regions[regionidx].userspace_address >
+				(mem->base_address + mem->mapped_size))) {
+				memmove(&mem->regions[regionidx],
+					&mem->regions[regionidx + 1],
+					sizeof(struct virtio_memory_regions) *
+						valid_regions);
 			} else {
 				valid_regions++;
 			}
@@ -708,12 +767,16 @@ set_mem_table(struct vhost_device_ctx ctx, const void *mem_regions_addr,
 	dev->mem = mem;
 
 	/*
-	 * Calculate the address offset for each region. This offset is used to identify the vhost virtual address
+	 * Calculate the address offset for each region.
+	 * This offset is used to identify the vhost virtual address
 	 * corresponding to a QEMU guest physical address.
 	 */
 	for (regionidx = 0; regionidx < dev->mem->nregions; regionidx++) {
-		dev->mem->regions[regionidx].address_offset = dev->mem->regions[regionidx].userspace_address - dev->mem->base_address
-			+ dev->mem->mapped_address - dev->mem->regions[regionidx].guest_phys_address;
+		dev->mem->regions[regionidx].address_offset =
+			dev->mem->regions[regionidx].userspace_address -
+				dev->mem->base_address +
+				dev->mem->mapped_address -
+				dev->mem->regions[regionidx].guest_phys_address;
 
 	}
 	return 0;
@@ -732,7 +795,7 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->size = state->num;
 
 	return 0;
@@ -740,8 +803,8 @@ set_vring_num(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_ADDR
- * The virtio device sends us the desc, used and avail ring addresses. This function
- * then converts these to our address space.
+ * The virtio device sends us the desc, used and avail ring addresses.
+ * This function then converts these to our address space.
  */
 static int
 set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
@@ -753,31 +816,43 @@ set_vring_addr(struct vhost_device_ctx ctx, struct vhost_vring_addr *addr)
 	if (dev == NULL)
 		return -1;
 
-	/* addr->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* addr->index refers to the queue index. The txq 1, rxq is 0. */
 	vq = dev->virtqueue[addr->index];
 
 	/* The addresses are converted from QEMU virtual to Vhost virtual. */
-	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev, addr->desc_user_addr);
+	vq->desc = (struct vring_desc *)(uintptr_t)qva_to_vva(dev,
+			addr->desc_user_addr);
 	if (vq->desc == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find descriptor ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find desc ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev, addr->avail_user_addr);
+	vq->avail = (struct vring_avail *)(uintptr_t)qva_to_vva(dev,
+			addr->avail_user_addr);
 	if (vq->avail == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find available ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find avail ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev, addr->used_user_addr);
+	vq->used = (struct vring_used *)(uintptr_t)qva_to_vva(dev,
+			addr->used_user_addr);
 	if (vq->used == 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") Failed to find used ring address.\n", dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") Failed to find used ring address.\n",
+			dev->device_fh);
 		return -1;
 	}
 
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n", dev->device_fh, vq->desc);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n", dev->device_fh, vq->avail);
-	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n", dev->device_fh, vq->used);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address desc: %p\n",
+			dev->device_fh, vq->desc);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address avail: %p\n",
+			dev->device_fh, vq->avail);
+	LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") mapped address used: %p\n",
+			dev->device_fh, vq->used);
 
 	return 0;
 }
@@ -795,7 +870,7 @@ set_vring_base(struct vhost_device_ctx ctx, struct vhost_vring_state *state)
 	if (dev == NULL)
 		return -1;
 
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[state->index]->last_used_idx = state->num;
 	dev->virtqueue[state->index]->last_used_idx_res = state->num;
 
@@ -817,15 +892,15 @@ get_vring_base(struct vhost_device_ctx ctx, uint32_t index,
 		return -1;
 
 	state->index = index;
-	/* State->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
 	state->num = dev->virtqueue[state->index]->last_used_idx;
 
 	return 0;
 }
 
 /*
- * This function uses the eventfd_link kernel module to copy an eventfd file descriptor
- * provided by QEMU in to our process space.
+ * This function uses the eventfd_link kernel module to copy an eventfd file
+ * descriptor provided by QEMU in to our process space.
  */
 static int
 eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
@@ -835,7 +910,9 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	/* Open the character device to the kernel module. */
 	eventfd_link = open(eventfd_cdev, O_RDWR);
 	if (eventfd_link < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") eventfd_link module is not loaded\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") eventfd_link module is not loaded\n",
+			dev->device_fh);
 		return -1;
 	}
 
@@ -844,18 +921,19 @@ eventfd_copy(struct virtio_net *dev, struct eventfd_copy *eventfd_copy)
 	close(eventfd_link);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_CONFIG, "(%"PRIu64") EVENTFD_COPY ioctl failed\n",  dev->device_fh);
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%"PRIu64") EVENTFD_COPY ioctl failed\n",
+			dev->device_fh);
 		return -1;
 	}
 
-
 	return 0;
 }
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_CALL
- * The virtio device sends an eventfd to interrupt the guest. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd to interrupt the guest. This fd gets
+ * copied into our process space.
  */
 static int
 set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -868,7 +946,7 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->kickfd)
@@ -888,8 +966,8 @@ set_vring_call(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_SET_VRING_KICK
- * The virtio device sends an eventfd that it can use to notify us. This fd gets copied in
- * to our process space.
+ * The virtio device sends an eventfd that it can use to notify us.
+ * This fd gets copied into our process space.
  */
 static int
 set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -902,7 +980,7 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	vq = dev->virtqueue[file->index];
 
 	if (vq->callfd)
@@ -922,10 +1000,12 @@ set_vring_kick(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 
 /*
  * Called from CUSE IOCTL: VHOST_NET_SET_BACKEND
- * To complete device initialisation when the virtio driver is loaded we are provided with a
- * valid fd for a tap device (not used by us). If this happens then we can add the device to a
- * data core. When the virtio driver is removed we get fd=-1. At that point we remove the device
- * from the data core. The device will still exist in the device configuration linked list.
+ * To complete device initialisation when the virtio driver is loaded,
+ * we are provided with a valid fd for a tap device (not used by us).
+ * If this happens then we can add the device to a data core.
+ * When the virtio driver is removed we get fd=-1.
+ * At that point we remove the device from the data core.
+ * The device will still exist in the device configuration linked list.
  */
 static int
 set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
@@ -936,10 +1016,13 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 	if (dev == NULL)
 		return -1;
 
-	/* file->index refers to the queue index. The TX queue is 1, RX queue is 0. */
+	/* file->index refers to the queue index. The txq is 1, rxq is 0. */
 	dev->virtqueue[file->index]->backend = file->fd;
 
-	/* If the device isn't already running and both backend fds are set we add the device. */
+	/*
+	 * If the device isn't already running and both backend fds are set,
+	 * we add the device.
+	 */
 	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
 		if (((int)dev->virtqueue[VIRTIO_TXQ]->backend != VIRTIO_DEV_STOPPED) &&
 			((int)dev->virtqueue[VIRTIO_RXQ]->backend != VIRTIO_DEV_STOPPED))
@@ -952,8 +1035,8 @@ set_backend(struct vhost_device_ctx ctx, struct vhost_vring_file *file)
 }
 
 /*
- * Function pointers are set for the device operations to allow CUSE to call functions
- * when an IOCTL, device_add or device_release is received.
+ * Function pointers are set for the device operations to allow CUSE to call
+ * functions when an IOCTL, device_add or device_release is received.
  */
 static const struct vhost_net_device_ops vhost_device_ops = {
 	.new_device = new_device,
@@ -991,11 +1074,13 @@ int rte_vhost_enable_guest_notification(struct virtio_net *dev,
 	uint16_t queue_id, int enable)
 {
 	if (enable) {
-		RTE_LOG(ERR, VHOST_CONFIG, "guest notification isn't supported.\n");
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"guest notification isn't supported.\n");
 		return -1;
 	}
 
-	dev->virtqueue[queue_id]->used->flags = enable ? 0 : VRING_USED_F_NO_NOTIFY;
+	dev->virtqueue[queue_id]->used->flags =
+		enable ? 0 : VRING_USED_F_NO_NOTIFY;
 	return 0;
 }
 
-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-11-05 21:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-05  4:40 [dpdk-dev] [PATCH] lib/librte_vhost: code style fixes Huawei Xie
2014-11-05  4:42 Huawei Xie
2014-11-05  9:09 ` Thomas Monjalon
2014-11-05 17:07   ` Xie, Huawei
2014-11-05 17:03 Huawei Xie
2014-11-05 20:41 ` Thomas Monjalon
2014-11-05 21:21   ` Xie, Huawei
2014-11-05 21:25     ` Thomas Monjalon
2014-11-05 21:55       ` Xie, Huawei
2014-11-05 22:06         ` Thomas Monjalon

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git