summaryrefslogtreecommitdiffstats
path: root/include/net/dst.h
diff options
context:
space:
mode:
authorPeter Huang (Peng) <peter.huangpeng@huawei.com>2012-04-19 20:12:51 +0000
committerDavid S. Miller <davem@davemloft.net>2012-04-24 00:16:24 -0400
commita881e963c7fe1f226e991ee9bbe8907acda93294 (patch)
tree5d2b2c01097300377821132f743cddd4fc90fed6 /include/net/dst.h
parent4d634ca35a8b38530b134ae92bc9e3cc9c23c030 (diff)
downloadlinux-0-day-a881e963c7fe1f226e991ee9bbe8907acda93294.tar.gz
linux-0-day-a881e963c7fe1f226e991ee9bbe8907acda93294.tar.xz
set fake_rtable's dst to NULL to avoid kernel Oops
bridge: set fake_rtable's dst to NULL to avoid kernel Oops when bridge is deleted before tap/vif device's delete, kernel may encounter an oops because of NULL reference to fake_rtable's dst. Set fake_rtable's dst to NULL before sending packets out can solve this problem. v4 reformat, change br_drop_fake_rtable(skb) to {} v3 enrich commit header v2 introducing new flag DST_FAKE_RTABLE to dst_entry struct. [ Use "do { } while (0)" for nop br_drop_fake_rtable() implementation -DaveM ] Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Peter Huang <peter.huangpeng@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r--include/net/dst.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/dst.h b/include/net/dst.h
index ff4da42fcfc6e..bed833d9796ae 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -59,6 +59,7 @@ struct dst_entry {
#define DST_NOCACHE 0x0010
#define DST_NOCOUNT 0x0020
#define DST_NOPEER 0x0040
+#define DST_FAKE_RTABLE 0x0080
short error;
short obsolete;