Re: [PATCH v4 07/36] arm64/gcs: Provide copy_to_user_gcs()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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).

-- 
Catalin



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux