Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 3192

kernel-2.6.18-194.11.1.el5.src.rpm

From: Hans-Joachim Picht <hpicht@redhat.com>
Date: Fri, 16 Nov 2007 13:56:15 +0100
Subject: [s390] qeth: hipersockets supports IP packets only
Message-id: 20071116125615.GN6053@redhat.com
O-Subject: [RHEL5 U2 PATCH 6/14] s390 - qeth: HiperSockets (layer-3) supports IP packets only.
Bugzilla: 329991

Description
============

HiperSockets layer3 interface supports IP packets only. Non IPv4 or
IPv6 packets disturbs TCP/IP stack on z/VM, which logs message
about invalid packet. HiperSockets layer3 will drop non IPv4 or
IPv6 packets and increase drop counter of hsi interface.

Bugzilla
=========

BZ 329991
https://bugzilla.redhat.com/show_bug.cgi?id=329991

Upstream status of the patch:
=============================
Patch has been submitted for upstream integration:
http://www.mail-archive.com/netdev@vger.kernel.org/msg46306.html

Test status:
============
Kernel with patch was built and successfully tested

Please ACK.

With best regards,

Hans

diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index 3724956..0150f93 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -4608,9 +4608,15 @@ qeth_send_packet(struct qeth_card *card, struct sk_buff *skb)
 	if (card->info.type != QETH_CARD_TYPE_IQD)
 		rc = qeth_do_send_packet(card, queue, new_skb, hdr,
 					 elements_needed, ctx);
-	else
+	else {
+		if ((!card->options.layer2) &&
+		    (ipv == 0)) {
+			__qeth_free_new_skb(skb, new_skb);
+			return -EPERM;
+		}
 		rc = qeth_do_send_packet_fast(card, queue, new_skb, hdr,
 					      elements_needed, ctx);
+	}
 	if (!rc) {
 		card->stats.tx_packets++;
 		card->stats.tx_bytes += tx_bytes;