• Giuseppe CAVALLARO's avatar
    stmmac: fix concurrency in eee initialization. · 4741cf9c
    Giuseppe CAVALLARO authored
    This patch aims to fix the concurrency in eee initialization
    inside the stmmac driver and related warnings when enable
    DEBUG_ATOMIC_SLEEP.
    
    Prior this patch, the stmmac_eee_init could be called in several places
    as shown below:
    
    stmmac_open  stmmac_resume         PHY Layer
        |            |                     |
      stmmac_hw_setup           stmmac_adjust_link
        |                                  |           stmmac ethtool
        |__________________________|______________|
                                           |
                                     stmmac_eee_init
    
    The patch removes the stmmac_eee_init call inside the stmmac_hw_setup
    that is unnecessary. It is sufficient to call it in the adjust_link to
    always guarantee that EEE is always configured at mac level too.
    
    Fixing the lock protection now it is covered another case (not
    considered before). The stmmac_eee_init could be called by the ethtool
    so critical sections must be protected inside this function too.
    Signed-off-by: default avatarGiuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4741cf9c
stmmac_main.c 85.4 KB