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 751CCA09FF; Wed, 30 Dec 2020 04:09:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A6A47C9B2; Wed, 30 Dec 2020 04:08:52 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 7B507C9A6 for ; Wed, 30 Dec 2020 04:08:50 +0100 (CET) IronPort-SDR: 9BFazgP59amBqhuHPGWEiqZg49iAT9i6D/Fe1e9upwQ8iLch24Dcjut9cPGjKII4FaHbCKx+d4 bkId9MHNF5wA== X-IronPort-AV: E=McAfee;i="6000,8403,9849"; a="261315653" X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="261315653" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Dec 2020 19:08:48 -0800 IronPort-SDR: /o+m1+ZL+cGCWuy2+BQNVHDf52Fe4vQ3ddLaD8s79X0Sh95YQV3tw9N+CywBdYXp/j5g2wmPrK wBNiStuvFh3A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="419383013" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga001.jf.intel.com with ESMTP; 29 Dec 2020 19:08:48 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) 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, 29 Dec 2020 19:08:48 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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 via Frontend Transport; Tue, 29 Dec 2020 19:08:48 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.174) 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:08:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X5tF6fzIkH6rR4uc/lmihhwHROsajorlLz4lp5LCksaumBJ2H+gcKQZNvXnvkRcSTpq6HTcZgGL1w3nMPrAhYa+M/cTdF4zGA751r8IlBwp5rnABMnPuPb6fQoqK4b4XU2POSASfAEhd/Op3XnySe+KnHe9JCenvqP0FfVkiQAZRhEkl21Pe2ZlZgU9YUJZ+xU+w4eSKJIYefZ0jKqZqIqGlYR4LSvrNlDPwJ1ZaaAQA3HlgQrCahoHOFOyXscRXWAiKgax6nAi7Y9/WXRK8kwbkR4zX2sQC85g4wvn+pdTn4aOawPMMYWFw2vAWqhwVRbPN26zZESbKqDXQ4BYL/A== 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=sgmPqI7Lm4PZwkp0KDxOl29qjhxZ8+AiIH+/Sjc5iww=; b=iqet0CfN9pTq0kh0I7QEQE9TUhqkzK4eEKYn38uWdQ8l7bAiDq7yasF/VHkmzPLaJFl96tFAZpKxM/5MhgiPJM1FAbWwTVfsH/PvmapQUSMcF3q4P/a5JwQUVEubk5ajyXbvKImViGlFZY+NAnGUFeo3+OKRFPLEMYF4RZ8ewPp9SpkkcX/YuwQRspErzgcvaBlSNV+X2pph/GNnB1NfT855/jjN1TJS+2nf4U4jQgK5PJXbe7qxHHSCfPC6oE251R1apooHjZbkbSHaCehTLRlxpWK1868k5tN0ufca5nZmKCD6SStMlPHz3KReTHS1LFB0unR1TCJXdX7cst9XAg== 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=sgmPqI7Lm4PZwkp0KDxOl29qjhxZ8+AiIH+/Sjc5iww=; b=B56mBa9rP8WQb4zUgr1lpC38PQ4QxULHdlI4w0XhJTXKqlPDrcKTN+f6VN920AkXkNTDVLRb6EvraS7XPqAe94UQ5XhP1+5cdRAQXj+CkQR/GSo2FUULvnrMlqG0aCJcAIhvO+bVZq9rVKtBBQ2SHoPDndnSTLfCQ2j0enP6U7c= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3581.namprd11.prod.outlook.com (2603:10b6:208:f0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27; Wed, 30 Dec 2020 03:08:46 +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:08:46 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device Thread-Index: AQHW1xU6nAaTxNNe+U+Xtf3ZQtAk0KoPA/JQ Date: Wed, 30 Dec 2020 03:08:46 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-14-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-14-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: 8cca69a7-18f0-4f25-a673-08d8ac703909 x-ms-traffictypediagnostic: MN2PR11MB3581: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2958; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Y4K+klLeVpHXWAn3GLbTHxcC4cA4+fyctqWeilLl1jA40Ux7xz7MaduruPyC4OBRTAU9t2ff0iXNdNm62bdM10uzjum6hsOwKXiYQ8UQicBhOfA33wj1pkhA21AYf9o68svXksai2NVz6UV7tDxjT1/SEisiXUPJNjRxNxI/ZfKAeKz6D2yVtUMXv7cNX/LcFU78QXvenmT5udyGqa8U2RY7Je2OTXA/3R29mgkdqg1fPKbazTDZF02lN1RL6HC7HNCJ9qJumlRJLmxChEQMP1NuCE1cr8xSORWj50lX4GoLdLne6zdJiPzr7EaAX8gzUpwwdm4E/+AzzGBCna/9VlNZSF+wIu0cA7TmwsL5kfyqOfqR2wmQib5FPo3ARdPDzrZAEbvzjkFrvNS8j02oLQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(376002)(366004)(396003)(346002)(9686003)(55016002)(64756008)(26005)(7696005)(30864003)(66476007)(66946007)(316002)(66446008)(86362001)(83380400001)(66556008)(2906002)(33656002)(8936002)(76116006)(110136005)(186003)(478600001)(52536014)(53546011)(5660300002)(8676002)(6506007)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?amhEWkxSTHNCMnpJaVpTRDNPTXFENUFVWGwzanFGc3JxR1kySC9MaHpSeEYz?= =?utf-8?B?RUFQSjJySXN3VEYzb1VZQ05RS1g2THlzdUJDMHltN0xscWtSdzk5b0lBdDNk?= =?utf-8?B?YjBreGJjNDVVTWdZZXhmeEFnaWQ5c1p2TUpSUjRVMlloK2ttclIwa3BmTTZK?= =?utf-8?B?cm5HSjJvajJ4ZXE1RWRRWnFsUEhTOFNRMEsyUGtNQnRCbVYwQStMVCthcHox?= =?utf-8?B?NG5jT3NCZ3lDWURld2hlWjQxY3lxVjdLVGdmN3g4MjV3MXBhdVd2SDFWV01U?= =?utf-8?B?YkhrVlJyVElPTi9zSSsrdUtwRmk4emgvNGk4bXpSRlVaV2hRTHVXbmNvL2ll?= =?utf-8?B?N1dQdTN4M1VGdUdDTjIveFRRUTBnSkRZZTkvZkN0MldpaFd2eFJpWkdRVlZi?= =?utf-8?B?VkQ0MWk2dG85YjI5TWRCNXBCaUI4UFhmcndNbmt6Nkx1U01GUGJocWtZMU1z?= =?utf-8?B?RFk5S1lrNU1lcEZDLy9vMEYzWjVLK25aT3NHNERTaVVvc09ZNnJPUGZDd2hz?= =?utf-8?B?cG1QNUNqN1pSR1gyUi81V0RNNFlQSnNNRWhSWERaYit6elZ0aG9nTnJwa3BR?= =?utf-8?B?bXhwN2RIcExMdDV3ajdjc0Z1R2JXcytGQ0tYSnZPd1FnSHVCVHE3NGxlVjRn?= =?utf-8?B?Z0FLaFk2Mm5wMTIxQWJyeFdTYlVFYjlmeGpSSUpiSGhKbHVXRTY0dm54bkVn?= =?utf-8?B?dUJ0TmVPYmJMT2Vkd0dsQ0cvUTJ1bXB4TUNWb0dXb2pNUkpjNDVyWlZjTDFL?= =?utf-8?B?NklUeml5bkxyU0tnZ3J1eE02N2QreVUwLzlSVU53YjhFdCsrTk05cGl4cVN1?= =?utf-8?B?L1ZjbGwrcWVDZ3VHWjBiUi9ZTE80dWt1aWFGMVN3aytiZ2hZR3ovUTJkc0Qw?= =?utf-8?B?TUx1dWFpZVcrbW1WWXlDZGR4Y25BSWVnNERoSmtsb1JscmZobHhOWjE2SDN4?= =?utf-8?B?N1dORTFZc2c1NkJPT3M0WUF4YWJFUGdPckxwY3lJVHZ2eGpoNFlrN2lFRWdy?= =?utf-8?B?T0J2RmE3ZzBzTldBeEsyOTdkTkVZMEtNWTlocmk3dWV0bFUwSW1Xc2hhdXl6?= =?utf-8?B?emtzakI5aHVRUGl4Vm5EbjdPTnk1enZIaFk4LzE0bVZwMlhNSmM4bmhYcGxm?= =?utf-8?B?ZCtQejNmajY4TVdUL2tnd211UldHYVFlMG41VlBWakNHemxTU0xiNG9XMW83?= =?utf-8?B?UmpTTEt1dnVPdHlsVmpMalZ6dlhlNVg1Wk40bkNJZ211U2liOGY2aVo5aUhz?= =?utf-8?B?cFMvNnRZSmViZmorVkN4QlBuT2tkRUU5eXBqc2l0WlB1UFozalRncHIyQWdH?= =?utf-8?Q?Mu4dN5ZB+Oqczwhk0G9pI1/mZnCZJgGIS3?= 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: 8cca69a7-18f0-4f25-a673-08d8ac703909 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Dec 2020 03:08:46.4854 (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: lpaaZ7TPiUSwYxLgc154kyfu+YBpk3t5RA+al9TvZkChKjgD6fyWPNgSiK2h3Kaj88EFDw8rDQDD8/ZEDWqAOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3581 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDIxLCAy MDIwIDU6MTQgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsNCj4gYW1vcmVub3pAcmVkaGF0LmNv bTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENvcXVlbGluIDxtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDEzLzQwXSBuZXQvdmly dGlvOiBtb3ZlIFBDSS1zcGVjaWZpYyBmaWVsZHMgdG8gUENJIGRldmljZQ0KPiANCj4gVGhpcyBw YXRjaCBtb3ZlcyB0aGUgZmllbGRzIGZyb20gdmlydGlvX2h3IHN0cnVjdHVyZSB0aGF0DQo+IGFy ZSBQQ0ktc3BlY2lmaWMgdG8gdmlydGlvX3BjaV9kZXZfc3RydWN0Lg0KPiANCj4gU2lnbmVkLW9m Zi1ieTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0t DQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5jIHwgMTM5ICsrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5oIHwg IDEwICstLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5j IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2kuYw0KPiBpbmRleCBmOTMzMWUzN2Q3Li44 YzYyNTA3YTBhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5j DQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmMNCj4gQEAgLTI4NywxOCAr Mjg3LDE5IEBAIHN0YXRpYyB2b2lkDQo+ICBtb2Rlcm5fcmVhZF9kZXZfY29uZmlnKHN0cnVjdCB2 aXJ0aW9faHcgKmh3LCBzaXplX3Qgb2Zmc2V0LA0KPiAgCQkgICAgICAgdm9pZCAqZHN0LCBpbnQg bGVuZ3RoKQ0KPiAgew0KPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2RldiAqZGV2ID0gdmlydGlvX3Bj aV9nZXRfZGV2KGh3KTsNCj4gIAlpbnQgaTsNCj4gIAl1aW50OF90ICpwOw0KPiAgCXVpbnQ4X3Qg b2xkX2dlbiwgbmV3X2dlbjsNCj4gDQo+ICAJZG8gew0KPiAtCQlvbGRfZ2VuID0gcnRlX3JlYWQ4 KCZody0+Y29tbW9uX2NmZy0+Y29uZmlnX2dlbmVyYXRpb24pOw0KPiArCQlvbGRfZ2VuID0gcnRl X3JlYWQ4KCZkZXYtPmNvbW1vbl9jZmctPmNvbmZpZ19nZW5lcmF0aW9uKTsNCj4gDQo+ICAJCXAg PSBkc3Q7DQo+ICAJCWZvciAoaSA9IDA7ICBpIDwgbGVuZ3RoOyBpKyspDQo+IC0JCQkqcCsrID0g cnRlX3JlYWQ4KCh1aW50OF90ICopaHctPmRldl9jZmcgKyBvZmZzZXQgKyBpKTsNCj4gKwkJCSpw KysgPSBydGVfcmVhZDgoKHVpbnQ4X3QgKilkZXYtPmRldl9jZmcgKyBvZmZzZXQgKyBpKTsNCj4g DQo+IC0JCW5ld19nZW4gPSBydGVfcmVhZDgoJmh3LT5jb21tb25fY2ZnLT5jb25maWdfZ2VuZXJh dGlvbik7DQo+ICsJCW5ld19nZW4gPSBydGVfcmVhZDgoJmRldi0+Y29tbW9uX2NmZy0+Y29uZmln X2dlbmVyYXRpb24pOw0KPiAgCX0gd2hpbGUgKG9sZF9nZW4gIT0gbmV3X2dlbik7DQo+ICB9DQo+ IA0KPiBAQCAtMzA2LDIzICszMDcsMjUgQEAgc3RhdGljIHZvaWQNCj4gIG1vZGVybl93cml0ZV9k ZXZfY29uZmlnKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzaXplX3Qgb2Zmc2V0LA0KPiAgCQkJY29u c3Qgdm9pZCAqc3JjLCBpbnQgbGVuZ3RoKQ0KPiAgew0KPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2Rl diAqZGV2ID0gdmlydGlvX3BjaV9nZXRfZGV2KGh3KTsNCj4gIAlpbnQgaTsNCj4gIAljb25zdCB1 aW50OF90ICpwID0gc3JjOw0KPiANCj4gIAlmb3IgKGkgPSAwOyAgaSA8IGxlbmd0aDsgaSsrKQ0K PiAtCQlydGVfd3JpdGU4KCgqcCsrKSwgKCgodWludDhfdCAqKWh3LT5kZXZfY2ZnKSArIG9mZnNl dCArIGkpKTsNCj4gKwkJcnRlX3dyaXRlOCgoKnArKyksICgoKHVpbnQ4X3QgKilkZXYtPmRldl9j ZmcpICsgb2Zmc2V0ICsgaSkpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyB1aW50NjRfdA0KPiAgbW9k ZXJuX2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX2h3ICpodykNCj4gIHsNCj4gKwlzdHJ1Y3Qg dmlydGlvX3BjaV9kZXYgKmRldiA9IHZpcnRpb19wY2lfZ2V0X2Rldihodyk7DQo+ICAJdWludDMy X3QgZmVhdHVyZXNfbG8sIGZlYXR1cmVzX2hpOw0KPiANCj4gLQlydGVfd3JpdGUzMigwLCAmaHct PmNvbW1vbl9jZmctPmRldmljZV9mZWF0dXJlX3NlbGVjdCk7DQo+IC0JZmVhdHVyZXNfbG8gPSBy dGVfcmVhZDMyKCZody0+Y29tbW9uX2NmZy0+ZGV2aWNlX2ZlYXR1cmUpOw0KPiArCXJ0ZV93cml0 ZTMyKDAsICZkZXYtPmNvbW1vbl9jZmctPmRldmljZV9mZWF0dXJlX3NlbGVjdCk7DQo+ICsJZmVh dHVyZXNfbG8gPSBydGVfcmVhZDMyKCZkZXYtPmNvbW1vbl9jZmctPmRldmljZV9mZWF0dXJlKTsN Cj4gDQo+IC0JcnRlX3dyaXRlMzIoMSwgJmh3LT5jb21tb25fY2ZnLT5kZXZpY2VfZmVhdHVyZV9z ZWxlY3QpOw0KPiAtCWZlYXR1cmVzX2hpID0gcnRlX3JlYWQzMigmaHctPmNvbW1vbl9jZmctPmRl dmljZV9mZWF0dXJlKTsNCj4gKwlydGVfd3JpdGUzMigxLCAmZGV2LT5jb21tb25fY2ZnLT5kZXZp Y2VfZmVhdHVyZV9zZWxlY3QpOw0KPiArCWZlYXR1cmVzX2hpID0gcnRlX3JlYWQzMigmZGV2LT5j b21tb25fY2ZnLT5kZXZpY2VfZmVhdHVyZSk7DQo+IA0KPiAgCXJldHVybiAoKHVpbnQ2NF90KWZl YXR1cmVzX2hpIDw8IDMyKSB8IGZlYXR1cmVzX2xvOw0KPiAgfQ0KPiBAQCAtMzMwLDEzICszMzMs MTUgQEAgbW9kZXJuX2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX2h3ICpodykNCj4gIHN0YXRp YyB2b2lkDQo+ICBtb2Rlcm5fc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCB1aW50 NjRfdCBmZWF0dXJlcykNCj4gIHsNCj4gLQlydGVfd3JpdGUzMigwLCAmaHctPmNvbW1vbl9jZmct Pmd1ZXN0X2ZlYXR1cmVfc2VsZWN0KTsNCj4gKwlzdHJ1Y3QgdmlydGlvX3BjaV9kZXYgKmRldiA9 IHZpcnRpb19wY2lfZ2V0X2Rldihodyk7DQo+ICsNCj4gKwlydGVfd3JpdGUzMigwLCAmZGV2LT5j b21tb25fY2ZnLT5ndWVzdF9mZWF0dXJlX3NlbGVjdCk7DQo+ICAJcnRlX3dyaXRlMzIoZmVhdHVy ZXMgJiAoKDFVTEwgPDwgMzIpIC0gMSksDQo+IC0JCSAgICAmaHctPmNvbW1vbl9jZmctPmd1ZXN0 X2ZlYXR1cmUpOw0KPiArCQkgICAgJmRldi0+Y29tbW9uX2NmZy0+Z3Vlc3RfZmVhdHVyZSk7DQo+ IA0KPiAtCXJ0ZV93cml0ZTMyKDEsICZody0+Y29tbW9uX2NmZy0+Z3Vlc3RfZmVhdHVyZV9zZWxl Y3QpOw0KPiArCXJ0ZV93cml0ZTMyKDEsICZkZXYtPmNvbW1vbl9jZmctPmd1ZXN0X2ZlYXR1cmVf c2VsZWN0KTsNCj4gIAlydGVfd3JpdGUzMihmZWF0dXJlcyA+PiAzMiwNCj4gLQkJICAgICZody0+ Y29tbW9uX2NmZy0+Z3Vlc3RfZmVhdHVyZSk7DQo+ICsJCSAgICAmZGV2LT5jb21tb25fY2ZnLT5n dWVzdF9mZWF0dXJlKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+IEBAIC0zNTMsNDYgKzM1 OCw1OSBAQCBtb2Rlcm5fZmVhdHVyZXNfb2soc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ICBzdGF0 aWMgdWludDhfdA0KPiAgbW9kZXJuX2dldF9zdGF0dXMoc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ ICB7DQo+IC0JcmV0dXJuIHJ0ZV9yZWFkOCgmaHctPmNvbW1vbl9jZmctPmRldmljZV9zdGF0dXMp Ow0KPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2RldiAqZGV2ID0gdmlydGlvX3BjaV9nZXRfZGV2KGh3 KTsNCj4gKw0KPiArCXJldHVybiBydGVfcmVhZDgoJmRldi0+Y29tbW9uX2NmZy0+ZGV2aWNlX3N0 YXR1cyk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQNCj4gIG1vZGVybl9zZXRfc3RhdHVzKHN0 cnVjdCB2aXJ0aW9faHcgKmh3LCB1aW50OF90IHN0YXR1cykNCj4gIHsNCj4gLQlydGVfd3JpdGU4 KHN0YXR1cywgJmh3LT5jb21tb25fY2ZnLT5kZXZpY2Vfc3RhdHVzKTsNCj4gKwlzdHJ1Y3Qgdmly dGlvX3BjaV9kZXYgKmRldiA9IHZpcnRpb19wY2lfZ2V0X2Rldihodyk7DQo+ICsNCj4gKwlydGVf d3JpdGU4KHN0YXR1cywgJmRldi0+Y29tbW9uX2NmZy0+ZGV2aWNlX3N0YXR1cyk7DQo+ICB9DQo+ IA0KPiAgc3RhdGljIHVpbnQ4X3QNCj4gIG1vZGVybl9nZXRfaXNyKHN0cnVjdCB2aXJ0aW9faHcg Kmh3KQ0KPiAgew0KPiAtCXJldHVybiBydGVfcmVhZDgoaHctPmlzcik7DQo+ICsJc3RydWN0IHZp cnRpb19wY2lfZGV2ICpkZXYgPSB2aXJ0aW9fcGNpX2dldF9kZXYoaHcpOw0KPiArDQo+ICsJcmV0 dXJuIHJ0ZV9yZWFkOChkZXYtPmlzcik7DQo+ICB9DQo+IA0KPiAgc3RhdGljIHVpbnQxNl90DQo+ ICBtb2Rlcm5fc2V0X2NvbmZpZ19pcnEoc3RydWN0IHZpcnRpb19odyAqaHcsIHVpbnQxNl90IHZl YykNCj4gIHsNCj4gLQlydGVfd3JpdGUxNih2ZWMsICZody0+Y29tbW9uX2NmZy0+bXNpeF9jb25m aWcpOw0KPiAtCXJldHVybiBydGVfcmVhZDE2KCZody0+Y29tbW9uX2NmZy0+bXNpeF9jb25maWcp Ow0KPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2RldiAqZGV2ID0gdmlydGlvX3BjaV9nZXRfZGV2KGh3 KTsNCj4gKw0KPiArCXJ0ZV93cml0ZTE2KHZlYywgJmRldi0+Y29tbW9uX2NmZy0+bXNpeF9jb25m aWcpOw0KPiArCXJldHVybiBydGVfcmVhZDE2KCZkZXYtPmNvbW1vbl9jZmctPm1zaXhfY29uZmln KTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgdWludDE2X3QNCj4gIG1vZGVybl9zZXRfcXVldWVfaXJx KHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzdHJ1Y3QgdmlydHF1ZXVlICp2cSwgdWludDE2X3QgdmVj KQ0KPiAgew0KPiAtCXJ0ZV93cml0ZTE2KHZxLT52cV9xdWV1ZV9pbmRleCwgJmh3LT5jb21tb25f Y2ZnLT5xdWV1ZV9zZWxlY3QpOw0KPiAtCXJ0ZV93cml0ZTE2KHZlYywgJmh3LT5jb21tb25fY2Zn LT5xdWV1ZV9tc2l4X3ZlY3Rvcik7DQo+IC0JcmV0dXJuIHJ0ZV9yZWFkMTYoJmh3LT5jb21tb25f Y2ZnLT5xdWV1ZV9tc2l4X3ZlY3Rvcik7DQo+ICsJc3RydWN0IHZpcnRpb19wY2lfZGV2ICpkZXYg PSB2aXJ0aW9fcGNpX2dldF9kZXYoaHcpOw0KPiArDQo+ICsJcnRlX3dyaXRlMTYodnEtPnZxX3F1 ZXVlX2luZGV4LCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9zZWxlY3QpOw0KPiArCXJ0ZV93cml0 ZTE2KHZlYywgJmRldi0+Y29tbW9uX2NmZy0+cXVldWVfbXNpeF92ZWN0b3IpOw0KPiArCXJldHVy biBydGVfcmVhZDE2KCZkZXYtPmNvbW1vbl9jZmctPnF1ZXVlX21zaXhfdmVjdG9yKTsNCj4gIH0N Cj4gDQo+ICBzdGF0aWMgdWludDE2X3QNCj4gIG1vZGVybl9nZXRfcXVldWVfbnVtKHN0cnVjdCB2 aXJ0aW9faHcgKmh3LCB1aW50MTZfdCBxdWV1ZV9pZCkNCj4gIHsNCj4gLQlydGVfd3JpdGUxNihx dWV1ZV9pZCwgJmh3LT5jb21tb25fY2ZnLT5xdWV1ZV9zZWxlY3QpOw0KPiAtCXJldHVybiBydGVf cmVhZDE2KCZody0+Y29tbW9uX2NmZy0+cXVldWVfc2l6ZSk7DQo+ICsJc3RydWN0IHZpcnRpb19w Y2lfZGV2ICpkZXYgPSB2aXJ0aW9fcGNpX2dldF9kZXYoaHcpOw0KPiArDQo+ICsJcnRlX3dyaXRl MTYocXVldWVfaWQsICZkZXYtPmNvbW1vbl9jZmctPnF1ZXVlX3NlbGVjdCk7DQo+ICsJcmV0dXJu IHJ0ZV9yZWFkMTYoJmRldi0+Y29tbW9uX2NmZy0+cXVldWVfc2l6ZSk7DQo+ICB9DQo+IA0KPiAg c3RhdGljIGludA0KPiAgbW9kZXJuX3NldHVwX3F1ZXVlKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBz dHJ1Y3QgdmlydHF1ZXVlICp2cSkNCj4gIHsNCj4gKwlzdHJ1Y3QgdmlydGlvX3BjaV9kZXYgKmRl diA9IHZpcnRpb19wY2lfZ2V0X2Rldihodyk7DQo+ICAJdWludDY0X3QgZGVzY19hZGRyLCBhdmFp bF9hZGRyLCB1c2VkX2FkZHI7DQo+ICAJdWludDE2X3Qgbm90aWZ5X29mZjsNCj4gDQo+IEBAIC00 MDUsMjAgKzQyMywyMCBAQCBtb2Rlcm5fc2V0dXBfcXVldWUoc3RydWN0IHZpcnRpb19odyAqaHcs IHN0cnVjdA0KPiB2aXJ0cXVldWUgKnZxKQ0KPiAgCQkJCQkJCSByaW5nW3ZxLT52cV9uZW50cmll c10pLA0KPiAgCQkJCSAgIFZJUlRJT19QQ0lfVlJJTkdfQUxJR04pOw0KPiANCj4gLQlydGVfd3Jp dGUxNih2cS0+dnFfcXVldWVfaW5kZXgsICZody0+Y29tbW9uX2NmZy0+cXVldWVfc2VsZWN0KTsN Cj4gKwlydGVfd3JpdGUxNih2cS0+dnFfcXVldWVfaW5kZXgsICZkZXYtPmNvbW1vbl9jZmctPnF1 ZXVlX3NlbGVjdCk7DQo+IA0KPiAtCWlvX3dyaXRlNjRfdHdvcGFydChkZXNjX2FkZHIsICZody0+ Y29tbW9uX2NmZy0+cXVldWVfZGVzY19sbywNCj4gLQkJCQkgICAgICAmaHctPmNvbW1vbl9jZmct PnF1ZXVlX2Rlc2NfaGkpOw0KPiAtCWlvX3dyaXRlNjRfdHdvcGFydChhdmFpbF9hZGRyLCAmaHct PmNvbW1vbl9jZmctPnF1ZXVlX2F2YWlsX2xvLA0KPiAtCQkJCSAgICAgICAmaHctPmNvbW1vbl9j ZmctPnF1ZXVlX2F2YWlsX2hpKTsNCj4gLQlpb193cml0ZTY0X3R3b3BhcnQodXNlZF9hZGRyLCAm aHctPmNvbW1vbl9jZmctPnF1ZXVlX3VzZWRfbG8sDQo+IC0JCQkJICAgICAgJmh3LT5jb21tb25f Y2ZnLT5xdWV1ZV91c2VkX2hpKTsNCj4gKwlpb193cml0ZTY0X3R3b3BhcnQoZGVzY19hZGRyLCAm ZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9kZXNjX2xvLA0KPiArCQkJCSAgICAgICZkZXYtPmNvbW1v bl9jZmctPnF1ZXVlX2Rlc2NfaGkpOw0KPiArCWlvX3dyaXRlNjRfdHdvcGFydChhdmFpbF9hZGRy LCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9hdmFpbF9sbywNCj4gKwkJCQkgICAgICAgJmRldi0+ Y29tbW9uX2NmZy0+cXVldWVfYXZhaWxfaGkpOw0KPiArCWlvX3dyaXRlNjRfdHdvcGFydCh1c2Vk X2FkZHIsICZkZXYtPmNvbW1vbl9jZmctPnF1ZXVlX3VzZWRfbG8sDQo+ICsJCQkJICAgICAgJmRl di0+Y29tbW9uX2NmZy0+cXVldWVfdXNlZF9oaSk7DQo+IA0KPiAtCW5vdGlmeV9vZmYgPSBydGVf cmVhZDE2KCZody0+Y29tbW9uX2NmZy0+cXVldWVfbm90aWZ5X29mZik7DQo+IC0JdnEtPm5vdGlm eV9hZGRyID0gKHZvaWQgKikoKHVpbnQ4X3QgKilody0+bm90aWZ5X2Jhc2UgKw0KPiAtCQkJCW5v dGlmeV9vZmYgKiBody0+bm90aWZ5X29mZl9tdWx0aXBsaWVyKTsNCj4gKwlub3RpZnlfb2ZmID0g cnRlX3JlYWQxNigmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9ub3RpZnlfb2ZmKTsNCj4gKwl2cS0+ bm90aWZ5X2FkZHIgPSAodm9pZCAqKSgodWludDhfdCAqKWRldi0+bm90aWZ5X2Jhc2UgKw0KPiAr CQkJCW5vdGlmeV9vZmYgKiBkZXYtPm5vdGlmeV9vZmZfbXVsdGlwbGllcik7DQo+IA0KPiAtCXJ0 ZV93cml0ZTE2KDEsICZody0+Y29tbW9uX2NmZy0+cXVldWVfZW5hYmxlKTsNCj4gKwlydGVfd3Jp dGUxNigxLCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9lbmFibGUpOw0KPiANCj4gIAlQTURfSU5J VF9MT0coREVCVUcsICJxdWV1ZSAldSBhZGRyZXNzZXM6IiwgdnEtPnZxX3F1ZXVlX2luZGV4KTsN Cj4gIAlQTURfSU5JVF9MT0coREVCVUcsICJcdCBkZXNjX2FkZHI6ICUiIFBSSXg2NCwgZGVzY19h ZGRyKTsNCj4gQEAgLTQzMywxNiArNDUxLDE4IEBAIG1vZGVybl9zZXR1cF9xdWV1ZShzdHJ1Y3Qg dmlydGlvX2h3ICpodywgc3RydWN0DQo+IHZpcnRxdWV1ZSAqdnEpDQo+ICBzdGF0aWMgdm9pZA0K PiAgbW9kZXJuX2RlbF9xdWV1ZShzdHJ1Y3QgdmlydGlvX2h3ICpodywgc3RydWN0IHZpcnRxdWV1 ZSAqdnEpDQo+ICB7DQo+IC0JcnRlX3dyaXRlMTYodnEtPnZxX3F1ZXVlX2luZGV4LCAmaHctPmNv bW1vbl9jZmctPnF1ZXVlX3NlbGVjdCk7DQo+ICsJc3RydWN0IHZpcnRpb19wY2lfZGV2ICpkZXYg PSB2aXJ0aW9fcGNpX2dldF9kZXYoaHcpOw0KPiArDQo+ICsJcnRlX3dyaXRlMTYodnEtPnZxX3F1 ZXVlX2luZGV4LCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9zZWxlY3QpOw0KPiANCj4gLQlpb193 cml0ZTY0X3R3b3BhcnQoMCwgJmh3LT5jb21tb25fY2ZnLT5xdWV1ZV9kZXNjX2xvLA0KPiAtCQkJ CSAgJmh3LT5jb21tb25fY2ZnLT5xdWV1ZV9kZXNjX2hpKTsNCj4gLQlpb193cml0ZTY0X3R3b3Bh cnQoMCwgJmh3LT5jb21tb25fY2ZnLT5xdWV1ZV9hdmFpbF9sbywNCj4gLQkJCQkgICZody0+Y29t bW9uX2NmZy0+cXVldWVfYXZhaWxfaGkpOw0KPiAtCWlvX3dyaXRlNjRfdHdvcGFydCgwLCAmaHct PmNvbW1vbl9jZmctPnF1ZXVlX3VzZWRfbG8sDQo+IC0JCQkJICAmaHctPmNvbW1vbl9jZmctPnF1 ZXVlX3VzZWRfaGkpOw0KPiArCWlvX3dyaXRlNjRfdHdvcGFydCgwLCAmZGV2LT5jb21tb25fY2Zn LT5xdWV1ZV9kZXNjX2xvLA0KPiArCQkJCSAgJmRldi0+Y29tbW9uX2NmZy0+cXVldWVfZGVzY19o aSk7DQo+ICsJaW9fd3JpdGU2NF90d29wYXJ0KDAsICZkZXYtPmNvbW1vbl9jZmctPnF1ZXVlX2F2 YWlsX2xvLA0KPiArCQkJCSAgJmRldi0+Y29tbW9uX2NmZy0+cXVldWVfYXZhaWxfaGkpOw0KPiAr CWlvX3dyaXRlNjRfdHdvcGFydCgwLCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV91c2VkX2xvLA0K PiArCQkJCSAgJmRldi0+Y29tbW9uX2NmZy0+cXVldWVfdXNlZF9oaSk7DQo+IA0KPiAtCXJ0ZV93 cml0ZTE2KDAsICZody0+Y29tbW9uX2NmZy0+cXVldWVfZW5hYmxlKTsNCj4gKwlydGVfd3JpdGUx NigwLCAmZGV2LT5jb21tb25fY2ZnLT5xdWV1ZV9lbmFibGUpOw0KPiAgfQ0KPiANCj4gIHN0YXRp YyB2b2lkDQo+IEBAIC02MDcsMTggKzYyNywxOSBAQCBnZXRfY2ZnX2FkZHIoc3RydWN0IHJ0ZV9w Y2lfZGV2aWNlICpkZXYsIHN0cnVjdA0KPiB2aXJ0aW9fcGNpX2NhcCAqY2FwKQ0KPiAgI2RlZmlu ZSBQQ0lfTVNJWF9FTkFCTEUgMHg4MDAwDQo+IA0KPiAgc3RhdGljIGludA0KPiAtdmlydGlvX3Jl YWRfY2FwcyhzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgc3RydWN0IHZpcnRpb19odyAqaHcp DQo+ICt2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2Rldiwgc3Ry dWN0IHZpcnRpb19odyAqaHcpDQo+ICB7DQo+ICsJc3RydWN0IHZpcnRpb19wY2lfZGV2ICpkZXYg PSB2aXJ0aW9fcGNpX2dldF9kZXYoaHcpOw0KPiAgCXVpbnQ4X3QgcG9zOw0KPiAgCXN0cnVjdCB2 aXJ0aW9fcGNpX2NhcCBjYXA7DQo+ICAJaW50IHJldDsNCj4gDQo+IC0JaWYgKHJ0ZV9wY2lfbWFw X2RldmljZShkZXYpKSB7DQo+ICsJaWYgKHJ0ZV9wY2lfbWFwX2RldmljZShwY2lfZGV2KSkgew0K PiAgCQlQTURfSU5JVF9MT0coREVCVUcsICJmYWlsZWQgdG8gbWFwIHBjaSBkZXZpY2UhIik7DQo+ ICAJCXJldHVybiAtMTsNCj4gIAl9DQo+IA0KPiAtCXJldCA9IHJ0ZV9wY2lfcmVhZF9jb25maWco ZGV2LCAmcG9zLCAxLCBQQ0lfQ0FQQUJJTElUWV9MSVNUKTsNCj4gKwlyZXQgPSBydGVfcGNpX3Jl YWRfY29uZmlnKHBjaV9kZXYsICZwb3MsIDEsIFBDSV9DQVBBQklMSVRZX0xJU1QpOw0KPiAgCWlm IChyZXQgIT0gMSkgew0KPiAgCQlQTURfSU5JVF9MT0coREVCVUcsDQo+ICAJCQkgICAgICJmYWls ZWQgdG8gcmVhZCBwY2kgY2FwYWJpbGl0eSBsaXN0LCByZXQgJWQiLCByZXQpOw0KPiBAQCAtNjI2 LDcgKzY0Nyw3IEBAIHZpcnRpb19yZWFkX2NhcHMoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYs IHN0cnVjdA0KPiB2aXJ0aW9faHcgKmh3KQ0KPiAgCX0NCj4gDQo+ICAJd2hpbGUgKHBvcykgew0K PiAtCQlyZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJmNhcCwgMiwgcG9zKTsNCj4gKwkJ cmV0ID0gcnRlX3BjaV9yZWFkX2NvbmZpZyhwY2lfZGV2LCAmY2FwLCAyLCBwb3MpOw0KPiAgCQlp ZiAocmV0ICE9IDIpIHsNCj4gIAkJCVBNRF9JTklUX0xPRyhERUJVRywNCj4gIAkJCQkgICAgICJm YWlsZWQgdG8gcmVhZCBwY2kgY2FwIGF0IHBvczogJXggcmV0ICVkIiwNCj4gQEAgLTY0Miw3ICs2 NjMsNyBAQCB2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1 Y3QNCj4gdmlydGlvX2h3ICpodykNCj4gIAkJCSAqLw0KPiAgCQkJdWludDE2X3QgZmxhZ3M7DQo+ IA0KPiAtCQkJcmV0ID0gcnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsICZmbGFncywgc2l6ZW9mKGZs YWdzKSwNCj4gKwkJCXJldCA9IHJ0ZV9wY2lfcmVhZF9jb25maWcocGNpX2RldiwgJmZsYWdzLCBz aXplb2YoZmxhZ3MpLA0KPiAgCQkJCQlwb3MgKyAyKTsNCj4gIAkJCWlmIChyZXQgIT0gc2l6ZW9m KGZsYWdzKSkgew0KPiAgCQkJCVBNRF9JTklUX0xPRyhERUJVRywNCj4gQEAgLTY2NCw3ICs2ODUs NyBAQCB2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3QN Cj4gdmlydGlvX2h3ICpodykNCj4gIAkJCWdvdG8gbmV4dDsNCj4gIAkJfQ0KPiANCj4gLQkJcmV0 ID0gcnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsICZjYXAsIHNpemVvZihjYXApLCBwb3MpOw0KPiAr CQlyZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKHBjaV9kZXYsICZjYXAsIHNpemVvZihjYXApLCBw b3MpOw0KPiAgCQlpZiAocmV0ICE9IHNpemVvZihjYXApKSB7DQo+ICAJCQlQTURfSU5JVF9MT0co REVCVUcsDQo+ICAJCQkJICAgICAiZmFpbGVkIHRvIHJlYWQgcGNpIGNhcCBhdCBwb3M6ICV4IHJl dCAlZCIsDQo+IEBAIC02NzgsMjQgKzY5OSwyNCBAQCB2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBy dGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3QNCj4gdmlydGlvX2h3ICpodykNCj4gDQo+ICAJCXN3 aXRjaCAoY2FwLmNmZ190eXBlKSB7DQo+ICAJCWNhc2UgVklSVElPX1BDSV9DQVBfQ09NTU9OX0NG RzoNCj4gLQkJCWh3LT5jb21tb25fY2ZnID0gZ2V0X2NmZ19hZGRyKGRldiwgJmNhcCk7DQo+ICsJ CQlkZXYtPmNvbW1vbl9jZmcgPSBnZXRfY2ZnX2FkZHIocGNpX2RldiwgJmNhcCk7DQo+ICAJCQli cmVhazsNCj4gIAkJY2FzZSBWSVJUSU9fUENJX0NBUF9OT1RJRllfQ0ZHOg0KPiAtCQkJcmV0ID0g cnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsDQo+IC0JCQkJCSZody0+bm90aWZ5X29mZl9tdWx0aXBs aWVyLA0KPiArCQkJcmV0ID0gcnRlX3BjaV9yZWFkX2NvbmZpZyhwY2lfZGV2LA0KPiArCQkJCQkm ZGV2LT5ub3RpZnlfb2ZmX211bHRpcGxpZXIsDQo+ICAJCQkJCTQsIHBvcyArIHNpemVvZihjYXAp KTsNCj4gIAkJCWlmIChyZXQgIT0gNCkNCj4gIAkJCQlQTURfSU5JVF9MT0coREVCVUcsDQo+ICAJ CQkJCSJmYWlsZWQgdG8gcmVhZCBub3RpZnlfb2ZmX211bHRpcGxpZXIsIHJldCAlZCIsDQo+ICAJ CQkJCXJldCk7DQo+ICAJCQllbHNlDQo+IC0JCQkJaHctPm5vdGlmeV9iYXNlID0gZ2V0X2NmZ19h ZGRyKGRldiwgJmNhcCk7DQo+ICsJCQkJZGV2LT5ub3RpZnlfYmFzZSA9IGdldF9jZmdfYWRkcihw Y2lfZGV2LCAmY2FwKTsNCj4gIAkJCWJyZWFrOw0KPiAgCQljYXNlIFZJUlRJT19QQ0lfQ0FQX0RF VklDRV9DRkc6DQo+IC0JCQlody0+ZGV2X2NmZyA9IGdldF9jZmdfYWRkcihkZXYsICZjYXApOw0K PiArCQkJZGV2LT5kZXZfY2ZnID0gZ2V0X2NmZ19hZGRyKHBjaV9kZXYsICZjYXApOw0KPiAgCQkJ YnJlYWs7DQo+ICAJCWNhc2UgVklSVElPX1BDSV9DQVBfSVNSX0NGRzoNCj4gLQkJCWh3LT5pc3Ig PSBnZXRfY2ZnX2FkZHIoZGV2LCAmY2FwKTsNCj4gKwkJCWRldi0+aXNyID0gZ2V0X2NmZ19hZGRy KHBjaV9kZXYsICZjYXApOw0KPiAgCQkJYnJlYWs7DQo+ICAJCX0NCj4gDQo+IEBAIC03MDMsMTkg KzcyNCwxOSBAQCB2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBz dHJ1Y3QNCj4gdmlydGlvX2h3ICpodykNCj4gIAkJcG9zID0gY2FwLmNhcF9uZXh0Ow0KPiAgCX0N Cj4gDQo+IC0JaWYgKGh3LT5jb21tb25fY2ZnID09IE5VTEwgfHwgaHctPm5vdGlmeV9iYXNlID09 IE5VTEwgfHwNCj4gLQkgICAgaHctPmRldl9jZmcgPT0gTlVMTCAgICB8fCBody0+aXNyID09IE5V TEwpIHsNCj4gKwlpZiAoZGV2LT5jb21tb25fY2ZnID09IE5VTEwgfHwgZGV2LT5ub3RpZnlfYmFz ZSA9PSBOVUxMIHx8DQo+ICsJICAgIGRldi0+ZGV2X2NmZyA9PSBOVUxMICAgIHx8IGRldi0+aXNy ID09IE5VTEwpIHsNCj4gIAkJUE1EX0lOSVRfTE9HKElORk8sICJubyBtb2Rlcm4gdmlydGlvIHBj aSBkZXZpY2UgZm91bmQuIik7DQo+ICAJCXJldHVybiAtMTsNCj4gIAl9DQo+IA0KPiAgCVBNRF9J TklUX0xPRyhJTkZPLCAiZm91bmQgbW9kZXJuIHZpcnRpbyBwY2kgZGV2aWNlLiIpOw0KPiANCj4g LQlQTURfSU5JVF9MT0coREVCVUcsICJjb21tb24gY2ZnIG1hcHBlZCBhdDogJXAiLCBody0+Y29t bW9uX2NmZyk7DQo+IC0JUE1EX0lOSVRfTE9HKERFQlVHLCAiZGV2aWNlIGNmZyBtYXBwZWQgYXQ6 ICVwIiwgaHctPmRldl9jZmcpOw0KPiAtCVBNRF9JTklUX0xPRyhERUJVRywgImlzciBjZmcgbWFw cGVkIGF0OiAlcCIsIGh3LT5pc3IpOw0KPiArCVBNRF9JTklUX0xPRyhERUJVRywgImNvbW1vbiBj ZmcgbWFwcGVkIGF0OiAlcCIsIGRldi0+Y29tbW9uX2NmZyk7DQo+ICsJUE1EX0lOSVRfTE9HKERF QlVHLCAiZGV2aWNlIGNmZyBtYXBwZWQgYXQ6ICVwIiwgZGV2LT5kZXZfY2ZnKTsNCj4gKwlQTURf SU5JVF9MT0coREVCVUcsICJpc3IgY2ZnIG1hcHBlZCBhdDogJXAiLCBkZXYtPmlzcik7DQo+ICAJ UE1EX0lOSVRfTE9HKERFQlVHLCAibm90aWZ5IGJhc2U6ICVwLCBub3RpZnkgb2ZmIG11bHRpcGxp ZXI6ICV1IiwNCj4gLQkJaHctPm5vdGlmeV9iYXNlLCBody0+bm90aWZ5X29mZl9tdWx0aXBsaWVy KTsNCj4gKwkJZGV2LT5ub3RpZnlfYmFzZSwgZGV2LT5ub3RpZnlfb2ZmX211bHRpcGxpZXIpOw0K PiANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fcGNpLmggYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5oDQo+IGluZGV4 IGE2MGVkYzRhOTMuLjU2MjliMzcwNTAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fcGNpLmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2kuaA0K PiBAQCAtMjY0LDEzICsyNjQsOCBAQCBzdHJ1Y3QgdmlydGlvX2h3IHsNCj4gIAlib29sICAgICAg ICBoYXNfcnhfb2ZmbG9hZDsNCj4gIAl1aW50MTZfdCAgICBwb3J0X2lkOw0KPiAgCXVpbnQ4X3Qg ICAgIG1hY19hZGRyW1JURV9FVEhFUl9BRERSX0xFTl07DQo+IC0JdWludDMyX3QgICAgbm90aWZ5 X29mZl9tdWx0aXBsaWVyOw0KPiAgCXVpbnQzMl90ICAgIHNwZWVkOyAgLyogbGluayBzcGVlZCBp biBNQiAqLw0KPiAgCXVpbnQ4X3QgICAgIGR1cGxleDsNCj4gLQl1aW50OF90ICAgICAqaXNyOw0K PiAtCXVpbnQxNl90ICAgICpub3RpZnlfYmFzZTsNCj4gLQlzdHJ1Y3QgdmlydGlvX3BjaV9jb21t b25fY2ZnICpjb21tb25fY2ZnOw0KPiAtCXN0cnVjdCB2aXJ0aW9fbmV0X2NvbmZpZyAqZGV2X2Nm ZzsNCj4gIAkvKg0KPiAgCSAqIEFwcCBtYW5hZ2VtZW50IHRocmVhZCBhbmQgdmlydGlvIGludGVy cnVwdCBoYW5kbGVyIHRocmVhZA0KPiAgCSAqIGJvdGggY2FuIGNoYW5nZSBkZXZpY2Ugc3RhdGUs IHRoaXMgbG9jayBpcyBtZWFudCB0byBhdm9pZA0KPiBAQCAtMjg2LDYgKzI4MSwxMSBAQCBzdHJ1 Y3QgdmlydGlvX2h3IHsNCj4gIHN0cnVjdCB2aXJ0aW9fcGNpX2RldiB7DQo+ICAJc3RydWN0IHZp cnRpb19odyBodzsNCj4gIAlzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXY7DQo+ICsJc3Ry dWN0IHZpcnRpb19wY2lfY29tbW9uX2NmZyAqY29tbW9uX2NmZzsNCj4gKwlzdHJ1Y3QgdmlydGlv X25ldF9jb25maWcgKmRldl9jZmc7DQo+ICsJdWludDhfdCAqaXNyOw0KPiArCXVpbnQxNl90ICpu b3RpZnlfYmFzZTsNCj4gKwl1aW50MzJfdCBub3RpZnlfb2ZmX211bHRpcGxpZXI7DQo+ICAJYm9v bCBtb2Rlcm47DQo+ICB9Ow0KPiANCj4gLS0NCj4gMi4yOS4yDQoNClJldmlld2VkLWJ5OiBDaGVu Ym8gWGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCg==