On Wed, May 13, 2020 at 10:52 PM Michael Ellerman [off-list ref] wrote:
Jordan Niethe [off-list ref] writes:
quoted
diff --git a/arch/powerpc/lib/inst.c b/arch/powerpc/lib/inst.c
new file mode 100644
index 000000000000..eaf786afad2b
--- /dev/null
+++ b/arch/powerpc/lib/inst.c
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright 2020, IBM Corporation.
+ */
+
+#include <linux/uaccess.h>
+#include <asm/inst.h>
+
+int probe_user_read_inst(struct ppc_inst *inst,
+ struct ppc_inst *nip)
+{
+ unsigned int val;
+ int err;
+
+ err = probe_user_read(&val, nip, sizeof(val));
+ *inst = ppc_inst(val);
We shouldn't be storing to *inst if the read failed?
Good point.
I changed it to:
+ if (!err)
+ *inst = ppc_inst(val);
+
Similarly for probe_kernel_read_inst().
Thanks.
cheers