__qeth_eddp_fill_context_tcp(struct qeth_eddp_context *ctx,			     struct qeth_eddp_data *eddp){	struct tcphdr *tcph;	int data_len;	u32 hcsum;	QETH_DBF_TEXT(trace, 5, "eddpftcp");	eddp->skb_offset = sizeof(struct qeth_hdr) + eddp->nhl + eddp->thl;	tcph = eddp->skb->h.th;	while (eddp->skb_offset < eddp->skb->len) {		data_len = min((int)skb_shinfo(eddp->skb)->tso_size,			       (int)(eddp->skb->len - eddp->skb_offset));		/* prepare qdio hdr */		if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2){			eddp->qh.hdr.l2.pkt_length = data_len + ETH_HLEN +						     eddp->nhl + eddp->thl -						     sizeof(struct qeth_hdr);#ifdef CONFIG_QETH_VLAN			if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q))				eddp->qh.hdr.l2.pkt_length += VLAN_HLEN;#endif /* CONFIG_QETH_VLAN */		} else			eddp->qh.hdr.l3.length = data_len + eddp->nhl +						 eddp->thl;		/* prepare ip hdr */		if (eddp->skb->protocol == ETH_P_IP){			eddp->nh.ip4.h.tot_len = data_len + eddp->nhl +						 eddp->thl;			eddp->nh.ip4.h.check = 0;			eddp->nh.ip4.h.check =				ip_fast_csum((u8 *)&eddp->nh.ip4.h,						eddp->nh.ip4.h.ihl);		} else			eddp->nh.ip6.h.payload_len = data_len + eddp->thl;		/* prepare tcp hdr */		if (data_len == (eddp->skb->len - eddp->skb_offset)){			/* last segment -> set FIN and PSH flags */			eddp->th.tcp.h.fin = tcph->fin;			eddp->th.tcp.h.psh = tcph->psh;		}		if (eddp->skb->protocol == ETH_P_IP)			hcsum = qeth_eddp_check_tcp4_hdr(eddp, data_len);		else			hcsum = qeth_eddp_check_tcp6_hdr(eddp, data_len);		/* fill the next segment into the context */		qeth_eddp_create_segment_hdrs(ctx, eddp);		qeth_eddp_create_segment_data_tcp(ctx, eddp, data_len, hcsum);		if (eddp->skb_offset >= eddp->skb->len)			break;		/* prepare headers for next round */		if (eddp->skb->protocol == ETH_P_IP)			eddp->nh.ip4.h.id++;		eddp->th.tcp.h.seq += data_len;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/05e08a2a297371564020f76d1bf8b3a931d5e1ed/qeth_eddp.c/buggy/drivers/s390/net/qeth_eddp.c