From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E933A09FF; Wed, 30 Dec 2020 04:14:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 09D412B8E; Wed, 30 Dec 2020 04:14:48 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 601BB2B8C for ; Wed, 30 Dec 2020 04:14:46 +0100 (CET) IronPort-SDR: PlQe/CjvMOgnsAJgrJ0PBgeeZebBma4BJQ+/5BOSrwz3dO+QXEqAvjmwIZdCQUz0+Y3Vvi1jl0 iVT5dptvHBow== X-IronPort-AV: E=McAfee;i="6000,8403,9849"; a="261316086" X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="261316086" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Dec 2020 19:14:44 -0800 IronPort-SDR: 1HiZWyzH93f+PVoQ7w7AMG2wQ7svkAtRq6UgeuhC0++quZM0bAX36c1y225iuluVrTdIChwVSM foUs2+g+bHUA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="344256443" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga003.jf.intel.com with ESMTP; 29 Dec 2020 19:14:44 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Dec 2020 19:14:43 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Dec 2020 19:14:43 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Dec 2020 19:14:43 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Dec 2020 19:14:42 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kK2hAu3dscmie91DXzA5Yk6zCh9fmEuS/Sya3rVQfrA+Fe3QMUZNkhWoecvwvDWeyntz0VPxXbpf57CF1OeNRfy7LXlWbg1xPgzIiuOjWSN9PH5VPKe0UdnsuoXuBWCyhvYpPNPQixAXRG9AXqDSZeMnNUo+fatWbPbr+TrgboJ6Gu6Fhj9o0H8Yff3940vvqrXY5HQx3Yy+ReEUH5ZujFBirmyNR8P8yF5zJvincGXbolH5NP3rr7XLYVTEV/4uZaxJuUpBOpkbPMshFDnx7S1ib/uo5g6i9Rd4wjGAs/FIJ/TuUlZXLLvIRLv0tMlLU4Pe/NdoCb5VjRCiF4/7Ug== 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=2AWt0s2CnsXkIQb70pzrrEAaE1Joc/JnK/RP477afa8=; b=aqJCg75BsidT+evatNvdEUXFeYJsJ7azCbIVHQWeWoFv791mLYehtl4YMlDlq8sKFvZ8heNtqaCFgKoBMQ5qIePCEGIfsGgzF7QkvS3wdC1rMJfmYxATezhv1a9PO64Ew+oZQoXCFg88mAYAxpL8Awz4L1ZG8F9vua3JM8WCzL8n0usAdQSVcSTgXQb6u/Rm1uEcOqLi1kao8c9gSZYI1tXXVHQiP3seaUrjccyJKF0wPcETSC2uz6i/Zq99oBALVei/oxIwNwvC3rvoHIaMZG1lioiktiOO4QFb7lN+SLLbgMlqq+eJilH81Lh9BvBmoahk9DPNbGAb73hrFZq1rA== 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=2AWt0s2CnsXkIQb70pzrrEAaE1Joc/JnK/RP477afa8=; b=oRcF8Ntnso4cDj64jObl5DkAuMf68dyl5eFspDNsttnAarNnEEvAJP1RQMKKRef+z0UkX+Eije3faFKDa+5lL5GqJTzTwr1Blz/crSClgLMo/RdcLff/pWYQaWvpR7J7iwUN4kiTN8LelAAO4DdAprQl7i++9vrkDpYi3Sjs210= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3933.namprd11.prod.outlook.com (2603:10b6:208:13d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.29; Wed, 30 Dec 2020 03:14:41 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272%7]) with mapi id 15.20.3700.031; Wed, 30 Dec 2020 03:14:41 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 17/40] net/virtio: move features definition to generic header Thread-Index: AQHW1xVEa4kSgB1IGUqWpeRVD5ve5KoPBEXA Date: Wed, 30 Dec 2020 03:14:41 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-18-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-18-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: f857b320-faee-49e1-d632-08d8ac710c8a x-ms-traffictypediagnostic: MN2PR11MB3933: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:459; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6njv7yqkOUmwq23h0c5gIrruQQRqv0i0AaBS6Cqh3/kCwxHyu6kO7oIXYQ67Lj9Uk73XMCmeOKZUNxdsyuEuSWrO4iyX+l0YuPII7tgG15oDhW+h1Wlzw5ZVr9OrcN0ySjI/nT7Z8rXaC/N3hsYtA1Bcd6Wm8z37ym3jkDndrW5BlOri6XxYQGlRn74zXyC3NaT5Z+6MAeQwtqvMhd0FtWCFoygjUOyug4uc8ESFYOO0G5Q3+VWH75UyZIEIDF95F3x77SxlPOtiWFwYPuBmcFX4NVo72Vl3xgwpQXv8htkyeZPvPYqEZbARLcH+Tj1esrE3KrWDIse06fPA25Qw0MVL6/i0wsxHoUPmlYPiAYK2HMBphAyXiZHu30qL3I9P/nEE9GEgDFGCpqfXcuLA5+ROrlOJQhRSVAYQkYVlGxJDQhpspzI+4l8cwp/3xVhh 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)(39860400002)(346002)(366004)(376002)(396003)(136003)(2906002)(66476007)(186003)(316002)(64756008)(8676002)(55016002)(66556008)(8936002)(53546011)(30864003)(76116006)(7696005)(66946007)(66446008)(26005)(83380400001)(478600001)(5660300002)(71200400001)(86362001)(6506007)(9686003)(110136005)(33656002)(52536014)(41533002)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?Wmx4a3U5WCtlb0JQQlU1QlJyQm4zNWhnT3Q3NGZqUzNFUVBMaWhTZS9RQ1Z6?= =?utf-8?B?Nk9CZktqT1JSaWFjY2Jzdk1tek9PWHBreGhwdUx6TlptbFlFT3NsazhiTllP?= =?utf-8?B?cy9KWHVQaG9Qa1RvUzRjcWU2OXN4eW9nQmFZTEQwS0l5ajNEZ2srK1MzeUJN?= =?utf-8?B?U0t4V3BJUThSQ1JQYWdMSDQwZkdnZDI5Uy8xdHE5RnZpZVNjSnpjNlFPaTdM?= =?utf-8?B?b1V6NGNFcmNXSUZFRlpRTEZ6Zm9qOW94OE5IbG54WHBDVDNVbVJsR3JDc0pK?= =?utf-8?B?aTlaQnFKalc4eEtYK09XcVBIMi9FMUllQmVldndESXdRWXczMkJnL001bFJx?= =?utf-8?B?VFNZMmtYeU83Qk9DWU0wdTRxa1JhMUJrUXFKWkM0emJTSjhVY1ZZbGMweUM0?= =?utf-8?B?akdoeHFsbHhpa2VhbEJuTmxITjFlSTNsbk9OMW5ORXNhcDN4VGt0Ulh4TnpR?= =?utf-8?B?VlNTcW1rWFFLcWJNajZuQ1FLemNUWFhBdXplVUFuWTZBcEpxNTNXRnd5dFdp?= =?utf-8?B?NWNsM0wvTk91WlYxdU5BV2tVRFk0amFla1RmVWJ1Rjk2YTBpZWJBMHgyd3hy?= =?utf-8?B?L3ArVUJoMHNMOVZZRGVYMHFEVUlFelRoUkVpb25YVzkzc3Yza0RPYzM2VnR2?= =?utf-8?B?bUVOczh0Nmg4ckxEeFJrVzJEbHp4VXJHdHVSRVIwejR4eGRXUUQyNzlrVFlV?= =?utf-8?B?TUVsRUUzazUydTdzTVNVMkt6N2M0M2tWd2dhME1PcVJZYjgyTUJjRG8rRmU3?= =?utf-8?B?WTFFYVpPbEdDYUx1NWJCWWxNMmh1RnUvakdONmQ1REc3SXVCZUFRRGRieFZQ?= =?utf-8?B?cGk2UTJmV2VySUplaThXUVZmL3cwSy9wUmIwTmVlSHhsLzRyVU1WQWJrY3Qr?= =?utf-8?B?bkRnb1R2K2VsK0Q3MXQzQ0RJRGw3TkdhRUZya0tDaXJVajMyUXgvM3Uzd0Zy?= =?utf-8?B?enBKRFJmRkpiL0o4c0k4akNoYndJM29PbG02T1lOdU9nOUtsN21maXpGN2JZ?= =?utf-8?B?R082TCtpWGozdkwwam5vVHJZZlA1MDlFQmdnNWNKTktkZzluZ3JVdTFhU0ha?= =?utf-8?B?WEc5dDN1SzRVMkRIUTRPUFlmUHVRaEZGMVNzTlJXTDJzdEo2dFpHbjc1T3Bn?= =?utf-8?B?bFR6cDMxNTI3M0ZPb1F0blhUTkpGVFh4RmpUQUhmdnNzbEpQaFhMdjhRQWpN?= =?utf-8?B?a0NMeVEyQjRlcTRPOGh5S3lMRjMrY21kNnQwT3U0Ly9UcEs1UGl5MnZuRHdX?= =?utf-8?B?OFU0RUwrcnRvb0FXMnR6UzJUTHJoQ3FmWk9QWXc3UEV4N3NEM3hoS2FPaUNs?= =?utf-8?Q?urfEmQMDeOLkfQly1xpfGL4HjY4LloTDnX?= 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: f857b320-faee-49e1-d632-08d8ac710c8a X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Dec 2020 03:14:41.3623 (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: VxmzSVIQiMa+SrHvzfmMc84y5u6E9GCSQNJs8TOAJu4NENONIFnaKX1u2ydKyeS+pVZtMKKPnNzhZZhpLDzGhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3933 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 17/40] net/virtio: move features definition to generic header 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IE1vbmRheSwg RGVjZW1iZXIgMjEsIDIwMjAgNToxNCBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5i byA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBhbW9y ZW5vekByZWRoYXQuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUg Q29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0gg MTcvNDBdIG5ldC92aXJ0aW86IG1vdmUgZmVhdHVyZXMgZGVmaW5pdGlvbiB0byBnZW5lcmljIGhl YWRlcg0KPiANCj4gVGhpcyBwYXRjaCBtb3ZlcyBhbGwgdGhlIFZpcnRpbyBkZWZpbml0aW9uIHRv IHRoZSBnZW5lcmljDQo+IGhlYWRlci4gSXQgYWxzbyByZW5hbWVzIHNvbWUgaGVscGVycyB0byBu byBtb3JlIHJlZmVyZW5jZQ0KPiBQQ0kuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29x dWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0 L3ZpcnRpby9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpby5jICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKysNCj4gIGRyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW8uaCAgICAgICAgICAgICAgICAgICB8ICA5NCArKysrKysrKysr KysrKysNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMgICAgICAgICAgICB8 IDExMCArKysrKysrKystLS0tLS0tLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNp LmMgICAgICAgICAgICAgICB8ICAyMSArLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlv X3BjaS5oICAgICAgICAgICAgICAgfCAgOTAgLS0tLS0tLS0tLS0tLS0NCj4gIGRyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fcmluZy5oICAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpb19yeHR4LmMgICAgICAgICAgICAgIHwgIDM4ICsrKy0tLQ0KPiAgZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZF9hdnguYyAgIHwgICA2ICstDQo+ICAu Li4vbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFwLmMgfCAgIDIgKy0NCj4g IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlcl9ldGhkZXYuYyAgICAgICB8ICAgNiArLQ0K PiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRxdWV1ZS5jICAgICAgICAgICAgICAgIHwgICA0ICst DQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1ZXVlLmggICAgICAgICAgICAgICAgfCAgIDgg Ky0NCj4gIDEzIGZpbGVzIGNoYW5nZWQsIDIwOSBpbnNlcnRpb25zKCspLCAxOTcgZGVsZXRpb25z KC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpby5jDQo+ IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL21lc29uLmJ1aWxkIGIvZHJpdmVy cy9uZXQvdmlydGlvL21lc29uLmJ1aWxkDQo+IGluZGV4IDBiNjI0MThmMzMuLjdkZTQxY2QwNGQg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby9tZXNvbi5idWlsZA0KPiArKysgYi9k cml2ZXJzL25ldC92aXJ0aW8vbWVzb24uYnVpbGQNCj4gQEAgLTEsNyArMSw4IEBADQo+ICAjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gICMgQ29weXJpZ2h0KGMpIDIw MTggSW50ZWwgQ29ycG9yYXRpb24NCj4gDQo+IC1zb3VyY2VzICs9IGZpbGVzKCd2aXJ0aW9fZXRo ZGV2LmMnLA0KPiArc291cmNlcyArPSBmaWxlcygndmlydGlvLmMnLA0KPiArICAgICd2aXJ0aW9f ZXRoZGV2LmMnLA0KDQpCZXR0ZXIgYWxpZ24gdGhlIGZpbGUgbmFtZXMg8J+Yig0KDQo+ICAJJ3Zp cnRpb19wY2lfZXRoZGV2LmMnLA0KPiAgCSd2aXJ0aW9fcGNpLmMnLA0KPiAgCSd2aXJ0aW9fcnh0 eC5jJywNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW8uYyBiL2RyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW8uYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAwLi5kOGQ2YmY3YWRkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpby5jDQo+IEBAIC0wLDAgKzEsMjIgQEANCj4gKy8qIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDEwLTIwMTQg SW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqIENvcHlyaWdodChjKSAyMDIwIFJlZCBIYXQsIEluYy4N Cj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSAidmlydGlvLmgiDQo+ICsNCj4gK3VpbnQ2NF90DQo+ ICt2aXJ0aW9fbmVnb3RpYXRlX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCB1aW50NjRf dCBob3N0X2ZlYXR1cmVzKQ0KPiArew0KPiArCXVpbnQ2NF90IGZlYXR1cmVzOw0KDQpbc25pcF0N Cg0KPiBAQCAtMTY2NCw5ICsxNjY0LDkgQEAgdmlydGlvX2luaXRfZGV2aWNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZXRoX2RldiwgdWludDY0X3QNCj4gcmVxX2ZlYXR1cmVzKQ0KPiAgCWV0aF9kZXYt PmRhdGEtPmRldl9mbGFncyB8PSBSVEVfRVRIX0RFVl9BVVRPRklMTF9RVUVVRV9YU1RBVFM7DQo+ IA0KPiAgCS8qIFNldHRpbmcgdXAgcnhfaGVhZGVyIHNpemUgZm9yIHRoZSBkZXZpY2UgKi8NCj4g LQlpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSB8fA0K PiAtCSAgICB2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX1ZFUlNJT05fMSkgfHwNCj4g LQkgICAgdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9SSU5HX1BBQ0tFRCkpDQo+ICsJ aWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9NUkdfUlhCVUYpIHx8DQo+ ICsJICAgIHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX1ZFUlNJT05fMSkgfHwNCj4g KwkgICAgdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfUklOR19QQUNLRUQpKQ0KDQpU aGVyZSBhcmUgbWl4ZWQgdXNhZ2Ugb2YgdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlIGFuZCB2aXJ0 aW9fd2l0aF9mZWF0dXJlcyhodywNClZJUlRJT19GX1JJTkdfUEFDS0VEKS4gSSB0aGluayB3ZSBz aG91bGQgdXNlIG9ubHkgb25lLiBTaW5jZSB2aXJ0aW9fd2l0aF9wYWNrZWRfcXVldWUNCmlzIGlu dHJvZHVjZWQsIHNob3VsZCB3ZSBvbmx5IGtlZXAgdGhpcyBvbmU/IFdoYXQgZG8geW91IHRoaW5r Pw0KDQpUaGFua3MNCkNoZW5ibw0KDQo+ICAJCWh3LT52dG5ldF9oZHJfc2l6ZSA9IHNpemVvZihz dHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJnX3J4YnVmKTsNCj4gIAllbHNlDQo+ICAJCWh3LT52dG5l dF9oZHJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpOw0KPiBAQCAtMTY4MSw3 ICsxNjgxLDcgQEAgdmlydGlvX2luaXRfZGV2aWNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwgdWludDY0X3QNCj4gcmVxX2ZlYXR1cmVzKQ0KPiAgCQkgICAgIGh3LT5tYWNfYWRkclszXSwg aHctPm1hY19hZGRyWzRdLCBody0+bWFjX2FkZHJbNV0pOw0KPiANCj4gIAlpZiAoaHctPnNwZWVk ID09IEVUSF9TUEVFRF9OVU1fVU5LTk9XTikgew0KPiAtCQlpZiAodnRwY2lfd2l0aF9mZWF0dXJl KGh3LCBWSVJUSU9fTkVUX0ZfU1BFRURfRFVQTEVYKSkgew0KPiArCQlpZiAodmlydGlvX3dpdGhf ZmVhdHVyZShodywgVklSVElPX05FVF9GX1NQRUVEX0RVUExFWCkpIHsNCj4gIAkJCWNvbmZpZyA9 ICZsb2NhbF9jb25maWc7DQo+ICAJCQl2dHBjaV9yZWFkX2Rldl9jb25maWcoaHcsDQo+ICAJCQkJ b2Zmc2V0b2Yoc3RydWN0IHZpcnRpb19uZXRfY29uZmlnLCBzcGVlZCksDQo+IEBAIC0xNjk3LDE0 ICsxNjk3LDE0IEBAIHZpcnRpb19pbml0X2RldmljZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYsDQo+IHVpbnQ2NF90IHJlcV9mZWF0dXJlcykNCj4gIAkJaHctPmR1cGxleCA9IEVUSF9MSU5L X0ZVTExfRFVQTEVYOw0KPiAgCVBNRF9JTklUX0xPRyhERUJVRywgImxpbmsgc3BlZWQgPSAlZCwg ZHVwbGV4ID0gJWQiLA0KPiAgCQlody0+c3BlZWQsIGh3LT5kdXBsZXgpOw0KPiAtCWlmICh2dHBj aV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9DVFJMX1ZRKSkgew0KPiArCWlmICh2aXJ0 aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfQ1RSTF9WUSkpIHsNCj4gIAkJY29uZmln ID0gJmxvY2FsX2NvbmZpZzsNCj4gDQo+ICAJCXZ0cGNpX3JlYWRfZGV2X2NvbmZpZyhodywNCj4g IAkJCW9mZnNldG9mKHN0cnVjdCB2aXJ0aW9fbmV0X2NvbmZpZywgbWFjKSwNCj4gIAkJCSZjb25m aWctPm1hYywgc2l6ZW9mKGNvbmZpZy0+bWFjKSk7DQo+IA0KPiAtCQlpZiAodnRwY2lfd2l0aF9m ZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfU1RBVFVTKSkgew0KPiArCQlpZiAodmlydGlvX3dpdGhf ZmVhdHVyZShodywgVklSVElPX05FVF9GX1NUQVRVUykpIHsNCj4gIAkJCXZ0cGNpX3JlYWRfZGV2 X2NvbmZpZyhodywNCj4gIAkJCQlvZmZzZXRvZihzdHJ1Y3QgdmlydGlvX25ldF9jb25maWcsIHN0 YXR1cyksDQo+ICAJCQkJJmNvbmZpZy0+c3RhdHVzLCBzaXplb2YoY29uZmlnLT5zdGF0dXMpKTsN Cj4gQEAgLTE3MTQsNyArMTcxNCw3IEBAIHZpcnRpb19pbml0X2RldmljZShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmV0aF9kZXYsIHVpbnQ2NF90DQo+IHJlcV9mZWF0dXJlcykNCj4gIAkJCWNvbmZpZy0+ c3RhdHVzID0gMDsNCj4gIAkJfQ0KPiANCj4gLQkJaWYgKHZ0cGNpX3dpdGhfZmVhdHVyZShodywg VklSVElPX05FVF9GX01RKSkgew0KPiArCQlpZiAodmlydGlvX3dpdGhfZmVhdHVyZShodywgVklS VElPX05FVF9GX01RKSkgew0KPiAgCQkJdnRwY2lfcmVhZF9kZXZfY29uZmlnKGh3LA0KPiAgCQkJ CW9mZnNldG9mKHN0cnVjdCB2aXJ0aW9fbmV0X2NvbmZpZywNCj4gbWF4X3ZpcnRxdWV1ZV9wYWly cyksDQo+ICAJCQkJJmNvbmZpZy0+bWF4X3ZpcnRxdWV1ZV9wYWlycywNCj4gQEAgLTE3MjcsNyAr MTcyNyw3IEBAIHZpcnRpb19pbml0X2RldmljZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs IHVpbnQ2NF90DQo+IHJlcV9mZWF0dXJlcykNCj4gDQo+ICAJCWh3LT5tYXhfcXVldWVfcGFpcnMg PSBjb25maWctPm1heF92aXJ0cXVldWVfcGFpcnM7DQo+IA0KPiAtCQlpZiAodnRwY2lfd2l0aF9m ZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfTVRVKSkgew0KPiArCQlpZiAodmlydGlvX3dpdGhfZmVh dHVyZShodywgVklSVElPX05FVF9GX01UVSkpIHsNCj4gIAkJCXZ0cGNpX3JlYWRfZGV2X2NvbmZp ZyhodywNCj4gIAkJCQlvZmZzZXRvZihzdHJ1Y3QgdmlydGlvX25ldF9jb25maWcsIG10dSksDQo+ ICAJCQkJJmNvbmZpZy0+bXR1LA0KPiBAQCAtMTgzOCw3ICsxODM4LDcgQEAgZXRoX3ZpcnRpb19k ZXZfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQo+ICAJCWdvdG8gZXJyX3ZpcnRp b19pbml0Ow0KPiANCj4gIAlpZiAodmVjdG9yaXplZCkgew0KPiAtCQlpZiAoIXZ0cGNpX3BhY2tl ZF9xdWV1ZShodykpIHsNCj4gKwkJaWYgKCF2aXJ0aW9fd2l0aF9wYWNrZWRfcXVldWUoaHcpKSB7 DQo+ICAJCQlody0+dXNlX3ZlY19yeCA9IDE7DQo+ICAJCX0gZWxzZSB7DQo+ICAjaWYgIWRlZmlu ZWQoQ0NfQVZYNTEyX1NVUFBPUlQpDQo+IEBAIC0xOTY1LDE3ICsxOTY1LDE3IEBAIHZpcnRpb19k ZXZfZGV2YXJnc19wYXJzZShzdHJ1Y3QgcnRlX2RldmFyZ3MgKmRldmFyZ3MsDQo+IHVpbnQzMl90 ICpzcGVlZCwgaW50ICp2ZWN0DQo+ICBzdGF0aWMgYm9vbA0KPiAgcnhfb2ZmbG9hZF9lbmFibGVk KHN0cnVjdCB2aXJ0aW9faHcgKmh3KQ0KPiAgew0KPiAtCXJldHVybiB2dHBjaV93aXRoX2ZlYXR1 cmUoaHcsIFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKSB8fA0KPiAtCQl2dHBjaV93aXRoX2ZlYXR1 cmUoaHcsIFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8fA0KPiAtCQl2dHBjaV93aXRoX2ZlYXR1 cmUoaHcsIFZJUlRJT19ORVRfRl9HVUVTVF9UU082KTsNCj4gKwlyZXR1cm4gdmlydGlvX3dpdGhf ZmVhdHVyZShodywgVklSVElPX05FVF9GX0dVRVNUX0NTVU0pIHx8DQo+ICsJCXZpcnRpb193aXRo X2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8fA0KPiArCQl2aXJ0aW9fd2l0 aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNik7DQo+ICB9DQo+IA0KPiAgc3Rh dGljIGJvb2wNCj4gIHR4X29mZmxvYWRfZW5hYmxlZChzdHJ1Y3QgdmlydGlvX2h3ICpodykNCj4g IHsNCj4gLQlyZXR1cm4gdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfQ1NVTSkg fHwNCj4gLQkJdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8 fA0KPiAtCQl2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOw0K PiArCXJldHVybiB2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfQ1NVTSkgfHwN Cj4gKwkJdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX05FVF9GX0hPU1RfVFNPNCkgfHwN Cj4gKwkJdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX05FVF9GX0hPU1RfVFNPNik7DQo+ ICB9DQo+IA0KPiAgLyoNCj4gQEAgLTIwNDgsMjkgKzIwNDgsMjkgQEAgdmlydGlvX2Rldl9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+IA0KPiAgCWlmICgocnhfb2ZmbG9hZHMg JiAoREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwNCj4gIAkJCSAgICBERVZfUlhfT0ZGTE9BRF9U Q1BfQ0tTVU0pKSAmJg0KPiAtCQkhdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0Zf R1VFU1RfQ1NVTSkpIHsNCj4gKwkJIXZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRf Rl9HVUVTVF9DU1VNKSkgew0KPiAgCQlQTURfRFJWX0xPRyhFUlIsDQo+ICAJCQkicnggY2hlY2tz dW0gbm90IGF2YWlsYWJsZSBvbiB0aGlzIGhvc3QiKTsNCj4gIAkJcmV0dXJuIC1FTk9UU1VQOw0K PiAgCX0NCj4gDQo+ICAJaWYgKChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8p ICYmDQo+IC0JCSghdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNP NCkgfHwNCj4gLQkJICF2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9HVUVTVF9U U082KSkpIHsNCj4gKwkJKCF2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfR1VF U1RfVFNPNCkgfHwNCj4gKwkJICF2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0Zf R1VFU1RfVFNPNikpKSB7DQo+ICAJCVBNRF9EUlZfTE9HKEVSUiwNCj4gIAkJCSJMYXJnZSBSZWNl aXZlIE9mZmxvYWQgbm90IGF2YWlsYWJsZSBvbiB0aGlzIGhvc3QiKTsNCj4gIAkJcmV0dXJuIC1F Tk9UU1VQOw0KPiAgCX0NCj4gDQo+ICAJLyogc3RhcnQgY29udHJvbCBxdWV1ZSAqLw0KPiAtCWlm ICh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9DVFJMX1ZRKSkNCj4gKwlpZiAo dmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX05FVF9GX0NUUkxfVlEpKQ0KPiAgCQl2aXJ0 aW9fZGV2X2NxX3N0YXJ0KGRldik7DQo+IA0KPiAgCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVApDQo+ICAJCWh3LT52bGFuX3N0cmlwID0gMTsNCj4gDQo+IC0JaWYg KChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKQ0KPiAtCSAgICAmJiAh dnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfQ1RSTF9WTEFOKSkgew0KPiArCWlm ICgocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikgJiYNCj4gKwkJCSF2 aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfQ1RSTF9WTEFOKSkgew0KPiAgCQlQ TURfRFJWX0xPRyhFUlIsDQo+ICAJCQkgICAgInZsYW4gZmlsdGVyaW5nIG5vdCBhdmFpbGFibGUg b24gdGhpcyBob3N0Iik7DQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gQEAgLTIwODcsMTIgKzIw ODcsMTIgQEAgdmlydGlvX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ ICAJCQlyZXR1cm4gLUVCVVNZOw0KPiAgCQl9DQo+IA0KPiAtCWlmICh2dHBjaV9wYWNrZWRfcXVl dWUoaHcpKSB7DQo+ICsJaWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZShodykpIHsNCj4gICNp ZiBkZWZpbmVkKFJURV9BUkNIX1g4Nl82NCkgJiYgZGVmaW5lZChDQ19BVlg1MTJfU1VQUE9SVCkN Cj4gIAkJaWYgKChody0+dXNlX3ZlY19yeCB8fCBody0+dXNlX3ZlY190eCkgJiYNCj4gIAkJICAg ICghcnRlX2NwdV9nZXRfZmxhZ19lbmFibGVkKFJURV9DUFVGTEFHX0FWWDUxMkYpIHx8DQo+IC0J CSAgICAgIXZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpIHx8DQo+IC0J CSAgICAgIXZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8xKSB8fA0KPiAr CQkgICAgICF2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9JTl9PUkRFUikgfHwNCj4g KwkJICAgICAhdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8xKSB8fA0K PiAgCQkgICAgIHJ0ZV92ZWN0X2dldF9tYXhfc2ltZF9iaXR3aWR0aCgpIDwgUlRFX1ZFQ1RfU0lN RF81MTIpKSB7DQo+ICAJCQlQTURfRFJWX0xPRyhJTkZPLA0KPiAgCQkJCSJkaXNhYmxlZCBwYWNr ZWQgcmluZyB2ZWN0b3JpemVkIHBhdGggZm9yIHJlcXVpcmVtZW50cw0KPiBub3QgbWV0Iik7DQo+ IEBAIC0yMTA1LDcgKzIxMDUsNyBAQCB2aXJ0aW9fZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikNCj4gICNlbmRpZg0KPiANCj4gIAkJaWYgKGh3LT51c2VfdmVjX3J4KSB7DQo+ IC0JCQlpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSkg ew0KPiArCQkJaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9NUkdfUlhC VUYpKSB7DQo+ICAJCQkJUE1EX0RSVl9MT0coSU5GTywNCj4gIAkJCQkJImRpc2FibGVkIHBhY2tl ZCByaW5nIHZlY3Rvcml6ZWQgcnggZm9yDQo+IG1yZ19yeGJ1ZiBlbmFibGVkIik7DQo+ICAJCQkJ aHctPnVzZV92ZWNfcnggPSAwOw0KPiBAQCAtMjExOCw3ICsyMTE4LDcgQEAgdmlydGlvX2Rldl9j b25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ICAJCQl9DQo+ICAJCX0NCj4gIAl9 IGVsc2Ugew0KPiAtCQlpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9JTl9PUkRF UikpIHsNCj4gKwkJaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0lOX09SREVS KSkgew0KPiAgCQkJaHctPnVzZV9pbm9yZGVyX3R4ID0gMTsNCj4gIAkJCWh3LT51c2VfaW5vcmRl cl9yeCA9IDE7DQo+ICAJCQlody0+dXNlX3ZlY19yeCA9IDA7DQo+IEBAIC0yMTMyLDcgKzIxMzIs NyBAQCB2aXJ0aW9fZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gIAkJ CQlody0+dXNlX3ZlY19yeCA9IDA7DQo+ICAJCQl9DQo+ICAjZW5kaWYNCj4gLQkJCWlmICh2dHBj aV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9NUkdfUlhCVUYpKSB7DQo+ICsJCQlpZiAo dmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX05FVF9GX01SR19SWEJVRikpIHsNCj4gIAkJ CQlQTURfRFJWX0xPRyhJTkZPLA0KPiAgCQkJCQkiZGlzYWJsZWQgc3BsaXQgcmluZyB2ZWN0b3Jp emVkIHJ4IGZvciBtcmdfcnhidWYNCj4gZW5hYmxlZCIpOw0KPiAgCQkJCWh3LT51c2VfdmVjX3J4 ID0gMDsNCj4gQEAgLTIzNTAsNyArMjM1MCw3IEBAIHZpcnRpb19kZXZfbGlua191cGRhdGUoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+IF9fcnRlX3VudXNlZCBpbnQgd2FpdF90b19jb21wbGV0 DQo+ICAJaWYgKCFody0+c3RhcnRlZCkgew0KPiAgCQlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJ TktfRE9XTjsNCj4gIAkJbGluay5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05VTV9OT05FOw0KPiAt CX0gZWxzZSBpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fTkVUX0ZfU1RBVFVTKSkg ew0KPiArCX0gZWxzZSBpZiAodmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX05FVF9GX1NU QVRVUykpIHsNCj4gIAkJUE1EX0lOSVRfTE9HKERFQlVHLCAiR2V0IGxpbmsgc3RhdHVzIGZyb20g aHciKTsNCj4gIAkJdnRwY2lfcmVhZF9kZXZfY29uZmlnKGh3LA0KPiAgCQkJCW9mZnNldG9mKHN0 cnVjdCB2aXJ0aW9fbmV0X2NvbmZpZywgc3RhdHVzKSwNCj4gQEAgLTIzODEsNyArMjM4MSw3IEBA IHZpcnRpb19kZXZfdmxhbl9vZmZsb2FkX3NldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgaW50 DQo+IG1hc2spDQo+IA0KPiAgCWlmIChtYXNrICYgRVRIX1ZMQU5fRklMVEVSX01BU0spIHsNCj4g IAkJaWYgKChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKSAmJg0KPiAtCQkJ CSF2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKSB7DQo+ICsJ CQkJIXZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKSB7DQo+ IA0KPiAgCQkJUE1EX0RSVl9MT0coTk9USUNFLA0KPiAgCQkJCSJ2bGFuIGZpbHRlcmluZyBub3Qg YXZhaWxhYmxlIG9uIHRoaXMgaG9zdCIpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb19wY2kuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmMNCj4gaW5k ZXggZGY2OWZjZGQ0NS4uOWMwN2ViYWQwMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb19wY2kuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5j DQo+IEBAIC0zNTYsNyArMzU2LDcgQEAgbW9kZXJuX3NldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlv X2h3ICpodywgdWludDY0X3QNCj4gZmVhdHVyZXMpDQo+ICBzdGF0aWMgaW50DQo+ICBtb2Rlcm5f ZmVhdHVyZXNfb2soc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ICB7DQo+IC0JaWYgKCF2dHBjaV93 aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX1ZFUlNJT05fMSkpIHsNCj4gKwlpZiAoIXZpcnRpb193 aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX1ZFUlNJT05fMSkpIHsNCj4gIAkJUE1EX0lOSVRfTE9H KEVSUiwgIlZlcnNpb24gMSsgcmVxdWlyZWQgd2l0aCBtb2Rlcm4gZGV2aWNlc1xuIik7DQo+ICAJ CXJldHVybiAtMTsNCj4gIAl9DQo+IEBAIC00NzksMTIgKzQ3OSwxMiBAQCBtb2Rlcm5fbm90aWZ5 X3F1ZXVlKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzdHJ1Y3QNCj4gdmlydHF1ZXVlICp2cSkNCj4g IHsNCj4gIAl1aW50MzJfdCBub3RpZnlfZGF0YTsNCj4gDQo+IC0JaWYgKCF2dHBjaV93aXRoX2Zl YXR1cmUoaHcsIFZJUlRJT19GX05PVElGSUNBVElPTl9EQVRBKSkgew0KPiArCWlmICghdmlydGlv X3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfTk9USUZJQ0FUSU9OX0RBVEEpKSB7DQo+ICAJCXJ0 ZV93cml0ZTE2KHZxLT52cV9xdWV1ZV9pbmRleCwgdnEtPm5vdGlmeV9hZGRyKTsNCj4gIAkJcmV0 dXJuOw0KPiAgCX0NCj4gDQo+IC0JaWYgKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0Zf UklOR19QQUNLRUQpKSB7DQo+ICsJaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19G X1JJTkdfUEFDS0VEKSkgew0KPiAgCQkvKg0KPiAgCQkgKiBCaXRbMDoxNV06IHZxIHF1ZXVlIGlu ZGV4DQo+ICAJCSAqIEJpdFsxNjozMF06IGF2YWlsIGluZGV4DQo+IEBAIC01NDgsMjEgKzU0OCw2 IEBAIHZ0cGNpX3dyaXRlX2Rldl9jb25maWcoc3RydWN0IHZpcnRpb19odyAqaHcsIHNpemVfdA0K PiBvZmZzZXQsDQo+ICAJVklSVElPX09QUyhodyktPndyaXRlX2Rldl9jZmcoaHcsIG9mZnNldCwg c3JjLCBsZW5ndGgpOw0KPiAgfQ0KPiANCj4gLXVpbnQ2NF90DQo+IC12dHBjaV9uZWdvdGlhdGVf ZmVhdHVyZXMoc3RydWN0IHZpcnRpb19odyAqaHcsIHVpbnQ2NF90IGhvc3RfZmVhdHVyZXMpDQo+ IC17DQo+IC0JdWludDY0X3QgZmVhdHVyZXM7DQo+IC0NCj4gLQkvKg0KPiAtCSAqIExpbWl0IG5l Z290aWF0ZWQgZmVhdHVyZXMgdG8gd2hhdCB0aGUgZHJpdmVyLCB2aXJ0cXVldWUsIGFuZA0KPiAt CSAqIGhvc3QgYWxsIHN1cHBvcnQuDQo+IC0JICovDQo+IC0JZmVhdHVyZXMgPSBob3N0X2ZlYXR1 cmVzICYgaHctPmd1ZXN0X2ZlYXR1cmVzOw0KPiAtCVZJUlRJT19PUFMoaHcpLT5zZXRfZmVhdHVy ZXMoaHcsIGZlYXR1cmVzKTsNCj4gLQ0KPiAtCXJldHVybiBmZWF0dXJlczsNCj4gLX0NCj4gLQ0K PiAgdm9pZA0KPiAgdnRwY2lfcmVzZXQoc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ICB7DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5oIGIvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb19wY2kuaA0KPiBpbmRleCA4YjA3YzRhMzY5Li5iMDJlNWMxNWY1IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5oDQo+ICsrKyBiL2RyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmgNCj4gQEAgLTc5LDgzICs3OSw2IEBAIHN0cnVjdCB2 aXJ0bmV0X2N0bDsNCj4gICAqLw0KPiAgI2RlZmluZSBWSVJUSU9fTUFYX0lORElSRUNUICgoaW50 KSAoUEFHRV9TSVpFIC8gMTYpKQ0KPiANCj4gLS8qIFRoZSBmZWF0dXJlIGJpdG1hcCBmb3Igdmly dGlvIG5ldCAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfQ1NVTQkwCS8qIEhvc3QgaGFuZGxl cyBwa3RzIHcvIHBhcnRpYWwgY3N1bSAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfR1VFU1Rf Q1NVTQkxCS8qIEd1ZXN0IGhhbmRsZXMgcGt0cyB3LyBwYXJ0aWFsDQo+IGNzdW0gKi8NCj4gLSNk ZWZpbmUgVklSVElPX05FVF9GX01UVQkzCS8qIEluaXRpYWwgTVRVIGFkdmljZS4gKi8NCj4gLSNk ZWZpbmUgVklSVElPX05FVF9GX01BQwk1CS8qIEhvc3QgaGFzIGdpdmVuIE1BQyBhZGRyZXNzLiAq Lw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNAk3CS8qIEd1ZXN0IGNhbiBoYW5k bGUgVFNPdjQgaW4uICovDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9HVUVTVF9UU082CTgJLyog R3Vlc3QgY2FuIGhhbmRsZSBUU092NiBpbi4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0dV RVNUX0VDTgk5CS8qIEd1ZXN0IGNhbiBoYW5kbGUgVFNPWzZdIHcvIEVDTiBpbi4NCj4gKi8NCj4g LSNkZWZpbmUgVklSVElPX05FVF9GX0dVRVNUX1VGTwkxMAkvKiBHdWVzdCBjYW4gaGFuZGxlIFVG TyBpbi4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0hPU1RfVFNPNAkxMQkvKiBIb3N0IGNh biBoYW5kbGUgVFNPdjQgaW4uICovDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYJ MTIJLyogSG9zdCBjYW4gaGFuZGxlIFRTT3Y2IGluLiAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVU X0ZfSE9TVF9FQ04JMTMJLyogSG9zdCBjYW4gaGFuZGxlIFRTT1s2XSB3LyBFQ04gaW4uDQo+ICov DQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9IT1NUX1VGTwkxNAkvKiBIb3N0IGNhbiBoYW5kbGUg VUZPIGluLiAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfTVJHX1JYQlVGCTE1CS8qIEhvc3Qg Y2FuIG1lcmdlIHJlY2VpdmUgYnVmZmVycy4NCj4gKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9G X1NUQVRVUwkxNgkvKiB2aXJ0aW9fbmV0X2NvbmZpZy5zdGF0dXMgYXZhaWxhYmxlICovDQo+IC0j ZGVmaW5lIFZJUlRJT19ORVRfRl9DVFJMX1ZRCTE3CS8qIENvbnRyb2wgY2hhbm5lbCBhdmFpbGFi bGUgKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0NUUkxfUlgJMTgJLyogQ29udHJvbCBjaGFu bmVsIFJYIG1vZGUgc3VwcG9ydCAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfQ1RSTF9WTEFO CTE5CS8qIENvbnRyb2wgY2hhbm5lbCBWTEFOIGZpbHRlcmluZyAqLw0KPiAtI2RlZmluZSBWSVJU SU9fTkVUX0ZfQ1RSTF9SWF9FWFRSQSAyMAkvKiBFeHRyYSBSWCBtb2RlIGNvbnRyb2wgc3VwcG9y dCAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX0ZfR1VFU1RfQU5OT1VOQ0UgMjEJLyogR3Vlc3Qg Y2FuIGFubm91bmNlIGRldmljZSBvbiB0aGUNCj4gLQkJCQkJICogbmV0d29yayAqLw0KPiAtI2Rl ZmluZSBWSVJUSU9fTkVUX0ZfTVEJCTIyCS8qIERldmljZSBzdXBwb3J0cyBSZWNlaXZlIEZsb3cN Cj4gLQkJCQkJICogU3RlZXJpbmcgKi8NCj4gLSNkZWZpbmUgVklSVElPX05FVF9GX0NUUkxfTUFD X0FERFIgMjMJLyogU2V0IE1BQyBhZGRyZXNzICovDQo+IC0NCj4gLS8qIERvIHdlIGdldCBjYWxs YmFja3Mgd2hlbiB0aGUgcmluZyBpcyBjb21wbGV0ZWx5IHVzZWQsIGV2ZW4gaWYgd2UndmUNCj4g LSAqIHN1cHByZXNzZWQgdGhlbT8gKi8NCj4gLSNkZWZpbmUgVklSVElPX0ZfTk9USUZZX09OX0VN UFRZCTI0DQo+IC0NCj4gLS8qIENhbiB0aGUgZGV2aWNlIGhhbmRsZSBhbnkgZGVzY3JpcHRvciBs YXlvdXQ/ICovDQo+IC0jZGVmaW5lIFZJUlRJT19GX0FOWV9MQVlPVVQJCTI3DQo+IC0NCj4gLS8q IFdlIHN1cHBvcnQgaW5kaXJlY3QgYnVmZmVyIGRlc2NyaXB0b3JzICovDQo+IC0jZGVmaW5lIFZJ UlRJT19SSU5HX0ZfSU5ESVJFQ1RfREVTQwkyOA0KPiAtDQo+IC0jZGVmaW5lIFZJUlRJT19GX1ZF UlNJT05fMQkJMzINCj4gLSNkZWZpbmUgVklSVElPX0ZfSU9NTVVfUExBVEZPUk0JMzMNCj4gLSNk ZWZpbmUgVklSVElPX0ZfUklOR19QQUNLRUQJCTM0DQo+IC0NCj4gLS8qDQo+IC0gKiBTb21lIFZp cnRJTyBmZWF0dXJlIGJpdHMgKGN1cnJlbnRseSBiaXRzIDI4IHRocm91Z2ggMzEpIGFyZQ0KPiAt ICogcmVzZXJ2ZWQgZm9yIHRoZSB0cmFuc3BvcnQgYmVpbmcgdXNlZCAoZWcuIHZpcnRpb19yaW5n KSwgdGhlDQo+IC0gKiByZXN0IGFyZSBwZXItZGV2aWNlIGZlYXR1cmUgYml0cy4NCj4gLSAqLw0K PiAtI2RlZmluZSBWSVJUSU9fVFJBTlNQT1JUX0ZfU1RBUlQgMjgNCj4gLSNkZWZpbmUgVklSVElP X1RSQU5TUE9SVF9GX0VORCAgIDM0DQo+IC0NCj4gLS8qDQo+IC0gKiBJbm9yZGVyIGZlYXR1cmUg aW5kaWNhdGVzIHRoYXQgYWxsIGJ1ZmZlcnMgYXJlIHVzZWQgYnkgdGhlIGRldmljZQ0KPiAtICog aW4gdGhlIHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhleSBoYXZlIGJlZW4gbWFkZSBhdmFpbGFibGUu DQo+IC0gKi8NCj4gLSNkZWZpbmUgVklSVElPX0ZfSU5fT1JERVIgMzUNCj4gLQ0KPiAtLyoNCj4g LSAqIFRoaXMgZmVhdHVyZSBpbmRpY2F0ZXMgdGhhdCBtZW1vcnkgYWNjZXNzZXMgYnkgdGhlIGRy aXZlciBhbmQgdGhlIGRldmljZQ0KPiAtICogYXJlIG9yZGVyZWQgaW4gYSB3YXkgZGVzY3JpYmVk IGJ5IHRoZSBwbGF0Zm9ybS4NCj4gLSAqLw0KPiAtI2RlZmluZSBWSVJUSU9fRl9PUkRFUl9QTEFU Rk9STSAzNg0KPiAtDQo+IC0vKg0KPiAtICogVGhpcyBmZWF0dXJlIGluZGljYXRlcyB0aGF0IHRo ZSBkcml2ZXIgcGFzc2VzIGV4dHJhIGRhdGEgKGJlc2lkZXMNCj4gLSAqIGlkZW50aWZ5aW5nIHRo ZSB2aXJ0cXVldWUpIGluIGl0cyBkZXZpY2Ugbm90aWZpY2F0aW9ucy4NCj4gLSAqLw0KPiAtI2Rl ZmluZSBWSVJUSU9fRl9OT1RJRklDQVRJT05fREFUQSAzOA0KPiAtDQo+IC0vKiBEZXZpY2Ugc2V0 IGxpbmtzcGVlZCBhbmQgZHVwbGV4ICovDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfRl9TUEVFRF9E VVBMRVggNjMNCj4gLQ0KPiAtLyogVGhlIEd1ZXN0IHB1Ymxpc2hlcyB0aGUgdXNlZCBpbmRleCBm b3Igd2hpY2ggaXQgZXhwZWN0cyBhbiBpbnRlcnJ1cHQNCj4gLSAqIGF0IHRoZSBlbmQgb2YgdGhl IGF2YWlsIHJpbmcuIEhvc3Qgc2hvdWxkIGlnbm9yZSB0aGUgYXZhaWwtPmZsYWdzIGZpZWxkLg0K PiAqLw0KPiAtLyogVGhlIEhvc3QgcHVibGlzaGVzIHRoZSBhdmFpbCBpbmRleCBmb3Igd2hpY2gg aXQgZXhwZWN0cyBhIGtpY2sNCj4gLSAqIGF0IHRoZSBlbmQgb2YgdGhlIHVzZWQgcmluZy4gR3Vl c3Qgc2hvdWxkIGlnbm9yZSB0aGUgdXNlZC0+ZmxhZ3MgZmllbGQuICovDQo+IC0jZGVmaW5lIFZJ UlRJT19SSU5HX0ZfRVZFTlRfSURYCQkyOQ0KPiAtDQo+IC0jZGVmaW5lIFZJUlRJT19ORVRfU19M SU5LX1VQCTEJLyogTGluayBpcyB1cCAqLw0KPiAtI2RlZmluZSBWSVJUSU9fTkVUX1NfQU5OT1VO Q0UJMgkvKiBBbm5vdW5jZW1lbnQgaXMgbmVlZGVkICovDQo+IC0NCj4gIC8qDQo+ICAgKiBNYXhp bXVtIG51bWJlciBvZiB2aXJ0cXVldWVzIHBlciBkZXZpY2UuDQo+ICAgKi8NCj4gQEAgLTI3MSwx NyArMTk0LDYgQEAgZW51bSB2aXJ0aW9fbXNpeF9zdGF0dXMgew0KPiAgCVZJUlRJT19NU0lYX0VO QUJMRUQgPSAyDQo+ICB9Ow0KPiANCj4gLXN0YXRpYyBpbmxpbmUgaW50DQo+IC12dHBjaV93aXRo X2ZlYXR1cmUoc3RydWN0IHZpcnRpb19odyAqaHcsIHVpbnQ2NF90IGJpdCkNCj4gLXsNCj4gLQly ZXR1cm4gKGh3LT5ndWVzdF9mZWF0dXJlcyAmICgxVUxMIDw8IGJpdCkpICE9IDA7DQo+IC19DQo+ IC0NCj4gLXN0YXRpYyBpbmxpbmUgaW50DQo+IC12dHBjaV9wYWNrZWRfcXVldWUoc3RydWN0IHZp cnRpb19odyAqaHcpDQo+IC17DQo+IC0JcmV0dXJuIHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklS VElPX0ZfUklOR19QQUNLRUQpOw0KPiAtfQ0KPiANCj4gIC8qDQo+ICAgKiBGdW5jdGlvbiBkZWNs YXJhdGlvbiBmcm9tIHZpcnRpb19wY2kuYw0KPiBAQCAtMjk0LDggKzIwNiw2IEBAIHZvaWQgdnRw Y2lfcmVpbml0X2NvbXBsZXRlKHN0cnVjdCB2aXJ0aW9faHcgKik7DQo+ICB1aW50OF90IHZ0cGNp X2dldF9zdGF0dXMoc3RydWN0IHZpcnRpb19odyAqKTsNCj4gIHZvaWQgdnRwY2lfc2V0X3N0YXR1 cyhzdHJ1Y3QgdmlydGlvX2h3ICosIHVpbnQ4X3QpOw0KPiANCj4gLXVpbnQ2NF90IHZ0cGNpX25l Z290aWF0ZV9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX2h3ICosIHVpbnQ2NF90KTsNCj4gLQ0KPiAg dm9pZCB2dHBjaV93cml0ZV9kZXZfY29uZmlnKHN0cnVjdCB2aXJ0aW9faHcgKiwgc2l6ZV90LCBj b25zdCB2b2lkICosIGludCk7DQo+IA0KPiAgdm9pZCB2dHBjaV9yZWFkX2Rldl9jb25maWcoc3Ry dWN0IHZpcnRpb19odyAqLCBzaXplX3QsIHZvaWQgKiwgaW50KTsNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcmluZy5oDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb19yaW5nLmgNCj4gaW5kZXggMGY2NTc0ZjY4NC4uMTdhNTZiMGE3MyAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yaW5nLmgNCj4gKysrIGIvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb19yaW5nLmgNCj4gQEAgLTEzMyw3ICsxMzMsNyBAQCB2cmluZ19zaXplKHN0 cnVjdCB2aXJ0aW9faHcgKmh3LCB1bnNpZ25lZCBpbnQgbnVtLA0KPiB1bnNpZ25lZCBsb25nIGFs aWduKQ0KPiAgew0KPiAgCXNpemVfdCBzaXplOw0KPiANCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1 ZXVlKGh3KSkgew0KPiArCWlmICh2aXJ0aW9fd2l0aF9wYWNrZWRfcXVldWUoaHcpKSB7DQo+ICAJ CXNpemUgPSBudW0gKiBzaXplb2Yoc3RydWN0IHZyaW5nX3BhY2tlZF9kZXNjKTsNCj4gIAkJc2l6 ZSArPSBzaXplb2Yoc3RydWN0IHZyaW5nX3BhY2tlZF9kZXNjX2V2ZW50KTsNCj4gIAkJc2l6ZSA9 IFJURV9BTElHTl9DRUlMKHNpemUsIGFsaWduKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fcnh0eC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4 LmMNCj4gaW5kZXggOTNmZTg1NmNiZC4uMTA5ODkxMThiMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb19yeHR4LmMNCj4gQEAgLTY4NSwxNCArNjg1LDE0IEBAIHZpcnRpb19kZXZfcnhfcXVldWVf c2V0dXBfZmluaXNoKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiB1aW50MTZfdCBxdWV1ZV9p ZHgpDQo+ICAJc3RydWN0IHJ0ZV9tYnVmICptOw0KPiAgCXVpbnQxNl90IGRlc2NfaWR4Ow0KPiAg CWludCBlcnJvciwgbmJ1ZnMsIGk7DQo+IC0JYm9vbCBpbl9vcmRlciA9IHZ0cGNpX3dpdGhfZmVh dHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpOw0KPiArCWJvb2wgaW5fb3JkZXIgPSB2aXJ0aW9f d2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9JTl9PUkRFUik7DQo+IA0KPiAgCVBNRF9JTklUX0ZV TkNfVFJBQ0UoKTsNCj4gDQo+ICAJLyogQWxsb2NhdGUgYmxhbmsgbWJ1ZnMgZm9yIHRoZSBlYWNo IHJ4IGRlc2NyaXB0b3IgKi8NCj4gIAluYnVmcyA9IDA7DQo+IA0KPiAtCWlmIChody0+dXNlX3Zl Y19yeCAmJiAhdnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiArCWlmIChody0+dXNlX3ZlY19y eCAmJiAhdmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiAgCQlmb3IgKGRlc2NfaWR4 ID0gMDsgZGVzY19pZHggPCB2cS0+dnFfbmVudHJpZXM7DQo+ICAJCSAgICAgZGVzY19pZHgrKykg ew0KPiAgCQkJdnEtPnZxX3NwbGl0LnJpbmcuYXZhaWwtPnJpbmdbZGVzY19pZHhdID0gZGVzY19p ZHg7DQo+IEBAIC03MTAsMTIgKzcxMCwxMiBAQCB2aXJ0aW9fZGV2X3J4X3F1ZXVlX3NldHVwX2Zp bmlzaChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gdWludDE2X3QgcXVldWVfaWR4KQ0KPiAg CQkJJnJ4dnEtPmZha2VfbWJ1ZjsNCj4gIAl9DQo+IA0KPiAtCWlmIChody0+dXNlX3ZlY19yeCAm JiAhdnRwY2lfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiArCWlmIChody0+dXNlX3ZlY19yeCAmJiAh dmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSkgew0KPiAgCQl3aGlsZSAodnEtPnZxX2ZyZWVf Y250ID49IFJURV9WSVJUSU9fVlBNRF9SWF9SRUFSTV9USFJFU0gpIHsNCj4gIAkJCXZpcnRpb19y eHFfcmVhcm1fdmVjKHJ4dnEpOw0KPiAgCQkJbmJ1ZnMgKz0gUlRFX1ZJUlRJT19WUE1EX1JYX1JF QVJNX1RIUkVTSDsNCj4gIAkJfQ0KPiAtCX0gZWxzZSBpZiAoIXZ0cGNpX3BhY2tlZF9xdWV1ZSh2 cS0+aHcpICYmIGluX29yZGVyKSB7DQo+ICsJfSBlbHNlIGlmICghdmlydGlvX3dpdGhfcGFja2Vk X3F1ZXVlKHZxLT5odykgJiYgaW5fb3JkZXIpIHsNCj4gIAkJaWYgKCghdmlydHF1ZXVlX2Z1bGwo dnEpKSkgew0KPiAgCQkJdWludDE2X3QgZnJlZV9jbnQgPSB2cS0+dnFfZnJlZV9jbnQ7DQo+ICAJ CQlzdHJ1Y3QgcnRlX21idWYgKnBrdHNbZnJlZV9jbnRdOw0KPiBAQCAtNzQxLDcgKzc0MSw3IEBA IHZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LA0KPiB1aW50MTZfdCBxdWV1ZV9pZHgpDQo+ICAJCQkJYnJlYWs7DQo+IA0KPiAgCQkJLyogRW5x dWV1ZSBhbGxvY2F0ZWQgYnVmZmVycyAqLw0KPiAtCQkJaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSh2 cS0+aHcpKQ0KPiArCQkJaWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiAg CQkJCWVycm9yID0gdmlydHF1ZXVlX2VucXVldWVfcmVjdl9yZWZpbGxfcGFja2VkKHZxLA0KPiAg CQkJCQkJJm0sIDEpOw0KPiAgCQkJZWxzZQ0KPiBAQCAtNzU0LDcgKzc1NCw3IEBAIHZpcnRpb19k ZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiB1aW50 MTZfdCBxdWV1ZV9pZHgpDQo+ICAJCQluYnVmcysrOw0KPiAgCQl9DQo+IA0KPiAtCQlpZiAoIXZ0 cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiArCQlpZiAoIXZpcnRpb193aXRoX3BhY2tlZF9x dWV1ZSh2cS0+aHcpKQ0KPiAgCQkJdnFfdXBkYXRlX2F2YWlsX2lkeCh2cSk7DQo+ICAJfQ0KPiAN Cj4gQEAgLTgyOSw4ICs4MjksOCBAQCB2aXJ0aW9fZGV2X3R4X3F1ZXVlX3NldHVwX2ZpbmlzaChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gDQo+ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0K PiANCj4gLQlpZiAoIXZ0cGNpX3BhY2tlZF9xdWV1ZShodykpIHsNCj4gLQkJaWYgKHZ0cGNpX3dp dGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpKQ0KPiArCWlmICghdmlydGlvX3dpdGhf cGFja2VkX3F1ZXVlKGh3KSkgew0KPiArCQlpZiAodmlydGlvX3dpdGhfZmVhdHVyZShodywgVklS VElPX0ZfSU5fT1JERVIpKQ0KPiAgCQkJdnEtPnZxX3NwbGl0LnJpbmcuZGVzY1t2cS0+dnFfbmVu dHJpZXMgLSAxXS5uZXh0ID0gMDsNCj4gIAl9DQo+IA0KPiBAQCAtODQ3LDcgKzg0Nyw3IEBAIHZp cnRpb19kaXNjYXJkX3J4YnVmKHN0cnVjdCB2aXJ0cXVldWUgKnZxLCBzdHJ1Y3QgcnRlX21idWYN Cj4gKm0pDQo+ICAJICogUmVxdWV1ZSB0aGUgZGlzY2FyZGVkIG1idWYuIFRoaXMgc2hvdWxkIGFs d2F5cyBiZQ0KPiAgCSAqIHN1Y2Nlc3NmdWwgc2luY2UgaXQgd2FzIGp1c3QgZGVxdWV1ZWQuDQo+ ICAJICovDQo+IC0JaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiArCWlmICh2aXJ0 aW9fd2l0aF9wYWNrZWRfcXVldWUodnEtPmh3KSkNCj4gIAkJZXJyb3IgPSB2aXJ0cXVldWVfZW5x dWV1ZV9yZWN2X3JlZmlsbF9wYWNrZWQodnEsICZtLCAxKTsNCj4gIAllbHNlDQo+ICAJCWVycm9y ID0gdmlydHF1ZXVlX2VucXVldWVfcmVjdl9yZWZpbGwodnEsICZtLCAxKTsNCj4gQEAgLTEyMDks NyArMTIwOSw3IEBAIHZpcnRpb19yZWN2X3BrdHNfaW5vcmRlcih2b2lkICpyeF9xdWV1ZSwNCj4g IAkJCSAoKGNoYXIgKilyeG0tPmJ1Zl9hZGRyICsgUlRFX1BLVE1CVUZfSEVBRFJPT00NCj4gIAkJ CSAtIGhkcl9zaXplKTsNCj4gDQo+IC0JCWlmICh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJ T19ORVRfRl9NUkdfUlhCVUYpKSB7DQo+ICsJCWlmICh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBW SVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSkgew0KPiAgCQkJc2VnX251bSA9IGhlYWRlci0+bnVtX2J1 ZmZlcnM7DQo+ICAJCQlpZiAoc2VnX251bSA9PSAwKQ0KPiAgCQkJCXNlZ19udW0gPSAxOw0KPiBA QCAtMTczNSw3ICsxNzM1LDcgQEAgdmlydGlvX3htaXRfcGt0c19wYWNrZWQodm9pZCAqdHhfcXVl dWUsIHN0cnVjdCBydGVfbWJ1Zg0KPiAqKnR4X3BrdHMsDQo+ICAJc3RydWN0IHZpcnRpb19odyAq aHcgPSB2cS0+aHc7DQo+ICAJdWludDE2X3QgaGRyX3NpemUgPSBody0+dnRuZXRfaGRyX3NpemU7 DQo+ICAJdWludDE2X3QgbmJfdHggPSAwOw0KPiAtCWJvb2wgaW5fb3JkZXIgPSB2dHBjaV93aXRo X2ZlYXR1cmUoaHcsIFZJUlRJT19GX0lOX09SREVSKTsNCj4gKwlib29sIGluX29yZGVyID0gdmly dGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfSU5fT1JERVIpOw0KPiANCj4gIAlpZiAodW5s aWtlbHkoaHctPnN0YXJ0ZWQgPT0gMCAmJiB0eF9wa3RzICE9IGh3LT5pbmplY3RfcGt0cykpDQo+ ICAJCXJldHVybiBuYl90eDsNCj4gQEAgLTE3NTQsOCArMTc1NCw4IEBAIHZpcnRpb194bWl0X3Br dHNfcGFja2VkKHZvaWQgKnR4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYNCj4gKip0eF9wa3RzLA0K PiAgCQlpbnQgY2FuX3B1c2ggPSAwLCB1c2VfaW5kaXJlY3QgPSAwLCBzbG90cywgbmVlZDsNCj4g DQo+ICAJCS8qIG9wdGltaXplIHJpbmcgdXNhZ2UgKi8NCj4gLQkJaWYgKCh2dHBjaV93aXRoX2Zl YXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQpIHx8DQo+IC0JCSAgICAgIHZ0cGNpX3dpdGhf ZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8xKSkgJiYNCj4gKwkJaWYgKCh2aXJ0aW9fd2l0 aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9BTllfTEFZT1VUKSB8fA0KPiArCQkgICAgICB2aXJ0aW9f d2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9WRVJTSU9OXzEpKSAmJg0KPiAgCQkgICAgcnRlX21i dWZfcmVmY250X3JlYWQodHhtKSA9PSAxICYmDQo+ICAJCSAgICBSVEVfTUJVRl9ESVJFQ1QodHht KSAmJg0KPiAgCQkgICAgdHhtLT5uYl9zZWdzID09IDEgJiYNCj4gQEAgLTE3NjMsNyArMTc2Myw3 IEBAIHZpcnRpb194bWl0X3BrdHNfcGFja2VkKHZvaWQgKnR4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21i dWYNCj4gKip0eF9wa3RzLA0KPiAgCQkgICAgcnRlX2lzX2FsaWduZWQocnRlX3BrdG1idWZfbXRv ZCh0eG0sIGNoYXIgKiksDQo+ICAJCQkgICBfX2FsaWdub2ZfXyhzdHJ1Y3QgdmlydGlvX25ldF9o ZHJfbXJnX3J4YnVmKSkpDQo+ICAJCQljYW5fcHVzaCA9IDE7DQo+IC0JCWVsc2UgaWYgKHZ0cGNp X3dpdGhfZmVhdHVyZShodywgVklSVElPX1JJTkdfRl9JTkRJUkVDVF9ERVNDKSAmJg0KPiArCQll bHNlIGlmICh2aXJ0aW9fd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fUklOR19GX0lORElSRUNUX0RF U0MpICYmDQo+ICAJCQkgdHhtLT5uYl9zZWdzIDwgVklSVElPX01BWF9UWF9JTkRJUkVDVCkNCj4g IAkJCXVzZV9pbmRpcmVjdCA9IDE7DQo+ICAJCS8qIEhvdyBtYW55IG1haW4gcmluZyBlbnRyaWVz IGFyZSBuZWVkZWQgdG8gdGhpcyBUeD8NCj4gQEAgLTE4MzUsOCArMTgzNSw4IEBAIHZpcnRpb194 bWl0X3BrdHModm9pZCAqdHhfcXVldWUsIHN0cnVjdCBydGVfbWJ1Zg0KPiAqKnR4X3BrdHMsIHVp bnQxNl90IG5iX3BrdHMpDQo+ICAJCWludCBjYW5fcHVzaCA9IDAsIHVzZV9pbmRpcmVjdCA9IDAs IHNsb3RzLCBuZWVkOw0KPiANCj4gIAkJLyogb3B0aW1pemUgcmluZyB1c2FnZSAqLw0KPiAtCQlp ZiAoKHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfQU5ZX0xBWU9VVCkgfHwNCj4gLQkJ ICAgICAgdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9WRVJTSU9OXzEpKSAmJg0KPiAr CQlpZiAoKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQpIHx8DQo+ ICsJCSAgICAgIHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX1ZFUlNJT05fMSkpICYm DQo+ICAJCSAgICBydGVfbWJ1Zl9yZWZjbnRfcmVhZCh0eG0pID09IDEgJiYNCj4gIAkJICAgIFJU RV9NQlVGX0RJUkVDVCh0eG0pICYmDQo+ICAJCSAgICB0eG0tPm5iX3NlZ3MgPT0gMSAmJg0KPiBA QCAtMTg0NCw3ICsxODQ0LDcgQEAgdmlydGlvX3htaXRfcGt0cyh2b2lkICp0eF9xdWV1ZSwgc3Ry dWN0IHJ0ZV9tYnVmDQo+ICoqdHhfcGt0cywgdWludDE2X3QgbmJfcGt0cykNCj4gIAkJICAgIHJ0 ZV9pc19hbGlnbmVkKHJ0ZV9wa3RtYnVmX210b2QodHhtLCBjaGFyICopLA0KPiAgCQkJCSAgIF9f YWxpZ25vZl9fKHN0cnVjdCB2aXJ0aW9fbmV0X2hkcl9tcmdfcnhidWYpKSkNCj4gIAkJCWNhbl9w dXNoID0gMTsNCj4gLQkJZWxzZSBpZiAodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fUklO R19GX0lORElSRUNUX0RFU0MpICYmDQo+ICsJCWVsc2UgaWYgKHZpcnRpb193aXRoX2ZlYXR1cmUo aHcsIFZJUlRJT19SSU5HX0ZfSU5ESVJFQ1RfREVTQykgJiYNCj4gIAkJCSB0eG0tPm5iX3NlZ3Mg PCBWSVJUSU9fTUFYX1RYX0lORElSRUNUKQ0KPiAgCQkJdXNlX2luZGlyZWN0ID0gMTsNCj4gDQo+ IEBAIC0xOTM3LDggKzE5MzcsOCBAQCB2aXJ0aW9feG1pdF9wa3RzX2lub3JkZXIodm9pZCAqdHhf cXVldWUsDQo+ICAJCWludCBzbG90czsNCj4gDQo+ICAJCS8qIG9wdGltaXplIHJpbmcgdXNhZ2Ug Ki8NCj4gLQkJaWYgKCh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlPVVQp IHx8DQo+IC0JCSAgICAgdnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9WRVJTSU9OXzEp KSAmJg0KPiArCQlpZiAoKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlP VVQpIHx8DQo+ICsJCSAgICAgdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lP Tl8xKSkgJiYNCj4gIAkJICAgICBydGVfbWJ1Zl9yZWZjbnRfcmVhZCh0eG0pID09IDEgJiYNCj4g IAkJICAgICBSVEVfTUJVRl9ESVJFQ1QodHhtKSAmJg0KPiAgCQkgICAgIHR4bS0+bmJfc2VncyA9 PSAxICYmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFj a2VkX2F2eC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZF9hdngu Yw0KPiBpbmRleCBhNmE0OWVjNDM5Li5jMjcyNzY2YTlmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFja2VkX2F2eC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fcnh0eF9wYWNrZWRfYXZ4LmMNCj4gQEAgLTIxMSwxNCArMjExLDE0IEBA IHZpcnRxdWV1ZV9lbnF1ZXVlX3NpbmdsZV9wYWNrZWRfdmVjKHN0cnVjdCB2aXJ0bmV0X3R4DQo+ ICp0eHZxLA0KPiAgCWludDE2X3QgbmVlZDsNCj4gDQo+ICAJLyogb3B0aW1pemUgcmluZyB1c2Fn ZSAqLw0KPiAtCWlmICgodnRwY2lfd2l0aF9mZWF0dXJlKGh3LCBWSVJUSU9fRl9BTllfTEFZT1VU KSB8fA0KPiAtCSAgICAgIHZ0cGNpX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lPTl8x KSkgJiYNCj4gKwlpZiAoKHZpcnRpb193aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19GX0FOWV9MQVlP VVQpIHx8DQo+ICsJICAgICAgdmlydGlvX3dpdGhfZmVhdHVyZShodywgVklSVElPX0ZfVkVSU0lP Tl8xKSkgJiYNCj4gIAkgICAgcnRlX21idWZfcmVmY250X3JlYWQodHhtKSA9PSAxICYmDQo+ICAJ ICAgIFJURV9NQlVGX0RJUkVDVCh0eG0pICYmDQo+ICAJICAgIHR4bS0+bmJfc2VncyA9PSAxICYm DQo+ICAJICAgIHJ0ZV9wa3RtYnVmX2hlYWRyb29tKHR4bSkgPj0gaGRyX3NpemUpDQo+ICAJCWNh bl9wdXNoID0gMTsNCj4gLQllbHNlIGlmICh2dHBjaV93aXRoX2ZlYXR1cmUoaHcsIFZJUlRJT19S SU5HX0ZfSU5ESVJFQ1RfREVTQykgJiYNCj4gKwllbHNlIGlmICh2aXJ0aW9fd2l0aF9mZWF0dXJl KGh3LCBWSVJUSU9fUklOR19GX0lORElSRUNUX0RFU0MpICYmDQo+ICAJCSB0eG0tPm5iX3NlZ3Mg PCBWSVJUSU9fTUFYX1RYX0lORElSRUNUKQ0KPiAgCQl1c2VfaW5kaXJlY3QgPSAxOw0KPiAgCS8q IEhvdyBtYW55IG1haW4gcmluZyBlbnRyaWVzIGFyZSBuZWVkZWQgdG8gdGhpcyBUeD8NCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFw LmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5j DQo+IGluZGV4IDc5Yjg0NDZmOGUuLmVhZGU3MDJjNWMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFwLmMNCj4gKysrIGIvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuYw0KPiBAQCAtMTYsNyAr MTYsNyBAQA0KPiANCj4gICNpbmNsdWRlICJ2aG9zdF9rZXJuZWxfdGFwLmgiDQo+ICAjaW5jbHVk ZSAiLi4vdmlydGlvX2xvZ3MuaCINCj4gLSNpbmNsdWRlICIuLi92aXJ0aW9fcGNpLmgiDQo+ICsj aW5jbHVkZSAiLi4vdmlydGlvLmgiDQo+IA0KPiAgaW50DQo+ICB2aG9zdF9rZXJuZWxfdGFwX3Nl dF9vZmZsb2FkKGludCBmZCwgdWludDY0X3QgZmVhdHVyZXMpDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gaW5kZXggMTQ0NjhkZGY1Mi4uZDA1NjEzYmEzYiAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jDQo+ ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlcl9ldGhkZXYuYw0KPiBAQCAtMTIy LDcgKzEyMiw3IEBAIHZpcnRpb191c2VyX3NlcnZlcl9yZWNvbm5lY3Qoc3RydWN0IHZpcnRpb191 c2VyX2RldiAqZGV2KQ0KPiAgCWRldi0+ZmVhdHVyZXMgJj0gZGV2LT5kZXZpY2VfZmVhdHVyZXM7 DQo+IA0KPiAgCS8qIEZvciBwYWNrZWQgcmluZywgcmVzZXR0aW5nIHF1ZXVlcyBpcyByZXF1aXJl ZCBpbiByZWNvbm5lY3Rpb24uICovDQo+IC0JaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZShodykgJiYN Cj4gKwlpZiAodmlydGlvX3dpdGhfcGFja2VkX3F1ZXVlKGh3KSAmJg0KPiAgCSAgIChvbGRfc3Rh dHVzICYgVklSVElPX0NPTkZJR19TVEFUVVNfRFJJVkVSX09LKSkgew0KPiAgCQlQTURfSU5JVF9M T0coTk9USUNFLCAiUGFja2V0cyBvbiB0aGUgZmx5IHdpbGwgYmUgZHJvcHBlZCINCj4gIAkJCQki IHdoZW4gcGFja2VkIHJpbmcgcmVjb25uZWN0aW5nLiIpOw0KPiBAQCAtNDIzLDcgKzQyMyw3IEBA IHZpcnRpb191c2VyX3NldHVwX3F1ZXVlKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzdHJ1Y3QNCj4g dmlydHF1ZXVlICp2cSkNCj4gIHsNCj4gIAlzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYgPSB2 aXJ0aW9fdXNlcl9nZXRfZGV2KGh3KTsNCj4gDQo+IC0JaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSho dykpDQo+ICsJaWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZShodykpDQo+ICAJCXZpcnRpb191 c2VyX3NldHVwX3F1ZXVlX3BhY2tlZCh2cSwgZGV2KTsNCj4gIAllbHNlDQo+ICAJCXZpcnRpb191 c2VyX3NldHVwX3F1ZXVlX3NwbGl0KHZxLCBkZXYpOw0KPiBAQCAtNDU2LDcgKzQ1Niw3IEBAIHZp cnRpb191c2VyX25vdGlmeV9xdWV1ZShzdHJ1Y3QgdmlydGlvX2h3ICpodywgc3RydWN0DQo+IHZp cnRxdWV1ZSAqdnEpDQo+ICAJc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2ID0gdmlydGlvX3Vz ZXJfZ2V0X2Rldihodyk7DQo+IA0KPiAgCWlmIChody0+Y3ZxICYmIChody0+Y3ZxLT52cSA9PSB2 cSkpIHsNCj4gLQkJaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiArCQlpZiAodmly dGlvX3dpdGhfcGFja2VkX3F1ZXVlKHZxLT5odykpDQo+ICAJCQl2aXJ0aW9fdXNlcl9oYW5kbGVf Y3FfcGFja2VkKGRldiwgdnEtPnZxX3F1ZXVlX2luZGV4KTsNCj4gIAkJZWxzZQ0KPiAgCQkJdmly dGlvX3VzZXJfaGFuZGxlX2NxKGRldiwgdnEtPnZxX3F1ZXVlX2luZGV4KTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0cXVldWUuYw0KPiBpbmRleCAyNzAyZTEyMGVlLi41OWEyY2I2NTk5IDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1ZXVlLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRxdWV1ZS5jDQo+IEBAIC0zMiw3ICszMiw3IEBAIHZpcnRxdWV1ZV9kZXRhY2hfdW51 c2VkKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgCWVuZCA9ICh2cS0+dnFfYXZhaWxfaWR4ICsg dnEtPnZxX2ZyZWVfY250KSAmICh2cS0+dnFfbmVudHJpZXMgLSAxKTsNCj4gDQo+ICAJZm9yIChp ZHggPSAwOyBpZHggPCB2cS0+dnFfbmVudHJpZXM7IGlkeCsrKSB7DQo+IC0JCWlmIChody0+dXNl X3ZlY19yeCAmJiAhdnRwY2lfcGFja2VkX3F1ZXVlKGh3KSAmJg0KPiArCQlpZiAoaHctPnVzZV92 ZWNfcnggJiYgIXZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZShodykgJiYNCj4gIAkJICAgIHR5cGUg PT0gVlRORVRfUlEpIHsNCj4gIAkJCWlmIChzdGFydCA8PSBlbmQgJiYgaWR4ID49IHN0YXJ0ICYm IGlkeCA8IGVuZCkNCj4gIAkJCQljb250aW51ZTsNCj4gQEAgLTEzNyw3ICsxMzcsNyBAQCB2aXJ0 cXVldWVfcnh2cV9mbHVzaChzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gIHsNCj4gIAlzdHJ1Y3Qg dmlydGlvX2h3ICpodyA9IHZxLT5odzsNCj4gDQo+IC0JaWYgKHZ0cGNpX3BhY2tlZF9xdWV1ZSho dykpDQo+ICsJaWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZShodykpDQo+ICAJCXZpcnRxdWV1 ZV9yeHZxX2ZsdXNoX3BhY2tlZCh2cSk7DQo+ICAJZWxzZQ0KPiAgCQl2aXJ0cXVldWVfcnh2cV9m bHVzaF9zcGxpdCh2cSk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1 ZXVlLmggYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydHF1ZXVlLmgNCj4gaW5kZXggOWQyMDg5NzY2 Yi4uNmMxZGY2ZjhlNSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRxdWV1 ZS5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0cXVldWUuaA0KPiBAQCAtMTIsNyAr MTIsNyBAQA0KPiAgI2luY2x1ZGUgPHJ0ZV9tZW1wb29sLmg+DQo+ICAjaW5jbHVkZSA8cnRlX25l dC5oPg0KPiANCj4gLSNpbmNsdWRlICJ2aXJ0aW9fcGNpLmgiDQo+ICsjaW5jbHVkZSAidmlydGlv LmgiDQo+ICAjaW5jbHVkZSAidmlydGlvX3JpbmcuaCINCj4gICNpbmNsdWRlICJ2aXJ0aW9fbG9n cy5oIg0KPiAgI2luY2x1ZGUgInZpcnRpb19yeHR4LmgiDQo+IEBAIC0zODYsNyArMzg2LDcgQEAg dmlydHF1ZXVlX2Rpc2FibGVfaW50cl9zcGxpdChzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gIHN0 YXRpYyBpbmxpbmUgdm9pZA0KPiAgdmlydHF1ZXVlX2Rpc2FibGVfaW50cihzdHJ1Y3QgdmlydHF1 ZXVlICp2cSkNCj4gIHsNCj4gLQlpZiAodnRwY2lfcGFja2VkX3F1ZXVlKHZxLT5odykpDQo+ICsJ aWYgKHZpcnRpb193aXRoX3BhY2tlZF9xdWV1ZSh2cS0+aHcpKQ0KPiAgCQl2aXJ0cXVldWVfZGlz YWJsZV9pbnRyX3BhY2tlZCh2cSk7DQo+ICAJZWxzZQ0KPiAgCQl2aXJ0cXVldWVfZGlzYWJsZV9p bnRyX3NwbGl0KHZxKTsNCj4gQEAgLTQyMCw3ICs0MjAsNyBAQCB2aXJ0cXVldWVfZW5hYmxlX2lu dHJfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqdnEpDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQNCj4g IHZpcnRxdWV1ZV9lbmFibGVfaW50cihzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gIHsNCj4gLQlp ZiAodnRwY2lfcGFja2VkX3F1ZXVlKHZxLT5odykpDQo+ICsJaWYgKHZpcnRpb193aXRoX3BhY2tl ZF9xdWV1ZSh2cS0+aHcpKQ0KPiAgCQl2aXJ0cXVldWVfZW5hYmxlX2ludHJfcGFja2VkKHZxKTsN Cj4gIAllbHNlDQo+ICAJCXZpcnRxdWV1ZV9lbmFibGVfaW50cl9zcGxpdCh2cSk7DQo+IEBAIC01 NzMsNyArNTczLDcgQEAgdmlydHF1ZXVlX25vdGlmeShzdHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4g IAl1c2VkX2lkeCA9IF9fYXRvbWljX2xvYWRfbigmKHZxKS0+dnFfc3BsaXQucmluZy51c2VkLT5p ZHgsIFwNCj4gIAkJCQkgICBfX0FUT01JQ19SRUxBWEVEKTsgXA0KPiAgCW51c2VkID0gKHVpbnQx Nl90KSh1c2VkX2lkeCAtICh2cSktPnZxX3VzZWRfY29uc19pZHgpOyBcDQo+IC0JaWYgKHZ0cGNp X3BhY2tlZF9xdWV1ZSgodnEpLT5odykpIHsgXA0KPiArCWlmICh2aXJ0aW9fd2l0aF9wYWNrZWRf cXVldWUoKHZxKS0+aHcpKSB7IFwNCj4gIAkJUE1EX0lOSVRfTE9HKERFQlVHLCBcDQo+ICAJCSJW UTogLSBzaXplPSVkOyBmcmVlPSVkOyB1c2VkX2NvbnNfaWR4PSVkOyBhdmFpbF9pZHg9JWQ7IiBc DQo+ICAJCSIgY2FjaGVkX2ZsYWdzPTB4JXg7IHVzZWRfd3JhcF9jb3VudGVyPSVkIiwgXA0KPiAt LQ0KPiAyLjI5LjINCg0K