From mboxrd@z Thu Jan 1 00:00:00 1970 From: Govinda Tatti Subject: [PATCH V3 2/2] Xen/PCIback: Implement PCI flr/slot/bus reset with 'reset' SysFS attribute Date: Thu, 7 Dec 2017 17:21:45 -0500 Message-ID: <20171207222145.9769-3-Govinda.Tatti__18675.3223570578$1512685770$gmane$org@Oracle.COM> References: <20171207222145.9769-1-Govinda.Tatti@Oracle.COM> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eN4ep-0006er-3v for xen-devel@lists.xenproject.org; Thu, 07 Dec 2017 22:28:43 +0000 In-Reply-To: <20171207222145.9769-1-Govinda.Tatti@Oracle.COM> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, bhelgaas@google.com, boris.ostrovsky@Oracle.COM, jgross@suse.com, JBeulich@suse.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhlIGxpZmUtY3ljbGUgb2YgYSBQQ0kgZGV2aWNlIGluIFhlbiBwY2liYWNrIGlzIGNvbXBsZXgg YW5kIGlzIGNvbnN0cmFpbmVkCmJ5IHRoZSBnZW5lcmljIFBDSSBsb2NraW5nIG1lY2hhbmlzbS4K Ci0gSXQgc3RhcnRzIHdpdGggdGhlIGRldmljZSBiZWluZyBib3VuZCB0byB1cywgZm9yIHdoaWNo IHdlIGRvIGEgZnVuY3Rpb24KICByZXNldCAoZG9uZSB2aWEgU3lzRlMgc28gdGhlIFBDSSBsb2Nr IGlzIGhlbGQpLgotIElmIHRoZSBkZXZpY2UgaXMgdW5ib3VuZCBmcm9tIHVzLCB3ZSBhbHNvIGRv IGEgZnVuY3Rpb24gcmVzZXQKICAoZG9uZSB2aWEgU3lzRlMgc28gdGhlIFBDSSBsb2NrIGlzIGhl bGQpLgotIElmIHRoZSBkZXZpY2UgaXMgdW4tYXNzaWduZWQgZnJvbSBhIGd1ZXN0IC0gd2UgZG8g YSBmdW5jdGlvbiByZXNldAogIChubyBQQ0kgbG9jayBpcyBoZWxkKS4KCkFsbCByZXNldCBvcGVy YXRpb25zIGFyZSBkb25lIG9uIHRoZSBpbmRpdmlkdWFsIFBDSSBmdW5jdGlvbiBsZXZlbAooc28g YnVzOmRldmljZTpmdW5jdGlvbikuCgpUaGUgcmVzZXQgZm9yIGFuIGluZGl2aWR1YWwgUENJIGZ1 bmN0aW9uIG1lYW5zIGRldmljZSBtdXN0IHN1cHBvcnQgRkxSCihQQ0llIG9yIEFGKSwgUE0gcmVz ZXQgb24gRDNob3QtPkQwIGRldmljZSBzcGVjaWZpYyByZXNldCwgb3IgYSBzZWNvbmRhcnkKYnVz IHJlc2V0IGZvciBhIHNpbmdsZXRvbiBkZXZpY2Ugb24gYSBidXMgYnV0IEZMUiBkb2VzIG5vdCBo YXZlIHdpZGVzcHJlYWQKc3VwcG9ydCBvciBpdCBpcyBub3QgcmVsaWFibGUgaW4gc29tZSBjYXNl cy4gU28sIHdlIG5lZWQgdG8gcHJvdmlkZSBhbgphbHRlcm5hdGUgbWVjaGFuaXNtIHRvIHVzZXJz IHRvIHBlcmZvcm0gYSBzbG90IG9yIGJ1cyBsZXZlbCByZXNldC4KCkN1cnJlbnRseSwgYSBzbG90 IG9yIGJ1cyByZXNldCBpcyBub3QgZXhwb3NlZCBpbiBTeXNGUyBhcyB0aGVyZSBpcyBubyBnb29k CndheSBvZiBleHBvc2luZyBhIGJ1cyB0b3BvbG9neSB0aGVyZS4gVGhpcyBpcyBkdWUgdG8gdGhl IGNvbXBsZXhpdHkgLQp3ZSBNVVNUIGtub3cgdGhhdCB0aGUgZGlmZmVyZW50IGZ1bmN0aW9ucyBv ZiBhIFBDSWUgZGV2aWNlIGFyZSBub3QgaW4gdXNlCmJ5IG90aGVyIGRyaXZlcnMsIG9yIGlmIHRo ZXkgYXJlIGluIHVzZSAoc2F5IG9uZSBvZiB0aGVtIGlzIGFzc2lnbmVkIHRvIGEKZ3Vlc3QgYW5k IHRoZSBvdGhlciBpcyAgaWRsZSkgLSBpdCBpcyBzdGlsbCBPSyB0byByZXNldCB0aGUgc2xvdCAo YXNzdW1pbmcKYm90aCBvZiB0aGVtIGFyZSBvd25lZCBieSBYZW4gcGNpYmFjaykuCgpUaGlzIHBh dGNoIGRvZXMgdGhhdCBwcm92aWRpbmcgYW4gb3B0aW9uIHRvIHBlcmZvcm0gYSBmbHIvc2xvdC9i dXMgcmVzZXQKd2hlbiBhIFBDSSBkZXZpY2UgaXMgb3duZWQgYnkgWGVuIFBDSSBiYWNrZW5kLiBJ dCB3aWxsIHRyeSB0byBleGVjdXRlIG9uZQpvZiB0aGVzZSByZXNldCBtZXRob2QsIHN0YXJ0aW5n IHdpdGggRkxSIGlmIGl0IGlzIHN1cHBvcnRlZC4gT3RoZXJ3aXNlLAppdCB0cmllcyBzbG90IG9y IGJ1cyByZXNldCBtZXRob2QuIEZvciBzbG90IG9yIGJ1cyByZXNldCBtZXRob2QsIGl0IGFsc28K Y2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGUgZGV2aWNlcyB1bmRlciB0aGUgYnJp ZGdlIGFyZSBvd25lZCBieQpYZW4gUENJIGJhY2tlbmQgYmVmb3JlIGFwcGx5aW5nIHRob3NlIHJl c2V0cy4KCkR1ZSB0byB0aGUgY29tcGxleGl0eSB3aXRoIHRoZSBQQ0kgbG9jayB3ZSBjYW5ub3Qg ZG8gdGhlIHJlc2V0IHdoZW4gYQpkZXZpY2UgaXMgYm91bmQgKCdlY2hvICRCREYgPiBiaW5kJykg b3Igd2hlbiB1bmJvdW5kICgnZWNobyAkQkRGID4gdW5iaW5kJykKYXMgdGhlIHBjaV9bc2xvdHxi dXNdX3Jlc2V0IGFsc28gdGFrZXMgdGhlIHNhbWUgbG9jayByZXN1bHRpbmcgaW4gYQpkZWFkLWxv Y2suCgpQdXR0aW5nIHRoZSByZXNldCBmdW5jdGlvbiBpbiBhIHdvcmstcXVldWUgb3IgdGhyZWFk IHdvbid0IHdvcmsgZWl0aGVyIC0KYXMgd2UgaGF2ZSB0byBkbyB0aGUgcmVzZXQgZnVuY3Rpb24g b3V0c2lkZSB0aGUgJ3VuYmluZCcgY29udGV4dCAoaXQgaG9sZHMKdGhlIFBDSSBsb2NrKS4gQnV0 IG9uY2UgeW91ICd1bmJpbmQnIGEgZGV2aWNlIHRoZSBkZXZpY2UgaXMgbm8gbG9uZ2VyIHVuZGVy CnRoZSBvd25lcnNoaXAgb2YgWGVuIHBjaWJhY2sgYW5kIHRoZSBwY2lfc2V0X2RydmRhdGEgaGFz IGJlZW4gcmVzZXQsIHNvCndlIGNhbm5vdCB1c2UgYSB0aHJlYWQgZm9yIHRoaXMuCgpJbnN0ZWFk IG9mIGRvaW5nIGFsbCB0aGlzIGNvbXBsZXggZGFuY2UsIHdlIGRlcGVuZCBvbiB0aGUgdG9vbC1z dGFjayBkb2luZwp0aGUgcmlnaHQgdGhpbmcuIEFzIHN1Y2gsIHdlIGltcGxlbWVudCAncmVzZXQn IFN5c0ZTIGF0dHJpYnV0ZSB3aGljaCAneGwnCnVzZXMgd2hlbiBhIGRldmljZSBpcyBkZXRhY2hl ZCBvciBhdHRhY2hlZCBmcm9tL3RvIGEgZ3Vlc3QuIEl0IGJ5cGFzc2VzCnRoZSBuZWVkIHRvIHdv cnJ5IGFib3V0IHRoZSBQQ0kgbG9jay4gQlRXLCBwcmV2aW91c2x5IGRlZmluZWQgImRvX2ZsciIK YXR0cmlidXRlIGhhcyBiZWVuIHJlbmFtZWQgdG8gInJlc2V0IiBzaW5jZSAiZG9fZmxyIiBuYW1l IGRvZXNuJ3QgcmVwcmVzZW50CmFsbCBQQ0kgcmVzZXQgbWV0aG9kcyBhbmQgcGx1cywgY3VycmVu dGx5IGl0IGlzIG5vdCBiZWluZyB1c2VkLiBTbywgdGhlcmUKaXMgbm8gaW1wYWN0IGluIHJlbmFt aW5nIHRoaXMgc3lzZnMgYXR0cmlidXRlLgoKVG8gbm90IGluYWR2ZXJ0ZW50bHkgZG8gYSBidXMg cmVzZXQgdGhhdCB3b3VsZCBhZmZlY3QgZGV2aWNlcyB0aGF0IGFyZSBpbgp1c2UgYnkgb3RoZXIg ZHJpdmVycyAob3RoZXIgdGhhbiBYZW4gcGNpYmFjaykgcHJpb3IgdG8gdGhlIHJlc2V0LCB3ZSBj aGVjawp0aGF0IGFsbCBvZiB0aGUgZGV2aWNlcyB1bmRlciB0aGUgYnJpZGdlIGFyZSBvd25lZCBi eSBYZW4gcGNpYmFjay4gSWYgdGhleQphcmUgbm90LCB3ZSByZWZyYWluIGZyb20gZXhlY3V0aW5n IHRoZSBidXMgKG9yIHNsb3QpIHJlc2V0LgoKU2lnbmVkLW9mZi1ieTogR292aW5kYSBUYXR0aSA8 R292aW5kYS5UYXR0aUBPcmFjbGUuQ09NPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVr IFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zz a3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgotLS0KdjE6IC0gRmlyc3QgcG9zdGluZwp2 MjogLSBzdHJ1Y3QgcGNpc3R1Yl9hcmdzOiBDaGFuZ2VkIGRvY3VudCBmaWVsZCBhcyB1bnNpZ25l ZCBpbnQKICAgIC0gcGNpc3R1Yl9yZXNldF9kZXY6IGluaXRpYWxpemF0aW9uIG9mICJzdHJ1Y3Qg cGNpc3R1Yl9hcmdzIgogICAgLSBwY2lzdHViX3Jlc2V0X2RldjogY29tYmluZWQgbXVsdGlwbGUg aWYtc3RhdGVtZW50cwogICAgLSBwY2lzdHViX2RvX2ZscjogcmVtb3ZlZCBnb3RvIHN0YXRlbWVu dAp2MzogLSBSZXN5bmNlZCB3aXRoIGxpbnV4IGtlcm5lbCA0LjE0LjQgYW5kIGxhdGVzdCBwY2lf c3R1Yi5jIGNoYW5nZXMuCiAgICAtIFJlbmFtZWQgImRvX2ZsciIgU3lzRlMgYXR0cmlidXRlIHRv ICJyZXNldCIuIFBsdXMsIG1vZGlmaWVkCiAgICAgICJyZXNldCIgU3lzRlMgYXR0cmlidXRlIGNv ZGUgYXMgcGVyIHRoZSBsYXRlc3QgY2hhbmdlcyBpbiA0LjE0LjQuCiAgICAtIHN0cnVjdCBwY2lz dHViX2FyZ3M6IGFkZGVkICJjb25zdCIgdG8gInN0cnVjdCBwY2lfZGV2ICpkZXYiIGZpZWxkCiAg ICAtIHBjaXN0dWJfZGV2aWNlX3NlYXJjaDogUmVuYW1lZCBmb3VuZF9kZXYgdG8gZm91bmQKICAg IC0gcGNpc3R1Yl9kZXZpY2Vfc2VhcmNoOiBNb2RpZmllZCBjb21tZW50cyBhbmQgcmV0dXJuIHN0 YXRlbWVudHMKICAgIC0gcGNpc3R1Yl9kZXZpY2VfcmVzZXQ6IGludHJvZHVjZWQgRkxSIHJlc2V0 IGNvZGUKICAgIC0gcGNpc3R1Yl9kZXZpY2VfcmVzZXQ6IE1vZGlmaWVkIGFsbCBkZXZfZGJnIG1l c3NhZ2VzCgogRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kcml2ZXItcGNpYmFjayB8 ICAxNSArKysKIGRyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMgICAgICAgICAgICAg fCAxMjggKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMt ZHJpdmVyLXBjaWJhY2sgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWRyaXZlci1w Y2liYWNrCmluZGV4IDZhNzMzYmYuLmQyOTViNDIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v QUJJL3Rlc3Rpbmcvc3lzZnMtZHJpdmVyLXBjaWJhY2sKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkv dGVzdGluZy9zeXNmcy1kcml2ZXItcGNpYmFjawpAQCAtMTEsMyArMTEsMTggQEAgRGVzY3JpcHRp b246CiAgICAgICAgICAgICAgICAgI2VjaG8gMDA6MTkuMC1FMDoyOkZGID4gL3N5cy9idXMvcGNp L2RyaXZlcnMvcGNpYmFjay9xdWlya3MKICAgICAgICAgICAgICAgICB3aWxsIGFsbG93IHRoZSBn dWVzdCB0byByZWFkIGFuZCB3cml0ZSB0byB0aGUgY29uZmlndXJhdGlvbgogICAgICAgICAgICAg ICAgIHJlZ2lzdGVyIDB4MEUuCisKK1doYXQ6ICAgICAgICAgICAvc3lzL2J1cy9wY2kvZHJpdmVy cy9wY2liYWNrL3Jlc2V0CitEYXRlOiAgICAgICAgICAgRGVjIDIwMTcKK0tlcm5lbFZlcnNpb246 ICA0LjE1CitDb250YWN0OiAgICAgICAgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCitE ZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICBBbiBvcHRpb24gdG8gcGVyZm9ybSBhIGZsci9z bG90L2J1cyByZXNldCB3aGVuIGEgUENJIGRldmljZQorCQlpcyBvd25lZCBieSBYZW4gUENJIGJh Y2tlbmQuIFdyaXRpbmcgYSBzdHJpbmcgb2YgRERERDpCQjpERC5GCisJCXdpbGwgY2F1c2UgdGhl IHBjaWJhY2sgZHJpdmVyIHRvIHBlcmZvcm0gYSBmbHIgb3Igc2xvdCBvciBidXMKKwkJcmVzZXQg aWYgdGhlIGRldmljZSBzdXBwb3J0cyBpdC4gSXQgd2lsbCB0cnkgdG8gZXhlY3V0ZSBvbmUKKwkJ b2YgdGhlc2UgcmVzZXQgbWV0aG9kLCBzdGFydGluZyB3aXRoIEZMUiBpZiBpdCBpcyBzdXBwb3J0 ZWQuCisJCU90aGVyd2lzZSwgaXQgdHJpZXMgc2xvdCBvciBidXMgcmVzZXQgbWV0aG9kcy4gRm9y IHNsb3Qgb3IKKwkJYnVzIHJlc2V0IG1ldGhvZCwgaXQgYWxzbyBjaGVja3MgdG8gbWFrZSBzdXJl IHRoYXQgYWxsIG9mIHRoZQorCQlkZXZpY2VzIHVuZGVyIHRoZSBicmlkZ2UgYXJlIG93bmVkIGJ5 IFhlbiBQQ0kgYmFja2VuZCBiZWZvcmUKKwkJcGVyZm9ybWluZyB0aG9zZSByZXNldHMuCmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jIGIvZHJpdmVycy94ZW4v eGVuLXBjaWJhY2svcGNpX3N0dWIuYwppbmRleCA5ZTQ4MGZkLi5jYWQ3MDRlIDEwMDY0NAotLS0g YS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jCisrKyBiL2RyaXZlcnMveGVuL3hl bi1wY2liYWNrL3BjaV9zdHViLmMKQEAgLTMxMyw2ICszMTMsMTAyIEBAIHZvaWQgcGNpc3R1Yl9w dXRfcGNpX2RldihzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCXVwX3dyaXRlKCZwY2lzdHViX3NlbSk7 CiB9CiAKK3N0cnVjdCBwY2lzdHViX2FyZ3MgeworCWNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXY7 CisJdW5zaWduZWQgaW50IGRjb3VudDsKK307CisKK3N0YXRpYyBpbnQgcGNpc3R1Yl9kZXZpY2Vf c2VhcmNoKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHBjaXN0 dWJfZGV2aWNlICpwc2RldjsKKwlzdHJ1Y3QgcGNpc3R1Yl9hcmdzICphcmcgPSBkYXRhOworCWJv b2wgZm91bmQgPSBmYWxzZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2ly cXNhdmUoJnBjaXN0dWJfZGV2aWNlc19sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHBzZGV2LCAmcGNpc3R1Yl9kZXZpY2VzLCBkZXZfbGlzdCkgeworCQlpZiAocHNkZXYtPmRl diA9PSBkZXYpIHsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWFyZy0+ZGNvdW50Kys7CisJCQlicmVh azsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjaXN0dWJfZGV2aWNlc19s b2NrLCBmbGFncyk7CisKKwkvKiBEZXZpY2Ugbm90IG93bmVkIGJ5IHBjaXN0dWIuIEFib3J0IHRo ZSB3YWxrICovCisJaWYgKCFmb3VuZCkgeworCQlhcmctPmRldiA9IGRldjsKKwkJcmV0dXJuIDE7 CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcGNpc3R1Yl9kZXZpY2VfcmVzZXQo c3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZf ZGF0YTsKKwlib29sIHNsb3QgPSBmYWxzZSwgYnVzID0gZmFsc2U7CisJc3RydWN0IHBjaXN0dWJf YXJncyBhcmcgPSB7fTsKKworCWlmICghZGV2KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRldl9k YmcoJmRldi0+ZGV2LCAiWyVzXVxuIiwgX19mdW5jX18pOworCisJLyogRmlyc3QgY2hlY2sgYW5k IHRyeSBGTFIgKi8KKwlpZiAocGNpZV9oYXNfZmxyKGRldikpIHsKKwkJZGV2X2RiZygmZGV2LT5k ZXYsICJyZXNldHRpbmcgJXMgZGV2aWNlIHVzaW5nIEZMUlxuIiwKKwkJCXBjaV9uYW1lKGRldikp OworCQlwY2llX2ZscihkZXYpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXBjaV9wcm9iZV9y ZXNldF9zbG90KGRldi0+c2xvdCkpCisJCXNsb3QgPSB0cnVlOworCWVsc2UgaWYgKCghcGNpX3By b2JlX3Jlc2V0X2J1cyhkZXYtPmJ1cykpICYmCisJCSAoIXBjaV9pc19yb290X2J1cyhkZXYtPmJ1 cykpKQorCQlidXMgPSB0cnVlOworCisJaWYgKCFidXMgJiYgIXNsb3QpCisJCXJldHVybiAtRU9Q Tk9UU1VQUDsKKworCS8qCisJICogTWFrZSBzdXJlIGFsbCBkZXZpY2VzIG9uIHRoaXMgYnVzIGFy ZSBvd25lZCBieSB0aGUKKwkgKiBQQ0kgYmFja2VuZCBzbyB0aGF0IHdlIGNhbiBzYWZlbHkgcmVz ZXQgdGhlIHdob2xlIGJ1cy4KKwkgKi8KKwlwY2lfd2Fsa19idXMoZGV2LT5idXMsIHBjaXN0dWJf ZGV2aWNlX3NlYXJjaCwgJmFyZyk7CisKKwkvKiBBbGwgZGV2aWNlcyB1bmRlciB0aGUgYnVzIHNo b3VsZCBiZSBwYXJ0IG9mIHBjaXN0dWIhICovCisJaWYgKGFyZy5kZXYpIHsKKwkJZGV2X2Vycigm ZGV2LT5kZXYsCisJCQkiJXMgb24gdGhlIHNhbWUgYnVzIGFzICVzIGFuZCBpcyBub3Qgb3duZWQg YnkgIgorCQkJRFJWX05BTUUgIlxuIiwgcGNpX25hbWUoYXJnLmRldiksIHBjaV9uYW1lKGRldikp OworCisJCXJldHVybiAtRUJVU1k7CisJfQorCisJZGV2X2RiZygmZGV2LT5kZXYsICJwY2lzdHVi IG93bnMgJWQgZGV2aWNlcyBvbiBQQ0kgQnVzICUwNHg6JTAyeCIsCisJCWFyZy5kY291bnQsIHBj aV9kb21haW5fbnIoZGV2LT5idXMpLCBkZXYtPmJ1cy0+bnVtYmVyKTsKKworCWRldl9kYXRhID0g cGNpX2dldF9kcnZkYXRhKGRldik7CisJaWYgKCFwY2lfbG9hZF9zYXZlZF9zdGF0ZShkZXYsIGRl dl9kYXRhLT5wY2lfc2F2ZWRfc3RhdGUpKQorCQlwY2lfcmVzdG9yZV9zdGF0ZShkZXYpOworCisJ LyogVGhpcyBkaXNhYmxlcyB0aGUgZGV2aWNlLiAqLworCXhlbl9wY2lia19yZXNldF9kZXZpY2Uo ZGV2KTsKKworCS8qIENsZWFudXAgdXAgYW55IGVtdWxhdGVkIGZpZWxkcyAqLworCXhlbl9wY2li a19jb25maWdfcmVzZXRfZGV2KGRldik7CisKKwlkZXZfZGJnKCZkZXYtPmRldiwgInJlc2V0dGlu ZyAlcyBkZXZpY2UgdXNpbmcgJXMgcmVzZXRcbiIsCisJCXBjaV9uYW1lKGRldiksIHNsb3QgPyAi c2xvdCIgOiAiYnVzIik7CisKKwlyZXR1cm4gc2xvdCA/IHBjaV90cnlfcmVzZXRfc2xvdChkZXYt PnNsb3QpIDoKKwkJCXBjaV90cnlfcmVzZXRfYnVzKGRldi0+YnVzKTsKK30KKwogc3RhdGljIGlu dCBwY2lzdHViX21hdGNoX29uZShzdHJ1Y3QgcGNpX2RldiAqZGV2LAogCQkJICAgICBzdHJ1Y3Qg cGNpc3R1Yl9kZXZpY2VfaWQgKnBkZXZfaWQpCiB7CkBAIC0xNDMwLDYgKzE1MjYsMzIgQEAgc3Rh dGljIHNzaXplX3QgcGVybWlzc2l2ZV9zaG93KHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYsIGNo YXIgKmJ1ZikKIH0KIHN0YXRpYyBEUklWRVJfQVRUUl9SVyhwZXJtaXNzaXZlKTsKIAorc3RhdGlj IHNzaXplX3QgcmVzZXRfc3RvcmUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwgY29uc3QgY2hh ciAqYnVmLAorCQkJICAgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBwY2lzdHViX2RldmljZSAq cHNkZXY7CisJaW50IGRvbWFpbiwgYnVzLCBzbG90LCBmdW5jOworCWludCBlcnI7CisKKwllcnIg PSBzdHJfdG9fc2xvdChidWYsICZkb21haW4sICZidXMsICZzbG90LCAmZnVuYyk7CisJaWYgKGVy cikKKwkJcmV0dXJuIGVycjsKKworCXBzZGV2ID0gcGNpc3R1Yl9kZXZpY2VfZmluZChkb21haW4s IGJ1cywgc2xvdCwgZnVuYyk7CisJaWYgKHBzZGV2KSB7CisJCWVyciA9IHBjaXN0dWJfZGV2aWNl X3Jlc2V0KHBzZGV2LT5kZXYpOworCQlwY2lzdHViX2RldmljZV9wdXQocHNkZXYpOworCX0gZWxz ZSB7CisJCWVyciA9IC1FTk9ERVY7CisJfQorCisJaWYgKCFlcnIpCisJCWVyciA9IGNvdW50Owor CisJcmV0dXJuIGVycjsKK30KK3N0YXRpYyBEUklWRVJfQVRUUl9XTyhyZXNldCk7CisKIHN0YXRp YyB2b2lkIHBjaXN0dWJfZXhpdCh2b2lkKQogewogCWRyaXZlcl9yZW1vdmVfZmlsZSgmeGVuX3Bj aWJrX3BjaV9kcml2ZXIuZHJpdmVyLCAmZHJpdmVyX2F0dHJfbmV3X3Nsb3QpOwpAQCAtMTQ0Myw2 ICsxNTY1LDggQEAgc3RhdGljIHZvaWQgcGNpc3R1Yl9leGl0KHZvaWQpCiAJCQkgICAmZHJpdmVy X2F0dHJfaXJxX2hhbmRsZXJzKTsKIAlkcml2ZXJfcmVtb3ZlX2ZpbGUoJnhlbl9wY2lia19wY2lf ZHJpdmVyLmRyaXZlciwKIAkJCSAgICZkcml2ZXJfYXR0cl9pcnFfaGFuZGxlcl9zdGF0ZSk7CisJ ZHJpdmVyX3JlbW92ZV9maWxlKCZ4ZW5fcGNpYmtfcGNpX2RyaXZlci5kcml2ZXIsCisJCQkgICAm ZHJpdmVyX2F0dHJfcmVzZXQpOwogCXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmeGVuX3BjaWJrX3Bj aV9kcml2ZXIpOwogfQogCkBAIC0xNTM2LDYgKzE2NjAsMTAgQEAgc3RhdGljIGludCBfX2luaXQg cGNpc3R1Yl9pbml0KHZvaWQpCiAJaWYgKCFlcnIpCiAJCWVyciA9IGRyaXZlcl9jcmVhdGVfZmls ZSgmeGVuX3BjaWJrX3BjaV9kcml2ZXIuZHJpdmVyLAogCQkJCQkmZHJpdmVyX2F0dHJfaXJxX2hh bmRsZXJfc3RhdGUpOworCWlmICghZXJyKQorCQllcnIgPSBkcml2ZXJfY3JlYXRlX2ZpbGUoJnhl bl9wY2lia19wY2lfZHJpdmVyLmRyaXZlciwKKwkJCQkJICZkcml2ZXJfYXR0cl9yZXNldCk7CisK IAlpZiAoZXJyKQogCQlwY2lzdHViX2V4aXQoKTsKIAotLSAKMi45LjUKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs