diff options
author | Sainath Grandhi <sainath.grandhi@intel.com> | 2017-02-11 01:03:51 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-12 02:59:41 +0100 |
commit | 9a393b5d5988ea4eaa3e0da138321abe0dc03a68 (patch) | |
tree | 5a006ee32965ff9c76984aa7ce7c870d966be7ac /drivers/net/tap.c | |
parent | tap: Extending tap device create/destroy APIs (diff) | |
download | linux-9a393b5d5988ea4eaa3e0da138321abe0dc03a68.tar.xz linux-9a393b5d5988ea4eaa3e0da138321abe0dc03a68.zip |
tap: tap as an independent module
This patch makes tap a separate module for other types of virtual interfaces, for example,
ipvlan to use.
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tap.c')
-rw-r--r-- | drivers/net/tap.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 71bbf0b6327d..35b55a2fa1a1 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -312,6 +312,7 @@ void tap_del_queues(struct tap_dev *tap) /* guarantee that any future tap_set_queue will fail */ tap->numvtaps = MAX_TAP_QUEUES; } +EXPORT_SYMBOL_GPL(tap_del_queues); rx_handler_result_t tap_handle_frame(struct sk_buff **pskb) { @@ -389,6 +390,7 @@ drop: kfree_skb(skb); return RX_HANDLER_CONSUMED; } +EXPORT_SYMBOL_GPL(tap_handle_frame); static struct major_info *tap_get_major(int major) { @@ -428,6 +430,7 @@ unlock: rcu_read_unlock(); return retval < 0 ? retval : 0; } +EXPORT_SYMBOL_GPL(tap_get_minor); void tap_free_minor(dev_t major, struct tap_dev *tap) { @@ -449,6 +452,7 @@ void tap_free_minor(dev_t major, struct tap_dev *tap) unlock: rcu_read_unlock(); } +EXPORT_SYMBOL_GPL(tap_free_minor); static struct tap_dev *dev_get_by_tap_file(int major, int minor) { @@ -1210,6 +1214,7 @@ int tap_queue_resize(struct tap_dev *tap) kfree(arrays); return ret; } +EXPORT_SYMBOL_GPL(tap_queue_resize); static int tap_list_add(dev_t major, const char *device_name) { @@ -1257,6 +1262,7 @@ out2: out1: return err; } +EXPORT_SYMBOL_GPL(tap_create_cdev); void tap_destroy_cdev(dev_t major, struct cdev *tap_cdev) { @@ -1272,3 +1278,8 @@ void tap_destroy_cdev(dev_t major, struct cdev *tap_cdev) } } } +EXPORT_SYMBOL_GPL(tap_destroy_cdev); + +MODULE_AUTHOR("Arnd Bergmann <arnd@arndb.de>"); +MODULE_AUTHOR("Sainath Grandhi <sainath.grandhi@intel.com>"); +MODULE_LICENSE("GPL"); |