Skip to contentSkip to conversation

percpu: fixes for v3.2-rc6

GIT PULL Tejun Heo 1 participant 1 message Dec 19, 2011

Subsystems (2)
lore
Share & tools
lore

Tejun Heo

author maintainer
#0 lore raw

Hello, Linus.

per_cpu_ptr_to_phys() had another silly bug where it chopped off page offset of translated addresses if they are in vmalloc area, which of course makes kdump quite unhappy.

Please pull from the following branch to receive the fix.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-3.2-fixes

Thanks.

Eugene Surovegin (1):
percpu: fix per_cpu_ptr_to_phys() handling of non-page-aligned addresses

 mm/percpu.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

---

mm/percpu.c +4 -2
index 3bb810a..716eb4a 100644
@@ -1023,9 +1023,11 @@ phys_addr_t per_cpu_ptr_to_phys(void *addr)
 		if (!is_vmalloc_addr(addr))
 			return __pa(addr);
 		else
-			return page_to_phys(vmalloc_to_page(addr));
+			return page_to_phys(vmalloc_to_page(addr)) +
+			       offset_in_page(addr);
 	} else
-		return page_to_phys(pcpu_addr_to_page(addr));
+		return page_to_phys(pcpu_addr_to_page(addr)) +
+		       offset_in_page(addr);
 }
 
 /**