Messages in this thread | | | Date | Wed, 23 Nov 2022 12:25:32 -0400 | From | Jason Gunthorpe <> | Subject | Re: [PATCH 3/5] driver core: make struct device_type.uevent() take a const * |
| |
On Wed, Nov 23, 2022 at 04:37:59PM +0100, Greg Kroah-Hartman wrote: > static inline struct device *__kobj_to_dev(struct kobject *kobj) > { > return container_of(kobj, struct device, kobj); > } > > static inline const struct device *__kobj_to_dev_const(const struct kobject *kobj) > { > return container_of(kobj, const struct device, kobj); > } > > /* > * container_of() will happily take a const * and spit back a non-const * as it > * is just doing pointer math. But we want to be a bit more careful in the > * driver code, so manually force any const * of a kobject to also be a const * > * to a device. > */ > #define kobj_to_dev(kobj) \ > _Generic((kobj), \ > const struct kobject *: __kobj_to_dev_const, \ > struct kobject *: __kobj_to_dev)(kobj) > > > Want me to do the same thing here as well?
It would be nice to have a shared macro code gen all of the above instead of copy and pasting it. Then maybe other cases beyond struct device could adopt const too..
Jason
| |