|
@@ -542,7 +542,7 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *dev,
|
|
switch (skb->data[0] & 0xe0) {
|
|
switch (skb->data[0] & 0xe0) {
|
|
case LOWPAN_DISPATCH_IPHC: /* ipv6 datagram */
|
|
case LOWPAN_DISPATCH_IPHC: /* ipv6 datagram */
|
|
ret = process_data(skb, &hdr);
|
|
ret = process_data(skb, &hdr);
|
|
- if (ret == NET_RX_DROP)
|
|
|
|
|
|
+ if (ret < 0)
|
|
goto drop;
|
|
goto drop;
|
|
|
|
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|
|
@@ -550,7 +550,7 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *dev,
|
|
ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAG1);
|
|
ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAG1);
|
|
if (ret == 1) {
|
|
if (ret == 1) {
|
|
ret = process_data(skb, &hdr);
|
|
ret = process_data(skb, &hdr);
|
|
- if (ret == NET_RX_DROP)
|
|
|
|
|
|
+ if (ret < 0)
|
|
goto drop;
|
|
goto drop;
|
|
|
|
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|
|
@@ -563,7 +563,7 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *dev,
|
|
ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAGN);
|
|
ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAGN);
|
|
if (ret == 1) {
|
|
if (ret == 1) {
|
|
ret = process_data(skb, &hdr);
|
|
ret = process_data(skb, &hdr);
|
|
- if (ret == NET_RX_DROP)
|
|
|
|
|
|
+ if (ret < 0)
|
|
goto drop;
|
|
goto drop;
|
|
|
|
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|
|
return lowpan_give_skb_to_devices(skb, NULL);
|