Loading drivers/net/tun.c +13 −0 Original line number Diff line number Diff line Loading @@ -2626,6 +2626,19 @@ struct socket *tun_get_socket(struct file *file) } EXPORT_SYMBOL_GPL(tun_get_socket); struct skb_array *tun_get_skb_array(struct file *file) { struct tun_file *tfile; if (file->f_op != &tun_fops) return ERR_PTR(-EINVAL); tfile = file->private_data; if (!tfile) return ERR_PTR(-EBADFD); return &tfile->tx_array; } EXPORT_SYMBOL_GPL(tun_get_skb_array); module_init(tun_init); module_exit(tun_cleanup); MODULE_DESCRIPTION(DRV_DESCRIPTION); Loading include/linux/if_tun.h +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) struct socket *tun_get_socket(struct file *); struct skb_array *tun_get_skb_array(struct file *file); #else #include <linux/err.h> #include <linux/errno.h> Loading @@ -28,5 +29,9 @@ static inline struct socket *tun_get_socket(struct file *f) { return ERR_PTR(-EINVAL); } static inline struct skb_array *tun_get_skb_array(struct file *f) { return ERR_PTR(-EINVAL); } #endif /* CONFIG_TUN */ #endif /* __IF_TUN_H */ Loading
drivers/net/tun.c +13 −0 Original line number Diff line number Diff line Loading @@ -2626,6 +2626,19 @@ struct socket *tun_get_socket(struct file *file) } EXPORT_SYMBOL_GPL(tun_get_socket); struct skb_array *tun_get_skb_array(struct file *file) { struct tun_file *tfile; if (file->f_op != &tun_fops) return ERR_PTR(-EINVAL); tfile = file->private_data; if (!tfile) return ERR_PTR(-EBADFD); return &tfile->tx_array; } EXPORT_SYMBOL_GPL(tun_get_skb_array); module_init(tun_init); module_exit(tun_cleanup); MODULE_DESCRIPTION(DRV_DESCRIPTION); Loading
include/linux/if_tun.h +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) struct socket *tun_get_socket(struct file *); struct skb_array *tun_get_skb_array(struct file *file); #else #include <linux/err.h> #include <linux/errno.h> Loading @@ -28,5 +29,9 @@ static inline struct socket *tun_get_socket(struct file *f) { return ERR_PTR(-EINVAL); } static inline struct skb_array *tun_get_skb_array(struct file *f) { return ERR_PTR(-EINVAL); } #endif /* CONFIG_TUN */ #endif /* __IF_TUN_H */