Changeset 18165


Ignore:
Timestamp:
2009-10-26T18:17:13+01:00 (7 years ago)
Author:
juhosg
Message:

ramips: add error-path handling to the ramips_eth_plat_probe

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/files/drivers/net/ramips.c

    r18152 r18165  
    339339        struct raeth_priv *priv; 
    340340        struct ramips_eth_platform_data *data = plat->dev.platform_data; 
     341        int err; 
     342 
     343        if (!data) { 
     344                dev_err(&plat->dev, "no platform data specified\n"); 
     345                return -EINVAL; 
     346        } 
     347 
    341348        ramips_fe_base = ioremap_nocache(data->base_addr, PAGE_SIZE); 
    342349        if(!ramips_fe_base) 
    343350                return -ENOMEM; 
     351 
    344352        ramips_dev = alloc_etherdev(sizeof(struct raeth_priv)); 
    345         if(!ramips_dev) 
    346                 return -ENOMEM; 
     353        if(!ramips_dev) { 
     354                dev_err(&plat->dev, "alloc_etherdev failed\n"); 
     355                err = -ENOMEM; 
     356                goto err_unmap; 
     357        } 
     358 
    347359        strcpy(ramips_dev->name, "eth%d"); 
    348360        ramips_dev->irq = data->irq; 
     
    352364        priv = (struct raeth_priv*)netdev_priv(ramips_dev); 
    353365        priv->plat = data; 
    354         if(register_netdev(ramips_dev)) 
    355         { 
    356                 printk(KERN_ERR "ramips_eth: error bringing up device\n"); 
    357                 return -ENXIO; 
    358         } 
     366 
     367        err = register_netdev(ramips_dev); 
     368        if (err) { 
     369                dev_err(&plat->dev, "error bringing up device\n"); 
     370                goto err_free_dev; 
     371        } 
     372 
    359373#ifdef CONFIG_RALINK_RT305X 
    360374        rt305x_esw_init(); 
     
    362376        printk(KERN_DEBUG "ramips_eth: loaded\n"); 
    363377        return 0; 
     378 
     379 err_free_dev: 
     380        kfree(ramips_dev); 
     381 err_unmap: 
     382        iounmap(ramips_fe_base); 
     383        return err; 
    364384} 
    365385 
Note: See TracChangeset for help on using the changeset viewer.