Re: [PATCH] m68knommu: remove set_fs()
Michael Schmitz <[email protected]> Thu, 8 Jul 2021 13:39:45 +1200
| Newsgroups | gmane.linux.ports.m68k,gmane.linux.uclinux.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Christoph, On 8/07/21 2:25 am, Christoph Hellwig wrote: > On Tue, Jul 06, 2021 at 11:36:26AM -0700, Linus Torvalds wrote: >> On Mon, Jul 5, 2021 at 9:13 PM Christoph Hellwig <[email protected]> wrote: >>> It still needs "real" kernel-style set_fs for the mm/maccess.c routines, >>> but adding __{get,put}_kernel_nofault should not be too hard. >> Yeah, it's not that it wants set-fs(), it's that I missed that m68k >> doesn't have HAVE_GET_KERNEL_NOFAULT. >> >> Implementing __get/put_kernel_nofault() should be fairly >> straightforward: they are basically the same thing as the >> __get/put_user() functions, except they should just use "move" instead >> of "moves". >> >> The m68k uaccess.h file already kind of has support for that, but it's >> hardcoded to the CONFIG_CPU_HAS_ADDRESS_SPACES config, rather than >> being available as two different versions. > So I've come up with a whole (compile tested only) series. We don't > really need the preempt_disable either given the m68k saves and restores > the SFC/DFC registers on context switch: > > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/m68k-set_fs I tried your patches (on top of m68k 5.14). Doesn't manage to start init, independent of what disk image I use: Starting init: /bin/sh exists but couldn't execute it (error -22) Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. CPU: 0 PID: 1 Comm: sh Not tainted 5.13.0-atari-fpuemu-exitfix+ #1198 Stack from 01031f8c: 01031f8c 00360249 00360249 002c7032 00000001 000bc486 00000000 000020c0 00000000 00000000 00000000 002d3ffa 00355111 002d3f28 00002980 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 20000000 00000000 Call Trace: [<002c7032>] panic+0xc0/0x282 [<000bc486>] kfree+0x0/0x60 [<000020c0>] try_to_run_init_process+0x0/0x36 [<002d3ffa>] kernel_init+0xd2/0xd8 [<002d3f28>] kernel_init+0x0/0xd8 [<00002980>] ret_from_kernel_thread+0xc/0x14 ---[ end Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. ]--- And I don't think it's the return value issue Linus pointed out - the same thing happens with my own (quite similar, though much less sophisticated) patches based on what I sent in response to Linus' suggestions earlier... I'll send the last version of mine that did still boot shortly. Cheers, Michael