diff options
author | Frank Pavlic <fpavlic@de.ibm.com> | 2007-06-20 06:59:14 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-06-20 19:12:42 -0400 |
commit | cd3e76ebcb41c48ef6e706006b793d45030bae75 (patch) | |
tree | 73c349e0275ee917a77850d6ed491d36755a9324 /drivers/s390 | |
parent | add3f2fa7a6cec16d35a95b9078e1ecc80a6f332 (diff) |
s390: qeth: wrong packet length in qdio header
Packets Length in qdio header is broken when using
EDDP on Layer2 devices. This leads to skb_under_panic on receiver
system when running on z/VM GuestLAN devices.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/qeth_eddp.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_eddp.c b/drivers/s390/net/qeth_eddp.c index 4640f32daae5..70108fb16906 100644 --- a/drivers/s390/net/qeth_eddp.c +++ b/drivers/s390/net/qeth_eddp.c | |||
@@ -424,8 +424,7 @@ __qeth_eddp_fill_context_tcp(struct qeth_eddp_context *ctx, | |||
424 | /* prepare qdio hdr */ | 424 | /* prepare qdio hdr */ |
425 | if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2){ | 425 | if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2){ |
426 | eddp->qh.hdr.l2.pkt_length = data_len + ETH_HLEN + | 426 | eddp->qh.hdr.l2.pkt_length = data_len + ETH_HLEN + |
427 | eddp->nhl + eddp->thl - | 427 | eddp->nhl + eddp->thl; |
428 | sizeof(struct qeth_hdr); | ||
429 | #ifdef CONFIG_QETH_VLAN | 428 | #ifdef CONFIG_QETH_VLAN |
430 | if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q)) | 429 | if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q)) |
431 | eddp->qh.hdr.l2.pkt_length += VLAN_HLEN; | 430 | eddp->qh.hdr.l2.pkt_length += VLAN_HLEN; |