mac802154: don't deliver packets to devices that are down

Only one WPAN devices can be active at any given time, so only deliver
packets to that one interface that is actually up. Multiple monitors may
be up at any given time, but we don't have to deliver to monitors that
are down either.

Signed-off-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
这个提交包含在:
Phoebe Buckheister
2014-06-11 12:03:07 +02:00
提交者 David S. Miller
父节点 a374eeb5e5
当前提交 2d3b5b0a90
修改 3 个文件,包含 17 行新增10 行删除

查看文件

@@ -64,20 +64,23 @@ mac802154_subif_rx(struct ieee802154_dev *hw, struct sk_buff *skb, u8 lqi)
if (skb->len < 2) {
pr_debug("got invalid frame\n");
goto out;
goto fail;
}
crc = crc_ccitt(0, skb->data, skb->len);
if (crc) {
pr_debug("CRC mismatch\n");
goto out;
goto fail;
}
skb_trim(skb, skb->len - 2); /* CRC */
}
mac802154_monitors_rx(priv, skb);
mac802154_wpans_rx(priv, skb);
out:
dev_kfree_skb(skb);
return;
fail:
kfree_skb(skb);
}
static void mac802154_rx_worker(struct work_struct *work)