m68knommu: switch to using asm-generic/uaccess.h
authorGreg Ungerer <gerg@linux-m68k.org>
Wed, 9 Sep 2020 01:27:27 +0000 (11:27 +1000)
committerGreg Ungerer <gerg@linux-m68k.org>
Mon, 5 Oct 2020 11:51:31 +0000 (21:51 +1000)
commita27bc11f4b7c54a95a977a8e8b15c84dac804bd4
tree5f33c52bfe54812bd1bcad330135b2311ccb3ac6
parent549738f15da0e5a00275977623be199fbbf7df50
m68knommu: switch to using asm-generic/uaccess.h

Switch to using the asm-generic/uaccess functions for non-MMU builds.
Remove all the m68knommu local specific uaccess defines and macros.

There is nothing so special about the m68knommu targets that they cannot
use all of the asm-generic uaccess support. Using the asm-generic
uaccess definitions also resolves some of the existing problems with
missing __user annotations in the m68knommu specific functions.

The elimination of all of the contents of uaccess_no.h means we can fold
the uaccess_mm.h back into uaccess.h - and just have the single file
now.

The resulting generated code ends up being slightly smaller (by a few
hundred bytes) due to the compilers ability to better optimize load
and stores without forcing its hand with asm statements.

Specifically trivial cases like this contrived example:

    get_user(x, ptr);
    x++;
    put_user(x, ptr);

end up now being optimized to a single instruction on m68k. More
generally the compiler can avoid using a temporary register in many
cases as well.

Reported-by: kernel test robot <lkp@intel.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
arch/m68k/Kconfig
arch/m68k/include/asm/uaccess.h
arch/m68k/include/asm/uaccess_mm.h [deleted file]
arch/m68k/include/asm/uaccess_no.h [deleted file]