From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756391AbbI2O4X (ORCPT ); Tue, 29 Sep 2015 10:56:23 -0400 Received: from mail-bn1on0089.outbound.protection.outlook.com ([157.56.110.89]:13664 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754852AbbI2O4N (ORCPT ); Tue, 29 Sep 2015 10:56:13 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.221) 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: 0NVG1HK-07-9D8-02 X-M-MSG: Subject: Re: [PATCH V2 1/3] EDAC, amd64_edac: Extend scrub rate programmability feature for F15hM60h To: Borislav Petkov References: <1443440593-2316-1-git-send-email-Aravind.Gopalakrishnan@amd.com> <1443440593-2316-2-git-send-email-Aravind.Gopalakrishnan@amd.com> <20150929114517.GA3534@pd.tnic> CC: , , , From: Aravind Gopalakrishnan Message-ID: <560AA686.4010109@amd.com> Date: Tue, 29 Sep 2015 09:56:06 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <20150929114517.GA3534@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.180.168.240] X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(189002)(24454002)(479174004)(52604005)(199003)(377454003)(23676002)(36756003)(54356999)(65816999)(80316001)(87266999)(77156002)(4001350100001)(76176999)(86362001)(4001540100001)(50466002)(62966003)(47776003)(68736005)(101416001)(50986999)(59896002)(83506001)(106466001)(65806001)(2950100001)(105586002)(64706001)(33656002)(11100500001)(65956001)(77096005)(64126003)(92566002)(97736004)(46102003)(189998001)(87936001)(5001860100001)(5004730100002)(5001920100001)(5001830100001)(5007970100001)(110136002)(5008740100001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0856;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0856;2:a4bVxhj/yn61flAOgVkEy0IV6JOGoA+FxX0Tbhu9oa7n0iDD+XQByONozrQzVg2TO5zPBEisfWOOCIYb4PD0QgxiiQU8sFHMi/ytC8eyjLxVpOBXmFIdxegLoE0fBWge/7CgG+1Q8+zFvaLDdlY5OrEIADq9GqQxARY19Db/8dM=;3:+FUHvV80LsAlC+NFHGp1y9RwodR6emVi18GEpa/Q21UpBTcLsKo48/lxBJHzCz/tFcyuWvAFJwUs3PzCWXcDm4VMgCzDbMqnx+IhbwXDP1ezSKoBWPzjBOZ8XW18ubxD3MZJgIUgpboTneLeuZ90SY13q2WHsCiwC57e1y2U7VfAZ7PG5dXZ6coDWfElRxGhXfnJVqMZFC9JiekaSNfyIz0PfZrGLq7ZJCCJAZgc+lsMhAJmYZm3K5Gfj2GWvic1;25:21m2CrGKNuryjIYpRutho15fXcL3l+Znlko4lAN4tHHX72O4ZqYEsfRLsqaFMw+kMhlba9vmVKi5X/RusDSfxSnVBs1ordB7jE53VxLPjZ3fZopndr9q94M1Ema+T7tMA6GY7wzxHd397E2+GfhrO4vGFlpR+XKDU02rYW/uYhR2t8Jh94C2UQDSoQAnaHoxZ79RMi6wwnD8FiNFXzvkahvFpYlFo4ZhhFeUhdhA+7If2pB9ebcoS1j3m48oP4fY+U2nEGDpyIpVLFNi7GXd4Q== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0856; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0856;20:DLNI0qwb6HmCv7EAZCCgjkNxL1iwBSjIjp5NH5rIvvS+hd+Ik6ccOoWCyOt1Z+Zwyuj+6jDDXMw80x37wkIgRtBywAIOex8a1qQY2/dO5Ksego+F8O3hhyqkWU5j8uPkYsrjdHkS2MMd7gPLNdqMdIqOGowGNnrHXRGzIIkU8+6gGvgPlpEVjhFt5yYPFYZ0X9i9ZxObzoEVTTwzd1nIldKr+UBYzWa+gpuf50Wuz3CKCyHN9c3vQhD7Jz6GrJ57gE3qfyIsqMxcbkAtczygLFB7i01nnel3H7/ZGs3ZK6dIs6mXa4Zh70FGqqnJ1Of3fb+zhgydmmbBsXd+J06t7welqFEwtCuiJ/9M99Hv1d8qvBbbd4lbKb8ZiQ4BzDGqfui+qmZJw+SjjLz2zMs9eoFMMqhIS7TqLdIWBbRG3/YdDaLOvRpNrgi7TSSH3uOJyPQDqfzBsKs7WewLMrKQ739dibzwf7R/DL0FeNN2jdO6A03rz7BKOUvgabt3fD4Z;4:bpS01hZENj+/bwPLxNGcU5/Lwwf8DO5dKd4gwO2OHJw+h91vaYRTLPFCdBlhytKelbk35YpITNlwy3A97D1IdnXPdtN1wALiz+7V5HyustjuKj3v/apCjtGhYpovJR7P6db6UE+A15oT6R6io3xd+vYxkQeoqd4kfIAUv+40Nf6RPU7imt4pr4VRgO8d93QZCAtOiRfiwPysD/vZJwcsiLqS71G/kugzBdxg1aKi8ZSsqGuyrOyJ264Xk1VUyPR3B5M8pc+f102k10yIa87dIt9LFb9Gpo/qRXugbMxril5maSx8C4JRAoIRkcDMfBWNd/drQ3rfcRwJhy98WhpEKKkJblPnapuCnR+ONIIqOu4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001);SRVR:CY1PR12MB0856;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0856; X-Forefront-PRVS: 0714841678 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwODU2OzIzOmZiRnpuVzR4N1g5WWNWb1o3aExySllyUUd5?= =?utf-8?B?SXRsTUhZKzRDTzNUUDk2ZFMrMTlCNjF3aFZibFpvTHV5NTVEc1RWTTE0bGI5?= =?utf-8?B?S29OSUZ6NVIrK0g2WHpac1lrUnFFMGhpbUxwcWRoNE50OGJqUHpwTEhMZXVx?= =?utf-8?B?d1orNjJWZmtIeWJHbWR6d2tRQzNoRXdESXZOdGlMelpwQTJFV29FRGZYbmhx?= =?utf-8?B?eG45cFRCQnU3UEhHaWZMbEFMRS9xZDh2MVlKOFMzbzBLSWpOaUMzVmRXNEJ2?= =?utf-8?B?bjFUTjI3T1FhZHdCeXlwbjBrVjJUbWw0ZWQ2Z0plcGdGT3k4ZkZ4MXp1RVVR?= =?utf-8?B?cW5QTzZnems4K0V3RkIxSmFnbzlRU0dBRGpieitOSWtkNUpnTys2TEpoZjRq?= =?utf-8?B?aTV0NUxBZnUzWG1LT1JtSWxnL0ZEY1dCN3JkZGlBdmpBMlV0RUZySUp6VmdZ?= =?utf-8?B?SkthL25NaG9DdnVabjFGV25RYk0xNjVKQmlpbkw2aTZGZVNUWE1vaWd2UGMr?= =?utf-8?B?QmtKM3laMXIyOFJaRXhWNysycW5MLzJzK3hHeWxpOUpjZUc1UG4zSUdLOTh3?= =?utf-8?B?dmxZTU54bWVUTTBxZE9zaVBIcGRhZEFLTFNLU3BYaktJT0o2azJ2cm51cGZS?= =?utf-8?B?TTVjZnFNeE9wTGN1a09XRGI0L3BRR1FuN3FTcWl4VFVoSCt5T2xzYXk3Q1Nn?= =?utf-8?B?ZHlBNnFhWEgzUmdwT3paSm8vUGRDNXZpREsxN1hqSmwyU3RDNUs5a09UOWpE?= =?utf-8?B?MUZTOUlTNnVpczRYN3pDQ09lQjN4MHpFR0tJc3llOGQrR0pRMzlTV2RJZzN6?= =?utf-8?B?cjZhVFFnNElPWFZwYm02SXpiK1o2ZUVLWnYwRTBZK0hKbFQ5dDFQL0hIREdY?= =?utf-8?B?b2QvL0gzaTUrQ3N3cUxJK3lORm8ydUx6dXpiQXZlbzgwV1B0L3VPVXZaaTBm?= =?utf-8?B?dXdDQkNHWGhhU0tTdDlTUG1aNkNUaTBrOFpQTTlPMDJKU044bVNQVjRVeXFo?= =?utf-8?B?UmZmbUFBZ2lzdWJWZnd4RGxNT1M3U0N5QTVDb1JKdHNOWDVBbXE4aThOSkJx?= =?utf-8?B?STd6VlBaWGI4eFIrZUlJcTlvMDRKMmZNZkkvZTU4dVlUTXFUWWl5cmhVMlpJ?= =?utf-8?B?dWpUREVYeGxpVDJRQ3hoYnRQcHF4QnJ6S2dnUm1HVkt5SGwrbUpxTFFOTThR?= =?utf-8?B?dFlNMUhFVFRyRkF4T2lickpaS3FIdi91ei9GK1BxQ0xoaVc0V2VMOVpSendo?= =?utf-8?B?NlcxZzNxekh5d2dXbDVIR24xMVNtNEgra2F1YnRkYVh3cDd1OVlPNFJtRTk3?= =?utf-8?B?WWI1Q3BXamJCaDRFK3RraHBqU0pFemFURVRlcTIxN1RRc1BIeFNiYnBxdFll?= =?utf-8?B?djRGWC9IdGNwNURLVjUvNDQ1UXUrWHlDdCsvZkk5NEk3RHNpRmFHSjk0MXhQ?= =?utf-8?B?UE1PTW01Vzhic2xuOHhNK0pQQ0NVM3lTMmN3cGh2b3JXSmZiOXJuWm9xSysr?= =?utf-8?B?QzQ3VFBWY0lObGxyOUJWNW9oaFVBY0V6eUh6aStUaUcvYWllb0E4eDhOK1d6?= =?utf-8?B?Uk5wcHdIS0N3UVZlb0M3Zk92Wmw5clR2UHJOTWVPME8xTTJNVVJjMEZkTG5x?= =?utf-8?B?UitRQWE5QmVoZUNtVzRuNSt5V0Q3cTNGM0VJL080M01pU25YaGlZNWZCVWhM?= =?utf-8?B?WTE5eE01T1QyM3RBKzFVb0NBTG9vUEFLM0Y0QURYSEVCeUNpdE9IZ21VREt3?= =?utf-8?B?dmIxaVBWTGx6bmFSQlNrU2pSODJ0VCtkWFlJVVJmc0NIMWhGdTVianFQZ3I0?= =?utf-8?Q?lHI+UzWgyNF5U?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0856;5:URgz4btx3xoVT9offnsTT3E1fAkoSR6Qdy4BLUUHW86WPb8BlywuDHcr9+yIMphE0G7p1EUoYXX0GbUW8vKVu0QN9BDNhk65ynS9+yTxhaZWbOzvgp7O9vFb7j5/AXYDeqoTjlrnPnFyr++6LoFL4g==;24:ai8N+CiDa5NtUwCER3E6isYyJUQSN23Q8Oir87M82XjufY5Qsacp5x2yS+clr/hwdgwnJ/6nZbMYcMA2dvBE66/kLdv1ZUylSJ6ue7bj7tQ=;20:jc8slU7yfQz2TVTFYpz6F5j2RtQrKvHJFpDiMDqMwFS3mnXJ6RwtWy29VOwZ8hUmRJZHtySe7SILGYFVk2BYng== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2015 14:56:10.4477 (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.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0856 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/29/2015 6:45 AM, Borislav Petkov wrote: >> @@ -216,12 +223,17 @@ static int set_scrub_rate(struct mem_ctl_info *mci, u32 bw) >> >> if (pvt->fam == 0xf) >> min_scrubrate = 0x0; >> + else if (pvt->fam == 0x15 && pvt->model == 0x60) >> + min_scrubrate = 0x6; >> >> /* Erratum #505 */ >> if (pvt->fam == 0x15 && pvt->model < 0x10) >> f15h_select_dct(pvt, 0); >> >> - return __set_scrub_rate(pvt->F3, bw, min_scrubrate); >> + if (pvt->fam == 0x15 && pvt->model == 0x60) >> + return __set_scrub_rate(pvt, bw, min_scrubrate); >> + >> + return __set_scrub_rate(pvt, bw, min_scrubrate); > This looks sloppy: > > if (condition) > return function() > return function() > > I ended up committing the version below. Other two applied too. > Forgot to remove that conditional :| Thanks for cleaning it up. -Aravind. > > > + if (pvt->fam == 0x15) { > + /* Erratum #505 */ > + if (pvt->model < 0x10) > + f15h_select_dct(pvt, 0); > > - return __set_scrub_rate(pvt->F3, bw, min_scrubrate); > + if (pvt->model == 0x60) > + min_scrubrate = 0x6; > + } > + return __set_scrub_rate(pvt, bw, min_scrubrate); > } > > static int get_scrub_rate(struct mem_ctl_info *mci) > @@ -230,11 +241,15 @@ static int get_scrub_rate(struct mem_ctl_info *mci) > u32 scrubval = 0; > int i, retval = -EINVAL; > > > + if (pvt->fam == 0x15) { > + /* Erratum #505 */ > + if (pvt->model < 0x10) > + f15h_select_dct(pvt, 0); > > - amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval); > + if (pvt->model == 0x60) > + amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval); > + } else > + amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval); > > scrubval = scrubval & 0x001F; > >