Subject: [PATCH v2 05/13] uprobes: add arch write opcode hook

From: [email-masked] (Oleg Nesterov)
Date: Sat, 19 Oct 2013 18:50:51 +0200

On 10/15, David Long wrote:
>
> Allow arches to write the opcode with a custom function.  ARM needs to
> customize the swbp instruction depending on the condition code of the
> instruction it replaces.

Well, we already have "__weak set_swbp(auprobe, ...)", can't arm use it?

If not,

> +void __weak arch_uprobe_write_opcode(struct arch_uprobe *auprobe, void *vaddr,
> +				     uprobe_opcode_t opcode)
> +{
> +	memcpy(vaddr, &opcode, UPROBE_SWBP_INSN_SIZE);
> +}
> ...
> -	copy_to_page(new_page, vaddr, &opcode, UPROBE_SWBP_INSN_SIZE);
> +	vaddr_new = kmap_atomic(new_page);
> +	arch_uprobe_write_opcode(auprobe, vaddr_new + (vaddr & ~PAGE_MASK),
> +				 opcode);
> +	kunmap_atomic(vaddr_new);

Again, if you need to add the new __weak helper, I think it should simply
do copy_to_page().

Oleg.