control |= MAC_FULL_DUPLEX;
        }
 
-       /* fix for startup without cable */
-       if (!link) 
-               dev->flags &= ~IFF_RUNNING;
-
        aup->mac->control = control;
        aup->mac->vlan1_tag = 0x8100; /* activate vlan support */
        au_sync();
        if_port = dev->if_port;
        if (aup->phy_ops->phy_status(dev, aup->phy_addr, &link, &speed) == 0) {
                if (link) {
-                       if (!(dev->flags & IFF_RUNNING)) {
+                       if (!netif_carrier_ok(dev)) {
                                netif_carrier_on(dev);
-                               dev->flags |= IFF_RUNNING;
                                printk(KERN_INFO "%s: link up\n", dev->name);
                        }
                }
                else {
-                       if (dev->flags & IFF_RUNNING) {
+                       if (netif_carrier_ok(dev)) {
                                netif_carrier_off(dev);
-                               dev->flags &= ~IFF_RUNNING;
                                dev->if_port = 0;
                                printk(KERN_INFO "%s: link down\n", dev->name);
                        }
 
        bp->opened = 1;
        bmac_reset_and_enable(dev);
        enable_irq(dev->irq);
-       dev->flags |= IFF_RUNNING;
        return 0;
 }
 
        int i;
 
        bp->sleeping = 1;
-       dev->flags &= ~(IFF_UP | IFF_RUNNING);
 
        /* disable rx and tx */
        config = bmread(dev, RXCFG);
 
                        Flags);
 
                SkGeStopPort(pAC, IoC, FromPort, SK_STOP_ALL, SK_HARD_RST);
-               pAC->dev[Param.Para32[0]]->flags &= ~IFF_RUNNING;
+               netif_carrier_off(pAC->dev[Param.Para32[0]]);
                spin_unlock_irqrestore(
                        &pAC->TxPort[FromPort][TX_PRIO_LOW].TxDesRingLock,
                        Flags);
                }
 
                /* Inform the world that link protocol is up. */
-               pAC->dev[Param.Para32[0]]->flags |= IFF_RUNNING;
+               netif_carrier_on(pAC->dev[Param.Para32[0]]);
 
                break;
        case SK_DRV_NET_DOWN:    /* SK_U32 Reason */
                } else {
                        DoPrintInterfaceChange = SK_TRUE;
                }
-               pAC->dev[Param.Para32[1]]->flags &= ~IFF_RUNNING;
+               netif_carrier_off(pAC->dev[Param.Para32[1]]);
                break;
        case SK_DRV_SWITCH_HARD: /* SK_U32 FromPortIdx SK_U32 ToPortIdx */
                SK_DBG_MSG(NULL, SK_DBGMOD_DRV, SK_DBGCAT_DRV_EVENT,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        dev->poll_controller =  &SkGePollController;
 #endif
-       dev->flags &=           ~IFF_RUNNING;
        SET_NETDEV_DEV(dev, &pdev->dev);
        SET_ETHTOOL_OPS(dev, &SkGeEthtoolOps);
 
                dev->set_mac_address    = &SkGeSetMacAddr;
                dev->do_ioctl           = &SkGeIoctl;
                dev->change_mtu         = &SkGeChangeMtu;
-               dev->flags             &= ~IFF_RUNNING;
                SET_NETDEV_DEV(dev, &pdev->dev);
                SET_ETHTOOL_OPS(dev, &SkGeEthtoolOps);
 
 
               if (priv->link) {
                      priv->link = 0;
                      printk(KERN_DEBUG "TLAN: %s has lost link\n", dev->name);
-                     dev->flags &= ~IFF_RUNNING;
+                     netif_carrier_off(dev);
                      TLan_SetTimer( dev, (2*HZ), TLAN_TIMER_LINK_BEAT );
                      return;
                }
         if ((phy_status & MII_GS_LINK) && !priv->link) {
                priv->link = 1;
                printk(KERN_DEBUG "TLAN: %s has reestablished link\n", dev->name);
-               dev->flags |= IFF_RUNNING;
+               netif_carrier_on(dev);
         }
 
        /* Setup a new monitor */
 
        ti->sap_status   = CLOSED; /* CLOSED or OPEN      */
        ti->open_failure =     NO; /* NO     or YES       */
        ti->open_mode    = MANUAL; /* MANUAL or AUTOMATIC */
-       /* 12/2000 not typical Linux, but we can use RUNNING to let us know when
-       the network has crapped out or cables are disconnected. Useful because
-       the IFF_UP flag stays up the whole time, until ifconfig tr0 down.
-       */
-       dev->flags &= ~IFF_RUNNING;
 
        ti->sram_phys &= ~1; /* to reverse what we do in tok_close */
        /* init the spinlock */
                ti->open_status = CLOSED;
                ti->sap_status  = CLOSED;
                ti->open_mode   = AUTOMATIC;
-               dev->flags &= ~IFF_RUNNING;
+               netif_carrier_off(dev);
                netif_stop_queue(dev);
                ti->open_action = RESTART;
                outb(0, dev->base_addr + ADAPTRESET);
                                break;
                        }
                        netif_wake_queue(dev);
-                       dev->flags |= IFF_RUNNING;/*BMS 12/2000*/
+                       netif_carrier_on(dev);
                        break;
                case DIR_INTERRUPT:
                case DIR_MOD_OPEN_PARAMS:
                                                                ring_status);
                        if(ring_status& (REMOVE_RECV|AUTO_REMOVAL|LOBE_FAULT)){
                                netif_stop_queue(dev);
-                               dev->flags &= ~IFF_RUNNING;/*not typical Linux*/
+                               netif_carrier_off(dev);
                                DPRINTK("Remove received, or Auto-removal error"
                                        ", or Lobe fault\n");
                                DPRINTK("We'll try to reopen the closed adapter"
 
         /* lmc_reset (sc); Why reset??? The link can go down ok */
 
         /* Inform the world that link has been lost */
-        dev->flags &= ~IFF_RUNNING;
+       netif_carrier_off(dev);
     }
 
     /*
          /* lmc_reset (sc); Again why reset??? */
 
          /* Inform the world that link protocol is back up. */
-         dev->flags |= IFF_RUNNING;
+        netif_carrier_on(dev);
 
          /* Now we have to tell the syncppp that we had an outage
           * and that it should deal.  Calling sppp_reopen here
     sc->lmc_media->set_link_status (sc, 1);
     sc->lmc_media->set_status (sc, NULL);
 
-    //dev->flags |= IFF_RUNNING;
-    
     netif_wake_queue(dev);
 
     sc->lmc_txfull = 0;
     csr6 &= ~LMC_DEC_SR;               /* Turn off the Receive bit */
     LMC_CSR_WRITE (sc, csr_command, csr6);
 
-    dev->flags &= ~IFF_RUNNING;
-
     sc->stats.rx_missed_errors +=
         LMC_CSR_READ (sc, csr_missed_frames) & 0xffff;
 
 
 #define        IFF_LOOPBACK    0x8             /* is a loopback net            */
 #define        IFF_POINTOPOINT 0x10            /* interface is has p-p link    */
 #define        IFF_NOTRAILERS  0x20            /* avoid use of trailers        */
-#define        IFF_RUNNING     0x40            /* resources allocated          */
+#define        IFF_RUNNING     0x40            /* interface running and carrier ok */
 #define        IFF_NOARP       0x80            /* no ARP protocol              */
 #define        IFF_PROMISC     0x100           /* receive all packets          */
 #define        IFF_ALLMULTI    0x200           /* receive all multicast packets*/