kni: fix ioctl in container
authorWenfeng Liu <liuwf@arraynetworks.com.cn>
Mon, 15 Jun 2015 04:07:33 +0000 (00:07 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 17 Jun 2015 13:16:44 +0000 (15:16 +0200)
In containers like docker, current->pid returns current process's global
PID instead of its own PID under containers's PID namespace, and
get_net_ns_by_pid() suppose to accept a virtual PID under its own
namespace, so we should use task_pid_vnr(current) to get current process's
virtual PID instead of current->pid.

Signed-off-by: Wenfeng Liu <liuwf@arraynetworks.com.cn>
Acked-by: Helin Zhang <helin.zhang@intel.com>
lib/librte_eal/linuxapp/kni/kni_misc.c

index 912a8f1..2e9fa89 100644 (file)
@@ -358,7 +358,7 @@ kni_ioctl_create(unsigned int ioctl_num, unsigned long ioctl_param)
                return -EBUSY;
        }
 
-       net = get_net_ns_by_pid(current->pid);
+       net = get_net_ns_by_pid(task_pid_vnr(current));
        if (IS_ERR(net)) {
                free_netdev(net_dev);
                return PTR_ERR(net);