rc = qeth_realloc_headroom(card, skb, sizeof(struct qeth_hdr)); if (rc) return rc; 
qeth_prepare_skb(struct qeth_card *card, struct sk_buff **skb,		 struct qeth_hdr **hdr, int ipv){	int rc = 0;#ifdef CONFIG_QETH_VLAN	u16 *tag;#endif	QETH_DBF_TEXT(trace, 6, "prepskb");	rc = qeth_realloc_headroom(card, skb, sizeof(struct qeth_hdr));	if (rc)		return rc;#ifdef CONFIG_QETH_VLAN	if (card->vlangrp && vlan_tx_tag_present(*skb) &&	    ((ipv == 6) || card->options.layer2) ) {		/*		 * Move the mac addresses (6 bytes src, 6 bytes dest)		 * to the beginning of the new header.  We are using three		 * memcpys instead of one memmove to save cycles.		 */		skb_push(*skb, VLAN_HLEN);		memcpy((*skb)->data, (*skb)->data + 4, 4);		memcpy((*skb)->data + 4, (*skb)->data + 8, 4);		memcpy((*skb)->data + 8, (*skb)->data + 12, 4);		tag = (u16 *)((*skb)->data + 12);		/*		 * first two bytes  = ETH_P_8021Q (0x8100)		 * second two bytes = VLANID		 */		*tag = __constant_htons(ETH_P_8021Q);		*(tag + 1) = htons(vlan_tx_tag_get(*skb));	}#endif	*hdr = (struct qeth_hdr *)		qeth_push_skb(card, skb, sizeof(struct qeth_hdr));	if (hdr == NULL)		return -EINVAL;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/05e08a2a297371564020f76d1bf8b3a931d5e1ed/qeth_main.c/buggy/drivers/s390/net/qeth_main.c