[PATCH 5/6] uaccess: add force_uaccess_{begin,end} helpers
Christoph Hellwig
hch at lst.de
Tue Jul 14 03:12:11 EDT 2020
On Mon, Jul 13, 2020 at 03:19:42PM +0200, Geert Uytterhoeven wrote:
> > This used to set KERNEL_DS, and now it sets USER_DS, which looks wrong
> > superficially.
>
> Thanks for noticing, and sorry for missing that myself.
>
> The same issue is present for SuperH:
>
> - set_fs(KERNEL_DS);
> + oldfs = force_uaccess_begin();
>
> So the patch description should be:
>
> "Add helpers to wraper the get_fs/set_fs magic for undoing any damage
> done by set_fs(USER_DS)."
>
> and leave alone users setting KERNEL_DS?
Yes, this was broken. Fixed for the next version.
> > If the new behaviour is fine it suggests that the old behaviour was
> > wrong, or that this is superfluous and could go entirely.
> >
> > Geert?
>
> Nope, on m68k, TLB cache operations operate on the current address space.
> Hence to flush a kernel TLB entry, you have to switch to KERNEL_DS first.
>
> If we're guaranteed to be already using KERNEL_DS, I guess the
> address space handling can be removed. But can we be sure?
We can't be sure yet. But with a lot of my pending work we should be
able to get there in the not too far future.
More information about the linux-riscv
mailing list