Loading drivers/net/fec_mpc52xx.c +17 −21 Original line number Diff line number Diff line Loading @@ -875,17 +875,21 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (rv) { printk(KERN_ERR DRIVER_NAME ": " "Error while parsing device node resource\n" ); return rv; goto err_netdev; } if ((mem.end - mem.start + 1) < sizeof(struct mpc52xx_fec)) { printk(KERN_ERR DRIVER_NAME " - invalid resource size (%lx < %x), check mpc52xx_devices.c\n", (unsigned long)(mem.end - mem.start + 1), sizeof(struct mpc52xx_fec)); return -EINVAL; rv = -EINVAL; goto err_netdev; } if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec), DRIVER_NAME)) return -EBUSY; if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec), DRIVER_NAME)) { rv = -EBUSY; goto err_netdev; } /* Init ether ndev with what we have */ ndev->netdev_ops = &mpc52xx_fec_netdev_ops; Loading @@ -901,7 +905,7 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (!priv->fec) { rv = -ENOMEM; goto probe_error; goto err_mem_region; } /* Bestcomm init */ Loading @@ -914,7 +918,7 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (!priv->rx_dmatsk || !priv->tx_dmatsk) { printk(KERN_ERR DRIVER_NAME ": Can not init SDMA tasks\n" ); rv = -ENOMEM; goto probe_error; goto err_rx_tx_dmatsk; } /* Get the IRQ we need one by one */ Loading Loading @@ -966,33 +970,25 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) rv = register_netdev(ndev); if (rv < 0) goto probe_error; goto err_node; /* We're done ! */ dev_set_drvdata(&op->dev, ndev); return 0; /* Error handling - free everything that might be allocated */ probe_error: if (priv->phy_node) err_node: of_node_put(priv->phy_node); priv->phy_node = NULL; irq_dispose_mapping(ndev->irq); err_rx_tx_dmatsk: if (priv->rx_dmatsk) bcom_fec_rx_release(priv->rx_dmatsk); if (priv->tx_dmatsk) bcom_fec_tx_release(priv->tx_dmatsk); if (priv->fec) iounmap(priv->fec); err_mem_region: release_mem_region(mem.start, sizeof(struct mpc52xx_fec)); err_netdev: free_netdev(ndev); return rv; Loading Loading
drivers/net/fec_mpc52xx.c +17 −21 Original line number Diff line number Diff line Loading @@ -875,17 +875,21 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (rv) { printk(KERN_ERR DRIVER_NAME ": " "Error while parsing device node resource\n" ); return rv; goto err_netdev; } if ((mem.end - mem.start + 1) < sizeof(struct mpc52xx_fec)) { printk(KERN_ERR DRIVER_NAME " - invalid resource size (%lx < %x), check mpc52xx_devices.c\n", (unsigned long)(mem.end - mem.start + 1), sizeof(struct mpc52xx_fec)); return -EINVAL; rv = -EINVAL; goto err_netdev; } if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec), DRIVER_NAME)) return -EBUSY; if (!request_mem_region(mem.start, sizeof(struct mpc52xx_fec), DRIVER_NAME)) { rv = -EBUSY; goto err_netdev; } /* Init ether ndev with what we have */ ndev->netdev_ops = &mpc52xx_fec_netdev_ops; Loading @@ -901,7 +905,7 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (!priv->fec) { rv = -ENOMEM; goto probe_error; goto err_mem_region; } /* Bestcomm init */ Loading @@ -914,7 +918,7 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) if (!priv->rx_dmatsk || !priv->tx_dmatsk) { printk(KERN_ERR DRIVER_NAME ": Can not init SDMA tasks\n" ); rv = -ENOMEM; goto probe_error; goto err_rx_tx_dmatsk; } /* Get the IRQ we need one by one */ Loading Loading @@ -966,33 +970,25 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) rv = register_netdev(ndev); if (rv < 0) goto probe_error; goto err_node; /* We're done ! */ dev_set_drvdata(&op->dev, ndev); return 0; /* Error handling - free everything that might be allocated */ probe_error: if (priv->phy_node) err_node: of_node_put(priv->phy_node); priv->phy_node = NULL; irq_dispose_mapping(ndev->irq); err_rx_tx_dmatsk: if (priv->rx_dmatsk) bcom_fec_rx_release(priv->rx_dmatsk); if (priv->tx_dmatsk) bcom_fec_tx_release(priv->tx_dmatsk); if (priv->fec) iounmap(priv->fec); err_mem_region: release_mem_region(mem.start, sizeof(struct mpc52xx_fec)); err_netdev: free_netdev(ndev); return rv; Loading