diff options
author | Sakari Ailus <sakari.ailus@linux.intel.com> | 2022-10-24 14:16:27 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-10-25 10:28:15 +0200 |
commit | 7376e561fd2e017e9a53f975209777234b8b434e (patch) | |
tree | 6f5b3f464b929981a12ec93801610a420a3ee0fc /include/linux/container_of.h | |
parent | 848dba781f1951636c966c9f3a6a41a5b2f8b572 (diff) |
linux/container_of.h: Warn about loss of constness
container_of() casts the original type to another which leads to the loss
of the const qualifier if it is not specified in the caller-provided type.
This easily leads to container_of() returning a non-const pointer to a
const struct which the C compiler does not warn about.
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Link: https://lore.kernel.org/r/20221024111627.75183-1-sakari.ailus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/container_of.h')
-rw-r--r-- | include/linux/container_of.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/container_of.h b/include/linux/container_of.h index a6f242137b11..2008e9f4058c 100644 --- a/include/linux/container_of.h +++ b/include/linux/container_of.h @@ -13,6 +13,7 @@ * @type: the type of the container struct this is embedded in. * @member: the name of the member within the struct. * + * WARNING: any const qualifier of @ptr is lost. */ #define container_of(ptr, type, member) ({ \ void *__mptr = (void *)(ptr); \ |