On Mon, Aug 07, 2023 at 11:00:12PM +0100, Mark Brown wrote:
+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).