diff options
author | Peter Huang (Peng) <peter.huangpeng@huawei.com> | 2012-04-19 20:12:51 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-24 00:16:24 -0400 |
commit | a881e963c7fe1f226e991ee9bbe8907acda93294 (patch) | |
tree | 5d2b2c01097300377821132f743cddd4fc90fed6 /include/net/dst.h | |
parent | 4d634ca35a8b38530b134ae92bc9e3cc9c23c030 (diff) | |
download | linux-a881e963c7fe1f226e991ee9bbe8907acda93294.tar.gz linux-a881e963c7fe1f226e991ee9bbe8907acda93294.tar.bz2 linux-a881e963c7fe1f226e991ee9bbe8907acda93294.zip |
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.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index ff4da42fcfc6..bed833d9796a 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; |