<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arm/kernel/kprobes-decode.c, branch master</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=master</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2011-07-13T17:32:40Z</updated>
<entry>
<title>ARM: kprobes: Rename kprobes-decode.c to kprobes-arm.c</title>
<updated>2011-07-13T17:32:40Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-07-06T09:49:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=691b2ff294a4787f3e54f5bb541570ac74bcb6f4'/>
<id>urn:sha1:691b2ff294a4787f3e54f5bb541570ac74bcb6f4</id>
<content type='text'>
This file contains decoding and emulation functions for the ARM
instruction set. As we will later be adding a file for Thumb and a
file with common decoding functions, this renaming makes things clearer.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Acked-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Tidy-up kprobes-decode.c</title>
<updated>2011-04-29T03:41:01Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-19T09:52:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cdc253611582f08036ccb6e10efe95b8e760a7e2'/>
<id>urn:sha1:cdc253611582f08036ccb6e10efe95b8e760a7e2</id>
<content type='text'>
- Remove coding standard violations reported by checkpatch.pl
- Delete comment about handling of conditional branches which is no
  longer true.
- Delete comment at end of file which lists all ARM instructions. This
  duplicates data available in the ARM ARM and seems like an
  unnecessary maintenance burden to keep this up to date and accurate.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Add emulation of hint instructions like NOP and WFI</title>
<updated>2011-04-29T03:41:01Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-19T09:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=94254930786216106100e9a28c9a244df58be61f'/>
<id>urn:sha1:94254930786216106100e9a28c9a244df58be61f</id>
<content type='text'>
Being able to probe NOP instructions is useful for hard-coding probeable
locations and is used by the kprobes test code.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Add emulation of SBFX, UBFX, BFI and BFC instructions</title>
<updated>2011-04-29T03:41:00Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-19T09:52:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=20e8155e24ba5c04558780d0a8da13c39f98c002'/>
<id>urn:sha1:20e8155e24ba5c04558780d0a8da13c39f98c002</id>
<content type='text'>
These bit field manipulation instructions occur several thousand
times in an ARMv7 kernel.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Add emulation of MOVW and MOVT instructions</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-19T09:52:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c9836777d5f22e64eefc759d682511560b6d6d78'/>
<id>urn:sha1:c9836777d5f22e64eefc759d682511560b6d6d78</id>
<content type='text'>
The MOVW and MOVT instructions account for approximately 7% of all
instructions in a ARMv7 kernel as GCC uses them instead of a literal
pool.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Reject probing of undefined data processing instructions</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-19T09:52:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f704a6e25bd07e1381af81f19fb1d123975807b1'/>
<id>urn:sha1:f704a6e25bd07e1381af81f19fb1d123975807b1</id>
<content type='text'>
The instruction decoding in space_cccc_000x needs to reject probing of
instructions with undefined patterns as they may in future become
defined and then emulated faultily - as has already happened with the
SMC instruction.

This fix is achieved by testing for the instruction patterns we want to
probe and making the the default fall-through paths reject probes. This
also allows us to remove some explicit tests for instructions that we
wish to reject, as that is now the default action.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Remove redundant code in space_1111</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-18T07:53:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=72c2bab2be734d63dee4342e67b1754c54fded70'/>
<id>urn:sha1:72c2bab2be734d63dee4342e67b1754c54fded70</id>
<content type='text'>
The tests to explicitly reject probing CPS, RFE and SRS instructions
are redundant as the default case is now to reject undecoded patterns.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Fix emulation of PLD instructions</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-18T07:53:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=41713d1396312a027ec02abc4767041627c178ef'/>
<id>urn:sha1:41713d1396312a027ec02abc4767041627c178ef</id>
<content type='text'>
The PLD instructions wasn't being decoded correctly and the emulation
code wasn't adjusting PC correctly.

As the PLD instruction is only a performance hint we emulate it as a
simple nop, and we can broaden the instruction decoding to take into
account newer PLI and PLDW instructions.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Reject probing of SETEND instructions</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-18T07:53:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f0aeb8bff0fe9de50e1e4093ef86ff8f17a9b1b0'/>
<id>urn:sha1:f0aeb8bff0fe9de50e1e4093ef86ff8f17a9b1b0</id>
<content type='text'>
The emulation of SETEND was broken as it changed the endianess for
the running kprobes handling code. Rather than adding a new simulation
routine to fix this we'll just reject probing of SETEND as these should
be very rare in the kernel.

Note, the function emulate_none is now unused but it is left in the
source code as future patches will use it.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: kprobes: Consolidate stub decoding functions</title>
<updated>2011-04-29T03:40:59Z</updated>
<author>
<name>Jon Medhurst</name>
<email>tixy@yxit.co.uk</email>
</author>
<published>2011-04-18T07:53:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ac211c6994fb5f1f282745054c00d29e53639cb1'/>
<id>urn:sha1:ac211c6994fb5f1f282745054c00d29e53639cb1</id>
<content type='text'>
Following the change to remove support for coprocessor instructions
we are left with three stub functions which can be consolidated.

Signed-off-by: Jon Medhurst &lt;tixy@yxit.co.uk&gt;
Signed-off-by: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
</content>
</entry>
</feed>
