From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00064.outbound.protection.outlook.com [40.107.0.64]) by dpdk.org (Postfix) with ESMTP id 9416D2BD8 for ; Fri, 16 Nov 2018 03:34:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F6BceGjpZWr/iOjPhmyzymrn3wFYMsrBdAuOu1grD/g=; b=P+flF4M3mTtNbcW0OScNugmU6lgm6ep0zwUwoghYee40HiO+fPWQhkZpGnjVuHaoXr3iXJ4zKv0ol743CT3ytY5hvQGgmaya1tXkb12clDuzb9bZDIG8vqJpkfcP+VWClzl9CpVnQ+eoG2eyikhRYqN/mMKiBOFeIZGIbnTuEgM= Received: from AM0PR08MB3409.eurprd08.prod.outlook.com (20.177.109.139) by AM0PR08MB3268.eurprd08.prod.outlook.com (52.134.94.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.26; Fri, 16 Nov 2018 02:34:19 +0000 Received: from AM0PR08MB3409.eurprd08.prod.outlook.com ([fe80::2927:5a10:ee9d:6f3b]) by AM0PR08MB3409.eurprd08.prod.outlook.com ([fe80::2927:5a10:ee9d:6f3b%3]) with mapi id 15.20.1339.021; Fri, 16 Nov 2018 02:34:19 +0000 From: "Tone Zhang (Arm Technology China)" To: "Burakov, Anatoly" , "dev@dpdk.org" CC: "Gavin Hu (Arm Technology China)" , Honnappa Nagarahalli , Steve Capper , nd Thread-Topic: [PATCH v2] pci_vfio: Support 64KB kernel page_size with vfio-pci driver Thread-Index: AQHUeCXaYw29mHEoBkeQvc6IBXfx6aVQB2rQgAGwUtA= Date: Fri, 16 Nov 2018 02:34:19 +0000 Message-ID: References: <1540347604-18590-1-git-send-email-tone.zhang@arm.com> <1541743077-27994-1-git-send-email-tone.zhang@arm.com> <68c31d94-3e4d-7b03-209b-1e63c564aa74@intel.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=Tone.Zhang@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR08MB3268; 6:49zq6acrbgLoBZmwRNw62LWKWGbgZvBSjAxf7QGyosvGEZGhB6JpkaJwHLEX+NU6aOfuP09F4tHzjLwJmT/6kLYq0vNxplvJjQomSpl09Jd2HPUdIkQ+bdVMklFT6E96JzVcCvUZLHaQFKFDI7dldryHop2PZxucwqA3uxmBp/HRXT3C3qPT8SML1B8otytlIQj1dSAfXsgqVw82ovHH03u9sGgYcT91sKGaET0hvvVxmFTCOIFg5RGQUoSnqzbLXw4OXb/ELv1UBn43VSiJ4gh2DEmvWyMy4jmpN0leCLOeJ2QkPifEW4Y2fPagRUTrHvLpiyP+4HdDTedACEAGQMCABZnIfJGrIU2udyrDNAZUrs8nBXTUSGYxQI3IiotULiROddaHhhBVcB1jTAUtBiQ2JgPx8XOvOC9ffJFb+oTfpvYl9QY2KCgxeFbn6ZcQhhLQWnsnWLyiVlKIA2umUg==; 5:V7TxHhgeKuFX82LrTKHqyZMlEShEbsmcOQV28xiWyM6AMC0yvBWbKnXxXl+g2bWKmdksma7K+eXnQCc1zZjwn+R0qp3T7dQhsweqZd/4TeAk7vcQJqZdhlJOJ5oyYqUdFJAxUXJrRznyXt+R1akgY4PLBtA8uscw5H16aatKorw=; 7:5Ji1cjwTI+H5fGb2Xf3vwJVsJcR9Y+WfbnOUeM2Wm437ysKKHusNrzvCNMiKGhdEWkUa4/MnZq8ZoSTEs9HTvyYr7CIWJxYuyf2873wGqJ5FHVWEnZHeA/Dmdm12b1As579jja272mJKkBHemnd6Gg== x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 639af923-d38e-4d0d-6f42-08d64b6c02db x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR08MB3268; x-ms-traffictypediagnostic: AM0PR08MB3268: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(788757137089)(228905959029699)(180628864354917); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231415)(944501410)(52105112)(3002001)(93006095)(93001095)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:AM0PR08MB3268; BCL:0; PCL:0; RULEID:; SRVR:AM0PR08MB3268; x-forefront-prvs: 0858FF8026 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(39860400002)(346002)(376002)(189003)(199004)(13464003)(26005)(86362001)(55016002)(66066001)(105586002)(99286004)(106356001)(575784001)(186003)(7736002)(72206003)(8936002)(9686003)(7696005)(53546011)(55236004)(6506007)(5660300001)(14454004)(102836004)(74316002)(6246003)(305945005)(229853002)(53936002)(478600001)(97736004)(6436002)(81156014)(256004)(81166006)(2906002)(71200400001)(2501003)(476003)(486006)(110136005)(446003)(33656002)(25786009)(76176011)(68736007)(3846002)(54906003)(2900100001)(316002)(4326008)(6116002)(11346002)(14444005)(93886005)(8676002)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB3268; H:AM0PR08MB3409.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: CsRnnDS3BP1YAREQaQxF5jgT5gt8XDW7ztERnKhIrics9T7NDYbvaMWSFisTGPOYk7Hf8EuygJPJDXKr8u6tg7nPYSOlH3Go3DEUeDvJj46d4KRHpCjTXvTwpLSYOyRDLS13WouEW2Wqth+NVLBsnEFt2RaBaUs/LdT0GIMCiX8abBYQKOVMT+psq9qnbWscoLfFrptaF3Vz9Dr5QXITFm074aOrgzt/660x+K8HhoRDBema1PZ/Fwx9rH39XqCH6wqZy0K/CftJRXieIBvK5q9LTbXoqCTWpsKqFjUODmhCtelyZvWC78HV+jvO0tSFMepmQMz681/Ecm1g+HwZLKUpTVUsnHuiOwWhDw8wHX4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 639af923-d38e-4d0d-6f42-08d64b6c02db X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2018 02:34:19.5365 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3268 Subject: Re: [dpdk-dev] [PATCH v2] pci_vfio: Support 64KB kernel page_size with vfio-pci driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2018 02:34:20 -0000 SGkgQW5hdG9seSwNCg0KSSBoYXZlIHNvbWUgY29tbWVudHMuDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogVG9uZSBaaGFuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+ IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxNSwgMjAxOCA4OjQ5IEFNDQo+IFRvOiBCdXJha292 LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENj OiBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5IdUBhcm0uY29tPjsgSG9u bmFwcGENCj4gTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBTdGV2 ZSBDYXBwZXINCj4gPFN0ZXZlLkNhcHBlckBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+DQo+IFN1 YmplY3Q6IFJFOiBbUEFUQ0ggdjJdIHBjaV92ZmlvOiBTdXBwb3J0IDY0S0Iga2VybmVsIHBhZ2Vf c2l6ZSB3aXRoIHZmaW8tcGNpDQo+IGRyaXZlcg0KPiANCj4gSGkgQW5hdG9seSwNCj4gDQo+IFNv cnJ5IGZvciB0aGUgbGF0ZSByZXNwb25zZS4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiBGcm9tOiBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwu Y29tPg0KPiA+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgOSwgMjAxOCA4OjE1IFBNDQo+ID4gVG86 IFRvbmUgWmhhbmcgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8VG9uZS5aaGFuZ0Bhcm0uY29tPjsN Cj4gPiBkZXZAZHBkay5vcmcNCj4gPiBDYzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5h KSA8R2F2aW4uSHVAYXJtLmNvbT47IEhvbm5hcHBhDQo+ID4gTmFnYXJhaGFsbGkgPEhvbm5hcHBh Lk5hZ2FyYWhhbGxpQGFybS5jb20+OyBTdGV2ZSBDYXBwZXINCj4gPiA8U3RldmUuQ2FwcGVyQGFy bS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyXSBwY2lf dmZpbzogU3VwcG9ydCA2NEtCIGtlcm5lbCBwYWdlX3NpemUgd2l0aA0KPiA+IHZmaW8tcGNpIGRy aXZlcg0KPiA+DQo+ID4gT24gMDktTm92LTE4IDU6NTcgQU0sIHRvbmUuemhhbmcgd3JvdGU6DQo+ ID4gPiBXaXRoIGEgbGFyZ2VyIFBBR0VfU0laRSBpdCBpcyBwb3NzaWJsZSBmb3IgdGhlIE1TSSB0 YWJsZSB0byB2ZXJ5DQo+ID4gPiBjbG9zZSB0byB0aGUgZW5kIG9mIHRoZSBCQVIgcy50LiB3aGVu IHdlIGFsaWduIHRoZSBzdGFydCBhbmQgZW5kIG9mDQo+ID4gPiB0aGUgTVNJIHRhYmxlIHRvIHRo ZSBQQUdFX1NJWkUsIHRoZSBlbmQgb2Zmc2V0IG9mIHRoZSBNU0kgdGFibGUgaXMNCj4gPiA+IG91 dCBvZiB0aGUgUENJIEJBUiBib3VuZGFyeS4NCj4gPiA+DQo+ID4gPiBUaGlzIHBhdGNoIGFkZHJl c3NlcyB0aGUgaXNzdWUgYnkgY29tcGFyaW5nIGJvdGggdGhlIHN0YXJ0IGFuZCB0aGUNCj4gPiA+ IGVuZCBvZmZzZXQgb2YgdGhlIE1TSSB0YWJsZSB3aXRoIHRoZSBCQVIgc2l6ZSwgYW5kIHNraXAg dGhlIG1hcHBpbmcNCj4gPiA+IGlmIGl0IGlzIG91dCBvZiBCYXIgc2NvcGUuDQo+ID4gPg0KPiA+ ID4gVGhlIHBhdGNoIGZpeGVzIHRoZSBkZWJ1ZyBsb2cgYXMgYmVsb3c6DQo+ID4gPiBFQUw6IFNr aXBwaW5nIEJBUjANCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiB0b25lLnpoYW5nIDx0b25l LnpoYW5nQGFybS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogR2F2aW4gSHUgPEdhdmluLkh1QGFy bS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPGhvbm5hcHBh Lm5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxT dGV2ZS5DYXBwZXJAYXJtLmNvbT4NCj4gPiA+IFJldmlld2VkLWJ5OiBCdXJha292IEFuYXRvbHkg PGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+DQo+ID4NCj4gPiBJbiB0aGUgZnV0dXJlLCBwbGVh c2UgZG9uJ3QgaW5jbHVkZSBteSBSZXZpZXdlZCB0YWcgdW5sZXNzIGkgYWN0dWFsbHkNCj4gPiBz ZW50IG9uZSA6KQ0KPiANCj4gVGhhbmtzIGEgbG90ISBXaWxsIGtlZXAgaW4gbWluZC4g8J+Yig0K PiANCj4gPg0KPiA+ID4gLS0tDQo+ID4gPiAgIGRyaXZlcnMvYnVzL3BjaS9saW51eC9wY2lfdmZp by5jIHwgMzYNCj4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCj4gPiAt LQ0KPiA+ID4gICAxIGZpbGUgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV92 ZmlvLmMNCj4gPiA+IGIvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV92ZmlvLmMNCj4gPiA+IGlu ZGV4IDMwNWNjMDYuLjlhMGFmZmUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL2J1cy9wY2kv bGludXgvcGNpX3ZmaW8uYw0KPiA+ID4gKysrIGIvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV92 ZmlvLmMNCj4gPiA+IEBAIC00NDUsOSArNDQ1LDExIEBAIHBjaV92ZmlvX21tYXBfYmFyKGludCB2 ZmlvX2Rldl9mZCwgc3RydWN0DQo+ID4gbWFwcGVkX3BjaV9yZXNvdXJjZSAqdmZpb19yZXMsDQo+ ID4gPiAgIAlzdHJ1Y3QgcGNpX21zaXhfdGFibGUgKm1zaXhfdGFibGUgPSAmdmZpb19yZXMtPm1z aXhfdGFibGU7DQo+ID4gPiAgIAlzdHJ1Y3QgcGNpX21hcCAqYmFyID0gJnZmaW9fcmVzLT5tYXBz W2Jhcl9pbmRleF07DQo+ID4gPg0KPiA+ID4gLQlpZiAoYmFyLT5zaXplID09IDApDQo+ID4gPiAr CWlmIChiYXItPnNpemUgPT0gMCkgew0KPiA+ID4gICAJCS8qIFNraXAgdGhpcyBCQVIgKi8NCj4g PiA+ICsJCVJURV9MT0coSU5GTywgRUFMLCAiU2tpcHBpbmcgQkFSJWRcbiIsIGJhcl9pbmRleCk7 DQo+ID4gPiAgIAkJcmV0dXJuIDA7DQo+ID4gPiArCX0NCj4gPiA+DQo+ID4gPiAgIAlpZiAobXNp eF90YWJsZS0+YmFyX2luZGV4ID09IGJhcl9pbmRleCkgew0KPiA+ID4gICAJCS8qDQo+ID4gPiBA QCAtNDU2LDggKzQ1OCwyMiBAQCBwY2lfdmZpb19tbWFwX2JhcihpbnQgdmZpb19kZXZfZmQsIHN0 cnVjdA0KPiA+IG1hcHBlZF9wY2lfcmVzb3VyY2UgKnZmaW9fcmVzLA0KPiA+ID4gICAJCSAqLw0K PiA+ID4gICAJCXVpbnQzMl90IHRhYmxlX3N0YXJ0ID0gbXNpeF90YWJsZS0+b2Zmc2V0Ow0KPiA+ ID4gICAJCXVpbnQzMl90IHRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0ICsgbXNpeF90YWJsZS0+c2l6 ZTsNCj4gPiA+IC0JCXRhYmxlX2VuZCA9ICh0YWJsZV9lbmQgKyB+UEFHRV9NQVNLKSAmIFBBR0Vf TUFTSzsNCj4gPiA+IC0JCXRhYmxlX3N0YXJ0ICY9IFBBR0VfTUFTSzsNCj4gPiA+ICsJCXRhYmxl X2VuZCA9IFJURV9BTElHTih0YWJsZV9lbmQsIFBBR0VfU0laRSk7DQo+ID4gPiArCQl0YWJsZV9z dGFydCA9IFJURV9BTElHTih0YWJsZV9zdGFydCwgUEFHRV9TSVpFKTsNCj4gPiA+ICsJCS8qIGFm dGVyIHJvdW5kaW5nIHRvIFBBR0VfU0laRSwgaXQgaXMgb3ZlciB0aGUgYmFyLT5zaXplLA0KPiA+ ID4gKwkJICogZmFsbCBiYWNrIHRvIHRoZSBNU0ktWCB0YWJsZSBvZmZzZXQgaW4gdGhlIGJhciBh bmQNCj4gPiA+ICsJCSAqIGFsaWduIHdpdGggUEFHRV9TSVpFLg0KPiA+ID4gKwkJICovDQo+ID4N Cj4gPiBNaW5vciBuaXRwaWNrIC0gd29yZGluZyBvZiBjb21tZW50IGNvdWxkIGJlIGJldHRlciwg Zm9yIGV4YW1wbGU6DQo+ID4NCj4gPiBpZiBwYWdlLWFsaWduZWQgc3RhcnQgb2YgTVNJLVggdGFi bGUgaXMgYmV5b25kIEJBUiBzaXplLCBzaHJpbmsgdGhlDQo+ID4gbWFwcGluZyBzaXplIHRvIE1T SS1YIHRhYmxlIHN0YXJ0IGFkZHJlc3MuDQo+ID4NCj4gPiBBbHNvLCBwcm9iYWJseSBuZWVkcyBu ZXdsaW5lIGJlZm9yZSBjb21tZW50Lg0KPiA+DQo+IA0KPiBXaWxsIHVwZGF0ZSB0aGUgY29kZSBp biBuZXh0IHZlcnNpb24uIFRoYW5rcyENCj4gDQo+ID4gPiArCQlpZiAodGFibGVfc3RhcnQgPj0g YmFyLT5zaXplKSB7DQo+ID4gPiArCQkJdGFibGVfc3RhcnQgPSBSVEVfQUxJR05fRkxPT1IobXNp eF90YWJsZS0+b2Zmc2V0LA0KPiA+ID4gKwkJCQkJCQlQQUdFX1NJWkUpOw0KPiA+ID4gKwkJCS8q IGFmdGVyIGFsaWduaW5nIHdpdGggUEFHRV9TSVpFLCBpZiBpdCBpcyBsZXNzIHRoYW4NCj4gPiA+ ICsJCQkgKiB0aGUgTVNJLVggdGFibGUgb2Zmc2V0LCBjb250aW51ZSBmYWxsaW5nIGJhY2sgdG8N Cj4gPiA+ICsJCQkgKiB0aGUgYWN0dWFsIE1TSS1YIHRhYmxlIG9mZnNldCBpbiB0aGUgYmFyLg0K PiA+ID4gKwkJCSAqLw0KPiA+DQo+ID4gU2FtZSBoZXJlLCB3b3JkaW5nIGNvdWxkIHByb2JhYmx5 IGJlIGltcHJvdmVkLiBTdWdnZXN0ZWQgcmV3b3JkaW5nOg0KPiA+DQo+ID4gSWYgTVNJLVggdGFi bGUgYWRkcmVzcywgZmxvb3ItYWxpZ25lZCBieSBwYWdlIHNpemUsIGlzIGxvd2VyIHRoYW4NCj4g PiBhY3R1YWwgTVNJLVggdGFibGUgb2Zmc2V0LCBmYWxsIGJhY2sgdG8gdXNpbmcgTVNJLVggdGFi bGUgb2Zmc2V0IGFzIHRhYmxlIHN0YXJ0Lg0KPiA+DQo+ID4gTm93IHRoYXQgaSB0aGluayBvZiBp dCwgdGhpcyBjb3VsZCByZWFsbHkgYmUgZXhwcmVzc2VkIGxpa2UgdGhpczoNCj4gPg0KPiA+IHVp bnQzMl90IGFsaWduZWQgPSBSVEVfQUxJR05fRkxPT1IobXNpeF90YWJsZS0+b2Zmc2V0LCBQQUdF X1NJWkUpOw0KPiA+IHRhYmxlX3N0YXJ0ID0gUlRFX01BWChhbGlnbmVkLCBtc2l4X3RhYmxlX29m ZnNldCk7DQo+ID4NCj4gPiBJIGJlbGlldmUgdGhpcyB3b3VsZCBiZSBtdWNoIGNsZWFyZXIuDQo+ ID4NCj4gDQo+IFdpbGwgdXBkYXRlIHRoZSBwYXRjaC4NCj4gDQoNCldoZW4gZW50ZXIgdGhlIGp1 ZGdlbWVudCwgaXQgaW1wbGllcyB0aGUgIm1zaXhfdGFibGUtPm9mZnNldCIgaXMgTk9UIHBhZ2Ug c2l6ZSBhbGlnbmVkLCBJIHRoaW5rIHdlIGNhbiByZXBsYWNlIHRoZSBjb2RlIGluIHRoZSBqdWRn ZW1lbnQgd2l0aCBvbmUgbGluZTogdGFibGVfc3RhcnQgPSBtc2l4X3RhYmxlLT5vZmZzZXQ7DQpJ dCBsb29rcyBtb3JlIHNpbXBsZS4gV2hhdCdzIHlvdXIgb3Bpbmlvbj8gVGhhbmtzIQ0KDQo+ID4g PiArCQkJaWYgKHRhYmxlX3N0YXJ0IDwgbXNpeF90YWJsZS0+b2Zmc2V0KQ0KPiA+ID4gKwkJCQl0 YWJsZV9zdGFydCA9IG1zaXhfdGFibGUtPm9mZnNldDsNCj4gPiA+ICsJCX0NCj4gPiA+DQo+ID4g PiAgIAkJaWYgKHRhYmxlX3N0YXJ0ID09IDAgJiYgdGFibGVfZW5kID49IGJhci0+c2l6ZSkgew0K PiA+ID4gICAJCQkvKiBDYW5ub3QgbWFwIHRoaXMgQkFSICovDQo+ID4gPiBAQCAtNDY5LDggKzQ4 NSwxOCBAQCBwY2lfdmZpb19tbWFwX2JhcihpbnQgdmZpb19kZXZfZmQsIHN0cnVjdA0KPiA+ID4g bWFwcGVkX3BjaV9yZXNvdXJjZSAqdmZpb19yZXMsDQo+ID4gPg0KPiA+ID4gICAJCW1lbXJlZ1sw XS5vZmZzZXQgPSBiYXItPm9mZnNldDsNCj4gPiA+ICAgCQltZW1yZWdbMF0uc2l6ZSA9IHRhYmxl X3N0YXJ0Ow0KPiA+ID4gLQkJbWVtcmVnWzFdLm9mZnNldCA9IGJhci0+b2Zmc2V0ICsgdGFibGVf ZW5kOw0KPiA+ID4gLQkJbWVtcmVnWzFdLnNpemUgPSBiYXItPnNpemUgLSB0YWJsZV9lbmQ7DQo+ ID4gPiArCQlpZiAoYmFyLT5zaXplIDwgdGFibGVfZW5kKSB7DQo+ID4gPiArCQkJLyoNCj4gPiA+ ICsJCQkgKiBhZnRlciByb3VuZGluZyB0byBQQUdFX1NJWkUgd2UgZG9uJ3QgaGF2ZSBhbnkgc3Bh Y2UNCj4gPiA+ICsJCQkgKiBsZWZ0IGFmdGVyIHRoZSBNU0kgdGFibGUsIHNvIGRvbid0IHRyeSBh bmQgbWFwIGl0Lg0KPiA+ID4gKwkJCSAqLw0KPiA+DQo+ID4gU3VnZ2VzdGVkIHJld29yZGluZzoN Cj4gPg0KPiA+IElmIE1TSS1YIHRhYmxlIGVuZCBpcyBiZXlvbmQgQkFSIGVuZCwgZG9uJ3QgYXR0 ZW1wdCB0byBwZXJmb3JtIHNlY29uZA0KPiBtYXBwaW5nLg0KPiA+DQo+IA0KPiBUaGFua3MgYSBs b3QuIFdpbGwgdXBkYXRlLg0KPiANCj4gPiA+ICsJCQltZW1yZWdbMV0ub2Zmc2V0ID0gMDsNCj4g PiA+ICsJCQltZW1yZWdbMV0uc2l6ZSA9IDA7DQo+ID4gPiArCQl9DQo+ID4gPiArCQllbHNlIHsN Cj4gPiA+ICsJCQltZW1yZWdbMV0ub2Zmc2V0ID0gYmFyLT5vZmZzZXQgKyB0YWJsZV9lbmQ7DQo+ ID4gPiArCQkJbWVtcmVnWzFdLnNpemUgPSBiYXItPnNpemUgLSB0YWJsZV9lbmQ7DQo+ID4gPiAr CQl9DQo+ID4gPg0KPiA+ID4gICAJCVJURV9MT0coREVCVUcsIEVBTCwNCj4gPiA+ICAgCQkJIlRy eWluZyB0byBtYXAgQkFSJWQgdGhhdCBjb250YWlucyB0aGUgTVNJLVggIg0KPiA+ID4NCj4gPg0K PiA+IEhvd2V2ZXIsIHRoZSBwYXRjaCBjYW4gZ28gaW4gYXMgaXMgaWYgbmVlZGVkLCBzbw0KPiA+ DQo+ID4gUmV2aWV3ZWQtYnk6IEFuYXRvbHkgQnVyYWtvdiA8YW5hdG9seS5idXJha292QGludGVs LmNvbT4NCj4gPg0KPiANCj4gVGhhbmtzISDwn5iJDQo+IA0KPiA+IC0tDQo+ID4gVGhhbmtzLA0K PiA+IEFuYXRvbHkNCj4gDQo+IEJyLA0KPiBUb25lDQoNCkJyLA0KVG9uZQ0K