ftrace/x86: Use breakpoints for converting function graph caller
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 12 Feb 2014 01:19:44 +0000 (20:19 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Feb 2014 20:41:27 +0000 (12:41 -0800)
commitd6ec5e5cb27bcd89c730a5bb89de6cc9144359a1
tree26636c56690bd97b035a74fcbb6fd0c6af21dd76
parentd8b7ff138d2d53fee8fd5e924882c122d0e5498a
ftrace/x86: Use breakpoints for converting function graph caller

commit 87fbb2ac6073a7039303517546a76074feb14c84 upstream.

When the conversion was made to remove stop machine and use the breakpoint
logic instead, the modification of the function graph caller is still
done directly as though it was being done under stop machine.

As it is not converted via stop machine anymore, there is a possibility
that the code could be layed across cache lines and if another CPU is
accessing that function graph call when it is being updated, it could
cause a General Protection Fault.

Convert the update of the function graph caller to use the breakpoint
method as well.

Cc: H. Peter Anvin <hpa@zytor.com>
Fixes: 08d636b6d4fb "ftrace/x86: Have arch x86_64 use breakpoints instead of stop machine"
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/ftrace.c