Skip to content

Commit 847ccab

Browse files
committed
Merge tag 'net-6.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from bpf. Current release - regressions: - tls: fix memory leak in tls_enc_skb() and tls_sw_fallback_init() Previous releases - regressions: - bridge: fix memory leaks when changing VLAN protocol - dsa: make dsa_master_ioctl() see through port_hwtstamp_get() shims - dsa: don't leak tagger-owned storage on switch driver unbind - eth: mlxsw: avoid warnings when not offloaded FDB entry with IPv6 is removed - eth: stmmac: ensure tx function is not running in stmmac_xdp_release() - eth: hns3: fix return value check bug of rx copybreak Previous releases - always broken: - kcm: close race conditions on sk_receive_queue - bpf: fix alignment problem in bpf_prog_test_run_skb() - bpf: fix writing offset in case of fault in strncpy_from_kernel_nofault - eth: macvlan: use built-in RCU list checking - eth: marvell: add sleep time after enabling the loopback bit - eth: octeon_ep: fix potential memory leak in octep_device_setup() Misc: - tcp: configurable source port perturb table size - bpf: Convert BPF_DISPATCHER to use static_call() (not ftrace)" * tag 'net-6.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (51 commits) net: use struct_group to copy ip/ipv6 header addresses net: usb: smsc95xx: fix external PHY reset net: usb: qmi_wwan: add Telit 0x103a composition netdevsim: Fix memory leak of nsim_dev->fa_cookie tcp: configurable source port perturb table size l2tp: Serialize access to sk_user_data with sk_callback_lock net: thunderbolt: Fix error handling in tbnet_init() net: microchip: sparx5: Fix potential null-ptr-deref in sparx_stats_init() and sparx5_start() net: lan966x: Fix potential null-ptr-deref in lan966x_stats_init() net: dsa: don't leak tagger-owned storage on switch driver unbind net/x25: Fix skb leak in x25_lapb_receive_frame() net: ag71xx: call phylink_disconnect_phy if ag71xx_hw_enable() fail in ag71xx_open() bridge: switchdev: Fix memory leaks when changing VLAN protocol net: hns3: fix setting incorrect phy link ksettings for firmware in resetting process net: hns3: fix return value check bug of rx copybreak net: hns3: fix incorrect hw rss hash type of rx packet net: phy: marvell: add sleep time after enabling the loopback bit net: ena: Fix error handling in ena_init() kcm: close race conditions on sk_receive_queue net: ionic: Fix error handling in ionic_init_module() ...
2 parents cc675d2 + 58e0be1 commit 847ccab

File tree

59 files changed

+477
-311
lines changed

Some content is hidden

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

59 files changed

+477
-311
lines changed

arch/x86/net/bpf_jit_comp.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include <linux/bpf.h>
1212
#include <linux/memory.h>
1313
#include <linux/sort.h>
14-
#include <linux/init.h>
1514
#include <asm/extable.h>
1615
#include <asm/set_memory.h>
1716
#include <asm/nospec-branch.h>
@@ -389,18 +388,6 @@ static int __bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
389388
return ret;
390389
}
391390

392-
int __init bpf_arch_init_dispatcher_early(void *ip)
393-
{
394-
const u8 *nop_insn = x86_nops[5];
395-
396-
if (is_endbr(*(u32 *)ip))
397-
ip += ENDBR_INSN_SIZE;
398-
399-
if (memcmp(ip, nop_insn, X86_PATCH_SIZE))
400-
text_poke_early(ip, nop_insn, X86_PATCH_SIZE);
401-
return 0;
402-
}
403-
404391
int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
405392
void *old_addr, void *new_addr)
406393
{

drivers/isdn/mISDN/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ mISDN_register_device(struct mISDNdevice *dev,
222222

223223
err = get_free_devid();
224224
if (err < 0)
225-
goto error1;
225+
return err;
226226
dev->id = err;
227227

228228
device_initialize(&dev->dev);

drivers/isdn/mISDN/dsp_pipeline.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)
7777
if (!entry)
7878
return -ENOMEM;
7979

80+
INIT_LIST_HEAD(&entry->list);
8081
entry->elem = elem;
8182

8283
entry->dev.class = elements_class;
@@ -107,7 +108,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)
107108
device_unregister(&entry->dev);
108109
return ret;
109110
err1:
110-
kfree(entry);
111+
put_device(&entry->dev);
111112
return ret;
112113
}
113114
EXPORT_SYMBOL(mISDN_dsp_element_register);

drivers/net/ethernet/amazon/ena/ena_netdev.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4543,13 +4543,19 @@ static struct pci_driver ena_pci_driver = {
45434543

45444544
static int __init ena_init(void)
45454545
{
4546+
int ret;
4547+
45464548
ena_wq = create_singlethread_workqueue(DRV_MODULE_NAME);
45474549
if (!ena_wq) {
45484550
pr_err("Failed to create workqueue\n");
45494551
return -ENOMEM;
45504552
}
45514553

4552-
return pci_register_driver(&ena_pci_driver);
4554+
ret = pci_register_driver(&ena_pci_driver);
4555+
if (ret)
4556+
destroy_workqueue(ena_wq);
4557+
4558+
return ret;
45534559
}
45544560

45554561
static void __exit ena_cleanup(void)

drivers/net/ethernet/atheros/ag71xx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,7 @@ static int ag71xx_open(struct net_device *ndev)
14271427
if (ret) {
14281428
netif_err(ag, link, ndev, "phylink_of_phy_connect filed with err: %i\n",
14291429
ret);
1430-
goto err;
1430+
return ret;
14311431
}
14321432

14331433
max_frame_len = ag71xx_max_frame_len(ndev->mtu);
@@ -1448,6 +1448,7 @@ static int ag71xx_open(struct net_device *ndev)
14481448

14491449
err:
14501450
ag71xx_rings_cleanup(ag);
1451+
phylink_disconnect_phy(ag->phylink);
14511452
return ret;
14521453
}
14531454

drivers/net/ethernet/broadcom/bgmac.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1568,7 +1568,6 @@ void bgmac_enet_remove(struct bgmac *bgmac)
15681568
phy_disconnect(bgmac->net_dev->phydev);
15691569
netif_napi_del(&bgmac->napi);
15701570
bgmac_dma_free(bgmac);
1571-
free_netdev(bgmac->net_dev);
15721571
}
15731572
EXPORT_SYMBOL_GPL(bgmac_enet_remove);
15741573

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14037,8 +14037,16 @@ static struct pci_driver bnxt_pci_driver = {
1403714037

1403814038
static int __init bnxt_init(void)
1403914039
{
14040+
int err;
14041+
1404014042
bnxt_debug_init();
14041-
return pci_register_driver(&bnxt_pci_driver);
14043+
err = pci_register_driver(&bnxt_pci_driver);
14044+
if (err) {
14045+
bnxt_debug_exit();
14046+
return err;
14047+
}
14048+
14049+
return 0;
1404214050
}
1404314051

1404414052
static void __exit bnxt_exit(void)

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

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1794,13 +1794,10 @@ static int liquidio_open(struct net_device *netdev)
17941794

17951795
ifstate_set(lio, LIO_IFSTATE_RUNNING);
17961796

1797-
if (OCTEON_CN23XX_PF(oct)) {
1798-
if (!oct->msix_on)
1799-
if (setup_tx_poll_fn(netdev))
1800-
return -1;
1801-
} else {
1802-
if (setup_tx_poll_fn(netdev))
1803-
return -1;
1797+
if (!OCTEON_CN23XX_PF(oct) || (OCTEON_CN23XX_PF(oct) && !oct->msix_on)) {
1798+
ret = setup_tx_poll_fn(netdev);
1799+
if (ret)
1800+
goto err_poll;
18041801
}
18051802

18061803
netif_tx_start_all_queues(netdev);
@@ -1813,7 +1810,7 @@ static int liquidio_open(struct net_device *netdev)
18131810
/* tell Octeon to start forwarding packets to host */
18141811
ret = send_rx_ctrl_cmd(lio, 1);
18151812
if (ret)
1816-
return ret;
1813+
goto err_rx_ctrl;
18171814

18181815
/* start periodical statistics fetch */
18191816
INIT_DELAYED_WORK(&lio->stats_wk.work, lio_fetch_stats);
@@ -1824,6 +1821,27 @@ static int liquidio_open(struct net_device *netdev)
18241821
dev_info(&oct->pci_dev->dev, "%s interface is opened\n",
18251822
netdev->name);
18261823

1824+
return 0;
1825+
1826+
err_rx_ctrl:
1827+
if (!OCTEON_CN23XX_PF(oct) || (OCTEON_CN23XX_PF(oct) && !oct->msix_on))
1828+
cleanup_tx_poll_fn(netdev);
1829+
err_poll:
1830+
if (lio->ptp_clock) {
1831+
ptp_clock_unregister(lio->ptp_clock);
1832+
lio->ptp_clock = NULL;
1833+
}
1834+
1835+
if (oct->props[lio->ifidx].napi_enabled == 1) {
1836+
list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list)
1837+
napi_disable(napi);
1838+
1839+
oct->props[lio->ifidx].napi_enabled = 0;
1840+
1841+
if (OCTEON_CN23XX_PF(oct))
1842+
oct->droq[0]->ops.poll_mode = 0;
1843+
}
1844+
18271845
return ret;
18281846
}
18291847

drivers/net/ethernet/hisilicon/hns3/hnae3.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,6 @@ struct hnae3_knic_private_info {
819819
const struct hnae3_dcb_ops *dcb_ops;
820820

821821
u16 int_rl_setting;
822-
enum pkt_hash_types rss_type;
823822
void __iomem *io_base;
824823
};
825824

drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -191,23 +191,6 @@ u32 hclge_comm_get_rss_key_size(struct hnae3_handle *handle)
191191
return HCLGE_COMM_RSS_KEY_SIZE;
192192
}
193193

194-
void hclge_comm_get_rss_type(struct hnae3_handle *nic,
195-
struct hclge_comm_rss_tuple_cfg *rss_tuple_sets)
196-
{
197-
if (rss_tuple_sets->ipv4_tcp_en ||
198-
rss_tuple_sets->ipv4_udp_en ||
199-
rss_tuple_sets->ipv4_sctp_en ||
200-
rss_tuple_sets->ipv6_tcp_en ||
201-
rss_tuple_sets->ipv6_udp_en ||
202-
rss_tuple_sets->ipv6_sctp_en)
203-
nic->kinfo.rss_type = PKT_HASH_TYPE_L4;
204-
else if (rss_tuple_sets->ipv4_fragment_en ||
205-
rss_tuple_sets->ipv6_fragment_en)
206-
nic->kinfo.rss_type = PKT_HASH_TYPE_L3;
207-
else
208-
nic->kinfo.rss_type = PKT_HASH_TYPE_NONE;
209-
}
210-
211194
int hclge_comm_parse_rss_hfunc(struct hclge_comm_rss_cfg *rss_cfg,
212195
const u8 hfunc, u8 *hash_algo)
213196
{
@@ -344,9 +327,6 @@ int hclge_comm_set_rss_input_tuple(struct hnae3_handle *nic,
344327
req->ipv6_sctp_en = rss_cfg->rss_tuple_sets.ipv6_sctp_en;
345328
req->ipv6_fragment_en = rss_cfg->rss_tuple_sets.ipv6_fragment_en;
346329

347-
if (is_pf)
348-
hclge_comm_get_rss_type(nic, &rss_cfg->rss_tuple_sets);
349-
350330
ret = hclge_comm_cmd_send(hw, &desc, 1);
351331
if (ret)
352332
dev_err(&hw->cmq.csq.pdev->dev,

drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,6 @@ struct hclge_comm_rss_tc_mode_cmd {
9595
};
9696

9797
u32 hclge_comm_get_rss_key_size(struct hnae3_handle *handle);
98-
void hclge_comm_get_rss_type(struct hnae3_handle *nic,
99-
struct hclge_comm_rss_tuple_cfg *rss_tuple_sets);
10098
void hclge_comm_rss_indir_init_cfg(struct hnae3_ae_dev *ae_dev,
10199
struct hclge_comm_rss_cfg *rss_cfg);
102100
int hclge_comm_get_rss_tuple(struct hclge_comm_rss_cfg *rss_cfg, int flow_type,

0 commit comments

Comments
 (0)