diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-08 17:25:41 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-08 17:25:41 -0500 |
commit | 5fbbf5f648a9c4ef99276854f05b2255d1b004d3 (patch) | |
tree | 59c9ae762c3df2800e894001b3de58c5f1972486 /net/can/bcm.c | |
parent | ce279e6ec91c49f2c5f59f7492e19d39edbf8bbd (diff) | |
parent | 56cf391a9462a4897ea660a6af3662dda5ae8c84 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (84 commits)
wimax: fix kernel-doc for debufs_dentry member of struct wimax_dev
net: convert pegasus driver to net_device_ops
bnx2x: Prevent eeprom set when driver is down
net: switch kaweth driver to netdevops
pcnet32: round off carrier watch timer
i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM
wimax: testing for rfkill support should also test for CONFIG_RFKILL_MODULE
wimax: fix kconfig interactions with rfkill and input layers
wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning
r6040: bump release number to 0.20
r6040: warn about MAC address being unset
r6040: check PHY status when bringing interface up
r6040: make printks consistent with DRV_NAME
gianfar: Fixup use of BUS_ID_SIZE
mlx4_en: Returning real Max in get_ringparam
mlx4_en: Consider inline packets on completion
netdev: bfin_mac: enable bfin_mac net dev driver for BF51x
qeth: convert to net_device_ops
vlan: add neigh_setup
dm9601: warn on invalid mac address
...
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 | /* |