misc dead code removals in arch/* - mostly asm/pgtable.h
Subsystems (7)
PATCH 1/1 misc dead code removals in arch/* - mostly asm/pgtable.h
Several old patches that had been bouncing around in
my tree for a while. This stuff sits ingit://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git #work.misc if any architecture tree would like to pick some of those - just yell, I'll be only glad to get that off my hands. Anything left unclaimed will go to Linus come next window, so if you have objections, please say so.
Individual patches in followups.
Shortlog:
csky: remove BS check for FAULT_FLAG_ALLOW_RETRY PAGE_PTR() had been last used outside of arch/* in 1.1.94 SET_PAGE_DIR() users had been gone since 2.3.12pre1
alpha: get rid of the remnants of BAD_PAGE and friends kill FIRST_USER_PGD_NR
alpha: unobfuscate _PAGE_P() definition
Diffstat:
arch/alpha/include/asm/pgtable.h | 25 +------------------------ arch/alpha/mm/init.c | 27 --------------------------- arch/csky/mm/fault.c | 2 +- arch/m68k/include/asm/pgtable_mm.h | 10 ---------- arch/microblaze/include/asm/pgtable.h | 1 - arch/openrisc/include/asm/pgtable.h | 17 ----------------- arch/xtensa/include/asm/pgtable.h | 1 - 7 files changed, 2 insertions(+), 81 deletions(-)
PATCH 1/6 csky: remove BS check for FAULT_FLAG_ALLOW_RETRY
flags are initialized as FAULT_FLAG_DEFAULT, and the only thing done to that afterwards is |=; since FAULT_FLAG_DEFAULT already includes FAULT_FLAG_ALLOW_RETRY, it's guaranteed to remain there all along.
--- arch/csky/mm/fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/csky/mm/fault.c +1 -1
@@ -277,7 +277,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)if (fault &VM_FAULT_COMPLETED )return ; -if (unlikely ((fault &VM_FAULT_RETRY ) && (flags &FAULT_FLAG_ALLOW_RETRY ))) { +if (unlikely (fault &VM_FAULT_RETRY )) { flags |=FAULT_FLAG_TRIED ;/*
Signature · 1 line
2.47.2
Re: [PATCH 1/6] csky: remove BS check for FAULT_FLAG_ALLOW_RETRY
Quoted 15 lines · Al Viro
flags are initialized as
FAULT_FLAG_DEFAULT, and the only thing done to that afterwards is |=; sinceFAULT_FLAG_DEFAULTalready includesFAULT_FLAG_ALLOW_RETRY, it's guaranteed to remain there all along.Signed-off-by Al Viro <[email protected]>--- arch/csky/mm/fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/csky/mm/fault.c +0
-0
arch/csky/mm/fault.c asmlinkage void do_page_fault(struct pt_regs *regs) · line 280
Quoted 5 lines
arch/csky/mm/fault.c +1
-1@@ -277,7 +277,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)if (fault &VM_FAULT_COMPLETED )return ; -if (unlikely ((fault &VM_FAULT_RETRY ) && (flags &FAULT_FLAG_ALLOW_RETRY ))) { +if (unlikely (fault &VM_FAULT_RETRY )) {
Yes, FAULT_FLAG_ALLOW_RETRY is unnecessary.
LGTM!
Quoted 6 lines
arch/csky/mm/fault.c +0
-1flags |=FAULT_FLAG_TRIED ;/* -- 2.47.2
Signature · 2 lines
Best Regards Guo Ren
PATCH 2/6 PAGE_PTR() had been last used outside of arch/* in 1.1.94
In reply to Al Viro.. and in arch/* - circa 2.2.7.
--- arch/alpha/include/asm/pgtable.h | 13 ------------- arch/m68k/include/asm/pgtable_mm.h | 10 ---------- arch/openrisc/include/asm/pgtable.h | 14 -------------- 3 files changed, 37 deletions(-)
arch/alpha/include/asm/pgtable.h +0 -13
@@ -141,19 +141,6 @@ extern unsigned long __zero_page(void);#define BAD_PAGE __bad_page()#define ZERO_PAGE (vaddr) (virt_to_page(ZERO_PGE)) -/* number of bits that fit into a memory pointer */ -#define BITS_PER_PTR (8*sizeof(unsigned long)) - -/* to align the pointer to a pointer address */ -#define PTR_MASK (~(sizeof(void*)-1)) - -/* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */ -#define SIZEOF_PTR_LOG2 3 - -/* to find an entry in a page-table */ -#define PAGE_PTR (address) \ - ((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)&PTR_MASK&~PAGE_MASK) -/* * On certain platforms whose physical address space can overlap KSEG, * namely EV6 and above, we must re-twiddle the physaddr to restore the
arch/m68k/include/asm/pgtable_mm.h +0 -10
@@ -119,16 +119,6 @@ extern void *empty_zero_page;*/ #define ZERO_PAGE (vaddr) (virt_to_page(empty_zero_page)) -/* number of bits that fit into a memory pointer */ -#define BITS_PER_PTR (8*sizeof(unsigned long)) - -/* to align the pointer to a pointer address */ -#define PTR_MASK (~(sizeof(void*)-1)) - -/* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */ -/* 64-bit machines, beware! SRB. */ -#define SIZEOF_PTR_LOG2 2 -extern void kernel_set_cachemode (void *addr,unsigned long size,int cmode);/*
arch/openrisc/include/asm/pgtable.h +0 -14
@@ -183,20 +183,6 @@ extern void paging_init(void);extern unsigned long empty_zero_page[2048 ];#define ZERO_PAGE (vaddr) (virt_to_page(empty_zero_page)) -/* number of bits that fit into a memory pointer */ -#define BITS_PER_PTR (8*sizeof(unsigned long)) - -/* to align the pointer to a pointer address */ -#define PTR_MASK (~(sizeof(void *)-1)) - -/* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */ -/* 64-bit machines, beware! SRB. */ -#define SIZEOF_PTR_LOG2 2 - -/* to find an entry in a page-table */ -#define PAGE_PTR (address) \ -((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)&PTR_MASK&~PAGE_MASK) -/* to set the page-dir */ #define SET_PAGE_DIR (tsk, pgdir)
Signature · 1 line
2.47.2
Re: [PATCH 2/6][alpha,m68k,openrisc] PAGE_PTR() had been last used outside of arch/* in 1.1.94
Quoted 7 lines · Al Viro
.. and in
arch/*- circa 2.2.7.Signed-off-by Al Viro <[email protected]>--- arch/alpha/include/asm/pgtable.h | 13 ------------- arch/m68k/include/asm/pgtable_mm.h | 10 ---------- arch/openrisc/include/asm/pgtable.h | 14 --------------
(I would have just taken it if it wasn't mixed with non-m68k stuff ;-)
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
PATCH 3/6 SET_PAGE_DIR() users had been gone since 2.3.12pre1
In reply to Al Viro--- arch/openrisc/include/asm/pgtable.h | 3 --- 1 file changed, 3 deletions(-)
arch/openrisc/include/asm/pgtable.h +0 -3
@@ -183,9 +183,6 @@ extern void paging_init(void);extern unsigned long empty_zero_page[2048 ];#define ZERO_PAGE (vaddr) (virt_to_page(empty_zero_page)) -/* to set the page-dir */ -#define SET_PAGE_DIR (tsk, pgdir) -#define pte_none (x) (!pte_val(x))#define pte_present (x) (pte_val(x) & _PAGE_PRESENT)#define pte_clear (mm, addr, xp) do { pte_val(*(xp)) = 0; } while (0)
Signature · 1 line
2.47.2
PATCH 4/6 alpha: get rid of the remnants of BAD_PAGE and friends
In reply to Al Virounused since 2.4 times...
--- arch/alpha/include/asm/pgtable.h | 10 ---------- arch/alpha/mm/init.c | 27 --------------------------- 2 files changed, 37 deletions(-)
arch/alpha/include/asm/pgtable.h +0 -10
@@ -126,19 +126,9 @@ struct vm_area_struct;#define pgprot_noncached (prot) (prot)/* -* BAD_PAGETABLE is used when we need a bogus page-table, while -* BAD_PAGE is used for a bogus page. -* * ZERO_PAGE is a global shared page that is always zero: used * for zero-mapped memory areas etc.. */ -extern pte_t __bad_page (void ); -extern pmd_t *__bad_pagetable (void ); - -extern unsigned long __zero_page (void ); - -#define BAD_PAGETABLE __bad_pagetable() -#define BAD_PAGE __bad_page()#define ZERO_PAGE (vaddr) (virt_to_page(ZERO_PGE))/*
arch/alpha/mm/init.c +0 -27
@@ -60,33 +60,6 @@ pgd_alloc(struct mm_struct *mm) } -/* -* BAD_PAGE is the page that is used for page faults when linux -* is out-of-memory. Older versions of linux just did a -* do_exit(), but using this instead means there is less risk -* for a process dying in kernel mode, possibly leaving an inode -* unused etc.. -* -* BAD_PAGETABLE is the accompanying page-table: it is initialized -* to point to BAD_PAGE entries. -* -* ZERO_PAGE is a special page that is used for zero-initialized -* data and COW. -*/ -pmd_t * -__bad_pagetable (void ) -{ -memset (absolute_pointer (EMPTY_PGT ),0 ,PAGE_SIZE ); -return (pmd_t *)EMPTY_PGT ; -} - -pte_t -__bad_page (void ) -{ -memset (absolute_pointer (EMPTY_PGE ),0 ,PAGE_SIZE ); -return pte_mkdirty (mk_pte (virt_to_page (EMPTY_PGE ),PAGE_SHARED )); -} -static inline unsigned long load_PCB (struct pcb_struct *pcb) {
Signature · 1 line
2.47.2
PATCH 5/6 kill FIRST_USER_PGD_NR
In reply to Al Virodead since 2005, time to bury the body...
--- arch/microblaze/include/asm/pgtable.h | 1 - arch/xtensa/include/asm/pgtable.h | 1 - 2 files changed, 2 deletions(-)
arch/microblaze/include/asm/pgtable.h +0 -1
@@ -99,7 +99,6 @@ extern pte_t *va_to_pte(unsigned long address);#define PTRS_PER_PGD (1 << (32 - PGDIR_SHIFT))#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) -#define FIRST_USER_PGD_NR 0#define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT)#define KERNEL_PGD_PTRS (PTRS_PER_PGD-USER_PGD_PTRS)
arch/xtensa/include/asm/pgtable.h +0 -1
@@ -58,7 +58,6 @@#define PTRS_PER_PTE_SHIFT 10#define PTRS_PER_PGD 1024#define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE) -#define FIRST_USER_PGD_NR (FIRST_USER_ADDRESS >> PGDIR_SHIFT)#ifdef CONFIG_MMU /*
Signature · 1 line
2.47.2
Re: [PATCH 5/6][microblaze,xtensa] kill FIRST_USER_PGD_NR
Quoted 8 lines · Al Viro
dead since 2005, time to bury the body...
Signed-off-by Al Viro <[email protected]>--- arch/microblaze/include/asm/pgtable.h | 1 - arch/xtensa/include/asm/pgtable.h | 1 - 2 files changed, 2 deletions(-)
Signature · 2 lines
Thanks. -- Max
Re: [PATCH 5/6][microblaze,xtensa] kill FIRST_USER_PGD_NR
In reply to Al ViroQuoted 5 lines · Al Viro
dead since 2005, time to bury the body...
Signed-off-by Al Viro <[email protected]>--- arch/microblaze/include/asm/pgtable.h | 1 -
Thanks
Michal
Signature · 6 lines
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Xilinx Microblaze Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs
PATCH 6/6 alpha: unobfuscate _PAGE_P() definition
In reply to Al ViroWay, way back it used to be
_PAGE_NORMAL((x) | ((x & _PAGE_FOW) ? 0 : _PAGE_FOW | _PAGE_COW)) Then (in 1.3.54) _PAGE_COW had died. Result: _PAGE_NORMAL((x) | ((x & _PAGE_FOW) ? 0 : _PAGE_FOW)) which is somewhat... obscure. What it does is simply _PAGE_NORMAL((x) | _PAGE_FOW)
and IMO that's easier to follow.
--- arch/alpha/include/asm/pgtable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/alpha/include/asm/pgtable.h +1 -1
@@ -107,7 +107,7 @@ struct vm_area_struct;#define _PAGE_NORMAL (x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x)) -#define _PAGE_P (x) _PAGE_NORMAL((x) | (((x) & _PAGE_FOW)?0:_PAGE_FOW)) +#define _PAGE_P (x) _PAGE_NORMAL((x) | _PAGE_FOW)#define _PAGE_S (x) _PAGE_NORMAL(x)/*
Signature · 1 line
2.47.2