Subject: Re: [RFC PATCH 1/3] net: dsa: Use devm_ prefixed allocations

From: Florian Fainelli <[email-masked]>
Date: Wed, 30 Sep 2015 14:40:43 -0700

On 30/09/15 14:34, Fabio Estevam wrote:
> On Wed, Sep 30, 2015 at 5:21 AM, Neil Armstrong <[email-masked]> wrote:
>> To simplify and prevent memory leakage when unbinding, use
>> the devm_ memory allocation calls.
>>
>> Signed-off-by: Neil Armstrong <[email-masked]>
>> ---
>>  net/dsa/dsa.c | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
>> index c59fa5d..98f94c2 100644
>> --- a/net/dsa/dsa.c
>> +++ b/net/dsa/dsa.c
>> @@ -305,7 +305,7 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct device *parent)
>>         if (ret < 0)
>>                 goto out;
>>
>> -       ds->slave_mii_bus = mdiobus_alloc();
>> +       ds->slave_mii_bus = devm_mdiobus_alloc(parent);
>>         if (ds->slave_mii_bus == NULL) {
>>                 ret = -ENOMEM;
>>                 goto out;
>> @@ -400,7 +400,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
>>         /*
>>          * Allocate and initialise switch state.
>>          */
>> -       ds = kzalloc(sizeof(*ds) + drv->priv_size, GFP_KERNEL);
>> +       ds = devm_kzalloc(parent, sizeof(*ds) + drv->priv_size, GFP_KERNEL);
> 
> Shouldn't devm_ functions be called only from probe and remove functions?

That's the case AFAICT, the call chain looks like this:

dsa_probe()
	-> dsa_setup_dst()
		-> dsa_switch_setup()
			-> dsa_switch_setup_one()
-- 
Florian