There is no reason to not test for the mailbox_read callback presence in can_rx_offload_add_timestamp. When adding that test, it can as well call can_rx_offload_add_fifo. Signed-off-by: Kurt Van Dijck <dev.kurt@xxxxxxxxxxxxxxxxxxxxxx> --- drivers/net/can/rx-offload.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/net/can/rx-offload.c b/drivers/net/can/rx-offload.c index a8acb2a..4796887 100644 --- a/drivers/net/can/rx-offload.c +++ b/drivers/net/can/rx-offload.c @@ -261,8 +261,18 @@ int can_rx_offload_queue_tail(struct can_rx_offload *offload, } EXPORT_SYMBOL_GPL(can_rx_offload_queue_tail); -static int can_rx_offload_init_queue(struct net_device *dev, struct can_rx_offload *offload, unsigned int weight) +static int can_rx_offload_irq_inval(struct can_rx_offload *offload) { + netdev_err_once(offload->dev, "%s called\n", + __func__); + return 0; +} + +int can_rx_offload_add_fifo(struct net_device *dev, struct can_rx_offload *offload, unsigned int weight) +{ + if (!offload->mailbox_read) + return -EINVAL; + offload->dev = dev; /* Limit queue len to 4x the weight (rounted to next power of two) */ @@ -278,6 +288,7 @@ static int can_rx_offload_init_queue(struct net_device *dev, struct can_rx_offlo return 0; } +EXPORT_SYMBOL_GPL(can_rx_offload_add_fifo); int can_rx_offload_add_timestamp(struct net_device *dev, struct can_rx_offload *offload) { @@ -295,19 +306,10 @@ int can_rx_offload_add_timestamp(struct net_device *dev, struct can_rx_offload * weight = offload->mb_first - offload->mb_last; } - return can_rx_offload_init_queue(dev, offload, weight); + return can_rx_offload_add_fifo(dev, offload, weight); } EXPORT_SYMBOL_GPL(can_rx_offload_add_timestamp); -int can_rx_offload_add_fifo(struct net_device *dev, struct can_rx_offload *offload, unsigned int weight) -{ - if (!offload->mailbox_read) - return -EINVAL; - - return can_rx_offload_init_queue(dev, offload, weight); -} -EXPORT_SYMBOL_GPL(can_rx_offload_add_fifo); - void can_rx_offload_enable(struct can_rx_offload *offload) { can_rx_offload_reset(offload); -- 1.8.5.rc3