mirror of
				https://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 13:55:59 +00:00 
			
		
		
		
	Backport upstream minor fixed for NPU handling that might result in kernel panic or handle leak. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 05e090620bacf317020f9591cfff8926093380bd Mon Sep 17 00:00:00 2001
 | |
| From: Dan Carpenter <dan.carpenter@linaro.org>
 | |
| Date: Fri, 24 Oct 2025 14:23:35 +0300
 | |
| Subject: [PATCH] net: airoha: Fix a copy and paste bug in probe()
 | |
| 
 | |
| This code has a copy and paste bug where it accidentally checks "if (err)"
 | |
| instead of checking if "xsi_rsts" is NULL.  Also, as a free bonus, I
 | |
| changed the allocation from kzalloc() to  kcalloc() which is a kernel
 | |
| hardening measure to protect against integer overflows.
 | |
| 
 | |
| Fixes: 5863b4e065e2 ("net: airoha: Add airoha_eth_soc_data struct")
 | |
| Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
 | |
| Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
 | |
| Link: https://patch.msgid.link/aPtht6y5DRokn9zv@stanley.mountain
 | |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 | |
| ---
 | |
|  drivers/net/ethernet/airoha/airoha_eth.c | 8 ++++----
 | |
|  1 file changed, 4 insertions(+), 4 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/ethernet/airoha/airoha_eth.c
 | |
| +++ b/drivers/net/ethernet/airoha/airoha_eth.c
 | |
| @@ -2990,11 +2990,11 @@ static int airoha_probe(struct platform_
 | |
|  		return err;
 | |
|  	}
 | |
|  
 | |
| -	xsi_rsts = devm_kzalloc(eth->dev,
 | |
| -				eth->soc->num_xsi_rsts * sizeof(*xsi_rsts),
 | |
| +	xsi_rsts = devm_kcalloc(eth->dev,
 | |
| +				eth->soc->num_xsi_rsts, sizeof(*xsi_rsts),
 | |
|  				GFP_KERNEL);
 | |
| -	if (err)
 | |
| -		return err;
 | |
| +	if (!xsi_rsts)
 | |
| +		return -ENOMEM;
 | |
|  
 | |
|  	eth->xsi_rsts = xsi_rsts;
 | |
|  	for (i = 0; i < eth->soc->num_xsi_rsts; i++)
 |