diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ipoe/ipoe.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c index 2eacac9a..4951c536 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; } |