• Christian Marangi's avatar
    net: ethernet: mediatek: disable irq before schedule napi · fcdfc462
    Christian Marangi authored
    While searching for possible refactor of napi_schedule_prep and
    __napi_schedule it was notice that the mtk eth driver disable the
    interrupt for rx and tx AFTER napi is scheduled.
    
    While this is a very hard to repro case it might happen to have
    situation where the interrupt is disabled and never enabled again as the
    napi completes and the interrupt is enabled before.
    
    This is caused by the fact that a napi driven by interrupt expect a
    logic with:
    1. interrupt received. napi prepared -> interrupt disabled -> napi
       scheduled
    2. napi triggered. ring cleared -> interrupt enabled -> wait for new
       interrupt
    
    To prevent this case, disable the interrupt BEFORE the napi is
    scheduled.
    
    Fixes: 656e7052 ("net-next: mediatek: add support for MT7623 ethernet")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
    Link: https://lore.kernel.org/r/20231002140805.568-1-ansuelsmth@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    fcdfc462
mtk_eth_soc.c 129 KB