 7efec0acca
			
		
	
	7efec0acca
	
	
	
		
			
			Manually rebased:
	bcm4908/patches-5.15/071-v6.1-0001-net-broadcom-bcm4908_enet-handle-EPROBE_DEFER-when-g.patch
	bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
	ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch[*]
	bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
	bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
	bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
Removed upstreamed:
	backport-5.15/735-v6.5-net-bgmac-postpone-turning-IRQs-off-to-avoid-SoC-han.patch[1]
	backport-5.15/817-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch[2]
	pending-5.15/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch[3]
	pending-5.15/160-workqueue-fix-enum-type-for-gcc-13.patch[4]
	bcm53xx/patches-5.15/036-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch[5]
	bcm53xx/patches-5.15/036-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch[6]
	ipq807x/patches-5.15/0048-v6.1-clk-qcom-reset-Allow-specifying-custom-reset-delay.patch[7]
	ipq807x/patches-5.15/0049-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch[8]
All other patches automatically rebased.
1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=02474292a44205c1eb5a03634ead155a3c9134f4
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=86b93cbfe104e99fd3d25a49748b99fb88101573
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=79b9ab357b6f5675007f4c02ff8765cbd8dc06a2
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=d528faa9e828b9fc46dfb684a2a9fd8c2e860ed8
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=5899bc4058e89d5110a23797ff94439c53b77c25
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=95afd2c7c7d26087730dc938709e025a303e5499
7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=40844343a8853a08b049d50c967e2a1e28f0ece6
8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=6ad5ded420f5d96f7c65b68135f5787a1c7e58d7
Build system: x86/64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3
Co-authored-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John Audia <therealgraysky@proton.me>
[rebased ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch ]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 8590531048)
[Refreshed on top of openwrt-23.05]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From b3d0d98179d62f9d55635a600679c4fa362baf8d Mon Sep 17 00:00:00 2001
 | |
| From: Yang Yingliang <yangyingliang@huawei.com>
 | |
| Date: Mon, 17 Oct 2022 11:51:54 +0800
 | |
| Subject: [PATCH 1/3] net: ethernet: mtk_eth_soc: fix possible memory leak in
 | |
|  mtk_probe()
 | |
| 
 | |
| If mtk_wed_add_hw() has been called, mtk_wed_exit() needs be called
 | |
| in error path or removing module to free the memory allocated in
 | |
| mtk_wed_add_hw().
 | |
| 
 | |
| Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
 | |
| Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
 | |
| Signed-off-by: David S. Miller <davem@davemloft.net>
 | |
| ---
 | |
|  drivers/net/ethernet/mediatek/mtk_eth_soc.c | 17 ++++++++++++-----
 | |
|  1 file changed, 12 insertions(+), 5 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | |
| +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 | |
| @@ -4004,19 +4004,23 @@ static int mtk_probe(struct platform_dev
 | |
|  			eth->irq[i] = platform_get_irq(pdev, i);
 | |
|  		if (eth->irq[i] < 0) {
 | |
|  			dev_err(&pdev->dev, "no IRQ%d resource found\n", i);
 | |
| -			return -ENXIO;
 | |
| +			err = -ENXIO;
 | |
| +			goto err_wed_exit;
 | |
|  		}
 | |
|  	}
 | |
|  	for (i = 0; i < ARRAY_SIZE(eth->clks); i++) {
 | |
|  		eth->clks[i] = devm_clk_get(eth->dev,
 | |
|  					    mtk_clks_source_name[i]);
 | |
|  		if (IS_ERR(eth->clks[i])) {
 | |
| -			if (PTR_ERR(eth->clks[i]) == -EPROBE_DEFER)
 | |
| -				return -EPROBE_DEFER;
 | |
| +			if (PTR_ERR(eth->clks[i]) == -EPROBE_DEFER) {
 | |
| +				err = -EPROBE_DEFER;
 | |
| +				goto err_wed_exit;
 | |
| +			}
 | |
|  			if (eth->soc->required_clks & BIT(i)) {
 | |
|  				dev_err(&pdev->dev, "clock %s not found\n",
 | |
|  					mtk_clks_source_name[i]);
 | |
| -				return -EINVAL;
 | |
| +				err = -EINVAL;
 | |
| +				goto err_wed_exit;
 | |
|  			}
 | |
|  			eth->clks[i] = NULL;
 | |
|  		}
 | |
| @@ -4027,7 +4031,7 @@ static int mtk_probe(struct platform_dev
 | |
|  
 | |
|  	err = mtk_hw_init(eth);
 | |
|  	if (err)
 | |
| -		return err;
 | |
| +		goto err_wed_exit;
 | |
|  
 | |
|  	eth->hwlro = MTK_HAS_CAPS(eth->soc->caps, MTK_HWLRO);
 | |
|  
 | |
| @@ -4125,6 +4129,8 @@ err_free_dev:
 | |
|  	mtk_free_dev(eth);
 | |
|  err_deinit_hw:
 | |
|  	mtk_hw_deinit(eth);
 | |
| +err_wed_exit:
 | |
| +	mtk_wed_exit();
 | |
|  
 | |
|  	return err;
 | |
|  }
 | |
| @@ -4144,6 +4150,7 @@ static int mtk_remove(struct platform_de
 | |
|  		phylink_disconnect_phy(mac->phylink);
 | |
|  	}
 | |
|  
 | |
| +	mtk_wed_exit();
 | |
|  	mtk_hw_deinit(eth);
 | |
|  
 | |
|  	netif_napi_del(ð->tx_napi);
 |