Commit 6a39fe05 authored by Uros Bizjak's avatar Uros Bizjak Committed by Andrew Morton
Browse files

percpu: use TYPEOF_UNQUAL() in *_cpu_ptr() accessors

Use TYPEOF_UNQUAL() macro to declare the return type of *_cpu_ptr()
accessors in the generic named address space to avoid access to data from
pointer to non-enclosed address space type of errors.

Link: https://lkml.kernel.org/r/20250127160709.80604-5-ubizjak@gmail.com


Signed-off-by: default avatarUros Bizjak <ubizjak@gmail.com>
Acked-by: default avatarNadav Amit <nadav.amit@gmail.com>
Acked-by: default avatarChristoph Lameter <cl@linux.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 8a3c3923
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -73,10 +73,14 @@
	unsigned long tcp_ptr__ = raw_cpu_read_long(this_cpu_off);	\
									\
	tcp_ptr__ += (__force unsigned long)(_ptr);			\
	(typeof(*(_ptr)) __kernel __force *)tcp_ptr__;			\
	(TYPEOF_UNQUAL(*(_ptr)) __force __kernel *)tcp_ptr__;		\
})
#else
#define arch_raw_cpu_ptr(_ptr) ({ BUILD_BUG(); (typeof(_ptr))0; })
#define arch_raw_cpu_ptr(_ptr)						\
({									\
	BUILD_BUG();							\
	(TYPEOF_UNQUAL(*(_ptr)) __force __kernel *)0;			\
})
#endif

#define PER_CPU_VAR(var)	%__percpu_seg:(var)__percpu_rel
+1 −1
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ do { \
} while (0)

#define PERCPU_PTR(__p)							\
	(typeof(*(__p)) __force __kernel *)((__force unsigned long)(__p))
	(TYPEOF_UNQUAL(*(__p)) __force __kernel *)((__force unsigned long)(__p))

#ifdef CONFIG_SMP