The implementation of sdt_getarg() for x86_64 uses a copy_from_user
variant while reading from kernel stack which is obviously wrong.
This commit corrects that.
Orabug:
25949088
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Reviewed-by: Tomas Jedlicka <tomas.jedlicka@oracle.com>
#include <linux/sdt.h>
#include <linux/slab.h>
-#include <linux/uaccess.h>
#include <linux/vmalloc.h>
#include <asm/dtrace_util.h>
st = (uint64_t *)regs->sp;
DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);
- __copy_from_user_inatomic_nocache(&val, (void *)&st[argno - 6],
- sizeof(st[0]));
+ val = st[argno - 6];
DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT);
return val;