Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2091805imj; Sun, 17 Feb 2019 23:09:12 -0800 (PST) X-Google-Smtp-Source: AHgI3Ia1pvQqfMoih2ImAPaBC0PgZmzVAr0N4BK+QyuCl2Fo76kNOutDu4FpA4aYQbCj9KDMg3qD X-Received: by 2002:a63:5109:: with SMTP id f9mr17478201pgb.450.1550473752688; Sun, 17 Feb 2019 23:09:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550473752; cv=none; d=google.com; s=arc-20160816; b=Dkezai/kD3l76vk6LH5DSJWjhQSme/nDGGDWWuH6MgRYafsuQocboe7J3ZuH2hSJU8 xSHI1H1jsuassEUytZsRYAnB6FT/glD0+paHjgfyQk04ogR0hCYLqv50+X+D2Qi7y8FI 2HQQ6n+ZgVp9uOo5/fnTyHhn5DuWd+h2XgjPtjlMvgGE1hI39CcQzHeS1vg9gCt1ZBN5 wItoi5wR7KT5pmKJM1SsoOW7FZphe/qARzKmIZwVYQe52RDxSdcG4laQMtwn73veVNnn adMNGk+s+KLlQZvBUJf1Of1L1eSgVixcQETgDpQV3kFGSWJFyLwng4HY/BeXjRJbxfa8 7fFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=k/ALnYjDhlG6HSrkUarVC2Enad8vdplLFn7LD4R9+3w=; b=otvNxcAV+F5pxXI3dGCTtnTaOeh0nU3nyrqeP08k2qzD19bSlERF7GU+7EElxRvQW8 ct28ryX11SSgz2Z3EOOOwoTb00qEx42J3QPiekvSqxXX4opgCd7CDdtY4JyxzLbIFQ/S DpgfWJrxHH3g+BnMwwfsFoCX0ew8seSOpi63cQvfFFMxitF6FzznnGA2fsPCRNHpn0wO fQubGNjOHf//aaayYFGl9JAxXkDuHkPDGIBE4k8WkEK0k7yyNSNhbCyzjaR6rKakSRb+ vhJOp3s4qD3ZIbfxSOnrXdfHPKeikLX6UtiSgAnHE6ImdPECqdnicIDfBqY29JAlXOsP QXkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=C8lY2CWP; 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=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i9si11914115pgs.156.2019.02.17.23.08.57; Sun, 17 Feb 2019 23:09:12 -0800 (PST) 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=@nxp.com header.s=selector1 header.b=C8lY2CWP; 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=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728588AbfBRHHd (ORCPT + 99 others); Mon, 18 Feb 2019 02:07:33 -0500 Received: from mail-eopbgr140087.outbound.protection.outlook.com ([40.107.14.87]:12295 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726426AbfBRHHd (ORCPT ); Mon, 18 Feb 2019 02:07:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k/ALnYjDhlG6HSrkUarVC2Enad8vdplLFn7LD4R9+3w=; b=C8lY2CWPZgGAPwNVO5zwbV7DPiUzlzJUwLdQC7ZfedAqbJfXUYjnkmSmcp28eC4QiHUOchDPAUZgb3WEzDhVadM13d6zRMQDlOMkk1/Ji6pwVRgFX3VS41NRynGvahQPnOeBsqNJtFUsR/JqlfUSojuxwsFPCv1jCcN/0xRhfds= Received: from VI1PR04MB5792.eurprd04.prod.outlook.com (20.178.204.10) by VI1PR04MB4301.eurprd04.prod.outlook.com (52.134.31.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.18; Mon, 18 Feb 2019 07:07:23 +0000 Received: from VI1PR04MB5792.eurprd04.prod.outlook.com ([fe80::2092:3c87:6c03:be2d]) by VI1PR04MB5792.eurprd04.prod.outlook.com ([fe80::2092:3c87:6c03:be2d%2]) with mapi id 15.20.1622.018; Mon, 18 Feb 2019 07:07:23 +0000 From: "Z.q. Hou" To: Subrahmanya Lingappa CC: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" , Mingkai Hu , "M.h. Lian" , Xiaowei Bao Subject: RE: [PATCHv3 09/27] PCI: mobiveil: correct inbound/outbound window setup routines Thread-Topic: [PATCHv3 09/27] PCI: mobiveil: correct inbound/outbound window setup routines Thread-Index: AQHUt6nzj33tdIACb0S6/SobpMFmRqXQw48AgBR7y9A= Date: Mon, 18 Feb 2019 07:07:23 +0000 Message-ID: References: <20190129080926.36773-1-Zhiqiang.Hou@nxp.com> <20190129080926.36773-10-Zhiqiang.Hou@nxp.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0388a6d3-754e-4bf1-8dd7-08d6956fbb41 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:VI1PR04MB4301; x-ms-traffictypediagnostic: VI1PR04MB4301: x-microsoft-exchange-diagnostics: =?utf-8?B?MTtWSTFQUjA0TUI0MzAxOzIzOmpReDhrbFArWFNzMVIxQklPVDFMTVNGRXIx?= =?utf-8?B?NWRjMjhIRWhhVW1RL0lJa3J3cjA1cW9Zc2Vqc0FJeFJodEVuR2RnS2JaRHFt?= =?utf-8?B?QlVsOWZ2V1JHZWthenZoR3lCdVpNdER0RmRWWnlEeUMwaCs2STZTZU5mTVJh?= =?utf-8?B?clZkUVd5REZXV2JYM0lqR1ROR0FWNTh0TWVvVnVnazZmU0k1d2l1SzcyZmZK?= =?utf-8?B?R2RlQ1czMGtqSXhwVlhZUzBwU1pMUGtuU1hac3JHQ3cvN3BRQm9MaFVWS3Bs?= =?utf-8?B?bDIzR21LYTlFWFVDZXBndm9lWjFhNTMvckFOY3k0U29KalJsNkNjc1JUR04z?= =?utf-8?B?U05GNXFCZTVvTEloTXpaMmNwYnZzWWJzWGtUUnJxd3pSUXlIa1dPN1FwUU8z?= =?utf-8?B?ZVVRY3g4TkxDMGF6WTBMbGlsSkNaYVZoOFEydFVHRjF2dU5zeWRkTFRROHhV?= =?utf-8?B?dWdOMno0K0w1WmMreGZmMWdPdGc2NGVPcnJKb3ZlOW5jREwzMlpIVTNONUxV?= =?utf-8?B?LzFIVHFvVVZyRjNleWxSaE1xdHdEOTdtR2FsRUJsUnBKZG5rYWwyUUt1TGJR?= =?utf-8?B?cmx5RFdHZTFjOG9MQTc5c3kwRUVTNmZlL09FaGpWeHVsc2xJNDMrRzZaVWxW?= =?utf-8?B?RlFRL24xbmJ4RDhHR2VhVDVUK1lSQ2s4d1F2TmUrdHcxSThjV1hBb09TNGRS?= =?utf-8?B?UGc2MEdTWm5iUTYxdGdKR250S3U2QW4xTjM5QmEzUVhTWGJrWUIyR2VqL1hX?= =?utf-8?B?V01NR05Wc1pIMzdLdHRSSW9EZk5vcU1JWnlXVmJXeFhCdkEvVjhvQU5rdmZV?= =?utf-8?B?UzQyQ1U2OHU4bHNaQnJ0VW1MSGFnWkl6YjNld3B0dzk2QlF1RFZiQkhlMFlv?= =?utf-8?B?YU84TXdIQnc5V0lRRHE2RTA0bUdKRXFqK2QxZktCRzl4WnN0S3BZL0pXWmtD?= =?utf-8?B?YWZ6bUtyVkkvWndGOFdqRnQyQmlnT3RCZ3l0amU3Umx6TUtCMW1BQmxTc1dK?= =?utf-8?B?S1h2cUdsSWV3ZGl2ZFZpeU5veFg4WFc1RE5BU25PUDZ0SjBROE9ucE5SU043?= =?utf-8?B?ZGlacUVVbVI4VHVXMXQ1SEJ4ZnpFdS9IK1pPTTN0VldFUWxSY0xRd0t1OXEy?= =?utf-8?B?L0taZzF2eGd3QW1BelJISDgvSnpNbXBuUEYyOUoyRTYveEx4MDArZ0l0WjBR?= =?utf-8?B?TjBJMlJJamdjMWwzL3hHeFBHRGR3VXJueUp5azNpd0NpOFUxMzI3dmQ1QWkv?= =?utf-8?B?RC9WVFJFcVNZZ1o1WHdxcTdIbU95ditoOWJLaFNGVW1SdTJQcW1oNHR3NTBw?= =?utf-8?B?ODVqMGlnSFROQjZ4ajM1Ulc4TysvZmNBeE9jVm5sNWVKQldLeldvMEltUTdr?= =?utf-8?B?U3phd2lIY0ZRMEIvaUUzejI4Z2RHYk1VSHJHb3FadmxaMTZmQmhJTW9ZRFZ6?= =?utf-8?B?Nkp6UHR1b1RaY0I5NDUxUVBLQVdjV29rbVV0TG9KbjFhWW5zWFRCY1p0Z0c2?= =?utf-8?B?S21VVU03VGNVTjNrUjlDaWpvODFOSEU4dXU3M3R5bWxZVXBlRS9SOHpjcUg5?= =?utf-8?B?OTJLditrYkdjblhmelRJNCtJZTR2L1lWOU41VjhzWDM2UmxjMWdhNWp0SXF5?= =?utf-8?B?dmx6TUkvcFVuckJVMzlwRmtlUDdzdURyWVdrQ21YbmhKR1Q0RVp4dXFwQ3Vm?= =?utf-8?Q?0h5QkQcbhyYZfPsXwQ=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09525C61DB x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(39860400002)(376002)(346002)(366004)(136003)(13464003)(189003)(199004)(81156014)(3846002)(6916009)(68736007)(256004)(33656002)(14454004)(2906002)(486006)(8676002)(6246003)(81166006)(7736002)(53936002)(8936002)(86362001)(6116002)(74316002)(305945005)(55016002)(229853002)(9686003)(66066001)(71190400001)(7416002)(71200400001)(6436002)(76176011)(99286004)(105586002)(106356001)(7696005)(102836004)(186003)(53546011)(26005)(5660300002)(316002)(54906003)(6506007)(25786009)(478600001)(97736004)(11346002)(446003)(4326008)(476003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR04MB4301;H:VI1PR04MB5792.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: dhzIgifNdefF+DFW0k1W7c5+WWZPHFoTuhZCgT7wtqYDTWo9SrfyH+2RaLEGqsW6qvk1M5R207F0UU8PJb1F70TTRadI683fiVMuIJfFLtkPyEvIgvlsIg/ngRMUabmEWDShwj3fClSbo7MJ7I9YHG1z2nX+C4bXHZwShA/HvZLak8udRNU8fpAYYbKwSwJtGE+t2fVrXjKjrzieUwvCR2jn5F6ZyWLRLnV5NxvHt0nesnNcr7WMX6Pb6xVz9uUKRktxzZUshW6CmtO4Wo0pyYlbNc6hwfdUbYa7KZTuWOuYj5NYpPjycbH43XIF5snyEQIjsl8Ohg9oG9t/FNN8riVfWx/2FgM8RXb3NzjOCxHMnZc4Mn4Ug6czbJDL+l142Q/HN4tq20n5dcEwrka9IdFLf3qXMwzRvgvvs02QGxM= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0388a6d3-754e-4bf1-8dd7-08d6956fbb41 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Feb 2019 07:07:23.3226 (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-Transport-CrossTenantHeadersStamped: VI1PR04MB4301 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgU3ViYnUsDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciBjb21tZW50cyENCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdWJyYWhtYW55YSBMaW5nYXBwYSA8bC5zdWJy YWhtYW55YUBtb2JpdmVpbC5jby5pbj4NCj4gU2VudDogMjAxOeW5tDLmnIg15pelIDE0OjEwDQo+ IFRvOiBaLnEuIEhvdSA8emhpcWlhbmcuaG91QG54cC5jb20+DQo+IENjOiBsaW51eC1wY2lAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7DQo+IGRl dmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0K PiBiaGVsZ2Fhc0Bnb29nbGUuY29tOyByb2JoK2R0QGtlcm5lbC5vcmc7IG1hcmsucnV0bGFuZEBh cm0uY29tOw0KPiBzaGF3bmd1b0BrZXJuZWwub3JnOyBMZW8gTGkgPGxlb3lhbmcubGlAbnhwLmNv bT47DQo+IGxvcmVuem8ucGllcmFsaXNpQGFybS5jb207IGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29t Ow0KPiB3aWxsLmRlYWNvbkBhcm0uY29tOyBNaW5na2FpIEh1IDxtaW5na2FpLmh1QG54cC5jb20+ OyBNLmguIExpYW4NCj4gPG1pbmdodWFuLmxpYW5AbnhwLmNvbT47IFhpYW93ZWkgQmFvIDx4aWFv d2VpLmJhb0BueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIdjMgMDkvMjddIFBDSTogbW9i aXZlaWw6IGNvcnJlY3QgaW5ib3VuZC9vdXRib3VuZA0KPiB3aW5kb3cgc2V0dXAgcm91dGluZXMN Cj4gDQo+IFpRLA0KPiBwbGVhc2UgY29ycmVjdCB0aGUgdGFiIHNwYWNpbmcgb2YgdGhlIG1hY3Jv IGRlZmluaXRpb25zLCBvdGhlcndpc2UgaXRzIE9LLg0KDQpJdCBpcyBqdXN0IGEgZGlzcGxheSBp c3N1ZSBpbiB0aGUgZW1haWwuDQoNCj4gUmV2aWV3ZWQtYnk6IFN1YnJhaG1hbnlhIExpbmdhcHBh IDxsLnN1YnJhaG1hbnlhQG1vYml2ZWlsLmNvLmluPg0KPiANCj4gT24gVHVlLCBKYW4gMjksIDIw MTkgYXQgMTozOSBQTSBaLnEuIEhvdSA8emhpcWlhbmcuaG91QG54cC5jb20+IHdyb3RlOg0KPiA+ DQo+ID4gRnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCj4gPg0KPiA+ IE91dGJvdW5kIHdpbmRvdyByb3V0aW5lOg0KPiA+ICAtIFJlbW92ZWQgdW51c2VkIHZhciBkZWZp bml0aW9uIGFuZCByZWdpc3RlciByZWFkIG9wZXJhdGlvbnMuDQo+ID4gIC0gQWRkZWQgdGhlIHVw cGVyIDMyLWJpdCBjcHUgYWRkcmVzcyBzZXR1cCBvZiB0aGUgd2luZG93Lg0KPiA+ICAtIEluc3Rl YWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBjaGFuZ2UgdGhlIGZpZWxkcyBzcGVjaWZpZWQuDQo+ ID4gIC0gTWFza2VkIHRoZSBsb3dlciBiaXRzIG9mIHdpbmRvdyBzaXplIGluIGNhc2Ugb3ZlcnJp ZGUgdGhlDQo+ID4gICAgY29udHJvbCBiaXRzLg0KPiA+ICAtIENoZWNrIGlmIHRoZSBwYXNzaW5n IHdpbmRvdyBudW1iZXIgaXMgYXZhaWxhYmxlLCBpbnN0ZWFkIG9mDQo+ID4gICAgdGhlIHRvdGFs IG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCj4gPg0KPiA+IEluYm91bmQgd2lu ZG93IHJvdXRpbmU6DQo+ID4gIC0gQWRkZWQgcGFyYW1ldGVyICd1NjQgY3B1X2FkZHInIHRvIHNw ZWNpZnkgdGhlIGNwdSBhZGRyZXNzDQo+ID4gICAgb2YgdGhlIHdpbmRvdyBpbnN0ZWFkIG9mIHVz aW5nICdwY2lfYWRkcicuDQo+ID4gIC0gQ2hhbmdlZCAnaW50IHBjaV9hZGRyJyB0byAndTY0IHBj aV9hZGRyJywgYW5kIGFkZGVkIHNldHVwDQo+ID4gICAgb2YgdGhlIHVwcGVyIDMyLWJpdCBwY2kg YWRkcmVzcyBvZiB0aGUgd2luZG93Lg0KPiA+ICAtIE1vdmVkIHRoZSBQQ0llIFBJTyBtYXN0ZXIg ZW5hYmxlbWVudCB0byBtb2JpdmVpbF9ob3N0X2luaXQoKS4NCj4gPiAgLSBJbnN0ZWFkIG9mIGJs aW5kbHkgd3JpdGUsIG9ubHkgY2hhbmdlIHRoZSBmaWVsZHMgc3BlY2lmaWVkLg0KPiA+ICAtIE1h c2tlZCB0aGUgbG93ZXIgYml0cyBvZiB3aW5kb3cgc2l6ZSBpbiBjYXNlIG92ZXJyaWRlIHRoZQ0K PiA+ICAgIGNvbnRyb2wgYml0cy4NCj4gPiAgLSBDaGVjayBpZiB0aGUgcGFzc2luZyB3aW5kb3cg bnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0KPiA+ICAgIHRoZSB0b3RhbCBudW1iZXIg b2YgdGhlIGluaXRpYWxpemVkIHdpbmRvd3MuDQo+ID4gIC0gQW5kIGFkZGVkIHRoZSBzdGF0aXN0 aWMgb2YgaW5pdGlhbGl6ZWQgaW5ib3VuZCB3aW5kb3dzLg0KPiA+DQo+ID4gRml4ZXM6IDlhZjZi Y2IxMWUxMiAoIlBDSTogbW9iaXZlaWw6IEFkZCBNb2JpdmVpbCBQQ0llIEhvc3QgQnJpZGdlIElQ DQo+ID4gZHJpdmVyIikNCj4gPiBTaWduZWQtb2ZmLWJ5OiBIb3UgWmhpcWlhbmcgPFpoaXFpYW5n LkhvdUBueHAuY29tPg0KPiA+IFJldmlld2VkLWJ5OiBNaW5naHVhbiBMaWFuIDxNaW5naHVhbi5M aWFuQG54cC5jb20+DQo+ID4gLS0tDQo+ID4gVjM6DQo+ID4gIC0gTm8gY2hhbmdlDQo+ID4NCj4g PiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1vYml2ZWlsLmMgfCA3MA0KPiA+ICsrKysr KysrKysrKysrKy0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25z KCspLCAyOCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KPiA+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLW1vYml2ZWlsLmMNCj4gPiBpbmRleCBlODhhZmM3OTJhNWMuLjRiYTQ1ODQ3NGU0MiAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jDQo+ID4gQEAgLTY1 LDkgKzY1LDEzIEBADQo+ID4gICNkZWZpbmUgUEFCX0FYSV9BTUFQX0NUUkwod2luKSAgICAgICAg IFBBQl9SRUdfQUREUigweDBiYTAsDQo+IHdpbikNCj4gPiAgI2RlZmluZSAgV0lOX0VOQUJMRV9T SElGVCAgICAgICAgICAgICAgMA0KPiA+ICAjZGVmaW5lICBXSU5fVFlQRV9TSElGVCAgICAgICAg ICAgICAgICAgICAgICAgIDENCj4gPiArI2RlZmluZSAgV0lOX1RZUEVfTUFTSyAgICAgICAgICAg ICAgICAgMHgzDQo+ID4gKyNkZWZpbmUgIFdJTl9TSVpFX1NISUZUICAgICAgICAgICAgICAgICAg ICAgICAgMTANCj4gPiArI2RlZmluZSAgV0lOX1NJWkVfTUFTSyAgICAgICAgICAgICAgICAgMHgz ZmZmZmYNCj4gPg0KPiA+ICAjZGVmaW5lIFBBQl9FWFRfQVhJX0FNQVBfU0laRSh3aW4pDQo+IFBB Ql9FWFRfUkVHX0FERFIoMHhiYWYwLCB3aW4pDQo+ID4NCj4gPiArI2RlZmluZSBQQUJfRVhUX0FY SV9BTUFQX0FYSV9XSU4od2luKQ0KPiBQQUJfRVhUX1JFR19BRERSKDB4ODBhMCwgd2luKQ0KPiA+ ICAjZGVmaW5lIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbikgICAgICBQQUJfUkVHX0FERFIoMHgw YmE0LA0KPiB3aW4pDQo+ID4gICNkZWZpbmUgIEFYSV9XSU5ET1dfQUxJR05fTUFTSyAgICAgICAg IDMNCj4gPg0KPiA+IEBAIC04Miw4ICs4NiwxMCBAQA0KPiA+ICAjZGVmaW5lIFBBQl9QRVhfQU1B UF9DVFJMKHdpbikgICAgICAgICBQQUJfUkVHX0FERFIoMHg0YmEwLA0KPiB3aW4pDQo+ID4gICNk ZWZpbmUgIEFNQVBfQ1RSTF9FTl9TSElGVCAgICAgICAgICAgIDANCj4gPiAgI2RlZmluZSAgQU1B UF9DVFJMX1RZUEVfU0hJRlQgICAgICAgICAgMQ0KPiA+ICsjZGVmaW5lICBBTUFQX0NUUkxfVFlQ RV9NQVNLICAgICAgICAgICAzDQo+ID4NCj4gPiAgI2RlZmluZSBQQUJfRVhUX1BFWF9BTUFQX1NJ WkVOKHdpbikNCj4gUEFCX0VYVF9SRUdfQUREUigweGJlZjAsIHdpbikNCj4gPiArI2RlZmluZSBQ QUJfRVhUX1BFWF9BTUFQX0FYSV9XSU4od2luKQ0KPiBQQUJfRVhUX1JFR19BRERSKDB4YjRhMCwg d2luKQ0KPiA+ICAjZGVmaW5lIFBBQl9QRVhfQU1BUF9BWElfV0lOKHdpbikgICAgICBQQUJfUkVH X0FERFIoMHg0YmE0LA0KPiB3aW4pDQo+ID4gICNkZWZpbmUgUEFCX1BFWF9BTUFQX1BFWF9XSU5f TCh3aW4pICAgIFBBQl9SRUdfQUREUigweDRiYTgsDQo+IHdpbikNCj4gPiAgI2RlZmluZSBQQUJf UEVYX0FNQVBfUEVYX1dJTl9IKHdpbikgICAgUEFCX1JFR19BRERSKDB4NGJhYywNCj4gd2luKQ0K PiA+IEBAIC00NTUsNDkgKzQ2MSw1MSBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX3BjaWVfcGFyc2Vf ZHQoc3RydWN0DQo+ID4gbW9iaXZlaWxfcGNpZSAqcGNpZSkgIH0NCj4gPg0KPiA+ICBzdGF0aWMg dm9pZCBwcm9ncmFtX2liX3dpbmRvd3Moc3RydWN0IG1vYml2ZWlsX3BjaWUgKnBjaWUsIGludCB3 aW5fbnVtLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGNpX2FkZHIs IHUzMiB0eXBlLCB1NjQgc2l6ZSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTY0IGNwdV9hZGRyLCB1NjQgcGNpX2FkZHIsIHUzMg0KPiB0eXBlLA0KPiA+ICsgdTY0IHNpemUp DQo+ID4gIHsNCj4gPiAtICAgICAgIGludCBwaW9fY3RybF92YWw7DQo+ID4gLSAgICAgICBpbnQg YW1hcF9jdHJsX2R3Ow0KPiA+ICsgICAgICAgdTMyIHZhbHVlOw0KPiA+ICAgICAgICAgdTY0IHNp emU2NCA9IH4oc2l6ZSAtIDEpOw0KPiA+DQo+ID4gLSAgICAgICBpZiAoKHBjaWUtPmliX3dpbnNf Y29uZmlndXJlZCArIDEpID4gcGNpZS0+cHBpb193aW5zKSB7DQo+ID4gKyAgICAgICBpZiAod2lu X251bSA+PSBwY2llLT5wcGlvX3dpbnMpIHsNCj4gPiAgICAgICAgICAgICAgICAgZGV2X2Vycigm cGNpZS0+cGRldi0+ZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogbWF4 IGluYm91bmQgd2luZG93cw0KPiByZWFjaGVkICFcbiIpOw0KPiA+ICAgICAgICAgICAgICAgICBy ZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAtICAgICAgIHBpb19jdHJsX3ZhbCA9IGNz cl9yZWFkbChwY2llLCBQQUJfUEVYX1BJT19DVFJMKTsNCj4gPiAtICAgICAgIHBpb19jdHJsX3Zh bCB8PSAxIDw8IFBJT19FTkFCTEVfU0hJRlQ7DQo+ID4gLSAgICAgICBjc3Jfd3JpdGVsKHBjaWUs IHBpb19jdHJsX3ZhbCwgUEFCX1BFWF9QSU9fQ1RSTCk7DQo+ID4gLQ0KPiA+IC0gICAgICAgYW1h cF9jdHJsX2R3ID0gY3NyX3JlYWRsKHBjaWUsDQo+IFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0p KTsNCj4gPiAtICAgICAgIGFtYXBfY3RybF9kdyB8PSAodHlwZSA8PCBBTUFQX0NUUkxfVFlQRV9T SElGVCkgfA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICgxIDw8IEFNQVBfQ1RSTF9FTl9T SElGVCkgfA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGxvd2VyXzMyX2JpdHMoc2l6ZTY0 KTsNCj4gPiAtICAgICAgIGNzcl93cml0ZWwocGNpZSwgYW1hcF9jdHJsX2R3LCBQQUJfUEVYX0FN QVBfQ1RSTCh3aW5fbnVtKSk7DQo+ID4gKyAgICAgICB2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQ QUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQo+ID4gKyAgICAgICB2YWx1ZSAmPSB+KEFNQVBf Q1RSTF9UWVBFX01BU0sgPDwNCj4gQU1BUF9DVFJMX1RZUEVfU0hJRlQgfA0KPiA+ICsgICAgICAg ICAgICAgICAgV0lOX1NJWkVfTUFTSyA8PCBXSU5fU0laRV9TSElGVCk7DQo+ID4gKyAgICAgICB2 YWx1ZSB8PSAodHlwZSA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCkgfCAoMSA8PA0KPiBBTUFQX0NU UkxfRU5fU0hJRlQpIHwNCj4gPiArICAgICAgICAgICAgICAgIChsb3dlcl8zMl9iaXRzKHNpemU2 NCkgJiBXSU5fU0laRV9NQVNLIDw8DQo+IFdJTl9TSVpFX1NISUZUKTsNCj4gPiArICAgICAgIGNz cl93cml0ZWwocGNpZSwgdmFsdWUsIFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0pKTsNCj4gPg0K PiA+ICAgICAgICAgY3NyX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksDQo+ID4g ICAgICAgICAgICAgICAgICAgIFBBQl9FWFRfUEVYX0FNQVBfU0laRU4od2luX251bSkpOw0KPiA+ DQo+ID4gLSAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIHBjaV9hZGRyLCBQQUJfUEVYX0FNQVBfQVhJ X1dJTih3aW5fbnVtKSk7DQo+ID4gKyAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMyX2Jp dHMoY3B1X2FkZHIpLA0KPiA+ICsgICAgICAgICAgICAgICAgICBQQUJfUEVYX0FNQVBfQVhJX1dJ Tih3aW5fbnVtKSk7DQo+ID4gKyAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMo Y3B1X2FkZHIpLA0KPiA+ICsgICAgICAgICAgICAgICAgICBQQUJfRVhUX1BFWF9BTUFQX0FYSV9X SU4od2luX251bSkpOw0KPiA+ICsNCj4gPiArICAgICAgIGNzcl93cml0ZWwocGNpZSwgbG93ZXJf MzJfYml0cyhwY2lfYWRkciksDQo+ID4gKyAgICAgICAgICAgICAgICAgIFBBQl9QRVhfQU1BUF9Q RVhfV0lOX0wod2luX251bSkpOw0KPiA+ICsgICAgICAgY3NyX3dyaXRlbChwY2llLCB1cHBlcl8z Ml9iaXRzKHBjaV9hZGRyKSwNCj4gPiArICAgICAgICAgICAgICAgICAgUEFCX1BFWF9BTUFQX1BF WF9XSU5fSCh3aW5fbnVtKSk7DQo+ID4NCj4gPiAtICAgICAgIGNzcl93cml0ZWwocGNpZSwgcGNp X2FkZHIsDQo+IFBBQl9QRVhfQU1BUF9QRVhfV0lOX0wod2luX251bSkpOw0KPiA+IC0gICAgICAg Y3NyX3dyaXRlbChwY2llLCAwLCBQQUJfUEVYX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCj4g PiArICAgICAgIHBjaWUtPmliX3dpbnNfY29uZmlndXJlZCsrOw0KPiA+ICB9DQo+ID4NCj4gPiAg LyoNCj4gPiAgICogcm91dGluZSB0byBwcm9ncmFtIHRoZSBvdXRib3VuZCB3aW5kb3dzDQo+ID4g ICAqLw0KPiA+ICBzdGF0aWMgdm9pZCBwcm9ncmFtX29iX3dpbmRvd3Moc3RydWN0IG1vYml2ZWls X3BjaWUgKnBjaWUsIGludCB3aW5fbnVtLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1NjQgY3B1X2FkZHIsIHU2NCBwY2lfYWRkciwNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdTMyIGNvbmZpZ19pb19iaXQsIHU2NCBzaXplKQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1NjQgY3B1X2FkZHIsIHU2NCBwY2lfYWRkciwgdTMyDQo+IHR5 cGUsDQo+ID4gKyB1NjQgc2l6ZSkNCj4gPiAgew0KPiA+DQo+ID4gLSAgICAgICB1MzIgdmFsdWUs IHR5cGU7DQo+ID4gKyAgICAgICB1MzIgdmFsdWU7DQo+ID4gICAgICAgICB1NjQgc2l6ZTY0ID0g fihzaXplIC0gMSk7DQo+ID4NCj4gPiAtICAgICAgIGlmICgocGNpZS0+b2Jfd2luc19jb25maWd1 cmVkICsgMSkgPiBwY2llLT5hcGlvX3dpbnMpIHsNCj4gPiArICAgICAgIGlmICh3aW5fbnVtID49 IHBjaWUtPmFwaW9fd2lucykgew0KPiA+ICAgICAgICAgICAgICAgICBkZXZfZXJyKCZwY2llLT5w ZGV2LT5kZXYsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBtYXggb3V0Ym91 bmQgd2luZG93cw0KPiByZWFjaGVkICFcbiIpOw0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47 DQo+ID4gQEAgLTUwNywxMCArNTE1LDEyIEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fb2Jfd2luZG93 cyhzdHJ1Y3QNCj4gbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sDQo+ID4gICAgICAg ICAgKiBwcm9ncmFtIEVuYWJsZSBCaXQgdG8gMSwgVHlwZSBCaXQgdG8gKDAwKSBiYXNlIDIsIEFY SSBXaW5kb3cNCj4gU2l6ZSBCaXQNCj4gPiAgICAgICAgICAqIHRvIDQgS0IgaW4gUEFCX0FYSV9B TUFQX0NUUkwgcmVnaXN0ZXINCj4gPiAgICAgICAgICAqLw0KPiA+IC0gICAgICAgdHlwZSA9IGNv bmZpZ19pb19iaXQ7DQo+ID4gICAgICAgICB2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJfQVhJ X0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQo+ID4gLSAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIDEgPDwg V0lOX0VOQUJMRV9TSElGVCB8IHR5cGUgPDwNCj4gV0lOX1RZUEVfU0hJRlQgfA0KPiA+IC0gICAg ICAgICAgICAgICAgICBsb3dlcl8zMl9iaXRzKHNpemU2NCksDQo+IFBBQl9BWElfQU1BUF9DVFJM KHdpbl9udW0pKTsNCj4gPiArICAgICAgIHZhbHVlICY9IH4oV0lOX1RZUEVfTUFTSyA8PCBXSU5f VFlQRV9TSElGVCB8DQo+ID4gKyAgICAgICAgICAgICAgICBXSU5fU0laRV9NQVNLIDw8IFdJTl9T SVpFX1NISUZUKTsNCj4gPiArICAgICAgIHZhbHVlIHw9IDEgPDwgV0lOX0VOQUJMRV9TSElGVCB8 IHR5cGUgPDwgV0lOX1RZUEVfU0hJRlQgfA0KPiA+ICsgICAgICAgICAgICAgICAgKGxvd2VyXzMy X2JpdHMoc2l6ZTY0KSAmIFdJTl9TSVpFX01BU0sgPDwNCj4gV0lOX1NJWkVfU0hJRlQpOw0KPiA+ ICsgICAgICAgY3NyX3dyaXRlbChwY2llLCB2YWx1ZSwgUEFCX0FYSV9BTUFQX0NUUkwod2luX251 bSkpOw0KPiA+DQo+ID4gICAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMoc2l6 ZTY0KSwNCj4gPiBQQUJfRVhUX0FYSV9BTUFQX1NJWkUod2luX251bSkpOw0KPiA+DQo+ID4gQEAg LTUxOCwxMSArNTI4LDEwIEBAIHN0YXRpYyB2b2lkIHByb2dyYW1fb2Jfd2luZG93cyhzdHJ1Y3QN Cj4gbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sDQo+ID4gICAgICAgICAgKiBwcm9n cmFtIEFYSSB3aW5kb3cgYmFzZSB3aXRoIGFwcHJvcHJpYXRlIHZhbHVlIGluDQo+ID4gICAgICAg ICAgKiBQQUJfQVhJX0FNQVBfQVhJX1dJTjAgcmVnaXN0ZXINCj4gPiAgICAgICAgICAqLw0KPiA+ IC0gICAgICAgdmFsdWUgPSBjc3JfcmVhZGwocGNpZSwgUEFCX0FYSV9BTUFQX0FYSV9XSU4od2lu X251bSkpOw0KPiA+IC0gICAgICAgY3NyX3dyaXRlbChwY2llLCBjcHVfYWRkciAmICh+QVhJX1dJ TkRPV19BTElHTl9NQVNLKSwNCj4gPiArICAgICAgIGNzcl93cml0ZWwocGNpZSwgbG93ZXJfMzJf Yml0cyhjcHVfYWRkcikgJg0KPiA+ICsgKH5BWElfV0lORE9XX0FMSUdOX01BU0spLA0KPiA+ICAg ICAgICAgICAgICAgICAgICBQQUJfQVhJX0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQo+ID4gLQ0K PiA+IC0gICAgICAgdmFsdWUgPSBjc3JfcmVhZGwocGNpZSwgUEFCX0FYSV9BTUFQX1BFWF9XSU5f SCh3aW5fbnVtKSk7DQo+ID4gKyAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMo Y3B1X2FkZHIpLA0KPiA+ICsgICAgICAgICAgICAgICAgICBQQUJfRVhUX0FYSV9BTUFQX0FYSV9X SU4od2luX251bSkpOw0KPiA+DQo+ID4gICAgICAgICBjc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KPiA+ICAgICAgICAgICAgICAgICAgICBQQUJfQVhJX0FNQVBfUEVY X1dJTl9MKHdpbl9udW0pKTsgQEANCj4gLTYwNCw2ICs2MTMsMTENCj4gPiBAQCBzdGF0aWMgaW50 IG1vYml2ZWlsX2hvc3RfaW5pdChzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCj4gPiAgICAg ICAgIHZhbHVlIHw9IEFQSU9fRU5fTUFTSzsNCj4gPiAgICAgICAgIGNzcl93cml0ZWwocGNpZSwg dmFsdWUsIFBBQl9BWElfUElPX0NUUkwpOw0KPiA+DQo+ID4gKyAgICAgICAvKiBFbmFibGUgUENJ ZSBQSU8gbWFzdGVyICovDQo+ID4gKyAgICAgICB2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJf UEVYX1BJT19DVFJMKTsNCj4gPiArICAgICAgIHZhbHVlIHw9IDEgPDwgUElPX0VOQUJMRV9TSElG VDsNCj4gPiArICAgICAgIGNzcl93cml0ZWwocGNpZSwgdmFsdWUsIFBBQl9QRVhfUElPX0NUUkwp Ow0KPiA+ICsNCj4gPiAgICAgICAgIC8qDQo+ID4gICAgICAgICAgKiB3ZSdsbCBwcm9ncmFtIG9u ZSBvdXRib3VuZCB3aW5kb3cgZm9yIGNvbmZpZyByZWFkcyBhbmQNCj4gPiAgICAgICAgICAqIGFu b3RoZXIgZGVmYXVsdCBpbmJvdW5kIHdpbmRvdyBmb3IgYWxsIHRoZSB1cHN0cmVhbSB0cmFmZmlj DQo+ID4gQEAgLTYxNiw3ICs2MzAsNyBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX2hvc3RfaW5pdChz dHJ1Y3QgbW9iaXZlaWxfcGNpZQ0KPiAqcGNpZSkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDRkdfV0lORE9XX1RZUEUsDQo+ID4gcmVzb3VyY2Vfc2l6ZShwY2llLT5vYl9pb19yZXMp KTsNCj4gPg0KPiA+ICAgICAgICAgLyogbWVtb3J5IGluYm91bmQgdHJhbnNsYXRpb24gd2luZG93 ICovDQo+ID4gLSAgICAgICBwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05VTV8wLCAwLA0K PiBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsNCj4gPiArICAgICAgIHByb2dyYW1faWJf d2luZG93cyhwY2llLCBXSU5fTlVNXzAsIDAsIDAsDQo+IE1FTV9XSU5ET1dfVFlQRSwNCj4gPiAr IElCX1dJTl9TSVpFKTsNCj4gPg0KPiA+ICAgICAgICAgLyogR2V0IHRoZSBJL08gYW5kIG1lbW9y eSByYW5nZXMgZnJvbSBEVCAqLw0KPiA+ICAgICAgICAgcmVzb3VyY2VfbGlzdF9mb3JfZWFjaF9l bnRyeSh3aW4sICZwY2llLT5yZXNvdXJjZXMpIHsNCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+DQpU aGFua3MsDQpaaGlxaWFuZw0K