summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authortangweikang <[email protected]>2019-08-30 16:11:46 +0800
committertangweikang <[email protected]>2019-08-30 16:11:46 +0800
commit0f74ee7e20cf8c54ec967da7f6ac1ab472a723a2 (patch)
tree7f22179e6b844e1106f6bf30a606cb1d9620ba7a /components/drivers
parentb76d3dac8a92b36993169e5d38a6960b3210af04 (diff)
parent779d86f1daba7e7118e58419e669d4c2d91968b1 (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread into drv_encoder
# Conflicts: # components/drivers/misc/encoder.c
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/can/can.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c
index 48604993b9..3d60dbaa55 100644
--- a/components/drivers/can/can.c
+++ b/components/drivers/can/can.c
@@ -853,7 +853,10 @@ void rt_hw_can_isr(struct rt_can_device *can, int event)
level = rt_hw_interrupt_disable();
rx_length = can->hdr[hdr].msgs * sizeof(struct rt_can_msg);
rt_hw_interrupt_enable(level);
- can->hdr[hdr].filter.ind(&can->parent, can->hdr[hdr].filter.args, hdr, rx_length);
+ if (rx_length)
+ {
+ can->hdr[hdr].filter.ind(&can->parent, can->hdr[hdr].filter.args, hdr, rx_length);
+ }
}
else
#endif
@@ -867,7 +870,10 @@ void rt_hw_can_isr(struct rt_can_device *can, int event)
rx_length = rt_list_len(&rx_fifo->uselist)* sizeof(struct rt_can_msg);
rt_hw_interrupt_enable(level);
- can->parent.rx_indicate(&can->parent, rx_length);
+ if (rx_length)
+ {
+ can->parent.rx_indicate(&can->parent, rx_length);
+ }
}
}
break;