Loading mm/percpu.c +14 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,12 @@ static unsigned long pcpu_chunk_addr(struct pcpu_chunk *chunk, static bool pcpu_chunk_page_occupied(struct pcpu_chunk *chunk, int page_idx) { return *pcpu_chunk_pagep(chunk, 0, page_idx) != NULL; /* * Any possible cpu id can be used here, so there's no need to * worry about preemption or cpu hotplug. */ return *pcpu_chunk_pagep(chunk, raw_smp_processor_id(), page_idx) != NULL; } /* set the pointer to a chunk in a page struct */ Loading Loading @@ -297,6 +302,14 @@ static struct pcpu_chunk *pcpu_chunk_addr_search(void *addr) return pcpu_first_chunk; } /* * The address is relative to unit0 which might be unused and * thus unmapped. Offset the address to the unit space of the * current processor before looking it up in the vmalloc * space. Note that any possible cpu id can be used here, so * there's no need to worry about preemption or cpu hotplug. */ addr += raw_smp_processor_id() * pcpu_unit_size; return pcpu_get_page_chunk(vmalloc_to_page(addr)); } Loading Loading
mm/percpu.c +14 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,12 @@ static unsigned long pcpu_chunk_addr(struct pcpu_chunk *chunk, static bool pcpu_chunk_page_occupied(struct pcpu_chunk *chunk, int page_idx) { return *pcpu_chunk_pagep(chunk, 0, page_idx) != NULL; /* * Any possible cpu id can be used here, so there's no need to * worry about preemption or cpu hotplug. */ return *pcpu_chunk_pagep(chunk, raw_smp_processor_id(), page_idx) != NULL; } /* set the pointer to a chunk in a page struct */ Loading Loading @@ -297,6 +302,14 @@ static struct pcpu_chunk *pcpu_chunk_addr_search(void *addr) return pcpu_first_chunk; } /* * The address is relative to unit0 which might be unused and * thus unmapped. Offset the address to the unit space of the * current processor before looking it up in the vmalloc * space. Note that any possible cpu id can be used here, so * there's no need to worry about preemption or cpu hotplug. */ addr += raw_smp_processor_id() * pcpu_unit_size; return pcpu_get_page_chunk(vmalloc_to_page(addr)); } Loading