hdr_len += ETH_HLEN; 
pkt_len += ETH_HLEN; 
qeth_eddp_create_segment_hdrs(struct qeth_eddp_context *ctx,			      struct qeth_eddp_data *eddp){	u8 *page;	int page_remainder;	int page_offset;	int hdr_len;	struct qeth_eddp_element *element;	QETH_DBF_TEXT(trace, 5, "eddpcrsh");	page = ctx->pages[ctx->offset >> PAGE_SHIFT];	page_offset = ctx->offset % PAGE_SIZE;	element = &ctx->elements[ctx->num_elements];	hdr_len = eddp->nhl + eddp->thl;	/* FIXME: layer2 and VLAN !!! */	if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2)		hdr_len += ETH_HLEN;	if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q))		hdr_len += VLAN_HLEN;	/* does complete header fit in current page ? */	page_remainder = PAGE_SIZE - page_offset;	if (page_remainder < (sizeof(struct qeth_hdr) + hdr_len)){		/* no -> go to start of next page */		ctx->offset += page_remainder;		page = ctx->pages[ctx->offset >> PAGE_SHIFT];		page_offset = 0;	}	memcpy(page + page_offset, &eddp->qh, sizeof(struct qeth_hdr));	element->addr = page + page_offset;	element->length = sizeof(struct qeth_hdr);	ctx->offset += sizeof(struct qeth_hdr);	page_offset += sizeof(struct qeth_hdr);	/* add mac header (?) */	if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2){		memcpy(page + page_offset, &eddp->mac, ETH_HLEN);		element->length += ETH_HLEN;		ctx->offset += ETH_HLEN;		page_offset += ETH_HLEN;	}	/* add VLAN tag */	if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q)){		memcpy(page + page_offset, &eddp->vlan, VLAN_HLEN);		element->length += VLAN_HLEN;		ctx->offset += VLAN_HLEN;		page_offset += VLAN_HLEN;	}	/* add network header */	memcpy(page + page_offset, (u8 *)&eddp->nh, eddp->nhl);	element->length += eddp->nhl;	eddp->nh_in_ctx = page + page_offset;	ctx->offset += eddp->nhl;	page_offset += eddp->nhl;	/* add transport header */	memcpy(page + page_offset, (u8 *)&eddp->th, eddp->thl);	element->length += eddp->thl;	eddp->th_in_ctx = page + page_offset;	ctx->offset += eddp->thl;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/05e08a2a297371564020f76d1bf8b3a931d5e1ed/qeth_eddp.c/buggy/drivers/s390/net/qeth_eddp.c