• Gao Feng's avatar
    8139cp: Fix one possible deadloop in cp_rx_poll · b628d611
    Gao Feng authored
    When cp_rx_poll does not get enough packet, it will check the rx
    interrupt status again. If so, it will jumpt to rx_status_loop again.
    But the goto jump resets the rx variable as zero too.
    
    As a result, it causes one possible deadloop. Assume this case,
    rx_status_loop only gets the packet count which is less than budget,
    and (cpr16(IntrStatus) & cp_rx_intr_mask) condition is always true.
    It causes the deadloop happens and system is blocked.
    Signed-off-by: default avatarGao Feng <fgao@ikuai8.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b628d611
8139cp.c 56 KB