aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/poison.h
diff options
context:
space:
mode:
authorJesper Dangaard Brouer <brouer@redhat.com>2023-02-03 13:59:29 +0100
committerDavid S. Miller <davem@davemloft.net>2023-02-06 09:56:38 +0000
commit9dde0cd3b10f63bc4100ebadc7e32275baabfa68 (patch)
tree08f48b41359f74ea3e8b1af884de2cc21d5aa9c4 /include/linux/poison.h
parentMerge branch 'wangxun-interrupts' (diff)
downloadwireguard-linux-9dde0cd3b10f63bc4100ebadc7e32275baabfa68.tar.xz
wireguard-linux-9dde0cd3b10f63bc4100ebadc7e32275baabfa68.zip
net: introduce skb_poison_list and use in kfree_skb_list
First user of skb_poison_list is in kfree_skb_list_reason, to catch bugs earlier like introduced in commit eedade12f4cb ("net: kfree_skb_list use kmem_cache_free_bulk"). For completeness mentioned bug have been fixed in commit f72ff8b81ebc ("net: fix kfree_skb_list use of skb_mark_not_on_list"). In case of a bug like mentioned commit we would have seen OOPS with: general protection fault, probably for non-canonical address 0xdead000000000870 And content of one the registers e.g. R13: dead000000000800 In this case skb->len is at offset 112 bytes (0x70) why fault happens at 0x800+0x70 = 0x870 Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/poison.h')
-rw-r--r--include/linux/poison.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/poison.h b/include/linux/poison.h
index 2d3249eb0e62..2823f90fdab4 100644
--- a/include/linux/poison.h
+++ b/include/linux/poison.h
@@ -81,6 +81,9 @@
/********** net/core/page_pool.c **********/
#define PP_SIGNATURE (0x40 + POISON_POINTER_DELTA)
+/********** net/core/skbuff.c **********/
+#define SKB_LIST_POISON_NEXT ((void *)(0x800 + POISON_POINTER_DELTA))
+
/********** kernel/bpf/ **********/
#define BPF_PTR_POISON ((void *)(0xeB9FUL + POISON_POINTER_DELTA))