• Martin Roth's avatar
    82xx: FCC: Fixing a bug causing to FCC port lock-up (second try) · 426f0468
    Martin Roth authored
    This is an additional patch to the one already submitted recently.
    The previous patch was not complete, and the FCC port lock-up scenario
    has been reproduced in lab.
    I had an opportunity to check the current patch in lab and the FCC
    port lock no longer freezes, while the previous patch still locks-up the
    FCC port.
    The current patch fixes a pointer arithmetic bug (second bug in the same
    line), which leads FCC port lock-up during underrun/collision handling.
    Within the tx_startup() function in mac-fcc.c, the address of last BD is
    not calculated correctly. As a result of wrong calculation of the last BD
    address, the next transmitted BD may be set to an area out of the transmit
    BD ring. This actually causes to port lock-up and it is not recoverable.
    Signed-off-by: default avatarMartin Roth <martin.roth@motorolasolutions.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    426f0468
mac-fcc.c 15.8 KB