From patchwork Mon Jan 29 02:48:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Rui" X-Patchwork-Id: 866990 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zVDVd2trwz9s9Y for ; Mon, 29 Jan 2018 13:49:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751394AbeA2CtM (ORCPT ); Sun, 28 Jan 2018 21:49:12 -0500 Received: from mga07.intel.com ([134.134.136.100]:58588 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751032AbeA2CtM (ORCPT ); Sun, 28 Jan 2018 21:49:12 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jan 2018 18:49:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,429,1511856000"; d="scan'208";a="23003056" Received: from qingbing-mobl.ccr.corp.intel.com (HELO rzhang1-surface.ccr.corp.intel.com) ([10.255.30.17]) by orsmga003.jf.intel.com with ESMTP; 28 Jan 2018 18:49:09 -0800 From: Zhang Rui To: alexandre.belloni@free-electrons.com, linux-rtc@vger.kernel.org Cc: gabriele.mzt@gmail.com, rui.zhang@intel.com, x86@kernel.org, tglx@linutronix.de Subject: [PATCH 1/4] X86: check X86_VENDOR_ANY correctly Date: Mon, 29 Jan 2018 10:48:45 +0800 Message-Id: <1517194128-5326-1-git-send-email-rui.zhang@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org static const struct x86_cpu_id foo[] = { { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_ANY }, {} }; x86_match_cpu(foo) returns NULL with Intel processors. This is wrong because, unlike X86_FAMILY_ANY/X86_MODEL_ANY/X86_FEATURE_ANY, X86_VENDOR_ANY is 0xffff, rather than 0. Fix x86_match_cpu() by checking X86_VENDOR_ANY explicitly. cc: x86@kernel.org cc: tglx@linutronix.de Signed-off-by: Zhang Rui --- arch/x86/kernel/cpu/match.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/match.c b/arch/x86/kernel/cpu/match.c index 3fed388..72f363e 100644 --- a/arch/x86/kernel/cpu/match.c +++ b/arch/x86/kernel/cpu/match.c @@ -34,7 +34,7 @@ const struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id *match) const struct x86_cpu_id *m; struct cpuinfo_x86 *c = &boot_cpu_data; - for (m = match; m->vendor | m->family | m->model | m->feature; m++) { + for (m = match; (m->vendor != X86_VENDOR_ANY) | m->family | m->model | m->feature; m++) { if (m->vendor != X86_VENDOR_ANY && c->x86_vendor != m->vendor) continue; if (m->family != X86_FAMILY_ANY && c->x86 != m->family)