• Michael Chan's avatar
    bnxt_en: Allow some TX packets to be unprocessed in NAPI · ba0155f1
    Michael Chan authored
    The driver's current logic will always free all the TX SKBs up to
    txr->tx_hw_cons within NAPI.  In the next patches, we'll be adding
    logic to handle TX timestamp completion and we may need to hold
    some remaining TX SKBs if we don't have the timestamp completions
    yet.
    
    Modify __bnxt_poll_work_done() to clear each event bit separately to
    allow bnapi->tx_int() to decide whether to clear BNXT_TX_CMP_EVENT or
    not.  bnapi->tx_int() will not clear BNXT_TX_CMP_EVENT if some TX
    SKBs are held waiting for TX timestamps.  Note that legacy chips will
    never hold any SKBs this way.  The SKB is always deferred to the PTP
    worker slow path to retrieve the timestamp from firmware.  On the new
    P7 chips, the timestamp is returned by the hardware directly and we
    can retrieve it directly from NAPI.
    Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
    Reviewed-by: default avatarAndy Gospodarek <andrew.gospodarek@broadcom.com>
    Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ba0155f1
bnxt.c 424 KB