diff options
author | Ursula Braun <braunu@de.ibm.com> | 2007-10-05 10:45:48 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:54:42 -0400 |
commit | 28692ec45e58f40a998beb155fe1c0d3e1167485 (patch) | |
tree | f08363d946200b32c1138ab7879366aa15457f52 | |
parent | 59579da329b22bcddc5da0c22c61d6dc1f9eb96a (diff) |
qeth: discard inbound packets with unknown header id
Debugging statements are added for inbound packets with unknown
header id. Those packets are discarded and no longer processed as
osn-packets.
Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/s390/net/qeth_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index 6d7b79e2ba92..c67e7dfd56cc 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
@@ -2702,10 +2702,15 @@ qeth_process_inbound_buffer(struct qeth_card *card, | |||
2702 | qeth_layer2_rebuild_skb(card, skb, hdr); | 2702 | qeth_layer2_rebuild_skb(card, skb, hdr); |
2703 | else if (hdr->hdr.l3.id == QETH_HEADER_TYPE_LAYER3) | 2703 | else if (hdr->hdr.l3.id == QETH_HEADER_TYPE_LAYER3) |
2704 | vlan_tag = qeth_rebuild_skb(card, skb, hdr); | 2704 | vlan_tag = qeth_rebuild_skb(card, skb, hdr); |
2705 | else { /*in case of OSN*/ | 2705 | else if (hdr->hdr.osn.id == QETH_HEADER_TYPE_OSN) { |
2706 | skb_push(skb, sizeof(struct qeth_hdr)); | 2706 | skb_push(skb, sizeof(struct qeth_hdr)); |
2707 | skb_copy_to_linear_data(skb, hdr, | 2707 | skb_copy_to_linear_data(skb, hdr, |
2708 | sizeof(struct qeth_hdr)); | 2708 | sizeof(struct qeth_hdr)); |
2709 | } else { /* unknown header type */ | ||
2710 | dev_kfree_skb_any(skb); | ||
2711 | QETH_DBF_TEXT(trace, 3, "inbunkno"); | ||
2712 | QETH_DBF_HEX(control, 3, hdr, QETH_DBF_CONTROL_LEN); | ||
2713 | continue; | ||
2709 | } | 2714 | } |
2710 | /* is device UP ? */ | 2715 | /* is device UP ? */ |
2711 | if (!(card->dev->flags & IFF_UP)){ | 2716 | if (!(card->dev->flags & IFF_UP)){ |