Re: [PATCH] m68knommu: remove set_fs()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <hch@xxxxxx> 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









[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux