Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3141334ybv; Mon, 24 Feb 2020 19:08:25 -0800 (PST) X-Google-Smtp-Source: APXvYqw+L+DpoJRLlnptgdHtE7FKjMde93Ojpazpw2JOUyKkkB7FJmBVZen8hCDSGRrvdpS4NAti X-Received: by 2002:a05:6830:18ce:: with SMTP id v14mr41702171ote.36.1582600105595; Mon, 24 Feb 2020 19:08:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582600105; cv=none; d=google.com; s=arc-20160816; b=dFqDHdEYnjG9Hs4s0bl0mlX0SLNm6pjV8E46ZwTMDGtIGYeqe2MVVDx+kZ++AuvSZT gpZv7VfrkASR+lkMRYC17D2RX+d4qbzIej0VnqkYu2uCDtl84ozm1q4G+Jvb3QBHqB0D gxqo5rLnIwvJUNAdamph3zhyPYOxj5GcAnG8oi5b3PcX6X2qnTMhZYdNuz8wAP0kD4D+ T0CgS3ry+t2FyNN/V9Xf4nagKZ/8PrxKQICPMR1d+1l0vlKSNYM0d/N1fsAssUixbFL3 lWVUpZ0rH+zpVEJbQs8lFM6fNRyHApWE643MsF/o5UvPvqZlDry9U7LtG4iZ1eEv+2AX kILg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=Xgh+Xo4IsXLFGcysmq8lUdEocSEhCe5fEhw/dBBCJfE=; b=05pwZl39aDC+TzxrCaG8yoRqhjCGztQ1WgVZU2cZRD12pAssemKDg+p/e5ihbPvUhe u+iSONI/hi0r9qDebjR9Cr4NsSu90pY/Id7rF/K8KrFPWyJn9b7WdSX1296m5qouptgR z0ghrfCrBJ7xy4qh7PfxxeIKO4HLyHudnlAPQeEeeIT71SCa46feDIEHXaJ0kMrgJAk+ 8Vs+XCJiZFNhk7dePpUGpx18HuMCa78D+2L5T6ToM0uDGKkR7kscDVvk/e1OC+xWp1OS UF9GhSEEnYyiEoLeWN2RzZXXrPAzoRAk9glS1IZI1XNuNqJxS8Mmj3KPGj210Gp9IsHq 2kbg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i3si7512428otc.272.2020.02.24.19.08.12; Mon, 24 Feb 2020 19:08:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728862AbgBYDII (ORCPT + 99 others); Mon, 24 Feb 2020 22:08:08 -0500 Received: from mga09.intel.com ([134.134.136.24]:2212 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728011AbgBYDII (ORCPT ); Mon, 24 Feb 2020 22:08:08 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Feb 2020 19:08:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,482,1574150400"; d="scan'208";a="237534007" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 24 Feb 2020 19:08:04 -0800 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 24 Feb 2020 19:08:04 -0800 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 24 Feb 2020 19:08:04 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.5]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.97]) with mapi id 14.03.0439.000; Tue, 25 Feb 2020 11:08:01 +0800 From: "Tian, Kevin" To: Alex Williamson , "kvm@vger.kernel.org" CC: "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "dev@dpdk.org" , "mtosatti@redhat.com" , "thomas@monjalon.net" , "bluca@debian.org" , "jerinjacobk@gmail.com" , "Richardson, Bruce" , "cohuck@redhat.com" Subject: RE: [PATCH v2 5/7] vfio/pci: Add sriov_configure support Thread-Topic: [PATCH v2 5/7] vfio/pci: Add sriov_configure support Thread-Index: AQHV51YaoTnickP570etlLGInd5eAKgrQJIw Date: Tue, 25 Feb 2020 03:08:00 +0000 Message-ID: References: <158213716959.17090.8399427017403507114.stgit@gimli.home> <158213846731.17090.37693075723046377.stgit@gimli.home> In-Reply-To: <158213846731.17090.37693075723046377.stgit@gimli.home> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOGRlNGZlNmEtNWQyNi00ZmI0LWE1MzgtZGE5OWVhOWFhODU5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidk8wamFLNjNkZnpBSzd5b3VHRmpsTTFBOWRwM3ZYc2hLeFBabTVuSVoxXC9uQ0RrZUpUdzhsZURYT1RSb1BZak8ifQ== dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBBbGV4IFdpbGxpYW1zb24NCj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDIwLCAy MDIwIDI6NTQgQU0NCj4gDQo+IFdpdGggdGhlIFZGIFRva2VuIGludGVyZmFjZSB3ZSBjYW4gbm93 IGV4cGVjdCB0aGF0IGEgdmZpbyB1c2Vyc3BhY2UNCj4gZHJpdmVyIG11c3QgYmUgaW4gY29sbGFi b3JhdGlvbiB3aXRoIHRoZSBQRiBkcml2ZXIsIGFuIHVud2l0dGluZw0KPiB1c2Vyc3BhY2UgZHJp dmVyIHdpbGwgbm90IGJlIGFibGUgdG8gZ2V0IHBhc3QgdGhlIEdFVF9ERVZJQ0VfRkQgc3RlcA0K PiBpbiBhY2Nlc3NpbmcgdGhlIGRldmljZS4gIFdlIGNhbiBub3cgbW92ZSBvbiB0byBhY3R1YWxs eSBhbGxvd2luZw0KPiBTUi1JT1YgdG8gYmUgZW5hYmxlZCBieSB2ZmlvLXBjaSBvbiB0aGUgUEYu ICBTdXBwb3J0IGZvciB0aGlzIGlzIG5vdA0KPiBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGhpcyBj b21taXQsIGJ1dCBpdCBkb2VzIHByb3ZpZGUgYSBtb2R1bGUgb3B0aW9uDQo+IGZvciB0aGlzIHRv IGJlIGVuYWJsZWQgKGVuYWJsZV9zcmlvdj0xKS4gIEVuYWJsaW5nIFZGcyBpcyByYXRoZXINCj4g c3RyYWlnaHRmb3J3YXJkLCBleGNlcHQgd2UgZG9uJ3Qgd2FudCB0byByaXNrIHRoYXQgYSBWRiBt aWdodCBnZXQNCj4gYXV0b3Byb2JlZCBhbmQgYm91bmQgdG8gb3RoZXIgZHJpdmVycywgc28gYSBi dXMgbm90aWZpZXIgaXMgdXNlZCB0bw0KPiAiY2FwdHVyZSIgVkZzIHRvIHZmaW8tcGNpIHVzaW5n IHRoZSBkcml2ZXJfb3ZlcnJpZGUgc3VwcG9ydC4gIFdlDQo+IGFzc3VtZSBhbnkgbGF0ZXIgYWN0 aW9uIHRvIGJpbmQgdGhlIGRldmljZSB0byBvdGhlciBkcml2ZXJzIGlzDQo+IGNvbmRvbmVkIGJ5 IHRoZSBzeXN0ZW0gYWRtaW4gYW5kIGFsbG93IGl0IHdpdGggYSBsb2cgd2FybmluZy4NCj4gDQo+ IHZmaW8tcGNpIHdpbGwgZGlzYWJsZSBTUi1JT1Ygb24gYSBQRiBiZWZvcmUgcmVsZWFzaW5nIHRo ZSBkZXZpY2UsDQo+IGFsbG93aW5nIGEgVkYgZHJpdmVyIHRvIGJlIGFzc3VyZWQgb3RoZXIgZHJp dmVycyBjYW5ub3QgdGFrZSBvdmVyIHRoZQ0KPiBQRiBhbmQgdGhhdCBhbnkgb3RoZXIgdXNlcnNw YWNlIGRyaXZlciBtdXN0IGtub3cgdGhlIHNoYXJlZCBWRiB0b2tlbi4NCj4gVGhpcyBzdXBwb3J0 IGFsc28gZG9lcyBub3QgcHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgdGhlIFBGIHVzZXJzcGFjZQ0K PiBkcml2ZXIgaXRzZWxmIHRvIG1hbmlwdWxhdGUgU1ItSU9WIHRocm91Z2ggdGhlIHZmaW8gQVBJ LiAgV2l0aCB0aGlzDQo+IHBhdGNoIFNSLUlPViBjYW4gb25seSBiZSBlbmFibGVkIHZpYSB0aGUg aG9zdCBzeXNmcyBpbnRlcmZhY2UgYW5kIHRoZQ0KPiBQRiBkcml2ZXIgdXNlciBjYW5ub3QgY3Jl YXRlIG9yIHJlbW92ZSBWRnMuDQoNCkknbSBub3Qgc3VyZSBob3cgbWFueSBkZXZpY2VzIGNhbiBi ZSBwcm9wZXJseSBjb25maWd1cmVkIHNpbXBseSANCndpdGggcGNpX2VuYWJsZV9zcmlvdi4gSXQg aXMgbm90IHVudXN1YWwgdG8gcmVxdWlyZSBQRiBkcml2ZXIgcHJlcGFyZQ0Kc29tZXRoaW5nIGJl Zm9yZSB0dXJuaW5nIFBDSSBTUi1JT1YgY2FwYWJpbGl0eS4gSWYgeW91IGxvb2sga2VybmVsDQpQ RiBkcml2ZXJzLCB0aGVyZSBhcmUgb25seSB0d28gdXNpbmcgZ2VuZXJpYyBwY2lfc3Jpb3ZfY29u ZmlndXJlXw0Kc2ltcGxlIChzaW1wbGUgd3JhcHBlciBsaWtlIHBjaV9lbmFibGVfc3Jpb3YpLCB3 aGlsZSBtb3N0IG90aGVycw0KaW1wbGVtZW50aW5nIHRoZWlyIG93biBjYWxsYmFjay4gSG93ZXZl ciB2ZmlvIGl0c2VsZiBoYXMgbm8gaWRlYQ0KdGh1cyBJJ20gbm90IHN1cmUgaG93IGFuIHVzZXIg a25vd3Mgd2hldGhlciB1c2luZyB0aGlzIG9wdGlvbiBjYW4NCmFjdHVhbGx5IG1lZXQgaGlzIHB1 cnBvc2UuIEkgbWF5IG1pc3Mgc29tZXRoaW5nIGhlcmUsIHBvc3NpYmx5IA0KdXNpbmcgRFBESyBh cyBhbiBleGFtcGxlIHdpbGwgbWFrZSBpdCBjbGVhcmVyLg0KDQo+IA0KPiBTaWduZWQtb2ZmLWJ5 OiBBbGV4IFdpbGxpYW1zb24gPGFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tPg0KPiAtLS0NCj4g IGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2kuYyAgICAgICAgIHwgIDEwNiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0NCj4gLS0NCj4gIGRyaXZlcnMvdmZpby9wY2kvdmZpb19wY2lf cHJpdmF0ZS5oIHwgICAgMiArDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvdmZp b19wY2kuYyBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2kuYw0KPiBpbmRleCBlNGQ1ZDI2ZTVl NzEuLmI0MGFkZTQ4YTg0NCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92ZmlvL3BjaS92ZmlvX3Bj aS5jDQo+ICsrKyBiL2RyaXZlcnMvdmZpby9wY2kvdmZpb19wY2kuYw0KPiBAQCAtNTQsNiArNTQs MTIgQEAgbW9kdWxlX3BhcmFtKGRpc2FibGVfaWRsZV9kMywgYm9vbCwgU19JUlVHTyB8DQo+IFNf SVdVU1IpOw0KPiAgTU9EVUxFX1BBUk1fREVTQyhkaXNhYmxlX2lkbGVfZDMsDQo+ICAJCSAiRGlz YWJsZSB1c2luZyB0aGUgUENJIEQzIGxvdyBwb3dlciBzdGF0ZSBmb3IgaWRsZSwgdW51c2VkDQo+ IGRldmljZXMiKTsNCj4gDQo+ICtzdGF0aWMgYm9vbCBlbmFibGVfc3Jpb3Y7DQo+ICsjaWZkZWYg Q09ORklHX1BDSV9JT1YNCj4gK21vZHVsZV9wYXJhbShlbmFibGVfc3Jpb3YsIGJvb2wsIDA2NDQp Ow0KPiArTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfc3Jpb3YsICJFbmFibGUgc3VwcG9ydCBmb3Ig U1ItSU9WDQo+IGNvbmZpZ3VyYXRpb24iKTsNCj4gKyNlbmRpZg0KPiArDQo+ICBzdGF0aWMgaW5s aW5lIGJvb2wgdmZpb192Z2FfZGlzYWJsZWQodm9pZCkNCj4gIHsNCj4gICNpZmRlZiBDT05GSUdf VkZJT19QQ0lfVkdBDQo+IEBAIC0xNTI4LDYgKzE1MzQsMzUgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB2ZmlvX2RldmljZV9vcHMgdmZpb19wY2lfb3BzID0NCj4gew0KPiANCj4gIHN0YXRpYyBpbnQg dmZpb19wY2lfcmVmbGNrX2F0dGFjaChzdHJ1Y3QgdmZpb19wY2lfZGV2aWNlICp2ZGV2KTsNCj4g IHN0YXRpYyB2b2lkIHZmaW9fcGNpX3JlZmxja19wdXQoc3RydWN0IHZmaW9fcGNpX3JlZmxjayAq cmVmbGNrKTsNCj4gK3N0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciB2ZmlvX3BjaV9kcml2ZXI7DQo+ ICsNCj4gK3N0YXRpYyBpbnQgdmZpb19wY2lfYnVzX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9i bG9jayAqbmIsDQo+ICsJCQkJIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpkYXRhKQ0KPiAr ew0KPiArCXN0cnVjdCB2ZmlvX3BjaV9kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2YobmIsDQo+ ICsJCQkJCQkgICAgc3RydWN0IHZmaW9fcGNpX2RldmljZSwgbmIpOw0KPiArCXN0cnVjdCBkZXZp Y2UgKmRldiA9IGRhdGE7DQo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRl dik7DQo+ICsJc3RydWN0IHBjaV9kZXYgKnBoeXNmbiA9IHBjaV9waHlzZm4ocGRldik7DQo+ICsN Cj4gKwlpZiAoYWN0aW9uID09IEJVU19OT1RJRllfQUREX0RFVklDRSAmJg0KPiArCSAgICBwZGV2 LT5pc192aXJ0Zm4gJiYgcGh5c2ZuID09IHZkZXYtPnBkZXYpIHsNCj4gKwkJcGNpX2luZm8odmRl di0+cGRldiwgIkNhcHR1cmVkIFNSLUlPViBWRiAlcw0KPiBkcml2ZXJfb3ZlcnJpZGVcbiIsDQo+ ICsJCQkgcGNpX25hbWUocGRldikpOw0KPiArCQlwZGV2LT5kcml2ZXJfb3ZlcnJpZGUgPSBrYXNw cmludGYoR0ZQX0tFUk5FTCwgIiVzIiwNCj4gKwkJCQkJCSAgdmZpb19wY2lfb3BzLm5hbWUpOw0K PiArCX0gZWxzZSBpZiAoYWN0aW9uID09IEJVU19OT1RJRllfQk9VTkRfRFJJVkVSICYmDQo+ICsJ CSAgIHBkZXYtPmlzX3ZpcnRmbiAmJiBwaHlzZm4gPT0gdmRldi0+cGRldikgew0KPiArCQlzdHJ1 Y3QgcGNpX2RyaXZlciAqZHJ2ID0gcGNpX2Rldl9kcml2ZXIocGRldik7DQo+ICsNCj4gKwkJaWYg KGRydiAmJiBkcnYgIT0gJnZmaW9fcGNpX2RyaXZlcikNCj4gKwkJCXBjaV93YXJuKHZkZXYtPnBk ZXYsDQo+ICsJCQkJICJWRiAlcyBib3VuZCB0byBkcml2ZXIgJXMgd2hpbGUgUEYgYm91bmQgdG8N Cj4gdmZpby1wY2lcbiIsDQo+ICsJCQkJIHBjaV9uYW1lKHBkZXYpLCBkcnYtPm5hbWUpOw0KPiAr CX0NCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiANCj4gIHN0YXRpYyBpbnQgdmZpb19wY2lf cHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpp ZCkNCj4gIHsNCj4gQEAgLTE1MzksMTIgKzE1NzQsMTIgQEAgc3RhdGljIGludCB2ZmlvX3BjaV9w cm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQg KmlkKQ0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gDQo+ICAJLyoNCj4gLQkgKiBQcmV2ZW50IGJp bmRpbmcgdG8gUEZzIHdpdGggVkZzIGVuYWJsZWQsIHRoaXMgdG9vIGVhc2lseSBhbGxvd3MNCj4g LQkgKiB1c2Vyc3BhY2UgaW5zdGFuY2Ugd2l0aCBWRnMgYW5kIFBGcyBmcm9tIHRoZSBzYW1lIGRl dmljZSwgd2hpY2gNCj4gLQkgKiBjYW5ub3Qgd29yay4gIERpc2FibGluZyBTUi1JT1YgaGVyZSB3 b3VsZCBpbml0aWF0ZSByZW1vdmluZyB0aGUNCj4gLQkgKiBWRnMsIHdoaWNoIHdvdWxkIHVuYmlu ZCB0aGUgZHJpdmVyLCB3aGljaCBpcyBwcm9uZSB0byBibG9ja2luZw0KPiAtCSAqIGlmIHRoYXQg VkYgaXMgYWxzbyBpbiB1c2UgYnkgdmZpby1wY2kuICBKdXN0IHJlamVjdCB0aGVzZSBQRnMNCj4g LQkgKiBhbmQgbGV0IHRoZSB1c2VyIHNvcnQgaXQgb3V0Lg0KPiArCSAqIFByZXZlbnQgYmluZGlu ZyB0byBQRnMgd2l0aCBWRnMgZW5hYmxlZCwgdGhlIFZGcyBtaWdodCBiZSBpbiB1c2UNCj4gKwkg KiBieSB0aGUgaG9zdCBvciBvdGhlciB1c2Vycy4gIFdlIGNhbm5vdCBjYXB0dXJlIHRoZSBWRnMg aWYgdGhleQ0KPiArCSAqIGFscmVhZHkgZXhpc3QsIG5vciBjYW4gd2UgdHJhY2sgVkYgdXNlcnMu ICBEaXNhYmxpbmcgU1ItSU9WIGhlcmUNCj4gKwkgKiB3b3VsZCBpbml0aWF0ZSByZW1vdmluZyB0 aGUgVkZzLCB3aGljaCB3b3VsZCB1bmJpbmQgdGhlIGRyaXZlciwNCj4gKwkgKiB3aGljaCBpcyBw cm9uZSB0byBibG9ja2luZyBpZiB0aGF0IFZGIGlzIGFsc28gaW4gdXNlIGJ5IHZmaW8tcGNpLg0K PiArCSAqIEp1c3QgcmVqZWN0IHRoZXNlIFBGcyBhbmQgbGV0IHRoZSB1c2VyIHNvcnQgaXQgb3V0 Lg0KPiAgCSAqLw0KPiAgCWlmIChwY2lfbnVtX3ZmKHBkZXYpKSB7DQo+ICAJCXBjaV93YXJuKHBk ZXYsICJDYW5ub3QgYmluZCB0byBQRiB3aXRoIFNSLUlPViBlbmFibGVkXG4iKTsNCj4gQEAgLTE1 OTIsNiArMTYyNywxOCBAQCBzdGF0aWMgaW50IHZmaW9fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2 ICpwZGV2LA0KPiBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpDQo+ICAJCQlrZnJlZSh2 ZGV2KTsNCj4gIAkJCXJldHVybiAtRU5PTUVNOw0KPiAgCQl9DQo+ICsNCj4gKwkJdmRldi0+bmIu bm90aWZpZXJfY2FsbCA9IHZmaW9fcGNpX2J1c19ub3RpZmllcjsNCj4gKwkJcmV0ID0gYnVzX3Jl Z2lzdGVyX25vdGlmaWVyKCZwY2lfYnVzX3R5cGUsICZ2ZGV2LT5uYik7DQo+ICsJCWlmIChyZXQp IHsNCj4gKwkJCWtmcmVlKHZkZXYtPnZmX3Rva2VuKTsNCj4gKwkJCXZmaW9fcGNpX3JlZmxja19w dXQodmRldi0+cmVmbGNrKTsNCj4gKwkJCXZmaW9fZGVsX2dyb3VwX2RldigmcGRldi0+ZGV2KTsN Cj4gKwkJCXZmaW9faW9tbXVfZ3JvdXBfcHV0KGdyb3VwLCAmcGRldi0+ZGV2KTsNCj4gKwkJCWtm cmVlKHZkZXYpOw0KPiArCQkJcmV0dXJuIHJldDsNCj4gKwkJfQ0KPiArDQo+ICAJCW11dGV4X2lu aXQoJnZkZXYtPnZmX3Rva2VuLT5sb2NrKTsNCj4gIAkJdXVpZF9nZW4oJnZkZXYtPnZmX3Rva2Vu LT51dWlkKTsNCj4gIAl9DQo+IEBAIC0xNjI1LDYgKzE2NzIsOCBAQCBzdGF0aWMgdm9pZCB2Zmlv X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+ICB7DQo+ICAJc3RydWN0IHZmaW9f cGNpX2RldmljZSAqdmRldjsNCj4gDQo+ICsJcGNpX2Rpc2FibGVfc3Jpb3YocGRldik7DQo+ICsN Cj4gIAl2ZGV2ID0gdmZpb19kZWxfZ3JvdXBfZGV2KCZwZGV2LT5kZXYpOw0KPiAgCWlmICghdmRl dikNCj4gIAkJcmV0dXJuOw0KPiBAQCAtMTYzNSw2ICsxNjg0LDkgQEAgc3RhdGljIHZvaWQgdmZp b19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPiAgCQlrZnJlZSh2ZGV2LT52Zl90 b2tlbik7DQo+ICAJfQ0KPiANCj4gKwlpZiAodmRldi0+bmIubm90aWZpZXJfY2FsbCkNCj4gKwkJ YnVzX3VucmVnaXN0ZXJfbm90aWZpZXIoJnBjaV9idXNfdHlwZSwgJnZkZXYtPm5iKTsNCj4gKw0K PiAgCXZmaW9fcGNpX3JlZmxja19wdXQodmRldi0+cmVmbGNrKTsNCj4gDQo+ICAJdmZpb19pb21t dV9ncm91cF9wdXQocGRldi0+ZGV2LmlvbW11X2dyb3VwLCAmcGRldi0+ZGV2KTsNCj4gQEAgLTE2 ODMsMTYgKzE3MzUsNDggQEAgc3RhdGljIHBjaV9lcnNfcmVzdWx0X3QNCj4gdmZpb19wY2lfYWVy X2Vycl9kZXRlY3RlZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gIAlyZXR1cm4gUENJX0VSU19S RVNVTFRfQ0FOX1JFQ09WRVI7DQo+ICB9DQo+IA0KPiArc3RhdGljIGludCB2ZmlvX3BjaV9zcmlv dl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBucl92aXJ0Zm4pDQo+ICt7DQo+ ICsJc3RydWN0IHZmaW9fcGNpX2RldmljZSAqdmRldjsNCj4gKwlzdHJ1Y3QgdmZpb19kZXZpY2Ug KmRldmljZTsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0KPiArCW1pZ2h0X3NsZWVwKCk7DQo+ICsN Cj4gKwlpZiAoIWVuYWJsZV9zcmlvdikNCj4gKwkJcmV0dXJuIC1FTk9FTlQ7DQo+ICsNCj4gKwlk ZXZpY2UgPSB2ZmlvX2RldmljZV9nZXRfZnJvbV9kZXYoJnBkZXYtPmRldik7DQo+ICsJaWYgKCFk ZXZpY2UpDQo+ICsJCXJldHVybiAtRU5PREVWOw0KPiArDQo+ICsJdmRldiA9IHZmaW9fZGV2aWNl X2RhdGEoZGV2aWNlKTsNCj4gKwlpZiAoIXZkZXYpIHsNCj4gKwkJdmZpb19kZXZpY2VfcHV0KGRl dmljZSk7DQo+ICsJCXJldHVybiAtRU5PREVWOw0KPiArCX0NCj4gKw0KPiArCWlmIChucl92aXJ0 Zm4gPT0gMCkNCj4gKwkJcGNpX2Rpc2FibGVfc3Jpb3YocGRldik7DQo+ICsJZWxzZQ0KPiArCQly ZXQgPSBwY2lfZW5hYmxlX3NyaW92KHBkZXYsIG5yX3ZpcnRmbik7DQo+ICsNCj4gKwl2ZmlvX2Rl dmljZV9wdXQoZGV2aWNlKTsNCj4gKw0KPiArCXJldHVybiByZXQgPCAwID8gcmV0IDogbnJfdmly dGZuOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcnJvcl9oYW5kbGVy cyB2ZmlvX2Vycl9oYW5kbGVycyA9IHsNCj4gIAkuZXJyb3JfZGV0ZWN0ZWQgPSB2ZmlvX3BjaV9h ZXJfZXJyX2RldGVjdGVkLA0KPiAgfTsNCj4gDQo+ICBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIg dmZpb19wY2lfZHJpdmVyID0gew0KPiAtCS5uYW1lCQk9ICJ2ZmlvLXBjaSIsDQo+IC0JLmlkX3Rh YmxlCT0gTlVMTCwgLyogb25seSBkeW5hbWljIGlkcyAqLw0KPiAtCS5wcm9iZQkJPSB2ZmlvX3Bj aV9wcm9iZSwNCj4gLQkucmVtb3ZlCQk9IHZmaW9fcGNpX3JlbW92ZSwNCj4gLQkuZXJyX2hhbmRs ZXIJPSAmdmZpb19lcnJfaGFuZGxlcnMsDQo+ICsJLm5hbWUJCQk9ICJ2ZmlvLXBjaSIsDQo+ICsJ LmlkX3RhYmxlCQk9IE5VTEwsIC8qIG9ubHkgZHluYW1pYyBpZHMgKi8NCj4gKwkucHJvYmUJCQk9 IHZmaW9fcGNpX3Byb2JlLA0KPiArCS5yZW1vdmUJCQk9IHZmaW9fcGNpX3JlbW92ZSwNCj4gKwku c3Jpb3ZfY29uZmlndXJlCT0gdmZpb19wY2lfc3Jpb3ZfY29uZmlndXJlLA0KPiArCS5lcnJfaGFu ZGxlcgkJPSAmdmZpb19lcnJfaGFuZGxlcnMsDQo+ICB9Ow0KPiANCj4gIHN0YXRpYyBERUZJTkVf TVVURVgocmVmbGNrX2xvY2spOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3BjaS92Zmlv X3BjaV9wcml2YXRlLmgNCj4gYi9kcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX3ByaXZhdGUuaA0K PiBpbmRleCA3NmMxMWM5MTU5NDkuLjM2ZWM2OTA4MWVjZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy92ZmlvL3BjaS92ZmlvX3BjaV9wcml2YXRlLmgNCj4gKysrIGIvZHJpdmVycy92ZmlvL3BjaS92 ZmlvX3BjaV9wcml2YXRlLmgNCj4gQEAgLTEzLDYgKzEzLDcgQEANCj4gICNpbmNsdWRlIDxsaW51 eC9pcnFieXBhc3MuaD4NCj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KPiAgI2luY2x1ZGUg PGxpbnV4L3V1aWQuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPg0KPiANCj4gICNp Zm5kZWYgVkZJT19QQ0lfUFJJVkFURV9IDQo+ICAjZGVmaW5lIFZGSU9fUENJX1BSSVZBVEVfSA0K PiBAQCAtMTMwLDYgKzEzMSw3IEBAIHN0cnVjdCB2ZmlvX3BjaV9kZXZpY2Ugew0KPiAgCXN0cnVj dCBtdXRleAkJaW9ldmVudGZkc19sb2NrOw0KPiAgCXN0cnVjdCBsaXN0X2hlYWQJaW9ldmVudGZk c19saXN0Ow0KPiAgCXN0cnVjdCB2ZmlvX3BjaV92Zl90b2tlbgkqdmZfdG9rZW47DQo+ICsJc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrCW5iOw0KPiAgfTsNCj4gDQo+ICAjZGVmaW5lIGlzX2ludHgodmRl dikgKHZkZXYtPmlycV90eXBlID09IFZGSU9fUENJX0lOVFhfSVJRX0lOREVYKQ0KDQo=