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 DA6A3A0547; Fri, 29 Oct 2021 08:19:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D4C9240688; Fri, 29 Oct 2021 08:19:38 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id B1B5A40395 for ; Fri, 29 Oct 2021 08:19:36 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10151"; a="217782844" X-IronPort-AV: E=Sophos;i="5.87,191,1631602800"; d="scan'208";a="217782844" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Oct 2021 23:19:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,191,1631602800"; d="scan'208";a="530300072" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga001.jf.intel.com with ESMTP; 28 Oct 2021 23:19:35 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 28 Oct 2021 23:19:35 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 28 Oct 2021 23:19:35 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 28 Oct 2021 23:19:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PkcTl0v5KBCmLGjGP80blyzWjfRPEaZVPkhT+LFKDnZK4VzNc6V4jH0vZzX7yDn2RFwczEf4JXSymTj6orLL2bnneoFpEioY08Q38GEn3BnK1KqrVIswDeDk4xkm8TYwGTEvMYgRmv3FrBVSc31N6itag3No1dt/WImqv7fbRWjffM+Ko8o5Ioy9P1IP6cFAD95+AnEYmDvWaYemEAdB5kNqt0BY8e4TQpi1ThvNQBg5oF3nbXiX/2J+/0lclgbFkgRAGUblqpR97EdNNt7UdA7R+B5HPsa79FzEkX0hPEFvWzO99zAWHhigLVDcwhtdJ+ssxKxojwWh9V5pEpdiMA== 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=6cybFtZwRXU79vjqt0J31uLlwZj5SRvFvS0tlJZ3pNg=; b=m7waL6YwGdzf6OWXmLFGCuNAp9J0KSjUzKu3qBfVzf7317lt6yzKewhFilHPV/WsE5da1Opx6Vux+WTdwihTPS+Wtc96JZOTvH3yE7BlKbFKq2vmDPUoT8PzmLJjHRwTAxqmolzwZi45GLvys9gOv65Y5WL8EIPJKSS5H0HfkWC8u1bP3MtqzCdAQfHsMftgAXZrPjqPXu0oad2zkYhabqjRgRyOMMT63hOH73rhQtMjn0Gu0zJg1L4NCs1eBy/JVRNTNnC3zlBWdRfQCUUaldWct01wlyfb7aZOkCebXizu7VfiTz5emn7uCoBdxf4VRW20BFtC4061qUUxjZIvOQ== 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=6cybFtZwRXU79vjqt0J31uLlwZj5SRvFvS0tlJZ3pNg=; b=oGzlAeZQGmkeOIJkF6ND3PX2Is0nPUEGpla3o2EbNPKK1jGZYTxYyArJo1Y06d40e1cn+OXMwN4flITGqTtwq4+zXz2Lf21wRHog14rKo5KMO7h6xjtbJ2Kheq57wuw52uoh1dBZ0n7jZf6CIaxFrr6o6bNALMCdCchPny+bTyY= Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by SA0PR11MB4672.namprd11.prod.outlook.com (2603:10b6:806:96::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Fri, 29 Oct 2021 06:19:25 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511%7]) with mapi id 15.20.4649.015; Fri, 29 Oct 2021 06:19:25 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "Hu, Jiayu" , "Wang, YuanX" , "Ma, WenwuX" , "Richardson, Bruce" , "Mcnamara, John" Thread-Topic: [PATCH v2 06/15] vhost: introduce specific iovec structure Thread-Index: AQHXyoazWqO0fznzYkOn7/PfxDuml6vpgzJQ Date: Fri, 29 Oct 2021 06:19:25 +0000 Message-ID: References: <20211026162904.482987-1-maxime.coquelin@redhat.com> <20211026162904.482987-7-maxime.coquelin@redhat.com> In-Reply-To: <20211026162904.482987-7-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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: af38396a-cce3-4f52-4f94-08d99aa40e89 x-ms-traffictypediagnostic: SA0PR11MB4672: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1468; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fiQ67BR3k/Lb5GfOZtyQGUUAjE9O2o/DE+Q0298XnAUdAAO5826lCvZ+VN/HVnEXRkLbm1BTYRHG+j8FrwhUdRzAJwsjXnGKBAf/2dIMpmLMrc9UbMjXRjYaG7c497g6HTJwZRe2Oso+yj80KnVgLAVpwdg3QHRt7IcZrJay9fcFMBBWbDS3JgCy7yclL5C1FOBStEPES1a55BlLhE4hRDup76ODkv4AueJSc/7/z7RUI7ac2xCsOzgTtL8fn/jbM2Qq22JLkYs/caQNPr5tf31fSokwbMWK8SqYWCB7IqaWqCj5o2mtBeDZLUwtDv6qXbcgdI6wVZKsLjxA83cgUXn3hONNCekhr0lbHlGvL8R+QqkdAQgpEz1+GhL9DLK++S4cEVBSIZUCnSrRRWWXiruUSDAe0qtK31Mf/jN/A71aZwBfEzUeQBBJ8tEoYxg0VMoa4o66ojFduOCU79yxoxg88wVZAj7KU5qr+c6MKOVt1qv30E9fGl6ZGQV1DHQID3W8rPZeHaORRoTcShj7Xv8Nv2844q2oulOjdSJxl40GE1awaqeJrsm7MGyHBxjC/um8auVr4rFStz1/0kzgXS2latWPMs43EWhdq6MvGCib/vOhh9x5Stz/bsh7P9CE+a9OJ4YXjDeNnkFTZGpdWJMVyKX249/qeC2o0xnGM0JJPu2ED9AfdAxDRjlp1ay60522JXe8+OZEfxyWERc1wNMeo3uRNC2HmXM/p71Y06E= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(8936002)(8676002)(53546011)(122000001)(6506007)(66946007)(6636002)(64756008)(83380400001)(71200400001)(26005)(82960400001)(66476007)(86362001)(66556008)(52536014)(186003)(76116006)(9686003)(7696005)(66446008)(33656002)(38070700005)(5660300002)(508600001)(2906002)(921005)(316002)(55016002)(30864003)(110136005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MU1YU0pJeTNBaEFrM1Q0T3NYUlJHOEx3SHVFU0FuZTE4QkxUMTh5UDJkTnRh?= =?utf-8?B?a3Z1TFZHZ2FobWNqbUdkNy80YW0wMnhHdkpOQ2Y5eWlGOHZIRWlMeEVwbXJl?= =?utf-8?B?eElsNDBqcFNrUmJoNXVmVjBPSjNRbkRrZy9LNUhIVUx0RFVpMWlrb2hCajVR?= =?utf-8?B?RldXS3dpYjRjL1c2eWJFWkQ3cnhENXoyQjk4akJLUzdJZzA4cllNTExZamgz?= =?utf-8?B?TDV2YUZyZHYrYWdiaWRwcVk2YXhsbzlKc2ZVNUhkV3E5dXBNWlRhZlV4SDJs?= =?utf-8?B?a0FFWFVFME1lcFZIQXVhYmphSGp3K2xhNlF4UE0xN1Y4ckpSVTlKMVQzQnFa?= =?utf-8?B?dlNFRGtlUGo2WkFyNnNTb05hWUNteHBiNkgyRDZUMFM1T0lSSlBqYXZucjJW?= =?utf-8?B?ODBiSU1wc0I4NkVReG4wbmJLblBaYXdGRURqOXFzSXYxSWdvMng1czJtK2Vw?= =?utf-8?B?S2FuZEhBQldCdGhZMnpiNktXeDFBaUhJNUNseUEwS2U3U2c1aVFyQXg2UE9i?= =?utf-8?B?bzFNTm0zNVRVTTlWNkNxSGF1OTBpS2h3alVJSG5uNkVZaVVLdmlZUkQvUEdZ?= =?utf-8?B?UXRGZmlpcTZnSEl2WHdjRmdXUThJMG92VkJRUkFPTHpxSjBLcVlCcndNTk1j?= =?utf-8?B?YktTRHZpVHBzbDFzNEVuUTdpTVpkZjI3OWFweEY3TXMvV0ZyaXhLQ0N3VVNN?= =?utf-8?B?ZHdVbTdGVHQ5dU5wZkRUWlJyUFZDMjdHZ0lFTWo0T0lmTy9aUG5IdkhrUWxJ?= =?utf-8?B?bWI2dlhDWnJCajFubkM4Nk83dFYrb3RwaWtSY2xsZ2o0c3k2bjkyZjZ0eTRH?= =?utf-8?B?eFBjMWt1UmpaeTY5QnNXWWtrSXJLaEdXM1lRZFBOWjUyem1MWWI1Vmc2Zmw3?= =?utf-8?B?d2pyRTcrODZwUWNGUnhHV0F5S2g5TEpDeEkydmplai9PblhFbGNpYnQ3TVYx?= =?utf-8?B?L3g3VUt4L3JYMDFVbnZ3d0x1ZVIxKy9QTENrczhvWDNVd3J4MWdrUUxPZ2Nt?= =?utf-8?B?WC9CMW96bDllMm9XK0w0ME9Kb29mL1VZcXFQSXI4Vkl5WERTbVBVbHlYVUFZ?= =?utf-8?B?d2tyMzNUeFdYeTZWanJoMDF6cUNnSnRpMnBIbXh6QXM0UURScnlEUWZ1dXRW?= =?utf-8?B?MVNzS3BOUElBNm8vVUhyczAwYWo3bTAySjJLS1F0Z0JoTVcyTzJmb0lPeklr?= =?utf-8?B?VHphN3BMTTQyZUk5dHVKWXZlWXhRWVJYTWxLL2dESXdrdlRDVUcrcjdMMFU5?= =?utf-8?B?SjB3NUJmK0U3bWMydzJWUFZNMG1wRysvdm0xUytJeDk1eWsxZGtGU3NHeitI?= =?utf-8?B?M21uL2Q3ZTV4RGl2UXhvMWJkam9LZmI2OHd3a0h6TnovdmxmTEZJNUhncmxB?= =?utf-8?B?akJXQmFzRi9KRVFjU29zUkRESXkzR1JSaElXcEYwTFNCeGVLZDhNclkzRjRn?= =?utf-8?B?ZGJzRzdTNlBHVjJ6S2s2bFdVcUFEYlhVVlY2YXV2TUZZdXZhYUVaTW9PYUlk?= =?utf-8?B?REd2SFdzUTczSENHVTZhTTFVemwzaTkzc1VDdGliYVdsUHVRb09IMUdOTGNp?= =?utf-8?B?KzVUWDI0MjNmY0IxV3p6QjhuZ0EwdUJSaWVkVkUwR2Rteit4N2FJK3FCZWpm?= =?utf-8?B?VktFTi9ZRTNXV1FYc0dmMGU0TGtsQ1JDYThJQjhLbHFaWEpCb1JaVjNUZzIv?= =?utf-8?B?OHdtanYxZGRBUzR6VkVyR0Ixek5hQy9Jd1RjeENzT2htVE9uc0hySEh0c0xz?= =?utf-8?B?L0xDc25vZFVGWG5VQVFQSzcvZlcwNVQrVkpJWitqT09qZDZuMm8wUGtDZnJF?= =?utf-8?B?ak1INWJrNFNJTFBENkZnSVZnblNRWTNFb1l2NmREbERrYVNCY1NmWnc2TEdP?= =?utf-8?B?NitCVWJrSzRReGQrREdBUDQvNUFzTXFKZzg2S1BNOVZ4blRkZURMemFXamhC?= =?utf-8?B?ODRjZ1FjbFBuWGk4TkF0aDVWWk13cW5UMEcxT3o5ZFI0bXVrZzkvMk1ES2Jo?= =?utf-8?B?Mis2NEI5OWNOSnVYR29ZQUt2cHhRMEI4TEhwaWpjV3JiVThLY0dSR1hUSm1a?= =?utf-8?B?NXFUQUVjZVdhTU9OaE5QdHBQMXdkYjBEOGlLZzlORzhpUEllUTZWcGtpYU5p?= =?utf-8?B?YWpBeHhjNGVTOTd5ZS9NQ2VsNFphcmpYTHBqdG42dXJDZTFCRnFTeXU2WnRr?= =?utf-8?B?Rnc9PQ==?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af38396a-cce3-4f52-4f94-08d99aa40e89 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2021 06:19:25.7750 (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: KGdjJ4NyWFcvMIRhVtkKrDf2XWr/1eBM9x8HE9sMI2lSw4vYtaP+aI0KOqbE0bjQA//Ac8+Qx+OqcQX/jLZ7VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4672 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 06/15] vhost: introduce specific iovec structure 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 eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMjcs IDIwMjEgMTI6MjkgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54 aWFAaW50ZWwuY29tPjsgSHUsIEppYXl1DQo+IDxqaWF5dS5odUBpbnRlbC5jb20+OyBXYW5nLCBZ dWFuWCA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBNYSwgV2Vud3VYDQo+IDx3ZW53dXgubWFAaW50 ZWwuY29tPjsgUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsN Cj4gTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPg0KPiBDYzogTWF4aW1l IENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENI IHYyIDA2LzE1XSB2aG9zdDogaW50cm9kdWNlIHNwZWNpZmljIGlvdmVjIHN0cnVjdHVyZQ0KPiAN Cj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHJ0ZV92aG9zdF9pb3ZlYyBzdHJ1Y3QgdGhhdCBjb250 YWlucw0KPiBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWRkcmVzc2VzIHNpbmNlIHdlIGFs d2F5cyBoYXZlDQo+IGEgMToxIG1hcHBpbmcgYmV0d2VlbiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9u LiBXaGlsZSB1c2luZw0KPiB0aGUgc3RhbmRhcmQgaW92ZWMgc3RydWN0IG1pZ2h0IGhhdmUgc2Vl bWVkIGJldHRlciwgaGF2aW5nDQo+IHRvIGR1cGxpY2F0ZSBJTyB2ZWN0b3JzIGFuZCBpdHMgaXRl cmF0b3JzIGlzIG1lbW9yeQ0KPiBpbmVmZmljaWVudCBhbmQgbWFrZSB0aGUgaW1wbGVtZW50YXRp b24gbW9yZSBjb21wbGV4Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBleGFtcGxlcy92aG9zdC9pb2F0 LmMgICAgICAgfCAyNCArKysrKystLS0tLS0tDQo+ICBsaWIvdmhvc3QvcnRlX3Zob3N0X2FzeW5j LmggfCAxOSArKysrKysrLS0tLQ0KPiAgbGliL3Zob3N0L3Zob3N0LmggICAgICAgICAgIHwgIDYg KystLQ0KPiAgbGliL3Zob3N0L3ZpcnRpb19uZXQuYyAgICAgIHwgNjggKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCA2NSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9leGFtcGxlcy92aG9zdC9p b2F0LmMgYi9leGFtcGxlcy92aG9zdC9pb2F0LmMNCj4gaW5kZXggNDU3ZjgxNzFmMC4uZGNiY2Y2 NWU0ZSAxMDA2NDQNCj4gLS0tIGEvZXhhbXBsZXMvdmhvc3QvaW9hdC5jDQo+ICsrKyBiL2V4YW1w bGVzL3Zob3N0L2lvYXQuYw0KPiBAQCAtMTI5LDMzICsxMjksMzEgQEAgaW9hdF90cmFuc2Zlcl9k YXRhX2NiKGludCB2aWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiAgew0KPiAgCXVpbnQzMl90IGlf ZGVzYzsNCj4gIAl1aW50MTZfdCBkZXZfaWQgPSBkbWFfYmluZFt2aWRdLmRtYXNbcXVldWVfaWQg KiAyICsgVklSVElPX1JYUV0uZGV2X2lkOw0KPiAtCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIg KnNyYyA9IE5VTEw7DQo+IC0Jc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAqZHN0ID0gTlVMTDsN Cj4gKwlzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICppdGVyID0gTlVMTDsNCj4gIAl1bnNpZ25l ZCBsb25nIGlfc2VnOw0KPiAgCXVuc2lnbmVkIHNob3J0IG1hc2sgPSBNQVhfRU5RVUVVRURfU0la RSAtIDE7DQo+ICAJdW5zaWduZWQgc2hvcnQgd3JpdGUgPSBjYl90cmFja2VyW2Rldl9pZF0ubmV4 dF93cml0ZTsNCj4gDQo+ICAJaWYgKCFvcGFxdWVfZGF0YSkgew0KPiAgCQlmb3IgKGlfZGVzYyA9 IDA7IGlfZGVzYyA8IGNvdW50OyBpX2Rlc2MrKykgew0KPiAtCQkJc3JjID0gZGVzY3NbaV9kZXNj XS5zcmM7DQo+IC0JCQlkc3QgPSBkZXNjc1tpX2Rlc2NdLmRzdDsNCj4gKwkJCWl0ZXIgPSBkZXNj c1tpX2Rlc2NdLml0ZXI7DQo+ICAJCQlpX3NlZyA9IDA7DQo+IC0JCQlpZiAoY2JfdHJhY2tlcltk ZXZfaWRdLmlvYXRfc3BhY2UgPCBzcmMtPm5yX3NlZ3MpDQo+ICsJCQlpZiAoY2JfdHJhY2tlcltk ZXZfaWRdLmlvYXRfc3BhY2UgPCBpdGVyLT5ucl9zZWdzKQ0KPiAgCQkJCWJyZWFrOw0KPiAtCQkJ d2hpbGUgKGlfc2VnIDwgc3JjLT5ucl9zZWdzKSB7DQo+ICsJCQl3aGlsZSAoaV9zZWcgPCBpdGVy LT5ucl9zZWdzKSB7DQo+ICAJCQkJcnRlX2lvYXRfZW5xdWV1ZV9jb3B5KGRldl9pZCwNCj4gLQkJ CQkJKHVpbnRwdHJfdCkoc3JjLT5pb3ZbaV9zZWddLmlvdl9iYXNlKQ0KPiAtCQkJCQkJKyBzcmMt Pm9mZnNldCwNCj4gLQkJCQkJKHVpbnRwdHJfdCkoZHN0LT5pb3ZbaV9zZWddLmlvdl9iYXNlKQ0K PiAtCQkJCQkJKyBkc3QtPm9mZnNldCwNCj4gLQkJCQkJc3JjLT5pb3ZbaV9zZWddLmlvdl9sZW4s DQo+ICsJCQkJCSh1aW50cHRyX3QpKGl0ZXItPmlvdltpX3NlZ10uc3JjX2FkZHIpDQo+ICsJCQkJ CQkrIGl0ZXItPm9mZnNldCwNCj4gKwkJCQkJKHVpbnRwdHJfdCkoaXRlci0+aW92W2lfc2VnXS5k c3RfYWRkcikNCj4gKwkJCQkJCSsgaXRlci0+b2Zmc2V0LA0KPiArCQkJCQlpdGVyLT5pb3ZbaV9z ZWddLmxlbiwNCj4gIAkJCQkJMCwNCj4gIAkJCQkJMCk7DQo+ICAJCQkJaV9zZWcrKzsNCj4gIAkJ CX0NCj4gIAkJCXdyaXRlICY9IG1hc2s7DQo+IC0JCQljYl90cmFja2VyW2Rldl9pZF0uc2l6ZV90 cmFja1t3cml0ZV0gPSBzcmMtPm5yX3NlZ3M7DQo+IC0JCQljYl90cmFja2VyW2Rldl9pZF0uaW9h dF9zcGFjZSAtPSBzcmMtPm5yX3NlZ3M7DQo+ICsJCQljYl90cmFja2VyW2Rldl9pZF0uc2l6ZV90 cmFja1t3cml0ZV0gPSBpdGVyLT5ucl9zZWdzOw0KPiArCQkJY2JfdHJhY2tlcltkZXZfaWRdLmlv YXRfc3BhY2UgLT0gaXRlci0+bnJfc2VnczsNCj4gIAkJCXdyaXRlKys7DQo+ICAJCX0NCj4gIAl9 IGVsc2Ugew0KPiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oIGIvbGli L3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+IGluZGV4IDc4OWI4MGY1YTAuLmQ3YmI3N2JmOTAg MTAwNjQ0DQo+IC0tLSBhL2xpYi92aG9zdC9ydGVfdmhvc3RfYXN5bmMuaA0KPiArKysgYi9saWIv dmhvc3QvcnRlX3Zob3N0X2FzeW5jLmgNCj4gQEAgLTcsNiArNywxNSBAQA0KPiANCj4gICNpbmNs dWRlICJydGVfdmhvc3QuaCINCj4gDQo+ICsvKioNCj4gKyAqIGlvdmVjDQo+ICsgKi8NCj4gK3N0 cnVjdCBydGVfdmhvc3RfaW92ZWMgew0KPiArCXZvaWQgKnNyY19hZGRyOw0KPiArCXZvaWQgKmRz dF9hZGRyOw0KPiArCXNpemVfdCBsZW47DQo+ICt9Ow0KPiArDQo+ICAvKioNCj4gICAqIGlvdmVj IGl0ZXJhdG9yDQo+ICAgKi8NCj4gQEAgLTE2LDE5ICsyNSwxNyBAQCBzdHJ1Y3QgcnRlX3Zob3N0 X2lvdl9pdGVyIHsNCj4gIAkvKiogdG90YWwgYnl0ZXMgb2YgZGF0YSBpbiB0aGlzIGl0ZXJhdG9y ICovDQo+ICAJc2l6ZV90IGNvdW50Ow0KPiAgCS8qKiBwb2ludGVyIHRvIHRoZSBpb3ZlYyBhcnJh eSAqLw0KPiAtCXN0cnVjdCBpb3ZlYyAqaW92Ow0KPiArCXN0cnVjdCBydGVfdmhvc3RfaW92ZWMg KmlvdjsNCj4gIAkvKiogbnVtYmVyIG9mIGlvdmVjIGluIHRoaXMgaXRlcmF0b3IgKi8NCj4gIAl1 bnNpZ25lZCBsb25nIG5yX3NlZ3M7DQo+ICB9Ow0KPiANCj4gIC8qKg0KPiAtICogZG1hIHRyYW5z ZmVyIGRlc2NyaXB0b3IgcGFpcg0KPiArICogZG1hIHRyYW5zZmVyIGRlc2NyaXB0b3INCj4gICAq Lw0KPiAgc3RydWN0IHJ0ZV92aG9zdF9hc3luY19kZXNjIHsNCj4gLQkvKiogc291cmNlIG1lbW9y eSBpb3ZfaXRlciAqLw0KPiAtCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKnNyYzsNCj4gLQkv KiogZGVzdGluYXRpb24gbWVtb3J5IGlvdl9pdGVyICovDQo+IC0Jc3RydWN0IHJ0ZV92aG9zdF9p b3ZfaXRlciAqZHN0Ow0KPiArCS8qIG1lbW9yeSBpb3ZfaXRlciAqLw0KPiArCXN0cnVjdCBydGVf dmhvc3RfaW92X2l0ZXIgKml0ZXI7DQo+ICB9Ow0KPiANCj4gIC8qKg0KPiBkaWZmIC0tZ2l0IGEv bGliL3Zob3N0L3Zob3N0LmggYi9saWIvdmhvc3Qvdmhvc3QuaA0KPiBpbmRleCAxMzJjMWIwNzBl Li5lNTFlNDk2ZWJlIDEwMDY0NA0KPiAtLS0gYS9saWIvdmhvc3Qvdmhvc3QuaA0KPiArKysgYi9s aWIvdmhvc3Qvdmhvc3QuaA0KPiBAQCAtMTMyLDEwICsxMzIsOCBAQCBzdHJ1Y3Qgdmhvc3RfYXN5 bmMgew0KPiAgCS8qIG9wZXJhdGlvbiBjYWxsYmFja3MgZm9yIERNQSAqLw0KPiAgCXN0cnVjdCBy dGVfdmhvc3RfYXN5bmNfY2hhbm5lbF9vcHMgb3BzOw0KPiANCj4gLQlzdHJ1Y3QgcnRlX3Zob3N0 X2lvdl9pdGVyIHNyY19pb3ZfaXRlcltWSE9TVF9NQVhfQVNZTkNfSVRdOw0KPiAtCXN0cnVjdCBy dGVfdmhvc3RfaW92X2l0ZXIgZHN0X2lvdl9pdGVyW1ZIT1NUX01BWF9BU1lOQ19JVF07DQo+IC0J c3RydWN0IGlvdmVjIHNyY19pb3ZlY1tWSE9TVF9NQVhfQVNZTkNfVkVDXTsNCj4gLQlzdHJ1Y3Qg aW92ZWMgZHN0X2lvdmVjW1ZIT1NUX01BWF9BU1lOQ19WRUNdOw0KPiArCXN0cnVjdCBydGVfdmhv c3RfaW92X2l0ZXIgaW92X2l0ZXJbVkhPU1RfTUFYX0FTWU5DX0lUXTsNCj4gKwlzdHJ1Y3QgcnRl X3Zob3N0X2lvdmVjIGlvdmVjW1ZIT1NUX01BWF9BU1lOQ19WRUNdOw0KPiANCj4gIAkvKiBkYXRh IHRyYW5zZmVyIHN0YXR1cyAqLw0KPiAgCXN0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvICpwa3Rz X2luZm87DQo+IGRpZmYgLS1naXQgYS9saWIvdmhvc3QvdmlydGlvX25ldC5jIGIvbGliL3Zob3N0 L3ZpcnRpb19uZXQuYw0KPiBpbmRleCBjNGE4YjUyNzZmLi4zYzhiZTQ4Y2E3IDEwMDY0NA0KPiAt LS0gYS9saWIvdmhvc3QvdmlydGlvX25ldC5jDQo+ICsrKyBiL2xpYi92aG9zdC92aXJ0aW9fbmV0 LmMNCj4gQEAgLTkyNSwxNSArOTI1LDE2IEBAIGNvcHlfbWJ1Zl90b19kZXNjKHN0cnVjdCB2aXJ0 aW9fbmV0ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92aXJ0cXVldWUgKnZxLA0KPiAgfQ0KPiANCj4g IHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gLWFzeW5jX2ZpbGxfdmVjKHN0cnVj dCBpb3ZlYyAqdiwgdm9pZCAqYmFzZSwgc2l6ZV90IGxlbikNCj4gK2FzeW5jX2ZpbGxfdmVjKHN0 cnVjdCBydGVfdmhvc3RfaW92ZWMgKnYsIHZvaWQgKnNyYywgdm9pZCAqZHN0LCBzaXplX3QgbGVu KQ0KPiAgew0KPiAtCXYtPmlvdl9iYXNlID0gYmFzZTsNCj4gLQl2LT5pb3ZfbGVuID0gbGVuOw0K PiArCXYtPnNyY19hZGRyID0gc3JjOw0KPiArCXYtPmRzdF9hZGRyID0gZHN0Ow0KPiArCXYtPmxl biA9IGxlbjsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ ICBhc3luY19maWxsX2l0ZXIoc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAqaXQsIHNpemVfdCBj b3VudCwNCj4gLQlzdHJ1Y3QgaW92ZWMgKnZlYywgdW5zaWduZWQgbG9uZyBucl9zZWcpDQo+ICsJ c3RydWN0IHJ0ZV92aG9zdF9pb3ZlYyAqdmVjLCB1bnNpZ25lZCBsb25nIG5yX3NlZykNCj4gIHsN Cj4gIAlpdC0+b2Zmc2V0ID0gMDsNCj4gIAlpdC0+Y291bnQgPSBjb3VudDsNCj4gQEAgLTk0OCwy MCArOTQ5LDE2IEBAIGFzeW5jX2ZpbGxfaXRlcihzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpp dCwgc2l6ZV90DQo+IGNvdW50LA0KPiAgfQ0KPiANCj4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5s aW5lIHZvaWQNCj4gLWFzeW5jX2ZpbGxfZGVzYyhzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2Rlc2Mg KmRlc2MsDQo+IC0Jc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAqc3JjLCBzdHJ1Y3QgcnRlX3Zo b3N0X2lvdl9pdGVyICpkc3QpDQo+ICthc3luY19maWxsX2Rlc2Moc3RydWN0IHJ0ZV92aG9zdF9h c3luY19kZXNjICpkZXNjLCBzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyDQo+ICppdGVyKQ0KPiAg ew0KPiAtCWRlc2MtPnNyYyA9IHNyYzsNCj4gLQlkZXNjLT5kc3QgPSBkc3Q7DQo+ICsJZGVzYy0+ aXRlciA9IGl0ZXI7DQo+ICB9DQo+IA0KPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50 DQo+ICBhc3luY19tYnVmX3RvX2Rlc2Moc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0IHZo b3N0X3ZpcnRxdWV1ZSAqdnEsDQo+ICAJCQlzdHJ1Y3QgcnRlX21idWYgKm0sIHN0cnVjdCBidWZf dmVjdG9yICpidWZfdmVjLA0KPiAgCQkJdWludDE2X3QgbnJfdmVjLCB1aW50MTZfdCBudW1fYnVm ZmVycywNCj4gLQkJCXN0cnVjdCBpb3ZlYyAqc3JjX2lvdmVjLCBzdHJ1Y3QgaW92ZWMgKmRzdF9p b3ZlYywNCj4gLQkJCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKnNyY19pdCwNCj4gLQkJCXN0 cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKmRzdF9pdCkNCj4gKwkJCXN0cnVjdCBydGVfdmhvc3Rf aW92ZWMgKmlvdmVjLCBzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyDQo+ICppdGVyKQ0KPiAgew0K PiAgCXN0cnVjdCBydGVfbWJ1ZiAqaGRyX21idWY7DQo+ICAJc3RydWN0IHZpcnRpb19uZXRfaGRy X21yZ19yeGJ1ZiB0bXBfaGRyLCAqaGRyID0gTlVMTDsNCj4gQEAgLTEwNzUsMTEgKzEwNzIsOSBA QCBhc3luY19tYnVmX3RvX2Rlc2Moc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0DQo+IHZo b3N0X3ZpcnRxdWV1ZSAqdnEsDQo+ICAJCQkJZ290byBvdXQ7DQo+ICAJCQl9DQo+IA0KPiAtCQkJ YXN5bmNfZmlsbF92ZWMoc3JjX2lvdmVjICsgdHZlY19pZHgsDQo+ICsJCQlhc3luY19maWxsX3Zl Yyhpb3ZlYyArIHR2ZWNfaWR4LA0KPiAgCQkJCSh2b2lkICopKHVpbnRwdHJfdClydGVfcGt0bWJ1 Zl9pb3ZhX29mZnNldChtLA0KPiAtCQkJCW1idWZfb2Zmc2V0KSwgKHNpemVfdCltYXBwZWRfbGVu KTsNCj4gLQkJCWFzeW5jX2ZpbGxfdmVjKGRzdF9pb3ZlYyArIHR2ZWNfaWR4LA0KPiAtCQkJCQlo cGEsIChzaXplX3QpbWFwcGVkX2xlbik7DQo+ICsJCQkJbWJ1Zl9vZmZzZXQpLCBocGEsIChzaXpl X3QpbWFwcGVkX2xlbik7DQo+IA0KPiAgCQkJdGxlbiArPSAodWludDMyX3QpbWFwcGVkX2xlbjsN Cj4gIAkJCWNweV9sZW4gLT0gKHVpbnQzMl90KW1hcHBlZF9sZW47DQo+IEBAIC0xMDkxLDggKzEw ODYsNyBAQCBhc3luY19tYnVmX3RvX2Rlc2Moc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0 DQo+IHZob3N0X3ZpcnRxdWV1ZSAqdnEsDQo+ICAJCX0NCj4gIAl9DQo+IA0KPiAtCWFzeW5jX2Zp bGxfaXRlcihzcmNfaXQsIHRsZW4sIHNyY19pb3ZlYywgdHZlY19pZHgpOw0KPiAtCWFzeW5jX2Zp bGxfaXRlcihkc3RfaXQsIHRsZW4sIGRzdF9pb3ZlYywgdHZlY19pZHgpOw0KPiArCWFzeW5jX2Zp bGxfaXRlcihpdGVyLCB0bGVuLCBpb3ZlYywgdHZlY19pZHgpOw0KPiAgb3V0Og0KPiAgCXJldHVy biBlcnJvcjsNCj4gIH0NCj4gQEAgLTE1MDksMTEgKzE1MDMsOSBAQCB2aXJ0aW9fZGV2X3J4X2Fz eW5jX3N1Ym1pdF9zcGxpdChzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiAgCXVpbnQxNl90IGF2 YWlsX2hlYWQ7DQo+IA0KPiAgCXN0cnVjdCB2aG9zdF9hc3luYyAqYXN5bmMgPSB2cS0+YXN5bmM7 DQo+IC0Jc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAqc3JjX2l0ZXIgPSBhc3luYy0+c3JjX2lv dl9pdGVyOw0KPiAtCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKmRzdF9pdGVyID0gYXN5bmMt PmRzdF9pb3ZfaXRlcjsNCj4gKwlzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICppdGVyID0gYXN5 bmMtPmlvdl9pdGVyOw0KPiAgCXN0cnVjdCBydGVfdmhvc3RfYXN5bmNfZGVzYyB0ZGVzW01BWF9Q S1RfQlVSU1RdOw0KPiAtCXN0cnVjdCBpb3ZlYyAqc3JjX2lvdmVjID0gYXN5bmMtPnNyY19pb3Zl YzsNCj4gLQlzdHJ1Y3QgaW92ZWMgKmRzdF9pb3ZlYyA9IGFzeW5jLT5kc3RfaW92ZWM7DQo+ICsJ c3RydWN0IHJ0ZV92aG9zdF9pb3ZlYyAqaW92ZWMgPSBhc3luYy0+aW92ZWM7DQo+ICAJc3RydWN0 IGFzeW5jX2luZmxpZ2h0X2luZm8gKnBrdHNfaW5mbyA9IGFzeW5jLT5wa3RzX2luZm87DQo+ICAJ dWludDMyX3Qgbl9wa3RzID0gMCwgcGt0X2VyciA9IDA7DQo+ICAJaW50MzJfdCBuX3hmZXI7DQo+ IEBAIC0xNTQ1LDE5ICsxNTM3LDE4IEBAIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0 KHN0cnVjdCB2aXJ0aW9fbmV0DQo+ICpkZXYsDQo+ICAJCQl2cS0+bGFzdF9hdmFpbF9pZHggKyBu dW1fYnVmZmVycyk7DQo+IA0KPiAgCQlpZiAoYXN5bmNfbWJ1Zl90b19kZXNjKGRldiwgdnEsIHBr dHNbcGt0X2lkeF0sIGJ1Zl92ZWMsIG5yX3ZlYywNCj4gbnVtX2J1ZmZlcnMsDQo+IC0JCQkJJnNy Y19pb3ZlY1tpb3ZlY19pZHhdLCAmZHN0X2lvdmVjW2lvdmVjX2lkeF0sDQo+IC0JCQkJJnNyY19p dGVyW2l0X2lkeF0sICZkc3RfaXRlcltpdF9pZHhdKSA8IDApIHsNCj4gKwkJCQkmaW92ZWNbaW92 ZWNfaWR4XSwgJml0ZXJbaXRfaWR4XSkgPCAwKSB7DQo+ICAJCQl2cS0+c2hhZG93X3VzZWRfaWR4 IC09IG51bV9idWZmZXJzOw0KPiAgCQkJYnJlYWs7DQo+ICAJCX0NCj4gDQo+IC0JCWFzeW5jX2Zp bGxfZGVzYygmdGRlc1twa3RfYnVyc3RfaWR4KytdLCAmc3JjX2l0ZXJbaXRfaWR4XSwNCj4gJmRz dF9pdGVyW2l0X2lkeF0pOw0KPiArCQlhc3luY19maWxsX2Rlc2MoJnRkZXNbcGt0X2J1cnN0X2lk eCsrXSwgJml0ZXJbaXRfaWR4XSk7DQo+IA0KPiAgCQlzbG90X2lkeCA9IChhc3luYy0+cGt0c19p ZHggKyBwa3RfaWR4KSAmICh2cS0+c2l6ZSAtIDEpOw0KPiAgCQlwa3RzX2luZm9bc2xvdF9pZHhd LmRlc2NzID0gbnVtX2J1ZmZlcnM7DQo+ICAJCXBrdHNfaW5mb1tzbG90X2lkeF0ubWJ1ZiA9IHBr dHNbcGt0X2lkeF07DQo+IA0KPiAtCQlpb3ZlY19pZHggKz0gc3JjX2l0ZXJbaXRfaWR4XS5ucl9z ZWdzOw0KPiArCQlpb3ZlY19pZHggKz0gaXRlcltpdF9pZHhdLm5yX3NlZ3M7DQo+ICAJCWl0X2lk eCsrOw0KPiANCj4gIAkJdnEtPmxhc3RfYXZhaWxfaWR4ICs9IG51bV9idWZmZXJzOw0KPiBAQCAt MTcwNyw5ICsxNjk4LDggQEAgdmhvc3RfZW5xdWV1ZV9hc3luY19wYWNrZWQoc3RydWN0IHZpcnRp b19uZXQgKmRldiwNCj4gIAkJCSAgICBzdHJ1Y3QgYnVmX3ZlY3RvciAqYnVmX3ZlYywNCj4gIAkJ CSAgICB1aW50MTZfdCAqbnJfZGVzY3MsDQo+ICAJCQkgICAgdWludDE2X3QgKm5yX2J1ZmZlcnMs DQo+IC0JCQkgICAgc3RydWN0IGlvdmVjICpzcmNfaW92ZWMsIHN0cnVjdCBpb3ZlYyAqZHN0X2lv dmVjLA0KPiAtCQkJICAgIHN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKnNyY19pdCwNCj4gLQkJ CSAgICBzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpkc3RfaXQpDQo+ICsJCQkgICAgc3RydWN0 IHJ0ZV92aG9zdF9pb3ZlYyAqaW92ZWMsDQo+ICsJCQkgICAgc3RydWN0IHJ0ZV92aG9zdF9pb3Zf aXRlciAqaXRlcikNCj4gIHsNCj4gIAl1aW50MTZfdCBucl92ZWMgPSAwOw0KPiAgCXVpbnQxNl90 IGF2YWlsX2lkeCA9IHZxLT5sYXN0X2F2YWlsX2lkeDsNCj4gQEAgLTE3NTcsOCArMTc0Nyw3IEBA IHZob3N0X2VucXVldWVfYXN5bmNfcGFja2VkKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+ICAJ fQ0KPiANCj4gIAlpZiAodW5saWtlbHkoYXN5bmNfbWJ1Zl90b19kZXNjKGRldiwgdnEsIHBrdCwg YnVmX3ZlYywgbnJfdmVjLA0KPiAtCQkJCQkqbnJfYnVmZmVycywgc3JjX2lvdmVjLCBkc3RfaW92 ZWMsDQo+IC0JCQkJCXNyY19pdCwgZHN0X2l0KSA8IDApKQ0KPiArCQkJCQkqbnJfYnVmZmVycywg aW92ZWMsIGl0ZXIpIDwgMCkpDQo+ICAJCXJldHVybiAtMTsNCj4gDQo+ICAJdmhvc3Rfc2hhZG93 X2VucXVldWVfcGFja2VkKHZxLCBidWZmZXJfbGVuLCBidWZmZXJfYnVmX2lkLA0KPiBidWZmZXJf ZGVzY19jb3VudCwgKm5yX2J1ZmZlcnMpOw0KPiBAQCAtMTc2OSwxNCArMTc1OCwxMiBAQCB2aG9z dF9lbnF1ZXVlX2FzeW5jX3BhY2tlZChzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiAgc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50MTZfdA0KPiAgdmlydGlvX2Rldl9yeF9hc3luY19wYWNr ZWQoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsDQo+ ICAJCQkgICAgc3RydWN0IHJ0ZV9tYnVmICpwa3QsIHVpbnQxNl90ICpucl9kZXNjcywgdWludDE2 X3QNCj4gKm5yX2J1ZmZlcnMsDQo+IC0JCQkgICAgc3RydWN0IGlvdmVjICpzcmNfaW92ZWMsIHN0 cnVjdCBpb3ZlYyAqZHN0X2lvdmVjLA0KPiAtCQkJICAgIHN0cnVjdCBydGVfdmhvc3RfaW92X2l0 ZXIgKnNyY19pdCwgc3RydWN0DQo+IHJ0ZV92aG9zdF9pb3ZfaXRlciAqZHN0X2l0KQ0KPiArCQkJ ICAgIHN0cnVjdCBydGVfdmhvc3RfaW92ZWMgKmlvdmVjLCBzdHJ1Y3QgcnRlX3Zob3N0X2lvdl9p dGVyDQo+ICppdGVyKQ0KPiAgew0KPiAgCXN0cnVjdCBidWZfdmVjdG9yIGJ1Zl92ZWNbQlVGX1ZF Q1RPUl9NQVhdOw0KPiANCj4gIAlpZiAodW5saWtlbHkodmhvc3RfZW5xdWV1ZV9hc3luY19wYWNr ZWQoZGV2LCB2cSwgcGt0LCBidWZfdmVjLCBucl9kZXNjcywNCj4gbnJfYnVmZmVycywNCj4gLQkJ CQkJCSBzcmNfaW92ZWMsIGRzdF9pb3ZlYywNCj4gLQkJCQkJCSBzcmNfaXQsIGRzdF9pdCkgPCAw KSkgew0KPiArCQkJCQkJIGlvdmVjLCBpdGVyKSA8IDApKSB7DQo+ICAJCVZIT1NUX0xPR19EQVRB KERFQlVHLCAiKCVkKSBmYWlsZWQgdG8gZ2V0IGVub3VnaCBkZXNjIGZyb20NCj4gdnJpbmdcbiIs IGRldi0+dmlkKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gQEAgLTE4MjUsMTEgKzE4MTIs OSBAQCB2aXJ0aW9fZGV2X3J4X2FzeW5jX3N1Ym1pdF9wYWNrZWQoc3RydWN0IHZpcnRpb19uZXQN Cj4gKmRldiwNCj4gIAl1aW50MTZfdCBudW1fZGVzY3M7DQo+IA0KPiAgCXN0cnVjdCB2aG9zdF9h c3luYyAqYXN5bmMgPSB2cS0+YXN5bmM7DQo+IC0Jc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAq c3JjX2l0ZXIgPSBhc3luYy0+c3JjX2lvdl9pdGVyOw0KPiAtCXN0cnVjdCBydGVfdmhvc3RfaW92 X2l0ZXIgKmRzdF9pdGVyID0gYXN5bmMtPmRzdF9pb3ZfaXRlcjsNCj4gKwlzdHJ1Y3QgcnRlX3Zo b3N0X2lvdl9pdGVyICppdGVyID0gYXN5bmMtPmlvdl9pdGVyOw0KPiAgCXN0cnVjdCBydGVfdmhv c3RfYXN5bmNfZGVzYyB0ZGVzW01BWF9QS1RfQlVSU1RdOw0KPiAtCXN0cnVjdCBpb3ZlYyAqc3Jj X2lvdmVjID0gYXN5bmMtPnNyY19pb3ZlYzsNCj4gLQlzdHJ1Y3QgaW92ZWMgKmRzdF9pb3ZlYyA9 IGFzeW5jLT5kc3RfaW92ZWM7DQo+ICsJc3RydWN0IHJ0ZV92aG9zdF9pb3ZlYyAqaW92ZWMgPSBh c3luYy0+aW92ZWM7DQo+ICAJc3RydWN0IGFzeW5jX2luZmxpZ2h0X2luZm8gKnBrdHNfaW5mbyA9 IGFzeW5jLT5wa3RzX2luZm87DQo+ICAJdWludDMyX3Qgbl9wa3RzID0gMCwgcGt0X2VyciA9IDA7 DQo+ICAJdWludDE2X3Qgc2xvdF9pZHggPSAwOw0KPiBAQCAtMTg0MiwxNyArMTgyNywxNiBAQCB2 aXJ0aW9fZGV2X3J4X2FzeW5jX3N1Ym1pdF9wYWNrZWQoc3RydWN0IHZpcnRpb19uZXQNCj4gKmRl diwNCj4gIAkJbnVtX2Rlc2NzID0gMDsNCj4gIAkJaWYgKHVubGlrZWx5KHZpcnRpb19kZXZfcnhf YXN5bmNfcGFja2VkKGRldiwgdnEsIHBrdHNbcGt0X2lkeF0sDQo+ICAJCQkJCQkmbnVtX2Rlc2Nz LCAmbnVtX2J1ZmZlcnMsDQo+IC0JCQkJCQkmc3JjX2lvdmVjW2lvdmVjX2lkeF0sDQo+ICZkc3Rf aW92ZWNbaW92ZWNfaWR4XSwNCj4gLQkJCQkJCSZzcmNfaXRlcltpdF9pZHhdLCAmZHN0X2l0ZXJb aXRfaWR4XSkgPCAwKSkNCj4gKwkJCQkJCSZpb3ZlY1tpb3ZlY19pZHhdLCAmaXRlcltpdF9pZHhd KSA8IDApKQ0KPiAgCQkJYnJlYWs7DQo+IA0KPiAgCQlzbG90X2lkeCA9IChhc3luYy0+cGt0c19p ZHggKyBwa3RfaWR4KSAlIHZxLT5zaXplOw0KPiANCj4gLQkJYXN5bmNfZmlsbF9kZXNjKCZ0ZGVz W3BrdF9idXJzdF9pZHgrK10sICZzcmNfaXRlcltpdF9pZHhdLA0KPiAmZHN0X2l0ZXJbaXRfaWR4 XSk7DQo+ICsJCWFzeW5jX2ZpbGxfZGVzYygmdGRlc1twa3RfYnVyc3RfaWR4KytdLCAmaXRlcltp dF9pZHhdKTsNCj4gIAkJcGt0c19pbmZvW3Nsb3RfaWR4XS5kZXNjcyA9IG51bV9kZXNjczsNCj4g IAkJcGt0c19pbmZvW3Nsb3RfaWR4XS5ucl9idWZmZXJzID0gbnVtX2J1ZmZlcnM7DQo+ICAJCXBr dHNfaW5mb1tzbG90X2lkeF0ubWJ1ZiA9IHBrdHNbcGt0X2lkeF07DQo+IC0JCWlvdmVjX2lkeCAr PSBzcmNfaXRlcltpdF9pZHhdLm5yX3NlZ3M7DQo+ICsJCWlvdmVjX2lkeCArPSBpdGVyW2l0X2lk eF0ubnJfc2VnczsNCj4gIAkJaXRfaWR4Kys7DQo+IA0KPiAgCQlwa3RfaWR4Kys7DQo+IC0tDQo+ IDIuMzEuMQ0KDQpSZXZpZXdlZC1ieTogQ2hlbmJvIFhpYSA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+ DQo=