if (crypt->ops->encrypt_msdu) res = crypt->ops->encrypt_msdu(frag, hdr_len, crypt->priv); if (res == 0 && crypt->ops->encrypt_mpdu) 
if (crypt->ops->encrypt_mpdu) 
static inline int ieee80211_encrypt_fragment(struct ieee80211_device *ieee,					     struct sk_buff *frag, int hdr_len){	struct ieee80211_crypt_data *crypt = ieee->crypt[ieee->tx_keyidx];	int res;	/* To encrypt, frame format is:	 * IV (4 bytes), clear payload (including SNAP), ICV (4 bytes) */	// PR: FIXME: Copied from hostap. Check fragmentation/MSDU/MPDU encryption.	/* Host-based IEEE 802.11 fragmentation for TX is not yet supported, so	 * call both MSDU and MPDU encryption functions from here. */	atomic_inc(&crypt->refcnt);	res = 0;	if (crypt->ops->encrypt_msdu)		res = crypt->ops->encrypt_msdu(frag, hdr_len, crypt->priv);	if (res == 0 && crypt->ops->encrypt_mpdu)		res = crypt->ops->encrypt_mpdu(frag, hdr_len, crypt->priv);	atomic_dec(&crypt->refcnt);	if (res < 0) {		printk(KERN_INFO "%s: Encryption failed: len=%d.\n",		       ieee->dev->name, frag->len);		ieee->ieee_stats.tx_discards++;		return -1;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1264fc0498e1e20f97b1ab690e523e7a7fc50eab/ieee80211_tx.c/buggy/net/ieee80211/ieee80211_tx.c