Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751565AbbH1KH2 (ORCPT ); Fri, 28 Aug 2015 06:07:28 -0400 Received: from mail-bl2on0054.outbound.protection.outlook.com ([65.55.169.54]:50074 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750733AbbH1KH0 (ORCPT ); Fri, 28 Aug 2015 06:07:26 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NTSES5-08-VVL-02 X-M-MSG: Date: Fri, 28 Aug 2015 18:05:57 +0800 From: Huang Rui To: Guenter Roeck CC: Borislav Petkov , Jean Delvare , "Andy Lutomirski" , Andreas Herrmann , Thomas Gleixner , "Peter Zijlstra" , Ingo Molnar , "Rafael J. Wysocki" , Len Brown , John Stultz , =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , , , , Andreas Herrmann , Aravind Gopalakrishnan , Borislav Petkov , "Fengguang Wu" , Aaron Lu , Tony Li Subject: Re: [PATCH 03/15] hwmon, fam15h_power: refactor attributes for dynamically added Message-ID: <20150828100555.GA2032@hr-slim.amd.com> References: <1440662866-28716-1-git-send-email-ray.huang@amd.com> <1440662866-28716-4-git-send-email-ray.huang@amd.com> <55DF22BA.7080306@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <55DF22BA.7080306@roeck-us.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(3050300001)(189002)(164054003)(479174004)(377454003)(24454002)(199003)(110136002)(47776003)(50466002)(87936001)(68736005)(83506001)(97756001)(46102003)(19580395003)(97736004)(33656002)(92566002)(4001540100001)(4001350100001)(77096005)(50986999)(77156002)(5007970100001)(54356999)(189998001)(76176999)(86362001)(62966003)(2950100001)(105586002)(101416001)(106466001)(46406003)(64706001)(53416004)(5001830100001)(5003600100002)(23726002)(5001860100001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0855;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0855;2:VT43xwkRcsDxKV/j4M5DIdqo56EIWbQO8oc/IeN/5kNfL32/XQqFZkjpPvgSg4fRHzzhYCJYpRo69RZrnAyXA/B2rU2+tfsinOKtvsSKXjPpDPjks6Fkfmn+gs5fhSAV0CPDl55g74GpREFUIzbdbILK+mbaOH+JtI3kMGXtMno=;3:WGIE+OlGXWVUWnlZk1I4TZKe9vtOUgCttJFc1jmQpmfiJCPz80pZj2mio9hSJvtGtwkeJZRWq6YQn+a7OgIPUs7uogbtAihIi/alYEJx3f2MvKP2kLEiLRqKcIerCAvOmoX0JS/j47L//1/eubHC5jKUNFXCA63rnn7V17yB/EgZJfebzEjnnN27WRREYN13Gxpkxnu4YXNlZ/de8kSfs320Q/uS9PTujY7ExuMseVA5ceNkrrmKkr2XGZGdt9tj;25:fCqBuVBo0QKWJyC1Fe2phqml0qWo03/pLJMkxrTcZzXcwZbHu3opqVWXK4iEfmEHbB4ie0uBz1AmfK8USqJdUa4xdKM8fn7V1DXipZUWaK2NmqaFZtPCsdq25+1Em0588YyyGoZ8++yjS/lHX2F7nchm18Z+pHOaSQwSLWscMqtnFz9QTHT9kt365SLs/CiN9uiobL8LsPKCBdMBMxRM8DSXV4qv6601PZGAZ2Q4tE+tx2FpvqAtDu+VtO98oTvjla3kk9dq3oCFDd5OKpo/gg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0855; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0855;20:NGSixiEZVx+cNMsJYiJi/lKczQHvyKOXACZS6qslRT/BmZmhGfxuYD1tW7fHFg76/vy5/aKj4qPtLpEO5pSgR1nOh9iLnatDEoK4y93vI3nwYHyQW20/2NcUnM0gI53hoHqgaomE1Q6Y0+iu+0lxcZ7CJF5t23s7Uw4sk0ZK2081k8f5FVkM8BCaUUMRNJAX8ChGdeBNQacQrjcYUuPSnVIa/GZc3bhNHDRB/M9IZwbsv1PKfFKI/bFZA9Ord0JOr0cnX4EDYkQd7M21O1gV38B7a0zHoquOVAq9hS5X3TwAqRtiNtKlBK+DG0v2j18+yzS1aqYX42tGbVebXwwV5YgFtiMKiMcRI4fc7hpalxEvXii5mjQvGFp/nqRlVVbx016YRzcWu48xyhMirYufdSBR4M+qckKCIcvOZjPm+2CvGCE9o3V5tou3KEx/MrjSS992i5TZlNyfWcUpmNoQrrwU4hpC3uuncj4TH8UV+WFVc8HyRZvUTOzhF+VVBu7L;4:qIA2RkX4Rti8IkOcOR3tam4bZOELVXm9cmAbfucAqrSaopQNOVAv7sXg6MAXsVMoUu3xImhnxXfCx7oj/VzMHtd8sQlVG4tTdSpX9Hbg38pE8zDhK1BIGcdmvH/zbuB0fQns4MKDj6iphIH/OvaYKsLTdlb8OioFcL0AV3dLJtGHlms+ZsixF0AgN+lrpWXmxv3Tgfyd1XzV3KcX0NxR5skgRolEs0t8dqGcfhn42rldabWLTTscVdpDmylg83o+Mp9blskWHqZG/iz3CeIwxfl+w4CkAK6Qc2IDMdt0QcP3f7wQH1+yHR+kBXy7G5S8aGl9vygrzJXbPHgB0upKEA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(8121501046)(5005006)(3002001);SRVR:CY1PR12MB0855;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0855; X-Forefront-PRVS: 0682FC00E8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR12MB0855;23:8x2AEkK4JsySdlqzO6lIZ4Qwra2ljLQuZr/nvhApz?= =?us-ascii?Q?Mn0GVvfGKQvo32gawxt0kIv9u8XNwxZiUfBLfBWTG/AxR0n9L1wmeUBpiq0D?= =?us-ascii?Q?u6HtI23ht9yggxRs0yiKKPoP+/U1nCAcluwee7Oy4DoE0NoJZVhZWXvLZ4iY?= =?us-ascii?Q?6NrD+b3tyRktZC3/dp3/74dq1tc482KwFRew0bz8S8UzVNqnz0+mygROydi7?= =?us-ascii?Q?NIt/5uiJz2wLTLBLLzwyg3Hh31gbXSnY1UBJYtiaS+wUZ1jhi+OyMCYDd1Jc?= =?us-ascii?Q?kMwkukukE3tt/0Q5nm231hWm9Zx4vSiQdzsGLGF2goAxQ1xixuoxcpbolkDa?= =?us-ascii?Q?FV12qRL0hz4HVAdQyWFPUAjIxTGS8JPOGlDFq8DcffcMtjoaR24LJkoJrNuf?= =?us-ascii?Q?898qJfiwwNDBhNB7JgreCN5gIHFkiibkZZY1sJuCikgjAZL7Ml+ziwzNuqg1?= =?us-ascii?Q?IemVWnsCDJpKYamruirc9WR6Dlnnsm1AzOSO6q6KpQQEd+1CIGSNW43TgJ5a?= =?us-ascii?Q?L54FaZLXbv/A97USAeCi2RL46/AVf4e1UrMLInG98cBRqdBIq1jiNIw4KMwL?= =?us-ascii?Q?30AeF2zCmxPahtBMQecHA81Kf6fM7IoR91oXtsFCxzK8EOI2snceWstnxrF0?= =?us-ascii?Q?HtrKv+wYIpGCE4WMUG81NYyVcA2YXDFTITv0MTpARzKR9M0fHqt9hsPnOhss?= =?us-ascii?Q?gcZMPIrKz95CA8OvodpZwFJZ4CFSnmIOb6xCVtT9YgwWp+5A4615zmH9TgSf?= =?us-ascii?Q?Yb4tTeyARq9gDOdatmv9H2GvvI2Ae/FyIKoe+CB8witJvPib7xGA6Je7Pjnr?= =?us-ascii?Q?8LYhwyb5ahqbLhUuZViXNrih82WShbtcw3g7fYwnUIGODmR9TwJrr8IET9XI?= =?us-ascii?Q?6WWgkt4lECAp5X9y8WdTeqV8qHN17xczq1uZ7hSUlDqHbO5FfZVUXaICHaar?= =?us-ascii?Q?VTJ/Mpvt+0o++6EmLlHojXe2wnEK/5tlDpCsKUKUQ7o4YZcNB4kUY8gkshTg?= =?us-ascii?Q?wKIpP0WBfvqa8Q08GJ/3zIRRH3R9GqfcMh7YLj96mnuXsZY54+c3fGCniSJj?= =?us-ascii?Q?nTzUkQqtrGC/StlsgnUkAAnqYcSrw1azy8waeZXFmS8UlnT23GIglboeiwPU?= =?us-ascii?Q?s1CHo0NgS8doKEPy7aVVki5Wh06JFCCDdyiHpST90g3B0yUea8hUhEx1uHt0?= =?us-ascii?Q?Jmabh55m1rk4Bk=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0855;5:yatPpYPnDEZSDAQ+mO537Ouwf63k38Ya0bWasRN4wTFxmkBgwkyemBwmBnEH5h0dJZk7HuAaKlJ7jY1EBrHpwDaylYm1QG0oy15tvvLW/wWkJV0oN0m4ohmrY2wzSF4geqXzhQgbvFUPMF17176ayQ==;24:7v95x0itAD35aQSFoYUcZ56jkfiv6qJSkcvo7m7FNRkMzM9lZjJe145amiMdqZmZUoIsqPV0LwRTlwPExWaRUaiwDfvFpRWpbAG11Sn0uuo=;20:gJPXCxHjIVkgdNhiOdJsnpLep7Y5l5hUpc0SGG5Xh6X6fg1pj1WaIUh8Fbo8e50SNUoILeYi99qE+087udboJQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2015 10:07:19.5919 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0855 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2191 Lines: 64 On Thu, Aug 27, 2015 at 07:46:18AM -0700, Guenter Roeck wrote: > On 08/27/2015 01:07 AM, Huang Rui wrote: > > > >diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c > >index 820adf1..65ffb06 100644 > >--- a/drivers/hwmon/fam15h_power.c > >+++ b/drivers/hwmon/fam15h_power.c > >@@ -41,6 +41,8 @@ MODULE_LICENSE("GPL"); > > #define REG_TDP_RUNNING_AVERAGE 0xe0 > > #define REG_TDP_LIMIT3 0xe8 > > > >+#define FAM15H_MIN_POWER_GROUPS 2 > > This should be something like FAM15H_MIN_NUM_ATTRS. > There is only one group with a variable number of attributes. > Right, it should be attribute. I will rename this macro. > >+ n = 0; > >+ fam15h_power_attrs[n++] = &dev_attr_power1_crit.attr; > >+ if (boot_cpu_data.x86 == 0x15 && boot_cpu_data.x86_model <= 0xf) > >+ fam15h_power_attrs[n++] = &dev_attr_power1_input.attr; > >+ > >+ fam15h_power_group.attrs = fam15h_power_attrs; > >+ > Assuming this will be called for each CPU in a multi-CPU system, > this will be overwritten each time a new CPU comes online. > fam15h_power_group and fam15h_power_groups probably need to be moved > into fam15h_power_data to avoid that. In essence, there should only > be read-only static variables. Everything else should be allocated. > Yes, setting fam15h_power_group as static and not const would cause to overwrite in multi-CPU platforms. I don't have to set it as read-only because I use dynamical attributes. :) I will move them into fam15h_power_data at v2. > >+ return 0; > >+} > > > > static bool should_load_on_this_node(struct pci_dev *f4) > > { > >@@ -221,6 +229,9 @@ static int fam15h_power_probe(struct pci_dev *pdev, > > if (!data) > > return -ENOMEM; > > > >+ if (fam15h_power_init_attrs(pdev)) > >+ return -ENOMEM; > > This should return the error code from fam15h_power_init_attrs(). > Actually, I do this at the following patch of this serial. But never mind, I will update it here at v2. Thanks, Rui -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/