• Martin Blumenstingl's avatar
    net: stmmac: initialize the reset delay array · 84ce4d0f
    Martin Blumenstingl authored
    Commit ce4ab73a ("net: stmmac: drop the reset delays from struct
    stmmac_mdio_bus_data") moved the reset delay array from struct
    stmmac_mdio_bus_data to a stack variable.
    The values from the array inside struct stmmac_mdio_bus_data were
    previously initialized to 0 because the struct was allocated using
    devm_kzalloc(). The array on the stack has to be initialized
    explicitly, else we might be reading garbage values.
    
    Initialize all reset delays to 0 to ensure that the values are 0 if the
    "snps,reset-delays-us" property is not defined.
    This fixes booting at least two boards (MIPS pistachio marduk and ARM
    sun8i H2+ Orange Pi Zero). These are hanging during boot when
    initializing the stmmac Ethernet controller (as found by Kernel CI).
    Both have in common that they don't define the "snps,reset-delays-us"
    property.
    
    Fixes: ce4ab73a ("net: stmmac: drop the reset delays from struct stmmac_mdio_bus_data")
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reported-by: default avatar"kernelci.org bot" <bot@kernelci.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    84ce4d0f
stmmac_mdio.c 10.9 KB