aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2016-06-30 14:45:34 +0800
committerDavid S. Miller <davem@davemloft.net>2016-07-01 05:32:17 -0400
commitbf900b3dbefee49855c17aa09fb4245346a78fb3 (patch)
treebef4e4d436dc3236596c9dd0ed8c80dc76f1e436
parentptr_ring: support resizing multiple queues (diff)
downloadwireguard-linux-bf900b3dbefee49855c17aa09fb4245346a78fb3.tar.xz
wireguard-linux-bf900b3dbefee49855c17aa09fb4245346a78fb3.zip
skb_array: add wrappers for resizing
Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/skb_array.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/skb_array.h b/include/linux/skb_array.h
index 2dd0d1e4ee7e..f4dfade428f0 100644
--- a/include/linux/skb_array.h
+++ b/include/linux/skb_array.h
@@ -161,6 +161,15 @@ static inline int skb_array_resize(struct skb_array *a, int size, gfp_t gfp)
return ptr_ring_resize(&a->ring, size, gfp, __skb_array_destroy_skb);
}
+static inline int skb_array_resize_multiple(struct skb_array **rings,
+ int nrings, int size, gfp_t gfp)
+{
+ BUILD_BUG_ON(offsetof(struct skb_array, ring));
+ return ptr_ring_resize_multiple((struct ptr_ring **)rings,
+ nrings, size, gfp,
+ __skb_array_destroy_skb);
+}
+
static inline void skb_array_cleanup(struct skb_array *a)
{
ptr_ring_cleanup(&a->ring, __skb_array_destroy_skb);