[PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions

Philipp Stanner posted 4 patches 9 months, 3 weeks ago
There is a newer version of this series
[PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions
Posted by Philipp Stanner 9 months, 3 weeks ago
From: Philipp Stanner <pstanner@redhat.com>

The PCI functions
  - pcim_iomap_regions() and
  - pcim_iomap_table()
have been deprecated.

Replace them with their successor function, pcim_iomap_region().

Make variable declaration order at closeby places comply with reverse
christmas tree order.

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 11 ++++-------
 drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   | 14 ++++++--------
 2 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
index f3ea6016be68..25ef7b9c5dce 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
@@ -521,10 +521,10 @@ static int loongson_dwmac_acpi_config(struct pci_dev *pdev,
 static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
 	struct plat_stmmacenet_data *plat;
+	struct stmmac_resources res = {};
 	struct stmmac_pci_info *info;
-	struct stmmac_resources res;
 	struct loongson_data *ld;
-	int ret, i;
+	int ret;
 
 	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
 	if (!plat)
@@ -554,13 +554,11 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
 	pci_set_master(pdev);
 
 	/* Get the base address of device */
-	ret = pcim_iomap_regions(pdev, BIT(0), DRIVER_NAME);
+	res.addr = pcim_iomap_region(pdev, 0, DRIVER_NAME);
+	ret = PTR_ERR_OR_ZERO(res.addr);
 	if (ret)
 		goto err_disable_device;
 
-	memset(&res, 0, sizeof(res));
-	res.addr = pcim_iomap_table(pdev)[0];
-
 	plat->bsp_priv = ld;
 	plat->setup = loongson_dwmac_setup;
 	ld->dev = &pdev->dev;
@@ -603,7 +601,6 @@ static void loongson_dwmac_remove(struct pci_dev *pdev)
 	struct net_device *ndev = dev_get_drvdata(&pdev->dev);
 	struct stmmac_priv *priv = netdev_priv(ndev);
 	struct loongson_data *ld;
-	int i;
 
 	ld = priv->plat->bsp_priv;
 	stmmac_dvr_remove(&pdev->dev);
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
index 91ff6c15f977..37fc7f55a7e4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
@@ -155,9 +155,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
 {
 	struct stmmac_pci_info *info = (struct stmmac_pci_info *)id->driver_data;
 	struct plat_stmmacenet_data *plat;
-	struct stmmac_resources res;
-	int i;
+	struct stmmac_resources res = {};
 	int ret;
+	int i;
 
 	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
 	if (!plat)
@@ -188,13 +188,13 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
 		return ret;
 	}
 
-	/* Get the base address of device */
+	/* The first BAR > 0 is the base IO addr of our device. */
 	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
 		if (pci_resource_len(pdev, i) == 0)
 			continue;
-		ret = pcim_iomap_regions(pdev, BIT(i), pci_name(pdev));
-		if (ret)
-			return ret;
+		res.addr = pcim_iomap_region(pdev, i, STMMAC_RESOURCE_NAME);
+		if (IS_ERR(res.addr))
+			return PTR_ERR(res.addr);
 		break;
 	}
 
@@ -204,8 +204,6 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
 	if (ret)
 		return ret;
 
-	memset(&res, 0, sizeof(res));
-	res.addr = pcim_iomap_table(pdev)[i];
 	res.wol_irq = pdev->irq;
 	res.irq = pdev->irq;
 
-- 
2.48.1
Re: [PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions
Posted by Huacai Chen 9 months, 3 weeks ago
On Mon, Feb 24, 2025 at 9:53 PM Philipp Stanner <phasta@kernel.org> wrote:
>
> From: Philipp Stanner <pstanner@redhat.com>
>
> The PCI functions
>   - pcim_iomap_regions() and
>   - pcim_iomap_table()
> have been deprecated.
>
> Replace them with their successor function, pcim_iomap_region().
>
> Make variable declaration order at closeby places comply with reverse
> christmas tree order.
>
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>

> ---
>  .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 11 ++++-------
>  drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   | 14 ++++++--------
>  2 files changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> index f3ea6016be68..25ef7b9c5dce 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> @@ -521,10 +521,10 @@ static int loongson_dwmac_acpi_config(struct pci_dev *pdev,
>  static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  {
>         struct plat_stmmacenet_data *plat;
> +       struct stmmac_resources res = {};
>         struct stmmac_pci_info *info;
> -       struct stmmac_resources res;
>         struct loongson_data *ld;
> -       int ret, i;
> +       int ret;
>
>         plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
>         if (!plat)
> @@ -554,13 +554,11 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
>         pci_set_master(pdev);
>
>         /* Get the base address of device */
> -       ret = pcim_iomap_regions(pdev, BIT(0), DRIVER_NAME);
> +       res.addr = pcim_iomap_region(pdev, 0, DRIVER_NAME);
> +       ret = PTR_ERR_OR_ZERO(res.addr);
>         if (ret)
>                 goto err_disable_device;
>
> -       memset(&res, 0, sizeof(res));
> -       res.addr = pcim_iomap_table(pdev)[0];
> -
>         plat->bsp_priv = ld;
>         plat->setup = loongson_dwmac_setup;
>         ld->dev = &pdev->dev;
> @@ -603,7 +601,6 @@ static void loongson_dwmac_remove(struct pci_dev *pdev)
>         struct net_device *ndev = dev_get_drvdata(&pdev->dev);
>         struct stmmac_priv *priv = netdev_priv(ndev);
>         struct loongson_data *ld;
> -       int i;
>
>         ld = priv->plat->bsp_priv;
>         stmmac_dvr_remove(&pdev->dev);
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> index 91ff6c15f977..37fc7f55a7e4 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> @@ -155,9 +155,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
>  {
>         struct stmmac_pci_info *info = (struct stmmac_pci_info *)id->driver_data;
>         struct plat_stmmacenet_data *plat;
> -       struct stmmac_resources res;
> -       int i;
> +       struct stmmac_resources res = {};
>         int ret;
> +       int i;
>
>         plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
>         if (!plat)
> @@ -188,13 +188,13 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
>                 return ret;
>         }
>
> -       /* Get the base address of device */
> +       /* The first BAR > 0 is the base IO addr of our device. */
>         for (i = 0; i < PCI_STD_NUM_BARS; i++) {
>                 if (pci_resource_len(pdev, i) == 0)
>                         continue;
> -               ret = pcim_iomap_regions(pdev, BIT(i), pci_name(pdev));
> -               if (ret)
> -                       return ret;
> +               res.addr = pcim_iomap_region(pdev, i, STMMAC_RESOURCE_NAME);
> +               if (IS_ERR(res.addr))
> +                       return PTR_ERR(res.addr);
>                 break;
>         }
>
> @@ -204,8 +204,6 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
>         if (ret)
>                 return ret;
>
> -       memset(&res, 0, sizeof(res));
> -       res.addr = pcim_iomap_table(pdev)[i];
>         res.wol_irq = pdev->irq;
>         res.irq = pdev->irq;
>
> --
> 2.48.1
>
Re: [PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions
Posted by Philipp Stanner 9 months, 3 weeks ago
On Mon, 2025-02-24 at 14:53 +0100, Philipp Stanner wrote:
> From: Philipp Stanner <pstanner@redhat.com>
> 
> The PCI functions
>   - pcim_iomap_regions() and
>   - pcim_iomap_table()
> have been deprecated.
> 
> Replace them with their successor function, pcim_iomap_region().
> 
> Make variable declaration order at closeby places comply with reverse
> christmas tree order.
> 
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
> ---
>  .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 11 ++++-------
>  drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   | 14 ++++++------
> --
>  2 files changed, 10 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> index f3ea6016be68..25ef7b9c5dce 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
> @@ -521,10 +521,10 @@ static int loongson_dwmac_acpi_config(struct
> pci_dev *pdev,
>  static int loongson_dwmac_probe(struct pci_dev *pdev, const struct
> pci_device_id *id)
>  {
>  	struct plat_stmmacenet_data *plat;
> +	struct stmmac_resources res = {};
>  	struct stmmac_pci_info *info;
> -	struct stmmac_resources res;
>  	struct loongson_data *ld;
> -	int ret, i;
> +	int ret;
>  
>  	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
>  	if (!plat)
> @@ -554,13 +554,11 @@ static int loongson_dwmac_probe(struct pci_dev
> *pdev, const struct pci_device_id
>  	pci_set_master(pdev);
>  
>  	/* Get the base address of device */
> -	ret = pcim_iomap_regions(pdev, BIT(0), DRIVER_NAME);
> +	res.addr = pcim_iomap_region(pdev, 0, DRIVER_NAME);
> +	ret = PTR_ERR_OR_ZERO(res.addr);
>  	if (ret)
>  		goto err_disable_device;
>  
> -	memset(&res, 0, sizeof(res));
> -	res.addr = pcim_iomap_table(pdev)[0];
> -
>  	plat->bsp_priv = ld;
>  	plat->setup = loongson_dwmac_setup;
>  	ld->dev = &pdev->dev;
> @@ -603,7 +601,6 @@ static void loongson_dwmac_remove(struct pci_dev
> *pdev)
>  	struct net_device *ndev = dev_get_drvdata(&pdev->dev);
>  	struct stmmac_priv *priv = netdev_priv(ndev);
>  	struct loongson_data *ld;
> -	int i;

Just saw that this is a left-over that actually should be in patch 3.
Will fix.


P.

>  
>  	ld = priv->plat->bsp_priv;
>  	stmmac_dvr_remove(&pdev->dev);
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> index 91ff6c15f977..37fc7f55a7e4 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> @@ -155,9 +155,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
>  {
>  	struct stmmac_pci_info *info = (struct stmmac_pci_info *)id-
> >driver_data;
>  	struct plat_stmmacenet_data *plat;
> -	struct stmmac_resources res;
> -	int i;
> +	struct stmmac_resources res = {};
>  	int ret;
> +	int i;
>  
>  	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
>  	if (!plat)
> @@ -188,13 +188,13 @@ static int stmmac_pci_probe(struct pci_dev
> *pdev,
>  		return ret;
>  	}
>  
> -	/* Get the base address of device */
> +	/* The first BAR > 0 is the base IO addr of our device. */
>  	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
>  		if (pci_resource_len(pdev, i) == 0)
>  			continue;
> -		ret = pcim_iomap_regions(pdev, BIT(i),
> pci_name(pdev));
> -		if (ret)
> -			return ret;
> +		res.addr = pcim_iomap_region(pdev, i,
> STMMAC_RESOURCE_NAME);
> +		if (IS_ERR(res.addr))
> +			return PTR_ERR(res.addr);
>  		break;
>  	}
>  
> @@ -204,8 +204,6 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
>  	if (ret)
>  		return ret;
>  
> -	memset(&res, 0, sizeof(res));
> -	res.addr = pcim_iomap_table(pdev)[i];
>  	res.wol_irq = pdev->irq;
>  	res.irq = pdev->irq;
>  
Re: [PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions
Posted by Yanteng Si 9 months, 3 weeks ago
在 2/25/25 3:16 PM, Philipp Stanner 写道:
> On Mon, 2025-02-24 at 14:53 +0100, Philipp Stanner wrote:
>> From: Philipp Stanner <pstanner@redhat.com>
>>
>> The PCI functions
>>    - pcim_iomap_regions() and
>>    - pcim_iomap_table()
>> have been deprecated.
>>
>> Replace them with their successor function, pcim_iomap_region().
>>
>> Make variable declaration order at closeby places comply with reverse
>> christmas tree order.
>>
>> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
>> ---
>>   .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   | 11 ++++-------
>>   drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   | 14 ++++++------
>> --
>>   2 files changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
>> b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
>> index f3ea6016be68..25ef7b9c5dce 100644
>> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
>> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
>> @@ -521,10 +521,10 @@ static int loongson_dwmac_acpi_config(struct
>> pci_dev *pdev,
>>   static int loongson_dwmac_probe(struct pci_dev *pdev, const struct
>> pci_device_id *id)
>>   {
>>   	struct plat_stmmacenet_data *plat;
>> +	struct stmmac_resources res = {};
>>   	struct stmmac_pci_info *info;
>> -	struct stmmac_resources res;
>>   	struct loongson_data *ld;
>> -	int ret, i;
>> +	int ret;
>>   
>>   	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
>>   	if (!plat)
>> @@ -554,13 +554,11 @@ static int loongson_dwmac_probe(struct pci_dev
>> *pdev, const struct pci_device_id
>>   	pci_set_master(pdev);
>>   
>>   	/* Get the base address of device */
>> -	ret = pcim_iomap_regions(pdev, BIT(0), DRIVER_NAME);
>> +	res.addr = pcim_iomap_region(pdev, 0, DRIVER_NAME);
>> +	ret = PTR_ERR_OR_ZERO(res.addr);
>>   	if (ret)
>>   		goto err_disable_device;
>>   
>> -	memset(&res, 0, sizeof(res));
>> -	res.addr = pcim_iomap_table(pdev)[0];
>> -
>>   	plat->bsp_priv = ld;
>>   	plat->setup = loongson_dwmac_setup;
>>   	ld->dev = &pdev->dev;
>> @@ -603,7 +601,6 @@ static void loongson_dwmac_remove(struct pci_dev
>> *pdev)
>>   	struct net_device *ndev = dev_get_drvdata(&pdev->dev);
>>   	struct stmmac_priv *priv = netdev_priv(ndev);
>>   	struct loongson_data *ld;
>> -	int i;
> Just saw that this is a left-over that actually should be in patch 3.
> Will fix.
>
Yeah, with this


Reviewed-by: Yanteng Si <si.yanteng@linux.dev>

Thanks,
Yanteng

Re: [PATCH net-next v3 4/4] stmmac: Replace deprecated PCI functions
Posted by Andrew Lunn 9 months, 3 weeks ago
On Mon, Feb 24, 2025 at 02:53:22PM +0100, Philipp Stanner wrote:
> From: Philipp Stanner <pstanner@redhat.com>
> 
> The PCI functions
>   - pcim_iomap_regions() and
>   - pcim_iomap_table()
> have been deprecated.
> 
> Replace them with their successor function, pcim_iomap_region().
> 
> Make variable declaration order at closeby places comply with reverse
> christmas tree order.
> 
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew