On Mon, Aug 07, 2023 at 11:00:12PM +0100, Mark Brown wrote:
quoted hunk ↗ jump to hunk
+static inline int copy_to_user_gcs(unsigned long __user *addr,
+ unsigned long *val,
+ int count)
+{
+ int ret = -EFAULT;
+ int i;
+
+ if (access_ok((char __user *)addr, count * sizeof(u64))) {
+ uaccess_ttbr0_enable();
+ for (i = 0; i < count; i++) {
+ ret = gcssttr(addr++, *val++);
+ if (ret != 0)
+ break;
+ }
+ uaccess_ttbr0_disable();
+ }
+
+ return ret;
+}
I think it makes more sense to have a put_user_gcs() of a single
element. I've only seen it used with 2 elements in the signal code but
we could as well do two put_user_gcs() calls (as we do for other stuff
that we push to the signal frame).
--
Catalin
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel