Re: [v2 5/7] x86: Add emulation code for UMIP instructions

Masami Hiramatsu <[email protected]>
Newsgroups org.kernel.vger.linux-msdos,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Fri, 23 Dec 2016 17:37:43 -0800
Ricardo Neri <[email protected]> wrote:

> +static int __identify_insn(struct insn *insn)
> +{
> +	/* by getting modrm we also get the opcode */
> +	insn_get_modrm(insn);
> +	if (insn->opcode.bytes[0] != 0xf)
> +		return -EINVAL;
> +
> +	if (insn->opcode.bytes[1] == 0x1) {
> +		switch (X86_MODRM_REG(insn->modrm.value)) {
> +		case 0:
> +			return UMIP_SGDT;
> +		case 1:
> +			return UMIP_SIDT;
> +		case 4:
> +			return UMIP_SMSW;
> +		default:
> +			return -EINVAL;
> +		}
> +	} else if (insn->opcode.bytes[1] == 0x0) {
> +		if (X86_MODRM_REG(insn->modrm.value) == 0)
> +			return UMIP_SLDT;
> +		else if (X86_MODRM_REG(insn->modrm.value) == 1)
> +			return UMIP_STR;
> +		else
> +			return -EINVAL;
> +	}

gcc detected an error here, you may need return "-EINVAL".

Thanks,



-- 
Masami Hiramatsu <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.