lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 16 Sep 2015 00:54:38 +0600
From:	Alexander Kuleshov <kuleshovmail@...il.com>
To:	Martin Schwidefsky <schwidefsky@...ibm.com>
Cc:	Heiko Carstens <heiko.carstens@...ibm.com>,
	Michael Holzheu <holzheu@...ux.vnet.ibm.com>,
	Tony Luck <tony.luck@...el.com>,
	David Hildenbrand <dahi@...ux.vnet.ibm.com>,
	linux-s390@...r.kernel.org, linux-kernel@...r.kernel.org,
	Alexander Kuleshov <kuleshovmail@...il.com>
Subject: [PATCH 2/2] s390/crash_dump: Use PFN_PHYS and PFN_DOWN macros

The <linux/pfn.h> provides PFN_PHYS and PFN_DOWN macros for the
getting page frame number and physical address of a page frame number.
This patch replaces (pfn << PAGE_SHIFT) and (addr >> PAGE_SHIFT)
expressions with the PFN_PHYS and PFN_DOWN macros.

Signed-off-by: Alexander Kuleshov <kuleshovmail@...il.com>
---
 arch/s390/kernel/crash_dump.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c
index 1e4fcfa..f8da32c 100644
--- a/arch/s390/kernel/crash_dump.c
+++ b/arch/s390/kernel/crash_dump.c
@@ -136,7 +136,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf, size_t csize,
 
 	if (!csize)
 		return 0;
-	src = (pfn << PAGE_SHIFT) + offset;
+	src = (PFN_PHYS(pfn)) + offset;
 	if (OLDMEM_BASE)
 		return copy_oldmem_page_kdump(buf, csize, src, userbuf);
 	else
@@ -156,16 +156,17 @@ static int remap_oldmem_pfn_range_kdump(struct vm_area_struct *vma,
 	unsigned long size_old;
 	int rc;
 
-	if (pfn < OLDMEM_SIZE >> PAGE_SHIFT) {
-		size_old = min(size, OLDMEM_SIZE - (pfn << PAGE_SHIFT));
+	if (pfn < PFN_DOWN(OLDMEM_SIZE)) {
+		size_old = min(size,
+			OLDMEM_SIZE - (unsigned long)(PFN_PHYS(pfn)));
 		rc = remap_pfn_range(vma, from,
-				     pfn + (OLDMEM_BASE >> PAGE_SHIFT),
+				     pfn + (PFN_DOWN(OLDMEM_BASE)),
 				     size_old, prot);
 		if (rc || size == size_old)
 			return rc;
 		size -= size_old;
 		from += size_old;
-		pfn += size_old >> PAGE_SHIFT;
+		pfn += PFN_DOWN(size_old);
 	}
 	return remap_pfn_range(vma, from, pfn, size, prot);
 }
@@ -184,13 +185,14 @@ static int remap_oldmem_pfn_range_zfcpdump(struct vm_area_struct *vma,
 	unsigned long hsa_end = sclp.hsa_size;
 	unsigned long size_hsa;
 
-	if (pfn < hsa_end >> PAGE_SHIFT) {
-		size_hsa = min(size, hsa_end - (pfn << PAGE_SHIFT));
+	if (pfn < PFN_DOWN(hsa_end)) {
+		size_hsa = min(size,
+			hsa_end - (unsigned long)(PFN_PHYS(pfn)));
 		if (size == size_hsa)
 			return 0;
 		size -= size_hsa;
 		from += size_hsa;
-		pfn += size_hsa >> PAGE_SHIFT;
+		pfn += PFN_DOWN(size_hsa);
 	}
 	return remap_pfn_range(vma, from, pfn, size, prot);
 }
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ