diff options
Diffstat (limited to 'drivers/net/can/flexcan/flexcan-core.c')
| -rw-r--r-- | drivers/net/can/flexcan/flexcan-core.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/drivers/net/can/flexcan/flexcan-core.c b/drivers/net/can/flexcan/flexcan-core.c index f857968efed7..ccb438eca517 100644 --- a/drivers/net/can/flexcan/flexcan-core.c +++ b/drivers/net/can/flexcan/flexcan-core.c @@ -941,11 +941,6 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,  	u32 reg_ctrl, reg_id, reg_iflag1;  	int i; -	if (unlikely(drop)) { -		skb = ERR_PTR(-ENOBUFS); -		goto mark_as_read; -	} -  	mb = flexcan_get_mb(priv, n);  	if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) { @@ -974,6 +969,11 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,  		reg_ctrl = priv->read(&mb->can_ctrl);  	} +	if (unlikely(drop)) { +		skb = ERR_PTR(-ENOBUFS); +		goto mark_as_read; +	} +  	if (reg_ctrl & FLEXCAN_MB_CNT_EDL)  		skb = alloc_canfd_skb(offload->dev, &cfd);  	else | 
