• Heyi Guo's avatar
    drivers/net/ftgmac100: fix DHCP potential failure with systemd · 1baf2e50
    Heyi Guo authored
    DHCP failures were observed with systemd 247.6. The issue could be
    reproduced by rebooting Aspeed 2600 and then running ifconfig ethX
    down/up.
    
    It is caused by below procedures in the driver:
    
    1. ftgmac100_open() enables net interface and call phy_start()
    2. When PHY is link up, it calls netif_carrier_on() and then
    adjust_link callback
    3. ftgmac100_adjust_link() will schedule the reset task
    4. ftgmac100_reset_task() will then reset the MAC in another schedule
    
    After step 2, systemd will be notified to send DHCP discover packet,
    while the packet might be corrupted by MAC reset operation in step 4.
    
    Call ftgmac100_reset() directly instead of scheduling task to fix the
    issue.
    Signed-off-by: default avatarHeyi Guo <guoheyi@linux.alibaba.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1baf2e50
ftgmac100.c 51.5 KB