From: dave.long@linaro.org (David Long)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 05/16] ARM: use a function table for determining instruction interpreter action
Date: Mon, 03 Feb 2014 21:06:16 -0500 [thread overview]
Message-ID: <52F04B18.4020905@linaro.org> (raw)
In-Reply-To: <1391437498.3509.11.camel@linaro1.home>
On 02/03/14 09:24, Jon Medhurst (Tixy) wrote:
> On Thu, 2014-01-23 at 15:05 -0500, David Long wrote:
>> From: "David A. Long" <dave.long@linaro.org>
>>
>> Make the instruction interpreter call back to semantic action functions
>> through a function pointer array provided by the invoker. The interpreter
>> decodes the instructions into groups and uses the group number to index
>> into the supplied array. kprobes and uprobes code will each supply their
>> own array of functions.
>>
>> Signed-off-by: David A. Long <dave.long@linaro.org>
>> ---
>
> [...]
>
>> --- a/arch/arm/kernel/probes.c
>> +++ b/arch/arm/kernel/probes.c
>> @@ -378,10 +378,11 @@ static const int decode_struct_sizes[NUM_DECODE_TYPES] = {
>> */
>> int __kprobes
>> kprobe_decode_insn(kprobe_opcode_t insn, struct arch_specific_insn *asi,
>> - const union decode_item *table, bool thumb)
>> + const union decode_item *table, bool thumb,
>> + const union decode_action *actions)
>> {
>> - const struct decode_header *h = (struct decode_header *)table;
>> - const struct decode_header *next;
>> + struct decode_header *h = (struct decode_header *)table;
>> + struct decode_header *next;
>
> The decode tables are fixed structures which nothing should want to
> modify, so I think the const's above should be kept. I believe that
> you've had to resort to changing them because the following typedef
> lacks a 'const' on the final argument....
>
I've made the change.
> [...]
>> diff --git a/arch/arm/kernel/probes.h b/arch/arm/kernel/probes.h
>> index c610fa9..81b6e61 100644
> [...]
>>
>> +typedef enum kprobe_insn (probes_custom_decode_t)(kprobe_opcode_t,
>> + struct arch_specific_insn *,
>> + struct decode_header *);
>> +
>
> Adding 'const' above will also have the knock on effect of requiring
> const on all the 'custom decode' functions as well.
>
I've made those numerous changes as well.
-dl
WARNING: multiple messages have this Message-ID (diff)
From: David Long <dave.long@linaro.org>
To: "Jon Medhurst (Tixy)" <tixy@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
Russell King <linux@arm.linux.org.uk>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
Oleg Nesterov <oleg@redhat.com>,
Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
linux-kernel@vger.kernel.org, Rabin Vincent <rabin@rab.in>,
Ingo Molnar <mingo@redhat.com>, Paul Mackerras <paulus@samba.org>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
davem@davemloft.net,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Subject: Re: [PATCH v5 05/16] ARM: use a function table for determining instruction interpreter action
Date: Mon, 03 Feb 2014 21:06:16 -0500 [thread overview]
Message-ID: <52F04B18.4020905@linaro.org> (raw)
In-Reply-To: <1391437498.3509.11.camel@linaro1.home>
On 02/03/14 09:24, Jon Medhurst (Tixy) wrote:
> On Thu, 2014-01-23 at 15:05 -0500, David Long wrote:
>> From: "David A. Long" <dave.long@linaro.org>
>>
>> Make the instruction interpreter call back to semantic action functions
>> through a function pointer array provided by the invoker. The interpreter
>> decodes the instructions into groups and uses the group number to index
>> into the supplied array. kprobes and uprobes code will each supply their
>> own array of functions.
>>
>> Signed-off-by: David A. Long <dave.long@linaro.org>
>> ---
>
> [...]
>
>> --- a/arch/arm/kernel/probes.c
>> +++ b/arch/arm/kernel/probes.c
>> @@ -378,10 +378,11 @@ static const int decode_struct_sizes[NUM_DECODE_TYPES] = {
>> */
>> int __kprobes
>> kprobe_decode_insn(kprobe_opcode_t insn, struct arch_specific_insn *asi,
>> - const union decode_item *table, bool thumb)
>> + const union decode_item *table, bool thumb,
>> + const union decode_action *actions)
>> {
>> - const struct decode_header *h = (struct decode_header *)table;
>> - const struct decode_header *next;
>> + struct decode_header *h = (struct decode_header *)table;
>> + struct decode_header *next;
>
> The decode tables are fixed structures which nothing should want to
> modify, so I think the const's above should be kept. I believe that
> you've had to resort to changing them because the following typedef
> lacks a 'const' on the final argument....
>
I've made the change.
> [...]
>> diff --git a/arch/arm/kernel/probes.h b/arch/arm/kernel/probes.h
>> index c610fa9..81b6e61 100644
> [...]
>>
>> +typedef enum kprobe_insn (probes_custom_decode_t)(kprobe_opcode_t,
>> + struct arch_specific_insn *,
>> + struct decode_header *);
>> +
>
> Adding 'const' above will also have the knock on effect of requiring
> const on all the 'custom decode' functions as well.
>
I've made those numerous changes as well.
-dl
next prev parent reply other threads:[~2014-02-04 2:06 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-23 20:05 [PATCH v5 00/16] uprobes: Add uprobes support for ARM David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 01/16] uprobes: allow ignoring of probe hits David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 02/16] ARM: move shared uprobe/kprobe definitions into new include file David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 03/16] ARM: Move generic arm instruction parsing code to new files for sharing between features David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 04/16] ARM: move generic thumb instruction parsing code to new files for use by other feature David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 05/16] ARM: use a function table for determining instruction interpreter action David Long
2014-01-23 20:05 ` David Long
2014-02-03 14:24 ` Jon Medhurst (Tixy)
2014-02-03 14:24 ` Jon Medhurst (Tixy)
2014-02-04 2:06 ` David Long [this message]
2014-02-04 2:06 ` David Long
2014-01-23 20:05 ` [PATCH v5 06/16] ARM: Disable jprobes test when built into thumb-mode kernel David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 07/16] ARM: Remove use of struct kprobe from generic probes code David Long
2014-01-23 20:05 ` David Long
2014-02-03 14:57 ` Jon Medhurst (Tixy)
2014-02-03 14:57 ` Jon Medhurst (Tixy)
2014-02-04 2:07 ` David Long
2014-02-04 2:07 ` David Long
2014-01-23 20:05 ` [PATCH v5 08/16] ARM: Use new opcode type in ARM kprobes/uprobes code David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 09/16] ARM: Make the kprobes condition_check symbol names more generic David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 10/16] ARM: Change more ARM kprobes symbol names to something more David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 11/16] ARM: Rename the shared kprobes/uprobe return value enum David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 12/16] ARM: Change the remaining shared kprobes/uprobes symbols to something generic David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 13/16] ARM: Add an emulate flag to the kprobes/uprobes instruction decode functions David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 14/16] ARM: Make arch_specific_insn a define for new arch_probes_insn structure David Long
2014-01-23 20:05 ` David Long
2014-01-23 20:05 ` [PATCH v5 15/16] ARM: add uprobes support David Long
2014-01-23 20:05 ` David Long
2014-02-03 16:36 ` Jon Medhurst (Tixy)
2014-02-03 16:36 ` Jon Medhurst (Tixy)
2014-02-03 20:37 ` Rabin Vincent
2014-02-03 20:37 ` Rabin Vincent
2014-01-23 20:05 ` [PATCH v5 16/16] ARM: Remove uprobes dependency on kprobes David Long
2014-01-23 20:05 ` David Long
2014-02-03 15:45 ` Jon Medhurst (Tixy)
2014-02-03 15:45 ` Jon Medhurst (Tixy)
2014-02-04 2:15 ` David Long
2014-02-04 2:15 ` David Long
2014-02-03 16:44 ` [PATCH v5 00/16] uprobes: Add uprobes support for ARM Jon Medhurst (Tixy)
2014-02-03 16:44 ` Jon Medhurst (Tixy)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52F04B18.4020905@linaro.org \
--to=dave.long@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.