Browse Source

qeth: core code should alloc headroom for LLC protocol

Allocate headroom for TR_HLEN but using only ETH_HLEN causes rx
performance degradation. Allocate ETH_HLEN for ethernet and
TR_HLEN for token ring (layer 3 mode).

Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Frank Blaschka 17 years ago
parent
commit
b403e685b7
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/s390/net/qeth_core_main.c

+ 5 - 1
drivers/s390/net/qeth_core_main.c

@@ -4002,7 +4002,11 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card,
 		}
 		}
 	} else {
 	} else {
 		skb_len = (*hdr)->hdr.l3.length;
 		skb_len = (*hdr)->hdr.l3.length;
-		headroom = max((int)ETH_HLEN, (int)TR_HLEN);
+		if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) ||
+		    (card->info.link_type == QETH_LINK_TYPE_HSTR))
+			headroom = TR_HLEN;
+		else
+			headroom = ETH_HLEN;
 	}
 	}
 
 
 	if (!skb_len)
 	if (!skb_len)