skb_array: add wrappers for resizing
authorJason Wang <jasowang@redhat.com>
Thu, 30 Jun 2016 06:45:34 +0000 (14:45 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Jul 2016 09:32:17 +0000 (05:32 -0400)
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>
include/linux/skb_array.h

index 2dd0d1e..f4dfade 100644 (file)
@@ -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);