• Michael Reiss's avatar
    ucc_geth: NAPI-related bug fixes · 702ff12c
    Michael Reiss authored
    Based partly on the gianfar driver, this patch fixes several
    bugs which were causing NAPI to be completely unusable.
    * An IRQ is still needed in NAPI, to kick off NAPI task,
      and for Tx processing.  Request the IRQ.
    * If rx_work_limit = 0 we are not complete.
    * While running Rx NAPI processing we must mask Rx events,
      including Rx busy.
    * ucc_geth_rx function does not need a lock.
      Could lead to deadlock in NAPI case.
    * There's no need to loop reading ucce multiple times in the ISR,
      so while adding the call to schedule NAPI which was not there,
      simplify the event processing into if-else format.
    * Rx Busy now kicks off NAPI processing, while still
      being counted as an error.
    Signed-off-by: default avatarMichael Reiss <michael.f.reiss@freescale.com>
    Signed-off-by: default avatarMichael Barkowski <michael.barkowski@freescale.com>
    Signed-off-by: default avatarKim Phillips <kim.phillips@freescale.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    702ff12c
ucc_geth.c 118 KB