[PATCH 1/7] driver: introduce less error-prone dev_get_drvdata alternative
Sascha Hauer
s.hauer at pengutronix.de
Tue Sep 29 02:45:38 EDT 2020
On Mon, Sep 28, 2020 at 05:42:41PM +0200, Ahmad Fatoum wrote:
> We use dev_get_drvdata to get the driver match data associated with a
> device. This has two shortcomings:
>
> - Linux has dev_get_drvdata too, which returns a private pointer for
> driver specific info to associate with a device. We use dev->priv
> (or more often container_of) for that in barebox instead
>
> - It nearly always involves a cast to a double pointer, which is
> error-prone as size and alignment match need to be ensured
> on the programmer's part and can easily be gotten wrong:
> enum dev_type type
> dev_get_drvdata(dev, (const void **)&type);
>
> Add a new function that instead of using a double pointer argument,
> returns the pointer directly:
>
> - For normal pointer driver data, no cast is necessary
> - For integer driver data casted to a pointer for storage,
> the cast is still necessary, but
but what?
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list