[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50191509.8030404@pengutronix.de>
Date: Wed, 01 Aug 2012 13:37:45 +0200
From: Marc Kleine-Budde <mkl@...gutronix.de>
To: Fabio Baltieri <fabio.baltieri@...il.com>
CC: linux-can@...r.kernel.org, linux-kernel@...r.kernel.org,
Oliver Hartkopp <socketcan@...tkopp.net>,
Wolfgang Grandegger <wg@...ndegger.com>
Subject: Re: [PATCH can-next v4] can: add tx/rx LED trigger support
On 08/01/2012 12:30 PM, Fabio Baltieri wrote:
[...]
>>> +void can_led_init(struct net_device *netdev)
>>> +{
>>> + struct can_priv *priv = netdev_priv(netdev);
>>> + void *res;
>>> +
>>> + res = devres_alloc(can_led_release, 0, GFP_KERNEL);
>> ^
>> I'm not really sure if this is working. For example, pinctrl [1]
>> allocates a double pointer here. The res pointer here and in
>> can_led_release simply points to invalid memory. But as long as you
>> don't dereference it, it should work.
>>
>> [1] http://lxr.free-electrons.com/source/drivers/pinctrl/core.c#L862
>
> Actually that's also used by libata-core (not in lxr yet) and dma-mapping:
>
> http://lxr.free-electrons.com/source/drivers/base/dma-mapping.c#L193
>
> actually, res should point at the end of some internal devres structure,
> and is only used as return value in this case.
>
> Of course, in this case the release function can only use the struct
> device pointer.
>
> I've run some fail test and ftraced the whole thing and it seems to work
> pretty good! I'll send a v5 with the rename later.
Thanks for checking. I just noticed, the pinctrl usecase is a bit different.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Download attachment "signature.asc" of type "application/pgp-signature" (263 bytes)
Powered by blists - more mailing lists