Skip to content

Commit 27b4ad6

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "This pull request is dedicated to the upcoming snowpocalypse parts 2 and 3 in the Pacific Northwest: 1) Drop profiles are broken because some drivers use dev_kfree_skb* instead of dev_consume_skb*, from Yang Wei. 2) Fix IWLWIFI kconfig deps, from Luca Coelho. 3) Fix percpu maps updating in bpftool, from Paolo Abeni. 4) Missing station release in batman-adv, from Felix Fietkau. 5) Fix some networking compat ioctl bugs, from Johannes Berg. 6) ucc_geth must reset the BQL queue state when stopping the device, from Mathias Thore. 7) Several XDP bug fixes in virtio_net from Toshiaki Makita. 8) TSO packets must be sent always on queue 0 in stmmac, from Jose Abreu. 9) Fix socket refcounting bug in RDS, from Eric Dumazet. 10) Handle sparse cpu allocations in bpf selftests, from Martynas Pumputis. 11) Make sure mgmt frames have enough tailroom in mac80211, from Felix Feitkau. 12) Use safe list walking in sctp_sendmsg() asoc list traversal, from Greg Kroah-Hartman. 13) Make DCCP's ccid_hc_[rt]x_parse_options always check for NULL ccid, from Eric Dumazet. 14) Need to reload WoL password into bcmsysport device after deep sleeps, from Florian Fainelli. 15) Remove filter from mask before freeing in cls_flower, from Petr Machata. 16) Missing release and use after free in error paths of s390 qeth code, from Julian Wiedmann. 17) Fix lockdep false positive in dsa code, from Marc Zyngier. 18) Fix counting of ATU violations in mv88e6xxx, from Andrew Lunn. 19) Fix EQ firmware assert in qed driver, from Manish Chopra. 20) Don't default Caivum PTP to Y in kconfig, from Bjorn Helgaas" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits) net: dsa: b53: Fix for failure when irq is not defined in dt sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach() geneve: should not call rt6_lookup() when ipv6 was disabled net: Don't default Cavium PTP driver to 'y' net: broadcom: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: via-velocity: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: tehuti: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: sun: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: fsl_ucc_hdlc: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: fec_mpc52xx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: smsc: epic100: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: dscc4: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: tulip: de2104x: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net: defxx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles net/mlx5e: Don't overwrite pedit action when multiple pedit used net/mlx5e: Update hw flows when encap source mac changed qed*: Advance drivers version to 8.37.0.20 qed: Change verbosity for coalescing message. qede: Fix system crash on configuring channels. qed: Consider TX tcs while deriving the max num_queues for PF. ...
2 parents 6809054 + 39841cc commit 27b4ad6

File tree

127 files changed

+1802
-544
lines changed

Some content is hidden

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

127 files changed

+1802
-544
lines changed

MAINTAINERS

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2848,6 +2848,9 @@ F: include/uapi/linux/if_bonding.h
28482848
BPF (Safe dynamic programs and tools)
28492849
M: Alexei Starovoitov <[email protected]>
28502850
M: Daniel Borkmann <[email protected]>
2851+
R: Martin KaFai Lau <[email protected]>
2852+
R: Song Liu <[email protected]>
2853+
R: Yonghong Song <[email protected]>
28512854
28522855
28532856
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
@@ -2873,6 +2876,8 @@ F: samples/bpf/
28732876
F: tools/bpf/
28742877
F: tools/lib/bpf/
28752878
F: tools/testing/selftests/bpf/
2879+
K: bpf
2880+
N: bpf
28762881

28772882
BPF JIT for ARM
28782883
M: Shubham Bansal <[email protected]>
@@ -12868,6 +12873,13 @@ F: Documentation/devicetree/bindings/net/dsa/realtek-smi.txt
1286812873
F: drivers/net/dsa/realtek-smi*
1286912874
F: drivers/net/dsa/rtl83*
1287012875

12876+
REDPINE WIRELESS DRIVER
12877+
M: Amitkumar Karwar <[email protected]>
12878+
M: Siva Rebbagondla <[email protected]>
12879+
12880+
S: Maintained
12881+
F: drivers/net/wireless/rsi/
12882+
1287112883
REGISTER MAP ABSTRACTION
1287212884
M: Mark Brown <[email protected]>
1287312885
@@ -13696,6 +13708,15 @@ L: [email protected]
1369613708
S: Supported
1369713709
F: drivers/net/ethernet/sfc/
1369813710

13711+
SFF/SFP/SFP+ MODULE SUPPORT
13712+
M: Russell King <[email protected]>
13713+
13714+
S: Maintained
13715+
F: drivers/net/phy/phylink.c
13716+
F: drivers/net/phy/sfp*
13717+
F: include/linux/phylink.h
13718+
F: include/linux/sfp.h
13719+
1369913720
SGI GRU DRIVER
1370013721
M: Dimitri Sivanich <[email protected]>
1370113722
S: Maintained

drivers/isdn/mISDN/timerdev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ dev_expire_timer(struct timer_list *t)
170170
spin_lock_irqsave(&timer->dev->lock, flags);
171171
if (timer->id >= 0)
172172
list_move_tail(&timer->list, &timer->dev->expired);
173-
spin_unlock_irqrestore(&timer->dev->lock, flags);
174173
wake_up_interruptible(&timer->dev->wait);
174+
spin_unlock_irqrestore(&timer->dev->lock, flags);
175175
}
176176

177177
static int

drivers/net/dsa/b53/b53_srab.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,6 @@ static void b53_srab_prepare_irq(struct platform_device *pdev)
511511
/* Clear all pending interrupts */
512512
writel(0xffffffff, priv->regs + B53_SRAB_INTR);
513513

514-
if (dev->pdata && dev->pdata->chip_id != BCM58XX_DEVICE_ID)
515-
return;
516-
517514
for (i = 0; i < B53_N_PORTS; i++) {
518515
port = &priv->port_intrs[i];
519516

drivers/net/dsa/mv88e6xxx/global1_atu.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id)
314314
{
315315
struct mv88e6xxx_chip *chip = dev_id;
316316
struct mv88e6xxx_atu_entry entry;
317+
int spid;
317318
int err;
318319
u16 val;
319320

@@ -336,6 +337,8 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id)
336337
if (err)
337338
goto out;
338339

340+
spid = entry.state;
341+
339342
if (val & MV88E6XXX_G1_ATU_OP_AGE_OUT_VIOLATION) {
340343
dev_err_ratelimited(chip->dev,
341344
"ATU age out violation for %pM\n",
@@ -344,23 +347,23 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id)
344347

345348
if (val & MV88E6XXX_G1_ATU_OP_MEMBER_VIOLATION) {
346349
dev_err_ratelimited(chip->dev,
347-
"ATU member violation for %pM portvec %x\n",
348-
entry.mac, entry.portvec);
349-
chip->ports[entry.portvec].atu_member_violation++;
350+
"ATU member violation for %pM portvec %x spid %d\n",
351+
entry.mac, entry.portvec, spid);
352+
chip->ports[spid].atu_member_violation++;
350353
}
351354

352355
if (val & MV88E6XXX_G1_ATU_OP_MISS_VIOLATION) {
353356
dev_err_ratelimited(chip->dev,
354-
"ATU miss violation for %pM portvec %x\n",
355-
entry.mac, entry.portvec);
356-
chip->ports[entry.portvec].atu_miss_violation++;
357+
"ATU miss violation for %pM portvec %x spid %d\n",
358+
entry.mac, entry.portvec, spid);
359+
chip->ports[spid].atu_miss_violation++;
357360
}
358361

359362
if (val & MV88E6XXX_G1_ATU_OP_FULL_VIOLATION) {
360363
dev_err_ratelimited(chip->dev,
361-
"ATU full violation for %pM portvec %x\n",
362-
entry.mac, entry.portvec);
363-
chip->ports[entry.portvec].atu_full_violation++;
364+
"ATU full violation for %pM portvec %x spid %d\n",
365+
entry.mac, entry.portvec, spid);
366+
chip->ports[spid].atu_full_violation++;
364367
}
365368
mutex_unlock(&chip->reg_lock);
366369

drivers/net/ethernet/broadcom/bcmsysport.c

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -520,19 +520,14 @@ static void bcm_sysport_get_wol(struct net_device *dev,
520520
struct ethtool_wolinfo *wol)
521521
{
522522
struct bcm_sysport_priv *priv = netdev_priv(dev);
523-
u32 reg;
524523

525524
wol->supported = WAKE_MAGIC | WAKE_MAGICSECURE | WAKE_FILTER;
526525
wol->wolopts = priv->wolopts;
527526

528527
if (!(priv->wolopts & WAKE_MAGICSECURE))
529528
return;
530529

531-
/* Return the programmed SecureOn password */
532-
reg = umac_readl(priv, UMAC_PSW_MS);
533-
put_unaligned_be16(reg, &wol->sopass[0]);
534-
reg = umac_readl(priv, UMAC_PSW_LS);
535-
put_unaligned_be32(reg, &wol->sopass[2]);
530+
memcpy(wol->sopass, priv->sopass, sizeof(priv->sopass));
536531
}
537532

538533
static int bcm_sysport_set_wol(struct net_device *dev,
@@ -548,13 +543,8 @@ static int bcm_sysport_set_wol(struct net_device *dev,
548543
if (wol->wolopts & ~supported)
549544
return -EINVAL;
550545

551-
/* Program the SecureOn password */
552-
if (wol->wolopts & WAKE_MAGICSECURE) {
553-
umac_writel(priv, get_unaligned_be16(&wol->sopass[0]),
554-
UMAC_PSW_MS);
555-
umac_writel(priv, get_unaligned_be32(&wol->sopass[2]),
556-
UMAC_PSW_LS);
557-
}
546+
if (wol->wolopts & WAKE_MAGICSECURE)
547+
memcpy(priv->sopass, wol->sopass, sizeof(priv->sopass));
558548

559549
/* Flag the device and relevant IRQ as wakeup capable */
560550
if (wol->wolopts) {
@@ -2649,13 +2639,18 @@ static int bcm_sysport_suspend_to_wol(struct bcm_sysport_priv *priv)
26492639
unsigned int index, i = 0;
26502640
u32 reg;
26512641

2652-
/* Password has already been programmed */
26532642
reg = umac_readl(priv, UMAC_MPD_CTRL);
26542643
if (priv->wolopts & (WAKE_MAGIC | WAKE_MAGICSECURE))
26552644
reg |= MPD_EN;
26562645
reg &= ~PSW_EN;
2657-
if (priv->wolopts & WAKE_MAGICSECURE)
2646+
if (priv->wolopts & WAKE_MAGICSECURE) {
2647+
/* Program the SecureOn password */
2648+
umac_writel(priv, get_unaligned_be16(&priv->sopass[0]),
2649+
UMAC_PSW_MS);
2650+
umac_writel(priv, get_unaligned_be32(&priv->sopass[2]),
2651+
UMAC_PSW_LS);
26582652
reg |= PSW_EN;
2653+
}
26592654
umac_writel(priv, reg, UMAC_MPD_CTRL);
26602655

26612656
if (priv->wolopts & WAKE_FILTER) {

drivers/net/ethernet/broadcom/bcmsysport.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#define __BCM_SYSPORT_H
1313

1414
#include <linux/bitmap.h>
15+
#include <linux/ethtool.h>
1516
#include <linux/if_vlan.h>
1617
#include <linux/net_dim.h>
1718

@@ -778,6 +779,7 @@ struct bcm_sysport_priv {
778779
unsigned int crc_fwd:1;
779780
u16 rev;
780781
u32 wolopts;
782+
u8 sopass[SOPASS_MAX];
781783
unsigned int wol_irq_disabled:1;
782784

783785
/* MIB related fields */

drivers/net/ethernet/broadcom/bnxt/bnxt.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4973,12 +4973,18 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp)
49734973
struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
49744974
struct bnxt_ring_struct *ring = &cpr->cp_ring_struct;
49754975
u32 map_idx = ring->map_idx;
4976+
unsigned int vector;
49764977

4978+
vector = bp->irq_tbl[map_idx].vector;
4979+
disable_irq_nosync(vector);
49774980
rc = hwrm_ring_alloc_send_msg(bp, ring, type, map_idx);
4978-
if (rc)
4981+
if (rc) {
4982+
enable_irq(vector);
49794983
goto err_out;
4984+
}
49804985
bnxt_set_db(bp, &cpr->cp_db, type, map_idx, ring->fw_ring_id);
49814986
bnxt_db_nq(bp, &cpr->cp_db, cpr->cp_raw_cons);
4987+
enable_irq(vector);
49824988
bp->grp_info[i].cp_fw_ring_id = ring->fw_ring_id;
49834989

49844990
if (!i) {

drivers/net/ethernet/broadcom/sb1250-mac.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ static void sbdma_tx_process(struct sbmac_softc *sc, struct sbmacdma *d,
12881288
* for transmits, we just free buffers.
12891289
*/
12901290

1291-
dev_kfree_skb_irq(sb);
1291+
dev_consume_skb_irq(sb);
12921292

12931293
/*
12941294
* .. and advance to the next buffer.

drivers/net/ethernet/cavium/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ config CAVIUM_PTP
5454
tristate "Cavium PTP coprocessor as PTP clock"
5555
depends on 64BIT && PCI
5656
imply PTP_1588_CLOCK
57-
default y
5857
---help---
5958
This driver adds support for the Precision Time Protocol Clocks and
6059
Timestamping coprocessor (PTP) found on Cavium processors.

drivers/net/ethernet/cisco/enic/enic_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1434,7 +1434,8 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
14341434
* csum is correct or is zero.
14351435
*/
14361436
if ((netdev->features & NETIF_F_RXCSUM) && !csum_not_calc &&
1437-
tcp_udp_csum_ok && ipv4_csum_ok && outer_csum_ok) {
1437+
tcp_udp_csum_ok && outer_csum_ok &&
1438+
(ipv4_csum_ok || ipv6)) {
14381439
skb->ip_summed = CHECKSUM_UNNECESSARY;
14391440
skb->csum_level = encap;
14401441
}

0 commit comments

Comments
 (0)