Commit 21d0798a authored by Zhen Lei's avatar Zhen Lei Committed by Russell King (Oracle)
Browse files

ARM: 9276/1: Refactor dump_instr()



1. Rename local variable 'val16' to 'tmp'. So that the processing
   statements of thumb and arm can be aligned.
2. Fix two sparse check warnings: (add __user for type conversion)
   warning: incorrect type in initializer (different address spaces)
      expected unsigned short [noderef] __user *register __p
      got unsigned short [usertype] *
3. Prepare for the next patch to avoid repeated judgment.
   Before:
   if (!user_mode(regs)) {
           if (thumb)
           else
   } else {
           if (thumb)
           else
   }

   After:
   if (thumb) {
           if (user_mode(regs))
           else
   } else {
           if (user_mode(regs))
           else
   }

Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
parent 59e2cf8d
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -178,19 +178,20 @@ static void dump_instr(const char *lvl, struct pt_regs *regs)
	for (i = -4; i < 1 + !!thumb; i++) {
		unsigned int val, bad;

		if (!user_mode(regs)) {
		if (thumb) {
				u16 val16;
				bad = get_kernel_nofault(val16, &((u16 *)addr)[i]);
				val = val16;
			} else {
				bad = get_kernel_nofault(val, &((u32 *)addr)[i]);
			}
			u16 tmp;

			if (user_mode(regs))
				bad = get_user(tmp, &((u16 __user *)addr)[i]);
			else
				bad = get_kernel_nofault(tmp, &((u16 *)addr)[i]);

			val = tmp;
		} else {
			if (thumb)
				bad = get_user(val, &((u16 *)addr)[i]);
			if (user_mode(regs))
				bad = get_user(val, &((u32 __user *)addr)[i]);
			else
				bad = get_user(val, &((u32 *)addr)[i]);
				bad = get_kernel_nofault(val, &((u32 *)addr)[i]);
		}

		if (!bad)