xsk: moved struct xdp_umem definition
authorBjörn Töpel <bjorn.topel@intel.com>
Mon, 4 Jun 2018 12:05:51 +0000 (14:05 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 5 Jun 2018 13:45:17 +0000 (15:45 +0200)
Moved struct xdp_umem to xdp_sock.h, in order to prepare for zero-copy
support.

Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
include/net/xdp_sock.h
net/xdp/xdp_umem.c
net/xdp/xdp_umem.h
net/xdp/xsk_queue.h

index 7a647c56ec153286d3b2032bcdb3f05232a6694a..3a6cd88f179dacb7f38386c36fdcc3ed17516a2b 100644 (file)
@@ -6,12 +6,34 @@
 #ifndef _LINUX_XDP_SOCK_H
 #define _LINUX_XDP_SOCK_H
 
+#include <linux/workqueue.h>
+#include <linux/if_xdp.h>
 #include <linux/mutex.h>
+#include <linux/mm.h>
 #include <net/sock.h>
 
 struct net_device;
 struct xsk_queue;
-struct xdp_umem;
+
+struct xdp_umem_props {
+       u64 chunk_mask;
+       u64 size;
+};
+
+struct xdp_umem {
+       struct xsk_queue *fq;
+       struct xsk_queue *cq;
+       struct page **pgs;
+       struct xdp_umem_props props;
+       u32 headroom;
+       u32 chunk_size_nohr;
+       struct user_struct *user;
+       struct pid *pid;
+       unsigned long address;
+       refcount_t users;
+       struct work_struct work;
+       u32 npgs;
+};
 
 struct xdp_sock {
        /* struct sock must be the first member of struct xdp_sock */
index 9ad791ff4739b376127445990da99801fa669714..2793a503223e1db8af3a6bb0f56ab629a4caa5ec 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/mm.h>
 
 #include "xdp_umem.h"
+#include "xsk_queue.h"
 
 #define XDP_UMEM_MIN_CHUNK_SIZE 2048
 
index aeadd1bcb72d637c26e9ae355bb0cf1ac31729e4..9433e8af650aeaf5e153069f85ea21baae364e1b 100644 (file)
@@ -6,27 +6,7 @@
 #ifndef XDP_UMEM_H_
 #define XDP_UMEM_H_
 
-#include <linux/mm.h>
-#include <linux/if_xdp.h>
-#include <linux/workqueue.h>
-
-#include "xsk_queue.h"
-#include "xdp_umem_props.h"
-
-struct xdp_umem {
-       struct xsk_queue *fq;
-       struct xsk_queue *cq;
-       struct page **pgs;
-       struct xdp_umem_props props;
-       u32 headroom;
-       u32 chunk_size_nohr;
-       struct user_struct *user;
-       struct pid *pid;
-       unsigned long address;
-       refcount_t users;
-       struct work_struct work;
-       u32 npgs;
-};
+#include <net/xdp_sock.h>
 
 static inline char *xdp_umem_get_data(struct xdp_umem *umem, u64 addr)
 {
index 337e5ad3b10e9714716f730df7f753d402f56826..5246ed420a16c36657a4e1e841c69745df8ff544 100644 (file)
@@ -8,8 +8,7 @@
 
 #include <linux/types.h>
 #include <linux/if_xdp.h>
-
-#include "xdp_umem_props.h"
+#include <net/xdp_sock.h>
 
 #define RX_BATCH_SIZE 16