• Jeroen Hofstee's avatar
    can: rx-offload: can_rx_offload_irq_offload_timestamp(): continue on error · c2a9f74c
    Jeroen Hofstee authored
    In case of a resource shortage, i.e. the rx_offload queue will overflow
    or a skb fails to be allocated (due to OOM),
    can_rx_offload_offload_one() will call mailbox_read() to discard the
    mailbox and return an ERR_PTR.
    
    However can_rx_offload_irq_offload_timestamp() bails out in the error
    case. In case of a resource shortage all mailboxes should be discarded,
    to avoid an IRQ storm and give the system some time to recover.
    
    Since can_rx_offload_irq_offload_timestamp() is typically called from a
    while loop, all message will eventually be discarded. So let's continue
    on error instead to discard them directly.
    Signed-off-by: default avatarJeroen Hofstee <jhofstee@victronenergy.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    c2a9f74c
rx-offload.c 9.62 KB