Skip to content

Commit 736b554

Browse files
committed
Merge tag 'net-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from bpf and netfilter. Previous releases - regressions: - Revert "net: rtnetlink: Enslave device before bringing it up", breaks the case inverse to the one it was trying to fix - net: dsa: fix oob access in DSA's netdevice event handler dereference netdev_priv() before check its a DSA port - sched: track device in tcf_block_get/put_ext() only for clsact binder types - net: tls, fix WARNING in __sk_msg_free when record becomes full during splice and MORE hint set - sfp-bus: fix SFP mode detect from bitrate - drv: stmmac: prevent DSA tags from breaking COE Previous releases - always broken: - bpf: fix no forward progress in in bpf_iter_udp if output buffer is too small - bpf: reject variable offset alu on registers with a type of PTR_TO_FLOW_KEYS to prevent oob access - netfilter: tighten input validation - net: add more sanity check in virtio_net_hdr_to_skb() - rxrpc: fix use of Don't Fragment flag on RESPONSE packets, avoid infinite loop - amt: do not use the portion of skb->cb area which may get clobbered - mptcp: improve validation of the MPTCPOPT_MP_JOIN MCTCP option Misc: - spring cleanup of inactive maintainers" * tag 'net-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (88 commits) i40e: Include types.h to some headers ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes selftests: mlxsw: qos_pfc: Remove wrong description mlxsw: spectrum_router: Register netdevice notifier before nexthop mlxsw: spectrum_acl_tcam: Fix stack corruption mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure ethtool: netlink: Add missing ethnl_ops_begin/complete selftests: bonding: Add more missing config options selftests: netdevsim: add a config file libbpf: warn on unexpected __arg_ctx type when rewriting BTF selftests/bpf: add tests confirming type logic in kernel for __arg_ctx bpf: enforce types for __arg_ctx-tagged arguments in global subprogs bpf: extract bpf_ctx_convert_map logic and make it more reusable libbpf: feature-detect arg:ctx tag support in kernel ipvs: avoid stat macros calls from preemptible context netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description netfilter: nf_tables: skip dead set elements in netlink dump netfilter: nf_tables: do not allow mismatch field size and set key length ...
2 parents ed8d845 + 925781a commit 736b554

File tree

90 files changed

+1366
-235
lines changed

Some content is hidden

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

90 files changed

+1366
-235
lines changed

CREDITS

+17
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ E: [email protected]
179179
P: 1024/AF7B30C1 CF 97 C2 CC 6D AE A7 FE C8 BA 9C FC 88 DE 32 C3
180180
D: Linux/MIPS port
181181
D: Linux/68k hacker
182+
D: AX25 maintainer
182183
S: Hauptstrasse 19
183184
S: 79837 St. Blasien
184185
S: Germany
@@ -677,6 +678,10 @@ D: Media subsystem (V4L/DVB) drivers and core
677678
D: EDAC drivers and EDAC 3.0 core rework
678679
S: Brazil
679680

681+
N: Landen Chao
682+
683+
D: MT7531 Ethernet switch support
684+
680685
N: Raymond Chen
681686
682687
D: Author of Configure script
@@ -814,6 +819,10 @@ D: Support for Xircom PGSDB9 (firmware and host driver)
814819
S: Bucharest
815820
S: Romania
816821

822+
N: John Crispin
823+
824+
D: MediaTek MT7623 Gigabit ethernet support
825+
817826
N: Laurence Culhane
818827
819828
D: Wrote the initial alpha SLIP code
@@ -1538,6 +1547,10 @@ N: Andrew Haylett
15381547
15391548
D: Selection mechanism
15401549

1550+
N: Johan Hedberg
1551+
1552+
D: Bluetooth subsystem maintainer
1553+
15411554
N: Andre Hedrick
15421555
15431556
@@ -3052,6 +3065,10 @@ S: Demonstratsii 8-382
30523065
S: Tula 300000
30533066
S: Russia
30543067

3068+
N: Thomas Petazzoni
3069+
3070+
D: Driver for the Marvell Armada 370/XP network unit.
3071+
30553072
N: Gordon Peters
30563073
30573074
D: Isochronous receive for IEEE 1394 driver (OHCI module).

MAINTAINERS

+4-12
Original file line numberDiff line numberDiff line change
@@ -3390,9 +3390,8 @@ F: Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
33903390
F: drivers/iio/adc/hx711.c
33913391

33923392
AX.25 NETWORK LAYER
3393-
M: Ralf Baechle <[email protected]>
33943393
3395-
S: Maintained
3394+
S: Orphan
33963395
W: https://linux-ax25.in-berlin.de
33973396
F: include/net/ax25.h
33983397
F: include/uapi/linux/ax25.h
@@ -3631,7 +3630,6 @@ F: drivers/mtd/devices/block2mtd.c
36313630

36323631
BLUETOOTH DRIVERS
36333632
M: Marcel Holtmann <[email protected]>
3634-
M: Johan Hedberg <[email protected]>
36353633
M: Luiz Augusto von Dentz <[email protected]>
36363634
36373635
S: Supported
@@ -4726,11 +4724,8 @@ F: drivers/i2c/busses/i2c-octeon*
47264724
F: drivers/i2c/busses/i2c-thunderx*
47274725

47284726
CAVIUM LIQUIDIO NETWORK DRIVER
4729-
M: Derek Chickles <[email protected]>
4730-
M: Satanand Burla <[email protected]>
4731-
M: Felix Manlunas <[email protected]>
47324727
4733-
S: Supported
4728+
S: Orphan
47344729
W: http://www.marvell.com
47354730
F: drivers/net/ethernet/cavium/liquidio/
47364731

@@ -10239,7 +10234,6 @@ IBM Power SRIOV Virtual NIC Device Driver
1023910234
M: Haren Myneni <[email protected]>
1024010235
M: Rick Lindsley <[email protected]>
1024110236
R: Nick Child <[email protected]>
10242-
R: Dany Madden <[email protected]>
1024310237
R: Thomas Falcon <[email protected]>
1024410238
1024510239
S: Supported
@@ -13003,10 +12997,10 @@ S: Maintained
1300312997
F: drivers/thermal/armada_thermal.c
1300412998

1300512999
MARVELL MVNETA ETHERNET DRIVER
13006-
M: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
13000+
M: Marcin Wojtas <marcin.s.wojtas@gmail.com>
1300713001
1300813002
S: Maintained
13009-
F: drivers/net/ethernet/marvell/mvneta.*
13003+
F: drivers/net/ethernet/marvell/mvneta*
1301013004

1301113005
MARVELL MVPP2 ETHERNET DRIVER
1301213006
M: Marcin Wojtas <[email protected]>
@@ -13656,7 +13650,6 @@ F: drivers/dma/mediatek/
1365613650

1365713651
MEDIATEK ETHERNET DRIVER
1365813652
M: Felix Fietkau <[email protected]>
13659-
M: John Crispin <[email protected]>
1366013653
M: Sean Wang <[email protected]>
1366113654
M: Mark Lee <[email protected]>
1366213655
M: Lorenzo Bianconi <[email protected]>
@@ -13812,7 +13805,6 @@ F: include/soc/mediatek/smi.h
1381213805
MEDIATEK SWITCH DRIVER
1381313806
M: Arınç ÜNAL <[email protected]>
1381413807
M: Daniel Golle <[email protected]>
13815-
M: Landen Chao <[email protected]>
1381613808
M: DENG Qingfang <[email protected]>
1381713809
M: Sean Wang <[email protected]>
1381813810

drivers/net/amt.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <linux/net.h>
1212
#include <linux/igmp.h>
1313
#include <linux/workqueue.h>
14-
#include <net/sch_generic.h>
14+
#include <net/pkt_sched.h>
1515
#include <net/net_namespace.h>
1616
#include <net/ip.h>
1717
#include <net/udp.h>
@@ -80,11 +80,11 @@ static struct mld2_grec mldv2_zero_grec;
8080

8181
static struct amt_skb_cb *amt_skb_cb(struct sk_buff *skb)
8282
{
83-
BUILD_BUG_ON(sizeof(struct amt_skb_cb) + sizeof(struct qdisc_skb_cb) >
83+
BUILD_BUG_ON(sizeof(struct amt_skb_cb) + sizeof(struct tc_skb_cb) >
8484
sizeof_field(struct sk_buff, cb));
8585

8686
return (struct amt_skb_cb *)((void *)skb->cb +
87-
sizeof(struct qdisc_skb_cb));
87+
sizeof(struct tc_skb_cb));
8888
}
8989

9090
static void __amt_source_gc_work(void)

drivers/net/dsa/vitesse-vsc73xx-core.c

+2
Original file line numberDiff line numberDiff line change
@@ -1135,6 +1135,8 @@ static int vsc73xx_gpio_probe(struct vsc73xx *vsc)
11351135

11361136
vsc->gc.label = devm_kasprintf(vsc->dev, GFP_KERNEL, "VSC%04x",
11371137
vsc->chipid);
1138+
if (!vsc->gc.label)
1139+
return -ENOMEM;
11381140
vsc->gc.ngpio = 4;
11391141
vsc->gc.owner = THIS_MODULE;
11401142
vsc->gc.parent = vsc->dev;

drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1490,7 +1490,7 @@ int cn23xx_get_vf_stats(struct octeon_device *oct, int vfidx,
14901490
mbox_cmd.q_no = vfidx * oct->sriov_info.rings_per_vf;
14911491
mbox_cmd.recv_len = 0;
14921492
mbox_cmd.recv_status = 0;
1493-
mbox_cmd.fn = (octeon_mbox_callback_t)cn23xx_get_vf_stats_callback;
1493+
mbox_cmd.fn = cn23xx_get_vf_stats_callback;
14941494
ctx.stats = stats;
14951495
atomic_set(&ctx.status, 0);
14961496
mbox_cmd.fn_arg = (void *)&ctx;

drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ int cn23xx_octeon_pfvf_handshake(struct octeon_device *oct)
429429
mbox_cmd.q_no = 0;
430430
mbox_cmd.recv_len = 0;
431431
mbox_cmd.recv_status = 0;
432-
mbox_cmd.fn = (octeon_mbox_callback_t)octeon_pfvf_hs_callback;
432+
mbox_cmd.fn = octeon_pfvf_hs_callback;
433433
mbox_cmd.fn_arg = &status;
434434

435435
octeon_mbox_write(oct, &mbox_cmd);

drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ union octeon_mbox_message {
5757
} s;
5858
};
5959

60-
typedef void (*octeon_mbox_callback_t)(void *, void *, void *);
60+
struct octeon_mbox_cmd;
61+
62+
typedef void (*octeon_mbox_callback_t)(struct octeon_device *,
63+
struct octeon_mbox_cmd *, void *);
6164

6265
struct octeon_mbox_cmd {
6366
union octeon_mbox_message msg;

drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#define _I40E_ADMINQ_CMD_H_
66

77
#include <linux/bits.h>
8+
#include <linux/types.h>
89

910
/* This header file defines the i40e Admin Queue commands and is shared between
1011
* i40e Firmware and Software.

drivers/net/ethernet/intel/i40e/i40e_diag.h

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#ifndef _I40E_DIAG_H_
55
#define _I40E_DIAG_H_
66

7+
#include <linux/types.h>
78
#include "i40e_adminq_cmd.h"
89

910
/* forward-declare the HW struct for the compiler */

drivers/net/ethernet/marvell/octeontx2/af/rpm.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -506,14 +506,19 @@ u32 rpm2_get_lmac_fifo_len(void *rpmd, int lmac_id)
506506
rpm_t *rpm = rpmd;
507507
u8 num_lmacs;
508508
u32 fifo_len;
509+
u16 max_lmac;
509510

510511
lmac_info = rpm_read(rpm, 0, RPM2_CMRX_RX_LMACS);
511512
/* LMACs are divided into two groups and each group
512513
* gets half of the FIFO
513514
* Group0 lmac_id range {0..3}
514515
* Group1 lmac_id range {4..7}
515516
*/
516-
fifo_len = rpm->mac_ops->fifo_len / 2;
517+
max_lmac = (rpm_read(rpm, 0, CGX_CONST) >> 24) & 0xFF;
518+
if (max_lmac > 4)
519+
fifo_len = rpm->mac_ops->fifo_len / 2;
520+
else
521+
fifo_len = rpm->mac_ops->fifo_len;
517522

518523
if (lmac_id < 4) {
519524
num_lmacs = hweight8(lmac_info & 0xF);

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ mlxsw_sp_acl_erp_table_alloc(struct mlxsw_sp_acl_erp_core *erp_core,
301301
unsigned long *p_index)
302302
{
303303
unsigned int num_rows, entry_size;
304+
unsigned long index;
304305

305306
/* We only allow allocations of entire rows */
306307
if (num_erps % erp_core->num_erp_banks != 0)
@@ -309,10 +310,11 @@ mlxsw_sp_acl_erp_table_alloc(struct mlxsw_sp_acl_erp_core *erp_core,
309310
entry_size = erp_core->erpt_entries_size[region_type];
310311
num_rows = num_erps / erp_core->num_erp_banks;
311312

312-
*p_index = gen_pool_alloc(erp_core->erp_tables, num_rows * entry_size);
313-
if (*p_index == 0)
313+
index = gen_pool_alloc(erp_core->erp_tables, num_rows * entry_size);
314+
if (!index)
314315
return -ENOBUFS;
315-
*p_index -= MLXSW_SP_ACL_ERP_GENALLOC_OFFSET;
316+
317+
*p_index = index - MLXSW_SP_ACL_ERP_GENALLOC_OFFSET;
316318

317319
return 0;
318320
}

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -681,13 +681,13 @@ static void
681681
mlxsw_sp_acl_tcam_region_destroy(struct mlxsw_sp *mlxsw_sp,
682682
struct mlxsw_sp_acl_tcam_region *region)
683683
{
684+
struct mlxsw_sp_acl_tcam *tcam = mlxsw_sp_acl_to_tcam(mlxsw_sp->acl);
684685
const struct mlxsw_sp_acl_tcam_ops *ops = mlxsw_sp->acl_tcam_ops;
685686

686687
ops->region_fini(mlxsw_sp, region->priv);
687688
mlxsw_sp_acl_tcam_region_disable(mlxsw_sp, region);
688689
mlxsw_sp_acl_tcam_region_free(mlxsw_sp, region);
689-
mlxsw_sp_acl_tcam_region_id_put(region->group->tcam,
690-
region->id);
690+
mlxsw_sp_acl_tcam_region_id_put(tcam, region->id);
691691
kfree(region);
692692
}
693693

@@ -1564,6 +1564,8 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp,
15641564
tcam->max_groups = max_groups;
15651565
tcam->max_group_size = MLXSW_CORE_RES_GET(mlxsw_sp->core,
15661566
ACL_MAX_GROUP_SIZE);
1567+
tcam->max_group_size = min_t(unsigned int, tcam->max_group_size,
1568+
MLXSW_REG_PAGT_ACL_MAX_NUM);
15671569

15681570
err = ops->init(mlxsw_sp, tcam->priv, tcam);
15691571
if (err)

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -11472,6 +11472,13 @@ int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp,
1147211472
if (err)
1147311473
goto err_register_netevent_notifier;
1147411474

11475+
mlxsw_sp->router->netdevice_nb.notifier_call =
11476+
mlxsw_sp_router_netdevice_event;
11477+
err = register_netdevice_notifier_net(mlxsw_sp_net(mlxsw_sp),
11478+
&mlxsw_sp->router->netdevice_nb);
11479+
if (err)
11480+
goto err_register_netdev_notifier;
11481+
1147511482
mlxsw_sp->router->nexthop_nb.notifier_call =
1147611483
mlxsw_sp_nexthop_obj_event;
1147711484
err = register_nexthop_notifier(mlxsw_sp_net(mlxsw_sp),
@@ -11487,22 +11494,15 @@ int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp,
1148711494
if (err)
1148811495
goto err_register_fib_notifier;
1148911496

11490-
mlxsw_sp->router->netdevice_nb.notifier_call =
11491-
mlxsw_sp_router_netdevice_event;
11492-
err = register_netdevice_notifier_net(mlxsw_sp_net(mlxsw_sp),
11493-
&mlxsw_sp->router->netdevice_nb);
11494-
if (err)
11495-
goto err_register_netdev_notifier;
11496-
1149711497
return 0;
1149811498

11499-
err_register_netdev_notifier:
11500-
unregister_fib_notifier(mlxsw_sp_net(mlxsw_sp),
11501-
&mlxsw_sp->router->fib_nb);
1150211499
err_register_fib_notifier:
1150311500
unregister_nexthop_notifier(mlxsw_sp_net(mlxsw_sp),
1150411501
&mlxsw_sp->router->nexthop_nb);
1150511502
err_register_nexthop_notifier:
11503+
unregister_netdevice_notifier_net(mlxsw_sp_net(mlxsw_sp),
11504+
&router->netdevice_nb);
11505+
err_register_netdev_notifier:
1150611506
unregister_netevent_notifier(&mlxsw_sp->router->netevent_nb);
1150711507
err_register_netevent_notifier:
1150811508
unregister_inet6addr_validator_notifier(&router->inet6addr_valid_nb);
@@ -11550,11 +11550,11 @@ void mlxsw_sp_router_fini(struct mlxsw_sp *mlxsw_sp)
1155011550
{
1155111551
struct mlxsw_sp_router *router = mlxsw_sp->router;
1155211552

11553-
unregister_netdevice_notifier_net(mlxsw_sp_net(mlxsw_sp),
11554-
&router->netdevice_nb);
1155511553
unregister_fib_notifier(mlxsw_sp_net(mlxsw_sp), &router->fib_nb);
1155611554
unregister_nexthop_notifier(mlxsw_sp_net(mlxsw_sp),
1155711555
&router->nexthop_nb);
11556+
unregister_netdevice_notifier_net(mlxsw_sp_net(mlxsw_sp),
11557+
&router->netdevice_nb);
1155811558
unregister_netevent_notifier(&router->netevent_nb);
1155911559
unregister_inet6addr_validator_notifier(&router->inet6addr_valid_nb);
1156011560
unregister_inetaddr_validator_notifier(&router->inetaddr_valid_nb);

drivers/net/ethernet/neterion/s2io.c

+1
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ static const u64 fix_mac[] = {
414414
END_SIGN
415415
};
416416

417+
MODULE_DESCRIPTION("Neterion 10GbE driver");
417418
MODULE_LICENSE("GPL");
418419
MODULE_VERSION(DRV_VERSION);
419420

drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ static int rmnet_fill_info(struct sk_buff *skb, const struct net_device *dev)
396396

397397
struct rtnl_link_ops rmnet_link_ops __read_mostly = {
398398
.kind = "rmnet",
399-
.maxtype = __IFLA_RMNET_MAX,
399+
.maxtype = IFLA_RMNET_MAX,
400400
.priv_size = sizeof(struct rmnet_priv),
401401
.setup = rmnet_vnd_setup,
402402
.validate = rmnet_rtnl_validate,

drivers/net/ethernet/renesas/ravb_main.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1949,7 +1949,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
19491949
struct ravb_tstamp_skb *ts_skb;
19501950
struct ravb_tx_desc *desc;
19511951
unsigned long flags;
1952-
u32 dma_addr;
1952+
dma_addr_t dma_addr;
19531953
void *buffer;
19541954
u32 entry;
19551955
u32 len;

drivers/net/ethernet/stmicro/stmmac/stmmac.h

+1
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ struct stmmac_priv {
267267
u32 msg_enable;
268268
int wolopts;
269269
int wol_irq;
270+
bool wol_irq_disabled;
270271
int clk_csr;
271272
struct timer_list eee_ctrl_timer;
272273
int lpi_irq;

drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c

+14-6
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,9 @@ static int stmmac_ethtool_get_link_ksettings(struct net_device *dev,
321321
{
322322
struct stmmac_priv *priv = netdev_priv(dev);
323323

324-
if (priv->hw->pcs & STMMAC_PCS_RGMII ||
325-
priv->hw->pcs & STMMAC_PCS_SGMII) {
324+
if (!(priv->plat->flags & STMMAC_FLAG_HAS_INTEGRATED_PCS) &&
325+
(priv->hw->pcs & STMMAC_PCS_RGMII ||
326+
priv->hw->pcs & STMMAC_PCS_SGMII)) {
326327
struct rgmii_adv adv;
327328
u32 supported, advertising, lp_advertising;
328329

@@ -407,8 +408,9 @@ stmmac_ethtool_set_link_ksettings(struct net_device *dev,
407408
{
408409
struct stmmac_priv *priv = netdev_priv(dev);
409410

410-
if (priv->hw->pcs & STMMAC_PCS_RGMII ||
411-
priv->hw->pcs & STMMAC_PCS_SGMII) {
411+
if (!(priv->plat->flags & STMMAC_FLAG_HAS_INTEGRATED_PCS) &&
412+
(priv->hw->pcs & STMMAC_PCS_RGMII ||
413+
priv->hw->pcs & STMMAC_PCS_SGMII)) {
412414
/* Only support ANE */
413415
if (cmd->base.autoneg != AUTONEG_ENABLE)
414416
return -EINVAL;
@@ -830,10 +832,16 @@ static int stmmac_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
830832
if (wol->wolopts) {
831833
pr_info("stmmac: wakeup enable\n");
832834
device_set_wakeup_enable(priv->device, 1);
833-
enable_irq_wake(priv->wol_irq);
835+
/* Avoid unbalanced enable_irq_wake calls */
836+
if (priv->wol_irq_disabled)
837+
enable_irq_wake(priv->wol_irq);
838+
priv->wol_irq_disabled = false;
834839
} else {
835840
device_set_wakeup_enable(priv->device, 0);
836-
disable_irq_wake(priv->wol_irq);
841+
/* Avoid unbalanced disable_irq_wake calls */
842+
if (!priv->wol_irq_disabled)
843+
disable_irq_wake(priv->wol_irq);
844+
priv->wol_irq_disabled = true;
837845
}
838846

839847
mutex_lock(&priv->lock);

0 commit comments

Comments
 (0)