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 D9B78A0A0A; Fri, 22 Jan 2021 08:34:40 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6F040140D03; Fri, 22 Jan 2021 08:34:40 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 60BDE140D00 for ; Fri, 22 Jan 2021 08:34:38 +0100 (CET) IronPort-SDR: FuUn/3KrhqQkPxX45bf/CzVaPvYoTCvQEys23ac0xKs9LCW6Ee08QdzwatFPcwY1J0yBaQFevT NaIk1CSRaaVg== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="198152815" X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="198152815" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 23:34:35 -0800 IronPort-SDR: ooIjjazBA5stcDJXGFzOdDzd0wuVMUO8HQomK0TwsK3HGmtMxvNdYcENSooOXmwwDBQFYeXCug NtfUg/jIU07w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="571995356" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga006.fm.intel.com with ESMTP; 21 Jan 2021 23:34:34 -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.1713.5; Thu, 21 Jan 2021 23:34:33 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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; Thu, 21 Jan 2021 23:34:33 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2106.2 via Frontend Transport; Thu, 21 Jan 2021 23:34:33 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.171) 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.1713.5; Thu, 21 Jan 2021 23:34:31 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gl2KE5Rg54h017BsghqcXaHKVxwUW8F6oyjQlOTrHcxbkCmho72DrN4myBjj4bhmBvxzOXU7+8yUPaQds8KD9e9tQAqfWFMppuOGeMbuR+Iplpemwf6QcBh+j4+8kF4wGS8y5Uwk735PjkN/QXiY80CzDNYFHmf4DoB5PMOs37AlgwkvrjfuSVRnd+tapBqfWnsvi4qEu1XDiIsmQqOmvNEX6DOmqKlWinZ5j1rL0LwOVSJCwaGPidU/ggRSE6AdrCLLIu9kAZm7rmh8+VzX7pPVBNb1noVPB//JSE/qIqC9s/AywhgSGp3QywD0DRxNibHDsV4kdq/PEf+iPgzPaA== 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=7Qcp7CwpSHUnNWP7WTvTBL0J0qYhH67T42/B8VKPwPE=; b=QKuCcidB30Er8JwNxHOxrg6f+uOtLgPgQPZHZN2N/obHXxE7bE2doPQeQCKj5l5QZz5g6/J0mw4wEYYTpiENbyNECiNsbXXNJkZ6fmHjG8VAOn5Xg748j8cXSstiImQ4WGj70jrDOcazb90sl4OidTUw7KhHyWZKd+zvXiDt6fOKp6q1r1Xgn89a0xrpEFqDbvL5dClgxzwY4UpPO7uu8Or9wG0VeUfVoqFVNQc7iI6hm6mufuBlnXv4Zjn+r3iwr6iXlBHeiOWWJejykiXHWPqAQSRnCybIqk86CznFxbI4GWxl5qPxh+magwWAuSGLYEDhCHtotrUhW6V2H975OA== 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=7Qcp7CwpSHUnNWP7WTvTBL0J0qYhH67T42/B8VKPwPE=; b=xvS4H2Ddmj7bJw1IgYioPnjYTWJ7AVJdAAmj/bDYGlU4I5H+JcmEmqDpkvKjqO/IyEUG9Y7QqxHdiu8Iq/UJX4AOEjAoPyporUChhEuPWIiLVf8D39xCZD6gh/AdzFgwkKZapFmfnGAP4KLquN9gSyTLTqwg5um20bIY+4+IgRk= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4046.namprd11.prod.outlook.com (2603:10b6:208:13b::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.14; Fri, 22 Jan 2021 07:34:30 +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.3763.014; Fri, 22 Jan 2021 07:34:30 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v2 29/44] net/virtio: add Virtio-user memory tables ops Thread-Index: AQHW7qn04d09QxHpHky8jeu/pzt6gaozQ5rQ Date: Fri, 22 Jan 2021 07:34:30 +0000 Message-ID: References: <20210119212507.1043636-1-maxime.coquelin@redhat.com> <20210119212507.1043636-30-maxime.coquelin@redhat.com> In-Reply-To: <20210119212507.1043636-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.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 28726876-19f8-42c6-d8de-08d8bea827c2 x-ms-traffictypediagnostic: MN2PR11MB4046: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:127; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5fwn2pTkydOPUomRSpueqv6nlviWOxp9ptyzC8TD5KVvq53aTTFIaCMy7SzImHo0mTdS1+/XKL/yprZWARwJtnEOayEZmRcxnn4FZ5wQYq+LAYM2miqvQ99ag9BT/nlAVp5iIWMhF85hqwN94D1ldO6799tzMrE2qJfaXvDggkHTWusM3V2xH2GCiF6297Zw0nVIq4x+64sKalkEkd6JDosI5XftuubM5sWO4Aj0gtfOWL7Jt2+pe6A9G2409cotLB1WtHBiIPV79Iv64Ogue3Nz++Ft3HfASlDq8TimJyNIhY8Og//sj3b7KWxlf40CKrdDArvFQ4rnFUoCST3MSOeEzKYt8Bis//O17PmnUH4QRa5u1rC4MOZO+ctr0lVOzFL+ei5bVneDXh/ll8UhqA== 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)(366004)(376002)(346002)(396003)(136003)(39860400002)(110136005)(6506007)(71200400001)(53546011)(8676002)(83380400001)(7696005)(316002)(478600001)(5660300002)(55016002)(30864003)(66946007)(64756008)(186003)(8936002)(76116006)(86362001)(2906002)(66446008)(66556008)(66476007)(26005)(9686003)(33656002)(52536014); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?Nkk2dnBZVjNRem1ONWNITkxmcHgrK0pPaWFUdFZWeHVCWTZ5aXVFcEJxM2lL?= =?utf-8?B?YVVwUll6V1ZLSlpoOGdlRENWWkc5MTFWT1ZBN2Rzd0xlQThxWlZBUjVhakZ5?= =?utf-8?B?QS9uYWVtY1FLeG0vVjU4NmZWbW9GelhrVVZiV0JwYUhtSVRWOGJrL2QrU2dq?= =?utf-8?B?cGdncGxEc3Z3QU1tU2JPRkZ3SmNHSG5uSDNwOFo5czVaLzZndVB6YTljSVRV?= =?utf-8?B?UkNvMkM5R1Q5cUFxRVcvN1BQZVkvYmpJRmJwYkRodWI1WEdSWXg1Vy9mbS9Z?= =?utf-8?B?dnFkejlmakFaRHprdE00T1dGeFZ6RlI5SGtPK0JmUEEwVUovelp4VjR3MG1j?= =?utf-8?B?SWFzbTAvUmpKdXc4djVQWXFvaktxY1F6bFlTc0J3Q0VETkgvRTZWc2ZHSUt5?= =?utf-8?B?KzZDV3NtYURKVCtkWDRYMHJWdEhhNWs4SmVVZUU5azRzcEpZL2luM0RWTDNT?= =?utf-8?B?MytXQlVTOEEzUGM2NHR0RVRwZWRFMU5heUFmZ3BXZ1EveTJvK0JUQitTWlU2?= =?utf-8?B?eWlsVHdvNis4eDN6ODZOb05VaWxXNUkzR1I2M2ZiUjB5ZmhmdG95VmxuekhU?= =?utf-8?B?NHloVGlHTDBvdW9kQXB6cFpWVFVhVjdWQU5kNUtIbXdNMmdvbnQ2cHp1QVZC?= =?utf-8?B?ZWQ3SW8rQk44OFV1MEc5b0FTeVhaTFVJMUdpcElsYm5hUC81THlSWC95bXVq?= =?utf-8?B?NjdGd3QxTUZrZUdJMVJ4WTJaQzB6N2d4T2RiS3VnOC9pdnlWdGFOeWhLTy83?= =?utf-8?B?czJhaGdGVnNDR0hKanI3TWpZTUJEamRwOTNSaTB2RzdwcjhoUHIzOW9NK09Y?= =?utf-8?B?VWJtZ25WbXgvb2hYbUlaZVVpY1daWllPaUpEZzhRN1FjZmFZSlRrQ0pEZE9a?= =?utf-8?B?ZVUraHc1MDRIZWRTMTJRZGttR1JraWFUR0UyZjQyenAyMFBPY3NOc1VpQlM0?= =?utf-8?B?NjRWZW0yWWo2TVdyUEpCK280QW9NSUE1QW5pZVVRbDJORFhaMVhTdDcyOVdG?= =?utf-8?B?WlhqaHhhdm8zQlMxVHhHWlp4Z1NOaUdkU2NsN1NndFNKektjMmZkTndJeUVC?= =?utf-8?B?VExNZlo1ck81YVAzN1RhY0xMZHMwaFJKaDlHdDErWFlEK3cxSUM3bVV3Wkln?= =?utf-8?B?anJjOXdqZzc5MXEyR2Q2WFdBdzlZcXV5ZFcvV2ZoTzA1SXpQY0tUczY1TlNw?= =?utf-8?B?TjFhZml3YVhOem5YaUcwOElVOXVpRnpjSWZ1cis4K3hYYVZ0VlVMc0V4RnpR?= =?utf-8?B?Zy9mY3B1Q3I1QXlVcWozRmlxejVwSkNneERPZ1VWczZubkVaTUdUN1NkM1Ra?= =?utf-8?Q?dvDhAnxQomMVg=3D?= 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: 28726876-19f8-42c6-d8de-08d8bea827c2 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2021 07:34:30.2689 (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: /+IYrC/nYs0fVUe68qrQHSQ/cvLEIr7MGCZf8ZeLmS1/1Tmlzc++VoEZ8pT+XtjnoBW2EMVqP4tF09HDidEAbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4046 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 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" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2Rh eSwgSmFudWFyeSAyMCwgMjAyMSA1OjI1IEFNDQo+IFRvOiBkZXZAZHBkay5vcmc7IFhpYSwgQ2hl bmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb207DQo+IGFt b3Jlbm96QHJlZGhhdC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gQ2M6IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFtQQVRD SCB2MiAyOS80NF0gbmV0L3ZpcnRpbzogYWRkIFZpcnRpby11c2VyIG1lbW9yeSB0YWJsZXMgb3Bz DQo+IA0KPiBUaGlzIHBhdGNoIGltcGxlbWVudHMgYSBkZWRpY2F0ZWQgY2FsbGJhY2sgZm9yDQo+ IHByZXBhcmluZyBhbmQgc2VuZGluZyBtZW1vcnkgdGFibGUgdG8gdGhlIGJhY2tlbmRzLg0KPiAN Cj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0 LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaCAg ICAgICAgfCAgMSArDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2Vy bmVsLmMgfCA2MCArKysrKystLS0tLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3RfdXNlci5jICAgfCA4NiArKysrKysrKysrKysrKy0tLS0tDQo+ICBkcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jICAgfCAgOCArLQ0KPiAgLi4uL25ldC92 aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMgIHwgIDQgKy0NCj4gIDUgZmlsZXMg Y2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdC5oDQo+IGIvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gaW5kZXggZDgwNTUyNjEzMC4uNDYz ODAxZjU2MyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zo b3N0LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4g QEAgLTExNCw2ICsxMTQsNyBAQCBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgew0KPiAg CWludCAoKnNldF9mZWF0dXJlcykoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRf dCBmZWF0dXJlcyk7DQo+ICAJaW50ICgqZ2V0X3Byb3RvY29sX2ZlYXR1cmVzKShzdHJ1Y3Qgdmly dGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90DQo+ICpmZWF0dXJlcyk7DQo+ICAJaW50ICgqc2V0 X3Byb3RvY29sX2ZlYXR1cmVzKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90 DQo+IGZlYXR1cmVzKTsNCj4gKwlpbnQgKCpzZXRfbWVtb3J5X3RhYmxlKShzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYpOw0KPiAgCWludCAoKnNlbmRfcmVxdWVzdCkoc3RydWN0IHZpcnRpb191 c2VyX2RldiAqZGV2LA0KPiAgCQkJICAgIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHJlcSwNCj4g IAkJCSAgICB2b2lkICphcmcpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191 c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGluZGV4IGY0NGRmOGVmMWYuLjJkMzBmNTcyYjYgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0K PiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMNCj4g QEAgLTE0OCwxNyArMTQ4LDYgQEAgdmhvc3Rfa2VybmVsX3NldF9mZWF0dXJlcyhzdHJ1Y3Qgdmly dGlvX3VzZXJfZGV2ICpkZXYsDQo+IHVpbnQ2NF90IGZlYXR1cmVzKQ0KPiAgCXJldHVybiB2aG9z dF9rZXJuZWxfaW9jdGwoZGV2LT52aG9zdGZkc1swXSwgVkhPU1RfU0VUX0ZFQVRVUkVTLA0KPiAm ZmVhdHVyZXMpOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyB1aW50NjRfdCB2aG9zdF9yZXFfdXNlcl90 b19rZXJuZWxbXSA9IHsNCj4gLQlbVkhPU1RfVVNFUl9SRVNFVF9PV05FUl0gPSBWSE9TVF9SRVNF VF9PV05FUiwNCj4gLQlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQ0FMTF0gPSBWSE9TVF9TRVRfVlJJ TkdfQ0FMTCwNCj4gLQlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNXSA9IFZIT1NUX1NFVF9WUklO R19OVU0sDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0VdID0gVkhPU1RfU0VUX1ZSSU5H X0JBU0UsDQo+IC0JW1ZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JBU0VdID0gVkhPU1RfR0VUX1ZSSU5H X0JBU0UsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFJdID0gVkhPU1RfU0VUX1ZSSU5H X0FERFIsDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0tJQ0tdID0gVkhPU1RfU0VUX1ZSSU5H X0tJQ0ssDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX01FTV9UQUJMRV0gPSBWSE9TVF9TRVRfTUVNX1RB QkxFLA0KPiAtfTsNCj4gLQ0KPiAgc3RhdGljIGludA0KPiAgYWRkX21lbXNlZ19saXN0KGNvbnN0 IHN0cnVjdCBydGVfbWVtc2VnX2xpc3QgKm1zbCwgdm9pZCAqYXJnKQ0KPiAgew0KPiBAQCAtMTkz LDE2ICsxODIsMTcgQEAgYWRkX21lbXNlZ19saXN0KGNvbnN0IHN0cnVjdCBydGVfbWVtc2VnX2xp c3QgKm1zbCwgdm9pZA0KPiAqYXJnKQ0KPiAgICogaGF2ZSBtdWNoIG1vcmUgbWVtb3J5IHJlZ2lv bnMuIEJlbG93IGZ1bmN0aW9uIHdpbGwgdHJlYXQgZWFjaA0KPiAgICogY29udGlndW91cyBtZW1v cnkgc3BhY2UgcmVzZXJ2ZWQgYnkgRFBESyBhcyBvbmUgcmVnaW9uLg0KPiAgICovDQo+IC1zdGF0 aWMgc3RydWN0IHZob3N0X21lbW9yeV9rZXJuZWwgKg0KPiAtcHJlcGFyZV92aG9zdF9tZW1vcnlf a2VybmVsKHZvaWQpDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9rZXJuZWxfc2V0X21lbW9yeV90 YWJsZShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICB7DQo+ICAJc3RydWN0IHZob3N0 X21lbW9yeV9rZXJuZWwgKnZtOw0KPiArCWludCByZXQ7DQo+IA0KPiAgCXZtID0gbWFsbG9jKHNp emVvZihzdHJ1Y3Qgdmhvc3RfbWVtb3J5X2tlcm5lbCkgKw0KPiAgCQkJbWF4X3JlZ2lvbnMgKg0K PiAgCQkJc2l6ZW9mKHN0cnVjdCB2aG9zdF9tZW1vcnlfcmVnaW9uKSk7DQo+ICAJaWYgKCF2bSkN Cj4gLQkJcmV0dXJuIE5VTEw7DQo+ICsJCWdvdG8gZXJyOw0KPiANCj4gIAl2bS0+bnJlZ2lvbnMg PSAwOw0KPiAgCXZtLT5wYWRkaW5nID0gMDsNCj4gQEAgLTIxMSwxNCArMjAxLDM0IEBAIHByZXBh cmVfdmhvc3RfbWVtb3J5X2tlcm5lbCh2b2lkKQ0KPiAgCSAqIFRoZSBtZW1vcnkgbG9jayBoYXMg YWxyZWFkeSBiZWVuIHRha2VuIGJ5IG1lbW9yeSBzdWJzeXN0ZW0NCj4gIAkgKiBvciB2aXJ0aW9f dXNlcl9zdGFydF9kZXZpY2UoKS4NCj4gIAkgKi8NCj4gLQlpZiAocnRlX21lbXNlZ19saXN0X3dh bGtfdGhyZWFkX3Vuc2FmZShhZGRfbWVtc2VnX2xpc3QsIHZtKSA8IDApIHsNCj4gLQkJZnJlZSh2 bSk7DQo+IC0JCXJldHVybiBOVUxMOw0KPiAtCX0NCj4gKwlyZXQgPSBydGVfbWVtc2VnX2xpc3Rf d2Fsa190aHJlYWRfdW5zYWZlKGFkZF9tZW1zZWdfbGlzdCwgdm0pOw0KPiArCWlmIChyZXQgPCAw KQ0KPiArCQlnb3RvIGVycl9mcmVlOw0KPiArDQo+ICsJcmV0ID0gdmhvc3Rfa2VybmVsX2lvY3Rs KGRldi0+dmhvc3RmZHNbMF0sIFZIT1NUX1NFVF9NRU1fVEFCTEUsIHZtKTsNCj4gKwlpZiAocmV0 IDwgMCkNCj4gKwkJZ290byBlcnJfZnJlZTsNCj4gDQo+IC0JcmV0dXJuIHZtOw0KPiArCWZyZWUo dm0pOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICtlcnJfZnJlZToNCj4gKwlmcmVlKHZtKTsNCj4g K2VycjoNCj4gKwlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2V0IG1lbW9yeSB0YWJsZSIp Ow0KPiArCXJldHVybiAtMTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgdWludDY0X3Qgdmhvc3RfcmVx X3VzZXJfdG9fa2VybmVsW10gPSB7DQo+ICsJW1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0gVkhP U1RfUkVTRVRfT1dORVIsDQo+ICsJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTExdID0gVkhPU1Rf U0VUX1ZSSU5HX0NBTEwsDQo+ICsJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTV0gPSBWSE9TVF9T RVRfVlJJTkdfTlVNLA0KPiArCVtWSE9TVF9VU0VSX1NFVF9WUklOR19CQVNFXSA9IFZIT1NUX1NF VF9WUklOR19CQVNFLA0KPiArCVtWSE9TVF9VU0VSX0dFVF9WUklOR19CQVNFXSA9IFZIT1NUX0dF VF9WUklOR19CQVNFLA0KPiArCVtWSE9TVF9VU0VSX1NFVF9WUklOR19BRERSXSA9IFZIT1NUX1NF VF9WUklOR19BRERSLA0KPiArCVtWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLXSA9IFZIT1NUX1NF VF9WUklOR19LSUNLLA0KPiArfTsNCj4gKw0KPiAgc3RhdGljIGludA0KPiAgdmhvc3Rfa2VybmVs X3NlbmRfcmVxdWVzdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJCSAgIGVudW0g dmhvc3RfdXNlcl9yZXF1ZXN0IHJlcSwNCj4gQEAgLTIyNyw3ICsyMzcsNiBAQCB2aG9zdF9rZXJu ZWxfc2VuZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAlpbnQgcmV0 ID0gLTE7DQo+ICAJdW5zaWduZWQgaW50IGk7DQo+ICAJdWludDY0X3QgcmVxX2tlcm5lbDsNCj4g LQlzdHJ1Y3Qgdmhvc3RfbWVtb3J5X2tlcm5lbCAqdm0gPSBOVUxMOw0KPiAgCWludCB2aG9zdGZk Ow0KPiAgCXVuc2lnbmVkIGludCBxdWV1ZV9zZWw7DQo+IA0KPiBAQCAtMjM1LDEzICsyNDQsNiBA QCB2aG9zdF9rZXJuZWxfc2VuZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwN Cj4gDQo+ICAJcmVxX2tlcm5lbCA9IHZob3N0X3JlcV91c2VyX3RvX2tlcm5lbFtyZXFdOw0KPiAN Cj4gLQlpZiAocmVxX2tlcm5lbCA9PSBWSE9TVF9TRVRfTUVNX1RBQkxFKSB7DQo+IC0JCXZtID0g cHJlcGFyZV92aG9zdF9tZW1vcnlfa2VybmVsKCk7DQo+IC0JCWlmICghdm0pDQo+IC0JCQlyZXR1 cm4gLTE7DQo+IC0JCWFyZyA9ICh2b2lkICopdm07DQo+IC0JfQ0KPiAtDQo+ICAJc3dpdGNoIChy ZXFfa2VybmVsKSB7DQo+ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfTlVNOg0KPiAgCWNhc2UgVkhP U1RfU0VUX1ZSSU5HX0FERFI6DQo+IEBAIC0yNzEsOSArMjczLDYgQEAgdmhvc3Rfa2VybmVsX3Nl bmRfcmVxdWVzdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJCXJldCA9IGlvY3Rs KHZob3N0ZmQsIHJlcV9rZXJuZWwsIGFyZyk7DQo+ICAJfQ0KPiANCj4gLQlpZiAodm0pDQo+IC0J CWZyZWUodm0pOw0KPiAtDQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCVBNRF9EUlZfTE9HKEVSUiwg IiVzIGZhaWxlZDogJXMiLA0KPiAgCQkJICAgIHZob3N0X21zZ19zdHJpbmdzW3JlcV0sIHN0cmVy cm9yKGVycm5vKSk7DQo+IEBAIC00MDMsNiArNDAyLDcgQEAgc3RydWN0IHZpcnRpb191c2VyX2Jh Y2tlbmRfb3BzIHZpcnRpb19vcHNfa2VybmVsID0gew0KPiAgCS5zZXRfb3duZXIgPSB2aG9zdF9r ZXJuZWxfc2V0X293bmVyLA0KPiAgCS5nZXRfZmVhdHVyZXMgPSB2aG9zdF9rZXJuZWxfZ2V0X2Zl YXR1cmVzLA0KPiAgCS5zZXRfZmVhdHVyZXMgPSB2aG9zdF9rZXJuZWxfc2V0X2ZlYXR1cmVzLA0K PiArCS5zZXRfbWVtb3J5X3RhYmxlID0gdmhvc3Rfa2VybmVsX3NldF9tZW1vcnlfdGFibGUsDQo+ ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X2tlcm5lbF9zZW5kX3JlcXVlc3QsDQo+ICAJLmVuYWJs ZV9xcCA9IHZob3N0X2tlcm5lbF9lbmFibGVfcXVldWVfcGFpcg0KPiAgfTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMNCj4gYi9kcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+IGluZGV4IDQ4Nzc1NzRm NzIuLjk0NTMzZTMxY2UgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF91c2VyLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X3VzZXIuYw0KPiBAQCAtODEsNiArODEsOSBAQCB2aG9zdF91c2VyX3dyaXRlKGludCBm ZCwgc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2csIGludA0KPiAqZmRzLCBpbnQgZmRfbnVtKQ0K PiAgCQlyID0gc2VuZG1zZyhmZCwgJm1zZ2gsIDApOw0KPiAgCX0gd2hpbGUgKHIgPCAwICYmIGVy cm5vID09IEVJTlRSKTsNCj4gDQo+ICsJaWYgKHIgPCAwKQ0KPiArCQlQTURfRFJWX0xPRyhFUlIs ICJGYWlsZWQgdG8gc2VuZCBtc2c6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCj4gKw0KPiAgCXJl dHVybiByOw0KPiAgfQ0KPiANCj4gQEAgLTEyNSw2ICsxMjgsMzkgQEAgdmhvc3RfdXNlcl9yZWFk KGludCBmZCwgc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2cpDQo+ICAJcmV0dXJuIC0xOw0KPiAg fQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3VzZXJfY2hlY2tfcmVwbHlfYWNrKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0IHZob3N0X3VzZXJfbXNnDQo+ICptc2cpDQo+ ICt7DQo+ICsJZW51bSB2aG9zdF91c2VyX3JlcXVlc3QgcmVxID0gbXNnLT5yZXF1ZXN0Ow0KPiAr CWludCByZXQ7DQo+ICsNCj4gKwlpZiAoIShtc2ctPmZsYWdzICYgVkhPU1RfVVNFUl9ORUVEX1JF UExZX01BU0spKQ0KPiArCQlyZXR1cm4gMDsNCj4gKw0KPiArCXJldCA9IHZob3N0X3VzZXJfcmVh ZChkZXYtPnZob3N0ZmQsIG1zZyk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJUE1EX0RSVl9M T0coRVJSLCAiRmFpbGVkIHRvIHJlYWQgcmVwbHktYWNrIik7DQo+ICsJCXJldHVybiAtMTsNCj4g Kwl9DQo+ICsNCj4gKwlpZiAocmVxICE9IG1zZy0+cmVxdWVzdCkgew0KPiArCQlQTURfRFJWX0xP RyhFUlIsICJVbmV4cGVjdGVkIHJlcGx5LWFjayByZXF1ZXN0IHR5cGUgKCVkKSIsIG1zZy0NCj4g PnJlcXVlc3QpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKG1zZy0+c2l6 ZSAhPSBzaXplb2YobXNnLT5wYXlsb2FkLnU2NCkpIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAi VW5leHBlY3RlZCByZXBseS1hY2sgcGF5bG9hZCBzaXplICglZCkiLCBtc2ctDQo+ID5zaXplKTsN Cg0KQmV0dGVyIHRvIHVzZSAnJXUnPw0KDQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4g KwlpZiAobXNnLT5wYXlsb2FkLnU2NCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJTbGF2ZSBy ZXBsaWVkIE5BQ0sgdG8gcmVxdWVzdCB0eXBlICVkIiwgbXNnLQ0KPiA+cmVxdWVzdCk7DQoNClJl cGxhY2UgJyVkJyB3aXRoICcoJWQpJyB0byBhbGlnbiB3aXRoIHRoZSBhYm92ZSBzdHlsZT8gOlAN Cg0KVGhhbmtzLA0KQ2hlbmJvDQoNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCXJl dHVybiAwOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF91c2VyX3NldF9vd25l cihzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICB7DQo+IEBAIC0zMzgsMjUgKzM3NCw0 NyBAQCB1cGRhdGVfbWVtb3J5X3JlZ2lvbihjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZ19saXN0ICpt c2wNCj4gX19ydGVfdW51c2VkLA0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gLXByZXBhcmVf dmhvc3RfbWVtb3J5X3VzZXIoc3RydWN0IHZob3N0X3VzZXJfbXNnICptc2csIGludCBmZHNbXSkN Cj4gK3Zob3N0X3VzZXJfc2V0X21lbW9yeV90YWJsZShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk ZXYpDQo+ICB7DQo+ICAJc3RydWN0IHdhbGtfYXJnIHdhOw0KPiArCWludCBmZHNbVkhPU1RfTUVN T1JZX01BWF9OUkVHSU9OU107DQo+ICsJaW50IHJldCwgZmRfbnVtOw0KPiArCXN0cnVjdCB2aG9z dF91c2VyX21zZyBtc2cgPSB7DQo+ICsJCS5yZXF1ZXN0ID0gVkhPU1RfVVNFUl9TRVRfTUVNX1RB QkxFLA0KPiArCQkuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04sDQo+ICsJfTsNCj4gKw0KPiAr CWlmIChkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYgKDFVTEwgPDwgVkhPU1RfVVNFUl9QUk9UT0NP TF9GX1JFUExZX0FDSykpDQo+ICsJCW1zZy5mbGFncyB8PSBWSE9TVF9VU0VSX05FRURfUkVQTFlf TUFTSzsNCj4gDQo+ICAJd2EucmVnaW9uX25yID0gMDsNCj4gLQl3YS52bSA9ICZtc2ctPnBheWxv YWQubWVtb3J5Ow0KPiArCXdhLnZtID0gJm1zZy5wYXlsb2FkLm1lbW9yeTsNCj4gIAl3YS5mZHMg PSBmZHM7DQo+IA0KPiAgCS8qDQo+ICAJICogVGhlIG1lbW9yeSBsb2NrIGhhcyBhbHJlYWR5IGJl ZW4gdGFrZW4gYnkgbWVtb3J5IHN1YnN5c3RlbQ0KPiAgCSAqIG9yIHZpcnRpb191c2VyX3N0YXJ0 X2RldmljZSgpLg0KPiAgCSAqLw0KPiAtCWlmIChydGVfbWVtc2VnX3dhbGtfdGhyZWFkX3Vuc2Fm ZSh1cGRhdGVfbWVtb3J5X3JlZ2lvbiwgJndhKSA8IDApDQo+IC0JCXJldHVybiAtMTsNCj4gKwly ZXQgPSBydGVfbWVtc2VnX3dhbGtfdGhyZWFkX3Vuc2FmZSh1cGRhdGVfbWVtb3J5X3JlZ2lvbiwg JndhKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJZ290byBlcnI7DQo+IA0KPiAtCW1zZy0+cGF5 bG9hZC5tZW1vcnkubnJlZ2lvbnMgPSB3YS5yZWdpb25fbnI7DQo+IC0JbXNnLT5wYXlsb2FkLm1l bW9yeS5wYWRkaW5nID0gMDsNCj4gKwlmZF9udW0gPSB3YS5yZWdpb25fbnI7DQo+ICsJbXNnLnBh eWxvYWQubWVtb3J5Lm5yZWdpb25zID0gd2EucmVnaW9uX25yOw0KPiArCW1zZy5wYXlsb2FkLm1l bW9yeS5wYWRkaW5nID0gMDsNCj4gDQo+IC0JcmV0dXJuIDA7DQo+ICsJbXNnLnNpemUgPSBzaXpl b2YobXNnLnBheWxvYWQubWVtb3J5Lm5yZWdpb25zKTsNCj4gKwltc2cuc2l6ZSArPSBzaXplb2Yo bXNnLnBheWxvYWQubWVtb3J5LnBhZGRpbmcpOw0KPiArCW1zZy5zaXplICs9IGZkX251bSAqIHNp emVvZihzdHJ1Y3Qgdmhvc3RfbWVtb3J5X3JlZ2lvbik7DQo+ICsNCj4gKwlyZXQgPSB2aG9zdF91 c2VyX3dyaXRlKGRldi0+dmhvc3RmZCwgJm1zZywgZmRzLCBmZF9udW0pOw0KPiArCWlmIChyZXQg PCAwKQ0KPiArCQlnb3RvIGVycjsNCj4gKw0KPiArCXJldHVybiB2aG9zdF91c2VyX2NoZWNrX3Jl cGx5X2FjayhkZXYsICZtc2cpOw0KPiArZXJyOg0KPiArCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxl ZCB0byBzZXQgbWVtb3J5IHRhYmxlIik7DQo+ICsJcmV0dXJuIC0xOw0KPiAgfQ0KPiANCj4gIHN0 YXRpYyBzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbTsNCj4gQEAgLTM2OSw3ICs0MjcsNiBAQCBjb25z dCBjaGFyICogY29uc3Qgdmhvc3RfbXNnX3N0cmluZ3NbXSA9IHsNCj4gIAlbVkhPU1RfVVNFUl9H RVRfVlJJTkdfQkFTRV0gPSAiVkhPU1RfR0VUX1ZSSU5HX0JBU0UiLA0KPiAgCVtWSE9TVF9VU0VS X1NFVF9WUklOR19BRERSXSA9ICJWSE9TVF9TRVRfVlJJTkdfQUREUiIsDQo+ICAJW1ZIT1NUX1VT RVJfU0VUX1ZSSU5HX0tJQ0tdID0gIlZIT1NUX1NFVF9WUklOR19LSUNLIiwNCj4gLQlbVkhPU1Rf VVNFUl9TRVRfTUVNX1RBQkxFXSA9ICJWSE9TVF9TRVRfTUVNX1RBQkxFIiwNCj4gIAlbVkhPU1Rf VVNFUl9TRVRfVlJJTkdfRU5BQkxFXSA9ICJWSE9TVF9TRVRfVlJJTkdfRU5BQkxFIiwNCj4gIAlb VkhPU1RfVVNFUl9TRVRfU1RBVFVTXSA9ICJWSE9TVF9TRVRfU1RBVFVTIiwNCj4gIAlbVkhPU1Rf VVNFUl9HRVRfU1RBVFVTXSA9ICJWSE9TVF9HRVRfU1RBVFVTIiwNCj4gQEAgLTQzNCwxOCArNDkx LDYgQEAgdmhvc3RfdXNlcl9zb2NrKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAlj YXNlIFZIT1NUX1VTRVJfUkVTRVRfT1dORVI6DQo+ICAJCWJyZWFrOw0KPiANCj4gLQljYXNlIFZI T1NUX1VTRVJfU0VUX01FTV9UQUJMRToNCj4gLQkJaWYgKHByZXBhcmVfdmhvc3RfbWVtb3J5X3Vz ZXIoJm1zZywgZmRzKSA8IDApDQo+IC0JCQlyZXR1cm4gLTE7DQo+IC0JCWZkX251bSA9IG1zZy5w YXlsb2FkLm1lbW9yeS5ucmVnaW9uczsNCj4gLQkJbXNnLnNpemUgPSBzaXplb2YobS5wYXlsb2Fk Lm1lbW9yeS5ucmVnaW9ucyk7DQo+IC0JCW1zZy5zaXplICs9IHNpemVvZihtLnBheWxvYWQubWVt b3J5LnBhZGRpbmcpOw0KPiAtCQltc2cuc2l6ZSArPSBmZF9udW0gKiBzaXplb2Yoc3RydWN0IHZo b3N0X21lbW9yeV9yZWdpb24pOw0KPiAtDQo+IC0JCWlmIChoYXNfcmVwbHlfYWNrKQ0KPiAtCQkJ bXNnLmZsYWdzIHw9IFZIT1NUX1VTRVJfTkVFRF9SRVBMWV9NQVNLOw0KPiAtCQlicmVhazsNCj4g LQ0KPiAgCWNhc2UgVkhPU1RfVVNFUl9TRVRfTE9HX0ZEOg0KPiAgCQlmZHNbZmRfbnVtKytdID0g KigoaW50ICopYXJnKTsNCj4gIAkJYnJlYWs7DQo+IEBAIC02NDQsNiArNjg5LDcgQEAgc3RydWN0 IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfdXNlciA9IHsNCj4gIAkuc2V0X2Zl YXR1cmVzID0gdmhvc3RfdXNlcl9zZXRfZmVhdHVyZXMsDQo+ICAJLmdldF9wcm90b2NvbF9mZWF0 dXJlcyA9IHZob3N0X3VzZXJfZ2V0X3Byb3RvY29sX2ZlYXR1cmVzLA0KPiAgCS5zZXRfcHJvdG9j b2xfZmVhdHVyZXMgPSB2aG9zdF91c2VyX3NldF9wcm90b2NvbF9mZWF0dXJlcywNCj4gKwkuc2V0 X21lbW9yeV90YWJsZSA9IHZob3N0X3VzZXJfc2V0X21lbW9yeV90YWJsZSwNCj4gIAkuc2VuZF9y ZXF1ZXN0ID0gdmhvc3RfdXNlcl9zb2NrLA0KPiAgCS5lbmFibGVfcXAgPSB2aG9zdF91c2VyX2Vu YWJsZV9xdWV1ZV9wYWlyDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF92ZHBhLmMNCj4gaW5kZXggZjYyN2FmYmNmYy4uYmQ3ZGFlYmYwYyAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiAr KysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+IEBAIC0x OSw3ICsxOSw2IEBADQo+ICAjZGVmaW5lIFZIT1NUX1NFVF9GRUFUVVJFUyBfSU9XKFZIT1NUX1ZJ UlRJTywgMHgwMCwgX191NjQpDQo+ICAjZGVmaW5lIFZIT1NUX1NFVF9PV05FUiBfSU8oVkhPU1Rf VklSVElPLCAweDAxKQ0KPiAgI2RlZmluZSBWSE9TVF9SRVNFVF9PV05FUiBfSU8oVkhPU1RfVklS VElPLCAweDAyKQ0KPiAtI2RlZmluZSBWSE9TVF9TRVRfTUVNX1RBQkxFIF9JT1coVkhPU1RfVklS VElPLCAweDAzLCB2b2lkICopDQo+ICAjZGVmaW5lIFZIT1NUX1NFVF9MT0dfQkFTRSBfSU9XKFZI T1NUX1ZJUlRJTywgMHgwNCwgX191NjQpDQo+ICAjZGVmaW5lIFZIT1NUX1NFVF9MT0dfRkQgX0lP VyhWSE9TVF9WSVJUSU8sIDB4MDcsIGludCkNCj4gICNkZWZpbmUgVkhPU1RfU0VUX1ZSSU5HX05V TSBfSU9XKFZIT1NUX1ZJUlRJTywgMHgxMCwgc3RydWN0IHZob3N0X3ZyaW5nX3N0YXRlKQ0KPiBA QCAtNDYsNyArNDUsNiBAQCBzdGF0aWMgdWludDY0X3Qgdmhvc3RfcmVxX3VzZXJfdG9fdmRwYVtd ID0gew0KPiAgCVtWSE9TVF9VU0VSX0dFVF9WUklOR19CQVNFXSA9IFZIT1NUX0dFVF9WUklOR19C QVNFLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19BRERSXSA9IFZIT1NUX1NFVF9WUklOR19B RERSLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLXSA9IFZIT1NUX1NFVF9WUklOR19L SUNLLA0KPiAtCVtWSE9TVF9VU0VSX1NFVF9NRU1fVEFCTEVdID0gVkhPU1RfU0VUX01FTV9UQUJM RSwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfU0VUX1NUQVRVUywN Cj4gIAlbVkhPU1RfVVNFUl9HRVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfR0VUX1NUQVRVUywNCj4g IAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFXSA9IFZIT1NUX1ZEUEFfU0VUX1ZSSU5HX0VO QUJMRSwNCj4gQEAgLTMxOSw3ICszMTcsNyBAQCB2aG9zdF92ZHBhX21hcChjb25zdCBzdHJ1Y3Qg cnRlX21lbXNlZ19saXN0ICptc2wsIGNvbnN0DQo+IHN0cnVjdCBydGVfbWVtc2VnICptcywNCj4g IH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+IC12aG9zdF92ZHBhX2RtYV9tYXBfYWxsKHN0cnVjdCB2 aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gK3Zob3N0X3ZkcGFfc2V0X21lbW9yeV90YWJsZShzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICB7DQo+ICAJaW50IHJldDsNCj4gDQo+IEBAIC0z NzYsOSArMzc0LDYgQEAgdmhvc3RfdmRwYV9zZW5kX3JlcXVlc3Qoc3RydWN0IHZpcnRpb191c2Vy X2RldiAqZGV2LA0KPiANCj4gIAlyZXFfdmRwYSA9IHZob3N0X3JlcV91c2VyX3RvX3ZkcGFbcmVx XTsNCj4gDQo+IC0JaWYgKHJlcV92ZHBhID09IFZIT1NUX1NFVF9NRU1fVEFCTEUpDQo+IC0JCXJl dHVybiB2aG9zdF92ZHBhX2RtYV9tYXBfYWxsKGRldik7DQo+IC0NCj4gIAlzd2l0Y2ggKHJlcV92 ZHBhKSB7DQo+ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfTlVNOg0KPiAgCWNhc2UgVkhPU1RfU0VU X1ZSSU5HX0FERFI6DQo+IEBAIC00NjEsNiArNDU2LDcgQEAgc3RydWN0IHZpcnRpb191c2VyX2Jh Y2tlbmRfb3BzIHZpcnRpb19vcHNfdmRwYSA9IHsNCj4gIAkuc2V0X2ZlYXR1cmVzID0gdmhvc3Rf dmRwYV9zZXRfZmVhdHVyZXMsDQo+ICAJLmdldF9wcm90b2NvbF9mZWF0dXJlcyA9IHZob3N0X3Zk cGFfZ2V0X2JhY2tlbmRfZmVhdHVyZXMsDQo+ICAJLnNldF9wcm90b2NvbF9mZWF0dXJlcyA9IHZo b3N0X3ZkcGFfc2V0X2JhY2tlbmRfZmVhdHVyZXMsDQo+ICsJLnNldF9tZW1vcnlfdGFibGUgPSB2 aG9zdF92ZHBhX3NldF9tZW1vcnlfdGFibGUsDQo+ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X3Zk cGFfc2VuZF9yZXF1ZXN0LA0KPiAgCS5lbmFibGVfcXAgPSB2aG9zdF92ZHBhX2VuYWJsZV9xdWV1 ZV9wYWlyLA0KPiAgCS5kbWFfbWFwID0gdmhvc3RfdmRwYV9kbWFfbWFwX2JhdGNoLA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5j DQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+ IGluZGV4IDQ1NDE3YmJjNWQuLmNiOGY4YTg3MmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiArKysgYi9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gQEAgLTE3Nyw3ICsxNzcs NyBAQCB2aXJ0aW9fdXNlcl9zdGFydF9kZXZpY2Uoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2 KQ0KPiAgCQlnb3RvIGVycm9yOw0KPiANCj4gIAkvKiBTdGVwIDI6IHNoYXJlIG1lbW9yeSByZWdp b25zICovDQo+IC0JcmV0ID0gZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsIFZIT1NUX1VTRVJf U0VUX01FTV9UQUJMRSwgTlVMTCk7DQo+ICsJcmV0ID0gZGV2LT5vcHMtPnNldF9tZW1vcnlfdGFi bGUoZGV2KTsNCj4gIAlpZiAocmV0IDwgMCkNCj4gIAkJZ290byBlcnJvcjsNCj4gDQo+IEBAIC0z NTIsNyArMzUyLDcgQEAgdmlydGlvX3VzZXJfbWVtX2V2ZW50X2NiKGVudW0gcnRlX21lbV9ldmVu dCB0eXBlDQo+IF9fcnRlX3VudXNlZCwNCj4gIAkJZGV2LT5vcHMtPmVuYWJsZV9xcChkZXYsIGks IDApOw0KPiANCj4gIAkvKiBTdGVwIDI6IHVwZGF0ZSBtZW1vcnkgcmVnaW9ucyAqLw0KPiAtCWRl di0+b3BzLT5zZW5kX3JlcXVlc3QoZGV2LCBWSE9TVF9VU0VSX1NFVF9NRU1fVEFCTEUsIE5VTEwp Ow0KPiArCWRldi0+b3BzLT5zZXRfbWVtb3J5X3RhYmxlKGRldik7DQo+IA0KPiAgCS8qIFN0ZXAg MzogcmVzdW1lIHRoZSBhY3RpdmUgcXVldWVzICovDQo+ICAJZm9yIChpID0gMDsgaSA8IGRldi0+ cXVldWVfcGFpcnM7IGkrKykNCj4gLS0NCj4gMi4yOS4yDQoNCg==