Skip to content

Commit 2a26d99

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "Lots of fixes, mostly drivers as is usually the case. 1) Don't treat zero DMA address as invalid in vmxnet3, from Alexey Khoroshilov. 2) Fix element timeouts in netfilter's nft_dynset, from Anders K. Pedersen. 3) Don't put aead_req crypto struct on the stack in mac80211, from Ard Biesheuvel. 4) Several uninitialized variable warning fixes from Arnd Bergmann. 5) Fix memory leak in cxgb4, from Colin Ian King. 6) Fix bpf handling of VLAN header push/pop, from Daniel Borkmann. 7) Several VRF semantic fixes from David Ahern. 8) Set skb->protocol properly in ip6_tnl_xmit(), from Eli Cooper. 9) Socket needs to be locked in udp_disconnect(), from Eric Dumazet. 10) Div-by-zero on 32-bit fix in mlx4 driver, from Eugenia Emantayev. 11) Fix stale link state during failover in NCSCI driver, from Gavin Shan. 12) Fix netdev lower adjacency list traversal, from Ido Schimmel. 13) Propvide proper handle when emitting notifications of filter deletes, from Jamal Hadi Salim. 14) Memory leaks and big-endian issues in rtl8xxxu, from Jes Sorensen. 15) Fix DESYNC_FACTOR handling in ipv6, from Jiri Bohac. 16) Several routing offload fixes in mlxsw driver, from Jiri Pirko. 17) Fix broadcast sync problem in TIPC, from Jon Paul Maloy. 18) Validate chunk len before using it in SCTP, from Marcelo Ricardo Leitner. 19) Revert a netns locking change that causes regressions, from Paul Moore. 20) Add recursion limit to GRO handling, from Sabrina Dubroca. 21) GFP_KERNEL in irq context fix in ibmvnic, from Thomas Falcon. 22) Avoid accessing stale vxlan/geneve socket in data path, from Pravin Shelar" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (189 commits) geneve: avoid using stale geneve socket. vxlan: avoid using stale vxlan socket. qede: Fix out-of-bound fastpath memory access net: phy: dp83848: add dp83822 PHY support enic: fix rq disable tipc: fix broadcast link synchronization problem ibmvnic: Fix missing brackets in init_sub_crq_irqs ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context Revert "ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context" arch/powerpc: Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold net/mlx4_en: Save slave ethtool stats command net/mlx4_en: Fix potential deadlock in port statistics flow net/mlx4: Fix firmware command timeout during interrupt test net/mlx4_core: Do not access comm channel if it has not yet been initialized net/mlx4_en: Fix panic during reboot net/mlx4_en: Process all completions in RX rings after port goes up net/mlx4_en: Resolve dividing by zero in 32-bit system net/mlx4_core: Change the default value of enable_qos net/mlx4_core: Avoid setting ports to auto when only one port type is supported net/mlx4_core: Fix the resource-type enum in res tracker to conform to FW spec ...
2 parents a909d3e + fceb9c3 commit 2a26d99

File tree

240 files changed

+1988
-1387
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

240 files changed

+1988
-1387
lines changed

Documentation/devicetree/bindings/net/marvell-orion-net.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Optional port properties:
4949
and
5050

5151
- phy-handle: See ethernet.txt file in the same directory.
52+
- phy-mode: See ethernet.txt file in the same directory.
5253

5354
or
5455

Documentation/networking/netdev-FAQ.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ A: There are always two trees (git repositories) in play. Both are driven
2929
Linus, and net-next is where the new code goes for the future release.
3030
You can find the trees here:
3131

32-
http://git.kernel.org/?p=linux/kernel/git/davem/net.git
33-
http://git.kernel.org/?p=linux/kernel/git/davem/net-next.git
32+
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
33+
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
3434

3535
Q: How often do changes from these trees make it to the mainline Linus tree?
3636

@@ -76,7 +76,7 @@ Q: So where are we now in this cycle?
7676

7777
A: Load the mainline (Linus) page here:
7878

79-
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git
79+
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
8080

8181
and note the top of the "tags" section. If it is rc1, it is early
8282
in the dev cycle. If it was tagged rc7 a week ago, then a release
@@ -123,7 +123,7 @@ A: Normally Greg Kroah-Hartman collects stable commits himself, but
123123

124124
It contains the patches which Dave has selected, but not yet handed
125125
off to Greg. If Greg already has the patch, then it will be here:
126-
http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git
126+
https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git
127127

128128
A quick way to find whether the patch is in this stable-queue is
129129
to simply clone the repo, and then git grep the mainline commit ID, e.g.

Documentation/networking/nf_conntrack-sysctl.txt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,24 +33,6 @@ nf_conntrack_events - BOOLEAN
3333
If this option is enabled, the connection tracking code will
3434
provide userspace with connection tracking events via ctnetlink.
3535

36-
nf_conntrack_events_retry_timeout - INTEGER (seconds)
37-
default 15
38-
39-
This option is only relevant when "reliable connection tracking
40-
events" are used. Normally, ctnetlink is "lossy", that is,
41-
events are normally dropped when userspace listeners can't keep up.
42-
43-
Userspace can request "reliable event mode". When this mode is
44-
active, the conntrack will only be destroyed after the event was
45-
delivered. If event delivery fails, the kernel periodically
46-
re-tries to send the event to userspace.
47-
48-
This is the maximum interval the kernel should use when re-trying
49-
to deliver the destroy event.
50-
51-
A higher number means there will be fewer delivery retries and it
52-
will take longer for a backlog to be processed.
53-
5436
nf_conntrack_expect_max - INTEGER
5537
Maximum size of expectation table. Default value is
5638
nf_conntrack_buckets / 256. Minimum is 1.

MAINTAINERS

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2552,15 +2552,18 @@ S: Supported
25522552
F: drivers/net/ethernet/broadcom/genet/
25532553

25542554
BROADCOM BNX2 GIGABIT ETHERNET DRIVER
2555-
M: Sony Chacko <sony.chacko@qlogic.com>
2556-
M: Dept-HSGLinuxNICDev@qlogic.com
2555+
M: Rasesh Mody <rasesh.mody@cavium.com>
2556+
M: Harish Patil <harish.patil@cavium.com>
2557+
M: Dept-GELinuxNICDev@cavium.com
25572558
L: netdev@vger.kernel.org
25582559
S: Supported
25592560
F: drivers/net/ethernet/broadcom/bnx2.*
25602561
F: drivers/net/ethernet/broadcom/bnx2_*
25612562

25622563
BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
2563-
M: Ariel Elior <ariel.elior@qlogic.com>
2564+
M: Yuval Mintz <Yuval.Mintz@cavium.com>
2565+
M: Ariel Elior <ariel.elior@cavium.com>
2566+
M: everest-linux-l2@cavium.com
25642567
L: netdev@vger.kernel.org
25652568
S: Supported
25662569
F: drivers/net/ethernet/broadcom/bnx2x/
@@ -2767,7 +2770,9 @@ S: Supported
27672770
F: drivers/scsi/bfa/
27682771

27692772
BROCADE BNA 10 GIGABIT ETHERNET DRIVER
2770-
M: Rasesh Mody <rasesh.mody@qlogic.com>
2773+
M: Rasesh Mody <rasesh.mody@cavium.com>
2774+
M: Sudarsana Kalluru <sudarsana.kalluru@cavium.com>
2775+
M: Dept-GELinuxNICDev@cavium.com
27712776
L: netdev@vger.kernel.org
27722777
S: Supported
27732778
F: drivers/net/ethernet/brocade/bna/
@@ -8517,11 +8522,10 @@ F: Documentation/devicetree/bindings/net/wireless/
85178522
F: drivers/net/wireless/
85188523

85198524
NETXEN (1/10) GbE SUPPORT
8520-
M: Manish Chopra <manish.chopra@qlogic.com>
8521-
M: Sony Chacko <sony.chacko@qlogic.com>
8522-
M: Rajesh Borundia <rajesh.borundia@qlogic.com>
8525+
M: Manish Chopra <manish.chopra@cavium.com>
8526+
M: Rahul Verma <rahul.verma@cavium.com>
8527+
M: Dept-GELinuxNICDev@cavium.com
85238528
L: netdev@vger.kernel.org
8524-
W: http://www.qlogic.com
85258529
S: Supported
85268530
F: drivers/net/ethernet/qlogic/netxen/
85278531

@@ -9897,33 +9901,32 @@ F: Documentation/scsi/LICENSE.qla4xxx
98979901
F: drivers/scsi/qla4xxx/
98989902

98999903
QLOGIC QLA3XXX NETWORK DRIVER
9900-
M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
9901-
M: Ron Mercer <ron.mercer@qlogic.com>
9902-
M: linux-driver@qlogic.com
9904+
M: Dept-GELinuxNICDev@cavium.com
99039905
L: netdev@vger.kernel.org
99049906
S: Supported
99059907
F: Documentation/networking/LICENSE.qla3xxx
99069908
F: drivers/net/ethernet/qlogic/qla3xxx.*
99079909

99089910
QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
9909-
M: Dept-GELinuxNICDev@qlogic.com
9911+
M: Harish Patil <harish.patil@cavium.com>
9912+
M: Manish Chopra <manish.chopra@cavium.com>
9913+
M: Dept-GELinuxNICDev@cavium.com
99109914
L: netdev@vger.kernel.org
99119915
S: Supported
99129916
F: drivers/net/ethernet/qlogic/qlcnic/
99139917

99149918
QLOGIC QLGE 10Gb ETHERNET DRIVER
9915-
M: Harish Patil <harish.patil@qlogic.com>
9916-
M: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
9917-
M: Dept-GELinuxNICDev@qlogic.com
9918-
M: linux-driver@qlogic.com
9919+
M: Harish Patil <harish.patil@cavium.com>
9920+
M: Manish Chopra <manish.chopra@cavium.com>
9921+
M: Dept-GELinuxNICDev@cavium.com
99199922
L: netdev@vger.kernel.org
99209923
S: Supported
99219924
F: drivers/net/ethernet/qlogic/qlge/
99229925

99239926
QLOGIC QL4xxx ETHERNET DRIVER
9924-
M: Yuval Mintz <Yuval.Mintz@qlogic.com>
9925-
M: Ariel Elior <Ariel.Elior@qlogic.com>
9926-
M: everest-linux-l2@qlogic.com
9927+
M: Yuval Mintz <Yuval.Mintz@cavium.com>
9928+
M: Ariel Elior <Ariel.Elior@cavium.com>
9929+
M: everest-linux-l2@cavium.com
99279930
L: netdev@vger.kernel.org
99289931
S: Supported
99299932
F: drivers/net/ethernet/qlogic/qed/

arch/powerpc/include/asm/checksum.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,8 @@ static inline __sum16 csum_fold(__wsum sum)
5353
return (__force __sum16)(~((__force u32)sum + tmp) >> 16);
5454
}
5555

56-
static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
57-
unsigned short len,
58-
unsigned short proto,
59-
__wsum sum)
56+
static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
57+
__u8 proto, __wsum sum)
6058
{
6159
#ifdef __powerpc64__
6260
unsigned long s = (__force u32)sum;
@@ -83,10 +81,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
8381
* computes the checksum of the TCP/UDP pseudo-header
8482
* returns a 16-bit checksum, already complemented
8583
*/
86-
static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
87-
unsigned short len,
88-
unsigned short proto,
89-
__wsum sum)
84+
static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
85+
__u8 proto, __wsum sum)
9086
{
9187
return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
9288
}

drivers/bluetooth/btwilink.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ static int bt_ti_probe(struct platform_device *pdev)
310310
BT_DBG("HCI device registered (hdev %p)", hdev);
311311

312312
dev_set_drvdata(&pdev->dev, hst);
313-
return err;
313+
return 0;
314314
}
315315

316316
static int bt_ti_remove(struct platform_device *pdev)

drivers/bluetooth/hci_bcm.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,14 @@ static const struct dmi_system_id bcm_wrong_irq_dmi_table[] = {
643643
},
644644
.driver_data = &acpi_active_low,
645645
},
646+
{ /* Handle ThinkPad 8 tablets with BCM2E55 chipset ACPI ID */
647+
.ident = "Lenovo ThinkPad 8",
648+
.matches = {
649+
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
650+
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "ThinkPad 8"),
651+
},
652+
.driver_data = &acpi_active_low,
653+
},
646654
{ }
647655
};
648656

drivers/infiniband/hw/mlx5/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
10191019
resp.qp_tab_size = 1 << MLX5_CAP_GEN(dev->mdev, log_max_qp);
10201020
if (mlx5_core_is_pf(dev->mdev) && MLX5_CAP_GEN(dev->mdev, bf))
10211021
resp.bf_reg_size = 1 << MLX5_CAP_GEN(dev->mdev, log_bf_reg_size);
1022-
resp.cache_line_size = L1_CACHE_BYTES;
1022+
resp.cache_line_size = cache_line_size();
10231023
resp.max_sq_desc_sz = MLX5_CAP_GEN(dev->mdev, max_wqe_sz_sq);
10241024
resp.max_rq_desc_sz = MLX5_CAP_GEN(dev->mdev, max_wqe_sz_rq);
10251025
resp.max_send_wqebb = 1 << MLX5_CAP_GEN(dev->mdev, log_max_qp_sz);

drivers/infiniband/hw/mlx5/qp.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ enum {
5252

5353
enum {
5454
MLX5_IB_SQ_STRIDE = 6,
55-
MLX5_IB_CACHE_LINE_SIZE = 64,
5655
};
5756

5857
static const u32 mlx5_ib_opcode[] = {

drivers/infiniband/hw/qedr/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ config INFINIBAND_QEDR
22
tristate "QLogic RoCE driver"
33
depends on 64BIT && QEDE
44
select QED_LL2
5+
select QED_RDMA
56
---help---
67
This driver provides low-level InfiniBand over Ethernet
78
support for QLogic QED host channel adapters (HCAs).

drivers/infiniband/ulp/ipoib/ipoib.h

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ enum ipoib_flush_level {
6363

6464
enum {
6565
IPOIB_ENCAP_LEN = 4,
66+
IPOIB_PSEUDO_LEN = 20,
67+
IPOIB_HARD_LEN = IPOIB_ENCAP_LEN + IPOIB_PSEUDO_LEN,
6668

6769
IPOIB_UD_HEAD_SIZE = IB_GRH_BYTES + IPOIB_ENCAP_LEN,
6870
IPOIB_UD_RX_SG = 2, /* max buffer needed for 4K mtu */
@@ -134,15 +136,21 @@ struct ipoib_header {
134136
u16 reserved;
135137
};
136138

137-
struct ipoib_cb {
138-
struct qdisc_skb_cb qdisc_cb;
139-
u8 hwaddr[INFINIBAND_ALEN];
139+
struct ipoib_pseudo_header {
140+
u8 hwaddr[INFINIBAND_ALEN];
140141
};
141142

142-
static inline struct ipoib_cb *ipoib_skb_cb(const struct sk_buff *skb)
143+
static inline void skb_add_pseudo_hdr(struct sk_buff *skb)
143144
{
144-
BUILD_BUG_ON(sizeof(skb->cb) < sizeof(struct ipoib_cb));
145-
return (struct ipoib_cb *)skb->cb;
145+
char *data = skb_push(skb, IPOIB_PSEUDO_LEN);
146+
147+
/*
148+
* only the ipoib header is present now, make room for a dummy
149+
* pseudo header and set skb field accordingly
150+
*/
151+
memset(data, 0, IPOIB_PSEUDO_LEN);
152+
skb_reset_mac_header(skb);
153+
skb_pull(skb, IPOIB_HARD_LEN);
146154
}
147155

148156
/* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */

drivers/infiniband/ulp/ipoib/ipoib_cm.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ MODULE_PARM_DESC(cm_data_debug_level,
6363
#define IPOIB_CM_RX_DELAY (3 * 256 * HZ)
6464
#define IPOIB_CM_RX_UPDATE_MASK (0x3)
6565

66+
#define IPOIB_CM_RX_RESERVE (ALIGN(IPOIB_HARD_LEN, 16) - IPOIB_ENCAP_LEN)
67+
6668
static struct ib_qp_attr ipoib_cm_err_attr = {
6769
.qp_state = IB_QPS_ERR
6870
};
@@ -146,15 +148,15 @@ static struct sk_buff *ipoib_cm_alloc_rx_skb(struct net_device *dev,
146148
struct sk_buff *skb;
147149
int i;
148150

149-
skb = dev_alloc_skb(IPOIB_CM_HEAD_SIZE + 12);
151+
skb = dev_alloc_skb(ALIGN(IPOIB_CM_HEAD_SIZE + IPOIB_PSEUDO_LEN, 16));
150152
if (unlikely(!skb))
151153
return NULL;
152154

153155
/*
154-
* IPoIB adds a 4 byte header. So we need 12 more bytes to align the
156+
* IPoIB adds a IPOIB_ENCAP_LEN byte header, this will align the
155157
* IP header to a multiple of 16.
156158
*/
157-
skb_reserve(skb, 12);
159+
skb_reserve(skb, IPOIB_CM_RX_RESERVE);
158160

159161
mapping[0] = ib_dma_map_single(priv->ca, skb->data, IPOIB_CM_HEAD_SIZE,
160162
DMA_FROM_DEVICE);
@@ -624,9 +626,9 @@ void ipoib_cm_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
624626
if (wc->byte_len < IPOIB_CM_COPYBREAK) {
625627
int dlen = wc->byte_len;
626628

627-
small_skb = dev_alloc_skb(dlen + 12);
629+
small_skb = dev_alloc_skb(dlen + IPOIB_CM_RX_RESERVE);
628630
if (small_skb) {
629-
skb_reserve(small_skb, 12);
631+
skb_reserve(small_skb, IPOIB_CM_RX_RESERVE);
630632
ib_dma_sync_single_for_cpu(priv->ca, rx_ring[wr_id].mapping[0],
631633
dlen, DMA_FROM_DEVICE);
632634
skb_copy_from_linear_data(skb, small_skb->data, dlen);
@@ -663,8 +665,7 @@ void ipoib_cm_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
663665

664666
copied:
665667
skb->protocol = ((struct ipoib_header *) skb->data)->proto;
666-
skb_reset_mac_header(skb);
667-
skb_pull(skb, IPOIB_ENCAP_LEN);
668+
skb_add_pseudo_hdr(skb);
668669

669670
++dev->stats.rx_packets;
670671
dev->stats.rx_bytes += skb->len;

drivers/infiniband/ulp/ipoib/ipoib_ib.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,15 @@ static struct sk_buff *ipoib_alloc_rx_skb(struct net_device *dev, int id)
128128

129129
buf_size = IPOIB_UD_BUF_SIZE(priv->max_ib_mtu);
130130

131-
skb = dev_alloc_skb(buf_size + IPOIB_ENCAP_LEN);
131+
skb = dev_alloc_skb(buf_size + IPOIB_HARD_LEN);
132132
if (unlikely(!skb))
133133
return NULL;
134134

135135
/*
136-
* IB will leave a 40 byte gap for a GRH and IPoIB adds a 4 byte
137-
* header. So we need 4 more bytes to get to 48 and align the
138-
* IP header to a multiple of 16.
136+
* the IP header will be at IPOIP_HARD_LEN + IB_GRH_BYTES, that is
137+
* 64 bytes aligned
139138
*/
140-
skb_reserve(skb, 4);
139+
skb_reserve(skb, sizeof(struct ipoib_pseudo_header));
141140

142141
mapping = priv->rx_ring[id].mapping;
143142
mapping[0] = ib_dma_map_single(priv->ca, skb->data, buf_size,
@@ -253,8 +252,7 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
253252
skb_pull(skb, IB_GRH_BYTES);
254253

255254
skb->protocol = ((struct ipoib_header *) skb->data)->proto;
256-
skb_reset_mac_header(skb);
257-
skb_pull(skb, IPOIB_ENCAP_LEN);
255+
skb_add_pseudo_hdr(skb);
258256

259257
++dev->stats.rx_packets;
260258
dev->stats.rx_bytes += skb->len;

0 commit comments

Comments
 (0)