diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-11-21 20:20:36 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-11-21 20:20:36 -0500 |
| commit | 8a84e01e147f44111988f9d8ccd2eaa30215a0f2 (patch) | |
| tree | 77617b3ab40f5c97575400db348b120c36871ed8 | |
| parent | 928352e9eebabb814d0c38af1772af55677faf62 (diff) | |
| parent | 0c228e833c88e3aa029250f5db77d5968c5ce5b5 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix BUG when decrypting empty packets in mac80211, from Ronald Wahl.
2) nf_nat_range is not fully initialized and this is copied back to
userspace, from Daniel Borkmann.
3) Fix read past end of b uffer in netfilter ipset, also from Dan
Carpenter.
4) Signed integer overflow in ipv4 address mask creation helper
inet_make_mask(), from Vincent BENAYOUN.
5) VXLAN, be2net, mlx4_en, and qlcnic need ->ndo_gso_check() methods to
properly describe the device's capabilities, from Joe Stringer.
6) Fix memory leaks and checksum miscalculations in openvswitch, from
Pravin B SHelar and Jesse Gross.
7) FIB rules passes back ambiguous error code for unreachable routes,
making behavior confusing for userspace. Fix from Panu Matilainen.
8) ieee802154fake_probe() doesn't release resources properly on error,
from Alexey Khoroshilov.
9) Fix skb_over_panic in add_grhead(), from Daniel Borkmann.
10) Fix access of stale slave pointers in bonding code, from Nikolay
Aleksandrov.
11) Fix stack info leak in PPP pptp code, from Mathias Krause.
12) Cure locking bug in IPX stack, from Jiri Bohac.
13) Revert SKB fclone memory freeing optimization that is racey and can
allow accesses to freed up memory, from Eric Dumazet.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (71 commits)
tcp: Restore RFC5961-compliant behavior for SYN packets
net: Revert "net: avoid one atomic operation in skb_clone()"
virtio-net: validate features during probe
cxgb4 : Fix DCB priority groups being returned in wrong order
ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg
openvswitch: Don't validate IPv6 label masks.
pptp: fix stack info leak in pptp_getname()
brcmfmac: don't include linux/unaligned/access_ok.h
cxgb4i : Don't block unload/cxgb4 unload when remote closes TCP connection
ipv6: delete protocol and unregister rtnetlink when cleanup
net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too
bonding: fix curr_active_slave/carrier with loadbalance arp monitoring
mac80211: minstrel_ht: fix a crash in rate sorting
vxlan: Inline vxlan_gso_check().
can: m_can: update to support CAN FD features
can: m_can: fix incorrect error messages
can: m_can: add missing delay after setting CCCR_INIT bit
can: m_can: fix not set can_dlc for remote frame
can: m_can: fix possible sleep in napi poll
can: m_can: add missing message RAM initialization
...
64 files changed, 500 insertions, 299 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index c9ac06cfe6b7..a5115fb7cf33 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -2471,7 +2471,8 @@ static void bond_loadbalance_arp_mon(struct work_struct *work) | |||
| 2471 | bond_slave_state_change(bond); | 2471 | bond_slave_state_change(bond); |
| 2472 | if (BOND_MODE(bond) == BOND_MODE_XOR) | 2472 | if (BOND_MODE(bond) == BOND_MODE_XOR) |
| 2473 | bond_update_slave_arr(bond, NULL); | 2473 | bond_update_slave_arr(bond, NULL); |
| 2474 | } else if (do_failover) { | 2474 | } |
| 2475 | if (do_failover) { | ||
| 2475 | block_netpoll_tx(); | 2476 | block_netpoll_tx(); |
| 2476 | bond_select_active_slave(bond); | 2477 | bond_select_active_slave(bond); |
| 2477 | unblock_netpoll_tx(); | 2478 | unblock_netpoll_tx(); |
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index 02492d241e4c..2cfe5012e4e5 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c | |||
| @@ -110,7 +110,7 @@ static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt, | |||
| 110 | long rate; | 110 | long rate; |
| 111 | u64 v64; | 111 | u64 v64; |
| 112 | 112 | ||
| 113 | /* Use CIA recommended sample points */ | 113 | /* Use CiA recommended sample points */ |
| 114 | if (bt->sample_point) { | 114 | if (bt->sample_point) { |
| 115 | sampl_pt = bt->sample_point; | 115 | sampl_pt = bt->sample_point; |
| 116 | } else { | 116 | } else { |
| @@ -382,7 +382,7 @@ void can_free_echo_skb(struct net_device *dev, unsigned int idx) | |||
| 382 | BUG_ON(idx >= priv->echo_skb_max); | 382 | BUG_ON(idx >= priv->echo_skb_max); |
| 383 | 383 | ||
| 384 | if (priv->echo_skb[idx]) { | 384 | if (priv->echo_skb[idx]) { |
| 385 | kfree_skb(priv->echo_skb[idx]); | 385 | dev_kfree_skb_any(priv->echo_skb[idx]); |
| 386 | priv->echo_skb[idx] = NULL; | 386 | priv->echo_skb[idx] = NULL; |
| 387 | } | 387 | } |
| 388 | } | 388 | } |
diff --git a/drivers/net/can/m_can/Kconfig b/drivers/net/can/m_can/Kconfig index fca5482c09ac..04f20dd39007 100644 --- a/drivers/net/can/m_can/Kconfig +++ b/drivers/net/can/m_can/Kconfig | |||
| @@ -1,4 +1,5 @@ | |||
| 1 | config CAN_M_CAN | 1 | config CAN_M_CAN |
| 2 | depends on HAS_IOMEM | ||
| 2 | tristate "Bosch M_CAN devices" | 3 | tristate "Bosch M_CAN devices" |
| 3 | ---help--- | 4 | ---help--- |
| 4 | Say Y here if you want to support for Bosch M_CAN controller. | 5 | Say Y here if you want to support for Bosch M_CAN controller. |
diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 10d571eaed85..d7bc462aafdc 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c | |||
| @@ -105,14 +105,36 @@ enum m_can_mram_cfg { | |||
| 105 | MRAM_CFG_NUM, | 105 | MRAM_CFG_NUM, |
| 106 | }; | 106 | }; |
| 107 | 107 | ||
| 108 | /* Fast Bit Timing & Prescaler Register (FBTP) */ | ||
| 109 | #define FBTR_FBRP_MASK 0x1f | ||
| 110 | #define FBTR_FBRP_SHIFT 16 | ||
| 111 | #define FBTR_FTSEG1_SHIFT 8 | ||
| 112 | #define FBTR_FTSEG1_MASK (0xf << FBTR_FTSEG1_SHIFT) | ||
| 113 | #define FBTR_FTSEG2_SHIFT 4 | ||
| 114 | #define FBTR_FTSEG2_MASK (0x7 << FBTR_FTSEG2_SHIFT) | ||
| 115 | #define FBTR_FSJW_SHIFT 0 | ||
| 116 | #define FBTR_FSJW_MASK 0x3 | ||
| 117 | |||
| 108 | /* Test Register (TEST) */ | 118 | /* Test Register (TEST) */ |
| 109 | #define TEST_LBCK BIT(4) | 119 | #define TEST_LBCK BIT(4) |
| 110 | 120 | ||
| 111 | /* CC Control Register(CCCR) */ | 121 | /* CC Control Register(CCCR) */ |
| 112 | #define CCCR_TEST BIT(7) | 122 | #define CCCR_TEST BIT(7) |
| 113 | #define CCCR_MON BIT(5) | 123 | #define CCCR_CMR_MASK 0x3 |
| 114 | #define CCCR_CCE BIT(1) | 124 | #define CCCR_CMR_SHIFT 10 |
| 115 | #define CCCR_INIT BIT(0) | 125 | #define CCCR_CMR_CANFD 0x1 |
| 126 | #define CCCR_CMR_CANFD_BRS 0x2 | ||
| 127 | #define CCCR_CMR_CAN 0x3 | ||
| 128 | #define CCCR_CME_MASK 0x3 | ||
| 129 | #define CCCR_CME_SHIFT 8 | ||
