From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACB1FC25B76 for ; Wed, 5 Jun 2024 21:33:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 261336B009D; Wed, 5 Jun 2024 17:33:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 210EC6B009E; Wed, 5 Jun 2024 17:33:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08B8F6B00A0; Wed, 5 Jun 2024 17:33:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id DC23D6B009D for ; Wed, 5 Jun 2024 17:33:09 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7CD92C08B4 for ; Wed, 5 Jun 2024 21:33:09 +0000 (UTC) X-FDA: 82198135698.24.C1AC61C Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2110.outbound.protection.outlook.com [40.107.223.110]) by imf21.hostedemail.com (Postfix) with ESMTP id 756F01C000A for ; Wed, 5 Jun 2024 21:33:06 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=os.amperecomputing.com header.s=selector2 header.b=l87mZ7g2; spf=pass (imf21.hostedemail.com: domain of danielf@os.amperecomputing.com designates 40.107.223.110 as permitted sender) smtp.mailfrom=danielf@os.amperecomputing.com; dmarc=pass (policy=quarantine) header.from=amperecomputing.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1717623186; a=rsa-sha256; cv=pass; b=AL3Y0CbRqxDAOSDNP5RtTApDFJgkAKN7ppJ9ZgG6BXN2ywjLUSKZVHjE1ZBHGBnkGmuwgg 9DESyBfnf5zKxioV2T/tcB64M1g+PArUN+zO9PNlLDrABonPsTfRzPwfE99H+OnSnOivtq aOLqjsSS87TrL+jZk2d+1lmjizaNaJ4= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=os.amperecomputing.com header.s=selector2 header.b=l87mZ7g2; spf=pass (imf21.hostedemail.com: domain of danielf@os.amperecomputing.com designates 40.107.223.110 as permitted sender) smtp.mailfrom=danielf@os.amperecomputing.com; dmarc=pass (policy=quarantine) header.from=amperecomputing.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717623186; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JdVpxNo5LWawmLbsSeAfZhRkYDyrntsgTTS/HwrbKvU=; b=VRNspsoaowSzt7PJe4w5OLHTkzdRvHoL97gxVLM3FkWLRKOLvThPjD+Yygk6sHLw7CwtQw 0pWBOD0EIR8JW4ay+ZmJcOi39cdSzhju+Rwb1yNJeIF28Dnk8PfwPpqljYJ9opI9L1fniz NE+49GZCehA/bMqYTfbycJm8etWdh/s= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNwFt8RVEKUX4XIfhuvuOye1fIzoHMKdlpFd1WESehbqz2fJ/hISi5fwOV4dxTcWA7q3InI5vm39G1mrodMANvKR/ugTETnz+O4MGsmuRGgodpTqMf2SAYEfEcgZCXozAHM5VvRM7V9dYtY4ExuNU/OQi7PetmGAWWlnXYyctMlI9HGXeDKVcgsmdbuXLd1glab494Hd6iaVoX+FpQqYIc6+7DYCBItwA3f0+4WCawkH0YX7hu0Y7yJ0cOoF9HmbQmmJIV1c+O2vAv2qR7rWiDVO5Zxmfw0hPkx0A1TBDBrAtiBHNfX1FXb+d94+Q+weZuZKLCFHAmyCpXsKNu5mhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JdVpxNo5LWawmLbsSeAfZhRkYDyrntsgTTS/HwrbKvU=; b=VYqzi3d1UFfCCXLeU+mqQd+5Hi/MUCDkAeDcoBcb9LTa26IjeLl+uhBMA+Qwc+R3aQ7lV1EqpLRBrWlJwVHk8TTDWwC3hGu3OuYUCW4khC64I9v5sXsLec1gOOZi512vMzjjGPOpysND//Pphc25J4kvN9+YwCVqN3XwjHhVIz7FWySSnYhi7arOtzeWkJFgJeq97DEDIrorohnEJ0lrrOvrOdk5ycnIGW4xsszDAq8aD7xfvhXYR2zov3ty3d1QjYXPm2WHmlZ/DkTpn7sOwL+/eXJSdX0ssXn9qUHKftrY07DUp/wjXnUfg3omUyqsuMPMRRa5R12h6uBBtFrouQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JdVpxNo5LWawmLbsSeAfZhRkYDyrntsgTTS/HwrbKvU=; b=l87mZ7g2tSiGr6P29t3W1m9rmV/slHuBKPP6EPEb6Y6tEus2YEDJ5PJCpwLfdAEns+KLRKYiy8CsUq+4AE63hrdPG/t0WfZ1uYx4un0x03rkc2e/3IpgiBivbugUuAGqdReg40eDS6s6UN/LgHwaw5GEkm4YvofAZdwLXlkstqc= Received: from CO1PR01MB7370.prod.exchangelabs.com (2603:10b6:303:159::16) by LV3PR01MB8462.prod.exchangelabs.com (2603:10b6:408:1a7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.27; Wed, 5 Jun 2024 21:33:01 +0000 Received: from CO1PR01MB7370.prod.exchangelabs.com ([fe80::6e98:87d1:5562:ad73]) by CO1PR01MB7370.prod.exchangelabs.com ([fe80::6e98:87d1:5562:ad73%4]) with mapi id 15.20.7633.021; Wed, 5 Jun 2024 21:33:01 +0000 Message-ID: Date: Wed, 5 Jun 2024 14:32:55 -0700 User-Agent: Mozilla Thunderbird From: Daniel Ferguson Subject: Re: [RFC PATCH v8 08/10] ACPI:RAS2: Add ACPI RAS2 driver To: shiju.jose@huawei.com Cc: ira.weiny@intel.com, vishal.l.verma@intel.com, alison.schofield@intel.com, dave.jiang@intel.com, jonathan.cameron@huawei.com, dave@stgolabs.net, dan.j.williams@intel.com, linux-mm@kvack.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, david@redhat.com, Vilas.Sridharan@amd.com, leo.duran@amd.com, Yazen.Ghannam@amd.com, rientjes@google.com, jiaqiyan@google.com, tony.luck@intel.com, Jon.Grimm@amd.com, dave.hansen@linux.intel.com, rafael@kernel.org, lenb@kernel.org, naoya.horiguchi@nec.com, james.morse@arm.com, jthoughton@google.com, somasundaram.a@hpe.com, erdemaktas@google.com, pgonda@google.com, duenwen@google.com, mike.malvestuto@intel.com, gthelen@google.com, wschwartz@amperecomputing.com, dferguson@amperecomputing.com, wbs@os.amperecomputing.com, nifan.cxl@gmail.com, tanxiaofei@huawei.com, prime.zeng@hisilicon.com, kangkang.shen@futurewei.com, wanghuiqiang@huawei.com, linuxarm@huawei.com References: <20240419164720.1765-1-shiju.jose@huawei.com> <20240419164720.1765-9-shiju.jose@huawei.com> Content-Language: en-US In-Reply-To: <20240419164720.1765-9-shiju.jose@huawei.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MW4PR03CA0013.namprd03.prod.outlook.com (2603:10b6:303:8f::18) To CO1PR01MB7370.prod.exchangelabs.com (2603:10b6:303:159::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PR01MB7370:EE_|LV3PR01MB8462:EE_ X-MS-Office365-Filtering-Correlation-Id: 60a3abb0-2605-4905-1787-08dc85a71390 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|376005|52116005|1800799015|7416005|366007|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SVdvQ1pjbHVCMEdnaUNzVW4yTnFKaDYzSG5oQzZpbmRuWmJhL2ZQLytWampE?= =?utf-8?B?Z3REZWMydHFnMHlvMVpuYzVVeG5kSlc5WitEUHdaMUZKV3NjTjFSeEpGUXc4?= =?utf-8?B?eDZqYzlnQzA1aXF1VXFmUXFEVWlRVjQ0dG1jMXdCK3BWMFIxVEJrV0NxVW45?= =?utf-8?B?YWZYV1BwcXpIbkljOUNmbVhoTnpuOGNXRWNrZ3dpQlhXM2dyeDU2bUVqWDdl?= =?utf-8?B?ak90em5BV2VtM2hJQ3J1b0VuaUFVdzQ2ZTBUMkZzUGh0a054STd5VmtIWkxS?= =?utf-8?B?LzU4OUJRUDJ1ZStlV0k2aWNtcUhyaEx0ZERHb29Nd0NEcnY5cjZKMTJGMUpV?= =?utf-8?B?emJyRXowYmRCYzBQdEw5N29Fa25RandvSXFzajNoVVZoN1ppT0wxcy8rRUtT?= =?utf-8?B?ZTI5L2dVTGFLS1dPMTJpdy9qdURaVVNUaXhxTHJDbE85eG83MHNyQTNDaWNr?= =?utf-8?B?TkVWNU8rRkhRczR4TTkySllMRXNtcXdIczN5T04wNzRqQW15Nm53cVh6RG5P?= =?utf-8?B?N2w0WlJ4aCtTYXoxMVJIREdzdmt3blg3Vy9ScGxpOEF4MWtoMlo5UHV3cWxL?= =?utf-8?B?L0d4KzlnN0dlRlRqSDNjYWg5WjRxOW5HWXp4dGxTMXg0STJTV0hwTmRGQytu?= =?utf-8?B?L0NBQTZvQmFiaXU3TmNJMTVOcVV4Sm4xN2ltRWpjbkduaEtiMWZockRlVmY0?= =?utf-8?B?YnRvcDhmeUFqQUhpYTBzZEcvcmdTTzk3anQrVmNaOXdtWmFGUzNRZEkwQldN?= =?utf-8?B?Ti92WFVBMk1CTitPRkFvQnhaZ28yR0Z2YU1SeE9YaVR2U3Q0Ync2VFU4dHpX?= =?utf-8?B?bTN4RkQ5MVVmTkdMUmp0d2xhMTNWRmN0OGhjM1I0b3ZVdGpCOW1hN1NVeGdh?= =?utf-8?B?MXh2RXVXWW1XMFZqL1owblFEQTF5OFpRSWtNUlBWRTgvNjd2N2U5K1l1SFBT?= =?utf-8?B?Q2pEbytRUHhwRkZyaFVEMEF0V2Z2enFVRWdrRWNpcHBSSDZseFJ6MjRsWHdL?= =?utf-8?B?MTdkeU9sa2lmRjdZMFJ0V25NNFk2Y2Qza2dWd0NaMTViVi9WeTgvUHRxVi9E?= =?utf-8?B?aDNYRnlLV3E3UDRuR0E0R3VRNHZjT3hhWnY5QUM5UExxM1d3eWQ5Rml4Zkxh?= =?utf-8?B?cWVCak1tUmdvNUIwcTRRcm9Ea3JxM3QxdXVRY3FPeTRwSjZUR0krM1dSeEFZ?= =?utf-8?B?UzFiTTIzOFlBNHZJeHc3ZEtYeHE2T1JsaUNmUlJwZ3BvU0F5SGN4Z0dHOTFQ?= =?utf-8?B?bldDejBiZi8vL3hFMTB5dGdJOGo0MjRaTVI4N2hhNFEzL1RMa1hubUNOVEZC?= =?utf-8?B?d1UwZmJyQkpwdVB5eTlrd0M0WWMwblhFcmZPclI3UTBSSW9oZEV6d2x3cStM?= =?utf-8?B?YkFkN3E4Mk9sRjZ0M2M5WHVoVEFMR2U1M2Q3ZFNtYVlESTBkQm41b0FKWHow?= =?utf-8?B?b29YU0dFOC9leVd1QjlhZFdlOE1uWStxSWhpWXdMNGFvR2VsR2xmUVJiejZL?= =?utf-8?B?Rms1b2grbURXRVpuSVl2eWc2TSt2bkpPVUdkalNQaHp2VlpoUkEwTzZiN3BG?= =?utf-8?B?TEd5MkhaTVB3R1lRdGwyZEpCQ2Y1OW90ek9Id1FHbFVWY013VnB1c2o3WFdD?= =?utf-8?B?c0dDUXRxOVV3R0FjbzVSRnp1em00RktMeFZLTVN0cGdlZDRTR1FLenVQb0J3?= =?utf-8?B?ejNoSFBMSmRlZnEzNmFxNWtVK2Y5VjloOThBLys2U2FyeEsrYTBuRHlaRzM0?= =?utf-8?B?KzhEU0FzSFhNNG1KbUQ1REFDNWVUT0ttKzVPbjgyOC9GNkIrT09WVTkwL1pG?= =?utf-8?B?T2VnSmJsQ3FxdFBpSDY4Zz09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR01MB7370.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(52116005)(1800799015)(7416005)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WEpMRXFBOSt6bnlHa0o5eTBhVnZkeU90a0VrUk4xRjhRTFdMR2NrTmJjeW1q?= =?utf-8?B?cm40N0VWZ3htWnRGUFNMOUt1anZXWjAwY3B2QmRzRmFJSER1QkJlRUpTMFdr?= =?utf-8?B?SmdBOEhHenJxQUxzSjNhVmlWRHJaeUR1Z1JPYTQzRmJWWlRBRWtWakFtM2ZJ?= =?utf-8?B?d0F0UmZ2MFZYVEdDZjFWTUppb0R0VURRTUZiU2lvMlRiTTltMEtrY3hqeXdu?= =?utf-8?B?Y2E4VUY4MXhtdjBXTE10WGxva1Zub0xvelBZcDZaOVV6ckZjZVZXU2lpVk1R?= =?utf-8?B?T3BuZmpYUFN6bE1nalVrcSs2WDhobGErakw3NnVBbXFVNThCRU1DODgzYnFO?= =?utf-8?B?Y2FFaUJvMm1IbkN1MTY3bGc3YUwxajVYRHdsSGF5YUJIbnlidGcxb1ZTOEY4?= =?utf-8?B?dHcrb3ZHK0wxTGtXWjVKbnFzVzIwZm43Tm93bHV6UHpXUDd1c1BtODZWbnp3?= =?utf-8?B?bVVkY0RDRW1QMG96TlFHNUtTeFJpTnBHTE84bVQyQjRDZUdVZndzcXRMaHpk?= =?utf-8?B?WW9BZ0N2UlY5anExT0FXZnluRHlzYmxFWW9vNXpXUEZOQS8xajZ3enp1dFht?= =?utf-8?B?K1YzMVN6WFYwM2pwckxIRnRlM2p6THBPK3NTZ0twNnU0UXFId3ovc1pVbmNm?= =?utf-8?B?S01lS0VOdW9XTG92UjRSb3QxKzJPL1BPdlRDN1NXRmVhdTFKTWRqWFhwWFBp?= =?utf-8?B?UjlBT3p2Y2ZNNm1SUENkL0RMNlRDaGdGQ3EzaGFxVTJlTkJ1WGtNRTQzOEV0?= =?utf-8?B?ckNrbFN5MHVadktZT2NrZFkzZlVGZ1h1Mk9KRTZQLzVBdjRpbFprVGJHQTdX?= =?utf-8?B?amd5Q0NFTHhsK3ZhTk9qYWZDekVoRkV1Mjk2YXRZUWE2cjFXZGpsRUhDbG5o?= =?utf-8?B?SXRaWkUrUXZYMnduVGtqejRlK0N4SzcvMlEyT0NSN3NPcmp1a2NqS2VrRnB2?= =?utf-8?B?OExTQWhJRkUrN2tUc0tlUmQ0SStUYmtDbHdqbUE5V01KUU05ODRqeEZ5Zk5i?= =?utf-8?B?YnAzYmZLQWlJc2xDVUFTVFk4ZHFYb2g5cGVpaWIxdGpYZ0xSN1N4OVZWOVFn?= =?utf-8?B?R05KVENrOWZZN3hQTUlyTVJvazBSVGcyRlQyTHhGTEF2UlN3U2M2V3Jtem00?= =?utf-8?B?ODdSUGVxK0M5VzgrRXlrR3d0ajJsVVJCZW94bWx2UElsalBmY3RmRllPTCt3?= =?utf-8?B?ZW4vUFZTVEQwcm9RRnNMSUF2S2x2Q0dxbEtZWlFNU0RDZERSQVdHdU5IdXd4?= =?utf-8?B?azhmVDlSaVZSdmNXVkFpNDI1ZFRGbDNZcUNUZGxhYlBlQ2pUaS9QdVE4U1pW?= =?utf-8?B?Y01iYUh0dnFodTE3TW8yMFpTTk10Y1RiOEY4RkM4RnBWdFBTekdCRzNuZi9z?= =?utf-8?B?L3VTTTBqQU9jdTFaMlVVdEo4azlLY1BvWjNCSEpJU2ZLS0R5dWlwd0xGY3Jx?= =?utf-8?B?YXMzdWV4M2laMUd5dFRTQ3c1aC90ZW9TZkVVQTNLT2dxeVZYNWlBQnpyVTFm?= =?utf-8?B?VW92bit2VWk5NUFoL0xhKzkva0JiYVBRQkhTaUp5MnJaUUQ2d3VGMzVybExh?= =?utf-8?B?U00xSXpoaEppWWd1bmM4bldEaDJXeTNzaFFHRzdQbW40eDJsejkvRTFUMzJ5?= =?utf-8?B?UmVpb2JFSTNzRVpWdkc2N1paSHdWbFJyNmkzUlFJeXVSWkwydVRuem42TDNm?= =?utf-8?B?WFBxb0o2YW8rbnEzMmY1YmxOWm1DUjVheCtHd3lRYVNxZUowTGhRajhHaWlk?= =?utf-8?B?TGRVeUhiUVoyNGtnU2NRRnplazd5bHVidE5WNFMvRVFvNXk5OGRDOEtkUXVi?= =?utf-8?B?R0xDZTBCazN4bitSa1VIeHdMczVHNllCV0p4dDVVcDJDSTBqbmtOa2xDZFJv?= =?utf-8?B?SXNGUk1VZXd2NUNXQkJQaUNNcDJHaHhXa3RmWXF6R0FYWVQxSTVVQVExdUl0?= =?utf-8?B?bGtNTkxORmdaQlpMU2xzM2xONTI0ajlJRlJaL2ttQWV6ZTdvNnozN282QVpt?= =?utf-8?B?T0cvdzFDZEd3RUVjMHFoc0V2NVVhTHZKTnZvakhJdjRYaW0zUnFjZzVwTVFE?= =?utf-8?B?OUJhMFhTZGpFb1VKZ1o5MjZSL05GZ2JoNFRoZzBydUdBbmU2OU84dHZ1L2U0?= =?utf-8?B?ak02aE0zdVJqdjBlV3V1UHdjNzhPT005U3pDVU9pNGV5ancxREw5OEJlbFds?= =?utf-8?Q?PeP2crEHQmXFDlDy2402tIg=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60a3abb0-2605-4905-1787-08dc85a71390 X-MS-Exchange-CrossTenant-AuthSource: CO1PR01MB7370.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2024 21:33:01.6331 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KuAsfeDpHsllQ/s4ueeeor3nWxoMwljsZ4Svx7co1fF3AEDhvh4SxVuRsxIuwiuYLPaxtVtoFg+QlcSEk1OrNmfbxg3mNTlCrfCq5t+zA/MzGY2qSpKaOIjfjs+NbiN6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR01MB8462 X-Rspamd-Queue-Id: 756F01C000A X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: zo5urcecyitrpfhggchme3qihfdck6k3 X-HE-Tag: 1717623186-355349 X-HE-Meta: U2FsdGVkX1/tNTXsqR6gKpWkb/qRJWzJvk4+KNkijsw4dVls7YKsd5y2/PJMscQ7sgJKElFl7AMEc05fz57Y/pardaVo0KUMoeG+8GF3GKR7ZDM+t36KDjjzA2CH2ElGdf1MFKhhzkQngFnknaxGVLB/DL4Es1TMdjOZby+froz8kz0fTK8d4nGZVy551zuOShNCsVzPsPQAmEcO5jUSe91X8fEUYjsPoE7LSWqoZeRJNsZZ9Y3iDS0CXaUiUbfSKM80NQK/xhoxfQA7YWh7uVVtA7gBxeMT7F2H21JdRkUBvgL9jrEuLnQRdeec8vxwqAH7j/qKeV9czE9W1LqRi+bHTYNr4Pg9X1B9UdV3cPgBspE0GswFprIwL+7eFkLfKBMJ6bZdlQSapReVYiDg1+hPfQfOzo9LZJRDl5WgNWpBi8ob+hKiJuMMiWFTr5O5YEQgQNosBruA4I2GAkz5tGhDRSbCUBNwDc+Ls5loK+MoC6zLfcUiIUh4CYZmgaa0j2MID189pvEnmZCt9eVCcK9IMruYfS34Tv37fijLPBExLwKBinQUXwwy2MCrObjnUT8PWy8k5Su1QtjJ2zqFLn1FuDOSSPteIaUkEN5xba+v8dC4IiHBRx8xS7XwEVk/9a/sjfbH9m9lPq+t9ggXpHQsMU9y0MkF4jmTniTbt3CUb1wmZYmV5jKAkaV+8atH/xLfLICv8Et+hUIhpRciSIyKYmFh6QIBNW47ipAAmfMH7jvduV9WK/FRsNX3jD8aQXlYAXaPLGJvG13ecldpS7S5vjXzSKwgOVxo5DQTJWZ9P7uwWKaM/sajVSUQfvyViITryioXxxCMSsvIi1mCwD2JJXddfWza0pUY73Qm4YucNdlpSSw8ZUR20F3URvTk6CFoFtO7C2SUaRJHYlZBRic/9EeZJZdWBRIhrlayzbpjRnvrswdHTYr5BYJDcR9r8SdVK9vIloLLgC9JRq9 l8BjmKkQ 9Rwh60X8UV5/i66NuKIHfCAbvIivGvBUsTHC3EUVfF4L94EoO8Min2hlyvR9x28SwCwvNm/LhIMMKjTnxf+QeBrTpE3ausN+j1P4cjhCc4U4AdjwmEG6o2M5IiG/xM/FWg9uptYwsuiAxUqabkTsaPPYcvF+YAoHeQ6kFNh5P42ojxdXe4INFo0YQkcOLJuPaoZn0UO+EKCau3tBB/ebJupymLfcvtNuiH1CEnXgRMkTlzuenBI7H6lPBDP5dBCGeKN0FviN6BgpVhOnPZsQJtYghl8TSkfFC32H/+tsFblDb2as8FXl6gz9jk4pN0Kaew5Y8I2a34lA1e+1pTK1szIf2pwZdo38/UDGnblAYaP1/PMSi0wK7bnOUnY0ZMB/ovh2oV3StL4o7wkEe74AUxLk5MA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000588, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > +static int ras2_check_pcc_chan(struct ras2_pcc_subspace *pcc_subspace) > +{ > + struct acpi_ras2_shared_memory __iomem *generic_comm_base =pcc_subspace->pcc_comm_addr; > + ktime_t next_deadline = ktime_add(ktime_get(), pcc_subspace->deadline); > + u16 status; > + > + while (!ktime_after(ktime_get(), next_deadline)) { > + /* > + * As per ACPI spec, the PCC space will be initialized by > + * platform and should have set the command completion bit when > + * PCC can be used by OSPM > + */ > + status = readw_relaxed(&generic_comm_base->status); > + if (status & RAS2_PCC_CMD_ERROR) > + return -EIO; We need to clear the error bit before reporting an error. Maybe the error was transient, or specific to the last transaction. So clearing it here, lets us try again later. Like This: if (status & RAS2_PCC_CMD_ERROR) { status &= ~RAS2_PCC_CMD_ERROR; writew_relaxed(status, &generic_comm_base->status); return -EIO; } Also, we are thinking that using the "Set RAS Capability Status" as a way to communicate RAS2 Scrub specific error conditions is appropriate. If we agree on that idea, then we can additionally check the set_capabilities_status and return an appropriate error.. for example, we can add a new error mapping function: static int report_cap_error(u32 cap_status) { switch (cap_status) { case 1: /* Not Valid */ case 2: /* Not Supported */ return -EPERM; case 3: /* Busy */ return -EBUSY; case 4: /* FailedF */ case 5: /* Aborted */ case 6: /* Invalid Data */ return -EINVAL; default: /* 0 or other, Success */ return 0; } } and then instead, modify ras2_check_pcc_chan in this way: if (status & RAS2_PCC_CMD_ERROR) { cap_status = readw_relaxed(&generic_comm_base->set_capabilities_status); ret = report_cap_error(cap_status); status &= ~RAS2_PCC_CMD_ERROR; writew_relaxed(status, &generic_comm_base->status); return ret; } > + if (status & RAS2_PCC_CMD_COMPLETE) > + return 0; > + /* > + * Reducing the bus traffic in case this loop takes longer than > + * a few retries. > + */ > + msleep(10); > + } > + > + return -EIO; > +} > + > +/** > + * ras2_send_pcc_cmd() - Send RAS2 command via PCC channel > + * @ras2_ctx: pointer to the ras2 context structure > + * @cmd: command to send > + * > + * Returns: 0 on success, an error otherwise > + */ > +int ras2_send_pcc_cmd(struct ras2_scrub_ctx *ras2_ctx, u16 cmd) > +{ > + struct ras2_pcc_subspace *pcc_subspace = ras2_ctx->pcc_subspace; > + struct acpi_ras2_shared_memory *generic_comm_base = pcc_subspace->pcc_comm_addr; > + static ktime_t last_cmd_cmpl_time, last_mpar_reset; > + struct mbox_chan *pcc_channel; > + unsigned int time_delta; > + static int mpar_count; > + int ret; > + > + guard(mutex)(&ras2_pcc_subspace_lock); > + ret = ras2_check_pcc_chan(pcc_subspace); > + if (ret) > + return ret; > + pcc_channel = pcc_subspace->pcc_chan->mchan; > + > + /* > + * Handle the Minimum Request Turnaround Time(MRTT) > + * "The minimum amount of time that OSPM must wait after the completion > + * of a command before issuing the next command, in microseconds" > + */ > + if (pcc_subspace->pcc_mrtt) { > + time_delta = ktime_us_delta(ktime_get(), last_cmd_cmpl_time); > + if (pcc_subspace->pcc_mrtt > time_delta) > + udelay(pcc_subspace->pcc_mrtt - time_delta); > + } > + > + /* > + * Handle the non-zero Maximum Periodic Access Rate(MPAR) > + * "The maximum number of periodic requests that the subspace channel can > + * support, reported in commands per minute. 0 indicates no limitation." > + * > + * This parameter should be ideally zero or large enough so that it can > + * handle maximum number of requests that all the cores in the system can > + * collectively generate. If it is not, we will follow the spec and just > + * not send the request to the platform after hitting the MPAR limit in > + * any 60s window > + */ > + if (pcc_subspace->pcc_mpar) { > + if (mpar_count == 0) { > + time_delta = ktime_ms_delta(ktime_get(), last_mpar_reset); > + if (time_delta < 60 * MSEC_PER_SEC) { > + dev_dbg(ras2_ctx->dev, > + "PCC cmd not sent due to MPAR limit"); > + return -EIO; > + } > + last_mpar_reset = ktime_get(); > + mpar_count = pcc_subspace->pcc_mpar; > + } > + mpar_count--; > + } > + > + /* Write to the shared comm region. */ > + writew_relaxed(cmd, &generic_comm_base->command); > + > + /* Flip CMD COMPLETE bit */ > + writew_relaxed(0, &generic_comm_base->status); > + > + /* Ring doorbell */ > + ret = mbox_send_message(pcc_channel, &cmd); > + if (ret < 0) { > + dev_err(ras2_ctx->dev, > + "Err sending PCC mbox message. cmd:%d, ret:%d\n", > + cmd, ret); > + return ret; > + } > + > + /* > + * If Minimum Request Turnaround Time is non-zero, we need > + * to record the completion time of both READ and WRITE > + * command for proper handling of MRTT, so we need to check > + * for pcc_mrtt in addition to CMD_READ > + */ > + if (cmd == RAS2_PCC_CMD_EXEC || pcc_subspace->pcc_mrtt) { > + ret = ras2_check_pcc_chan(pcc_subspace); > + if (pcc_subspace->pcc_mrtt) > + last_cmd_cmpl_time = ktime_get(); > + } > + > + if (pcc_channel->mbox->txdone_irq) > + mbox_chan_txdone(pcc_channel, ret); > + else > + mbox_client_txdone(pcc_channel, ret); > + > + return 0; As of now, this code doesn't consider errors occurring after the mbox_send_message. Checking errors is, probably, necessary to take appropriate action - such as reporting an error to the user. Also, error or no, it is important to call the txdone bits. One simple solution that works is to modify the previous "return 0" to look like: return ret >= 0 ? 0 : ret; > +} > +EXPORT_SYMBOL_GPL(ras2_send_pcc_cmd);