• Michael Chan's avatar
    bnxt_en: Fix netpoll handling. · 2270bc5d
    Michael Chan authored
    To handle netpoll properly, the driver must only handle TX packets
    during NAPI.  Handling RX events cause warnings and errors in
    netpoll mode. The ndo_poll_controller() method should call
    napi_schedule() directly so that a NAPI weight of zero will be used
    during netpoll mode.
    
    The bnxt_en driver supports 2 ring modes: combined, and separate rx/tx.
    In separate rx/tx mode, the ndo_poll_controller() method will only
    process the tx rings.  In combined mode, the rx and tx completion
    entries are mixed in the completion ring and we need to drop the rx
    entries and recycle the rx buffers.
    
    Add a function bnxt_force_rx_discard() to handle this in netpoll mode
    when we see rx entries in combined ring mode.
    Reported-by: default avatarCalvin Owens <calvinowens@fb.com>
    Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2270bc5d
bnxt.c 203 KB