goto use_random_mac_addr;
 
        /* search for beginning of vpd */
-       base = 0;
+       base = NULL;
        for (i = 2; i < EXPANSION_ROM_SIZE; i++) {
                /* check for PCIR */
                if ((readb(p + i + 0) == 0x50) &&
 /* Eventually add support for changing the advertisement
  * on autoneg.
  */
-static int cas_ethtool_ioctl(struct net_device *dev, void *ep_user)
+static int cas_ethtool_ioctl(struct net_device *dev, void __user *ep_user)
 {
        struct cas *cp = netdev_priv(dev);
        u16 bmcr;
                
        switch(ecmd.cmd) {
         case ETHTOOL_GDRVINFO: {
-               struct ethtool_drvinfo info = { cmd: ETHTOOL_GDRVINFO };
+               struct ethtool_drvinfo info = { .cmd = ETHTOOL_GDRVINFO };
 
                strncpy(info.driver, DRV_MODULE_NAME,
                        ETHTOOL_BUSINFO_LEN);
 
        /* get link status */
        case ETHTOOL_GLINK: {
-               struct ethtool_value edata = { cmd: ETHTOOL_GLINK };
+               struct ethtool_value edata = { .cmd = ETHTOOL_GLINK };
 
                edata.data = (cp->lstate == link_up);
                if (copy_to_user(ep_user, &edata, sizeof(edata)))
 
        /* get message-level */
        case ETHTOOL_GMSGLVL: {
-               struct ethtool_value edata = { cmd: ETHTOOL_GMSGLVL };
+               struct ethtool_value edata = { .cmd = ETHTOOL_GMSGLVL };
 
                edata.data = cp->msg_enable;
                if (copy_to_user(ep_user, &edata, sizeof(edata)))
 static int cas_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
        struct cas *cp = netdev_priv(dev);
-       struct mii_ioctl_data *data = (struct mii_ioctl_data *)&ifr->ifr_data;
+       struct mii_ioctl_data *data = if_mii(ifr);
        unsigned long flags;
        int rc = -EOPNOTSUPP;
        
                cas_shutdown(cp);
        up(&cp->pm_sem);
 
-       iounmap((void *) cp->regs);
+       iounmap(cp->regs);
 
 
 err_out_free_res:
 #endif
        pci_free_consistent(pdev, sizeof(struct cas_init_block),
                            cp->init_block, cp->block_dvma);
-       iounmap((void *) cp->regs);
+       iounmap(cp->regs);
        free_netdev(dev);
        pci_release_regions(pdev);
        pci_disable_device(pdev);
 }
 
 #ifdef CONFIG_PM
-static int cas_suspend(struct pci_dev *pdev, u32 state)
+static int cas_suspend(struct pci_dev *pdev, pm_message_t state)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
        struct cas *cp = netdev_priv(dev);