From patchwork Mon May 23 15:09:40 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 9131985 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E53E360761 for ; Mon, 23 May 2016 15:10:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DC50528236 for ; Mon, 23 May 2016 15:10:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D130128239; Mon, 23 May 2016 15:10:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1ED8128236 for ; Mon, 23 May 2016 15:10:51 +0000 (UTC) Received: from localhost ([::1]:48793 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b4rVJ-0002E9-Ii for patchwork-qemu-devel@patchwork.kernel.org; Mon, 23 May 2016 11:10:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37463) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b4rUj-00029n-If for qemu-devel@nongnu.org; Mon, 23 May 2016 11:10:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b4rUf-00042i-FO for qemu-devel@nongnu.org; Mon, 23 May 2016 11:10:13 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:33931) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b4rUe-00041i-Fx; Mon, 23 May 2016 11:10:09 -0400 Received: by mail-wm0-x242.google.com with SMTP id n129so16051125wmn.1; Mon, 23 May 2016 08:10:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=DPHBKX5SjQYS1pmLkVE8A5/K7xclTRf/JCttT5aS0Ns=; b=nGmGHijHqOvAequjmPh9bvZlW7W3bzBpsvGDV8oEKuZlSzsuj8UauE73E2l+YnA35G 03wV1+PVnROd+q2MbRxKFn5r7MCEm9N3vF4oimj6rbVJ/kG9XP0GM5f2oByyZYWbR8T9 SxnGWuxU7VyDrwiNX1yUCUXP5PNwdVNWFZmasl2tuqWuS/7xe/K9wpDhmwr8/8rxZWVJ zxxbfcCavRHSpV/VBJUarrPbyUhg8ks37jZSlJ+Ipt8QRtVc+1U/wiVO5aqVrizxz8Tr fOFGXo02QBrYRuGIa1ydBuQsceXFlryMX3lcGSC8vU0S4rcJfpCB91tOZCFgDLr+Uzjb T7xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=DPHBKX5SjQYS1pmLkVE8A5/K7xclTRf/JCttT5aS0Ns=; b=GG8tFSd50Q9LxpJPwGXB/duBTk6TW3Vbl+BAI9PBA7nAKuHF5Emze6GiLF75RMqFXE Eh3vU0XAhFNNlgorNEgdwoS6PFtUkq2D/KJxoYXz4D814/O0F1GQpozq5R5Xr1WLH0nP YZYfvRERyKkG8u5RTVOIs7a1bTZolc7cqW5IqvM5mrRa1j5frz3jvfoLaBSRqB1/CXNU KrDRKdJCLfgN3GTi3Jcz6aDMAX4TlRXHxYJ1YVHcccCct0JEBwXET17wYtKiZ1D9Lenw Mvrq3dBsk2VVm81lGeK69UJgpxAC546Gl+0XTTlL3LL8XLLxcQ+iOhfG5/yiw8B+Ckon gv0g== X-Gm-Message-State: AOPr4FUJilSszAdZF5DmaUICGdiI4+HQFWPdGt3+07rv4w5qqxHQshaUzqyqDMRqEPXHfw== X-Received: by 10.28.176.129 with SMTP id z123mr17297332wme.74.1464016207906; Mon, 23 May 2016 08:10:07 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-252-58.clienti.tiscali.it. [78.12.252.58]) by smtp.gmail.com with ESMTPSA id ac2sm19250359wjc.35.2016.05.23.08.10.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 May 2016 08:10:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 23 May 2016 17:09:40 +0200 Message-Id: <1464016199-43768-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1464016199-43768-1-git-send-email-pbonzini@redhat.com> References: <1464016199-43768-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 05/24] target-i386: key sfence availability on CPUID_SSE, not CPUID_SSE2 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP sfence was introduced before lfence and mfence. This fixes Linux 2.4's measurement of checksumming speeds for the pIII_sse algorithm: md: linear personality registered as nr 1 md: raid0 personality registered as nr 2 md: raid1 personality registered as nr 3 md: raid5 personality registered as nr 4 raid5: measuring checksumming speed 8regs : 384.400 MB/sec 32regs : 259.200 MB/sec invalid operand: 0000 CPU: 0 EIP: 0010:[] Not tainted EFLAGS: 00000246 eax: c15d8000 ebx: 00000000 ecx: 00000000 edx: c15d5000 esi: 8005003b edi: 00000004 ebp: 00000000 esp: c15bdf50 ds: 0018 es: 0018 ss: 0018 Process swapper (pid: 1, stackpage=c15bd000) Stack: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000206 c0241c6c 00001000 c15d4000 c15d7000 c15d4000 c15d4000 Call Trace: [] [] [] [] [] [] [] Code: 0f ae f8 0f 10 04 24 0f 10 4c 24 10 0f 10 54 24 20 0f 10 5c <0>Kernel panic: Attempted to kill init! Reported-by: Stefan Weil Fixes: 121f3157887f92268a3d6169e2d4601f9292020b Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini --- target-i386/translate.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target-i386/translate.c b/target-i386/translate.c index 8085467..731b10d 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -8008,6 +8008,11 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, } /* fallthru */ case 0xf9 ... 0xff: /* sfence */ + if (!(s->cpuid_features & CPUID_SSE) + || (prefixes & PREFIX_LOCK)) { + goto illegal_op; + } + break; case 0xe8 ... 0xef: /* lfence */ case 0xf0 ... 0xf7: /* mfence */ if (!(s->cpuid_features & CPUID_SSE2)