We were accessing the pointer returned from platform_get_resource before
checking if it was valid, causing an oops if it was not. Move this access
after the call to devm_ioremap_resource which does the validity check.

Signed-off-by: Robert Hancock <hanc...@sedsystems.ca>
---

This bug was introduced in my recent axienet patch series and so is only
needed on net-next.

 drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c 
b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index da420c8..561e28a 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -1679,13 +1679,13 @@ static int axienet_probe(struct platform_device *pdev)
        lp->tx_bd_num = TX_BD_NUM_DEFAULT;
        /* Map device registers */
        ethres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       lp->regs_start = ethres->start;
        lp->regs = devm_ioremap_resource(&pdev->dev, ethres);
        if (IS_ERR(lp->regs)) {
                dev_err(&pdev->dev, "could not map Axi Ethernet regs.\n");
                ret = PTR_ERR(lp->regs);
                goto free_netdev;
        }
+       lp->regs_start = ethres->start;
 
        /* Setup checksum offload, but default to off if not specified */
        lp->features = 0;
-- 
1.8.3.1

Reply via email to