From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x224j236dND0EO/C455Qs0oNDN6oBEM57kdHs/B2RjzSjJVGSo+Iq4d8c/lkNjQOHaGN4EAm3 ARC-Seal: i=1; a=rsa-sha256; t=1516611117; cv=none; d=google.com; s=arc-20160816; b=hMjc5dopu4TAM78Shg255R5CFlw/Fc4N2TFrVHEkDtsKWX3IelYEQiTfu+tbZDTOh4 kHGFbQGHEUt8M2KrtkMtOGomdr2VnDXmniTIKKZrPzpOiQ1ut4suzTxz5kGcZUEIkR5U wHaW/r0zwXKknRXvufkkubfBePT6rkLoVt/fPZNmBGZoe6vrWRq5Y2qa67lU6z7nHjLt /xcpQIzuYyHK9Ijh0zOfiCIqo4fPROylwOWCQtlFk8tDlCFr2K82s1YlBxLgxiLbSi+4 VduTj+vdWAqzYFz0fsvdiHqraQqj8wLK2rXOOvR+dviIEgCTcFfklzenLOpU/p/DUJoy r4Ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=4ygK80dcP5N1R+HqOBP5nKZIZxGdW1lEaOOO2LEXd6Q=; b=JjbOLKSli2aFnT7dJSZS+T/buMgFg5CCmfsGB0FlvZenSxiDjFxiH7ovjp3rLOMmJI 23z+q3UWXpbOZOjzMkrj9o1YyK9LUJOeFWqBEPCsJA3iE9w2PzyUVUImLGAztbKQ/szw YXntkCGt+M1H2XO4EOMNzlv+sEUSCfSJSfSa/d2yk1XYJCImvb3DMfKnS5BbJ05BRtCo cnf23zqBXRptkKSDSDpE7M3y/dZebO5sx0ZBfbt/PWwV8lCfszLq7ZigOrOfi4ZYsfb0 xputC7cg40jKULt1FPdjpkT5q1ksERLHQpTyoRA0X3OuOKMI1ngjtrrzdsYAE3JmjA/c 7H4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Len Brown , Thomas Gleixner , peterz@infradead.org, Bin Gao Subject: [PATCH 4.14 40/89] x86/tsc: Future-proof native_calibrate_tsc() Date: Mon, 22 Jan 2018 09:45:20 +0100 Message-Id: <20180122083958.657599898@linuxfoundation.org> X-Mailer: git-send-email 2.16.0 In-Reply-To: <20180122083954.683903493@linuxfoundation.org> References: <20180122083954.683903493@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-LABELS: =?utf-8?b?IlxcU2VudCI=?= X-GMAIL-THRID: =?utf-8?q?1590282018914889052?= X-GMAIL-MSGID: =?utf-8?q?1590282018914889052?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Len Brown commit da4ae6c4a0b8dee5a5377a385545d2250fa8cddb upstream. If the crystal frequency cannot be determined via CPUID(15).crystal_khz or the built-in table then native_calibrate_tsc() will still set the X86_FEATURE_TSC_KNOWN_FREQ flag which prevents the refined TSC calibration. As a consequence such systems use cpu_khz for the TSC frequency which is incorrect when cpu_khz != tsc_khz resulting in time drift. Return early when the crystal frequency cannot be retrieved without setting the X86_FEATURE_TSC_KNOWN_FREQ flag. This ensures that the refined TSC calibration is invoked. [ tglx: Steam-blastered changelog. Sigh ] Fixes: 4ca4df0b7eb0 ("x86/tsc: Mark TSC frequency determined by CPUID as known") Signed-off-by: Len Brown Signed-off-by: Thomas Gleixner Cc: peterz@infradead.org Cc: Bin Gao Link: https://lkml.kernel.org/r/0fe2503aa7d7fc69137141fc705541a78101d2b9.1513920414.git.len.brown@intel.com Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/tsc.c | 2 ++ 1 file changed, 2 insertions(+) --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c @@ -612,6 +612,8 @@ unsigned long native_calibrate_tsc(void) } } + if (crystal_khz == 0) + return 0; /* * TSC frequency determined by CPUID is a "hardware reported" * frequency and is the most accurate one so far we have. This