summaryrefslogtreecommitdiff
path: root/drivers/ipoe
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ipoe')
-rw-r--r--drivers/ipoe/ipoe.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c
index 2eacac9..4951c53 100644
--- a/drivers/ipoe/ipoe.c
+++ b/drivers/ipoe/ipoe.c
@@ -868,6 +868,12 @@ static rx_handler_result_t ipoe_recv(struct sk_buff **pskb)
} else {
ses = ipoe_lookup_rt6(skb, &ip6h->saddr, &out);
if (!ses) {
+ if (i->mode == 0)
+ return RX_HANDLER_PASS;
+
+ if (out == dev && i->mode == 2)
+ return RX_HANDLER_PASS;
+
kfree_skb(skb);
return RX_HANDLER_CONSUMED;
}