Re: [PATCH v3 1/4] riscv: implement user_access_begin() and families

From: Cyril Bur
Date: Wed Mar 19 2025 - 00:24:43 EST




On 15/3/2025 12:28 am, Alexandre Ghiti wrote:
Hi Cyril,


There is a bunch of checkpatch errors to fix, see https:// gist.github.com/linux-riscv-bot/98f23fd1b04d6da7c23c6cb18245a158

Why isn't there an implementation for unsafe_copy_from_user()? Let's take the following example:

user_access_begin()
unsafe_copy_from_user()
unsafe_get_user() <==== This one will fail since unsafe_copy_from_user() -> raw_copy_from_user() -> __asm_vector_usercopy() which enables and disables the SUM bit.
user_access_end()

Another thing is that with this patch, we lose the vectorized user access functions, can you fix that too?

I've just been looking at doing that. I think teasing out an 'unsafe' style vectorised version and shoehorning it into this patch will be too much.

Would it be possible for me to do this as a separate series? I'm motivated to have this happen - we have a vector unit, we'll definitely want to use it.

I will add that a 'standard' copy_to_user() would still find its way to calling raw_copy_to_user() and so could be vectorised if all other criteria are met.

Thanks,

Cyril


Thanks,

Alex