driver: net: fsl-mc: Fix DPC MAC address fixup
authorIoana Ciocoi Radulescu <ruxandra.radulescu@nxp.com>
Tue, 26 Feb 2019 15:50:07 +0000 (15:50 +0000)
committerPrabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Fri, 15 Mar 2019 06:22:00 +0000 (11:52 +0530)
If node /board_info/ports does not exist in the DPC file,
function mc_fixup_dpc() will skip not only MAC address fixup,
but also the cache flush at the end. This may cause the other
fixup changes (e.g. ICID related ones) to be ignored by MC.

Fixes: 1161dbcc0a36 ("drivers: net: fsl-mc: Include MAC addr fixup to DPL")

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
drivers/net/fsl-mc/mc.c

index a51b8a462546aa2b191dc62644e3d9dd57980020..e6cf7f336266a52a9bb2e63c8e455f0d771fd66c 100644 (file)
@@ -421,9 +421,11 @@ static int mc_fixup_dpc(u64 dpc_addr)
        /* fixup MAC addresses for dpmac ports */
        nodeoffset = fdt_path_offset(blob, "/board_info/ports");
        if (nodeoffset < 0)
-               return 0;
+               goto out;
 
        err = mc_fixup_mac_addrs(blob, MC_FIXUP_DPC);
+
+out:
        flush_dcache_range(dpc_addr, dpc_addr + fdt_totalsize(blob));
 
        return err;