diff options
author | Peter Huang (Peng) <peter.huangpeng@huawei.com> | 2012-04-19 16:12:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-24 00:16:24 -0400 |
commit | a881e963c7fe1f226e991ee9bbe8907acda93294 (patch) | |
tree | 5d2b2c01097300377821132f743cddd4fc90fed6 /include/net | |
parent | 4d634ca35a8b38530b134ae92bc9e3cc9c23c030 (diff) |
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')
-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 { | |||
59 | #define DST_NOCACHE 0x0010 | 59 | #define DST_NOCACHE 0x0010 |
60 | #define DST_NOCOUNT 0x0020 | 60 | #define DST_NOCOUNT 0x0020 |
61 | #define DST_NOPEER 0x0040 | 61 | #define DST_NOPEER 0x0040 |
62 | #define DST_FAKE_RTABLE 0x0080 | ||
62 | 63 | ||
63 | short error; | 64 | short error; |
64 | short obsolete; | 65 | short obsolete; |