This series fixes a bunch of metag user copy fault handling bugs, and finishes with a couple of minor cleanups. Thanks to Al Viro for pointing out some of the questionable code in the first place. Patches 1-7 are fixes, marked for stable. Well, patch 1 isn't really a fix but is needed by patch 4. Patch 1 and 4 have already been posted as part of my "metag/usercopy: Support RAW_COPY_USER" series, so I'm treating this series as a v2. Patch 8 cleans up the layout of some of the inline assembly to make it more readable, and patch 9 simplifies one of the fixups. Changes in v2 (compared against "metag/usercopy: Support RAW_COPY_USER"): - Patch 4: Drop the ADDs to increment destination pointer in fixup code now that the error checking is more complete (see patch 2) (Al). Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: linux-metag@xxxxxxxxxxxxxxx Cc: stable@xxxxxxxxxxxxxxx James Hogan (9): metag/usercopy: Drop unused macros metag/usercopy: Fix alignment error checking metag/usercopy: Add early abort to copy_to_user metag/usercopy: Zero rest of buffer from copy_from_user metag/usercopy: Set flags before ADDZ metag/usercopy: Fix src fixup in from user rapf loops metag/usercopy: Add missing fixups metag/usercopy: Reformat rapf loop inline asm metag/usercopy: Simplify rapf loop fixup corner case arch/metag/include/asm/uaccess.h | 15 +- arch/metag/lib/usercopy.c | 452 +++++++++++--------------------- 2 files changed, 173 insertions(+), 294 deletions(-) -- git-series 0.8.10