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 7F97AA052A; Tue, 22 Dec 2020 09:14:34 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 55343CA74; Tue, 22 Dec 2020 09:14:33 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 3CB09CA6A for ; Tue, 22 Dec 2020 09:14:31 +0100 (CET) IronPort-SDR: R1cTJ+JovnX4w/OrIzqkKSbycS0pCW0lMryuM1NAORioL7dN5ZX0VljlQVY9r02e85o83YuQRW eqmg4jncb4iw== X-IronPort-AV: E=McAfee;i="6000,8403,9842"; a="155627061" X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="155627061" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Dec 2020 00:14:29 -0800 IronPort-SDR: NVNfc3o8NCgPtpRhQNYSYG6g/cfzdepyNa4y0kcjs0rDEY/6IbzPvruuCuYEqsghGKy4A2jpAF AsqKkp3mVqWQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="389828050" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga004.fm.intel.com with ESMTP; 22 Dec 2020 00:14:29 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 22 Dec 2020 00:14:28 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) 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, 22 Dec 2020 00:14:28 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) 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, 22 Dec 2020 00:14:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VTCizVfHQ4yu198ZwYJvpy9IdNeXXRuZXaG87vEedMGiw99INjK+Mrx3CrTKlQbBBO9djCigu2GETo9TW3cduPE8DI3YRE98TwR9HxNWdg1cmMKwhrxEJ0I7iTkccnuzxA9FvF1t2GIyseaegAOje9JEdOKBmRIS4O94CFoyGChE1ZsZhXySgzlHGUxHxhsjAkL6GIpLaD9aBxNy9uqZjWXQcRgey+L5jRBfmlBwSgdH2yJ8pmhVJzNXDi+ITI6e/cwjV0mmBZ+jYpe9qxEQBk4U2oSY5bl59JSXOIOCAc9AbDoaPh51ayllkB7dyHInqmcZoUHG9/LVjSMFIU+XnQ== 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=N1W5A79VaiYSDrQ5em7WVj2Mb8ppnIR8EL2I7wvVDX0=; b=i/sIlOAiw2bgsgnXS+sxpEnRxlQ1u12dtgF4YZ5eRFl+WD8Vg0hH7JylQ8XPm67JCECYJN7eGFPQazvf3UOTaNFVcIQGRLLiS9Cjk1nbl3lHosWLuvqLm8Ghf+c4atKg3HtRoG9YQxjjI+Uopq66OzQNVizU018hBB6sWat7xCCYyKlm/3yrP/QBGGoFEQ5isKyqsC4zvNJ8zYSS9BxUbflHY4BIM++n1vDaHhJsYWUVj/a+9WnmVW95SylNk73zsczmc42ZCtRFsrKlsyPQBp1Wc+nwvx6feOCyDJEpCR0XF0cpV1T+qnysiIyGZ/GE3SNv6WdOiRL+WHvJWNpULQ== 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=N1W5A79VaiYSDrQ5em7WVj2Mb8ppnIR8EL2I7wvVDX0=; b=EMbI8pSqD8GCH3fd2TuJp5PJoK5Yibvpu28ojeikWpLLS7MRM6K0nM48SZ5hSlXr9uDmnl0pYSXubZCRAnEIIti93AJvHdswvkfTiy8AaIHHP/ONWZWafn+sui5Q7O5zRvYmNKEnfAN2a6KS3qr4Y3h9BEzRA72MdyZz1EAnkO8= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4725.namprd11.prod.outlook.com (2603:10b6:208:263::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.29; Tue, 22 Dec 2020 08:14:27 +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.3676.033; Tue, 22 Dec 2020 08:14:27 +0000 From: "Xia, Chenbo" To: "Wu, Jingjing" , "dev@dpdk.org" CC: "Xing, Beilei" , "Lu, Xiuchun" Thread-Topic: [PATCH v1 2/2] net/iavf: introduce iavf driver on vfio-user client Thread-Index: AQHW1hYsYuqQXjRNrU27bg2mWTwcP6oCx8mA Date: Tue, 22 Dec 2020 08:14:26 +0000 Message-ID: References: <20201219143816.64174-1-jingjing.wu@intel.com> <20201219143816.64174-3-jingjing.wu@intel.com> In-Reply-To: <20201219143816.64174-3-jingjing.wu@intel.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.39] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0238c685-4e87-469e-7a73-08d8a6519993 x-ms-traffictypediagnostic: MN2PR11MB4725: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:569; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: i8bIV0lhc4ls7aV+3mH4gPY/ey7A6tyOIMNcjkmrgdd5xBkoqlabAIKdO7US9Knk4K+lcnMc8OSMFA0qc0pADltt/RvvufjyKXQ3csi0TDqpvB/qE1IgxzOdOey+rKuJl6HflC7hLfxSIL5u84PpLhXLVPDg57NIiJrjhDW43yoqwzMUKyZxmNuFRb+zXgUwB+p91BcGOdyVGAJxOuC+IydA18LxLWSAJRuKaiQpiPHlj2/YzfA4wM+DfoMdYFrjSCFVyY+F1rbz+CQJiYsBsJkEG4N4NENDjPKJU7f2fixjFCEA843l3siRkquKZX16zxNfJM3m4+chD56ru9rWBpfW1uCFnaSo+EGSoqhxR7NbQ0vUaZPq4uEjk8A01/yamRVK2+afoBKNDwuyOkTCyw== 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)(396003)(39860400002)(376002)(346002)(136003)(366004)(8676002)(52536014)(83380400001)(53546011)(9686003)(6506007)(8936002)(107886003)(55016002)(33656002)(478600001)(71200400001)(5660300002)(66476007)(86362001)(54906003)(316002)(64756008)(66946007)(66446008)(66556008)(110136005)(26005)(30864003)(7696005)(76116006)(186003)(2906002)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UC9KVk15UER6cUxUU3B1Ti9qUHdCclkrdnJrZk92bW13NGx5VHlQUFZxbTND?= =?utf-8?B?Vm13aGZ2TDM0Nk9nU0tYTkVPRlRqZGw2NjJtc0U3SkRlaDhNYjUwNjBzcHlj?= =?utf-8?B?akJZSnNvMDk3WVpvUDZJUWZ2VXZBaS9zeGhONkwvV1Y3NlJYZlNEaVcyQThr?= =?utf-8?B?c2pyZjBqLzZBUUYzODJ0c0lhRXdZaXFDcDhqcTVMSWlaVkxHMHlCaVJhaXYz?= =?utf-8?B?TzJ4OVlCbDdtbmgreTR0TkhIQkh6QjEvMmJXWGx3K016ZzFqQVdyMnZodHdR?= =?utf-8?B?K1FDUDdYbTE1K3ZSTW53M3QxZ0pVTnF1RDZFZHlLd1VINUs1bVBNZXJPbklm?= =?utf-8?B?TTh4S2lQY1h1LzNUSXV0S0w4VDBhbVZsNGw5RCs3bWJTSnhIcmwvWkgxNFow?= =?utf-8?B?R05EKzZaNHRSVkthTXNPeGxVc0VkbFBVajdQNXVZQmRpLzk5U2tWdmlkOHlF?= =?utf-8?B?ZGpjZGtlekZ6M1dIN3ZoUG5zd2poZ1d2M3lNYWE4Z0thZDV2aS9jOElRaWFF?= =?utf-8?B?eUp4V3FWcldLY1g3SmNnZlFEVHowOThWNEttSzBiNGgvbUhJTGFYOVdzYVdW?= =?utf-8?B?cm1SaEJTcDlnamYycFZSeFpDU21rNzBhbXFzWkRCcUxIM2FBUFhQTmo5RktE?= =?utf-8?B?Y3RqN0FoQUlIcE1xWEVGSjhvRVhzdzlHSE5ZaHAvcU1MT1J0L0VKSlE3bjFa?= =?utf-8?B?WXpSYVhDU0UrdWNORFJsZ0cxRXludFVaeW1oNmUydVkyRzVwNzU2a2NIM3h1?= =?utf-8?B?blhTY3l6d096NTBjZzZXR2tLWHdNbDRTQW9pQm5KZmR0MThLcWFoZDEzditR?= =?utf-8?B?MitnMmZ1Z0JUK2NpWlEyc1ZJQ2NFanB5RmY2RzQra09tN3U2UlpSdnc3Z3NJ?= =?utf-8?B?L0R1UFNMaGM1QU9uMnJYdlpEOHhJQjRhdVJZWEVzUVNleitaUm5sUGlBOTVm?= =?utf-8?B?ZmxuVkR6dTV0ZHllOFk1V0kwSmJkaGZGRzd2U1BsV2RweW1ZZGZTSXU2aVNk?= =?utf-8?B?OUxyWk1YQlJsVm9BeXRTUHlVN0JuSWNyM2RrdWhiaUJ2U2pRS0tQRmpjUmZV?= =?utf-8?B?eUpJRjNoUFR6T3JhTHFGNFFNMDgxcU5lLytrYVJpNE1sUEVVaU9qU2dHbS9N?= =?utf-8?B?MXFrWmRjaXRCdElxaTdPempGSS94VFVEQ1NWSHRDbjZVcjJTQWc2cU84ZHR1?= =?utf-8?B?bUg0R0RpMjEvTjdxN0dubGRibXJ1NVRWYUUzMlJZbGFmQk1WSDNLdkJkelA4?= =?utf-8?B?SWFLQ0FkUXRvNlhkVEdzczNVdmQramowYWR5Vks1Nk0yeTI3WmRzTURDaTZm?= =?utf-8?Q?PZYT+zbJ6LoVc=3D?= 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: 0238c685-4e87-469e-7a73-08d8a6519993 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2020 08:14:26.9817 (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: q00wmkkMN53Lv1Ll/h9IhgIy7DpWBA1E7gpfyfFcoxYwe/iPxjWPshcSH3giXHnqO2iZiy2dSGqbztkU59JDTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4725 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 2/2] net/iavf: introduce iavf driver on vfio-user client 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" SGkgSmluZ2ppbmcsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV3Us IEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+DQo+IFNlbnQ6IFNhdHVyZGF5LCBEZWNl bWJlciAxOSwgMjAyMCAxMDozOCBQTQ0KPiBUbzogZGV2QGRwZGsub3JnDQo+IENjOiBXdSwgSmlu Z2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdA aW50ZWwuY29tPjsNCj4gWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgTHUsIFhp dWNodW4gPHhpdWNodW4ubHVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjEgMi8yXSBu ZXQvaWF2ZjogaW50cm9kdWNlIGlhdmYgZHJpdmVyIG9uIHZmaW8tdXNlciBjbGllbnQNCj4gDQo+ IFRoaXMgcGF0Y2ggYWRkIGEgbmV3IG5ldCBkcml2ZXIgYmFzZWQgb24gdmRldiBhYnN0cmFjdGlv biwNCj4gaS5lLiBpYXZmX2NsaWVudF9ldGhkZXYuYy4gSXQgaXMgdXNpbmcgY29tbW9uIGlhdmYg ZnVuY3Rpb25zDQo+IHRvIHRhbGsgd2l0aCBFbXVsYXRlZCBwY2kgaW50ZXJmYWNlcyBiYXNlZCBv biB2ZmlvLXVzZXIuDQo+IA0KPiAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgICAg IHwgLS0tLS0tLS0tLS0tLS0tLS0tIHwNCj4gICAgICAgfCB8ICBpYXZmIGRyaXZlciAgIHwgfC0t LS0+IChpYXZmX2NsaWVudF9ldGhkZXYuYykNCj4gICAgICAgfCAtLS0tLS0tLS0tLS0tLS0tLS0g fA0KPiAgICAgICB8IC0tLS0tLS0tLS0tLS0tLS0tLSB8DQo+ICAgICAgIHwgfCBkZXZpY2UgZW11 bGF0ZSB8IHwNCj4gICAgICAgfCB8IHZmaW8tdXNlciBhZGFwdHwgfA0KPiAgICAgICB8IC0tLS0t LS0tLS0tLS0tLS0tLSB8DQo+ICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICAgICAg ICAgICAgICAgIHwNCj4gICAgICAgICAgICAgICAgIHwNCj4gICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAgICAgICB8ICAgICAgdmZpby11c2VyICAgICB8DQo+ICAgICAgIHwgICAgICAg Y2xpZW50ICAgICAgIHwNCj4gICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiANCj4gU2ln bmVkLW9mZi1ieTogSmluZ2ppbmcgV3UgPGppbmdqaW5nLnd1QGludGVsLmNvbT4NCj4gLS0tDQo+ ICBkcml2ZXJzL2NvbW1vbi9pYXZmL2lhdmZfcHJvdG90eXBlLmggIHwgICAxICsNCj4gIGRyaXZl cnMvY29tbW9uL2lhdmYvdmVyc2lvbi5tYXAgICAgICAgfCAgIDEgKw0KPiAgZHJpdmVycy9uZXQv aWF2Zi9pYXZmLmggICAgICAgICAgICAgICB8ICAxOCArLQ0KPiAgZHJpdmVycy9uZXQvaWF2Zi9p YXZmX2NsaWVudF9ldGhkZXYuYyB8IDI5OCArKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAg ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jICAgICAgICB8ICAyNiArLS0NCj4gIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMgICAgICAgICAgfCAgMjMgKy0NCj4gIGRyaXZlcnMvbmV0 L2lhdmYvbWVzb24uYnVpbGQgICAgICAgICAgfCAgIDEgKw0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAz NDcgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2NsaWVudF9ldGhkZXYuYw0KPiANCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvY29tbW9uL2lhdmYvaWF2Zl9wcm90b3R5cGUuaA0KPiBiL2RyaXZlcnMvY29tbW9u L2lhdmYvaWF2Zl9wcm90b3R5cGUuaA0KPiBpbmRleCBmMzRlNzdkYjBmLi4zOTk4ZDI2ZGMwIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NvbW1vbi9pYXZmL2lhdmZfcHJvdG90eXBlLmgNCj4gKysr IGIvZHJpdmVycy9jb21tb24vaWF2Zi9pYXZmX3Byb3RvdHlwZS5oDQo+IEBAIC04Myw2ICs4Myw3 IEBAIHZvaWQgaWF2Zl9kZXN0cm95X3NwaW5sb2NrKHN0cnVjdCBpYXZmX3NwaW5sb2NrICpzcCk7 DQo+ICBfX3J0ZV9pbnRlcm5hbA0KPiAgdm9pZCBpYXZmX3ZmX3BhcnNlX2h3X2NvbmZpZyhzdHJ1 Y3QgaWF2Zl9odyAqaHcsDQo+ICAJCQkgICAgIHN0cnVjdCB2aXJ0Y2hubF92Zl9yZXNvdXJjZSAq bXNnKTsNCj4gK19fcnRlX2ludGVybmFsDQo+ICBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfdmZfcmVz ZXQoc3RydWN0IGlhdmZfaHcgKmh3KTsNCj4gIF9fcnRlX2ludGVybmFsDQo+ICBlbnVtIGlhdmZf c3RhdHVzIGlhdmZfYXFfc2VuZF9tc2dfdG9fcGYoc3RydWN0IGlhdmZfaHcgKmh3LA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9jb21tb24vaWF2Zi92ZXJzaW9uLm1hcCBiL2RyaXZlcnMvY29tbW9u L2lhdmYvdmVyc2lvbi5tYXANCj4gaW5kZXggODgwODc3OWFiNy4uNGRjMmQ0MjE5NiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9jb21tb24vaWF2Zi92ZXJzaW9uLm1hcA0KPiArKysgYi9kcml2ZXJz L2NvbW1vbi9pYXZmL3ZlcnNpb24ubWFwDQo+IEBAIC03LDYgKzcsNyBAQCBJTlRFUk5BTCB7DQo+ ICAJaWF2Zl9zZXRfbWFjX3R5cGU7DQo+ICAJaWF2Zl9zaHV0ZG93bl9hZG1pbnE7DQo+ICAJaWF2 Zl92Zl9wYXJzZV9od19jb25maWc7DQo+ICsJaWF2Zl92Zl9yZXNldDsNCj4gIAljbGllbnRfdmZp b191c2VyX3NldHVwOw0KPiAgCWNsaWVudF92ZmlvX3VzZXJfZ2V0X2Jhcl9hZGRyOw0KPiAgCWlh dmZfd3JpdGVfYWRkcjsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zi5oIGIv ZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmgNCj4gaW5kZXggNmQ1OTEyZDhjMS4uYzM0Zjk3MTcyMSAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmgNCj4gKysrIGIvZHJpdmVycy9u ZXQvaWF2Zi9pYXZmLmgNCj4gQEAgLTE5NSw3ICsxOTUsMTAgQEAgc3RydWN0IGlhdmZfYWRhcHRl ciB7DQo+ICAJc3RydWN0IGlhdmZfaHcgaHc7DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2Ow0KPiAgCXN0cnVjdCBpYXZmX2luZm8gdmY7DQo+IC0NCj4gKyNpZmRlZiBSVEVfTElCUlRF X0lBVkZfQ0xJRU5UDQo+ICsJLyogdXNlZCBmb3IgYXZmX2NsaWVudCBkcml2ZXIgKi8NCj4gKwlz dHJ1Y3QgdmZpb19kZXZpY2UgKnVzZXJfZGV2Ow0KPiArI2VuZGlmDQo+ICAJYm9vbCByeF9idWxr X2FsbG9jX2FsbG93ZWQ7DQo+ICAJLyogRm9yIHZlY3RvciBQTUQgKi8NCj4gIAlib29sIHJ4X3Zl Y19hbGxvd2VkOw0KPiBAQCAtMjMxLDYgKzIzNCwxNiBAQCBpYXZmX2luaXRfYWRtaW5xX3BhcmFt ZXRlcihzdHJ1Y3QgaWF2Zl9odyAqaHcpDQo+ICAJaHctPmFxLmFzcV9idWZfc2l6ZSA9IElBVkZf QVFfQlVGX1NaOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiAraWF2Zl9kaXNh YmxlX2lycTAoc3RydWN0IGlhdmZfaHcgKmh3KQ0KPiArew0KPiArCS8qIERpc2FibGUgYWxsIGlu dGVycnVwdCB0eXBlcyAqLw0KPiArCUlBVkZfV1JJVEVfUkVHKGh3LCBJQVZGX1ZGSU5UX0lDUjBf RU5BMSwgMCk7DQo+ICsJSUFWRl9XUklURV9SRUcoaHcsIElBVkZfVkZJTlRfRFlOX0NUTDAxLA0K PiArCQkgICAgICAgSUFWRl9WRklOVF9EWU5fQ1RMMDFfSVRSX0lORFhfTUFTSyk7DQo+ICsJSUFW Rl9XUklURV9GTFVTSChodyk7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbmxpbmUgdWludDE2X3QN Cj4gIGlhdmZfY2FsY19pdHJfaW50ZXJ2YWwoaW50MTZfdCBpbnRlcnZhbCkNCj4gIHsNCj4gQEAg LTI4NCw2ICsyOTcsOSBAQCBfYXRvbWljX3NldF9jbWQoc3RydWN0IGlhdmZfaW5mbyAqdmYsIGVu dW0gdmlydGNobmxfb3BzDQo+IG9wcykNCj4gIAlyZXR1cm4gIXJldDsNCj4gIH0NCj4gDQo+ICtl eHRlcm4gY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIGlhdmZfZXRoX2Rldl9vcHM7DQo+ICsNCj4g K2ludCBpYXZmX2luaXRfdmYoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiAgaW50IGlhdmZf Y2hlY2tfYXBpX3ZlcnNpb24oc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcik7DQo+ICBpbnQg aWF2Zl9nZXRfdmZfcmVzb3VyY2Uoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcik7DQo+ICB2 b2lkIGlhdmZfaGFuZGxlX3ZpcnRjaG5sX21zZyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pYXZmL2lhdmZfY2xpZW50X2V0aGRldi5jDQo+IGIv ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2NsaWVudF9ldGhkZXYuYw0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi4wM2Y3NTljNzYxDQo+IC0tLSAvZGV2L251bGwNCj4g KysrIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2NsaWVudF9ldGhkZXYuYw0KPiBAQCAtMCwwICsx LDI5OCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiAr ICogQ29weXJpZ2h0KGMpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqLw0KPiArDQo+ICsj aW5jbHVkZSA8ZXJybm8uaD4NCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gKyNpbmNsdWRlIDxz dHJpbmcuaD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gKyNpbmNsdWRlIDxy dGVfZXRoZXIuaD4NCj4gKyNpbmNsdWRlIDxydGVfZXRoZGV2X2RyaXZlci5oPg0KPiArI2luY2x1 ZGUgPHJ0ZV9ldGhkZXZfdmRldi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9hbGFybS5oPg0KPiArI2lu Y2x1ZGUgPHJ0ZV9idXNfdmRldi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9tYWxsb2MuaD4NCj4gKyNp bmNsdWRlIDx2ZmlvX3VzZXIvdmZpb191c2VyX3BjaS5oPg0KPiArDQo+ICsjaW5jbHVkZSAiaWF2 Zi5oIg0KPiArI2luY2x1ZGUgImlhdmZfcnh0eC5oIg0KPiArDQo+ICtzdGF0aWMgaW50IGlhdmZf Y2xpZW50X2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+ICtzdGF0aWMgaW50 IGlhdmZfY2xpZW50X2Rldl9yZXNldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+ICsNCj4g Ky8qIHNldCBpYXZmX2NsaWVudF9kZXZfb3BzIHRvIGlhdmYncyBieSBkZWZhdWx0ICovDQo+ICtz dGF0aWMgc3RydWN0IGV0aF9kZXZfb3BzIGlhdmZfY2xpZW50X2V0aF9kZXZfb3BzOw0KPiArDQo+ ICtzdGF0aWMgY29uc3QgY2hhciAqdmFsaWRfYXJnc1tdID0gew0KPiArI2RlZmluZSBBVkZfQ0xJ RU5UX0FSR19QQVRIICAgICAgICAgICAicGF0aCINCj4gKwlBVkZfQ0xJRU5UX0FSR19QQVRILA0K PiArCU5VTEwNCj4gK307DQo+ICsNCj4gKy8qIHNldCB1cCB2ZmlvX2RldmljZSBmb3IgaWF2Zl9j bGllbnQqLw0KPiArc3RhdGljIGludA0KPiAraWF2Zl9jbGllbnRfdmZpb191c2VyX3NldHVwKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCBjb25zdCBjaGFyICpwYXRoKQ0KPiArew0KPiArCXN0cnVj dCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIgPQ0KPiArCQlJQVZGX0RFVl9QUklWQVRFX1RPX0FEQVBU RVIoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ICsJc3RydWN0IGlhdmZfaHcgKmh3ID0gSUFW Rl9ERVZfUFJJVkFURV9UT19IVyhhZGFwdGVyKTsNCj4gKwlzdHJ1Y3QgdmZpb19kZXZpY2UgKnZm aW9fZGV2Ow0KPiArCWludCBtYXhfZmRzLCBpOw0KPiArDQo+ICsJdmZpb19kZXYgPSBjbGllbnRf dmZpb191c2VyX3NldHVwKHBhdGgsIGRldi0+ZGV2aWNlLT5udW1hX25vZGUpOw0KPiArCWlmICh2 ZmlvX2RldiA9PSBOVUxMKSB7DQo+ICsJCXByaW50ZigiRXJyb3IgdG8gY3JlYXRlIHZmaW9fZGV2 aWNlIGZvciBpYXZmX2NsaWVudFxuIik7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsJaHct PmJ1cy50eXBlID0gaWF2Zl9idXNfdHlwZV92ZmlvX3VzZXI7DQo+ICsNCj4gKwkvKiBVc2UgaHdf YWRkciB0byByZWNvcmQgZGV2IHB0ciAqLw0KPiArCWh3LT5od19hZGRyID0gKHVpbnQ4X3QgKil2 ZmlvX2RldjsNCj4gKw0KPiArCWh3LT5iYWNrID0gSUFWRl9ERVZfUFJJVkFURV9UT19BREFQVEVS KGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiArDQo+ICsJaWYgKCFkZXYtPmludHJfaGFuZGxl KSB7DQo+ICsJCWRldi0+aW50cl9oYW5kbGUgPSBtYWxsb2Moc2l6ZW9mKCpkZXYtPmludHJfaGFu ZGxlKSk7DQo+ICsJCWlmICghZGV2LT5pbnRyX2hhbmRsZSkgew0KPiArCQkJUE1EX0lOSVRfTE9H KEVSUiwgImZhaWwgdG8gYWxsb2NhdGUgaW50cl9oYW5kbGUiKTsNCj4gKwkJCXJldHVybiAtMTsN Cj4gKwkJfQ0KPiArCQltZW1zZXQoZGV2LT5pbnRyX2hhbmRsZSwgMCwgc2l6ZW9mKCpkZXYtPmlu dHJfaGFuZGxlKSk7DQo+ICsJfQ0KPiArDQo+ICsJbWF4X2ZkcyA9IFJURV9NSU4oUlRFX01BWF9S WFRYX0lOVFJfVkVDX0lELCBhZGFwdGVyLT52Zi5udW1fcXVldWVfcGFpcnMpOw0KPiArDQo+ICsJ LyogRkQgZm9yIGNvbnRyb2wgaGFzIGJlZW4gZW5hYmxlZCAqLw0KPiArCWRldi0+aW50cl9oYW5k bGUtPmZkID0gLTE7DQo+ICsJZGV2LT5pbnRyX2hhbmRsZS0+dHlwZSA9IFJURV9JTlRSX0hBTkRM RV9WREVWOw0KPiArCWRldi0+aW50cl9oYW5kbGUtPm1heF9pbnRyID0gbWF4X2ZkcyArIDE7DQo+ ICsJZGV2LT5pbnRyX2hhbmRsZS0+bmJfZWZkID0gbWF4X2ZkczsNCj4gKwlmb3IgKGkgPSAwOyBp IDwgbWF4X2ZkczsgKytpKQ0KPiArCQlkZXYtPmludHJfaGFuZGxlLT5lZmRzW2ldID0gdmZpb19k ZXYtPmlycWZkc1tpXTsNCj4gKwlkZXYtPmludHJfaGFuZGxlLT5lZmRfY291bnRlcl9zaXplID0g MDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUg dm9pZA0KPiArYXZmX2NsaWVudF9pbml0X2V0aF9vcHModm9pZCkNCj4gK3sNCj4gKwlpYXZmX2Ns aWVudF9ldGhfZGV2X29wcyA9IGlhdmZfZXRoX2Rldl9vcHM7DQo+ICsJLyoga2VlcCBvdGhlciB1 bmNoYW5nZWQgKi8NCj4gKwlpYXZmX2NsaWVudF9ldGhfZGV2X29wcy5kZXZfY2xvc2UgID0gaWF2 Zl9jbGllbnRfZGV2X2Nsb3NlLA0KPiArCWlhdmZfY2xpZW50X2V0aF9kZXZfb3BzLmRldl9yZXNl dCAgPSBpYXZmX2NsaWVudF9kZXZfcmVzZXQsDQo+ICsJaWF2Zl9jbGllbnRfZXRoX2Rldl9vcHMu ZGV2X3N1cHBvcnRlZF9wdHlwZXNfZ2V0ICAgPSBOVUxMOw0KPiArCWlhdmZfY2xpZW50X2V0aF9k ZXZfb3BzLnJldGFfdXBkYXRlICAgICAgICAgICAgICAgID0gTlVMTDsNCj4gKwlpYXZmX2NsaWVu dF9ldGhfZGV2X29wcy5yZXRhX3F1ZXJ5ICAgICAgICAgICAgICAgICA9IE5VTEw7DQo+ICsJaWF2 Zl9jbGllbnRfZXRoX2Rldl9vcHMucnNzX2hhc2hfdXBkYXRlICAgICAgICAgICAgPSBOVUxMOw0K PiArCWlhdmZfY2xpZW50X2V0aF9kZXZfb3BzLnJzc19oYXNoX2NvbmZfZ2V0ICAgICAgICAgID0g TlVMTDsNCj4gKwlpYXZmX2NsaWVudF9ldGhfZGV2X29wcy5yeF9xdWV1ZV9pbnRyX2VuYWJsZSAg ICAgICA9IE5VTEw7DQo+ICsJaWF2Zl9jbGllbnRfZXRoX2Rldl9vcHMucnhfcXVldWVfaW50cl9k aXNhYmxlICAgICAgPSBOVUxMOw0KPiArfQ0KPiArDQo+ICsjZGVmaW5lIElBVkZfQ0xJRU5UX0FM QVJNX0lOVEVSVkFMIDUwMDAwIC8qIHVzICovDQo+ICtzdGF0aWMgdm9pZA0KPiAraWF2Zl9jbGll bnRfZGV2X2FsYXJtX2hhbmRsZXIodm9pZCAqcGFyYW0pDQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYgPSAoc3RydWN0IHJ0ZV9ldGhfZGV2ICopcGFyYW07DQo+ICsNCj4gKwlpYXZm X2hhbmRsZV92aXJ0Y2hubF9tc2coZGV2KTsNCj4gKw0KPiArCXJ0ZV9lYWxfYWxhcm1fc2V0KElB VkZfQ0xJRU5UX0FMQVJNX0lOVEVSVkFMLA0KPiArCQkJICBpYXZmX2NsaWVudF9kZXZfYWxhcm1f aGFuZGxlciwgZGV2KTsNCj4gK30NCj4gKw0KPiArLyogaW5pdCBldGhkZXYgZm9yIHRoZSBhdmYg Y2xpZW50IGRldmljZSovDQo+ICtzdGF0aWMgaW50DQo+ICtpYXZmX2NsaWVudF9ldGhfaW5pdChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQo+ICt7DQo+ICsJc3RydWN0IGlhdmZfYWRhcHRl ciAqYWRhcHRlciA9DQo+ICsJCUlBVkZfREVWX1BSSVZBVEVfVE9fQURBUFRFUihldGhfZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZSk7DQo+ICsJc3RydWN0IGlhdmZfaHcgKmh3ID0gSUFWRl9ERVZfUFJJ VkFURV9UT19IVyhhZGFwdGVyKTsNCj4gKw0KPiArCS8qIHVwZGF0ZSBldGhfZGV2X29wIGJ5IGFz c2lnbmluZyBvcHMgZnVuYyBwb2ludGVyICovDQo+ICsJYXZmX2NsaWVudF9pbml0X2V0aF9vcHMo KTsNCj4gKwlldGhfZGV2LT5kZXZfb3BzID0gKGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcw0KPiAq KSgmaWF2Zl9jbGllbnRfZXRoX2Rldl9vcHMpOw0KPiArDQo+ICsJZXRoX2Rldi0+cnhfcGt0X2J1 cnN0ID0gJmlhdmZfcmVjdl9wa3RzOw0KPiArCWV0aF9kZXYtPnR4X3BrdF9idXJzdCA9ICZpYXZm X3htaXRfcGt0czsNCj4gKwlldGhfZGV2LT50eF9wa3RfcHJlcGFyZSA9ICZpYXZmX3ByZXBfcGt0 czsNCj4gKw0KPiArCWh3LT5iYWNrID0gSUFWRl9ERVZfUFJJVkFURV9UT19BREFQVEVSKGV0aF9k ZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gKwlhZGFwdGVyLT5ldGhfZGV2ID0gZXRoX2RldjsN Cj4gKwlhZGFwdGVyLT5zdG9wcGVkID0gMTsNCj4gKw0KDQpJIHRoaW5rIHRoZSBwdHlwZSB0YWJs ZSAoYWRhcHRlci0+cHR5cGVfdGJsKSBzaG91bGQgYmUgc2V0IGR1cmluZyBpbml0Lg0KDQpNYXli ZSB1c2luZyBpYXZmX2dldF9kZWZhdWx0X3B0eXBlX3RhYmxlKCkuDQoNClRoYW5rcyENCkNoZW5i bw0KDQo+ICsJaWYgKGlhdmZfaW5pdF92ZihldGhfZGV2KSAhPSAwKSB7DQo+ICsJCVBNRF9JTklU X0xPRyhFUlIsICJJbml0IHZmIGZhaWxlZCIpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiAr DQo+ICsJLyogY29weSBtYWMgYWRkciAqLw0KPiArCWV0aF9kZXYtPmRhdGEtPm1hY19hZGRycyA9 IHJ0ZV96bWFsbG9jKA0KPiArCQkJImlhdmZfY2xpZW50X21hYyIsDQo+ICsJCQlSVEVfRVRIRVJf QUREUl9MRU4gKiBJQVZGX05VTV9NQUNBRERSX01BWCwgMCk7DQo+ICsJaWYgKCFldGhfZGV2LT5k YXRhLT5tYWNfYWRkcnMpIHsNCj4gKwkJUE1EX0lOSVRfTE9HKEVSUiwgIkZhaWxlZCB0byBhbGxv Y2F0ZSAlZCBieXRlcyBuZWVkZWQgdG8iDQo+ICsJCQkgICAgICIgc3RvcmUgTUFDIGFkZHJlc3Nl cyIsDQo+ICsJCQkgICAgIFJURV9FVEhFUl9BRERSX0xFTiAqIElBVkZfTlVNX01BQ0FERFJfTUFY KTsNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsJfQ0KPiArCS8qIElmIHRoZSBNQUMgYWRkcmVz cyBpcyBub3QgY29uZmlndXJlZCBieSBob3N0LA0KPiArCSAqIGdlbmVyYXRlIGEgcmFuZG9tIG9u ZS4NCj4gKwkgKi8NCj4gKwlpZiAoIXJ0ZV9pc192YWxpZF9hc3NpZ25lZF9ldGhlcl9hZGRyKA0K PiArCQkJKHN0cnVjdCBydGVfZXRoZXJfYWRkciAqKWh3LT5tYWMuYWRkcikpDQo+ICsJCXJ0ZV9l dGhfcmFuZG9tX2FkZHIoaHctPm1hYy5hZGRyKTsNCj4gKwlydGVfZXRoZXJfYWRkcl9jb3B5KChz dHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKilody0+bWFjLmFkZHIsDQo+ICsJCQkmZXRoX2Rldi0+ZGF0 YS0+bWFjX2FkZHJzWzBdKTsNCj4gKw0KPiArCXJ0ZV9lYWxfYWxhcm1fc2V0KElBVkZfQ0xJRU5U X0FMQVJNX0lOVEVSVkFMLA0KPiArCQkJICBpYXZmX2NsaWVudF9kZXZfYWxhcm1faGFuZGxlciwg ZXRoX2Rldik7DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK2lh dmZfY2xpZW50X2Rldl9yZXNldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gK3sNCj4gKwlz dHJ1Y3QgaWF2Zl9odyAqaHcgPSBJQVZGX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGUpOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlydGVfZWFsX2FsYXJtX2NhbmNlbChp YXZmX2NsaWVudF9kZXZfYWxhcm1faGFuZGxlciwgZGV2KTsNCj4gKw0KPiArCWlhdmZfc2h1dGRv d25fYWRtaW5xKGh3KTsNCj4gKwlyZXQgPSBpYXZmX2luaXRfdmYoZGV2KTsNCj4gKw0KPiArCS8q IHNlbmQgcmVzZXQgbXNnIHRvIFBGICovDQo+ICsJaWF2Zl92Zl9yZXNldChodyk7DQo+ICsJcnRl X2VhbF9hbGFybV9zZXQoSUFWRl9DTElFTlRfQUxBUk1fSU5URVJWQUwsDQo+ICsJCQkgIGlhdmZf Y2xpZW50X2Rldl9hbGFybV9oYW5kbGVyLCBkZXYpOw0KPiArDQo+ICsJcmV0dXJuIHJldDsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludA0KPiAraWF2Zl9jbGllbnRfZGV2X2Nsb3NlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KQ0KPiArew0KPiArCXN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIg PQ0KPiArCQlJQVZGX0RFVl9QUklWQVRFX1RPX0FEQVBURVIoZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7DQo+ICsJc3RydWN0IGlhdmZfaHcgKmh3ID0gSUFWRl9ERVZfUFJJVkFURV9UT19IVyhkZXYt PmRhdGEtPmRldl9wcml2YXRlKTsNCj4gKwlzdHJ1Y3QgcnRlX2ludHJfaGFuZGxlICppbnRyX2hh bmRsZSA9IGRldi0+aW50cl9oYW5kbGU7DQo+ICsNCj4gKwlpZiAoIWFkYXB0ZXItPnN0b3BwZWQp IHsNCj4gKwkJaWF2Zl9zdG9wX3F1ZXVlcyhkZXYpOw0KPiArDQo+ICsJCWlmIChpbnRyX2hhbmRs ZSkgew0KPiArCQkJLyogRGlzYWJsZSB0aGUgaW50ZXJydXB0IGZvciBSeCAqLw0KPiArCQkJcnRl X2ludHJfZWZkX2Rpc2FibGUoaW50cl9oYW5kbGUpOw0KPiArCQkJLyogUnggaW50ZXJydXB0IHZl Y3RvciBtYXBwaW5nIGZyZWUgKi8NCj4gKwkJCWlmIChpbnRyX2hhbmRsZS0+aW50cl92ZWMpIHsN Cj4gKwkJCQlydGVfZnJlZShpbnRyX2hhbmRsZS0+aW50cl92ZWMpOw0KPiArCQkJCWludHJfaGFu ZGxlLT5pbnRyX3ZlYyA9IE5VTEw7DQo+ICsJCQl9DQo+ICsJCX0NCj4gKwkJLyogUmVtb3ZlIGFs bCBtYWMgYWRkcnMgKi8NCj4gKwkJaWF2Zl9hZGRfZGVsX2FsbF9tYWNfYWRkcihhZGFwdGVyLCBm YWxzZSk7DQo+ICsJCWFkYXB0ZXItPnN0b3BwZWQgPSAxOw0KPiArCX0NCj4gKwlpYXZmX3NodXRk b3duX2FkbWlucShodyk7DQo+ICsJaWF2Zl9kaXNhYmxlX2lycTAoaHcpOw0KPiArCXJ0ZV9lYWxf YWxhcm1fY2FuY2VsKGlhdmZfY2xpZW50X2Rldl9hbGFybV9oYW5kbGVyLCBkZXYpOw0KPiArDQo+ ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK2lhdmZfY2xpZW50X2dl dF9zdHJpbmdfYXJnKGNvbnN0IGNoYXIgKmtleSBfX3J0ZV91bnVzZWQsDQo+ICsJICAgICAgIGNv bnN0IGNoYXIgKnZhbHVlLCB2b2lkICpleHRyYV9hcmdzKQ0KPiArew0KPiArCWlmICghdmFsdWUg fHwgIWV4dHJhX2FyZ3MpDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJKihjaGFyICoq KWV4dHJhX2FyZ3MgPSBzdHJkdXAodmFsdWUpOw0KPiArDQo+ICsJaWYgKCEqKGNoYXIgKiopZXh0 cmFfYXJncykNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGludA0KPiArYXZmX2NsaWVudF9wbWRfcHJvYmUoc3RydWN0IHJ0ZV92 ZGV2X2RldmljZSAqdmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0ID0g TlVMTDsNCj4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7DQo+ICsJc3RydWN0IGlhdmZf YWRhcHRlciAqYWRhcHRlcjsNCj4gKwljaGFyICpwYXRoID0gTlVMTDsNCj4gKwlpbnQgcmV0Ow0K PiArDQo+ICsJa3ZsaXN0ID0gcnRlX2t2YXJnc19wYXJzZShydGVfdmRldl9kZXZpY2VfYXJncyh2 ZGV2KSwgdmFsaWRfYXJncyk7DQo+ICsJaWYgKCFrdmxpc3QpIHsNCj4gKwkJUE1EX0lOSVRfTE9H KEVSUiwgImVycm9yIHdoZW4gcGFyc2luZyBwYXJhbSIpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsN Cj4gKwl9DQo+ICsNCj4gKwlpZiAocnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEFWRl9DTElFTlRf QVJHX1BBVEgpID09IDEpIHsNCj4gKwkJaWYgKHJ0ZV9rdmFyZ3NfcHJvY2Vzcyhrdmxpc3QsIEFW Rl9DTElFTlRfQVJHX1BBVEgsDQo+ICsJCQkJICAgICAgICZpYXZmX2NsaWVudF9nZXRfc3RyaW5n X2FyZywgJnBhdGgpIDwgMCkgew0KPiArCQkJUE1EX0lOSVRfTE9HKEVSUiwgImVycm9yIHRvIHBh cnNlICVzIiwNCj4gKwkJCQkgICAgIEFWRl9DTElFTlRfQVJHX1BBVEgpOw0KPiArCQkJcmV0dXJu IC1FSU5WQUw7DQo+ICsJCX0NCj4gKwl9IGVsc2Ugew0KPiArCQlQTURfSU5JVF9MT0coRVJSLCAi YXJnICVzIGlzIG1hbmRhdG9yeSBmb3IgdmlydGlvX3VzZXIiLA0KPiArCQkJICAgICBBVkZfQ0xJ RU5UX0FSR19QQVRIKTsNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJfQ0KPiArDQo+ICsJZXRo X2RldiA9IHJ0ZV9ldGhfdmRldl9hbGxvY2F0ZSh2ZGV2LCBzaXplb2YoKmFkYXB0ZXIpKTsNCj4g Kw0KPiArCXJldCA9IGlhdmZfY2xpZW50X3ZmaW9fdXNlcl9zZXR1cChldGhfZGV2LCBwYXRoKTsN Cj4gKwlpZiAocmV0KSB7DQo+ICsJCWdvdG8gZXJyOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IGlh dmZfY2xpZW50X2V0aF9pbml0KGV0aF9kZXYpOw0KPiArCWlmIChyZXQpIHsNCj4gKwkJZ290byBl cnI7DQo+ICsJfQ0KPiArDQo+ICsJcnRlX2V0aF9kZXZfcHJvYmluZ19maW5pc2goZXRoX2Rldik7 DQo+ICsJcnRlX2t2YXJnc19mcmVlKGt2bGlzdCk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK2Vy cjoNCj4gKwlydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoZXRoX2Rldik7DQo+ICsJcnRlX2t2YXJn c19mcmVlKGt2bGlzdCk7DQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArDQo+ICtzdGF0 aWMgaW50DQo+ICthdmZfY2xpZW50X3BtZF9yZW1vdmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAq dmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYgPSBOVUxMOw0KPiAr DQo+ICsJaWYgKHZkZXYgPT0gTlVMTCkNCj4gKwkJcmV0dXJuIC0xOw0KPiArDQo+ICsJLyogZmlu ZCB0aGUgZXRoZGV2IGVudHJ5ICovDQo+ICsJZXRoX2RldiA9IHJ0ZV9ldGhfZGV2X2FsbG9jYXRl ZChydGVfdmRldl9kZXZpY2VfbmFtZSh2ZGV2KSk7DQo+ICsJaWYgKGV0aF9kZXYgPT0gTlVMTCkN Cj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlpYXZmX2NsaWVudF9kZXZfY2xvc2UoZXRoX2Rldik7 DQo+ICsJcnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KGV0aF9kZXYpOw0KPiArCXJldHVybiAwOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV92ZGV2X2RyaXZlciBpYXZmX2NsaWVudF9k cml2ZXIgPSB7DQo+ICsJLnByb2JlID0gYXZmX2NsaWVudF9wbWRfcHJvYmUsDQo+ICsJLnJlbW92 ZSA9IGF2Zl9jbGllbnRfcG1kX3JlbW92ZSwNCj4gK307DQo+ICsNCj4gK1JURV9QTURfUkVHSVNU RVJfVkRFVihuZXRfaWF2Zl9jbGllbnQsIGlhdmZfY2xpZW50X2RyaXZlcik7DQo+ICtSVEVfUE1E X1JFR0lTVEVSX0FMSUFTKG5ldF9pYXZmX2NsaWVudCwgaWF2Zl9jbGllbnQpOw0KPiArUlRFX1BN RF9SRUdJU1RFUl9QQVJBTV9TVFJJTkcobmV0X2lhdmZfY2xpZW50LA0KPiArCSJwYXRoPTxwYXRo PiIpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jIGIvZHJp dmVycy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jDQo+IGluZGV4IDdlM2MyNmE5NGUuLjZiNWU0N2Fk ZjIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYw0KPiArKysg Yi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmMNCj4gQEAgLTE1NCw3ICsxNTQsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9pYXZmX3hzdGF0c19uYW1lX29mZg0KPiBydGVfaWF2Zl9z dGF0c19zdHJpbmdzW10gPSB7DQo+ICAjZGVmaW5lIElBVkZfTkJfWFNUQVRTIChzaXplb2YocnRl X2lhdmZfc3RhdHNfc3RyaW5ncykgLyBcDQo+ICAJCXNpemVvZihydGVfaWF2Zl9zdGF0c19zdHJp bmdzWzBdKSkNCj4gDQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIGlhdmZfZXRo X2Rldl9vcHMgPSB7DQo+ICtjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgaWF2Zl9ldGhfZGV2X29w cyA9IHsNCj4gIAkuZGV2X2NvbmZpZ3VyZSAgICAgICAgICAgICAgPSBpYXZmX2Rldl9jb25maWd1 cmUsDQo+ICAJLmRldl9zdGFydCAgICAgICAgICAgICAgICAgID0gaWF2Zl9kZXZfc3RhcnQsDQo+ ICAJLmRldl9zdG9wICAgICAgICAgICAgICAgICAgID0gaWF2Zl9kZXZfc3RvcCwNCj4gQEAgLTE3 ODAsNyArMTc4MCw3IEBAIGlhdmZfaW5pdF9wcm90b194dHIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYpDQo+ICAJfQ0KPiAgfQ0KPiANCj4gLXN0YXRpYyBpbnQNCj4gK2ludA0KPiAgaWF2Zl9pbml0 X3ZmKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KPiAgew0KPiAgCWludCBlcnIsIGJ1ZnN6Ow0K PiBAQCAtMTc4OSwxMiArMTc4OSw2IEBAIGlhdmZfaW5pdF92ZihzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCj4gIAlzdHJ1Y3QgaWF2Zl9odyAqaHcgPSBJQVZGX0RFVl9QUklWQVRFX1RPX0hXKGRl di0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiAgCXN0cnVjdCBpYXZmX2luZm8gKnZmID0gSUFWRl9E RVZfUFJJVkFURV9UT19WRihkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gDQo+IC0JZXJyID0g aWF2Zl9wYXJzZV9kZXZhcmdzKGRldik7DQo+IC0JaWYgKGVycikgew0KPiAtCQlQTURfSU5JVF9M T0coRVJSLCAiRmFpbGVkIHRvIHBhcnNlIGRldmFyZ3MiKTsNCj4gLQkJZ290byBlcnI7DQo+IC0J fQ0KPiAtDQo+ICAJZXJyID0gaWF2Zl9zZXRfbWFjX3R5cGUoaHcpOw0KPiAgCWlmIChlcnIpIHsN Cj4gIAkJUE1EX0lOSVRfTE9HKEVSUiwgInNldF9tYWNfdHlwZSBmYWlsZWQ6ICVkIiwgZXJyKTsN Cj4gQEAgLTE4OTEsMTYgKzE4ODUsNiBAQCBpYXZmX2VuYWJsZV9pcnEwKHN0cnVjdCBpYXZmX2h3 ICpodykNCj4gIAlJQVZGX1dSSVRFX0ZMVVNIKGh3KTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgaW5s aW5lIHZvaWQNCj4gLWlhdmZfZGlzYWJsZV9pcnEwKHN0cnVjdCBpYXZmX2h3ICpodykNCj4gLXsN Cj4gLQkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHQgdHlwZXMgKi8NCj4gLQlJQVZGX1dSSVRFX1JF RyhodywgSUFWRl9WRklOVF9JQ1IwX0VOQTEsIDApOw0KPiAtCUlBVkZfV1JJVEVfUkVHKGh3LCBJ QVZGX1ZGSU5UX0RZTl9DVEwwMSwNCj4gLQkJICAgICAgIElBVkZfVkZJTlRfRFlOX0NUTDAxX0lU Ul9JTkRYX01BU0spOw0KPiAtCUlBVkZfV1JJVEVfRkxVU0goaHcpOw0KPiAtfQ0KPiAtDQo+ICBz dGF0aWMgdm9pZA0KPiAgaWF2Zl9kZXZfaW50ZXJydXB0X2hhbmRsZXIodm9pZCAqcGFyYW0pDQo+ ICB7DQo+IEBAIC0xOTg2LDYgKzE5NzAsMTIgQEAgaWF2Zl9kZXZfaW5pdChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmV0aF9kZXYpDQo+ICAJYWRhcHRlci0+ZXRoX2RldiA9IGV0aF9kZXY7DQo+ICAJYWRh cHRlci0+c3RvcHBlZCA9IDE7DQo+IA0KPiArCXJldCAgPSBpYXZmX3BhcnNlX2RldmFyZ3MoZXRo X2Rldik7DQo+ICsJaWYgKHJldCkgew0KPiArCQlQTURfSU5JVF9MT0coRVJSLCAiRmFpbGVkIHRv IHBhcnNlIGRldmFyZ3MiKTsNCj4gKwkJcmV0dXJuIHJldDsNCj4gKwl9DQo+ICsNCj4gIAlpZiAo aWF2Zl9pbml0X3ZmKGV0aF9kZXYpICE9IDApIHsNCj4gIAkJUE1EX0lOSVRfTE9HKEVSUiwgIklu aXQgdmYgZmFpbGVkIik7DQo+ICAJCXJldHVybiAtMTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2lhdmYvaWF2Zl9yeHR4LmMgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eC5jDQo+IGlu ZGV4IDIxZDUwOGIzZjQuLmQ4MTkyZjM2NzUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2lh dmYvaWF2Zl9yeHR4LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguYw0KPiBA QCAtMjQsNiArMjQsOSBAQA0KPiAgI2luY2x1ZGUgPHJ0ZV9pcC5oPg0KPiAgI2luY2x1ZGUgPHJ0 ZV9uZXQuaD4NCj4gICNpbmNsdWRlIDxydGVfdmVjdC5oPg0KPiArI2lmZGVmIFJURV9MSUJSVEVf SUFWRl9DTElFTlQNCj4gKyNpbmNsdWRlIDx2ZmlvX3VzZXIvdmZpb191c2VyX3BjaS5oPg0KPiAr I2VuZGlmDQo+IA0KPiAgI2luY2x1ZGUgImlhdmYuaCINCj4gICNpbmNsdWRlICJpYXZmX3J4dHgu aCINCj4gQEAgLTU5NSw3ICs1OTgsMTUgQEAgaWF2Zl9kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90DQo+IHF1ZXVlX2lkeCwNCj4gIAlyZXNldF9yeF9x dWV1ZShyeHEpOw0KPiAgCXJ4cS0+cV9zZXQgPSB0cnVlOw0KPiAgCWRldi0+ZGF0YS0+cnhfcXVl dWVzW3F1ZXVlX2lkeF0gPSByeHE7DQo+IC0JcnhxLT5xcnhfdGFpbCA9IGh3LT5od19hZGRyICsg SUFWRl9RUlhfVEFJTDEocnhxLT5xdWV1ZV9pZCk7DQo+ICsNCj4gKyNpZmRlZiBSVEVfTElCUlRF X0lBVkZfQ0xJRU5UDQo+ICsJaWYgKGh3LT5idXMudHlwZSA9PSBpYXZmX2J1c190eXBlX3ZmaW9f dXNlcikNCj4gKwkJcnhxLT5xcnhfdGFpbCA9IGNsaWVudF92ZmlvX3VzZXJfZ2V0X2Jhcl9hZGRy KA0KPiArCQkJCShzdHJ1Y3QgdmZpb19kZXZpY2UgKilody0+aHdfYWRkciwgMCwNCj4gKwkJCQlJ QVZGX1FSWF9UQUlMMShyeHEtPnF1ZXVlX2lkKSwgNCk7DQo+ICsJZWxzZQ0KPiArI2VuZGlmDQo+ ICsJCXJ4cS0+cXJ4X3RhaWwgPSBody0+aHdfYWRkciArIElBVkZfUVJYX1RBSUwxKHJ4cS0+cXVl dWVfaWQpOw0KPiAgCXJ4cS0+b3BzID0gJmRlZl9yeHFfb3BzOw0KPiANCj4gIAlpZiAoY2hlY2tf cnhfYnVsa19hbGxvdyhyeHEpID09IHRydWUpIHsNCj4gQEAgLTcwNSw3ICs3MTYsMTUgQEAgaWF2 Zl9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICAJcmVzZXRf dHhfcXVldWUodHhxKTsNCj4gIAl0eHEtPnFfc2V0ID0gdHJ1ZTsNCj4gIAlkZXYtPmRhdGEtPnR4 X3F1ZXVlc1txdWV1ZV9pZHhdID0gdHhxOw0KPiAtCXR4cS0+cXR4X3RhaWwgPSBody0+aHdfYWRk ciArIElBVkZfUVRYX1RBSUwxKHF1ZXVlX2lkeCk7DQo+ICsjaWZkZWYgUlRFX0xJQlJURV9JQVZG X0NMSUVOVA0KPiArCWlmIChody0+YnVzLnR5cGUgPT0gaWF2Zl9idXNfdHlwZV92ZmlvX3VzZXIp DQo+ICsJCXR4cS0+cXR4X3RhaWwgPSBjbGllbnRfdmZpb191c2VyX2dldF9iYXJfYWRkcigNCj4g KwkJCShzdHJ1Y3QgdmZpb19kZXZpY2UgKilody0+aHdfYWRkciwgMCwNCj4gKwkJCUlBVkZfUVRY X1RBSUwxKHF1ZXVlX2lkeCksIDQpOw0KPiArCWVsc2UNCj4gKyNlbmRpZg0KPiArCQl0eHEtPnF0 eF90YWlsID0gaHctPmh3X2FkZHIgKyBJQVZGX1FUWF9UQUlMMShxdWV1ZV9pZHgpOw0KPiArDQo+ ICAJdHhxLT5vcHMgPSAmZGVmX3R4cV9vcHM7DQo+IA0KPiAgCWlmIChjaGVja190eF92ZWNfYWxs b3codHhxKSA9PSBmYWxzZSkgew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWF2Zi9tZXNv bi5idWlsZCBiL2RyaXZlcnMvbmV0L2lhdmYvbWVzb24uYnVpbGQNCj4gaW5kZXggMjZjMDJjNDQw MS4uNTgwMzA3YzQ2MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvaWF2Zi9tZXNvbi5idWls ZA0KPiArKysgYi9kcml2ZXJzL25ldC9pYXZmL21lc29uLmJ1aWxkDQo+IEBAIC0xMyw2ICsxMyw3 IEBAIHNvdXJjZXMgPSBmaWxlcygNCj4gIAknaWF2Zl9nZW5lcmljX2Zsb3cuYycsDQo+ICAJJ2lh dmZfZmRpci5jJywNCj4gIAknaWF2Zl9oYXNoLmMnLA0KPiArCSdpYXZmX2NsaWVudF9ldGhkZXYu YycsDQo+ICApDQo+IA0KPiAgaWYgYXJjaF9zdWJkaXIgPT0gJ3g4NicNCj4gLS0NCj4gMi4yMS4x DQoNCg==