Commit 6149f83b authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

device.h: move kobj_to_dev() to use container_of_const()



Instead of rolling our own const-checking logic, use the newly
introduced container_of_const() to handle it all for us automatically.

Cc: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Acked-by: default avatarRafael J. Wysocki <rafael@kernel.org>
Link: https://lore.kernel.org/r/20221205121206.166576-2-gregkh@linuxfoundation.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 64f6a5d1
Loading
Loading
Loading
Loading
+1 −20
Original line number Diff line number Diff line
@@ -680,26 +680,7 @@ struct device_link {
	bool supplier_preactivated; /* Owned by consumer probe. */
};

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)
#define kobj_to_dev(__kobj)	container_of_const(__kobj, struct device, kobj)

/**
 * device_iommu_mapped - Returns true when the device DMA is translated