|
|
@@ -128,13 +128,17 @@ struct sk_buff_head {
|
|
|
|
|
|
struct sk_buff;
|
|
|
|
|
|
-/* To allow 64K frame to be packed as single skb without frag_list. Since
|
|
|
- * GRO uses frags we allocate at least 16 regardless of page size.
|
|
|
+/* To allow 64K frame to be packed as single skb without frag_list we
|
|
|
+ * require 64K/PAGE_SIZE pages plus 1 additional page to allow for
|
|
|
+ * buffers which do not start on a page boundary.
|
|
|
+ *
|
|
|
+ * Since GRO uses frags we allocate at least 16 regardless of page
|
|
|
+ * size.
|
|
|
*/
|
|
|
-#if (65536/PAGE_SIZE + 2) < 16
|
|
|
+#if (65536/PAGE_SIZE + 1) < 16
|
|
|
#define MAX_SKB_FRAGS 16UL
|
|
|
#else
|
|
|
-#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2)
|
|
|
+#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 1)
|
|
|
#endif
|
|
|
|
|
|
typedef struct skb_frag_struct skb_frag_t;
|