<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/um/kernel/skas/syscall.c, branch linux-5.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-07-02T21:27:36Z</updated>
<entry>
<title>um: Support time travel mode</title>
<updated>2019-07-02T21:27:36Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2019-05-27T08:34:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=065038706f77a56754e8f0c2556dab7e22dfe577'/>
<id>urn:sha1:065038706f77a56754e8f0c2556dab7e22dfe577</id>
<content type='text'>
Sometimes it can be useful to run with "time travel" inside the
UML instance, for example for testing. For example, some tests
for the wireless subsystem and userspace are based on hwsim, a
virtual wireless adapter. Some tests can take a long time to
run because they e.g. wait for 120 seconds to elapse for some
regulatory checks. This obviously goes faster if it need not
actually wait that long, but time inside the test environment
just "bumps up" when there's nothing to do.

Add CONFIG_UML_TIME_TRAVEL_SUPPORT to enable code to support
such modes at runtime, selected on the command line:
 * just "time-travel", in which time inside the UML instance
   can move faster than real time, if there's nothing to do
 * "time-travel=inf-cpu" in which time also moves slower and
   any CPU processing takes no time at all, which allows to
   implement consistent behaviour regardless of host CPU load
   (or speed) or debug overhead.

An additional "time-travel-start=&lt;seconds&gt;" parameter is also
supported in this case to start the wall clock at this time
(in unix epoch).

With this enabled, the test mentioned above goes from a runtime
of about 140 seconds (with startup overhead and all) to being
CPU bound and finishing in 15 seconds (on my slow laptop).

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
</content>
</entry>
<entry>
<title>um/ptrace: Fix the syscall number update after a ptrace</title>
<updated>2016-09-07T16:25:04Z</updated>
<author>
<name>Mickaël Salaün</name>
</author>
<published>2016-08-01T21:01:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ce29856a5e1aabe52e18b2c60db1490769a6ab55'/>
<id>urn:sha1:ce29856a5e1aabe52e18b2c60db1490769a6ab55</id>
<content type='text'>
Update the syscall number after each PTRACE_SETREGS on ORIG_*AX.

This is needed to get the potentially altered syscall number in the
seccomp filters after RET_TRACE.

This fix four seccomp_bpf tests:
&gt; [ RUN      ] TRACE_syscall.skip_after_RET_TRACE
&gt; seccomp_bpf.c:1560:TRACE_syscall.skip_after_RET_TRACE:Expected -1 (18446744073709551615) == syscall(39) (26)
&gt; seccomp_bpf.c:1561:TRACE_syscall.skip_after_RET_TRACE:Expected 1 (1) == (*__errno_location ()) (22)
&gt; [     FAIL ] TRACE_syscall.skip_after_RET_TRACE
&gt; [ RUN      ] TRACE_syscall.kill_after_RET_TRACE
&gt; TRACE_syscall.kill_after_RET_TRACE: Test exited normally instead of by signal (code: 1)
&gt; [     FAIL ] TRACE_syscall.kill_after_RET_TRACE
&gt; [ RUN      ] TRACE_syscall.skip_after_ptrace
&gt; seccomp_bpf.c:1622:TRACE_syscall.skip_after_ptrace:Expected -1 (18446744073709551615) == syscall(39) (26)
&gt; seccomp_bpf.c:1623:TRACE_syscall.skip_after_ptrace:Expected 1 (1) == (*__errno_location ()) (22)
&gt; [     FAIL ] TRACE_syscall.skip_after_ptrace
&gt; [ RUN      ] TRACE_syscall.kill_after_ptrace
&gt; TRACE_syscall.kill_after_ptrace: Test exited normally instead of by signal (code: 1)
&gt; [     FAIL ] TRACE_syscall.kill_after_ptrace

Fixes: 26703c636c1f ("um/ptrace: run seccomp after ptrace")

Signed-off-by: Mickaël Salaün &lt;mic@digikod.net&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Richard Weinberger &lt;richard@nod.at&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: user-mode-linux-devel@lists.sourceforge.net
Signed-off-by: James Morris &lt;james.l.morris@oracle.com&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>um/ptrace: Fix the syscall_trace_leave call</title>
<updated>2016-09-07T16:25:04Z</updated>
<author>
<name>Mickaël Salaün</name>
</author>
<published>2016-08-01T21:01:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=972939e28592ec61e2e8334786152be2c80de677'/>
<id>urn:sha1:972939e28592ec61e2e8334786152be2c80de677</id>
<content type='text'>
Keep the same semantic as before the commit 26703c636c1f: deallocate
audit context and fake a proper syscall exit.

This fix a kernel panic triggered by the seccomp_bpf test:
&gt; [ RUN      ] global.ERRNO_valid
&gt; BUG: failure at kernel/auditsc.c:1504/__audit_syscall_entry()!
&gt; Kernel panic - not syncing: BUG!

Fixes: 26703c636c1f ("um/ptrace: run seccomp after ptrace")

Signed-off-by: Mickaël Salaün &lt;mic@digikod.net&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Richard Weinberger &lt;richard@nod.at&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: user-mode-linux-devel@lists.sourceforge.net
Signed-off-by: James Morris &lt;james.l.morris@oracle.com&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>um/ptrace: run seccomp after ptrace</title>
<updated>2016-06-14T17:54:47Z</updated>
<author>
<name>Kees Cook</name>
</author>
<published>2016-06-03T02:59:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26703c636c1f3272b39bd0f6d04d2e970984f1b6'/>
<id>urn:sha1:26703c636c1f3272b39bd0f6d04d2e970984f1b6</id>
<content type='text'>
Close the hole where ptrace can change a syscall out from under seccomp.

Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Richard Weinberger &lt;richard@nod.at&gt;
Cc: user-mode-linux-devel@lists.sourceforge.net
</content>
</entry>
<entry>
<title>seccomp: Add a seccomp_data parameter secure_computing()</title>
<updated>2016-06-14T17:54:39Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2016-05-27T19:57:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f275de5d1ed7269913ef9b4c64a13952c0a38e8'/>
<id>urn:sha1:2f275de5d1ed7269913ef9b4c64a13952c0a38e8</id>
<content type='text'>
Currently, if arch code wants to supply seccomp_data directly to
seccomp (which is generally much faster than having seccomp do it
using the syscall_get_xyz() API), it has to use the two-phase
seccomp hooks. Add it to the easy hooks, too.

Cc: linux-arch@vger.kernel.org
Signed-off-by: Andy Lutomirski &lt;luto@kernel.org&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>um: Add seccomp support</title>
<updated>2016-01-10T20:49:49Z</updated>
<author>
<name>Mickaël Salaün</name>
</author>
<published>2015-12-29T20:35:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c50b4659e444b020657e01bdf769c965e5597cb0'/>
<id>urn:sha1:c50b4659e444b020657e01bdf769c965e5597cb0</id>
<content type='text'>
This brings SECCOMP_MODE_STRICT and SECCOMP_MODE_FILTER support through
prctl(2) and seccomp(2) to User-mode Linux for i386 and x86_64
subarchitectures.

secure_computing() is called first in handle_syscall() so that the
syscall emulation will be aborted quickly if matching a seccomp rule.

This is inspired from Meredydd Luff's patch
(https://gerrit.chromium.org/gerrit/21425).

Signed-off-by: Mickaël Salaün &lt;mic@digikod.net&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Richard Weinberger &lt;richard@nod.at&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Will Drewry &lt;wad@chromium.org&gt;
Cc: Chris Metcalf &lt;cmetcalf@ezchip.com&gt;
Cc: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Cc: James Hogan &lt;james.hogan@imgtec.com&gt;
Cc: Meredydd Luff &lt;meredydd@senatehouse.org&gt;
Cc: David Drysdale &lt;drysdale@google.com&gt;
Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>um: Fix ptrace GETREGS/SETREGS bugs</title>
<updated>2016-01-10T20:49:48Z</updated>
<author>
<name>Mickaël Salaün</name>
</author>
<published>2015-12-29T20:35:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e04c989eb785af61d2895d76d38c09166296f9c5'/>
<id>urn:sha1:e04c989eb785af61d2895d76d38c09166296f9c5</id>
<content type='text'>
This fix two related bugs:
* PTRACE_GETREGS doesn't get the right orig_ax (syscall) value
* PTRACE_SETREGS can't set the orig_ax value (erased by initial value)

Get rid of the now useless and error-prone get_syscall().

Fix inconsistent behavior in the ptrace implementation for i386 when
updating orig_eax automatically update the syscall number as well. This
is now updated in handle_syscall().

Signed-off-by: Mickaël Salaün &lt;mic@digikod.net&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Richard Weinberger &lt;richard@nod.at&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Kees Cook &lt;keescook@chromium.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Will Drewry &lt;wad@chromium.org&gt;
Cc: Thomas Meyer &lt;thomas@m3y3r.de&gt;
Cc: Nicolas Iooss &lt;nicolas.iooss_linux@m4x.org&gt;
Cc: Anton Ivanov &lt;aivanov@brocade.com&gt;
Cc: Meredydd Luff &lt;meredydd@senatehouse.org&gt;
Cc: David Drysdale &lt;drysdale@google.com&gt;
Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
Acked-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>um: Get rid of open coded NR_SYSCALLS</title>
<updated>2015-11-06T21:49:10Z</updated>
<author>
<name>Richard Weinberger</name>
</author>
<published>2015-10-25T19:28:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f10e6d652bc2dad67b5e7b6e6d890c76f739ed77'/>
<id>urn:sha1:f10e6d652bc2dad67b5e7b6e6d890c76f739ed77</id>
<content type='text'>
We can use __NR_syscall_max.

Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
</content>
</entry>
<entry>
<title>um: Store syscall number after syscall_trace_enter()</title>
<updated>2015-11-06T21:49:09Z</updated>
<author>
<name>Richard Weinberger</name>
</author>
<published>2015-10-25T18:54:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1d80f0cda10118d7505bd0a09a5c1c72f3a5f6c8'/>
<id>urn:sha1:1d80f0cda10118d7505bd0a09a5c1c72f3a5f6c8</id>
<content type='text'>
To support changing syscall numbers we have to store
it after syscall_trace_enter().

Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
</content>
</entry>
<entry>
<title>um: Handle tracehook_report_syscall_entry() result</title>
<updated>2015-05-31T20:59:03Z</updated>
<author>
<name>Richard Weinberger</name>
</author>
<published>2015-05-31T20:59:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5334cdae407a5778a297a98a75ca61140e37ebfa'/>
<id>urn:sha1:5334cdae407a5778a297a98a75ca61140e37ebfa</id>
<content type='text'>
tracehook_report_syscall_entry() is allowed to fail,
in case of failure we have to abort the current syscall.

Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
</content>
</entry>
</feed>
