Re: [PATCH v2 5/5] driver core: let dev_set_drvdata return intinstead of void as it can fail
From: Russell King - ARM Linux
Date: Fri Apr 29 2011 - 04:13:24 EST
On Wed, Apr 20, 2011 at 09:44:46AM +0200, Uwe Kleine-König wrote:
> Before commit
>
> b402843 (Driver core: move dev_get/set_drvdata to drivers/base/dd.c)
>
> calling dev_set_drvdata with dev=NULL was an unchecked error. After some
> discussion about what to return in this case removing the check (and so
> producing a null pointer exception) seems fine.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> ---
> drivers/base/dd.c | 7 +++----
> include/linux/device.h | 2 +-
> 2 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index da57ee9..f9d69d7 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -408,17 +408,16 @@ void *dev_get_drvdata(const struct device *dev)
> }
> EXPORT_SYMBOL(dev_get_drvdata);
>
> -void dev_set_drvdata(struct device *dev, void *data)
> +int dev_set_drvdata(struct device *dev, void *data)
> {
> int error;
>
> - if (!dev)
> - return;
> if (!dev->p) {
> error = device_private_init(dev);
> if (error)
> - return;
> + return error;
> }
> dev->p->driver_data = data;
> + return 0;
Who is going to modify all the thousands of drivers we have in the kernel
tree to check this return value?
If the answer is no one, its pointless returning an error value in the
first place (which I think is what the original author already thought
about.)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/