static void be_shutdown(struct pci_dev *pdev)
  {
        struct be_adapter *adapter = pci_get_drvdata(pdev);
-       struct net_device *netdev =  adapter->netdev;
+ 
+       if (!adapter)
+               return;
  
 -      if (netif_running(adapter->netdev))
 -              cancel_delayed_work_sync(&adapter->work);
 +      cancel_delayed_work_sync(&adapter->work);
  
-       netif_device_detach(netdev);
+       netif_device_detach(adapter->netdev);
  
        be_cmd_reset_function(adapter);
  
 
        struct smsc911x_data *pdata = netdev_priv(dev);
        unsigned int byte_test;
  
 -      SMSC_TRACE(PROBE, "Driver Parameters:");
 -      SMSC_TRACE(PROBE, "LAN base: 0x%08lX",
 -              (unsigned long)pdata->ioaddr);
 -      SMSC_TRACE(PROBE, "IRQ: %d", dev->irq);
 -      SMSC_TRACE(PROBE, "PHY will be autodetected.");
 +      SMSC_TRACE(pdata, probe, "Driver Parameters:");
 +      SMSC_TRACE(pdata, probe, "LAN base: 0x%08lX",
 +                 (unsigned long)pdata->ioaddr);
 +      SMSC_TRACE(pdata, probe, "IRQ: %d", dev->irq);
 +      SMSC_TRACE(pdata, probe, "PHY will be autodetected.");
  
        spin_lock_init(&pdata->dev_lock);
+       spin_lock_init(&pdata->mac_lock);
  
        if (pdata->ioaddr == 0) {
 -              SMSC_WARNING(PROBE, "pdata->ioaddr: 0x00000000");
 +              SMSC_WARN(pdata, probe, "pdata->ioaddr: 0x00000000");
                return -ENODEV;
        }
  
  
        retval = register_netdev(dev);
        if (retval) {
 -              SMSC_WARNING(PROBE,
 -                      "Error %i registering device", retval);
 +              SMSC_WARN(pdata, probe, "Error %i registering device", retval);
                goto out_unset_drvdata_4;
        } else {
 -              SMSC_TRACE(PROBE, "Network interface: \"%s\"", dev->name);
 +              SMSC_TRACE(pdata, probe,
 +                         "Network interface: \"%s\"", dev->name);
        }
  
-       spin_lock_init(&pdata->mac_lock);
- 
        retval = smsc911x_mii_init(pdev, dev);
        if (retval) {
 -              SMSC_WARNING(PROBE,
 -                      "Error %i initialising mii", retval);
 +              SMSC_WARN(pdata, probe, "Error %i initialising mii", retval);
                goto out_unregister_netdev_5;
        }