diff options
Diffstat (limited to 'drivers/net/can/xilinx_can.c')
-rw-r--r-- | drivers/net/can/xilinx_can.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c index fc55e8e0351d..51670b322409 100644 --- a/drivers/net/can/xilinx_can.c +++ b/drivers/net/can/xilinx_can.c | |||
@@ -608,17 +608,15 @@ static void xcan_err_interrupt(struct net_device *ndev, u32 isr) | |||
608 | 608 | ||
609 | /* Check for error interrupt */ | 609 | /* Check for error interrupt */ |
610 | if (isr & XCAN_IXR_ERROR_MASK) { | 610 | if (isr & XCAN_IXR_ERROR_MASK) { |
611 | if (skb) { | 611 | if (skb) |
612 | cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; | 612 | cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; |
613 | cf->data[2] |= CAN_ERR_PROT_UNSPEC; | ||
614 | } | ||
615 | 613 | ||
616 | /* Check for Ack error interrupt */ | 614 | /* Check for Ack error interrupt */ |
617 | if (err_status & XCAN_ESR_ACKER_MASK) { | 615 | if (err_status & XCAN_ESR_ACKER_MASK) { |
618 | stats->tx_errors++; | 616 | stats->tx_errors++; |
619 | if (skb) { | 617 | if (skb) { |
620 | cf->can_id |= CAN_ERR_ACK; | 618 | cf->can_id |= CAN_ERR_ACK; |
621 | cf->data[3] |= CAN_ERR_PROT_LOC_ACK; | 619 | cf->data[3] = CAN_ERR_PROT_LOC_ACK; |
622 | } | 620 | } |
623 | } | 621 | } |
624 | 622 | ||
@@ -654,8 +652,7 @@ static void xcan_err_interrupt(struct net_device *ndev, u32 isr) | |||
654 | stats->rx_errors++; | 652 | stats->rx_errors++; |
655 | if (skb) { | 653 | if (skb) { |
656 | cf->can_id |= CAN_ERR_PROT; | 654 | cf->can_id |= CAN_ERR_PROT; |
657 | cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ | | 655 | cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ; |
658 | CAN_ERR_PROT_LOC_CRC_DEL; | ||
659 | } | 656 | } |
660 | } | 657 | } |
661 | priv->can.can_stats.bus_error++; | 658 | priv->can.can_stats.bus_error++; |