These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / s390 / net / bpf_jit.h
index de156ba..f010c93 100644 (file)
@@ -28,11 +28,16 @@ extern u8 sk_load_word[], sk_load_half[], sk_load_byte[];
  *           | old backchain |     |
  *           +---------------+     |
  *           |   r15 - r6    |     |
+ *           +---------------+     |
+ *           | 4 byte align  |     |
+ *           | tail_call_cnt |     |
  * BFP    -> +===============+     |
  *           |               |     |
  *           |   BPF stack   |     |
  *           |               |     |
  *           +---------------+     |
+ *           | 8 byte skbp   |     |
+ * R15+170 -> +---------------+     |
  *           | 8 byte hlen   |     |
  * R15+168 -> +---------------+     |
  *           | 4 byte align  |     |
@@ -46,13 +51,17 @@ extern u8 sk_load_word[], sk_load_half[], sk_load_byte[];
  * R15    -> +---------------+     + low
  *
  * We get 160 bytes stack space from calling function, but only use
- * 11 * 8 byte (old backchain + r15 - r6) for storing registers.
+ * 12 * 8 byte for old backchain, r15..r6, and tail_call_cnt.
  */
-#define STK_SPACE      (MAX_BPF_STACK + 8 + 4 + 4 + 160)
-#define STK_160_UNUSED (160 - 11 * 8)
+#define STK_SPACE      (MAX_BPF_STACK + 8 + 8 + 4 + 4 + 160)
+#define STK_160_UNUSED (160 - 12 * 8)
 #define STK_OFF                (STK_SPACE - STK_160_UNUSED)
 #define STK_OFF_TMP    160     /* Offset of tmp buffer on stack */
 #define STK_OFF_HLEN   168     /* Offset of SKB header length on stack */
+#define STK_OFF_SKBP   170     /* Offset of SKB pointer on stack */
+
+#define STK_OFF_R6     (160 - 11 * 8)  /* Offset of r6 on stack */
+#define STK_OFF_TCCNT  (160 - 12 * 8)  /* Offset of tail_call_cnt on stack */
 
 /* Offset to skip condition code check */
 #define OFF_OK         4