Check the type of seg on line 267.

julia

---------- Forwarded message ----------
Date: Thu, 26 Jan 2017 05:24:40 +0800
From: kbuild test robot <fengguang...@intel.com>
To: kbu...@01.org
Cc: Julia Lawall <julia.law...@lip6.fr>
Subject: Re: [v3 PATCH 05/10] x86/insn-kernel: Add support to resolve 16-bit
    addressing encodings

In-Reply-To: <20170125202353.101059-6-ricardo.neri-calde...@linux.intel.com>

Hi Ricardo,

[auto build test WARNING on tip/auto-latest]
[also build test WARNING on v4.10-rc5 next-20170125]
[cannot apply to tip/x86/core]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Ricardo-Neri/x86-Enable-User-Mode-Instruction-Prevention/20170126-043345
:::::: branch date: 51 minutes ago
:::::: commit date: 51 minutes ago

>> arch/x86/lib/insn-kernel.c:267:6-9: WARNING: Unsigned expression compared 
>> with zero: seg < 0

git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 574de0de238ef30c816985006f02f7a1dbba92aa
vim +267 arch/x86/lib/insn-kernel.c

574de0de Ricardo Neri 2017-01-25  251           addr = (seg << 4) + 
regs_get_register(regs, addr_offset1);
574de0de Ricardo Neri 2017-01-25  252   } else {
574de0de Ricardo Neri 2017-01-25  253           ret = get_reg_offset_16(insn, 
regs, &addr_offset1,
574de0de Ricardo Neri 2017-01-25  254                                   
&addr_offset2);
574de0de Ricardo Neri 2017-01-25  255           if (ret < 0)
574de0de Ricardo Neri 2017-01-25  256                   goto out_err;
574de0de Ricardo Neri 2017-01-25  257           /*
574de0de Ricardo Neri 2017-01-25  258            * Don't fail on invalid offset 
values. They might be invalid
574de0de Ricardo Neri 2017-01-25  259            * because they are not 
supported. Instead, use them in the
574de0de Ricardo Neri 2017-01-25  260            * calculation only if they 
contain a valid value.
574de0de Ricardo Neri 2017-01-25  261            */
574de0de Ricardo Neri 2017-01-25  262           if (addr_offset1 >= 0)
574de0de Ricardo Neri 2017-01-25  263                   addr1 = 
regs_get_register(regs, addr_offset1);
574de0de Ricardo Neri 2017-01-25  264           if (addr_offset2 >= 0)
574de0de Ricardo Neri 2017-01-25  265                   addr2 = 
regs_get_register(regs, addr_offset2);
574de0de Ricardo Neri 2017-01-25  266           seg = 
__get_segment_selector_16(regs, insn, addr_offset1);
574de0de Ricardo Neri 2017-01-25 @267           if (seg < 0)
574de0de Ricardo Neri 2017-01-25  268                   goto out_err;
574de0de Ricardo Neri 2017-01-25  269           addr =  (seg << 4) + addr1 + 
addr2;
574de0de Ricardo Neri 2017-01-25  270   }
574de0de Ricardo Neri 2017-01-25  271   addr += insn->displacement.value;
574de0de Ricardo Neri 2017-01-25  272
574de0de Ricardo Neri 2017-01-25  273   return (void __user *)addr;
574de0de Ricardo Neri 2017-01-25  274  out_err:
574de0de Ricardo Neri 2017-01-25  275   return (void __user *)-1;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to