diff options
Diffstat (limited to 'net/bridge/br_stp_bpdu.c')
-rw-r--r-- | net/bridge/br_stp_bpdu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/bridge/br_stp_bpdu.c b/net/bridge/br_stp_bpdu.c index fd30a6022dea..7f884e3fb955 100644 --- a/net/bridge/br_stp_bpdu.c +++ b/net/bridge/br_stp_bpdu.c | |||
@@ -170,6 +170,13 @@ void br_stp_rcv(const struct stp_proto *proto, struct sk_buff *skb, | |||
170 | if (!ether_addr_equal(dest, br->group_addr)) | 170 | if (!ether_addr_equal(dest, br->group_addr)) |
171 | goto out; | 171 | goto out; |
172 | 172 | ||
173 | if (p->flags & BR_BPDU_GUARD) { | ||
174 | br_notice(br, "BPDU received on blocked port %u(%s)\n", | ||
175 | (unsigned int) p->port_no, p->dev->name); | ||
176 | br_stp_disable_port(p); | ||
177 | goto out; | ||
178 | } | ||
179 | |||
173 | buf = skb_pull(skb, 3); | 180 | buf = skb_pull(skb, 3); |
174 | 181 | ||
175 | if (buf[0] == BPDU_TYPE_CONFIG) { | 182 | if (buf[0] == BPDU_TYPE_CONFIG) { |