summaryrefslogtreecommitdiff
path: root/include/linux/container_of.h
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2022-10-24 14:16:27 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-10-25 10:28:15 +0200
commit7376e561fd2e017e9a53f975209777234b8b434e (patch)
tree6f5b3f464b929981a12ec93801610a420a3ee0fc /include/linux/container_of.h
parent848dba781f1951636c966c9f3a6a41a5b2f8b572 (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.h1
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); \