Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 129182e5 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

percpu: avoid calling __pcpu_ptr_to_addr(NULL)



__pcpu_ptr_to_addr() can be overridden by the architecture and might not
behave well if passed a NULL pointer.  So avoid calling it until we have
verified that its arg is not NULL.

Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8767ba27
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1271,7 +1271,7 @@ static void pcpu_reclaim(struct work_struct *work)
 */
void free_percpu(void *ptr)
{
	void *addr = __pcpu_ptr_to_addr(ptr);
	void *addr;
	struct pcpu_chunk *chunk;
	unsigned long flags;
	int off;
@@ -1279,6 +1279,8 @@ void free_percpu(void *ptr)
	if (!ptr)
		return;

	addr = __pcpu_ptr_to_addr(ptr);

	spin_lock_irqsave(&pcpu_lock, flags);

	chunk = pcpu_chunk_addr_search(addr);