From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Jason Gunthorpe <jgg@ziepe.ca>,
"Rafael J. Wysocki" <rafael@kernel.org>
Subject: [PATCH 2/4] device.h: move kobj_to_dev() to use container_of_const()
Date: Thu, 1 Dec 2022 20:30:55 +0100 [thread overview]
Message-ID: <20221201193057.1195255-2-gregkh@linuxfoundation.org> (raw)
In-Reply-To: <20221201193057.1195255-1-gregkh@linuxfoundation.org>
Instead of rolling our own const-checking logic, use the newly
introduced container_of_const() to handle it all for us automatically.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/linux/device.h | 22 ++--------------------
1 file changed, 2 insertions(+), 20 deletions(-)
diff --git a/include/linux/device.h b/include/linux/device.h
index 84ae52de6746..8ad2cd21b335 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -680,26 +680,8 @@ 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(struct kobject, __kobj, struct device, kobj)
/**
* device_iommu_mapped - Returns true when the device DMA is translated
--
2.38.1
next prev parent reply other threads:[~2022-12-01 19:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-01 19:30 [PATCH 1/4] container_of: add container_of_const() that preserves const-ness of the pointer Greg Kroah-Hartman
2022-12-01 19:30 ` Greg Kroah-Hartman [this message]
2022-12-01 19:30 ` [PATCH 3/4] usb.h: take advantage of container_of_const() Greg Kroah-Hartman
2022-12-01 19:30 ` [PATCH 4/4] firmware_loader: fix up to_fw_sysfs() to preserve const Greg Kroah-Hartman
2022-12-01 20:25 ` Russ Weight
2022-12-01 22:50 ` [PATCH 1/4] container_of: add container_of_const() that preserves const-ness of the pointer Andy Shevchenko
2022-12-02 0:46 ` Jason Gunthorpe
2022-12-02 6:41 ` Greg Kroah-Hartman
2022-12-01 23:21 ` Sakari Ailus
2022-12-02 10:45 ` Greg Kroah-Hartman
2022-12-02 12:01 ` Andy Shevchenko
2022-12-02 0:48 ` Jason Gunthorpe
2022-12-02 12:48 ` Sakari Ailus
2022-12-02 16:24 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221201193057.1195255-2-gregkh@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jgg@ziepe.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.