On Thu, Feb 12, 2009 at 07:35:17PM +1100, Stephen Rothwell wrote: > Hi John, > > Today's linux-next build (powerpc allyesconfig) failed like this: > > net/built-in.o: In function `michael_mic': > (.opd+0x3ba78): multiple definition of `michael_mic' > drivers/built-in.o:(.opd+0x552a8): first defined here > net/built-in.o: In function `michael_mic': > net/mac80211/michael.c:58: multiple definition of `.michael_mic' > drivers/built-in.o:drivers/net/wireless/orinoco/mic.c:49: first defined here > > Immediate cause is commit 84875201dd1150dc2c16780b944fe501d588ffba > ("orinoco: Move MIC helpers into new file"). > > I have reverted that commit (and several following ones that conflicted > with the revert - see below) for today. > -- > Cheers, > Stephen Rothwell sfr@xxxxxxxxxxxxxxxx > http://www.canb.auug.org.au/~sfr/ > > Created commit b6349c2: Revert "orinoco: Storage class should be before const qualifier" > Created commit ed58c78: Revert "orinoco: hermes doesn't need to be a separate module" > Created commit c52856e: Revert "orinoco: hermes_dld does not need to be a module" > Created commit ee9a469: Revert "orinoco: Move WEXT handlers into a separate file" > Created commit e668502: Revert "orinoco: Move hardware functions into separate file" > Created commit d8d7390: Revert "orinoco: Add hardware function to set multicast mode" > Created commit 6a4d487: Revert "orinoco: Use accessor functions for bitrate tables" > Created commit ecac0c1: Revert "orinoco: Move firmware handling into a separate file" > Created commit d2cf8c5: Revert "orinoco: Move MIC helpers into new file" I'll fix this up with a patch like below... John diff --git a/drivers/net/wireless/orinoco/main.c b/drivers/net/wireless/orinoco/main.c index 0cc1f05..f045444 100644 --- a/drivers/net/wireless/orinoco/main.c +++ b/drivers/net/wireless/orinoco/main.c @@ -931,7 +931,7 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev) len = MICHAEL_MIC_LEN; } - michael_mic(priv->tx_tfm_mic, + orinoco_mic(priv->tx_tfm_mic, priv->tkip_key[priv->tx_key].tx_mic, eh->h_dest, eh->h_source, 0 /* priority */, skb->data + ETH_HLEN, skb->len - ETH_HLEN, mic); @@ -1409,7 +1409,7 @@ static void orinoco_rx(struct net_device *dev, skb_trim(skb, skb->len - MICHAEL_MIC_LEN); length -= MICHAEL_MIC_LEN; - michael_mic(priv->rx_tfm_mic, + orinoco_mic(priv->rx_tfm_mic, priv->tkip_key[key_id].rx_mic, desc->addr1, src, diff --git a/drivers/net/wireless/orinoco/mic.c b/drivers/net/wireless/orinoco/mic.c index c39d9ea..8cdac75 100644 --- a/drivers/net/wireless/orinoco/mic.c +++ b/drivers/net/wireless/orinoco/mic.c @@ -16,18 +16,18 @@ /********************************************************************/ int orinoco_mic_init(struct orinoco_private *priv) { - priv->tx_tfm_mic = crypto_alloc_hash("michael_mic", 0, 0); + priv->tx_tfm_mic = crypto_alloc_hash("orinoco_mic", 0, 0); if (IS_ERR(priv->tx_tfm_mic)) { printk(KERN_DEBUG "orinoco_mic_init: could not allocate " - "crypto API michael_mic\n"); + "crypto API orinoco_mic\n"); priv->tx_tfm_mic = NULL; return -ENOMEM; } - priv->rx_tfm_mic = crypto_alloc_hash("michael_mic", 0, 0); + priv->rx_tfm_mic = crypto_alloc_hash("orinoco_mic", 0, 0); if (IS_ERR(priv->rx_tfm_mic)) { printk(KERN_DEBUG "orinoco_mic_init: could not allocate " - "crypto API michael_mic\n"); + "crypto API orinoco_mic\n"); priv->rx_tfm_mic = NULL; return -ENOMEM; } @@ -43,7 +43,7 @@ void orinoco_mic_free(struct orinoco_private *priv) crypto_free_hash(priv->rx_tfm_mic); } -int michael_mic(struct crypto_hash *tfm_michael, u8 *key, +int orinoco_mic(struct crypto_hash *tfm_michael, u8 *key, u8 *da, u8 *sa, u8 priority, u8 *data, size_t data_len, u8 *mic) { @@ -52,7 +52,7 @@ int michael_mic(struct crypto_hash *tfm_michael, u8 *key, u8 hdr[ETH_HLEN + 2]; /* size of header + padding */ if (tfm_michael == NULL) { - printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n"); + printk(KERN_WARNING "orinoco_mic: tfm_michael == NULL\n"); return -1; } diff --git a/drivers/net/wireless/orinoco/mic.h b/drivers/net/wireless/orinoco/mic.h index bc1db16..04d05bc 100644 --- a/drivers/net/wireless/orinoco/mic.h +++ b/drivers/net/wireless/orinoco/mic.h @@ -15,7 +15,7 @@ struct crypto_hash; int orinoco_mic_init(struct orinoco_private *priv); void orinoco_mic_free(struct orinoco_private *priv); -int michael_mic(struct crypto_hash *tfm_michael, u8 *key, +int orinoco_mic(struct crypto_hash *tfm_michael, u8 *key, u8 *da, u8 *sa, u8 priority, u8 *data, size_t data_len, u8 *mic); -- John W. Linville Someday the world will need a hero, and you linville@xxxxxxxxxxxxx might be all we have. Be ready. -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html