diff mbox

[2/6] net: dsa: allow switch drivers to cleanup their resources

Message ID 562F8ED7.2000804@baylibre.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Neil Armstrong Oct. 27, 2015, 2:48 p.m. UTC
Some switch drivers might request interrupts, remap register ranges,
allow such drivers to implement a "remove" callback doing just that.

Suggested-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 include/net/dsa.h | 1 +
 net/dsa/dsa.c     | 4 ++++
 2 files changed, 5 insertions(+)

Comments

Florian Fainelli Oct. 27, 2015, 3:39 p.m. UTC | #1
On 27/10/15 07:48, Neil Armstrong wrote:
> Some switch drivers might request interrupts, remap register ranges,
> allow such drivers to implement a "remove" callback doing just that.
> 
> Suggested-by: Florian Fainelli <f.fainelli@gmail.com>

This should probably be a Signed-off-by tag, but there is nothing using
this, so you would want to introduce an user of this function in the
same patch series so we see how you intend to use it?

> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  include/net/dsa.h | 1 +
>  net/dsa/dsa.c     | 4 ++++
>  2 files changed, 5 insertions(+)
> 
> diff --git a/include/net/dsa.h b/include/net/dsa.h
> index d4d13f7..725b11f 100644
> --- a/include/net/dsa.h
> +++ b/include/net/dsa.h
> @@ -211,6 +211,7 @@ struct dsa_switch_driver {
>  	 */
>  	char	*(*probe)(struct device *host_dev, int sw_addr);
>  	int	(*setup)(struct dsa_switch *ds);
> +	void	(*remove)(struct dsa_switch *ds);
>  	int	(*set_addr)(struct dsa_switch *ds, u8 *addr);
>  	u32	(*get_phy_flags)(struct dsa_switch *ds, int port);
> 
> diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
> index aeb6a7c..7c9914b 100644
> --- a/net/dsa/dsa.c
> +++ b/net/dsa/dsa.c
> @@ -459,6 +459,10 @@ static void dsa_switch_destroy(struct dsa_switch *ds)
>  	}
> 
>  	mdiobus_unregister(ds->slave_mii_bus);
> +
> +	/* Leave a chance to the driver to cleanup */
> +	if (ds->drv->remove)
> +		ds->drv->remove(ds);
>  }
> 
>  #ifdef CONFIG_PM_SLEEP
>
Neil Armstrong Oct. 27, 2015, 3:43 p.m. UTC | #2
Hi,
On 10/27/2015 04:39 PM, Florian Fainelli wrote:
> On 27/10/15 07:48, Neil Armstrong wrote:
>> Some switch drivers might request interrupts, remap register ranges,
>> allow such drivers to implement a "remove" callback doing just that.
>>
>> Suggested-by: Florian Fainelli <f.fainelli@gmail.com>
> 
> This should probably be a Signed-off-by tag, but there is nothing using
> this, so you would want to introduce an user of this function in the
> same patch series so we see how you intend to use it?
> 
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

Yes, I didn't know how to handle this since it was part of a larger patch.

I forgot to add this into the cover-letter but I wanted to send an RFC serie with
your bcm remove patch and a mv88e6xxx remove experimental code.

Yet, the mv88e6060 does not make usage of this.

Neil
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vivien Didelot Oct. 27, 2015, 4:59 p.m. UTC | #3
On Oct. Tuesday 27 (44) 04:43 PM, Neil Armstrong wrote:
> Hi,
> On 10/27/2015 04:39 PM, Florian Fainelli wrote:
> > On 27/10/15 07:48, Neil Armstrong wrote:
> >> Some switch drivers might request interrupts, remap register ranges,
> >> allow such drivers to implement a "remove" callback doing just that.
> >>
> >> Suggested-by: Florian Fainelli <f.fainelli@gmail.com>
> > 
> > This should probably be a Signed-off-by tag, but there is nothing using
> > this, so you would want to introduce an user of this function in the
> > same patch series so we see how you intend to use it?
> > 
> >> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> 
> Yes, I didn't know how to handle this since it was part of a larger patch.
> 
> I forgot to add this into the cover-letter but I wanted to send an RFC serie with
> your bcm remove patch and a mv88e6xxx remove experimental code.
> 
> Yet, the mv88e6060 does not make usage of this.

So this patch must be part of your RFC for module removal instead of
this patchset.

Thanks,
-v
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Neil Armstrong Oct. 28, 2015, 1:56 p.m. UTC | #4
On 10/27/2015 05:59 PM, Vivien Didelot wrote:
> On Oct. Tuesday 27 (44) 04:43 PM, Neil Armstrong wrote:
>>
>> Yes, I didn't know how to handle this since it was part of a larger patch.
>>
>> I forgot to add this into the cover-letter but I wanted to send an RFC serie with
>> your bcm remove patch and a mv88e6xxx remove experimental code.
>>
>> Yet, the mv88e6060 does not make usage of this.
> 
> So this patch must be part of your RFC for module removal instead of
> this patchset.
> 
> Thanks,
> -v
> 

Vivien, Florian,

Thanks for the review, I will integrate it in the other RFC patchset with the correct Signed-off-by tag.

Neil
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/net/dsa.h b/include/net/dsa.h
index d4d13f7..725b11f 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -211,6 +211,7 @@  struct dsa_switch_driver {
 	 */
 	char	*(*probe)(struct device *host_dev, int sw_addr);
 	int	(*setup)(struct dsa_switch *ds);
+	void	(*remove)(struct dsa_switch *ds);
 	int	(*set_addr)(struct dsa_switch *ds, u8 *addr);
 	u32	(*get_phy_flags)(struct dsa_switch *ds, int port);

diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index aeb6a7c..7c9914b 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -459,6 +459,10 @@  static void dsa_switch_destroy(struct dsa_switch *ds)
 	}

 	mdiobus_unregister(ds->slave_mii_bus);
+
+	/* Leave a chance to the driver to cleanup */
+	if (ds->drv->remove)
+		ds->drv->remove(ds);
 }

 #ifdef CONFIG_PM_SLEEP