staging: kernel.h: Prevent macro expantion bug in container_of_safe()
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 26 Apr 2018 05:58:27 +0000 (08:58 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Apr 2018 07:17:34 +0000 (09:17 +0200)
There aren't many users of this so it doesn't cause a problem, but we
obviously want to use "__mptr" here instead of "ptr" to prevent the
parameter from being executed twice.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/kernel.h

index 58d6645b1425007565be997cda44805531ba0104..3dfa3f260fc4381cf6d68feee81324e42eb7faab 100644 (file)
@@ -977,7 +977,7 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                         !__same_type(*(ptr), void),                    \
                         "pointer type mismatch in container_of()");    \
-       IS_ERR_OR_NULL(ptr) ? ERR_CAST(ptr) :                           \
+       IS_ERR_OR_NULL(__mptr) ? ERR_CAST(__mptr) :                     \
                ((type *)(__mptr - offsetof(type, member))); })
 
 /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */