Re: [PATCH v3 4/8] x86: speed up int3-based patching using directwrite

From: Masami Hiramatsu
Date: Thu Nov 14 2013 - 06:36:57 EST


(2013/11/14 19:41), Petr Mladek wrote:
> @@ -837,7 +882,7 @@ static void recover_iter(struct text_poke_bp_iter *iterator,
> }
>
> /* Finally, put back the first byte from the old code */
> - err = text_poke(addr, old_opcode, sizeof(bp_int3));
> + err = text_poke_part(addr, old_opcode, sizeof(bp_int3));
> /* we can not continue if the interrupt is still there */
> BUG_ON(err);
> }
> @@ -865,7 +910,9 @@ static void recover_iter(struct text_poke_bp_iter *iterator,
> * It is a bit more paranoid than text_poke_bp because it checks the actual
> * code before patching. This is a good practice proposed by the ftrace code.
> *
> - * Note: This function must be called under text_mutex.
> + * Note: This function must be called under text_mutex. Also the caller is
> + * responsible for making the patched code read-write, for example using
> + * set_kernel_text_rw() and set_all_modules_text_rw()

OK, I got the reason why we can do it.
But if so, we should change all existing caller of text_poke_bp() to
call it in this patch, or they must fail at this point.

Thank you,

--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/