<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/vfp, branch linux-3.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-04-14T22:28:24Z</updated>
<entry>
<title>ARM: 8026/1: Fix emulation of multiply accumulate instructions</title>
<updated>2014-04-14T22:28:24Z</updated>
<author>
<name>Jay Foad</name>
</author>
<published>2014-04-14T15:23:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=244b478386260a8a9150b501bc97644e2e07f8d3'/>
<id>urn:sha1:244b478386260a8a9150b501bc97644e2e07f8d3</id>
<content type='text'>
The emulation for single and double precision multiply accumulate
instructions correctly normalised any denormal values in the operand
registers, but failed to normalise the destination (accumulator)
register.

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=70501

Signed-off-by: Jay Foad &lt;jay.foad@gmail.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 8018/1: Add {inc,dec}_preempt_count asm macros</title>
<updated>2014-04-09T12:08:08Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-04-02T09:57:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b1f68e836bcf1ca2861f95066985c57ecfb2f1a'/>
<id>urn:sha1:0b1f68e836bcf1ca2861f95066985c57ecfb2f1a</id>
<content type='text'>
The patch adds asm macros for inc_preempt_count and dec_preempt_count_ti
(which also gets the current thread_info) instead of open-coding them in
arch/arm/vfp/*.S files.

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Tested-by: Arun KS &lt;getarunks@gmail.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 8017/1: Move asm macro get_thread_info to asm/assembler.h</title>
<updated>2014-04-09T12:08:07Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-04-02T09:57:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=39ad04ccd6e1b235601e9ac5a7f508d05728a97a'/>
<id>urn:sha1:39ad04ccd6e1b235601e9ac5a7f508d05728a97a</id>
<content type='text'>
asm/assembler.h is a better place for this macro since it is used by
asm files outside arch/arm/kernel/

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Tested-by: Arun KS &lt;getarunks@gmail.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 7873/1: vfp: clear vfp_current_hw_state for dying cpu</title>
<updated>2013-10-30T22:10:10Z</updated>
<author>
<name>Yuanyuan Zhong</name>
</author>
<published>2013-10-30T16:31:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=384b38b66947b06999b3e39a596d4f2fb94f77e4'/>
<id>urn:sha1:384b38b66947b06999b3e39a596d4f2fb94f77e4</id>
<content type='text'>
The CPU_DYING notifier is called by cpu stopper task which
does not own the context held in the VFP hardware. Calling
vfp_force_reload() has no effect.
Replace it with clearing vfp_current_hw_state.

Signed-off-by: Yuanyuan Zhong &lt;zyy@motorola.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: add support for kernel mode NEON</title>
<updated>2013-07-08T21:08:51Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2013-05-16T09:41:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73c132c15da504789b924871e2491479a18e4f6a'/>
<id>urn:sha1:73c132c15da504789b924871e2491479a18e4f6a</id>
<content type='text'>
In order to safely support the use of NEON instructions in
kernel mode, some precautions need to be taken:
- the userland context that may be present in the registers (even
  if the NEON/VFP is currently disabled) must be stored under the
  correct task (which may not be 'current' in the UP case),
- to avoid having to keep track of additional vfpstates for the
  kernel side, disallow the use of NEON in interrupt context
  and run with preemption disabled,
- after use, re-enable preemption and re-enable the lazy restore
  machinery by disabling the NEON/VFP unit.

This patch adds the functions kernel_neon_begin() and
kernel_neon_end() which take care of the above. It also adds
the Kconfig symbol KERNEL_MODE_NEON to enable it.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: be strict about FP exceptions in kernel mode</title>
<updated>2013-07-08T21:07:38Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2013-05-24T14:23:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab3da15643469ab2d206dee3d9cfa4194ba77f25'/>
<id>urn:sha1:ab3da15643469ab2d206dee3d9cfa4194ba77f25</id>
<content type='text'>
The support code in vfp_support_entry does not care whether the
exception that caused it to be invoked occurred in kernel mode or
in user mode. However, neither condition that could trigger this
exception (lazy restore and VFP bounce to support code) is
currently allowable in kernel mode.

In either case, print a message describing the condition before
letting the undefined instruction handler run its course and trigger
an oops.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: move VFP init to an earlier boot stage</title>
<updated>2013-07-08T17:22:19Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2013-05-22T08:38:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0773d73d818702191dd568e1e20bcafc5c64661a'/>
<id>urn:sha1:0773d73d818702191dd568e1e20bcafc5c64661a</id>
<content type='text'>
In order to use the NEON unit in the kernel, we should
initialize it a bit earlier in the boot process so NEON users
that like to do a quick benchmark at load time (like the
xor_blocks or RAID-6 code) find the NEON/VFP unit already
enabled.

Replaced late_initcall() with core_initcall().

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: 7729/1: vfp: ensure VFP_arch is non-zero when VFP is not supported</title>
<updated>2013-05-22T21:01:37Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2013-05-16T18:38:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f27d6e172367a424ecf9d373062a820338671277'/>
<id>urn:sha1:f27d6e172367a424ecf9d373062a820338671277</id>
<content type='text'>
Commit d3f79584a8b5 ("ARM: cleanup undefined instruction entry code")
improved the register scheduling when handling undefined instructions.
A side effect of this is that r5 is now used as a temporary, whilst the
VFP probing code relies on r5 containing a non-zero value when VFP is
not supported.

This patch fixes the VFP detection code so that we don't rely on the
contents of r5. Without this patch, Linux dies loudly on CPUs without
VFP support.

Signed-off-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: Fix broken commit 0cc41e4a21d43 corrupting kernel messages</title>
<updated>2013-03-01T21:09:59Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2013-02-26T14:41:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ded3ef0fa71696d3cf631fa4b8ac65313f370b4c'/>
<id>urn:sha1:ded3ef0fa71696d3cf631fa4b8ac65313f370b4c</id>
<content type='text'>
Commit 0cc41e4a21d43 (arch: remove direct definitions of KERN_&lt;LEVEL&gt;
uses) is broken - not enough thought was put into changing:

	.asciz	"string"

to

	.asciz	"string1" "string2"

The problem is that each string gets _separately_ NUL terminated, so
the result is a string containing:

	"string1\0string2\0"

rather than:

	"string1string2\0"

With our new printk levels, this ends up as - eg, KERN_DEBUG "string":

	0x01 0x00 0x07 0x00 "string" 0x00

which produces lots of \x01 in the kernel log.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: VFP: fix emulation of second VFP instruction</title>
<updated>2013-02-25T16:09:12Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2013-02-25T16:09:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5e4ba617c1b584b2e376f31a63bd4e734109318a'/>
<id>urn:sha1:5e4ba617c1b584b2e376f31a63bd4e734109318a</id>
<content type='text'>
Martin Storsjö reports that the sequence:

        ee312ac1        vsub.f32        s4, s3, s2
        ee702ac0        vsub.f32        s5, s1, s0
        e59f0028        ldr             r0, [pc, #40]
        ee111a90        vmov            r1, s3

on Raspberry Pi (implementor 41 architecture 1 part 20 variant b rev 5)
where s3 is a denormal and s2 is zero results in incorrect behaviour -
the instruction "vsub.f32 s5, s1, s0" is not executed:

        VFP: bounce: trigger ee111a90 fpexc d0000780
        VFP: emulate: INST=0xee312ac1 SCR=0x00000000
        ...

As we can see, the instruction triggering the exception is the "vmov"
instruction, and we emulate the "vsub.f32 s4, s3, s2" but fail to
properly take account of the FPEXC_FP2V flag in FPEXC.  This is because
the test for the second instruction register being valid is bogus, and
will always skip emulation of the second instruction.

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Martin Storsjö &lt;martin@martin.st&gt;
Tested-by: Martin Storsjö &lt;martin@martin.st&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
