#define DEF_STAT               (2 * TICKS_PER_SEC)
 
 
-static int link[ACE_MAX_MOD_PARMS];
+static int link_state[ACE_MAX_MOD_PARMS];
 static int trace[ACE_MAX_MOD_PARMS];
 static int tx_coal_tick[ACE_MAX_MOD_PARMS];
 static int rx_coal_tick[ACE_MAX_MOD_PARMS];
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("AceNIC/3C985/GA620 Gigabit Ethernet driver");
 
-module_param_array(link, int, NULL, 0);
+module_param_array_named(link, link_state, int, NULL, 0);
 module_param_array(trace, int, NULL, 0);
 module_param_array(tx_coal_tick, int, NULL, 0);
 module_param_array(max_tx_desc, int, NULL, 0);
 
        mac1 = 0;
        for(i = 0; i < 4; i++) {
-               int tmp;
+               int t;
 
                mac1 = mac1 << 8;
-               tmp = read_eeprom_byte(dev, 0x8c+i);
-               if (tmp < 0) {
+               t = read_eeprom_byte(dev, 0x8c+i);
+               if (t < 0) {
                        ecode = -EIO;
                        goto init_error;
                } else
-                       mac1 |= (tmp & 0xff);
+                       mac1 |= (t & 0xff);
        }
        mac2 = 0;
        for(i = 4; i < 8; i++) {
-               int tmp;
+               int t;
 
                mac2 = mac2 << 8;
-               tmp = read_eeprom_byte(dev, 0x8c+i);
-               if (tmp < 0) {
+               t = read_eeprom_byte(dev, 0x8c+i);
+               if (t < 0) {
                        ecode = -EIO;
                        goto init_error;
                } else
-                       mac2 |= (tmp & 0xff);
+                       mac2 |= (t & 0xff);
        }
 
        writel(mac1, ®s->MacAddrHi);
        writel(TX_RING_BASE, ®s->WinBase);
 
        if (ACE_IS_TIGON_I(ap)) {
-               ap->tx_ring = (struct tx_desc *) regs->Window;
+               ap->tx_ring = (__force struct tx_desc *) regs->Window;
                for (i = 0; i < (TIGON_I_TX_RING_ENTRIES
                                 * sizeof(struct tx_desc)) / sizeof(u32); i++)
-                       writel(0, (void __iomem *)ap->tx_ring  + i * 4);
+                       writel(0, (__force void __iomem *)ap->tx_ring  + i * 4);
 
                set_aceaddr(&info->tx_ctrl.rngptr, TX_RING_BASE);
        } else {
        /*
         * Override link default parameters
         */
-       if ((board_idx >= 0) && link[board_idx]) {
-               int option = link[board_idx];
+       if ((board_idx >= 0) && link_state[board_idx]) {
+               int option = link_state[board_idx];
 
                tmp = LNK_ENABLE;
 
 
                if (mapping) {
                        if (ACE_IS_TIGON_I(ap)) {
-                               struct tx_desc __iomem *tx
-                                       = (struct tx_desc __iomem *) &ap->tx_ring[i];
+                               /* NB: TIGON_1 is special, tx_ring is in io space */
+                               struct tx_desc __iomem *tx;
+                               tx = (__force struct tx_desc __iomem *) &ap->tx_ring[i];
                                writel(0, &tx->addr.addrhi);
                                writel(0, &tx->addr.addrlo);
                                writel(0, &tx->flagsize);
 #endif
 
        if (ACE_IS_TIGON_I(ap)) {
-               struct tx_desc __iomem *io = (struct tx_desc __iomem *) desc;
+               struct tx_desc __iomem *io = (__force struct tx_desc __iomem *) desc;
                writel(addr >> 32, &io->addr.addrhi);
                writel(addr & 0xffffffff, &io->addr.addrlo);
                writel(flagsize, &io->flagsize);
  * This operation requires the NIC to be halted and is performed with
  * interrupts disabled and with the spinlock hold.
  */
-int __devinit ace_load_firmware(struct net_device *dev)
+static int __devinit ace_load_firmware(struct net_device *dev)
 {
        struct ace_private *ap = netdev_priv(dev);
        struct ace_regs __iomem *regs = ap->regs;
 
                 * (these values all come from National)
                 */
                if (!(data & 0x80) || ((data >= 0xd8) && (data <= 0xff))) {
-                       struct netdev_private *np = netdev_priv(dev);
+                       np = netdev_priv(dev);
 
                        /* the bug has been triggered - fix the coefficient */
                        writew(TSTDAT_FIXED, ioaddr + TSTDAT);
                memset(mc_filter, 0, sizeof(mc_filter));
                for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
                         i++, mclist = mclist->next) {
-                       int i = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 23) & 0x1ff;
-                       mc_filter[i/8] |= (1 << (i & 0x07));
+                       int b = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 23) & 0x1ff;
+                       mc_filter[b/8] |= (1 << (b & 0x07));
                }
                rx_mode = RxFilterEnable | AcceptBroadcast
                        | AcceptMulticast | AcceptMyPhys;
 
  */
 static int bdx_change_mtu(struct net_device *ndev, int new_mtu)
 {
-       BDX_ASSERT(ndev == 0);
        ENTER;
 
        if (new_mtu == ndev->mtu)
 static int bdx_rx_init(struct bdx_priv *priv)
 {
        ENTER;
-       BDX_ASSERT(priv == 0);
+
        if (bdx_fifo_init(priv, &priv->rxd_fifo0.m, priv->rxd_size,
                          regRXD_CFG0_0, regRXD_CFG1_0,
                          regRXD_RPTR_0, regRXD_WPTR_0))
                tx_level -= db->rptr->len;      /* '-' koz len is negative */
 
                /* now should come skb pointer - free it */
-               BDX_ASSERT(db->rptr->addr.skb == 0);
                dev_kfree_skb_irq(db->rptr->addr.skb);
                bdx_tx_db_inc_rptr(db);
        }