kni: convert license headers to SPDX tags
[dpdk.git] / lib / librte_eal / linuxapp / kni / kni_misc.c
index 3303d9b..def4f1e 100644 (file)
@@ -1,25 +1,6 @@
-/*-
- * 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
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright(c) 2010-2014 Intel Corporation.
  */
 
 #include <linux/version.h>
@@ -110,9 +91,11 @@ kni_init_net(struct net *net)
 static void __net_exit
 kni_exit_net(struct net *net)
 {
-       struct kni_net *knet = net_generic(net, kni_net_id);
+       struct kni_net *knet __maybe_unused;
 
+       knet = net_generic(net, kni_net_id);
        mutex_destroy(&knet->kni_kthread_lock);
+
 #ifndef HAVE_SIMPLIFIED_PERNET_OPERATIONS
        kfree(knet);
 #endif
@@ -138,11 +121,7 @@ kni_thread_single(void *data)
                down_read(&knet->kni_list_lock);
                for (j = 0; j < KNI_RX_LOOP_NUM; j++) {
                        list_for_each_entry(dev, &knet->kni_list_head, list) {
-#ifdef RTE_KNI_VHOST
-                               kni_chk_vhost_rx(dev);
-#else
                                kni_net_rx(dev);
-#endif
                                kni_net_poll_resp(dev);
                        }
                }
@@ -161,15 +140,11 @@ static int
 kni_thread_multiple(void *param)
 {
        int j;
-       struct kni_dev *dev = (struct kni_dev *)param;
+       struct kni_dev *dev = param;
 
        while (!kthread_should_stop()) {
                for (j = 0; j < KNI_RX_LOOP_NUM; j++) {
-#ifdef RTE_KNI_VHOST
-                       kni_chk_vhost_rx(dev);
-#else
                        kni_net_rx(dev);
-#endif
                        kni_net_poll_resp(dev);
                }
 #ifdef RTE_KNI_PREEMPT_DEFAULT
@@ -203,12 +178,14 @@ kni_dev_remove(struct kni_dev *dev)
        if (!dev)
                return -ENODEV;
 
+#ifdef RTE_KNI_KMOD_ETHTOOL
        if (dev->pci_dev) {
                if (pci_match_id(ixgbe_pci_tbl, dev->pci_dev))
                        ixgbe_kni_remove(dev->pci_dev);
                else if (pci_match_id(igb_pci_tbl, dev->pci_dev))
                        igb_kni_remove(dev->pci_dev);
        }
+#endif
 
        if (dev->net_dev) {
                unregister_netdev(dev->net_dev);
@@ -244,9 +221,6 @@ kni_release(struct inode *inode, struct file *file)
                        dev->pthread = NULL;
                }
 
-#ifdef RTE_KNI_VHOST
-               kni_vhost_backend_release(dev);
-#endif
                kni_dev_remove(dev);
                list_del(&dev->list);
        }
@@ -324,11 +298,13 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
        struct kni_net *knet = net_generic(net, kni_net_id);
        int ret;
        struct rte_kni_device_info dev_info;
-       struct pci_dev *pci = NULL;
-       struct pci_dev *found_pci = NULL;
        struct net_device *net_dev = NULL;
-       struct net_device *lad_dev = NULL;
        struct kni_dev *kni, *dev, *n;
+#ifdef RTE_KNI_KMOD_ETHTOOL
+       struct pci_dev *found_pci = NULL;
+       struct net_device *lad_dev = NULL;
+       struct pci_dev *pci = NULL;
+#endif
 
        pr_info("Creating kni...\n");
        /* Check the buffer size, to avoid warning */
@@ -342,6 +318,12 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
                return -EIO;
        }
 
+       /* Check if name is zero-ended */
+       if (strnlen(dev_info.name, sizeof(dev_info.name)) == sizeof(dev_info.name)) {
+               pr_err("kni.name not zero-terminated");
+               return -EINVAL;
+       }
+
        /**
         * Check if the cpu core id is valid for binding.
         */
@@ -361,8 +343,8 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
        up_read(&knet->kni_list_lock);
 
        net_dev = alloc_netdev(sizeof(struct kni_dev), dev_info.name,
-#ifdef NET_NAME_UNKNOWN
-                                                       NET_NAME_UNKNOWN,
+#ifdef NET_NAME_USER
+                                                       NET_NAME_USER,
 #endif
                                                        kni_net_init);
        if (net_dev == NULL) {
@@ -390,10 +372,6 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
        kni->sync_va = dev_info.sync_va;
        kni->sync_kva = phys_to_virt(dev_info.sync_phys);
 
-#ifdef RTE_KNI_VHOST
-       kni->vhost_queue = NULL;
-       kni->vq_status = BE_STOP;
-#endif
        kni->mbuf_size = dev_info.mbuf_size;
 
        pr_debug("tx_phys:      0x%016llx, tx_q addr:      0x%p\n",
@@ -416,7 +394,7 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
                                        dev_info.function,
                                        dev_info.vendor_id,
                                        dev_info.device_id);
-
+#ifdef RTE_KNI_KMOD_ETHTOOL
        pci = pci_get_device(dev_info.vendor_id, dev_info.device_id, NULL);
 
        /* Support Ethtool */
@@ -457,6 +435,7 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
        }
        if (pci)
                pci_dev_put(pci);
+#endif
 
        if (kni->lad_dev)
                ether_addr_copy(net_dev->dev_addr, kni->lad_dev->dev_addr);
@@ -477,10 +456,6 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
                return -ENODEV;
        }
 
-#ifdef RTE_KNI_VHOST
-       kni_vhost_init(kni);
-#endif
-
        ret = kni_run_thread(knet, kni, dev_info.force_bind);
        if (ret != 0)
                return ret;
@@ -524,9 +499,6 @@ kni_ioctl_release(struct net *net, uint32_t ioctl_num,
                        dev->pthread = NULL;
                }
 
-#ifdef RTE_KNI_VHOST
-               kni_vhost_backend_release(dev);
-#endif
                kni_dev_remove(dev);
                list_del(&dev->list);
                ret = 0;