Received: by 10.192.165.148 with SMTP id m20csp2989063imm; Sun, 29 Apr 2018 11:21:43 -0700 (PDT) X-Google-Smtp-Source: AB8JxZofQflQKJvsRbkGIrmA8BKkwjsXd6v7jyuWFXujn1dCet+Rm+cS1kVECmZKaA9Ks7vSQTop X-Received: by 2002:a17:902:9898:: with SMTP id s24-v6mr9818012plp.51.1525026103247; Sun, 29 Apr 2018 11:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525026103; cv=none; d=google.com; s=arc-20160816; b=TAp1K4bKSaATQ8nrj84YeCsGaBWJ7/B3srTpQGg4cuYQlcFKK/rmRhTmFwl8fRIAd/ 1WEsj7+CeBy/uD6yo9t1aLOvHGmx16TmRB5nG7wdypXRdTPRkUqkbL4/BgE9PBu3deWi 2TJR6fZ4zqpjZY9LMjRr6mEQzS86w7h/6hUcZJAW34Q2ctKb+ja9L4/wIy/BNPLrPv7T MCsCZZfucdGJAiHPPHiG6MewHmAYJDPjOSc7779C6GyDlzk1bfqFoAiT0TzGrwx9TlG2 K5iNtYEqhYFK2OwvRQWKzimRueF9akhKDWRxH4GgSwIOhFdn6yLwStO08rWymYai5eX4 c7kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=aNsGOUF58WvdVWt35x+RdwQFxRn1sXz0eVvlixeIMTY=; b=zBT25wc3gUvGtzgAuC0QSeGbNR49zu7Cl3UNojtSt2hdO28GJ6CEDFDdQMSknVEjjG T7Q21Q95bAFrOin13JMHcRpgKCignlX2ShQgh6PNKx5Y0+lIn8IFnXq0hyfIOJdmMm+n /13qByhQywWRnhS+Sp6PuSR0fCuonhzenPqcuRCDYpa5eSG6mr7nVA97ISCmqNnweKwE Q/hOKm/ySw+cBFcrD2WZnYThCsnzkSsMwHOGn/IE5rXv9XLN2inJPLGLqqSWMWXuQbC7 en6INbnNc3XC9zbOEHoOl4Fuh43U0eBhBxthatgNDbEnstnQq5tAzEvyF9OlUHownX/S vkvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rYVWhXIl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t23-v6si4821751ply.237.2018.04.29.11.21.29; Sun, 29 Apr 2018 11:21:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rYVWhXIl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754126AbeD2SUc (ORCPT + 99 others); Sun, 29 Apr 2018 14:20:32 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:45790 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754017AbeD2SUa (ORCPT ); Sun, 29 Apr 2018 14:20:30 -0400 Received: by mail-lf0-f68.google.com with SMTP id y14-v6so9008541lfy.12; Sun, 29 Apr 2018 11:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=aNsGOUF58WvdVWt35x+RdwQFxRn1sXz0eVvlixeIMTY=; b=rYVWhXIlmjl1gnK2SPsmANh/r0RJhKCIz9w8JS3qjikNL3AnM1/zFLdNe7pjDbyFWH QwXfNxVUxWt62Bv/4Byw3KXGoHIV2wg9BOQecNWYvf2UKpnZlVDb0+0pdghm4dediv1m M5/wrmk5ftuIUCe1YIKA4NzEkTH3Dz96s6qizBJgIUNg3NU4wN5SEhNZqlU2mLS6sGto EZVdJxgtzkhjsoDOAa0+/HhTFMFi+LSSWlLXxZapb1xXVvvpbCbHdMJo6pheOyZAjNbn S+G2/GmGPo9SP2UUx7P5Na2YIOTiq1gShaysFYqH690s1N2Hpn+p1mMMUQZuHVcP6sH5 ze/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=aNsGOUF58WvdVWt35x+RdwQFxRn1sXz0eVvlixeIMTY=; b=hxYwq+6neY/4xL5nCS+JNHskKuj7BukdjdV70YNa/YmPe3gxmQ2DyFtEdhwwxDVX8y 1tiUn6lEgYOBtqumJ+unL68ljOWLx5KzJTVjDnqA9++ajQrhBWLDnvrV4BywSkWAn3yV NMA4l18KidpUZVD/NRCOhMtvd+4yyrrzQx7YHb/3KuVmRwl3I5ZvxiDX+ErWcjKfk+Ai 3eHzEKVRP5zA0ui5/DvvZ5FH1zngADKEUxKzzQ0TVxLKVsQAIdJJfsymskfhv9pzs08x fsgOW+I+ndaSvwwZDV8ZF+8/xdSlpzz33fEEbKfgSNmr8mVmOdikxyqwvczOe6sJdklN /yPg== X-Gm-Message-State: ALQs6tAMjRjYGXZ3EP1853FhQxJzFfsynsG9XIOWFrrwGR5Q8DfkxW0L pi8jvkjPMDpwNDlk+496Ct6PffUWC9S0X4tRJw== X-Received: by 2002:a19:1220:: with SMTP id h32-v6mr5085218lfi.62.1525026028757; Sun, 29 Apr 2018 11:20:28 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a19:510d:0:0:0:0:0 with HTTP; Sun, 29 Apr 2018 11:19:58 -0700 (PDT) In-Reply-To: <2db436f9-a335-9e25-d177-23095c2527ff@roeck-us.net> References: <1524966879-9424-1-git-send-email-linux@roeck-us.net> <1524966879-9424-2-git-send-email-linux@roeck-us.net> <2db436f9-a335-9e25-d177-23095c2527ff@roeck-us.net> From: Gabriel C Date: Sun, 29 Apr 2018 20:19:58 +0200 Message-ID: Subject: Re: [PATCH 2/2] hwmon: (k10temp) Use API function to access System Management Network To: Guenter Roeck Cc: Thomas Gleixner , Clemens Ladisch , X86 ML , Jean Delvare , LKML , linux-hwmon@vger.kernel.org, Borislav Petkov , Yazen Ghannam , Brian Woods Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018-04-29 19:46 GMT+02:00 Guenter Roeck : > On 04/28/2018 06:54 PM, Guenter Roeck wrote: >> >> The SMN (System Management Network) on Family 17h AMD CPUs is also >> accessed >> from other drivers, specifically EDAC. Accessing it directly is racy. >> On top of that, accessing the SMN through root bridge 00:00 is wrong on >> multi-die CPUs and may result in reading the temperature from the wrong >> die. Use available API functions to fix the problem. >> >> For this to work, also change the Raven Ridge PCI device ID to point to >> Data Fabric Function 3, since this ID is used by the API functions to >> find the CPU node. >> >> Signed-off-by: Guenter Roeck >> --- >> drivers/hwmon/k10temp.c | 11 ++++++----- >> 1 file changed, 6 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c >> index b06bb1f90853..00e785afae0d 100644 >> --- a/drivers/hwmon/k10temp.c >> +++ b/drivers/hwmon/k10temp.c >> @@ -23,6 +23,7 @@ >> #include >> #include >> #include >> +#include >> #include >> MODULE_DESCRIPTION("AMD Family 10h+ CPU core temperature monitor"); >> @@ -40,8 +41,8 @@ static DEFINE_MUTEX(nb_smu_ind_mutex); >> #define PCI_DEVICE_ID_AMD_17H_DF_F3 0x1463 >> #endif >> -#ifndef PCI_DEVICE_ID_AMD_17H_RR_NB >> -#define PCI_DEVICE_ID_AMD_17H_RR_NB 0x15d0 >> +#ifndef PCI_DEVICE_ID_AMD_17H_RR_DF_F3 >> +#define PCI_DEVICE_ID_AMD_17H_RR_DF_F3 0x14eb > > > This should have been 0x15eb. I'll resend after a week or so, waiting for > more feedback. re-tested with that too .. Doesn't seems to matter here .. with original patch: crazy@ant:~/Work/Linux/linux$ sensors k10temp-pci-00f3 Adapter: PCI adapter Tdie: +22.2=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.2=C2=B0C k10temp-pci-00e3 Adapter: PCI adapter Tdie: +23.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.8=C2=B0C k10temp-pci-00d3 Adapter: PCI adapter Tdie: +23.0=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.0=C2=B0C k10temp-pci-00c3 Adapter: PCI adapter Tdie: +25.0=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +25.0=C2=B0C k10temp-pci-00fb Adapter: PCI adapter Tdie: +22.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.8=C2=B0C k10temp-pci-00eb Adapter: PCI adapter Tdie: +23.2=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.2=C2=B0C k10temp-pci-00db Adapter: PCI adapter Tdie: +22.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.8=C2=B0C k10temp-pci-00cb Adapter: PCI adapter Tdie: +22.6=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.6=C2=B0C now with 0x15eb crazy@ant:~/Work/Linux/linux$ sudo rmmod k10temp crazy@ant:~/Work/Linux/linux$ git grep -w PCI_DEVICE_ID_AMD_17H_RR_DF_F3 arch/x86/kernel/amd_nb.c:#define PCI_DEVICE_ID_AMD_17H_RR_DF_F3 0x15eb arch/x86/kernel/amd_nb.c: { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_RR_DF_F3) }, drivers/hwmon/k10temp.c:#ifndef PCI_DEVICE_ID_AMD_17H_RR_DF_F3 drivers/hwmon/k10temp.c:#define PCI_DEVICE_ID_AMD_17H_RR_DF_F3 0x15eb drivers/hwmon/k10temp.c: { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_RR_DF_F3) }, crazy@ant:~/Work/Linux/linux$ sudo insmod ./drivers/hwmon/k10temp.ko crazy@ant:~/Work/Linux/linux$ sensors k10temp-pci-00f3 Adapter: PCI adapter Tdie: +22.2=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.2=C2=B0C k10temp-pci-00e3 Adapter: PCI adapter Tdie: +23.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.8=C2=B0C k10temp-pci-00d3 Adapter: PCI adapter Tdie: +23.0=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.0=C2=B0C k10temp-pci-00c3 Adapter: PCI adapter Tdie: +25.0=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +25.0=C2=B0C k10temp-pci-00fb Adapter: PCI adapter Tdie: +22.9=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.9=C2=B0C k10temp-pci-00eb Adapter: PCI adapter Tdie: +23.2=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +23.2=C2=B0C k10temp-pci-00db Adapter: PCI adapter Tdie: +22.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.8=C2=B0C k10temp-pci-00cb Adapter: PCI adapter Tdie: +22.8=C2=B0C (high =3D +70.0=C2=B0C) Tctl: +22.8=C2=B0C > >> #endif >> /* CPUID function 0x80000001, ebx */ >> @@ -136,8 +137,8 @@ static void read_tempreg_nb_f15(struct pci_dev *pdev= , >> u32 *regval) >> static void read_tempreg_nb_f17(struct pci_dev *pdev, u32 *regval) >> { >> - amd_nb_index_read(pdev, PCI_DEVFN(0, 0), 0x60, >> - F17H_M01H_REPORTED_TEMP_CTRL_OFFSET, regval); >> + amd_smn_read(amd_pci_dev_to_node_id(pdev), >> + F17H_M01H_REPORTED_TEMP_CTRL_OFFSET, regval); >> } >> static ssize_t temp1_input_show(struct device *dev, >> @@ -323,7 +324,7 @@ static const struct pci_device_id k10temp_id_table[]= =3D >> { >> { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, >> { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F3) }, >> { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) }, >> - { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_RR_NB) }, >> + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_RR_DF_F3) }, >> {} >> }; >> MODULE_DEVICE_TABLE(pci, k10temp_id_table); >> >