diff options
Diffstat (limited to 'net/can/bcm.c')
-rw-r--r-- | net/can/bcm.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/net/can/bcm.c b/net/can/bcm.c index 6248ae2502c7..1649c8ab2c2f 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
@@ -633,7 +633,7 @@ static void bcm_rx_handler(struct sk_buff *skb, void *data) | |||
633 | hrtimer_cancel(&op->timer); | 633 | hrtimer_cancel(&op->timer); |
634 | 634 | ||
635 | if (op->can_id != rxframe->can_id) | 635 | if (op->can_id != rxframe->can_id) |
636 | goto rx_freeskb; | 636 | return; |
637 | 637 | ||
638 | /* save rx timestamp */ | 638 | /* save rx timestamp */ |
639 | op->rx_stamp = skb->tstamp; | 639 | op->rx_stamp = skb->tstamp; |
@@ -645,19 +645,19 @@ static void bcm_rx_handler(struct sk_buff *skb, void *data) | |||
645 | if (op->flags & RX_RTR_FRAME) { | 645 | if (op->flags & RX_RTR_FRAME) { |
646 | /* send reply for RTR-request (placed in op->frames[0]) */ | 646 | /* send reply for RTR-request (placed in op->frames[0]) */ |
647 | bcm_can_tx(op); | 647 | bcm_can_tx(op); |
648 | goto rx_freeskb; | 648 | return; |
649 | } | 649 | } |
650 | 650 | ||
651 | if (op->flags & RX_FILTER_ID) { | 651 | if (op->flags & RX_FILTER_ID) { |
652 | /* the easiest case */ | 652 | /* the easiest case */ |
653 | bcm_rx_update_and_send(op, &op->last_frames[0], rxframe); | 653 | bcm_rx_update_and_send(op, &op->last_frames[0], rxframe); |
654 | goto rx_freeskb_starttimer; | 654 | goto rx_starttimer; |
655 | } | 655 | } |
656 | 656 | ||
657 | if (op->nframes == 1) { | 657 | if (op->nframes == 1) { |
658 | /* simple compare with index 0 */ | 658 | /* simple compare with index 0 */ |
659 | bcm_rx_cmp_to_index(op, 0, rxframe); | 659 | bcm_rx_cmp_to_index(op, 0, rxframe); |
660 | goto rx_freeskb_starttimer; | 660 | goto rx_starttimer; |
661 | } | 661 | } |
662 | 662 | ||
663 | if (op->nframes > 1) { | 663 | if (op->nframes > 1) { |
@@ -678,10 +678,8 @@ static void bcm_rx_handler(struct sk_buff *skb, void *data) | |||
678 | } | 678 | } |
679 | } | 679 | } |
680 | 680 | ||
681 | rx_freeskb_starttimer: | 681 | rx_starttimer: |
682 | bcm_rx_starttimer(op); | 682 | bcm_rx_starttimer(op); |
683 | rx_freeskb: | ||
684 | kfree_skb(skb); | ||
685 | } | 683 | } |
686 | 684 | ||
687 | /* | 685 | /* |