On Sat, 3 Feb 2007 18:32:48 +0100, Michael Buesch wrote: > @@ -192,10 +192,15 @@ u8 * ieee80211_tkip_add_iv(u8 *pos, stru > > > void ieee80211_tkip_gen_phase1key(struct ieee80211_key *key, u8 *ta, > - u16 *phase1key) > + u8 *phase1key) > { > + __le16 *k = (__le16 *)phase1key; > + int i; > + > tkip_mixing_phase1(ta, &key->key[ALG_TKIP_TEMP_ENCR_KEY], > - key->u.tkip.iv32, phase1key); > + key->u.tkip.iv32, (u16 *)k); > + for (i = 0; i < 5; i++) > + k[i] = cpu_to_le16(k[i]); > } Maybe a slightly better type checking but still looks ugly: @@ -192,10 +192,16 @@ u8 * ieee80211_tkip_add_iv(u8 *pos, stru void ieee80211_tkip_gen_phase1key(struct ieee80211_key *key, u8 *ta, - u16 *phase1key) + u8 *phase1key) { + u16 *tmp_result = (u16 *)phase1key; + __le16 *k = (__le16 *)phase1key; + int i; + tkip_mixing_phase1(ta, &key->key[ALG_TKIP_TEMP_ENCR_KEY], - key->u.tkip.iv32, phase1key); + key->u.tkip.iv32, tmp_result); + for (i = 0; i < 5; i++) + k[i] = cpu_to_le16(tmp_result[i]); } void ieee80211_tkip_gen_rc4key(struct ieee80211_key *key, u8 *ta, Moreover, I'm not sure if GCC is able to optimize out the for loop in this case :-( Jiri -- Jiri Benc SUSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html