linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup
@ 2021-12-21 23:58 David E. Box
  2021-12-21 23:58 ` [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers David E. Box
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: David E. Box @ 2021-12-21 23:58 UTC (permalink / raw)
  To: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: David E. Box, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

Depends on "driver core: auxiliary bus: Add driver data helpers" patch [1].
Applies the helpers to all auxiliary device drivers using
dev_(get/set)_drvdata. Drivers were found using the following search:

    grep -lr "struct auxiliary_device" $(grep -lr "drvdata" .)

Changes were build tested using the following configs:

    vdpa/mlx5:       CONFIG_MLX5_VDPA_NET
    net/mlx53:       CONFIG_MLX5_CORE_EN
    soundwire/intel: CONFIG_SOUNDWIRE_INTEL
    RDAM/irdma:      CONFIG_INFINIBAND_IRDMA
                     CONFIG_MLX5_INFINIBAND

[1] https://www.spinics.net/lists/platform-driver-x86/msg29940.html 

David E. Box (4):
  RDMA/irdma: Use auxiliary_device driver data helpers
  soundwire: intel: Use auxiliary_device driver data helpers
  net/mlx5e: Use auxiliary_device driver data helpers
  vdpa/mlx5: Use auxiliary_device driver data helpers

 drivers/infiniband/hw/irdma/main.c                | 4 ++--
 drivers/infiniband/hw/mlx5/main.c                 | 8 ++++----
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++----
 drivers/soundwire/intel.c                         | 8 ++++----
 drivers/soundwire/intel_init.c                    | 2 +-
 drivers/vdpa/mlx5/net/mlx5_vnet.c                 | 4 ++--
 6 files changed, 17 insertions(+), 17 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
@ 2021-12-21 23:58 ` David E. Box
  2021-12-22 12:27   ` Cezary Rojewski
  2021-12-21 23:58 ` [PATCH 2/4] soundwire: intel: " David E. Box
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: David E. Box @ 2021-12-21 23:58 UTC (permalink / raw)
  To: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: David E. Box, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
 drivers/infiniband/hw/irdma/main.c | 4 ++--
 drivers/infiniband/hw/mlx5/main.c  | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/main.c b/drivers/infiniband/hw/irdma/main.c
index 51a41359e0b4..9ccf4d683f8a 100644
--- a/drivers/infiniband/hw/irdma/main.c
+++ b/drivers/infiniband/hw/irdma/main.c
@@ -207,7 +207,7 @@ static void irdma_remove(struct auxiliary_device *aux_dev)
 							    struct iidc_auxiliary_dev,
 							    adev);
 	struct ice_pf *pf = iidc_adev->pf;
-	struct irdma_device *iwdev = dev_get_drvdata(&aux_dev->dev);
+	struct irdma_device *iwdev = auxiliary_get_drvdata(aux_dev);
 
 	irdma_ib_unregister_device(iwdev);
 	ice_rdma_update_vsi_filter(pf, iwdev->vsi_num, false);
@@ -294,7 +294,7 @@ static int irdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary_
 	ice_rdma_update_vsi_filter(pf, iwdev->vsi_num, true);
 
 	ibdev_dbg(&iwdev->ibdev, "INIT: Gen2 PF[%d] device probe success\n", PCI_FUNC(rf->pcidev->devfn));
-	dev_set_drvdata(&aux_dev->dev, iwdev);
+	auxiliary_set_drvdata(aux_dev, iwdev);
 
 	return 0;
 
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 5ec8bd2f0b2f..85f526c861e9 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -4422,7 +4422,7 @@ static int mlx5r_mp_probe(struct auxiliary_device *adev,
 	}
 	mutex_unlock(&mlx5_ib_multiport_mutex);
 
-	dev_set_drvdata(&adev->dev, mpi);
+	auxiliary_set_drvdata(adev, mpi);
 	return 0;
 }
 
@@ -4430,7 +4430,7 @@ static void mlx5r_mp_remove(struct auxiliary_device *adev)
 {
 	struct mlx5_ib_multiport_info *mpi;
 
-	mpi = dev_get_drvdata(&adev->dev);
+	mpi = auxiliary_get_drvdata(adev);
 	mutex_lock(&mlx5_ib_multiport_mutex);
 	if (mpi->ibdev)
 		mlx5_ib_unbind_slave_port(mpi->ibdev, mpi);
@@ -4480,7 +4480,7 @@ static int mlx5r_probe(struct auxiliary_device *adev,
 		return ret;
 	}
 
-	dev_set_drvdata(&adev->dev, dev);
+	auxiliary_set_drvdata(adev, dev);
 	return 0;
 }
 
@@ -4488,7 +4488,7 @@ static void mlx5r_remove(struct auxiliary_device *adev)
 {
 	struct mlx5_ib_dev *dev;
 
-	dev = dev_get_drvdata(&adev->dev);
+	dev = auxiliary_get_drvdata(adev);
 	__mlx5_ib_remove(dev, dev->profile, MLX5_IB_STAGE_MAX);
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/4] soundwire: intel: Use auxiliary_device driver data helpers
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
  2021-12-21 23:58 ` [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers David E. Box
@ 2021-12-21 23:58 ` David E. Box
  2021-12-22 11:18   ` Andy Shevchenko
  2021-12-21 23:58 ` [PATCH 3/4] net/mlx5e: " David E. Box
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: David E. Box @ 2021-12-21 23:58 UTC (permalink / raw)
  To: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: David E. Box, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
 drivers/soundwire/intel.c      | 8 ++++----
 drivers/soundwire/intel_init.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index 78037ffdb09b..d082d18e41a9 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -1293,7 +1293,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
 	bus->ops = &sdw_intel_ops;
 
 	/* set driver data, accessed by snd_soc_dai_get_drvdata() */
-	dev_set_drvdata(dev, cdns);
+	auxiliary_set_drvdata(auxdev, cdns);
 
 	/* use generic bandwidth allocation algorithm */
 	sdw->cdns.bus.compute_params = sdw_compute_params;
@@ -1321,7 +1321,7 @@ int intel_link_startup(struct auxiliary_device *auxdev)
 {
 	struct sdw_cdns_stream_config config;
 	struct device *dev = &auxdev->dev;
-	struct sdw_cdns *cdns = dev_get_drvdata(dev);
+	struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
 	struct sdw_intel *sdw = cdns_to_intel(cdns);
 	struct sdw_bus *bus = &cdns->bus;
 	int link_flags;
@@ -1463,7 +1463,7 @@ int intel_link_startup(struct auxiliary_device *auxdev)
 static void intel_link_remove(struct auxiliary_device *auxdev)
 {
 	struct device *dev = &auxdev->dev;
-	struct sdw_cdns *cdns = dev_get_drvdata(dev);
+	struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
 	struct sdw_intel *sdw = cdns_to_intel(cdns);
 	struct sdw_bus *bus = &cdns->bus;
 
@@ -1488,7 +1488,7 @@ int intel_link_process_wakeen_event(struct auxiliary_device *auxdev)
 	void __iomem *shim;
 	u16 wake_sts;
 
-	sdw = dev_get_drvdata(dev);
+	sdw = auxiliary_get_drvdata(auxdev);
 	bus = &sdw->cdns.bus;
 
 	if (bus->prop.hw_disabled || !sdw->startup_done) {
diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c
index e329022e1669..d99807765dfe 100644
--- a/drivers/soundwire/intel_init.c
+++ b/drivers/soundwire/intel_init.c
@@ -244,7 +244,7 @@ static struct sdw_intel_ctx
 			goto err;
 
 		link = &ldev->link_res;
-		link->cdns = dev_get_drvdata(&ldev->auxdev.dev);
+		link->cdns = auxiliary_get_drvdata(&ldev->auxdev);
 
 		if (!link->cdns) {
 			dev_err(&adev->dev, "failed to get link->cdns\n");
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/4] net/mlx5e: Use auxiliary_device driver data helpers
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
  2021-12-21 23:58 ` [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers David E. Box
  2021-12-21 23:58 ` [PATCH 2/4] soundwire: intel: " David E. Box
@ 2021-12-21 23:58 ` David E. Box
  2021-12-21 23:58 ` [PATCH 4/4] vdpa/mlx5: " David E. Box
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: David E. Box @ 2021-12-21 23:58 UTC (permalink / raw)
  To: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: David E. Box, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 65571593ec5c..244ce8f4e286 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5389,7 +5389,7 @@ void mlx5e_destroy_netdev(struct mlx5e_priv *priv)
 static int mlx5e_resume(struct auxiliary_device *adev)
 {
 	struct mlx5_adev *edev = container_of(adev, struct mlx5_adev, adev);
-	struct mlx5e_priv *priv = dev_get_drvdata(&adev->dev);
+	struct mlx5e_priv *priv = auxiliary_get_drvdata(adev);
 	struct net_device *netdev = priv->netdev;
 	struct mlx5_core_dev *mdev = edev->mdev;
 	int err;
@@ -5412,7 +5412,7 @@ static int mlx5e_resume(struct auxiliary_device *adev)
 
 static int mlx5e_suspend(struct auxiliary_device *adev, pm_message_t state)
 {
-	struct mlx5e_priv *priv = dev_get_drvdata(&adev->dev);
+	struct mlx5e_priv *priv = auxiliary_get_drvdata(adev);
 	struct net_device *netdev = priv->netdev;
 	struct mlx5_core_dev *mdev = priv->mdev;
 
@@ -5456,7 +5456,7 @@ static int mlx5e_probe(struct auxiliary_device *adev,
 	mlx5e_build_nic_netdev(netdev);
 
 	priv = netdev_priv(netdev);
-	dev_set_drvdata(&adev->dev, priv);
+	auxiliary_set_drvdata(adev, priv);
 
 	priv->profile = profile;
 	priv->ppriv = NULL;
@@ -5504,7 +5504,7 @@ static int mlx5e_probe(struct auxiliary_device *adev,
 
 static void mlx5e_remove(struct auxiliary_device *adev)
 {
-	struct mlx5e_priv *priv = dev_get_drvdata(&adev->dev);
+	struct mlx5e_priv *priv = auxiliary_get_drvdata(adev);
 	pm_message_t state = {};
 
 	mlx5e_dcbnl_delete_app(priv);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/4] vdpa/mlx5: Use auxiliary_device driver data helpers
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
                   ` (2 preceding siblings ...)
  2021-12-21 23:58 ` [PATCH 3/4] net/mlx5e: " David E. Box
@ 2021-12-21 23:58 ` David E. Box
  2021-12-22  0:09 ` [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup Jason Gunthorpe
  2021-12-22 12:34 ` Cezary Rojewski
  5 siblings, 0 replies; 11+ messages in thread
From: David E. Box @ 2021-12-21 23:58 UTC (permalink / raw)
  To: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: David E. Box, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
 drivers/vdpa/mlx5/net/mlx5_vnet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index 63813fbb5f62..cf59f7e17c6d 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -2683,7 +2683,7 @@ static int mlx5v_probe(struct auxiliary_device *adev,
 	if (err)
 		goto reg_err;
 
-	dev_set_drvdata(&adev->dev, mgtdev);
+	auxiliary_set_drvdata(adev, mgtdev);
 
 	return 0;
 
@@ -2696,7 +2696,7 @@ static void mlx5v_remove(struct auxiliary_device *adev)
 {
 	struct mlx5_vdpa_mgmtdev *mgtdev;
 
-	mgtdev = dev_get_drvdata(&adev->dev);
+	mgtdev = auxiliary_get_drvdata(adev);
 	vdpa_mgmtdev_unregister(&mgtdev->mgtdev);
 	kfree(mgtdev);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
                   ` (3 preceding siblings ...)
  2021-12-21 23:58 ` [PATCH 4/4] vdpa/mlx5: " David E. Box
@ 2021-12-22  0:09 ` Jason Gunthorpe
  2021-12-22  0:48   ` David E. Box
  2021-12-22 12:34 ` Cezary Rojewski
  5 siblings, 1 reply; 11+ messages in thread
From: Jason Gunthorpe @ 2021-12-22  0:09 UTC (permalink / raw)
  To: David E. Box
  Cc: gregkh, mustafa.ismail, shiraz.saleem, dledford, leon, saeedm,
	davem, kuba, vkoul, yung-chuan.liao, pierre-louis.bossart, mst,
	jasowang, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

On Tue, Dec 21, 2021 at 03:58:48PM -0800, David E. Box wrote:
> Depends on "driver core: auxiliary bus: Add driver data helpers" patch [1].
> Applies the helpers to all auxiliary device drivers using
> dev_(get/set)_drvdata. Drivers were found using the following search:
> 
>     grep -lr "struct auxiliary_device" $(grep -lr "drvdata" .)
> 
> Changes were build tested using the following configs:
> 
>     vdpa/mlx5:       CONFIG_MLX5_VDPA_NET
>     net/mlx53:       CONFIG_MLX5_CORE_EN
>     soundwire/intel: CONFIG_SOUNDWIRE_INTEL
>     RDAM/irdma:      CONFIG_INFINIBAND_IRDMA
>                      CONFIG_MLX5_INFINIBAND
> 
> [1] https://www.spinics.net/lists/platform-driver-x86/msg29940.html 

I have to say I don't really find this to be a big readability
improvement.

Also, what use is 'to_auxiliary_dev()' ? I didn't see any users added..

Jason

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup
  2021-12-22  0:09 ` [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup Jason Gunthorpe
@ 2021-12-22  0:48   ` David E. Box
  2021-12-22 17:18     ` Jason Gunthorpe
  0 siblings, 1 reply; 11+ messages in thread
From: David E. Box @ 2021-12-22  0:48 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: gregkh, mustafa.ismail, shiraz.saleem, dledford, leon, saeedm,
	davem, kuba, vkoul, yung-chuan.liao, pierre-louis.bossart, mst,
	jasowang, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

On Tue, 2021-12-21 at 20:09 -0400, Jason Gunthorpe wrote:
> On Tue, Dec 21, 2021 at 03:58:48PM -0800, David E. Box wrote:
> > Depends on "driver core: auxiliary bus: Add driver data helpers" patch [1].
> > Applies the helpers to all auxiliary device drivers using
> > dev_(get/set)_drvdata. Drivers were found using the following search:
> > 
> >     grep -lr "struct auxiliary_device" $(grep -lr "drvdata" .)
> > 
> > Changes were build tested using the following configs:
> > 
> >     vdpa/mlx5:       CONFIG_MLX5_VDPA_NET
> >     net/mlx53:       CONFIG_MLX5_CORE_EN
> >     soundwire/intel: CONFIG_SOUNDWIRE_INTEL
> >     RDAM/irdma:      CONFIG_INFINIBAND_IRDMA
> >                      CONFIG_MLX5_INFINIBAND
> > 
> > [1] https://www.spinics.net/lists/platform-driver-x86/msg29940.html 
> 
> I have to say I don't really find this to be a big readability
> improvement.

I should have referenced the thread [1] discussing the benefit of this change
since the question was asked and answered already. The idea is that drivers
shouldn't have to touch the device API directly if they are already using a
higher level core API (auxiliary bus) that can do that on its behalf.

One benefit of this scheme is that it limits the number of places where changes
need to be made if the device core were to change.

[1] https://lore.kernel.org/all/YbBwOb6JvWkT3JWI@kroah.com/

> 
> Also, what use is 'to_auxiliary_dev()' ? I didn't see any users added..

This was not added by that patch.

Thanks

David
> 
> Jason


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] soundwire: intel: Use auxiliary_device driver data helpers
  2021-12-21 23:58 ` [PATCH 2/4] soundwire: intel: " David E. Box
@ 2021-12-22 11:18   ` Andy Shevchenko
  0 siblings, 0 replies; 11+ messages in thread
From: Andy Shevchenko @ 2021-12-22 11:18 UTC (permalink / raw)
  To: David E. Box
  Cc: gregkh, mustafa.ismail, shiraz.saleem, dledford, jgg, leon,
	saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

On Tue, Dec 21, 2021 at 03:58:50PM -0800, David E. Box wrote:
> Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Signed-off-by: David E. Box <david.e.box@linux.intel.com>
> ---
>  drivers/soundwire/intel.c      | 8 ++++----
>  drivers/soundwire/intel_init.c | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
> index 78037ffdb09b..d082d18e41a9 100644
> --- a/drivers/soundwire/intel.c
> +++ b/drivers/soundwire/intel.c
> @@ -1293,7 +1293,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
>  	bus->ops = &sdw_intel_ops;
>  
>  	/* set driver data, accessed by snd_soc_dai_get_drvdata() */
> -	dev_set_drvdata(dev, cdns);
> +	auxiliary_set_drvdata(auxdev, cdns);
>  
>  	/* use generic bandwidth allocation algorithm */
>  	sdw->cdns.bus.compute_params = sdw_compute_params;
> @@ -1321,7 +1321,7 @@ int intel_link_startup(struct auxiliary_device *auxdev)
>  {
>  	struct sdw_cdns_stream_config config;
>  	struct device *dev = &auxdev->dev;
> -	struct sdw_cdns *cdns = dev_get_drvdata(dev);
> +	struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
>  	struct sdw_intel *sdw = cdns_to_intel(cdns);
>  	struct sdw_bus *bus = &cdns->bus;
>  	int link_flags;
> @@ -1463,7 +1463,7 @@ int intel_link_startup(struct auxiliary_device *auxdev)
>  static void intel_link_remove(struct auxiliary_device *auxdev)
>  {
>  	struct device *dev = &auxdev->dev;
> -	struct sdw_cdns *cdns = dev_get_drvdata(dev);
> +	struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
>  	struct sdw_intel *sdw = cdns_to_intel(cdns);
>  	struct sdw_bus *bus = &cdns->bus;
>  
> @@ -1488,7 +1488,7 @@ int intel_link_process_wakeen_event(struct auxiliary_device *auxdev)
>  	void __iomem *shim;
>  	u16 wake_sts;
>  
> -	sdw = dev_get_drvdata(dev);
> +	sdw = auxiliary_get_drvdata(auxdev);
>  	bus = &sdw->cdns.bus;
>  
>  	if (bus->prop.hw_disabled || !sdw->startup_done) {
> diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c
> index e329022e1669..d99807765dfe 100644
> --- a/drivers/soundwire/intel_init.c
> +++ b/drivers/soundwire/intel_init.c
> @@ -244,7 +244,7 @@ static struct sdw_intel_ctx
>  			goto err;
>  
>  		link = &ldev->link_res;
> -		link->cdns = dev_get_drvdata(&ldev->auxdev.dev);
> +		link->cdns = auxiliary_get_drvdata(&ldev->auxdev);
>  
>  		if (!link->cdns) {
>  			dev_err(&adev->dev, "failed to get link->cdns\n");
> -- 
> 2.25.1
> 

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers
  2021-12-21 23:58 ` [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers David E. Box
@ 2021-12-22 12:27   ` Cezary Rojewski
  0 siblings, 0 replies; 11+ messages in thread
From: Cezary Rojewski @ 2021-12-22 12:27 UTC (permalink / raw)
  To: David E. Box, gregkh, mustafa.ismail, shiraz.saleem, dledford,
	jgg, leon, saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: andriy.shevchenko, hdegoede, virtualization, alsa-devel, netdev,
	linux-kernel, linux-rdma

On 2021-12-22 12:58 AM, David E. Box wrote:
> Use auxiliary_get_drvdata and auxiliary_set_drvdata helpers.
> 
> Signed-off-by: David E. Box <david.e.box@linux.intel.com>
> ---
>   drivers/infiniband/hw/irdma/main.c | 4 ++--
>   drivers/infiniband/hw/mlx5/main.c  | 8 ++++----
>   2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/irdma/main.c b/drivers/infiniband/hw/irdma/main.c
> index 51a41359e0b4..9ccf4d683f8a 100644
> --- a/drivers/infiniband/hw/irdma/main.c
> +++ b/drivers/infiniband/hw/irdma/main.c

While two occurrences of aux_dev->dev have been addressed here for 
irdma/main.c, there is one more that probably could get updated too:

static void irdma_iidc_event_handler(struct ice_pf *pf, struct 
iidrc_event *event)
{
	struct irdma_device *iwdev = dev_get_drvdata(&pf->adev->dev);
(...)
}

Note: the declaration of struct ice_pf reads:

struct ice_pf {
(...)
	struct auxiliary_device *adev;
(...)
};

leads into suggestion:
	struct  irdma_device *iwdev = auxiliary_get_drvdata(pf->adev);


Of course, even if I'm right about this, such change could be applied 
with a separate patch and does not block the current review.

Regards,
Czarek

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup
  2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
                   ` (4 preceding siblings ...)
  2021-12-22  0:09 ` [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup Jason Gunthorpe
@ 2021-12-22 12:34 ` Cezary Rojewski
  5 siblings, 0 replies; 11+ messages in thread
From: Cezary Rojewski @ 2021-12-22 12:34 UTC (permalink / raw)
  To: David E. Box, gregkh, mustafa.ismail, shiraz.saleem, dledford,
	jgg, leon, saeedm, davem, kuba, vkoul, yung-chuan.liao,
	pierre-louis.bossart, mst, jasowang
  Cc: andriy.shevchenko, hdegoede, virtualization, alsa-devel, netdev,
	linux-kernel, linux-rdma

On 2021-12-22 12:58 AM, David E. Box wrote:
> Depends on "driver core: auxiliary bus: Add driver data helpers" patch [1].
> Applies the helpers to all auxiliary device drivers using
> dev_(get/set)_drvdata. Drivers were found using the following search:
> 
>      grep -lr "struct auxiliary_device" $(grep -lr "drvdata" .)
> 
> Changes were build tested using the following configs:
> 
>      vdpa/mlx5:       CONFIG_MLX5_VDPA_NET
>      net/mlx53:       CONFIG_MLX5_CORE_EN
>      soundwire/intel: CONFIG_SOUNDWIRE_INTEL
>      RDAM/irdma:      CONFIG_INFINIBAND_IRDMA
>                       CONFIG_MLX5_INFINIBAND
> 
> [1] https://www.spinics.net/lists/platform-driver-x86/msg29940.html
> 
> David E. Box (4):
>    RDMA/irdma: Use auxiliary_device driver data helpers
>    soundwire: intel: Use auxiliary_device driver data helpers
>    net/mlx5e: Use auxiliary_device driver data helpers
>    vdpa/mlx5: Use auxiliary_device driver data helpers
> 
>   drivers/infiniband/hw/irdma/main.c                | 4 ++--
>   drivers/infiniband/hw/mlx5/main.c                 | 8 ++++----
>   drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++----
>   drivers/soundwire/intel.c                         | 8 ++++----
>   drivers/soundwire/intel_init.c                    | 2 +-
>   drivers/vdpa/mlx5/net/mlx5_vnet.c                 | 4 ++--
>   6 files changed, 17 insertions(+), 17 deletions(-)

Changes look good, I did post one question regarding possible occurrence 
of dev_get_drvdata() not being accounted for in patch:
[PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers

However, it does look like a blocker so:

Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>


For the record, I did scan the following files (users of struct 
auxiliary_device) from drivers/ directory for the missing occurrences 
and found only a single one (as mentioned earlier):

drivers/net/ethernet/mellanox/mlx5/core/dev.c
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/driver.c
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.h
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/intel/i40e/i40e_client.c
drivers/net/ethernet/intel/ice/ice.h
drivers/net/ethernet/intel/ice/ice_idc.c
drivers/infiniband/hw/irdma/main.c
drivers/infiniband/hw/irdma/i40iw_if.c
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mlx5/ib_rep.c
drivers/vdpa/mlx5/net/mlx5_vnet.c
drivers/gpu/drm/bridge/ti-sn65dsi86.c
drivers/soundwire/intel_init.c
drivers/soundwire/intel.c


Regards,
Czarek

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup
  2021-12-22  0:48   ` David E. Box
@ 2021-12-22 17:18     ` Jason Gunthorpe
  0 siblings, 0 replies; 11+ messages in thread
From: Jason Gunthorpe @ 2021-12-22 17:18 UTC (permalink / raw)
  To: David E. Box
  Cc: gregkh, mustafa.ismail, shiraz.saleem, dledford, leon, saeedm,
	davem, kuba, vkoul, yung-chuan.liao, pierre-louis.bossart, mst,
	jasowang, andriy.shevchenko, hdegoede, virtualization,
	alsa-devel, netdev, linux-kernel, linux-rdma

On Tue, Dec 21, 2021 at 04:48:17PM -0800, David E. Box wrote:
> On Tue, 2021-12-21 at 20:09 -0400, Jason Gunthorpe wrote:
> > On Tue, Dec 21, 2021 at 03:58:48PM -0800, David E. Box wrote:
> > > Depends on "driver core: auxiliary bus: Add driver data helpers" patch [1].
> > > Applies the helpers to all auxiliary device drivers using
> > > dev_(get/set)_drvdata. Drivers were found using the following search:
> > > 
> > >     grep -lr "struct auxiliary_device" $(grep -lr "drvdata" .)
> > > 
> > > Changes were build tested using the following configs:
> > > 
> > >     vdpa/mlx5:       CONFIG_MLX5_VDPA_NET
> > >     net/mlx53:       CONFIG_MLX5_CORE_EN
> > >     soundwire/intel: CONFIG_SOUNDWIRE_INTEL
> > >     RDAM/irdma:      CONFIG_INFINIBAND_IRDMA
> > >                      CONFIG_MLX5_INFINIBAND
> > > 
> > > [1] https://www.spinics.net/lists/platform-driver-x86/msg29940.html 
> > 
> > I have to say I don't really find this to be a big readability
> > improvement.
> 
> I should have referenced the thread [1] discussing the benefit of this change
> since the question was asked and answered already. The idea is that drivers
> shouldn't have to touch the device API directly if they are already using a
> higher level core API (auxiliary bus) that can do that on its behalf.

Driver writers should rarely use the auxilary device type directly, the
should always immediately container_of it to their proper derived
type.

> > Also, what use is 'to_auxiliary_dev()' ? I didn't see any users added..
>
> This was not added by that patch.

It was added by the referenced patch, and seems totally pointless cut
and paste, again because nothing should be using the auxiliary_device
type for anything more than container_of'ing to their own type.

We've been ripping out bus specific APIs in favour of generic ones
(see the work on the DMA API for instance) so this whole concept seems
regressive, particularly when applied to auxiliary bus which does not
have an API of its own.

Jason

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-12-22 17:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-21 23:58 [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup David E. Box
2021-12-21 23:58 ` [PATCH 1/4] RDMA/irdma: Use auxiliary_device driver data helpers David E. Box
2021-12-22 12:27   ` Cezary Rojewski
2021-12-21 23:58 ` [PATCH 2/4] soundwire: intel: " David E. Box
2021-12-22 11:18   ` Andy Shevchenko
2021-12-21 23:58 ` [PATCH 3/4] net/mlx5e: " David E. Box
2021-12-21 23:58 ` [PATCH 4/4] vdpa/mlx5: " David E. Box
2021-12-22  0:09 ` [PATCH 0/4] driver_core: Auxiliary drvdata helper cleanup Jason Gunthorpe
2021-12-22  0:48   ` David E. Box
2021-12-22 17:18     ` Jason Gunthorpe
2021-12-22 12:34 ` Cezary Rojewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).