diff options
author | Jason Wang <jasowang@redhat.com> | 2017-05-17 00:14:42 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-18 10:07:41 -0400 |
commit | 49f96fd0cb3808e5ff96573f28b3dceb16eb6998 (patch) | |
tree | 8813625dcfe4369f90f3b6018131876195a0640c /drivers/net/tap.c | |
parent | 83339c6b159ea6429a1db40b0d9d1083ab574733 (diff) |
tap: export skb_array
This patch exports skb_array through tap_get_skb_array(). Caller can
then manipulate skb array directly.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tap.c')
-rw-r--r-- | drivers/net/tap.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 4d4173d25dd0..abdaf867774d 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c | |||
@@ -1193,6 +1193,19 @@ struct socket *tap_get_socket(struct file *file) | |||
1193 | } | 1193 | } |
1194 | EXPORT_SYMBOL_GPL(tap_get_socket); | 1194 | EXPORT_SYMBOL_GPL(tap_get_socket); |
1195 | 1195 | ||
1196 | struct skb_array *tap_get_skb_array(struct file *file) | ||
1197 | { | ||
1198 | struct tap_queue *q; | ||
1199 | |||
1200 | if (file->f_op != &tap_fops) | ||
1201 | return ERR_PTR(-EINVAL); | ||
1202 | q = file->private_data; | ||
1203 | if (!q) | ||
1204 | return ERR_PTR(-EBADFD); | ||
1205 | return &q->skb_array; | ||
1206 | } | ||
1207 | EXPORT_SYMBOL_GPL(tap_get_skb_array); | ||
1208 | |||
1196 | int tap_queue_resize(struct tap_dev *tap) | 1209 | int tap_queue_resize(struct tap_dev *tap) |
1197 | { | 1210 | { |
1198 | struct net_device *dev = tap->dev; | 1211 | struct net_device *dev = tap->dev; |