From: Linus Torvalds Date: Mon, 30 May 2022 17:56:18 +0000 (-0700) Subject: Merge tag 'm68knommu-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=2d2da475ac0eebfbf40e5c5ca8c0409d62d23424;p=linux.git Merge tag 'm68knommu-for-v5.19' of git://git./linux/kernel/git/gerg/m68knommu Pull m68knommu updates from Greg Ungerer: "A collection of changes to add elf-fdpic loader support for m68k. Also a collection of various fixes. They include typo corrections, undefined symbol compilation fixes, removal of the ISA_DMA_API support and removal of unused code. Summary: - correctly set up ZERO_PAGE pointer - drop ISA_DMA_API support - fix comment typos - fixes for undefined symbols - remove unused code and variables - elf-fdpic loader support for m68k" * tag 'm68knommu-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: m68knommu: fix 68000 CPU link with no platform selected m68k: removed unused "mach_get_ss" m68knommu: fix undefined reference to `mach_get_rtc_pll' m68knommu: fix undefined reference to `_init_sp' m68knommu: allow elf_fdpic loader to be selected m68knommu: add definitions to support elf_fdpic program loader m68knommu: implement minimal regset support m68knommu: use asm-generic/mmu.h for nommu setups m68k: fix typos in comments m68k: coldfire: drop ISA_DMA_API support m68knommu: set ZERO_PAGE() to the allocated zeroed page --- 2d2da475ac0eebfbf40e5c5ca8c0409d62d23424 diff --cc arch/m68k/kernel/ptrace.c index daebccdd2c093,4349b9c4dd680..0a4184a37461b --- a/arch/m68k/kernel/ptrace.c +++ b/arch/m68k/kernel/ptrace.c @@@ -284,3 -292,60 +286,59 @@@ asmlinkage void syscall_trace_leave(voi if (test_thread_flag(TIF_SYSCALL_TRACE)) ptrace_report_syscall_exit(task_pt_regs(current), 0); } -#endif /* CONFIG_COLDFIRE */ + + #if defined(CONFIG_BINFMT_ELF_FDPIC) && defined(CONFIG_ELF_CORE) + /* + * Currently the only thing that needs to use regsets for m68k is the + * coredump support of the elf_fdpic loader. Implement the minimum + * definitions required for that. + */ + static int m68k_regset_get(struct task_struct *target, + const struct user_regset *regset, + struct membuf to) + { + struct pt_regs *ptregs = task_pt_regs(target); + u32 uregs[ELF_NGREG]; + + ELF_CORE_COPY_REGS(uregs, ptregs); + return membuf_write(&to, uregs, sizeof(uregs)); + } + + enum m68k_regset { + REGSET_GPR, + #ifdef CONFIG_FPU + REGSET_FPU, + #endif + }; + + static const struct user_regset m68k_user_regsets[] = { + [REGSET_GPR] = { + .core_note_type = NT_PRSTATUS, + .n = ELF_NGREG, + .size = sizeof(u32), + .align = sizeof(u16), + .regset_get = m68k_regset_get, + }, + #ifdef CONFIG_FPU + [REGSET_FPU] = { + .core_note_type = NT_PRFPREG, + .n = sizeof(struct user_m68kfp_struct) / sizeof(u32), + .size = sizeof(u32), + .align = sizeof(u32), + } + #endif /* CONFIG_FPU */ + }; + + static const struct user_regset_view user_m68k_view = { + .name = "m68k", + .e_machine = EM_68K, + .ei_osabi = ELF_OSABI, + .regsets = m68k_user_regsets, + .n = ARRAY_SIZE(m68k_user_regsets) + }; + + const struct user_regset_view *task_user_regset_view(struct task_struct *task) + { + return &user_m68k_view; + } + #endif /* CONFIG_BINFMT_ELF_FDPIC && CONFIG_ELF_CORE */