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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6C72FCDB474 for ; Tue, 17 Oct 2023 18:56:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7mZ4hYKOOBTD8JUzcc9dkL7xBikUqn98f2dOz7QmcW8=; b=V9Oi7+/kpBM2z/ ZsPHPTQoL9nYcEVtuOTxfkaMyOWJfNdxni0sGzEKu3qYzcdtIbSwQKvi1lG89wbxsXImt4lxelV2m AfDP9B3F9KoshPOw/9TA/V9C8V8aEqgwfusFYeE9PhpiZUptno9oRPyI4V7YfQyLdf5xpA+VlWWrB XHF9IV9t0fkVSzvWAZ2vn9u4s7JnSZ5xCq/29F+7z0gYwU46XiJAf7z0qtctZST4lbyXFUnMDjTXn LskR4Tzp+gVNhEgunlvHzFH4ktNN+i+PrHp1ghwHrKuzkz3cGiPErPn6VOS5eMTpDBkYrpMaswzIk 59RnNAA1BQTc+pb0RvKQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qspEp-00D1Ay-1d; Tue, 17 Oct 2023 18:56:19 +0000 Received: from mail-he1eur04on0616.outbound.protection.outlook.com ([2a01:111:f400:fe0d::616] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qspEl-00D19v-2i for linux-arm-kernel@lists.infradead.org; Tue, 17 Oct 2023 18:56:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ocKI9TJvIyUbJQzIlbWFZUmRRorogw8SNkaZo5DZywGN7OuTngXe5zzRYWvufRdLLiVvdkQdIWHtfK/E2mT2GrAyYWoesRnb2xzPRMKOqCRi7ZQEkqExAYl2/ErsRW29TZugzHV61lSQTXIj6jgCETF9p4iFjJd8hikY9YMGEgNRKX8EH8RSgbMeeNTEk4VMqQFuKhgulZPxyaT3FyABLUciEb4QD/I5WebZ3/yD4pgqN3xZhaRySaQiDqi+HuQJ5dx9JMA8fgb96XziLrDFDKTP+ub4YJNlaPNnOALs8qdyEFNNjLIwaNZMct0GJnpLLQrIzcUZVvpfXVeZT1OV6g== 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=QL6kFCzUjal1/ynwQzNM+b5aR+B6UvCRBtDpoTjVbLs=; b=LizPayy/W+kUOmVP3GfEL1QjmLBXRUwiGPzWkI9J60W5VRTqn79UnTRu0Y6gJfHkYZxXK8DtccIwSqkgDm9z37XGPw5oVmB9GmkoViL9Sor1+lACorl0LtKFuZDDMmfytYDYLVJ/OfeWjtLzVgGWXfaFhdYQFf/xzapGsMglRBbk3acBdZhb0Yk5PzcioG31pg3CqUSCDkV58KkTri7x/YRXIcQNUPTdmwLAjykbrkpRtMmDZ2nJISlWJpSRfGImHKfoluRwhETV9BwdhOmC2oUbISzovJbEeuv7wBiOspXS3TqNqmHnWBsNb/KawNQ8+vlH4vrXDoQlvxsBxHKziw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QL6kFCzUjal1/ynwQzNM+b5aR+B6UvCRBtDpoTjVbLs=; b=svw63NjDosg8KZ0ftgMQg6aDJv1/WTIH17aRZMHdMB/iC8Ew2df0c9cv2a1IPa+jToBc7oZLQnGVH/yUEnjKw/Nt4mWZeI2SObMNHN7TtPMqL3P0Dsx6RUD2eudUfmJxIqxu/2EulEXv9lP7YwwscfqVVHQqKflnRvcw5WcTaxA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by DB9PR04MB9865.eurprd04.prod.outlook.com (2603:10a6:10:4f0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6886.35; Tue, 17 Oct 2023 18:56:09 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::1774:e25f:f99:aca2]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::1774:e25f:f99:aca2%4]) with mapi id 15.20.6907.021; Tue, 17 Oct 2023 18:56:08 +0000 Date: Tue, 17 Oct 2023 14:55:57 -0400 From: Frank Li To: Manivannan Sadhasivam Cc: aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@kernel.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org, tglx@linutronix.de Subject: Re: [PATCH v2 1/5] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller Message-ID: References: <20230911220920.1817033-1-Frank.Li@nxp.com> <20230911220920.1817033-2-Frank.Li@nxp.com> <20231017183722.GB137137@thinkpad> Content-Disposition: inline In-Reply-To: <20231017183722.GB137137@thinkpad> X-ClientProxiedBy: SJ0PR05CA0205.namprd05.prod.outlook.com (2603:10b6:a03:330::30) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|DB9PR04MB9865:EE_ X-MS-Office365-Filtering-Correlation-Id: 81b4e6fa-aacb-4637-d813-08dbcf42b8fa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SzVdAfuvUeml4Y+GhE29F64KoAVIAbsLCkWCDpriRLZ/Ilsxmct+B+g6whKiH4QaxZXcQ18ofxN3ogp8yLCD1GqtZZ8nJAe0VQX1P7o0nSw7iPLSMOLZ6q51Ki3ooVsRXGMLymLNRuWvqj9L2Z1F0ZYaRcm/3FEu0ofFZLqxjs/GGC2WaNP+vu2vmBsvJIbtzw4baNJyS/RZ5co7Mg5vQ6aBLohhRPcQlWob1W9QfK/S2b1gYRMGdYhcafdzKDS+kbl4M+jM/h+Y9n9A2LZbfz8owdrcQU4Tv94uXKPgDgb8QTFqr34n4ptDKQG6ElW00sUGb+On1Bu+/Q7jpvta01d4feW2scjsyiYxM+n68OwTCc9BqJryNXZUWK2JttjBEvtrmiCpKEQAVEEvpeRwO02kA1SLCJk0sqfno/UACvBaS6cD5DuxjQ4QlBi1Co+dQw/hcxUzsMQgdaXOCHeWiEpZtfpcFjK/GHWdGxW6VHt6n+SHkdVaR5FgpJBzNDwXTVlwVgPnNyDmMKedjb7xi7qORTmn4pMWiimx25ZugdbdTfP56O4o56MOqGAnTq4AlIJ0AM8APafZnLZE3VlwpFKhbw5smV5diGjVJ0picdE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7916004)(366004)(346002)(39860400002)(136003)(396003)(376002)(230922051799003)(1800799009)(186009)(64100799003)(451199024)(6666004)(38350700005)(5660300002)(86362001)(41300700001)(7416002)(2906002)(966005)(83380400001)(4326008)(66946007)(316002)(66556008)(66476007)(6916009)(38100700002)(6512007)(6486002)(8676002)(52116002)(9686003)(8936002)(6506007)(478600001)(33716001)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NlVWczdrZ2lMZUgvakphczhqZ3QrUDlKL3VFYmlOcHRwcWZuck8xYkJ4dkxx?= =?utf-8?B?eWNSS0ZGdlFiTHRpcGx0dnBWNkd5YmE1U05SSDdxZHVhWjMwRThIalVaaWlv?= =?utf-8?B?MzRuU254aEdiQytkV1NvOTR3V1VDb1ZIRGYzaDJERVEzUkVwL29KOFVnV2Rx?= =?utf-8?B?ZHZlRHVmcDJDY2s3Z2x5RVZYQklMUXdXNXR2SG9qMGswZUNtM1NTUGljMzJq?= =?utf-8?B?dWdRdWV1Ykp0THBpVHpXRlY2bFJLZThFREhqemtneUt0elVjTEpBZXFOTHN1?= =?utf-8?B?dnZjYWVuNTMvd1U4NTRweEZ4NGZ1bXdwR3VDZzRqcWZyU0J0SU5sNEZOeUVa?= =?utf-8?B?dm8zRkFEWDhmQ3lzcnJwUzUvLy9OUy9BK0l1OUlDSmtPSHR5alhqbE9SRTNi?= =?utf-8?B?ZlViRWlVK3JHTlpINVZTWks4LzlsMTRZREx2cmQ0QjFJeVd2N0FWVEtwU0hZ?= =?utf-8?B?b3pVc2ZoZzVUTW93RVgvYnBKVWFpaW5jbE5jYWZXTjk2RWJmajZ6UGlkU2Mw?= =?utf-8?B?VXVWTEJ2RFp1cUVUVEJzMHNNR1RObzhZMldncGNNT1d5VmJFdFVadVVmQU9Q?= =?utf-8?B?MXBWSGltQWQ5SVVCSmFHbXd2aE10ck9TcDBlR2Vmb0xsdFdIejZJSUIvTW1O?= =?utf-8?B?WjZPaGlZTFNWbng3a3I0TmlIVDJwRmV2U1F1MTlsT1lidGU0Z1Q3ZVdGa1pB?= =?utf-8?B?Q01CYksxd25jZHI2VXNXSjcrdzBUcXhYdzJQcjNLMVlsbXJZSStEQTVnOWw4?= =?utf-8?B?bFd2eGpnWnRxS3lHZnNhTk9XRCtBUVlDd2ZRRDNLWVNQVFg0OGZkL2lTOWx0?= =?utf-8?B?eWp1VEFpam1Yb3lFNUE4dUJHdERhS1kvNjYrNTlVTGFrTDh4R0cxUGlkenRF?= =?utf-8?B?aG12WFkrQVFUbnBwdGdkeGlBeTQ1c3RzY2hMVktTWHpQdUEwS2NIb3ZGL1RE?= =?utf-8?B?aG1OaW9KaGF3ZzRZbnVLc2JVYS9FdVJORjE2WWloWjZJQjhSN1lHWEJVTkFB?= =?utf-8?B?UTV4Tkp1djdOOEdvRHBWbXdXSUYxSzZKK0h3Y0F1dFZsVjdWUTZOa2ZjalJs?= =?utf-8?B?amlybHR0ZVdFT0VyT2lROHRYSnU1aSs2TEUwL1hTMHl4UFFzcXFieERiaFFK?= =?utf-8?B?N1lrY0dRU1kxcWFURnpxV1BISkJmYkJLR2J4VHVqc2tlYm5mT1V2VUVLU0VS?= =?utf-8?B?RThLWDdhNHJ4bXkwZC9GNFhnR3JuVnVtWjZNZmU0d2dFWmlyS1prMWp4TEU0?= =?utf-8?B?SmtUUzVxa0Z4b3BEbHJ0M3RoRXdSTW1ySjVneWZzYTZ5T0xUZjNFWG40Vlk3?= =?utf-8?B?Y213MzFNM3Q5K2lFcmFqWlp4MUN0N2FnNGhoSG5Kc1VZdE5LQ2pOcEpUTjhj?= =?utf-8?B?WFkvUmU5bFN2UjR4TktmWnhDRExnZkxWWHY4MXpid2lQTm15THBVVFRmL3V2?= =?utf-8?B?RzFPeHBwaU9Da0JzdTFYcFJQVXZSWFJPOGVtS0dkWjNjTHFCdE5pYU1KbDd4?= =?utf-8?B?U2dJVzA3bjdjSDVqeE9EUEdiQUYrTldPazBDcEczbUpVNXNyMUR3ZHRWRXlr?= =?utf-8?B?b1pUaVBHcUNCQmF4QmNsQ0l3b202bkhWemlYT0tlVVA5MGZrM0FmUnVvcWF4?= =?utf-8?B?dzVhYkt3a1l0aE01YjRlcUsyU1hpZTMxalJTN3htZitYY0UxR0hyTXloMmxJ?= =?utf-8?B?TE9USlBJTXh4RzdKamZiYkpESDhnaTROZFNEMW1ucFQrTlZPOFdFYStvY3RX?= =?utf-8?B?OElLUG52NGJYdldJUHp5ZmFSOHZwMS9HdXZBbTVublI3Rm9yMVhIRjF5TzY3?= =?utf-8?B?L2YxQVJxaXJHbHVGZFlTS2svOVFqUFpnL1I0akZYVVc1TEJwb2NhYTU5Tk1I?= =?utf-8?B?L2lPakNndDdmaG12a2k3SWI3aEVDWWRRTGFENFBhTkVBZnBTRkVsWFc5czdo?= =?utf-8?B?QjRVby9BZHoxcFEwY0pTUE1LYkxXN1dpcFg0YkJMWjJBV0J1NUJ3YWkwVytr?= =?utf-8?B?eG9EZjM2RlYwMnBrOFFKVzFFcTlOTUQwM0ljSFlVMXkxcmJmekdRcllvNDlq?= =?utf-8?B?SE9KSXIwQWE0UjVLcEFDMEhtUUlnSlM0L3krMHJoM01uWS9MUnJieHkxdXU0?= =?utf-8?Q?QHWA=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81b4e6fa-aacb-4637-d813-08dbcf42b8fa X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2023 18:56:08.4547 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xCLj5OnYBa+BvXi4CxoEFE41HL2xI53s9IdX0vLYAwCDIlBX6RUgVJiVxeCrltwxdwJaAHMfcMNIvU2QYQrw/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9865 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231017_115616_118778_36878BBE X-CRM114-Status: GOOD ( 40.29 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBPY3QgMTgsIDIwMjMgYXQgMTI6MDc6MjJBTSArMDUzMCwgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IE9uIE1vbiwgU2VwIDExLCAyMDIzIGF0IDA2OjA5OjE2UE0gLTA0MDAs IEZyYW5rIExpIHdyb3RlOgo+ID4gVGhpcyBjb21taXQgaW50cm9kdWNlcyBhIGNvbW1vbiBtZXRo b2QgZm9yIHNlbmRpbmcgbWVzc2FnZXMgZnJvbSB0aGUgUm9vdAo+ID4gQ29tcGxleCAoUkMpIHRv IHRoZSBFbmRwb2ludCAoRVApIGJ5IHV0aWxpemluZyB0aGUgcGxhdGZvcm0gTVNJIGludGVycnVw dAo+ID4gY29udHJvbGxlciwgc3VjaCBhcyBBUk0gR0lDLCBhcyBhbiBFUCBkb29yYmVsbC4gTWFw cyB0aGUgbWVtb3J5IGFzc2lnbmVkCj4gPiBmb3IgdGhlIEJBUiByZWdpb24gYnkgdGhlIFBDSSBo b3N0IHRvIHRoZSBtZXNzYWdlIGFkZHJlc3Mgb2YgdGhlIHBsYXRmb3JtCj4gPiBNU0kgaW50ZXJy dXB0IGNvbnRyb2xsZXIgaW4gdGhlIFBDSSBFUC4gQXMgYSByZXN1bHQsIHdoZW4gdGhlIFBDSSBS QyB3cml0ZXMKPiAKPiAiRG9vcmJlbGwgZmVhdHVyZSBpcyBpbXBsZW1lbnRlZCBieSBtYXBwaW5n IHRoZSBFUCdzIE1TSSBpbnRlcnJ1cHQgY29udHJvbGxlcgo+IG1lc3NhZ2UgYWRkcmVzcyB0byBh IGRlZGljYXRlZCBCQVIgaW4gdGhlIEVQQyBjb3JlLiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkK PiBvZiB0aGUgRVBGIGRyaXZlciB0byBwYXNzIHRoZSBhY3R1YWwgbWVzc2FnZSBkYXRhIHRvIGJl IHdyaXR0ZW4gYnkgdGhlIGhvc3QgdG8KPiB0aGUgZG9vcmJlbGwgQkFSIHJlZ2lvbiB0aHJvdWdo IGl0cyBvd24gbG9naWMuIgo+IAo+ID4gdG8gdGhlIEJBUiByZWdpb24sIGl0IHRyaWdnZXJzIGFu IElSUSBhdCB0aGUgRVAuIFRoaXMgaW1wbGVtZW50YXRpb24gc2VydmVzCj4gPiBhcyBhIGNvbW1v biBtZXRob2QgZm9yIGFsbCBlbmRwb2ludCBmdW5jdGlvbiBkcml2ZXJzLgo+ID4gCj4gPiBIb3dl dmVyLCBpdCBjdXJyZW50bHkgc3VwcG9ydHMgb25seSBvbmUgRVAgcGh5c2ljYWwgZnVuY3Rpb24g ZHVlIHRvCj4gPiBsaW1pdGF0aW9ucyBpbiBBUk0gTVNJL0lNUyByZWFkaW5lc3MuCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxGcmFuay5MaUBueHAuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9wY2kvZW5kcG9pbnQvcGNpLWVwYy1jb3JlLmMgfCAxOTIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGYtY29yZS5jIHwg IDQ0ICsrKysrKysKPiA+ICBpbmNsdWRlL2xpbnV4L3BjaS1lcGMuaCAgICAgICAgICAgICB8ICAg NiArCj4gPiAgaW5jbHVkZS9saW51eC9wY2ktZXBmLmggICAgICAgICAgICAgfCAgIDcgKwo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgMjQ5IGluc2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGMtY29yZS5jIGIvZHJpdmVycy9wY2kvZW5kcG9p bnQvcGNpLWVwYy1jb3JlLmMKPiA+IGluZGV4IDVhNGE4YjBiZTYyNjIuLmQzMzZhOTljNmE5NGYg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9lbmRwb2ludC9wY2ktZXBjLWNvcmUuYwo+ID4g KysrIGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvcGNpLWVwYy1jb3JlLmMKPiA+IEBAIC0xMCw2ICsx MCw3IEBACj4gPiAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+Cj4gPiAgCj4gPiArI2luY2x1ZGUgPGxpbnV4L21zaS5oPgo+ID4gICNpbmNsdWRl IDxsaW51eC9wY2ktZXBjLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS1lcGYuaD4KPiA+ICAj aW5jbHVkZSA8bGludXgvcGNpLWVwLWNmcy5oPgo+ID4gQEAgLTc4Myw2ICs3ODQsMTk3IEBAIHZv aWQgcGNpX2VwY19ibWVfbm90aWZ5KHN0cnVjdCBwY2lfZXBjICplcGMpCj4gPiAgfQo+ID4gIEVY UE9SVF9TWU1CT0xfR1BMKHBjaV9lcGNfYm1lX25vdGlmeSk7Cj4gPiAgCj4gPiArLyoqCj4gPiAr ICogcGNpX2VwY19hbGxvY19kb29yYmVsbCgpIC0gYWxsb2MgYW4gYWRkcmVzcyBzcGFjZSB0byBs ZXQgUkMgdHJpZ2dlciBFUCBzaWRlIElSUSBieSB3cml0ZSBkYXRhIHRvCj4gPiArICoJCQkgICAg ICB0aGUgc3BhY2UuCj4gCj4gIkFsbG9jYXRlIHBsYXRmb3JtIHNwZWNpZmljIGRvb3JiZWxsIElS UXMgdG8gYmUgdXNlZCBieSB0aGUgaG9zdCB0byB0cmlnZ2VyCj4gZG9vcmJlbGxzIG9uIEVQLiIK PiAKPiA+ICsgKgo+ID4gKyAqIEBlcGM6IHRoZSBFUEMgZGV2aWNlIHRoYXQgbmVlZCBkb29yYmVs bCBhZGRyZXNzIGFuZCBkYXRhIGZyb20gUkMuCj4gCj4gRVBDIGRldmljZSBmb3Igd2hpY2ggdGhl IGRvb3JiZWxsIG5lZWRzIHRvIGJlIGFsbG9jYXRlZAo+IAo+ID4gKyAqIEBmdW5jX25vOiB0aGUg cGh5c2ljYWwgZW5kcG9pbnQgZnVuY3Rpb24gbnVtYmVyIGluIHRoZSBFUEMgZGV2aWNlLgo+ID4g KyAqIEB2ZnVuY19ubzogdGhlIHZpcnR1YWwgZW5kcG9pbnQgZnVuY3Rpb24gbnVtYmVyIGluIHRo ZSBwaHlzaWNhbCBmdW5jdGlvbi4KPiA+ICsgKiBAbnVtX21zZ3M6IHRoZSB0b3RhbCBudW1iZXIg b2YgZG9vcmJlbGwgbWVzc2FnZXMKPiAKPiBzL251bV9tc2dzL251bV9kYgo+IAo+ID4gKyAqCj4g PiArICogUmV0dXJuOiAwIHN1Y2Nlc3MsIG90aGVyIGlzIGZhaWx1cmUKPiA+ICsgKi8KPiA+ICtp bnQgcGNpX2VwY19hbGxvY19kb29yYmVsbChzdHJ1Y3QgcGNpX2VwYyAqZXBjLCB1OCBmdW5jX25v LCB1OCB2ZnVuY19ubywgaW50IG51bV9tc2dzKQo+ID4gK3sKPiA+ICsJaW50IHJldDsKPiA+ICsK PiA+ICsJaWYgKElTX0VSUl9PUl9OVUxMKGVwYykgfHwgZnVuY19ubyA+PSBlcGMtPm1heF9mdW5j dGlvbnMpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJaWYgKHZmdW5jX25vID4g MCAmJiAoIWVwYy0+bWF4X3ZmcyB8fCB2ZnVuY19ubyA+IGVwYy0+bWF4X3Zmc1tmdW5jX25vXSkp Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJaWYgKCFlcGMtPm9wcy0+YWxsb2Nf ZG9vcmJlbGwpCj4gPiArCQlyZXR1cm4gMDsKPiAKPiBZb3UgbWVudGlvbmVkIDAgaXMgYSBzdWNj ZXNzLiBTbyBpZiB0aGVyZSBpcyBubyBjYWxsYmFjaywgeW91IHdhbnQgdG8gcmV0dXJuCj4gc3Vj Y2Vzcz8KPiAKPiA+ICsKPiA+ICsJbXV0ZXhfbG9jaygmZXBjLT5sb2NrKTsKPiA+ICsJcmV0ID0g ZXBjLT5vcHMtPmFsbG9jX2Rvb3JiZWxsKGVwYywgZnVuY19ubywgdmZ1bmNfbm8sIG51bV9tc2dz KTsKPiAKPiBXaHkgY2FuJ3QgeW91IGp1c3QgY2FsbCB0aGUgZ2VuZXJpYyBmdW5jdGlvbiBoZXJl IGFuZCBpbiBvdGhlciBwbGFjZXMgaW5zdGVhZCBvZgo+IGltcGxlbWVudGluZyBjYWxsYmFja3M/ IEkgZG8gbm90IHNlZSBhIG5lY2Vzc2l0eSBmb3IgRVBDIHNwZWNpZmljIGNhbGxiYWNrcy4gSWYK PiB0aGVyZSBpcyBvbmUsIHBsZWFzZSBzcGVjaWZ5LgoKMS4gUmVmZXIgdjEgeW91ciBjb21tZW50 cy4KaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvaW14LzIwMjMwOTA2MTQ1MjI3LkdDNTkzMEB0aGlu a3BhZC8KMi4gTWF5YmUgc29tZSBlcCBjb250cm9sbGVyIGhhdmUgYnVpbHQtaW4gZG9vcmJlbGwg c3VwcG9ydC4gV3JpdGUgdG8gc29tZQphZGRyZXNzIHRvIHRyaWdnZXIgZG9vcmJlbGwgaXJxLgoK RnJhbmsKCj4gCj4gPiArCW11dGV4X3VubG9jaygmZXBjLT5sb2NrKTsKPiA+ICsKPiA+ICsJcmV0 dXJuIHJldDsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTF9HUEwocGNpX2VwY19hbGxvY19kb29y YmVsbCk7Cj4gPiArCj4gPiArLyoqCj4gPiArICogcGNpX2VwY19mcmVlX2Rvb3JiZWxsKCkgLSBm cmVlIHJlc291cmNlIGFsbG9jYXRlZCBieSBwY2lfZXBjX2FsbG9jX2Rvb3JiZWxsKCkKPiA+ICsg Kgo+ID4gKyAqIEBlcGM6IHRoZSBFUEMgZGV2aWNlIHRoYXQgbmVlZCBkb29yYmVsbCBhZGRyZXNz IGFuZCBkYXRhIGZyb20gUkMuCj4gCj4gU2FtZSBhcyBhYm92ZS4KPiAKPiA+ICsgKiBAZnVuY19u bzogdGhlIHBoeXNpY2FsIGVuZHBvaW50IGZ1bmN0aW9uIG51bWJlciBpbiB0aGUgRVBDIGRldmlj ZS4KPiA+ICsgKiBAdmZ1bmNfbm86IHRoZSB2aXJ0dWFsIGVuZHBvaW50IGZ1bmN0aW9uIG51bWJl ciBpbiB0aGUgcGh5c2ljYWwgZnVuY3Rpb24uCj4gPiArICoKPiA+ICsgKiBSZXR1cm46IDAgc3Vj Y2Vzcywgb3RoZXIgaXMgZmFpbHVyZQo+ID4gKyAqLwo+ID4gK3ZvaWQgcGNpX2VwY19mcmVlX2Rv b3JiZWxsKHN0cnVjdCBwY2lfZXBjICplcGMsIHU4IGZ1bmNfbm8sIHU4IHZmdW5jX25vKQo+ID4g K3sKPiA+ICsJaWYgKElTX0VSUl9PUl9OVUxMKGVwYykgfHwgZnVuY19ubyA+PSBlcGMtPm1heF9m dW5jdGlvbnMpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCWlmICh2ZnVuY19ubyA+IDAgJiYg KCFlcGMtPm1heF92ZnMgfHwgdmZ1bmNfbm8gPiBlcGMtPm1heF92ZnNbZnVuY19ub10pKQo+ID4g KwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlpZiAoIWVwYy0+b3BzLT5mcmVlX2Rvb3JiZWxsKQo+ID4g KwkJcmV0dXJuOwo+ID4gKwo+ID4gKwltdXRleF9sb2NrKCZlcGMtPmxvY2spOwo+ID4gKwllcGMt Pm9wcy0+ZnJlZV9kb29yYmVsbChlcGMsIGZ1bmNfbm8sIHZmdW5jX25vKTsKPiAKPiBTYW1lIGFz IHN1Z2dlc3RlZCBhYm92ZS4KPiAKPiA+ICsJbXV0ZXhfdW5sb2NrKCZlcGMtPmxvY2spOwo+ID4g K30KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChwY2lfZXBjX2ZyZWVfZG9vcmJlbGwpOwo+ID4gKwo+ ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCBwY2lfZXBmX2dlbmVyaWNfZG9vcmJlbGxfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkYXRhKQo+ID4gK3sKPiA+ICsJc3RydWN0IHBjaV9lcGYgKmVwZiA9IGRh dGE7Cj4gPiArCj4gPiArCWlmIChlcGYtPmV2ZW50X29wcyAmJiBlcGYtPmV2ZW50X29wcy0+ZG9v cmJlbGwpCj4gPiArCQllcGYtPmV2ZW50X29wcy0+ZG9vcmJlbGwoZXBmLCBpcnEgLSBlcGYtPnZp cnFfYmFzZSk7Cj4gCj4gU2FtZSBhcyBzdWdnZXN0ZWQgYWJvdmUuCj4gCj4gPiArCj4gPiArCXJl dHVybiBJUlFfSEFORExFRDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgcGNpX2VwY19n ZW5lcmljX3dyaXRlX21zaV9tc2coc3RydWN0IG1zaV9kZXNjICpkZXNjLCBzdHJ1Y3QgbXNpX21z ZyAqbXNnKQo+ID4gK3sKPiA+ICsJc3RydWN0IHBjaV9lcGMgKmVwYyA9IE5VTEw7Cj4gPiArCXN0 cnVjdCBjbGFzc19kZXZfaXRlciBpdGVyOwo+ID4gKwlzdHJ1Y3QgcGNpX2VwZiAqZXBmOwo+ID4g KwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gPiArCj4gPiArCWNsYXNzX2Rldl9pdGVyX2luaXQoJml0 ZXIsIHBjaV9lcGNfY2xhc3MsIE5VTEwsIE5VTEwpOwo+ID4gKwl3aGlsZSAoKGRldiA9IGNsYXNz X2Rldl9pdGVyX25leHQoJml0ZXIpKSkgewo+ID4gKwkJaWYgKGRldi0+cGFyZW50ICE9IGRlc2Mt PmRldikKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCWVwYyA9IHRvX3BjaV9lcGMoZGV2 KTsKPiA+ICsKPiA+ICsJCWNsYXNzX2Rldl9pdGVyX2V4aXQoJml0ZXIpOwo+ID4gKwkJYnJlYWs7 Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKCFlcGMpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiAr CS8qIE9ubHkgc3VwcG9ydCBvbmUgRVBGIGZvciBkb29yYmVsbCAqLwo+ID4gKwllcGYgPSBsaXN0 X2ZpcnN0X2VudHJ5X29yX251bGwoJmVwYy0+cGNpX2VwZiwgc3RydWN0IHBjaV9lcGYsIGxpc3Qp Owo+ID4gKwo+IAo+IE5vIG5lZWQgb2YgdGhpcyBuZXdsaW5lCj4gCj4gPiArCWlmICghZXBmKQo+ ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlpZiAoZXBmLT5tc2cgJiYgZGVzYy0+bXNpX2luZGV4 IDwgZXBmLT5udW1fbXNncykKPiA+ICsJCWVwZi0+bXNnW2Rlc2MtPm1zaV9pbmRleF0gPSAqbXNn Owo+ID4gK30KPiA+ICsKPiA+ICsKPiAKPiBSZW1vdmUgZXh0cmEgbmV3bGluZQo+IAo+ID4gKy8q Kgo+ID4gKyAqIHBjaV9lcGNfZ2VuZXJpY19hbGxvY19kb29yYmVsbCgpIC0gQ29tbW9uIGhlbHAg ZnVuY3Rpb24uIEFsbG9jYXRlIGFkZHJlc3Mgc3BhY2UgZnJvbSBNU0kKPiA+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIKPiA+ICsgKgo+ID4gKyAqIEBl cGM6IHRoZSBFUEMgZGV2aWNlIHRoYXQgbmVlZCBkb29yYmVsbCBhZGRyZXNzIGFuZCBkYXRhIGZy b20gUkMuCj4gPiArICogQGZ1bmNfbm86IHRoZSBwaHlzaWNhbCBlbmRwb2ludCBmdW5jdGlvbiBu dW1iZXIgaW4gdGhlIEVQQyBkZXZpY2UuCj4gPiArICogQHZmdW5jX25vOiB0aGUgdmlydHVhbCBl bmRwb2ludCBmdW5jdGlvbiBudW1iZXIgaW4gdGhlIHBoeXNpY2FsIGZ1bmN0aW9uLgo+ID4gKyAq IEBudW1fbXNnczogdGhlIHRvdGFsIG51bWJlciBvZiBkb29yYmVsbCBtZXNzYWdlcwo+ID4gKyAq Cj4gCj4gU2FtZSBjb21tZW50IGFzIGZvciBwY2lfZXBjX2FsbG9jX2Rvb3JiZWxsKCkKPiAKPiA+ ICsgKiBSZW1hcms6IHVzZSB0aGlzIGZ1bmN0aW9uIG9ubHkgaWYgRVBDIGRyaXZlciBqdXN0IHJl Z2lzdGVyIG9uZSBFUEMgZGV2aWNlLgo+ID4gKyAqCj4gPiArICogUmV0dXJuOiAwIHN1Y2Nlc3Ms IG90aGVyIGlzIGZhaWx1cmUKPiA+ICsgKi8KPiA+ICtpbnQgcGNpX2VwY19nZW5lcmljX2FsbG9j X2Rvb3JiZWxsKHN0cnVjdCBwY2lfZXBjICplcGMsIHU4IGZ1bmNfbm8sIHU4IHZmdW5jX25vLCBp bnQgbnVtX21zZ3MpCj4gPiArewo+ID4gKwlzdHJ1Y3QgcGNpX2VwZiAqZXBmOwo+ID4gKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7Cj4gPiArCWludCB2aXJxLCBsYXN0Owo+ID4gKwlpbnQgcmV0Owo+ID4g KwlpbnQgaTsKPiA+ICsKPiA+ICsJaWYgKElTX0VSUl9PUl9OVUxMKGVwYykpCj4gPiArCQlyZXR1 cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJLyogQ3VycmVudGx5IG9ubHkgc3VwcG9ydCBvbmUgZnVu YyBhbmQgb25lIHZmdW5jIGZvciBkb29yYmVsbCAqLwo+ID4gKwlpZiAoZnVuY19ubyB8fCB2ZnVu Y19ubykKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKwllcGYgPSBsaXN0X2ZpcnN0 X2VudHJ5X29yX251bGwoJmVwYy0+cGNpX2VwZiwgc3RydWN0IHBjaV9lcGYsIGxpc3QpOwo+ID4g KwlpZiAoIWVwZikKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKwlkZXYgPSBlcGMt PmRldi5wYXJlbnQ7Cj4gPiArCXJldCA9IHBsYXRmb3JtX21zaV9kb21haW5fYWxsb2NfaXJxcyhk ZXYsIG51bV9tc2dzLCBwY2lfZXBjX2dlbmVyaWNfd3JpdGVfbXNpX21zZyk7Cj4gPiArCWlmIChy ZXQpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIE1TSVxuIik7Cj4g PiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlsYXN0ID0gLTE7Cj4gPiAr CWZvciAoaSA9IDA7IGkgPCBudW1fbXNnczsgaSsrKSB7Cj4gCj4gWW91IHNob3VsZCBpdGVyYXRl IG92ZXIgbXNpX2Rlc2MgYXMgYmVsb3c6Cj4gCj4gICAgICAgICBtc2lfbG9ja19kZXNjcyhkZXYp Owo+ICAgICAgICAgbXNpX2Zvcl9lYWNoX2Rlc2MoZGVzYywgZGV2LCBNU0lfREVTQ19BTEwpIHsK PiAJCS4uLgo+IAl9Cj4gCW1zaV91bmxvY2tfZGVzY3MoZGV2KTsKPiAKPiA+ICsJCXZpcnEgPSBt c2lfZ2V0X3ZpcnEoZGV2LCBpKTsKPiA+ICsJCWlmIChpID09IDApCj4gPiArCQkJZXBmLT52aXJx X2Jhc2UgPSB2aXJxOwo+ID4gKwo+ID4gKwkJcmV0ID0gcmVxdWVzdF9pcnEodmlycSwgcGNpX2Vw Zl9nZW5lcmljX2Rvb3JiZWxsX2hhbmRsZXIsIDAsCj4gCj4gCXJlcXVlc3RfaXJxKGRlc2MtPmly cSwgLi4uKQo+IAo+ID4gKwkJCQkgIGthc3ByaW50ZihHRlBfS0VSTkVMLCAicGNpLWVwYy1kb29y YmVsbCVkIiwgaSksIGVwZik7Cj4gPiArCj4gPiArCQlpZiAocmV0KSB7Cj4gPiArCQkJZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBkb29yYmVsbFxuIik7Cj4gPiArCQkJZ290byBlcnJf ZnJlZV9pcnE7Cj4gPiArCQl9Cj4gPiArCQlsYXN0ID0gaTsKPiA+ICsJfQo+ID4gKwo+ID4gKwly ZXR1cm4gMDsKPiA+ICsKPiA+ICtlcnJfZnJlZV9pcnE6Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBs YXN0OyBpKyspCj4gPiArCQlrZnJlZShmcmVlX2lycShlcGYtPnZpcnFfYmFzZSArIGksIGVwZikp Owo+ID4gKwlwbGF0Zm9ybV9tc2lfZG9tYWluX2ZyZWVfaXJxcyhkZXYpOwo+ID4gKwo+ID4gKwly ZXR1cm4gLUVJTlZBTDsKPiAKPiAJcmV0dXJuIHJldDsKPiAKPiA+ICt9Cj4gPiArRVhQT1JUX1NZ TUJPTF9HUEwocGNpX2VwY19nZW5lcmljX2FsbG9jX2Rvb3JiZWxsKTsKPiA+ICsKPiAKPiBbLi4u XQo+IAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLWVwZi5oIGIvaW5jbHVkZS9s aW51eC9wY2ktZXBmLmgKPiA+IGluZGV4IDNmNDRiNmFlYzQ3NzAuLjQ4NWMxNDZhNWVmZTIgMTAw NjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS1lcGYuaAo+ID4gKysrIGIvaW5jbHVkZS9s aW51eC9wY2ktZXBmLmgKPiA+IEBAIC03OSw2ICs3OSw3IEBAIHN0cnVjdCBwY2lfZXBjX2V2ZW50 X29wcyB7Cj4gPiAgCWludCAoKmxpbmtfdXApKHN0cnVjdCBwY2lfZXBmICplcGYpOwo+ID4gIAlp bnQgKCpsaW5rX2Rvd24pKHN0cnVjdCBwY2lfZXBmICplcGYpOwo+ID4gIAlpbnQgKCpibWUpKHN0 cnVjdCBwY2lfZXBmICplcGYpOwo+ID4gKwlpbnQgKCpkb29yYmVsbCkoc3RydWN0IHBjaV9lcGYg KmVwZiwgaW50IGluZGV4KTsKPiAKPiBrZG9jIG1pc3NpbmcuCj4gCj4gPiAgfTsKPiA+ICAKPiA+ ICAvKioKPiA+IEBAIC0xODAsNiArMTgxLDkgQEAgc3RydWN0IHBjaV9lcGYgewo+ID4gIAl1bnNp Z25lZCBsb25nCQl2ZnVuY3Rpb25fbnVtX21hcDsKPiA+ICAJc3RydWN0IGxpc3RfaGVhZAlwY2lf dmVwZjsKPiA+ICAJY29uc3Qgc3RydWN0IHBjaV9lcGNfZXZlbnRfb3BzICpldmVudF9vcHM7Cj4g PiArCXN0cnVjdCBtc2lfbXNnICptc2c7Cj4gPiArCXUxNiBudW1fbXNnczsKPiAKPiBudW1fZGIK PiAKPiBZb3UgYWxzbyBuZWVkIHRvIGFkZCBrZG9jIGZvciBlYWNoIG5ldyBtZW1iZXIuCj4gCj4g LSBNYW5pCj4gCj4gLS0gCj4g4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCu muCuv+CuteCuruCvjQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=