aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2007-10-05 10:45:48 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:54:42 -0400
commit28692ec45e58f40a998beb155fe1c0d3e1167485 (patch)
treef08363d946200b32c1138ab7879366aa15457f52
parent59579da329b22bcddc5da0c22c61d6dc1f9eb96a (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.c7
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)){