mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
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: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8767ba2796
commit
129182e562
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user