]> err.no Git - linux-2.6/commitdiff
qeth: CCL-sequence numbers required for protocol ETH_P_802_2 only
authorUrsula Braun <braunu@de.ibm.com>
Tue, 1 Apr 2008 08:26:56 +0000 (10:26 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 17 Apr 2008 00:41:40 +0000 (20:41 -0400)
Symptom:     slow CCL response time
Problem:     non-ETH_P_802_2 packets are not delivered to NDH for
             CCL. But CCL detects missing sequence numbers, which
             cause a serious performance problem with CCL.
Solution:    assign sequence numbers only to 802.2 packets.

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/s390/net/qeth_l2_main.c

index 4417a3629ae0a78a0e878929d995915ceb06d62b..0263d9406fcf084346a3cdb10de5f9b5a55f15dc 100644 (file)
@@ -451,7 +451,8 @@ static void qeth_l2_process_inbound_buffer(struct qeth_card *card,
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
                        else
                                skb->ip_summed = CHECKSUM_NONE;
-                       *((__u32 *)skb->cb) = ++card->seqno.pkt_seqno;
+                       if (skb->protocol == htons(ETH_P_802_2))
+                               *((__u32 *)skb->cb) = ++card->seqno.pkt_seqno;
                        len = skb->len;
                        netif_rx(skb);
                        break;