From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C646CA052A; Tue, 26 Jan 2021 07:09:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD8A0141252; Tue, 26 Jan 2021 07:09:54 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 781E414124A for ; Tue, 26 Jan 2021 07:09:52 +0100 (CET) IronPort-SDR: zvGd+QYaIya4m2+TfiEeEVqVysXkzED4wlbvZvErlGC3JTtxCIP2Uei/INLtB2hFam3dFSG01v iMKujHjaAJYQ== X-IronPort-AV: E=McAfee;i="6000,8403,9875"; a="167526888" X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="167526888" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2021 22:09:51 -0800 IronPort-SDR: zxqrwCbrM9fset5IhSBULuTKf+B0wPsgX6VPj3JNk6Cd4OFhDvSZybot3+KGrW3fmkN0ws4+48 zOzq973Eyxaw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="368994041" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga002.jf.intel.com with ESMTP; 25 Jan 2021 22:09:51 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 25 Jan 2021 22:09:50 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 25 Jan 2021 22:09:50 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 25 Jan 2021 22:09:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ViOKO7xMaA5l1S5Y/6sKKTkvmFfWVyIUqkQ9j61kMo+xBwA6GN+6YKLkNGiMPtMg/6ELZzaXLJUHzYAI/xP3EjGcFhjGnWOg9CVoO/4cAea/UhTcnNFgLySQi+qV31G4ML0m26HeNujqNPFsK9YWyouU+3kjWAgaqBBzzTr6tJErKuRvRO4gwBkw+vHET21cLUUt2WOeya/ZnP7NiR+pBzve2W3md4kVbxZIINjb0p7sXa1Sig5uxiWK8Ups+fJuttkkhIcsaz+JbX3myOtNYlW7v627IhZ3fZL34uV1Bx+NrgOMofzR6dS+0CIdxz8VaWQRMxQ/+zI++ut66tWd6Q== 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-SenderADCheck; bh=SyivGnN+pZJBOvHe8wu1Qu0rSQpypjzcdp2/lUC48t4=; b=W+c4e1ZGNJEpIG3eA5yylwWsxbLMMSSciDiUk0089dCL8if28hLZv5qPj6f1UPbPAzSXTp7xoi4Gwo0ir2ANI+B5x3GBDU3LRI5ZD8z6sPmFE6ipQvZBc5+EyLN6RV7gwThkWZdEgAPyXD/Ttzh+BtRELyhY9LNjufxiLVHQucE6NqpUUTWOmKv0YCHLLWcB+GsOJWKlP2fbaCA6bfW8uznQO4l0iABR+Ioa+f+5ropEAqG0i2JtYHQ7XiVfhat+KQ0y/grcCoHuoMYI1PK0fsSvizDxnaTcdmiL0uvGu6mZJ2FUoJCR5ehAd9Oc8wG6n2O+OCGKX28opQy6A9q5vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SyivGnN+pZJBOvHe8wu1Qu0rSQpypjzcdp2/lUC48t4=; b=CBeuqusVb4gl5h3l64y9wlQ/JtioB3iVPEN2j89u6eg9M0HXr7nhiTA/8nSoenRgbjXIw3fUL4jI7yeOJ4kBHHbUO0HgDa9YpNW4nMg6Nw2cSMxY8LNSdBeVn2vq7SSRuJtsTDAly+5DxorBv2cBNYw2FdGu9NQly+mQWa3Wy4A= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3629.namprd11.prod.outlook.com (2603:10b6:208:f0::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.16; Tue, 26 Jan 2021 06:09:48 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3784.017; Tue, 26 Jan 2021 06:09:48 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v3 29/44] net/virtio: add Virtio-user memory tables ops Thread-Index: AQHW8z3yxpGNydYBFEKJh3QQeKWBAqo5bSSA Date: Tue, 26 Jan 2021 06:09:48 +0000 Message-ID: References: <20210125171444.167241-1-maxime.coquelin@redhat.com> <20210125171444.167241-30-maxime.coquelin@redhat.com> In-Reply-To: <20210125171444.167241-30-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.39] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 65320a1c-6872-4943-8b86-08d8c1c0fc87 x-ms-traffictypediagnostic: MN2PR11MB3629: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:116; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XrfYu0+CMucBNuB3ptQbW74WILgBaN2/dgYXefhDp5hBoo6Xl/4prKwjieTwUkw/5h0OKMwbxagz+I9rXvSc6dq84gVZvFWc6Ujsls2yuBn2a1pcHYRHyPP97hryh7csi/a4Cbm0W2deiX82aOvnQ8hJLoAeTXxGCwfn3hYdA4QktSs9DXtLdWPKpjqhNQ52mcQzK2BLo5+iZ0oJihek5SeyuEFxrkritjQbEeGh+dy4qBhNmO9rH2Hp15xHzg7GWlUgFdpvY5pOMVgoODBwsjCIV+zzRyOkwytHt9ZDLzaGOkbffyXK4xnjjOWynDLeUf41RZAoxac8rjw8pCLo6XxePDKAlgK9g8A4hY8Pwd3s2lWttQfFflq7dnF6S5p0tx4P3d2Cy3TYKPx9nfHc7DhLs8vqxQNqzR6z4OnT1b2yfXWgdkQswc3kCRwlcnE9sS7L8ewok4xIO4XcEYel8K1O+Ulxm1szLYl/75JCzTO9hMe4X8HwCkwtd0MSnaHadgsP9bwv0mNruA9Er95eXg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(346002)(39860400002)(376002)(396003)(316002)(53546011)(26005)(2906002)(478600001)(66556008)(66446008)(6506007)(7696005)(83380400001)(66946007)(110136005)(86362001)(76116006)(55016002)(30864003)(186003)(33656002)(5660300002)(8936002)(52536014)(71200400001)(66476007)(8676002)(9686003)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?RVplM0JuZTU3V1pMckhDMnJXalJTWUhSWFpNb1dSbkRqOGIwdnhJQmFnd0pn?= =?utf-8?B?ZGVPanc2Y0pzL3NDbzRJeDF3Y3g2Z3hRczA4Y3RFdER0Tzk5bzluUk1rUUZB?= =?utf-8?B?SFpoNjBDOW5VOG01Z1FPKzJFR0FQdVJabXRKUEtaRDZ6WjRmVlBoUUR5UU5F?= =?utf-8?B?TlVDZkJWQTJidzNiTFR2anZqdVBiQktyYmx2QmtvVVRmeHROcmN2UVlmekJP?= =?utf-8?B?R24rR2VEUWxuSG1JNkc4eEE5N2dtYmFsZDlLT1Q4dU9aMlllSkVGRHYxMXYy?= =?utf-8?B?YmNmMWhHdWdSb1kvYlVCS3dEVkordU1RRHZMVnFKcVNKL2t4clFYOStwNGpU?= =?utf-8?B?RXQ0blQvRWZPOHBBMCtTMnhHVXZiL1pPOWNkSVl3SGMvR09HdTdsRzQvQk04?= =?utf-8?B?SHF4Q3Y1eDNvdEV3dnZRZzZNWWVWa2Z4NnVySGVKU2RpR3Nvc0xwQWhkODZQ?= =?utf-8?B?UldkUlJGUTFyRVk3YkdwcTRpT0l6NVZKZmZCZWl3N0EvTC8rR012MHVWVWlI?= =?utf-8?B?V0RZaFBZTExFMTVsVEcvL0VtTG04dnZCeVFaN1U2S2FTTi9NdlZxek9yS0JE?= =?utf-8?B?LzE4RGFVb0lMdTZmOUhzcnNBdXFKdjJkeTRsb1YzZXJ0OFJqOW9jY0UzYklQ?= =?utf-8?B?QzBKSEVhTGF1dlNjMTU3MkRYQ1hJOXpDd0hJallRODZ2QXI4aStaS0xPRTEy?= =?utf-8?B?RjhhOUh0K3FXeFZaR0N1dXFVbGxOVkYwQWNKUDlIek1aOEpQRE05UVlETlk3?= =?utf-8?B?QWJCQXB0REV5RHJiazNoTkNNRkVVUzhMbHRsNElrWW56TGJiU2NQMTBteTNZ?= =?utf-8?B?ZXJ2ODZEWmRKTGxZV3prTE1yRjByV1dZb3VrTkplWFJleU1pcjhxamdkU3Fo?= =?utf-8?B?bVRmZG02RkNJOVNDZjhOd09veG9QUEF4Q3ZTMkVKbTh3cittaHVadk9Bc0p3?= =?utf-8?B?d0JWbytzNXF6VTQzWGVYSUJ5aVNWWldyOVFGMklDVktrcXRBNFNwVVRkNWdz?= =?utf-8?B?NUZQT0NkTFdUbUNnSEJGbUhGT2RqWTh5cEVKOXFqb00vNitmVUp6dTJMdmJK?= =?utf-8?B?cmpxRVhwRGVieExXVSs4bDQ2Vk9yQXc2NDlNOU9vUkJZdkp0SittOHZPUWY2?= =?utf-8?B?YTNXVFVJaFg1eG1pek5vU2ZVUm1seldDcWV5YXkvMUZ6YWZMZ2J5YXdYZmlF?= =?utf-8?B?NTl2dTRudmZWTnJqb2pTY0dwOTZrRXRaekl5dnlUUTVjSjZLV1hTZVppcy9s?= =?utf-8?B?L3J0bHByQ0t4MXlmS2wvc2ppYU9XZXJoV2sraWc2d3dIR2hNaHJ1V1l2OVRO?= =?utf-8?B?eEdpRy9DTzJuanM2d1dxbHVlaEdGWCtYdEh1SHk5dFlWOGt0UEhlR0xxdXc1?= =?utf-8?B?NWI5UXVudzRqZ09WZVUyMFpPRWJHeUYxb2c4WDVFT0pNWjMzVXFZQ3ZmeUpX?= =?utf-8?Q?nzerqRWq?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65320a1c-6872-4943-8b86-08d8c1c0fc87 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2021 06:09:48.5789 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6fpP3MM8Tv1sltki6GYqqePhrUrGMlYvUCn7oi4FtB1abvkmK7htyVPd++zfzGQ2N0C7UUZIMIfk1exr40eyLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3629 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 29/44] net/virtio: add Virtio-user memory tables ops X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDI2LCAy MDIxIDE6MTQgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsNCj4gYW1vcmVub3pAcmVkaGF0LmNv bTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENvcXVlbGluIDxtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYzIDI5LzQ0XSBuZXQv dmlydGlvOiBhZGQgVmlydGlvLXVzZXIgbWVtb3J5IHRhYmxlcyBvcHMNCj4gDQo+IFRoaXMgcGF0 Y2ggaW1wbGVtZW50cyBhIGRlZGljYXRlZCBjYWxsYmFjayBmb3INCj4gcHJlcGFyaW5nIGFuZCBz ZW5kaW5nIG1lbW9yeSB0YWJsZSB0byB0aGUgYmFja2VuZHMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5 OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiAtLS0NCj4g IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdC5oICAgICAgICB8ICAxICsNCj4g IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYyB8IDYwICsrKysr Ky0tLS0tLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMg ICB8IDg2ICsrKysrKysrKysrKysrLS0tLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF92ZHBhLmMgICB8ICA4ICstDQo+ICAuLi4vbmV0L3ZpcnRpby92aXJ0aW9fdXNl ci92aXJ0aW9fdXNlcl9kZXYuYyAgfCAgNCArLQ0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5z ZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmly dGlvX3VzZXIvdmhvc3QuaA0KPiBpbmRleCBkODA1NTI2MTMwLi40NjM4MDFmNTYzIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiArKysgYi9k cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiBAQCAtMTE0LDYgKzExNCw3 IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB7DQo+ICAJaW50ICgqc2V0X2ZlYXR1 cmVzKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90IGZlYXR1cmVzKTsNCj4g IAlpbnQgKCpnZXRfcHJvdG9jb2xfZmVhdHVyZXMpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl diwgdWludDY0X3QNCj4gKmZlYXR1cmVzKTsNCj4gIAlpbnQgKCpzZXRfcHJvdG9jb2xfZmVhdHVy ZXMpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QNCj4gZmVhdHVyZXMpOw0K PiArCWludCAoKnNldF9tZW1vcnlfdGFibGUpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldik7 DQo+ICAJaW50ICgqc2VuZF9yZXF1ZXN0KShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ ICAJCQkgICAgZW51bSB2aG9zdF91c2VyX3JlcXVlc3QgcmVxLA0KPiAgCQkJICAgIHZvaWQgKmFy Zyk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rf a2VybmVsLmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVs LmMNCj4gaW5kZXggZTQ2MDM5ZTY0OS4uNjlmOTMyYmVkZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+ICsrKyBiL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0KPiBAQCAtMTQ4LDE3ICsxNDgs NiBAQCB2aG9zdF9rZXJuZWxfc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl diwNCj4gdWludDY0X3QgZmVhdHVyZXMpDQo+ICAJcmV0dXJuIHZob3N0X2tlcm5lbF9pb2N0bChk ZXYtPnZob3N0ZmRzWzBdLCBWSE9TVF9TRVRfRkVBVFVSRVMsDQo+ICZmZWF0dXJlcyk7DQo+ICB9 DQo+IA0KPiAtc3RhdGljIHVpbnQ2NF90IHZob3N0X3JlcV91c2VyX3RvX2tlcm5lbFtdID0gew0K PiAtCVtWSE9TVF9VU0VSX1JFU0VUX09XTkVSXSA9IFZIT1NUX1JFU0VUX09XTkVSLA0KPiAtCVtW SE9TVF9VU0VSX1NFVF9WUklOR19DQUxMXSA9IFZIT1NUX1NFVF9WUklOR19DQUxMLA0KPiAtCVtW SE9TVF9VU0VSX1NFVF9WUklOR19OVU1dID0gVkhPU1RfU0VUX1ZSSU5HX05VTSwNCj4gLQlbVkhP U1RfVVNFUl9TRVRfVlJJTkdfQkFTRV0gPSBWSE9TVF9TRVRfVlJJTkdfQkFTRSwNCj4gLQlbVkhP U1RfVVNFUl9HRVRfVlJJTkdfQkFTRV0gPSBWSE9TVF9HRVRfVlJJTkdfQkFTRSwNCj4gLQlbVkhP U1RfVVNFUl9TRVRfVlJJTkdfQUREUl0gPSBWSE9TVF9TRVRfVlJJTkdfQUREUiwNCj4gLQlbVkhP U1RfVVNFUl9TRVRfVlJJTkdfS0lDS10gPSBWSE9TVF9TRVRfVlJJTkdfS0lDSywNCj4gLQlbVkhP U1RfVVNFUl9TRVRfTUVNX1RBQkxFXSA9IFZIT1NUX1NFVF9NRU1fVEFCTEUsDQo+IC19Ow0KPiAt DQo+ICBzdGF0aWMgaW50DQo+ICBhZGRfbWVtc2VnX2xpc3QoY29uc3Qgc3RydWN0IHJ0ZV9tZW1z ZWdfbGlzdCAqbXNsLCB2b2lkICphcmcpDQo+ICB7DQo+IEBAIC0xOTMsMTYgKzE4MiwxNyBAQCBh ZGRfbWVtc2VnX2xpc3QoY29uc3Qgc3RydWN0IHJ0ZV9tZW1zZWdfbGlzdCAqbXNsLCB2b2lkDQo+ ICphcmcpDQo+ICAgKiBoYXZlIG11Y2ggbW9yZSBtZW1vcnkgcmVnaW9ucy4gQmVsb3cgZnVuY3Rp b24gd2lsbCB0cmVhdCBlYWNoDQo+ICAgKiBjb250aWd1b3VzIG1lbW9yeSBzcGFjZSByZXNlcnZl ZCBieSBEUERLIGFzIG9uZSByZWdpb24uDQo+ICAgKi8NCj4gLXN0YXRpYyBzdHJ1Y3Qgdmhvc3Rf bWVtb3J5X2tlcm5lbCAqDQo+IC1wcmVwYXJlX3Zob3N0X21lbW9yeV9rZXJuZWwodm9pZCkNCj4g K3N0YXRpYyBpbnQNCj4gK3Zob3N0X2tlcm5lbF9zZXRfbWVtb3J5X3RhYmxlKHN0cnVjdCB2aXJ0 aW9fdXNlcl9kZXYgKmRldikNCj4gIHsNCj4gIAlzdHJ1Y3Qgdmhvc3RfbWVtb3J5X2tlcm5lbCAq dm07DQo+ICsJaW50IHJldDsNCj4gDQo+ICAJdm0gPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCB2aG9z dF9tZW1vcnlfa2VybmVsKSArDQo+ICAJCQltYXhfcmVnaW9ucyAqDQo+ICAJCQlzaXplb2Yoc3Ry dWN0IHZob3N0X21lbW9yeV9yZWdpb24pKTsNCj4gIAlpZiAoIXZtKQ0KPiAtCQlyZXR1cm4gTlVM TDsNCj4gKwkJZ290byBlcnI7DQo+IA0KPiAgCXZtLT5ucmVnaW9ucyA9IDA7DQo+ICAJdm0tPnBh ZGRpbmcgPSAwOw0KPiBAQCAtMjExLDE0ICsyMDEsMzQgQEAgcHJlcGFyZV92aG9zdF9tZW1vcnlf a2VybmVsKHZvaWQpDQo+ICAJICogVGhlIG1lbW9yeSBsb2NrIGhhcyBhbHJlYWR5IGJlZW4gdGFr ZW4gYnkgbWVtb3J5IHN1YnN5c3RlbQ0KPiAgCSAqIG9yIHZpcnRpb191c2VyX3N0YXJ0X2Rldmlj ZSgpLg0KPiAgCSAqLw0KPiAtCWlmIChydGVfbWVtc2VnX2xpc3Rfd2Fsa190aHJlYWRfdW5zYWZl KGFkZF9tZW1zZWdfbGlzdCwgdm0pIDwgMCkgew0KPiAtCQlmcmVlKHZtKTsNCj4gLQkJcmV0dXJu IE5VTEw7DQo+IC0JfQ0KPiArCXJldCA9IHJ0ZV9tZW1zZWdfbGlzdF93YWxrX3RocmVhZF91bnNh ZmUoYWRkX21lbXNlZ19saXN0LCB2bSk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICsJCWdvdG8gZXJy X2ZyZWU7DQo+ICsNCj4gKwlyZXQgPSB2aG9zdF9rZXJuZWxfaW9jdGwoZGV2LT52aG9zdGZkc1sw XSwgVkhPU1RfU0VUX01FTV9UQUJMRSwgdm0pOw0KPiArCWlmIChyZXQgPCAwKQ0KPiArCQlnb3Rv IGVycl9mcmVlOw0KPiANCj4gLQlyZXR1cm4gdm07DQo+ICsJZnJlZSh2bSk7DQo+ICsNCj4gKwly ZXR1cm4gMDsNCj4gK2Vycl9mcmVlOg0KPiArCWZyZWUodm0pOw0KPiArZXJyOg0KPiArCVBNRF9E UlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgbWVtb3J5IHRhYmxlIik7DQo+ICsJcmV0dXJuIC0x Ow0KPiAgfQ0KPiANCj4gK3N0YXRpYyB1aW50NjRfdCB2aG9zdF9yZXFfdXNlcl90b19rZXJuZWxb XSA9IHsNCj4gKwlbVkhPU1RfVVNFUl9SRVNFVF9PV05FUl0gPSBWSE9TVF9SRVNFVF9PV05FUiwN Cj4gKwlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQ0FMTF0gPSBWSE9TVF9TRVRfVlJJTkdfQ0FMTCwN Cj4gKwlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNXSA9IFZIT1NUX1NFVF9WUklOR19OVU0sDQo+ ICsJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0VdID0gVkhPU1RfU0VUX1ZSSU5HX0JBU0UsDQo+ ICsJW1ZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JBU0VdID0gVkhPU1RfR0VUX1ZSSU5HX0JBU0UsDQo+ ICsJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFJdID0gVkhPU1RfU0VUX1ZSSU5HX0FERFIsDQo+ ICsJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0tJQ0tdID0gVkhPU1RfU0VUX1ZSSU5HX0tJQ0ssDQo+ ICt9Ow0KPiArDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF9rZXJuZWxfc2VuZF9yZXF1ZXN0KHN0 cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAkJICAgZW51bSB2aG9zdF91c2VyX3JlcXVl c3QgcmVxLA0KPiBAQCAtMjI3LDcgKzIzNyw2IEBAIHZob3N0X2tlcm5lbF9zZW5kX3JlcXVlc3Qo c3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiAgCWludCByZXQgPSAtMTsNCj4gIAl1bnNp Z25lZCBpbnQgaTsNCj4gIAl1aW50NjRfdCByZXFfa2VybmVsOw0KPiAtCXN0cnVjdCB2aG9zdF9t ZW1vcnlfa2VybmVsICp2bSA9IE5VTEw7DQo+ICAJaW50IHZob3N0ZmQ7DQo+ICAJdW5zaWduZWQg aW50IHF1ZXVlX3NlbDsNCj4gDQo+IEBAIC0yMzUsMTMgKzI0NCw2IEBAIHZob3N0X2tlcm5lbF9z ZW5kX3JlcXVlc3Qoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiANCj4gIAlyZXFfa2Vy bmVsID0gdmhvc3RfcmVxX3VzZXJfdG9fa2VybmVsW3JlcV07DQo+IA0KPiAtCWlmIChyZXFfa2Vy bmVsID09IFZIT1NUX1NFVF9NRU1fVEFCTEUpIHsNCj4gLQkJdm0gPSBwcmVwYXJlX3Zob3N0X21l bW9yeV9rZXJuZWwoKTsNCj4gLQkJaWYgKCF2bSkNCj4gLQkJCXJldHVybiAtMTsNCj4gLQkJYXJn ID0gKHZvaWQgKil2bTsNCj4gLQl9DQo+IC0NCj4gIAlzd2l0Y2ggKHJlcV9rZXJuZWwpIHsNCj4g IAljYXNlIFZIT1NUX1NFVF9WUklOR19OVU06DQo+ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfQURE UjoNCj4gQEAgLTI3MSw5ICsyNzMsNiBAQCB2aG9zdF9rZXJuZWxfc2VuZF9yZXF1ZXN0KHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAkJcmV0ID0gaW9jdGwodmhvc3RmZCwgcmVxX2tl cm5lbCwgYXJnKTsNCj4gIAl9DQo+IA0KPiAtCWlmICh2bSkNCj4gLQkJZnJlZSh2bSk7DQo+IC0N Cj4gIAlpZiAocmV0IDwgMCkNCj4gIAkJUE1EX0RSVl9MT0coRVJSLCAiJXMgZmFpbGVkOiAlcyIs DQo+ICAJCQkgICAgdmhvc3RfbXNnX3N0cmluZ3NbcmVxXSwgc3RyZXJyb3IoZXJybm8pKTsNCj4g QEAgLTQwMyw2ICs0MDIsNyBAQCBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlv X29wc19rZXJuZWwgPSB7DQo+ICAJLnNldF9vd25lciA9IHZob3N0X2tlcm5lbF9zZXRfb3duZXIs DQo+ICAJLmdldF9mZWF0dXJlcyA9IHZob3N0X2tlcm5lbF9nZXRfZmVhdHVyZXMsDQo+ICAJLnNl dF9mZWF0dXJlcyA9IHZob3N0X2tlcm5lbF9zZXRfZmVhdHVyZXMsDQo+ICsJLnNldF9tZW1vcnlf dGFibGUgPSB2aG9zdF9rZXJuZWxfc2V0X21lbW9yeV90YWJsZSwNCj4gIAkuc2VuZF9yZXF1ZXN0 ID0gdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdCwNCj4gIAkuZW5hYmxlX3FwID0gdmhvc3Rfa2Vy bmVsX2VuYWJsZV9xdWV1ZV9wYWlyDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0aW9fdXNlci92aG9zdF91c2VyLmMNCj4gaW5kZXggNDg3NzU3NGY3Mi4uODQ3NjVkNWZkZiAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIu Yw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+ IEBAIC04MSw2ICs4MSw5IEBAIHZob3N0X3VzZXJfd3JpdGUoaW50IGZkLCBzdHJ1Y3Qgdmhvc3Rf dXNlcl9tc2cgKm1zZywgaW50DQo+ICpmZHMsIGludCBmZF9udW0pDQo+ICAJCXIgPSBzZW5kbXNn KGZkLCAmbXNnaCwgMCk7DQo+ICAJfSB3aGlsZSAociA8IDAgJiYgZXJybm8gPT0gRUlOVFIpOw0K PiANCj4gKwlpZiAociA8IDApDQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZW5k IG1zZzogJXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiArDQo+ICAJcmV0dXJuIHI7DQo+ICB9DQo+ IA0KPiBAQCAtMTI1LDYgKzEyOCwzOSBAQCB2aG9zdF91c2VyX3JlYWQoaW50IGZkLCBzdHJ1Y3Qg dmhvc3RfdXNlcl9tc2cgKm1zZykNCj4gIAlyZXR1cm4gLTE7DQo+ICB9DQo+IA0KPiArc3RhdGlj IGludA0KPiArdmhvc3RfdXNlcl9jaGVja19yZXBseV9hY2soc3RydWN0IHZpcnRpb191c2VyX2Rl diAqZGV2LCBzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cNCj4gKm1zZykNCj4gK3sNCj4gKwllbnVtIHZo b3N0X3VzZXJfcmVxdWVzdCByZXEgPSBtc2ctPnJlcXVlc3Q7DQo+ICsJaW50IHJldDsNCj4gKw0K PiArCWlmICghKG1zZy0+ZmxhZ3MgJiBWSE9TVF9VU0VSX05FRURfUkVQTFlfTUFTSykpDQo+ICsJ CXJldHVybiAwOw0KPiArDQo+ICsJcmV0ID0gdmhvc3RfdXNlcl9yZWFkKGRldi0+dmhvc3RmZCwg bXNnKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQg dG8gcmVhZCByZXBseS1hY2siKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCWlm IChyZXEgIT0gbXNnLT5yZXF1ZXN0KSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIlVuZXhwZWN0 ZWQgcmVwbHktYWNrIHJlcXVlc3QgdHlwZSAoJWQpIiwgbXNnLQ0KPiA+cmVxdWVzdCk7DQo+ICsJ CXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAobXNnLT5zaXplICE9IHNpemVvZihtc2ct PnBheWxvYWQudTY0KSkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJVbmV4cGVjdGVkIHJlcGx5 LWFjayBwYXlsb2FkIHNpemUgKCV1KSIsIG1zZy0NCj4gPnNpemUpOw0KPiArCQlyZXR1cm4gLTE7 DQo+ICsJfQ0KPiArDQo+ICsJaWYgKG1zZy0+cGF5bG9hZC51NjQpIHsNCj4gKwkJUE1EX0RSVl9M T0coRVJSLCAiU2xhdmUgcmVwbGllZCBOQUNLIHRvIHJlcXVlc3QgdHlwZSAoJWQpIiwgbXNnLQ0K PiA+cmVxdWVzdCk7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gMDsN Cj4gK30NCj4gKw0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdXNlcl9zZXRfb3duZXIoc3RydWN0 IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgew0KPiBAQCAtMzM4LDI1ICszNzQsNDcgQEAgdXBk YXRlX21lbW9yeV9yZWdpb24oY29uc3Qgc3RydWN0IHJ0ZV9tZW1zZWdfbGlzdCAqbXNsDQo+IF9f cnRlX3VudXNlZCwNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+IC1wcmVwYXJlX3Zob3N0X21l bW9yeV91c2VyKHN0cnVjdCB2aG9zdF91c2VyX21zZyAqbXNnLCBpbnQgZmRzW10pDQo+ICt2aG9z dF91c2VyX3NldF9tZW1vcnlfdGFibGUoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAg ew0KPiAgCXN0cnVjdCB3YWxrX2FyZyB3YTsNCj4gKwlpbnQgZmRzW1ZIT1NUX01FTU9SWV9NQVhf TlJFR0lPTlNdOw0KPiArCWludCByZXQsIGZkX251bTsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9t c2cgbXNnID0gew0KPiArCQkucmVxdWVzdCA9IFZIT1NUX1VTRVJfU0VUX01FTV9UQUJMRSwNCj4g KwkJLmZsYWdzID0gVkhPU1RfVVNFUl9WRVJTSU9OLA0KPiArCX07DQo+ICsNCj4gKwlpZiAoZGV2 LT5wcm90b2NvbF9mZWF0dXJlcyAmICgxVUxMIDw8IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SRVBM WV9BQ0spKQ0KPiArCQltc2cuZmxhZ3MgfD0gVkhPU1RfVVNFUl9ORUVEX1JFUExZX01BU0s7DQo+ IA0KPiAgCXdhLnJlZ2lvbl9uciA9IDA7DQo+IC0Jd2Eudm0gPSAmbXNnLT5wYXlsb2FkLm1lbW9y eTsNCj4gKwl3YS52bSA9ICZtc2cucGF5bG9hZC5tZW1vcnk7DQo+ICAJd2EuZmRzID0gZmRzOw0K PiANCj4gIAkvKg0KPiAgCSAqIFRoZSBtZW1vcnkgbG9jayBoYXMgYWxyZWFkeSBiZWVuIHRha2Vu IGJ5IG1lbW9yeSBzdWJzeXN0ZW0NCj4gIAkgKiBvciB2aXJ0aW9fdXNlcl9zdGFydF9kZXZpY2Uo KS4NCj4gIAkgKi8NCj4gLQlpZiAocnRlX21lbXNlZ193YWxrX3RocmVhZF91bnNhZmUodXBkYXRl X21lbW9yeV9yZWdpb24sICZ3YSkgPCAwKQ0KPiAtCQlyZXR1cm4gLTE7DQo+ICsJcmV0ID0gcnRl X21lbXNlZ193YWxrX3RocmVhZF91bnNhZmUodXBkYXRlX21lbW9yeV9yZWdpb24sICZ3YSk7DQo+ ICsJaWYgKHJldCA8IDApDQo+ICsJCWdvdG8gZXJyOw0KPiANCj4gLQltc2ctPnBheWxvYWQubWVt b3J5Lm5yZWdpb25zID0gd2EucmVnaW9uX25yOw0KPiAtCW1zZy0+cGF5bG9hZC5tZW1vcnkucGFk ZGluZyA9IDA7DQo+ICsJZmRfbnVtID0gd2EucmVnaW9uX25yOw0KPiArCW1zZy5wYXlsb2FkLm1l bW9yeS5ucmVnaW9ucyA9IHdhLnJlZ2lvbl9ucjsNCj4gKwltc2cucGF5bG9hZC5tZW1vcnkucGFk ZGluZyA9IDA7DQo+IA0KPiAtCXJldHVybiAwOw0KPiArCW1zZy5zaXplID0gc2l6ZW9mKG1zZy5w YXlsb2FkLm1lbW9yeS5ucmVnaW9ucyk7DQo+ICsJbXNnLnNpemUgKz0gc2l6ZW9mKG1zZy5wYXls b2FkLm1lbW9yeS5wYWRkaW5nKTsNCj4gKwltc2cuc2l6ZSArPSBmZF9udW0gKiBzaXplb2Yoc3Ry dWN0IHZob3N0X21lbW9yeV9yZWdpb24pOw0KPiArDQo+ICsJcmV0ID0gdmhvc3RfdXNlcl93cml0 ZShkZXYtPnZob3N0ZmQsICZtc2csIGZkcywgZmRfbnVtKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4g KwkJZ290byBlcnI7DQo+ICsNCj4gKwlyZXR1cm4gdmhvc3RfdXNlcl9jaGVja19yZXBseV9hY2so ZGV2LCAmbXNnKTsNCj4gK2VycjoNCj4gKwlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2V0 IG1lbW9yeSB0YWJsZSIpOw0KPiArCXJldHVybiAtMTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgc3Ry dWN0IHZob3N0X3VzZXJfbXNnIG07DQo+IEBAIC0zNjksNyArNDI3LDYgQEAgY29uc3QgY2hhciAq IGNvbnN0IHZob3N0X21zZ19zdHJpbmdzW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJfR0VUX1ZSSU5H X0JBU0VdID0gIlZIT1NUX0dFVF9WUklOR19CQVNFIiwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJ TkdfQUREUl0gPSAiVkhPU1RfU0VUX1ZSSU5HX0FERFIiLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9W UklOR19LSUNLXSA9ICJWSE9TVF9TRVRfVlJJTkdfS0lDSyIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VU X01FTV9UQUJMRV0gPSAiVkhPU1RfU0VUX01FTV9UQUJMRSIsDQo+ICAJW1ZIT1NUX1VTRVJfU0VU X1ZSSU5HX0VOQUJMRV0gPSAiVkhPU1RfU0VUX1ZSSU5HX0VOQUJMRSIsDQo+ICAJW1ZIT1NUX1VT RVJfU0VUX1NUQVRVU10gPSAiVkhPU1RfU0VUX1NUQVRVUyIsDQo+ICAJW1ZIT1NUX1VTRVJfR0VU X1NUQVRVU10gPSAiVkhPU1RfR0VUX1NUQVRVUyIsDQo+IEBAIC00MzQsMTggKzQ5MSw2IEBAIHZo b3N0X3VzZXJfc29jayhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJY2FzZSBWSE9T VF9VU0VSX1JFU0VUX09XTkVSOg0KPiAgCQlicmVhazsNCj4gDQo+IC0JY2FzZSBWSE9TVF9VU0VS X1NFVF9NRU1fVEFCTEU6DQo+IC0JCWlmIChwcmVwYXJlX3Zob3N0X21lbW9yeV91c2VyKCZtc2cs IGZkcykgPCAwKQ0KPiAtCQkJcmV0dXJuIC0xOw0KPiAtCQlmZF9udW0gPSBtc2cucGF5bG9hZC5t ZW1vcnkubnJlZ2lvbnM7DQo+IC0JCW1zZy5zaXplID0gc2l6ZW9mKG0ucGF5bG9hZC5tZW1vcnku bnJlZ2lvbnMpOw0KPiAtCQltc2cuc2l6ZSArPSBzaXplb2YobS5wYXlsb2FkLm1lbW9yeS5wYWRk aW5nKTsNCj4gLQkJbXNnLnNpemUgKz0gZmRfbnVtICogc2l6ZW9mKHN0cnVjdCB2aG9zdF9tZW1v cnlfcmVnaW9uKTsNCj4gLQ0KPiAtCQlpZiAoaGFzX3JlcGx5X2FjaykNCj4gLQkJCW1zZy5mbGFn cyB8PSBWSE9TVF9VU0VSX05FRURfUkVQTFlfTUFTSzsNCj4gLQkJYnJlYWs7DQo+IC0NCj4gIAlj YXNlIFZIT1NUX1VTRVJfU0VUX0xPR19GRDoNCj4gIAkJZmRzW2ZkX251bSsrXSA9ICooKGludCAq KWFyZyk7DQo+ICAJCWJyZWFrOw0KPiBAQCAtNjQ0LDYgKzY4OSw3IEBAIHN0cnVjdCB2aXJ0aW9f dXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX3VzZXIgPSB7DQo+ICAJLnNldF9mZWF0dXJlcyA9 IHZob3N0X3VzZXJfc2V0X2ZlYXR1cmVzLA0KPiAgCS5nZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSB2 aG9zdF91c2VyX2dldF9wcm90b2NvbF9mZWF0dXJlcywNCj4gIAkuc2V0X3Byb3RvY29sX2ZlYXR1 cmVzID0gdmhvc3RfdXNlcl9zZXRfcHJvdG9jb2xfZmVhdHVyZXMsDQo+ICsJLnNldF9tZW1vcnlf dGFibGUgPSB2aG9zdF91c2VyX3NldF9tZW1vcnlfdGFibGUsDQo+ICAJLnNlbmRfcmVxdWVzdCA9 IHZob3N0X3VzZXJfc29jaywNCj4gIAkuZW5hYmxlX3FwID0gdmhvc3RfdXNlcl9lbmFibGVfcXVl dWVfcGFpcg0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF92ZHBhLmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhv c3RfdmRwYS5jDQo+IGluZGV4IGY2MjdhZmJjZmMuLmJkN2RhZWJmMGMgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gKysrIGIvZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiBAQCAtMTksNyArMTks NiBAQA0KPiAgI2RlZmluZSBWSE9TVF9TRVRfRkVBVFVSRVMgX0lPVyhWSE9TVF9WSVJUSU8sIDB4 MDAsIF9fdTY0KQ0KPiAgI2RlZmluZSBWSE9TVF9TRVRfT1dORVIgX0lPKFZIT1NUX1ZJUlRJTywg MHgwMSkNCj4gICNkZWZpbmUgVkhPU1RfUkVTRVRfT1dORVIgX0lPKFZIT1NUX1ZJUlRJTywgMHgw MikNCj4gLSNkZWZpbmUgVkhPU1RfU0VUX01FTV9UQUJMRSBfSU9XKFZIT1NUX1ZJUlRJTywgMHgw Mywgdm9pZCAqKQ0KPiAgI2RlZmluZSBWSE9TVF9TRVRfTE9HX0JBU0UgX0lPVyhWSE9TVF9WSVJU SU8sIDB4MDQsIF9fdTY0KQ0KPiAgI2RlZmluZSBWSE9TVF9TRVRfTE9HX0ZEIF9JT1coVkhPU1Rf VklSVElPLCAweDA3LCBpbnQpDQo+ICAjZGVmaW5lIFZIT1NUX1NFVF9WUklOR19OVU0gX0lPVyhW SE9TVF9WSVJUSU8sIDB4MTAsIHN0cnVjdCB2aG9zdF92cmluZ19zdGF0ZSkNCj4gQEAgLTQ2LDcg KzQ1LDYgQEAgc3RhdGljIHVpbnQ2NF90IHZob3N0X3JlcV91c2VyX3RvX3ZkcGFbXSA9IHsNCj4g IAlbVkhPU1RfVVNFUl9HRVRfVlJJTkdfQkFTRV0gPSBWSE9TVF9HRVRfVlJJTkdfQkFTRSwNCj4g IAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQUREUl0gPSBWSE9TVF9TRVRfVlJJTkdfQUREUiwNCj4g IAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfS0lDS10gPSBWSE9TVF9TRVRfVlJJTkdfS0lDSywNCj4g LQlbVkhPU1RfVVNFUl9TRVRfTUVNX1RBQkxFXSA9IFZIT1NUX1NFVF9NRU1fVEFCTEUsDQo+ICAJ W1ZIT1NUX1VTRVJfU0VUX1NUQVRVU10gPSBWSE9TVF9WRFBBX1NFVF9TVEFUVVMsDQo+ICAJW1ZI T1NUX1VTRVJfR0VUX1NUQVRVU10gPSBWSE9TVF9WRFBBX0dFVF9TVEFUVVMsDQo+ICAJW1ZIT1NU X1VTRVJfU0VUX1ZSSU5HX0VOQUJMRV0gPSBWSE9TVF9WRFBBX1NFVF9WUklOR19FTkFCTEUsDQo+ IEBAIC0zMTksNyArMzE3LDcgQEAgdmhvc3RfdmRwYV9tYXAoY29uc3Qgc3RydWN0IHJ0ZV9tZW1z ZWdfbGlzdCAqbXNsLCBjb25zdA0KPiBzdHJ1Y3QgcnRlX21lbXNlZyAqbXMsDQo+ICB9DQo+IA0K PiAgc3RhdGljIGludA0KPiAtdmhvc3RfdmRwYV9kbWFfbWFwX2FsbChzdHJ1Y3QgdmlydGlvX3Vz ZXJfZGV2ICpkZXYpDQo+ICt2aG9zdF92ZHBhX3NldF9tZW1vcnlfdGFibGUoc3RydWN0IHZpcnRp b191c2VyX2RldiAqZGV2KQ0KPiAgew0KPiAgCWludCByZXQ7DQo+IA0KPiBAQCAtMzc2LDkgKzM3 NCw2IEBAIHZob3N0X3ZkcGFfc2VuZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl diwNCj4gDQo+ICAJcmVxX3ZkcGEgPSB2aG9zdF9yZXFfdXNlcl90b192ZHBhW3JlcV07DQo+IA0K PiAtCWlmIChyZXFfdmRwYSA9PSBWSE9TVF9TRVRfTUVNX1RBQkxFKQ0KPiAtCQlyZXR1cm4gdmhv c3RfdmRwYV9kbWFfbWFwX2FsbChkZXYpOw0KPiAtDQo+ICAJc3dpdGNoIChyZXFfdmRwYSkgew0K PiAgCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX05VTToNCj4gIAljYXNlIFZIT1NUX1NFVF9WUklOR19B RERSOg0KPiBAQCAtNDYxLDYgKzQ1Niw3IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29w cyB2aXJ0aW9fb3BzX3ZkcGEgPSB7DQo+ICAJLnNldF9mZWF0dXJlcyA9IHZob3N0X3ZkcGFfc2V0 X2ZlYXR1cmVzLA0KPiAgCS5nZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSB2aG9zdF92ZHBhX2dldF9i YWNrZW5kX2ZlYXR1cmVzLA0KPiAgCS5zZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSB2aG9zdF92ZHBh X3NldF9iYWNrZW5kX2ZlYXR1cmVzLA0KPiArCS5zZXRfbWVtb3J5X3RhYmxlID0gdmhvc3RfdmRw YV9zZXRfbWVtb3J5X3RhYmxlLA0KPiAgCS5zZW5kX3JlcXVlc3QgPSB2aG9zdF92ZHBhX3NlbmRf cmVxdWVzdCwNCj4gIAkuZW5hYmxlX3FwID0gdmhvc3RfdmRwYV9lbmFibGVfcXVldWVfcGFpciwN Cj4gIAkuZG1hX21hcCA9IHZob3N0X3ZkcGFfZG1hX21hcF9iYXRjaCwNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBiL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBpbmRleCA0 NTQxN2JiYzVkLi5jYjhmOGE4NzJjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+IEBAIC0xNzcsNyArMTc3LDcgQEAgdmly dGlvX3VzZXJfc3RhcnRfZGV2aWNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gIAkJ Z290byBlcnJvcjsNCj4gDQo+ICAJLyogU3RlcCAyOiBzaGFyZSBtZW1vcnkgcmVnaW9ucyAqLw0K PiAtCXJldCA9IGRldi0+b3BzLT5zZW5kX3JlcXVlc3QoZGV2LCBWSE9TVF9VU0VSX1NFVF9NRU1f VEFCTEUsIE5VTEwpOw0KPiArCXJldCA9IGRldi0+b3BzLT5zZXRfbWVtb3J5X3RhYmxlKGRldik7 DQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCWdvdG8gZXJyb3I7DQo+IA0KPiBAQCAtMzUyLDcgKzM1 Miw3IEBAIHZpcnRpb191c2VyX21lbV9ldmVudF9jYihlbnVtIHJ0ZV9tZW1fZXZlbnQgdHlwZQ0K PiBfX3J0ZV91bnVzZWQsDQo+ICAJCWRldi0+b3BzLT5lbmFibGVfcXAoZGV2LCBpLCAwKTsNCj4g DQo+ICAJLyogU3RlcCAyOiB1cGRhdGUgbWVtb3J5IHJlZ2lvbnMgKi8NCj4gLQlkZXYtPm9wcy0+ c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9TRVRfTUVNX1RBQkxFLCBOVUxMKTsNCj4gKwlk ZXYtPm9wcy0+c2V0X21lbW9yeV90YWJsZShkZXYpOw0KPiANCj4gIAkvKiBTdGVwIDM6IHJlc3Vt ZSB0aGUgYWN0aXZlIHF1ZXVlcyAqLw0KPiAgCWZvciAoaSA9IDA7IGkgPCBkZXYtPnF1ZXVlX3Bh aXJzOyBpKyspDQo+IC0tDQo+IDIuMjkuMg0KDQpSZXZpZXdlZC1ieTogQ2hlbmJvIFhpYSA8Y2hl bmJvLnhpYUBpbnRlbC5jb20+DQo=