<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arm/kernel/entry-common.S, branch v4.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-09-03T14:28:37Z</updated>
<entry>
<title>Merge branches 'cleanup', 'fixes', 'misc', 'omap-barrier' and 'uaccess' into for-linus</title>
<updated>2015-09-03T14:28:37Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-09-03T14:28:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=40d3f02851577da27b5cbb1538888301245ef1e7'/>
<id>urn:sha1:40d3f02851577da27b5cbb1538888301245ef1e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ARM: entry: provide uaccess assembly macro hooks</title>
<updated>2015-08-26T19:27:02Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-08-20T09:32:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2190fed67ba6f3e8129513929f2395843645e928'/>
<id>urn:sha1:2190fed67ba6f3e8129513929f2395843645e928</id>
<content type='text'>
Provide hooks into the kernel entry and exit paths to permit control
of userspace visibility to the kernel.  The intended use is:

- on entry to kernel from user, uaccess_disable will be called to
  disable userspace visibility
- on exit from kernel to user, uaccess_enable will be called to
  enable userspace visibility
- on entry from a kernel exception, uaccess_save_and_disable will be
  called to save the current userspace visibility setting, and disable
  access
- on exit from a kernel exception, uaccess_restore will be called to
  restore the userspace visibility as it was before the exception
  occurred.

These hooks allows us to keep userspace visibility disabled for the
vast majority of the kernel, except for localised regions where we
want to explicitly access userspace.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: entry: ensure that IRQs are enabled when calling syscall_trace_exit()</title>
<updated>2015-08-25T09:32:50Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-08-20T16:39:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e0aa3a665782e29cec752ae667c51ed4ee75d11f'/>
<id>urn:sha1:e0aa3a665782e29cec752ae667c51ed4ee75d11f</id>
<content type='text'>
The audit code looks like it's been written to cope with being called
with IRQs enabled.  However, it's unclear whether IRQs should be
enabled or disabled when calling the syscall tracing infrastructure.

Right now, sometimes we call this with IRQs enabled, and other times
with IRQs disabled.  Opt for IRQs being enabled for consistency.

Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: entry: efficiency cleanups</title>
<updated>2015-08-25T09:32:48Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-08-20T15:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3302caddf10ad50710dbb7a94ccbdb3ad5bf1412'/>
<id>urn:sha1:3302caddf10ad50710dbb7a94ccbdb3ad5bf1412</id>
<content type='text'>
Make the "fast" syscall return path fast again.  The addition of IRQ
tracing and context tracking has made this path grossly inefficient.
We can do much better if these options are enabled if we save the
syscall return code on the stack - we then don't need to save a bunch
of registers around every single callout to C code.

Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 8409/1: Mark ret_fast_syscall as a function</title>
<updated>2015-08-07T18:57:02Z</updated>
<author>
<name>Drew Richardson</name>
<email>drew.richardson@arm.com</email>
</author>
<published>2015-08-06T17:50:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e83dd3770021910293edea6fb2dc2fa306b1bf34'/>
<id>urn:sha1:e83dd3770021910293edea6fb2dc2fa306b1bf34</id>
<content type='text'>
ret_fast_syscall runs when user space makes a syscall. However it
needs to be marked as such so the ELF information is correct. Before
it was:

   101: 8000f300     0 NOTYPE  LOCAL  DEFAULT    2 ret_fast_syscall

But with this change it correctly shows as:

   101: 8000f300    96 FUNC    LOCAL  DEFAULT    2 ret_fast_syscall

I see this function when using perf to unwind call stacks from kernel
space to user space. Without this change I would need to add some
special case logic when using the vmlinux ELF information.

Signed-off-by: Drew Richardson &lt;drew.richardson@arm.com&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bsym' into for-next</title>
<updated>2015-06-12T20:18:38Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-06-12T20:18:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=05c9ca8843cdf688275df891d512e204359717c5'/>
<id>urn:sha1:05c9ca8843cdf688275df891d512e204359717c5</id>
<content type='text'>
Conflicts:
	arch/arm/kernel/head.S
</content>
</entry>
<entry>
<title>ARM: fix missing syscall trace exit</title>
<updated>2015-05-15T10:06:35Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-05-15T10:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1b97937246d8b97c0760d16d8992c7937bdf5e6a'/>
<id>urn:sha1:1b97937246d8b97c0760d16d8992c7937bdf5e6a</id>
<content type='text'>
Josh Stone reports:

  I've discovered a case where both arm and arm64 will miss a ptrace
  syscall-exit that they should report.  If the syscall is entered
  without TIF_SYSCALL_TRACE set, then it goes on the fast path.  It's
  then possible to have TIF_SYSCALL_TRACE added in the middle of the
  syscall, but ret_fast_syscall doesn't check this flag again.

Fix this by always checking for a syscall trace in the fast exit path.

Reported-by: Josh Stone &lt;jistone@redhat.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: replace BSYM() with badr assembly macro</title>
<updated>2015-05-08T16:33:50Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2015-04-21T13:17:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=14327c662822e5e874cb971a7162067519300ca8'/>
<id>urn:sha1:14327c662822e5e874cb971a7162067519300ca8</id>
<content type='text'>
BSYM() was invented to allow us to work around a problem with the
assembler, where local symbols resolved by the assembler for the 'adr'
instruction did not take account of their ISA.

Since we don't want BSYM() used elsewhere, replace BSYM() with a new
macro 'badr', which is like the 'adr' pseudo-op, but with the BSYM()
mechanics integrated into it.  This ensures that the BSYM()-ification
is only used in conjunction with 'adr'.

Acked-by: Dave Martin &lt;Dave.Martin@arm.com&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: move ftrace assembly code to separate file</title>
<updated>2014-11-21T15:25:01Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2014-10-28T13:26:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=82112379b73c937576f40c99b4d93162343af6f9'/>
<id>urn:sha1:82112379b73c937576f40c99b4d93162343af6f9</id>
<content type='text'>
The ftrace assembly code doesn't need to live in entry-common.S and
be surrounded with #ifdef CONFIG_FUNCTION_TRACER.  Instead, move it
to its own file and conditionally assemble it.

Tested-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: Avoid writing to control register on every exception</title>
<updated>2014-09-26T13:39:54Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2014-08-28T12:08:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=195b58add463f697fb802ed55e26759094d40a54'/>
<id>urn:sha1:195b58add463f697fb802ed55e26759094d40a54</id>
<content type='text'>
If we are not changing the control register value, avoid writing to it.
Writes to the control register can be very expensive, taking around a
hundred cycles or so.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
