Messages in this thread | | | Date | Sun, 19 Mar 2023 22:42:56 +0200 | Subject | Re: [PATCH] staging: greybus: use inline function for macros | From | Menna Mahmoud <> |
| |
On ١٩/٣/٢٠٢٣ ٢٢:٢١, Julia Lawall wrote: > > On Sun, 19 Mar 2023, Menna Mahmoud wrote: > >> Convert `to_gbphy_dev` and `to_gbphy_driver` macros into a >> static inline functions. >> >> it is not great to have macro that use `container_of` macro, >> because from looking at the definition one cannot tell what type >> it applies to. >> >> One can get the same benefit from an efficiency point of view >> by making an inline function. >> >> Suggested-by: Julia Lawall <julia.lawall@inria.fr> >> Signed-off-by: Menna Mahmoud <eng.mennamahmoud.mm@gmail.com> >> --- >> drivers/staging/greybus/gbphy.h | 10 ++++++++-- >> 1 file changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/staging/greybus/gbphy.h b/drivers/staging/greybus/gbphy.h >> index 1de510499480..42c4e3fe307c 100644 >> --- a/drivers/staging/greybus/gbphy.h >> +++ b/drivers/staging/greybus/gbphy.h >> @@ -16,7 +16,10 @@ struct gbphy_device { >> struct device dev; >> }; >> > You have made the patch against your previous patch that added a newline > here. It should be against Greg's tree. > > julia
you mean I should remove this newline, right?
Menna
> >> -#define to_gbphy_dev(d) container_of(d, struct gbphy_device, dev) >> +static inline struct gbphy_device *to_gbphy_dev(const struct device *d) >> +{ >> + return container_of(d, struct gbphy_device, dev); >> +} >> >> static inline void *gb_gbphy_get_data(struct gbphy_device *gdev) >> { >> @@ -45,7 +48,10 @@ struct gbphy_driver { >> struct device_driver driver; >> }; >> >> -#define to_gbphy_driver(d) container_of(d, struct gbphy_driver, driver) >> +static inline struct gbphy_driver *to_gbphy_driver(struct device_driver *d) >> +{ >> + return container_of(d, struct gbphy_driver, driver); >> +} >> >> int gb_gbphy_register_driver(struct gbphy_driver *driver, >> struct module *owner, const char *mod_name); >> -- >> 2.34.1 >> >>
| |