|
@@ -20,12 +20,14 @@
|
|
|
# define __pmem __attribute__((noderef, address_space(5)))
|
|
|
#ifdef CONFIG_SPARSE_RCU_POINTER
|
|
|
# define __rcu __attribute__((noderef, address_space(4)))
|
|
|
-#else
|
|
|
+#else /* CONFIG_SPARSE_RCU_POINTER */
|
|
|
# define __rcu
|
|
|
-#endif
|
|
|
+#endif /* CONFIG_SPARSE_RCU_POINTER */
|
|
|
+# define __private __attribute__((noderef))
|
|
|
extern void __chk_user_ptr(const volatile void __user *);
|
|
|
extern void __chk_io_ptr(const volatile void __iomem *);
|
|
|
-#else
|
|
|
+# define ACCESS_PRIVATE(p, member) (*((typeof((p)->member) __force *) &(p)->member))
|
|
|
+#else /* __CHECKER__ */
|
|
|
# define __user
|
|
|
# define __kernel
|
|
|
# define __safe
|
|
@@ -44,7 +46,9 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
|
|
# define __percpu
|
|
|
# define __rcu
|
|
|
# define __pmem
|
|
|
-#endif
|
|
|
+# define __private
|
|
|
+# define ACCESS_PRIVATE(p, member) ((p)->member)
|
|
|
+#endif /* __CHECKER__ */
|
|
|
|
|
|
/* Indirect macros required for expanded argument pasting, eg. __LINE__. */
|
|
|
#define ___PASTE(a,b) a##b
|