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-prev] [day] [month] [year] [list]
Message-Id: <200907151125.49327.arnd@arndb.de>
Date:	Wed, 15 Jul 2009 11:25:48 +0200
From:	Arnd Bergmann <arnd@...db.de>
To:	michal.simek@...alogix.com
Cc:	Linux Kernel list <linux-kernel@...r.kernel.org>,
	lkml <linux-arch@...r.kernel.org>
Subject: [PATCH] asm-generic: add pgtable-nommu.h

All nommu architectures have almost identical pgtable.h implementations,
so we should have a common file for them.

I must have missed this in the earlier asm-generic submission.

Signed-off-by: Arnd Bergmann <arnd@...db.de>
---
On Wednesday 15 July 2009, Michal Simek wrote:

> I found that we should simplify pgtable.h. There are a lot of generic
> functions which use all archs. Have you look at it or not?

I have missed this one for some reason, maybe because it looked too
complicated at some point, or because it is already very complex with
a lot of different helper header files.

For the nommu case, it should be trivial to add something. Can you
try if the patch below gives you something useful?

diff --git a/include/asm-generic/pgtable-nommu.h b/include/asm-generic/pgtable-nommu.h
new file mode 100644
index 0000000..c194f85
--- /dev/null
+++ b/include/asm-generic/pgtable-nommu.h
@@ -0,0 +1,74 @@
+#ifndef __ASM_GENERIC_PGTABLE_H
+#define __ASM_GENERIC_PGTABLE_H
+
+#include <asm-generic/4level-fixup.h>
+
+#include <asm/processor.h>
+#include <asm/page.h>
+#include <asm/io.h>
+
+/*
+ * Trivial page table functions.
+ */
+#define pgd_present(pgd)	(1)
+#define pgd_none(pgd)		(0)
+#define pgd_bad(pgd)		(0)
+#define pgd_clear(pgdp)
+#define kern_addr_valid(addr)	(1)
+#define	pmd_offset(a, b)	((void *)0)
+
+#define PAGE_NONE	__pgprot(0)
+#define PAGE_SHARED	__pgprot(0)
+#define PAGE_COPY	__pgprot(0)
+#define PAGE_READONLY	__pgprot(0)
+#define PAGE_KERNEL	__pgprot(0)
+
+extern void paging_init(void);
+#define swapper_pg_dir ((pgd_t *) 0)
+
+#define __swp_type(x)		(0)
+#define __swp_offset(x)		(0)
+#define __swp_entry(typ,off)	((swp_entry_t) { ((typ) | ((off) << 7)) })
+#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })
+#define __swp_entry_to_pte(x)	((pte_t) { (x).val })
+
+static inline int pte_file(pte_t pte)
+{
+	return 0;
+}
+
+/*
+ * ZERO_PAGE is a global shared page that is always zero: used
+ * for zero-mapped memory areas etc..
+ */
+#define ZERO_PAGE(vaddr)	(virt_to_page(0))
+
+/*
+ * Mark the prot value as uncacheable and unbufferable.
+ */
+#define pgprot_noncached(prot)	__pgprot(0)
+#define pgprot_writecombine(prot) __pgprot(0)
+
+/*
+ * These would be in other places but having them here reduces the diffs.
+ */
+extern unsigned int kobjsize(const void *objp);
+
+/*
+ * No page table caches to initialise.
+ */
+#define pgtable_cache_init()	do { } while (0)
+
+#define io_remap_pfn_range(vma, vaddr, pfn, size, prot)		\
+		remap_pfn_range(vma, vaddr, pfn, size, prot)
+
+/*
+ * All 32bit addresses are effectively valid for vmalloc...
+ * Sort of meaningless for non-VM targets.
+ */
+#define	VMALLOC_START	0
+#define	VMALLOC_END	0xffffffff
+
+#include <asm-generic/pgtable.h>
+
+#endif /* __ASM_GENERIC_PGTABLE_H */
--
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