Signed-off-by: Wolfgang Grandegger <[email protected]>
---
 drivers/net/can/dev.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index ac4ac92..400d871 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -476,6 +476,7 @@ EXPORT_SYMBOL_GPL(alloc_can_skb);
 
 struct sk_buff *alloc_can_err_skb(struct net_device *dev, struct can_frame 
**cf)
 {
+       struct can_priv *priv = netdev_priv(dev);
        struct sk_buff *skb;
 
        skb = alloc_can_skb(dev, cf);
@@ -485,6 +486,16 @@ struct sk_buff *alloc_can_err_skb(struct net_device *dev, 
struct can_frame **cf)
        (*cf)->can_id = CAN_ERR_FLAG;
        (*cf)->can_dlc = CAN_ERR_DLC;
 
+       /* For each message, add TX and RX error counters */
+       if (priv->do_get_berr_counter) {
+               struct can_berr_counter bec;
+
+               if (!priv->do_get_berr_counter(dev, &bec)) {
+                       (*cf)->data[6] = bec.txerr;
+                       (*cf)->data[7] = bec.rxerr;
+               }
+       }
+
        return skb;
 }
 EXPORT_SYMBOL_GPL(alloc_can_err_skb);
-- 
1.7.4.1

_______________________________________________
Socketcan-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-users

Reply via email to