From patchwork Sat May 30 13:08:38 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaswinder Singh Rajput X-Patchwork-Id: 27050 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n4UD93hb003523 for ; Sat, 30 May 2009 13:09:04 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758540AbZE3NI5 (ORCPT ); Sat, 30 May 2009 09:08:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757626AbZE3NI5 (ORCPT ); Sat, 30 May 2009 09:08:57 -0400 Received: from hera.kernel.org ([140.211.167.34]:50246 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757907AbZE3NI4 (ORCPT ); Sat, 30 May 2009 09:08:56 -0400 Received: from [192.168.1.2] (ABTS-MP-dynamic-192.36.168.122.airtelbroadband.in [122.168.36.192] (may be forged)) (authenticated bits=0) by hera.kernel.org (8.14.2/8.13.8) with ESMTP id n4UD8deP019123 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sat, 30 May 2009 13:08:42 GMT Subject: [PATCH] x86info: mtrr.c return if MTRR registers are not accessible From: Jaswinder Singh Rajput To: Dave Jones , Avi Kivity , KVM list Date: Sat, 30 May 2009 18:38:38 +0530 Message-Id: <1243688918.3623.4.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.24.5 (2.24.5-1.fc10) X-Virus-Scanned: ClamAV 0.93.3/9406/Sat May 30 04:15:35 2009 on hera.kernel.org X-Virus-Status: Clean Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org In some virtualization systems like KVM where MTRR registers are not accessible output looks like : MTRR registers: MTRRcap (0xfe): MTRRphysBase0 (0x200): MTRRphysMask0 (0x201): MTRRphysBase1 (0x202): MTRRphysMask1 (0x203): MTRRphysBase2 (0x204): MTRRphysMask2 (0x205): MTRRphysBase3 (0x206): MTRRphysMask3 (0x207): MTRRphysBase4 (0x208): MTRRphysMask4 (0x209): MTRRphysBase5 (0x20a): MTRRphysMask5 (0x20b): MTRRphysBase6 (0x20c): MTRRphysMask6 (0x20d): MTRRphysBase7 (0x20e): MTRRphysMask7 (0x20f): MTRRfix64K_00000 (0x250): MTRRfix16K_80000 (0x258): MTRRfix16K_A0000 (0x259): MTRRfix4K_C8000 (0x269): MTRRfix4K_D0000 0x26a: MTRRfix4K_D8000 0x26b: MTRRfix4K_E0000 0x26c: MTRRfix4K_E8000 0x26d: MTRRfix4K_F0000 0x26e: MTRRfix4K_F8000 0x26f: MTRRdefType (0x2ff): So better return for those cases. Signed-off-by: Jaswinder Singh Rajput --- mtrr.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/mtrr.c b/mtrr.c index 32b5959..b948f67 100644 --- a/mtrr.c +++ b/mtrr.c @@ -20,11 +20,19 @@ static void dump_mtrr(int cpu, int msr) void dump_mtrrs(struct cpudata *cpu) { + unsigned long long val = 0; unsigned int i; if (!(cpu->flags_edx & (X86_FEATURE_MTRR))) return; + /* + * If MTRR registers are not accessible like in some + * virtualization systems then return + */ + if (!read_msr(cpu->number, 0xfe, &val)) + return; + printf("MTRR registers:\n"); printf("MTRRcap (0xfe): ");