From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vijay Khemka Subject: Re: [PATCH] net/ncsi: Add NCSI OEM command for FB Tiogapass Date: Fri, 28 Sep 2018 22:26:10 +0000 Message-ID: References: <20180925000840.4111212-1-vijaykhemka@fb.com> <81718e3fd6c883917aca540c032a7065fd00e79a.camel@mendozajonas.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: Samuel Mendoza-Jonas , "linux-aspeed @ lists . ozlabs . org" , "openbmc @ lists . ozlabs . org" , Sai Dasari , Amithash Prasad , "Justin.Lee1@dell.com" , "netdev@vger.kernel.org" Return-path: Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:52998 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726287AbeI2EwV (ORCPT ); Sat, 29 Sep 2018 00:52:21 -0400 In-Reply-To: <81718e3fd6c883917aca540c032a7065fd00e79a.camel@mendozajonas.com> Content-Language: en-US Content-ID: <398EA723C4CFE145BA95F7E18039B300@namprd15.prod.outlook.com> Sender: netdev-owner@vger.kernel.org List-ID: DQoNCu+7v09uIDkvMjYvMTgsIDg6NDQgUE0sICJTYW11ZWwgTWVuZG96YS1Kb25hcyIgPHNhbUBt ZW5kb3pham9uYXMuY29tPiB3cm90ZToNCg0KPiAgICBIaSBWaWpheSwNCiAgICANCj4gICAgSGF2 aW5nIGhhZCBhIGNoYW5jZSB0byB0YWtlIGEgY2xvc2VyIGxvb2ssIHRoZXJlIGlzIHByb2JhYmx5 IHJvb20gZm9yDQo+ICAgYm90aCB0aGlzIHBhdGNoc2V0IGFuZCBKdXN0aW4ncyBwb3RlbnRpYWwg Y2hhbmdlcyB0byBjb2V4aXN0OyB3aGlsZQ0KPiAgSnVzdGluJ3MgaXMgYSBtb3JlIGdlbmVyYWwg c29sdXRpb24gZm9yIHNlbmRpbmcgYXJiaXRyYXJ5IGNvbW1hbmRzLCB0aGUNCj4gICAgYXBwcm9h Y2ggb2YgdGhpcyBwYXRjaCBpcyBhbHNvIHVzZWZ1bCBmb3IgaGFuZGxpbmcgY29tbWFuZHMgd2Ug d2FudA0KPiAgICBpbmNsdWRlZCBpbiB0aGUgY29uZmlndXJlIHByb2Nlc3MgKHN1Y2ggYXMgZ2V0 LW1hYy1hZGRyZXNzKS4NCg0KSGkgU2FtLA0KSSBoYXZlIGNyZWF0ZWQgYSBtb3JlIGdlbmVyaWMg YXBwcm9hY2ggYmFzZWQgcGF0Y2gsIHdpbGwgc2VuZCB5b3UgYWZ0ZXIgY2xlYW4gdXAuIEkgYWdy ZWUgd2UgbmVlZCBib3RoIEp1c3RpbiBwYXRjaCBhcyB3ZWxsIGFzIG1pbmUgdG8gaGFuZGxlIE9F TSBzcGVjaWZpYyBjb21tYW5kLiBJIGFtIGNyZWF0aW5nIDIgcGF0Y2hlcyBvbmUgZm9yIGdlbmVy aWMgT0VNIGNvbW1hbmQgYW5kIHJlc3BvbnNlIGhhbmRsaW5nIGFuZCBhbm90aGVyIGlzIE9FTSB2 ZW5kb3Igc3BlY2lmaWMgY29tbWFuZCBoYW5kbGluZy4gUGxlYXNlIHNlZSBteSByZXNwb25zZXMg dG8geW91ciBjb21tZW50cyBiZWxvdy4NCiAgICANCiAgICBTb21lIGNvbW1lbnRzIGJlbG93Og0K ICAgIA0KICAgID4gLS0tDQogICAgPiAgbmV0L25jc2kvS2NvbmZpZyAgICAgICB8ICAzICsrDQog ICAgPiAgbmV0L25jc2kvaW50ZXJuYWwuaCAgICB8IDExICsrKysrLS0NCiAgICA+ICBuZXQvbmNz aS9uY3NpLWNtZC5jICAgIHwgMjQgKysrKysrKysrKysrKy0tDQogICAgPiAgbmV0L25jc2kvbmNz aS1tYW5hZ2UuYyB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KICAgID4gIG5ldC9uY3NpL25jc2ktcGt0LmggICAgfCAxNiArKysrKysrKysrDQogICAgPiAg bmV0L25jc2kvbmNzaS1yc3AuYyAgICB8IDMzICsrKysrKysrKysrKysrKysrKystDQogICAgPiAg NiBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCiAgICA+ IA0KICAgID4gZGlmZiAtLWdpdCBhL25ldC9uY3NpL0tjb25maWcgYi9uZXQvbmNzaS9LY29uZmln DQogICAgPiBpbmRleCAwOGE4YTYwMzFmZDcuLmI4YmY4OWZlYTdjOCAxMDA2NDQNCiAgICA+IC0t LSBhL25ldC9uY3NpL0tjb25maWcNCiAgICA+ICsrKyBiL25ldC9uY3NpL0tjb25maWcNCiAgICA+ IEBAIC0xMCwzICsxMCw2IEBAIGNvbmZpZyBORVRfTkNTSQ0KICAgID4gIAkgIHN1cHBvcnQuIEVu YWJsZSB0aGlzIG9ubHkgaWYgeW91ciBzeXN0ZW0gY29ubmVjdHMgdG8gYSBuZXR3b3JrDQogICAg PiAgCSAgZGV2aWNlIHZpYSBOQ1NJIGFuZCB0aGUgZXRoZXJuZXQgZHJpdmVyIHlvdSdyZSB1c2lu ZyBzdXBwb3J0cw0KICAgID4gIAkgIHRoZSBwcm90b2NvbCBleHBsaWNpdGx5Lg0KICAgID4gK2Nv bmZpZyBOQ1NJX09FTV9DTURfR0VUX01BQw0KICAgID4gKwlib29sICJHZXQgTkNTSSBPRU0gTUFD IEFkZHJlc3MiDQogICAgPiArCWRlcGVuZHMgb24gTkVUX05DU0kNCiAgICANCiAgICAgICAgRm9y IHRoZSBtb21lbnQgdGhpcyBpc24ndCB0b28gYmFkIGJ1dCBJIHdvbmRlciBpZiBpbiB0aGUgZnV0 dXJlIGl0IHdvdWxkDQogICAgICAgIGJlIG1vcmUgZmxleGlibGUgdG8gaGF2ZSBzb21ldGhpbmcg bGlrZSBOQ1NJX09FTV9DTURfTUVMTEFOT1ggZXRjLCBzbyB3ZQ0KICAgICAgICBjb3VsZCBzZWxl Y3RpdmVseSBlbmFibGUgYSBjbGFzcyBvZiBPRU0gY29tbWFuZHMgYmFzZWQgb24gdmVuZG9yIHJh dGhlcg0KICAgICAgICB0aGFuIHBlci1jb21tYW5kLg0KICAgIENlcnRhaW5seSwgd2UgY2FuIGhh dmUgbGlrZSB0aGF0IGFuZCB3aWxsIGJlIGFuIGFkZGl0aW9uIHRvIGFib3ZlIGNvbmZpZy4gDQog ICAgQWJvdmUgY29uZmlnIGlzIHRvIGVuYWJsZSByZXRyaWV2aW5nIGFuZCBzZXR0aW5nIG1hYyBh ZGRyZXNzIGZyb20gZGV2aWNlIA0KICAgIGR1cmluZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24uIEFu ZCB0aGVuIHdlIGNhbiBoYXZlIHZlbmRvciBzZWxlY3Rpb24gbGlrZSANCiAgICBNRUxMQU5PWCwg QnJvYWRjb20gZXRjLiBCdXQgSSB3aWxsIHJhdGhlciBjaGVjayBHViBJRCB1bmRlciB0aGlzIGNv bmZpZyANCiAgICBhbmQgc2VlIGlmIHRoZXJlIGlzIGF2YWlsYWJsZSBmdW5jdGlvbiBmb3Igc3Bl Y2lmaWMgdmVuZG9yLiBUaGlzIGNhbiBiZSByZXZpc2VkDQogICAgYW5kIG1hZGUgbW9yZSBnZW5l cmljIGJhc2VkIG9uIHZlbmRvci4NCg0KICAgID4gZGlmZiAtLWdpdCBhL25ldC9uY3NpL2ludGVy bmFsLmggYi9uZXQvbmNzaS9pbnRlcm5hbC5oDQogICAgPiBpbmRleCA4MDU1ZTM5NjVjZWYuLmRh MTc5NThlNmE0YiAxMDA2NDQNCiAgICA+IC0tLSBhL25ldC9uY3NpL2ludGVybmFsLmgNCiAgICA+ ICsrKyBiL25ldC9uY3NpL2ludGVybmFsLmgNCiAgICA+IEBAIC02OCw2ICs2OCwxMCBAQCBlbnVt IHsNCiAgICA+ICAJTkNTSV9NT0RFX01BWA0KICAgID4gIH07DQogICAgPiAgDQogICAgPiArI2Rl ZmluZSBOQ1NJX09FTV9NRlJfTUxYX0lEICAgICAgICAgICAgIDB4ODExOQ0KICAgID4gKyNkZWZp bmUgTkNTSV9PRU1fTUxYX0NNRF9HRVRfTUFDICAgICAgICAweDFiMDANCiAgICA+ICsjZGVmaW5l IE5DU0lfT0VNX01MWF9DTURfU0VUX0FGRklOSVRZICAgMHgwMTA3MDANCiAgICANCiAgICAgICAg SSBnYXRoZXIgdGhpcyBpcyBwYXJ0IG9mIHRoZSBPRU0gY29tbWFuZCBidXQgaXQgd291bGQgYmUg Z29vZCB0byBkZXNjcmliZQ0KICAgICAgICB3aGF0IHRoZXNlIGJpdHMgbWVhbi4gSXMgdGhpcyBj b21tYW5kIGRvY3VtZW50ZWQgYW55d2hlcmUgYnkgTWVsbGFub3g/DQogICAgSSB3aWxsIGFkZCBt b3JlIGRlc2NyaXB0aW9uIGhlcmUsIHBsZWFzZSBzZWUgaW4gbmV4dCBwYXRjaC4gWWVzIE1lbGxh bm94IA0KICAgIHNwZWNpZmljYXRpb24gZGVzY3JpYmVzIHRoZXNlIGNvbW1hbmRzLg0KDQogICAg PiArDQogICAgPiAgc3RydWN0IG5jc2lfY2hhbm5lbF92ZXJzaW9uIHsNCiAgICA+ICAJdTMyIHZl cnNpb247CQkvKiBTdXBwb3J0ZWQgQkNEIGVuY29kZWQgTkNTSSB2ZXJzaW9uICovDQogICAgPiAg CXUzMiBhbHBoYTI7CQkvKiBTdXBwb3J0ZWQgQkNEIGVuY29kZWQgTkNTSSB2ZXJzaW9uICovDQog ICAgPiBAQCAtMjM2LDYgKzI0MCw3IEBAIGVudW0gew0KICAgID4gIAluY3NpX2Rldl9zdGF0ZV9w cm9iZV9kcCwNCiAgICA+ICAJbmNzaV9kZXZfc3RhdGVfY29uZmlnX3NwCT0gMHgwMzAxLA0KICAg ID4gIAluY3NpX2Rldl9zdGF0ZV9jb25maWdfY2lzLA0KICAgID4gKwluY3NpX2Rldl9zdGF0ZV9j b25maWdfb2VtX2dtYSwNCiAgICA+ICAJbmNzaV9kZXZfc3RhdGVfY29uZmlnX2NsZWFyX3ZpZHMs DQogICAgPiAgCW5jc2lfZGV2X3N0YXRlX2NvbmZpZ19zdmYsDQogICAgPiAgCW5jc2lfZGV2X3N0 YXRlX2NvbmZpZ19ldiwNCiAgICA+IEBAIC0zMDEsOSArMzA2LDkgQEAgc3RydWN0IG5jc2lfY21k X2FyZyB7DQogICAgPiAgCXVuc2lnbmVkIHNob3J0ICAgICAgIHBheWxvYWQ7ICAgICAvKiBDb21t YW5kIHBhY2tldCBwYXlsb2FkIGxlbmd0aCAqLw0KICAgID4gIAl1bnNpZ25lZCBpbnQgICAgICAg ICByZXFfZmxhZ3M7ICAgLyogTkNTSSByZXF1ZXN0IHByb3BlcnRpZXMgICAgICAgKi8NCiAgICA+ ICAJdW5pb24gew0KICAgID4gLQkJdW5zaWduZWQgY2hhciAgYnl0ZXNbMTZdOyAvKiBDb21tYW5k IHBhY2tldCBzcGVjaWZpYyBkYXRhICAqLw0KICAgID4gLQkJdW5zaWduZWQgc2hvcnQgd29yZHNb OF07DQogICAgPiAtCQl1bnNpZ25lZCBpbnQgICBkd29yZHNbNF07DQogICAgPiArCQl1bnNpZ25l ZCBjaGFyICBieXRlc1s2NF07IC8qIENvbW1hbmQgcGFja2V0IHNwZWNpZmljIGRhdGEgICovDQog ICAgPiArCQl1bnNpZ25lZCBzaG9ydCB3b3Jkc1szMl07DQogICAgPiArCQl1bnNpZ25lZCBpbnQg ICBkd29yZHNbMTZdOw0KICAgID4gIAl9Ow0KICAgID4gIH07DQogICAgPiAgDQogICAgPiBkaWZm IC0tZ2l0IGEvbmV0L25jc2kvbmNzaS1jbWQuYyBiL25ldC9uY3NpL25jc2ktY21kLmMNCiAgICA+ IGluZGV4IDc1NjdjYTYzYWFlMi4uMzIwNWUyMmMxNzM0IDEwMDY0NA0KICAgID4gLS0tIGEvbmV0 L25jc2kvbmNzaS1jbWQuYw0KICAgID4gKysrIGIvbmV0L25jc2kvbmNzaS1jbWQuYw0KICAgID4g QEAgLTIxMSw2ICsyMTEsMjUgQEAgc3RhdGljIGludCBuY3NpX2NtZF9oYW5kbGVyX3NuZmMoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwNCiAgICA+ICAJcmV0dXJuIDA7DQogICAgPiAgfQ0KICAgID4gIA0K ICAgID4gK3N0YXRpYyBpbnQgbmNzaV9jbWRfaGFuZGxlcl9vZW0oc3RydWN0IHNrX2J1ZmYgKnNr YiwNCiAgICA+ICsJCQkJc3RydWN0IG5jc2lfY21kX2FyZyAqbmNhKQ0KICAgID4gK3sNCiAgICA+ ICsJc3RydWN0IG5jc2lfY21kX29lbV9wa3QgKmNtZDsNCiAgICA+ICsJdW5zaWduZWQgaW50IGxl bjsNCiAgICA+ICsNCiAgICA+ICsJbGVuID0gc2l6ZW9mKHN0cnVjdCBuY3NpX2NtZF9wa3RfaGRy KSArIDQ7DQogICAgPiArCWlmIChuY2EtPnBheWxvYWQgPCAyNikNCiAgICA+ICsJCWxlbiArPSAy NjsNCiAgICANCiAgICAgICAgVGhpcyB3aWxsIGhhdmUgYWxyZWFkeSBoYXBwZW5lZCBpbiBuY3Np X2FsbG9jX2NvbW1hbmQoKSwgaXMgdGhpcyBjaGVjaw0KICAgICAgICBuZWVkZWQ/DQogICAgWWVz IGl0IGlzIG5lZWRlZCB0byBmaW5kIGxlbmd0aCBmb3Igc2tidWZmIGRhdGEgdG8gaW5pdGlhbGl6 ZS4gDQogICAgbmNzaV9hbGxvY19jb21tYW5kKCkgZG9lcyB0aGUgc2FtZSBhbmQgYWxsb2NhdGUg c2tidWZmLiAgDQoNCiAgICA+ICsJZWxzZQ0KICAgID4gKwkJbGVuICs9IG5jYS0+cGF5bG9hZDsN CiAgICA+ICsNCiAgICA+ICsJY21kID0gc2tiX3B1dF96ZXJvKHNrYiwgbGVuKTsNCiAgICA+ICsJ bWVtY3B5KGNtZC0+ZGF0YSwgbmNhLT5ieXRlcywgbmNhLT5wYXlsb2FkKTsNCiAgICA+ICsJbmNz aV9jbWRfYnVpbGRfaGVhZGVyKCZjbWQtPmNtZC5jb21tb24sIG5jYSk7DQogICAgPiArDQogICAg PiArCXJldHVybiAwOw0KICAgID4gK30NCiAgICA+ICsNCiAgICA+ICBzdGF0aWMgc3RydWN0IG5j c2lfY21kX2hhbmRsZXIgew0KICAgID4gIAl1bnNpZ25lZCBjaGFyIHR5cGU7DQogICAgPiAgCWlu dCAgICAgICAgICAgcGF5bG9hZDsNCiAgICA+IEBAIC0yNDQsNyArMjYzLDcgQEAgc3RhdGljIHN0 cnVjdCBuY3NpX2NtZF9oYW5kbGVyIHsNCiAgICA+ICAJeyBOQ1NJX1BLVF9DTURfR05TLCAgICAw LCBuY3NpX2NtZF9oYW5kbGVyX2RlZmF1bHQgfSwNCiAgICA+ICAJeyBOQ1NJX1BLVF9DTURfR05Q VFMsICAwLCBuY3NpX2NtZF9oYW5kbGVyX2RlZmF1bHQgfSwNCiAgICA+ICAJeyBOQ1NJX1BLVF9D TURfR1BTLCAgICAwLCBuY3NpX2NtZF9oYW5kbGVyX2RlZmF1bHQgfSwNCiAgICA+IC0JeyBOQ1NJ X1BLVF9DTURfT0VNLCAgICAwLCBOVUxMICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICA+ICsJ eyBOQ1NJX1BLVF9DTURfT0VNLCAgIC0xLCBuY3NpX2NtZF9oYW5kbGVyX29lbSAgICAgfSwNCiAg ICA+ICAJeyBOQ1NJX1BLVF9DTURfUExETSwgICAwLCBOVUxMICAgICAgICAgICAgICAgICAgICAg fSwNCiAgICA+ICAJeyBOQ1NJX1BLVF9DTURfR1BVVUlELCAwLCBuY3NpX2NtZF9oYW5kbGVyX2Rl ZmF1bHQgfQ0KICAgID4gIH07DQogICAgPiBAQCAtMzE3LDcgKzMzNiw4IEBAIGludCBuY3NpX3ht aXRfY21kKHN0cnVjdCBuY3NpX2NtZF9hcmcgKm5jYSkNCiAgICA+ICAJfQ0KICAgID4gIA0KICAg ID4gIAkvKiBHZXQgcGFja2V0IHBheWxvYWQgbGVuZ3RoIGFuZCBhbGxvY2F0ZSB0aGUgcmVxdWVz dCAqLw0KICAgID4gLQluY2EtPnBheWxvYWQgPSBuY2gtPnBheWxvYWQ7DQogICAgPiArCWlmIChu Y2gtPnBheWxvYWQgPj0gMCkNCiAgICA+ICsJCW5jYS0+cGF5bG9hZCA9IG5jaC0+cGF5bG9hZDsN CiAgICANCiAgICAgICAgSSB0aGluayB3aXRoIHRoaXMgdGhlcmUgaXMgYSBjaGFuY2Ugb2YgbmNh LT5wYXlsb2FkIGJlaW5nIHVuaW5pdGlhbGlzZWQNCiAgICAgICAgYW5kIHRoZW4gdXNlZCBpbiBu Y3NpX2FsbG9jX2NvbW1hbmQoKS4gQ2FuIHlvdSBkZXNjcmliZSB3aGF0IHRoZSBhaW0gaGVyZQ0K ICAgICAgICBpcz8NCiAgICBJIHdpbGwgYWRkIG1vcmUgZGVzY3JpcHRpb24gaGVyZS4NCg0KICAg ID4gIAluciA9IG5jc2lfYWxsb2NfY29tbWFuZChuY2EpOw0KICAgID4gIAlpZiAoIW5yKQ0KICAg ID4gIAkJcmV0dXJuIC1FTk9NRU07DQogICAgPiBkaWZmIC0tZ2l0IGEvbmV0L25jc2kvbmNzaS1t YW5hZ2UuYyBiL25ldC9uY3NpL25jc2ktbWFuYWdlLmMNCiAgICA+IGluZGV4IDA5MTI4NDc2MGQy MS4uM2IyYjg2NTYwY2M4IDEwMDY0NA0KICAgID4gLS0tIGEvbmV0L25jc2kvbmNzaS1tYW5hZ2Uu Yw0KICAgID4gKysrIGIvbmV0L25jc2kvbmNzaS1tYW5hZ2UuYw0KICAgID4gQEAgLTYzNSw2ICs2 MzUsNTggQEAgc3RhdGljIGludCBzZXRfb25lX3ZpZChzdHJ1Y3QgbmNzaV9kZXZfcHJpdiAqbmRw LCBzdHJ1Y3QgbmNzaV9jaGFubmVsICpuYywNCiAgICA+ICAJcmV0dXJuIDA7DQogICAgPiAgfQ0K ICAgID4gIA0KICAgID4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19OQ1NJX09FTV9DTURfR0VUX01B QykNCiAgICA+ICsvKiBOQ1NJIEZhY2Vib29rIE9FTSBBUElzICovDQogICAgDQogICAgICAgIEFy ZSB0aGVzZSBGYWNlYm9vayBPRU0gY29tbWFuZHMgb3IgTWVsbGFub3ggT0VNIGNvbW1hbmRzPw0K ICAgIFdpbGwgYmUgdGFrZW4gY2FyZSBpbiBuZXh0IHBhdGNoDQoNCiAgICA+ICtzdGF0aWMgdm9p ZCBnZXRfbWFjX2FkZHJlc3Nfb2VtX21seChzdHJ1Y3QgbmNzaV9kZXZfcHJpdiAqbmRwKQ0KICAg ID4gK3sNCiAgICA+ICsJc3RydWN0IG5jc2lfY21kX2FyZyBuY2E7DQogICAgPiArCWludCByZXQg PSAwOw0KICAgID4gKw0KICAgID4gKwltZW1zZXQoJm5jYSwgMCwgc2l6ZW9mKHN0cnVjdCBuY3Np X2NtZF9hcmcpKTsNCiAgICA+ICsJbmNhLm5kcCA9IG5kcDsNCiAgICA+ICsJbmNhLmNoYW5uZWwg PSBuZHAtPmFjdGl2ZV9jaGFubmVsLT5pZDsNCiAgICA+ICsJbmNhLnBhY2thZ2UgPSBuZHAtPmFj dGl2ZV9wYWNrYWdlLT5pZDsNCiAgICA+ICsJbmNhLnJlcV9mbGFncyA9IE5DU0lfUkVRX0ZMQUdf RVZFTlRfRFJJVkVOOw0KICAgID4gKwluY2EudHlwZSA9IE5DU0lfUEtUX0NNRF9PRU07DQogICAg PiArCW5jYS5wYXlsb2FkID0gODsNCiAgICA+ICsNCiAgICA+ICsJbmNhLmR3b3Jkc1swXSA9IG50 b2hsKE5DU0lfT0VNX01GUl9NTFhfSUQpOw0KICAgID4gKwluY2EuZHdvcmRzWzFdID0gbnRvaGwo TkNTSV9PRU1fTUxYX0NNRF9HRVRfTUFDKTsNCiAgICA+ICsNCiAgICA+ICsJcmV0ID0gbmNzaV94 bWl0X2NtZCgmbmNhKTsNCiAgICA+ICsJaWYgKHJldCkNCiAgICA+ICsJCW5ldGRldl9lcnIobmRw LT5uZGV2LmRldiwNCiAgICA+ICsJCQkgICAiTkNTSTogRmFpbGVkIHRvIHRyYW5zbWl0IGNtZCAw eCV4IGR1cmluZyBwcm9iZVxuIiwNCiAgICA+ICsJCQkgICBuY2EudHlwZSk7DQogICAgPiArfQ0K ICAgID4gKw0KICAgID4gK3N0YXRpYyB2b2lkIHNldF9tYWNfYWZmaW5pdHlfbWx4KHN0cnVjdCBu Y3NpX2Rldl9wcml2ICpuZHApDQogICAgPiArew0KICAgID4gKwlzdHJ1Y3QgbmNzaV9jbWRfYXJn IG5jYTsNCiAgICA+ICsJaW50IHJldCA9IDA7DQogICAgPiArDQogICAgPiArCW1lbXNldCgmbmNh LCAwLCBzaXplb2Yoc3RydWN0IG5jc2lfY21kX2FyZykpOw0KICAgIA0KICAgICAgICBBaCBJIHNl ZSB3ZSBpbml0aWFsaXNlIG5jYSwgYW5kIHRodXMgcGF5bG9hZCBoZXJlIC0gdGhlIHBhdGggYmV0 d2Vlbg0KICAgICAgICB0aGVzZSB0d28gcG9pbnRzIGluIHRoZSBkcml2ZXIgaXNuJ3Qgc3VwZXIg b2J2aW91cyAobm90IHRoaXMgcGF0Y2gncw0KICAgICAgICBmYXVsdCA6KSApLCBpdCBtaWdodCBi ZSBiZXR0ZXIgdG8gZXhwbGljaXRseSBtZW50aW9uL2hhbmRsZSB0aGlzIHdoZXJlIHdlDQogICAg ICAgIHVzZSBwYXlsb2FkIGxhdGVyIG9uLg0KICAgIFllcywgSSBhZ3JlZSwgd2lsbCBhZGQgbW9y ZSBkZXRhaWxzLg0KDQogICAgPiArCW5jYS5uZHAgPSBuZHA7DQogICAgPiArCW5jYS5jaGFubmVs ID0gbmRwLT5hY3RpdmVfY2hhbm5lbC0+aWQ7DQogICAgPiArCW5jYS5wYWNrYWdlID0gbmRwLT5h Y3RpdmVfcGFja2FnZS0+aWQ7DQogICAgDQogICAgICAgIFRoZXNlIHNob3VsZCBwcm9iYWJseSBi ZSBzZXQgaW4gbmNzaV9jb25maWd1cmVfY2hhbm5lbCAoZWcuIHNlZSB0aGUgQ0lTDQogICAgICAg IHN0YXRlIGJlZm9yZSB0aGVzZSBhcmUgY2FsbGVkKS4NCiAgICBUaGVzZSBmdW5jdGlvbnMgYXJl IGJlaW5nIGNhbGxlZCBmcm9tIG5jc2lfY29uZmlndXJlX2NoYW5uZWwoKSBvbmx5LiBXZSANCiAg ICBjYW4gZWl0aGVyIGluaXRpYWxpemUgbmNhIHRoZXJlIGluIG5jc2lfY29uZmlndXJlX2NoYW5u ZWwoKSBmdW5jdGlvbiBhbmQgcGFzcyANCiAgICBuY2EgYXMgZnVuY3Rpb24gcGFyYW1ldGVyIG9y IGluaXRpYWxpemUgbmNhIGluc2lkZSBmdW5jdGlvbiBhbmQgcG9wdWxhdGUgDQogICAgcmVxdWly ZWQgZmllbGQuDQoNCiAgICA+ICsJbmNhLnJlcV9mbGFncyA9IE5DU0lfUkVRX0ZMQUdfRVZFTlRf RFJJVkVOOw0KICAgID4gKwluY2EudHlwZSA9IE5DU0lfUEtUX0NNRF9PRU07DQogICAgPiArCW5j YS5wYXlsb2FkID0gNjA7DQogICAgPiArDQogICAgPiArCW5jYS5kd29yZHNbMF0gPSBudG9obChO Q1NJX09FTV9NRlJfTUxYX0lEKTsNCiAgICA+ICsJbmNhLmR3b3Jkc1sxXSA9IG50b2hsKE5DU0lf T0VNX01MWF9DTURfU0VUX0FGRklOSVRZKTsNCiAgICA+ICsNCiAgICA+ICsJbWVtY3B5KCYobmNh LmJ5dGVzWzhdKSwgbmRwLT5uZGV2LmRldi0+ZGV2X2FkZHIsIEVUSF9BTEVOKTsNCiAgICA+ICsJ bmNhLmJ5dGVzWzE0XSA9IDB4MDk7DQogICAgPiArDQogICAgPiArCXJldCA9IG5jc2lfeG1pdF9j bWQoJm5jYSk7DQogICAgPiArCWlmIChyZXQpDQogICAgPiArCQluZXRkZXZfZXJyKG5kcC0+bmRl di5kZXYsDQogICAgPiArCQkJICAgIk5DU0k6IEZhaWxlZCB0byB0cmFuc21pdCBjbWQgMHgleCBk dXJpbmcgcHJvYmVcbiIsDQogICAgPiArCQkJCSAgIG5jYS50eXBlKTsNCiAgICA+ICt9DQogICAg PiArI2VuZGlmIC8qIENPTkZJR19OQ1NJX09FTV9DTURfR0VUX01BQyAqLw0KICAgID4gKw0KICAg ID4gIHN0YXRpYyB2b2lkIG5jc2lfY29uZmlndXJlX2NoYW5uZWwoc3RydWN0IG5jc2lfZGV2X3By aXYgKm5kcCkNCiAgICA+ICB7DQogICAgPiAgCXN0cnVjdCBuY3NpX2RldiAqbmQgPSAmbmRwLT5u ZGV2Ow0KICAgID4gQEAgLTY4NSw2ICs3MzcsMjIgQEAgc3RhdGljIHZvaWQgbmNzaV9jb25maWd1 cmVfY2hhbm5lbChzdHJ1Y3QgbmNzaV9kZXZfcHJpdiAqbmRwKQ0KICAgID4gIAkJCWdvdG8gZXJy b3I7DQogICAgPiAgCQl9DQogICAgPiAgDQogICAgPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX05D U0lfT0VNX0NNRF9HRVRfTUFDKQ0KICAgID4gKwkJLyogQ2hlY2sgTWFudWZhY3R1cmUgaWQgaWYg aXQgaXMgTWVsbGFub3ggdGhlbg0KICAgID4gKwkJICogZ2V0IGFuZCBzZXQgbWFjIGFkZHJlc3Mu IFRvIERvOiBBZGQgY29kZSBmb3INCiAgICA+ICsJCSAqIG90aGVyIHR5cGVzIG9mIGNhcmQgaWYg cmVxdWlyZWQNCiAgICA+ICsJCSAqLw0KICAgID4gKwkJaWYgKG5jLT52ZXJzaW9uLm1mX2lkID09 IE5DU0lfT0VNX01GUl9NTFhfSUQpDQogICAgPiArCQkJbmQtPnN0YXRlID0gbmNzaV9kZXZfc3Rh dGVfY29uZmlnX29lbV9nbWE7DQogICAgPiArCQllbHNlDQogICAgPiArCQkJbmQtPnN0YXRlID0g bmNzaV9kZXZfc3RhdGVfY29uZmlnX2NsZWFyX3ZpZHM7DQogICAgPiArCQlicmVhazsNCiAgICA+ ICsJY2FzZSBuY3NpX2Rldl9zdGF0ZV9jb25maWdfb2VtX2dtYToNCiAgICA+ICsJCW5kcC0+cGVu ZGluZ19yZXFfbnVtID0gMjsNCiAgICA+ICsJCWdldF9tYWNfYWRkcmVzc19vZW1fbWx4KG5kcCk7 DQogICAgPiArCQltc2xlZXAoNTAwKTsNCiAgICANCiAgICAgICAgSXMgdGhpcyBtc2xlZXAoKSBy ZXF1aXJlZD8NCiAgICBJdCBpcyByZXF1aXJlZCB0byBtYWtlIHN1cmUgcHJldmlvdXMgY29tbWFu ZCBjb21wbGV0ZWQuIA0KICAgIFdpbGwgdHJ5IHRvIGhhbmRsZSBpdCBkaWZmZXJlbnRseQ0KDQog ICAgPiArCQlzZXRfbWFjX2FmZmluaXR5X21seChuZHApOw0KICAgIA0KICAgICAgICBTaW5jZSB0 aGlzICpzZXRzKiB0aGUgTUFDIGFkZHJlc3MsIHNob3VsZCB3ZSBuYW1lIHRoZSBzdGF0ZSBhbmQg Y29uZmlnDQogICAgICAgIG9wdGlvbiBtb3JlIGFjY3VyYXRlbHk/IEhvdyBkb2VzIHRoaXMgT0VN IGNvbW1hbmQgaW50ZXJhY3Qgd2l0aCB0aGUgTkNTSQ0KICAgICAgICBzZXQtbWFjLWFkZHJlc3Mg Y29tbWFuZD8NCiAgICAgICAgRG9lcyB0aGlzIGNvbW1hbmQgZGVwZW5kIG9uIHRoZSBwcmV2aW91 cyBnZXRfbWFjX2FkZHJlc3Nfb2VtX21seCgpDQogICAgICAgIGNvbW1hbmQgc3VjY2VlZGluZz8N CiAgICBJdCBpcyBpbmRlcGVuZGVudCBvZiBTZXRfbWFjX2FkZHJlc3MuIFllcyBpdCBkZXBlbmRz IG9uIHN1Y2Nlc3Npb24gDQogICAgb2YgZ2V0X21hY19hZGRyZXNzX29lbV9tbHgoKSB0aGF0J3Mg d2h5IG1zbGVlcCB3YXMgcHV0IHRoZXJlLg0KICAgIA0KICAgID4gKyNlbmRpZiAvKiBDT05GSUdf TkNTSV9PRU1fQ01EX0dFVF9NQUMgKi8NCiAgICA+ICAJCW5kLT5zdGF0ZSA9IG5jc2lfZGV2X3N0 YXRlX2NvbmZpZ19jbGVhcl92aWRzOw0KICAgID4gIAkJYnJlYWs7DQogICAgPiAgCWNhc2UgbmNz aV9kZXZfc3RhdGVfY29uZmlnX2NsZWFyX3ZpZHM6DQogICAgPiBkaWZmIC0tZ2l0IGEvbmV0L25j c2kvbmNzaS1wa3QuaCBiL25ldC9uY3NpL25jc2ktcGt0LmgNCiAgICA+IGluZGV4IDkxYjRiNjY0 MzhkZi4uMDY1M2E4OTNlYjEyIDEwMDY0NA0KICAgID4gLS0tIGEvbmV0L25jc2kvbmNzaS1wa3Qu aA0KICAgID4gKysrIGIvbmV0L25jc2kvbmNzaS1wa3QuaA0KICAgID4gQEAgLTE1MSw2ICsxNTEs MjIgQEAgc3RydWN0IG5jc2lfY21kX3NuZmNfcGt0IHsNCiAgICA+ICAJdW5zaWduZWQgY2hhciAg ICAgICAgICAgcGFkWzIyXTsNCiAgICA+ICB9Ow0KICAgID4gIA0KICAgID4gKy8qIE9lbSBSZXF1 ZXN0IENvbW1hbmQgKi8NCiAgICANCiAgICAgICAgSW4gZ2VuZXJhbCwgcy9PZW0vT0VNDQogICAg U3VyZSwgd2lsbCBiZSBkb25lLg0KDQogICAgPiArc3RydWN0IG5jc2lfY21kX29lbV9wa3Qgew0K ICAgID4gKwlzdHJ1Y3QgbmNzaV9jbWRfcGt0X2hkciBjbWQ7ICAgICAgICAgLyogQ29tbWFuZCBo ZWFkZXIgICAgKi8NCiAgICA+ICsJdW5zaWduZWQgY2hhciAgICAgICAgICAgZGF0YVs2NF07ICAg IC8qIE9FTSBQYXlsb2FkIERhdGEgICovDQogICAgPiArCV9fYmUzMiAgICAgICAgICAgICAgICAg IGNoZWNrc3VtOyAgICAvKiBDaGVja3N1bSAgICAgICAgICAqLw0KICAgID4gK307DQogICAgPiAr DQogICAgPiArLyogT2VtIFJlc3BvbnNlIFBhY2tldCAqLw0KICAgID4gK3N0cnVjdCBuY3NpX3Jz cF9vZW1fcGt0IHsNCiAgICA+ICsJc3RydWN0IG5jc2lfcnNwX3BrdF9oZHIgcnNwOyAgICAgICAg IC8qIENvbW1hbmQgaGVhZGVyICAgICovDQogICAgPiArCV9fYmUzMiAgICAgICAgICAgICAgICAg IG1mcl9pZDsgICAgICAvKiBNYW51ZmFjdHVyZSBJRCAgICAqLw0KICAgID4gKwlfX2JlMzIgICAg ICAgICAgICAgICAgICBvZW1fY21kOyAgICAgLyogb2VtIGNvbW1hbmQgICAgICAgKi8NCiAgICA+ ICsJdW5zaWduZWQgY2hhciAgICAgICAgICAgZGF0YVszMl07ICAgIC8qIFBheWxvYWQgZGF0YSAg ICAgICovDQogICAgPiArCV9fYmUzMiAgICAgICAgICAgICAgICAgIGNoZWNrc3VtOyAgICAvKiBD aGVja3N1bSAgICAgICAgICAqLw0KICAgID4gK307DQogICAgPiArDQogICAgPiAgLyogR2V0IExp bmsgU3RhdHVzICovDQogICAgPiAgc3RydWN0IG5jc2lfcnNwX2dsc19wa3Qgew0KICAgID4gIAlz dHJ1Y3QgbmNzaV9yc3BfcGt0X2hkciByc3A7ICAgICAgICAvKiBSZXNwb25zZSBoZWFkZXIgICAq Lw0KICAgID4gZGlmZiAtLWdpdCBhL25ldC9uY3NpL25jc2ktcnNwLmMgYi9uZXQvbmNzaS9uY3Np LXJzcC5jDQogICAgPiBpbmRleCA5MzBjMWQzNzk2ZjAuLjNiOTRjOTZiOWM3ZiAxMDA2NDQNCiAg ICA+IC0tLSBhL25ldC9uY3NpL25jc2ktcnNwLmMNCiAgICA+ICsrKyBiL25ldC9uY3NpL25jc2kt cnNwLmMNCiAgICA+IEBAIC01OTYsNiArNTk2LDM3IEBAIHN0YXRpYyBpbnQgbmNzaV9yc3BfaGFu ZGxlcl9zbmZjKHN0cnVjdCBuY3NpX3JlcXVlc3QgKm5yKQ0KICAgID4gIAlyZXR1cm4gMDsNCiAg ICA+ICB9DQogICAgPiAgDQogICAgPiArc3RhdGljIGludCBuY3NpX3JzcF9oYW5kbGVyX29lbShz dHJ1Y3QgbmNzaV9yZXF1ZXN0ICpucikNCiAgICA+ICt7DQogICAgPiArCXN0cnVjdCBuY3NpX3Jz cF9vZW1fcGt0ICpyc3A7DQogICAgPiArCXN0cnVjdCBuY3NpX2Rldl9wcml2ICpuZHAgPSBuci0+ bmRwOw0KICAgID4gKwlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IG5kcC0+bmRldi5kZXY7DQog ICAgPiArCWludCByZXQgPSAwOw0KICAgID4gKwl1bnNpZ25lZCBpbnQgb2VtX2NtZCwgbWZyX2lk Ow0KICAgID4gKwljb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgKm9wcyA9IG5kZXYtPm5ldGRl dl9vcHM7DQogICAgPiArCXN0cnVjdCBzb2NrYWRkciBzYWRkcjsNCiAgICA+ICsNCiAgICA+ICsJ LyogR2V0IHRoZSByZXNwb25zZSBoZWFkZXIgKi8NCiAgICA+ICsJcnNwID0gKHN0cnVjdCBuY3Np X3JzcF9vZW1fcGt0ICopc2tiX25ldHdvcmtfaGVhZGVyKG5yLT5yc3ApOw0KICAgID4gKw0KICAg ID4gKwlvZW1fY21kID0gbnRvaGwocnNwLT5vZW1fY21kKTsNCiAgICA+ICsJbWZyX2lkID0gbnRv aGwocnNwLT5tZnJfaWQpOw0KICAgID4gKw0KICAgID4gKwkvKiBDaGVjayBmb3IgTWVsbGFub3gg bWFudWZhY3R1cmVyIGlkICovDQogICAgPiArCWlmIChtZnJfaWQgIT0gTkNTSV9PRU1fTUZSX01M WF9JRCkNCiAgICA+ICsJCXJldHVybiAwOw0KICAgID4gKw0KICAgID4gKwlpZiAob2VtX2NtZCA9 PSBOQ1NJX09FTV9NTFhfQ01EX0dFVF9NQUMpIHsNCiAgICA+ICsJCXNhZGRyLnNhX2ZhbWlseSA9 IG5kZXYtPnR5cGU7DQogICAgPiArCQluZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJf Q0hBTkdFOw0KICAgID4gKwkJbWVtY3B5KHNhZGRyLnNhX2RhdGEsICYocnNwLT5kYXRhWzRdKSwg RVRIX0FMRU4pOw0KICAgID4gKwkJcmV0ID0gb3BzLT5uZG9fc2V0X21hY19hZGRyZXNzKG5kZXYs ICZzYWRkcik7DQogICAgPiArCQlpZiAocmV0IDwgMCkNCiAgICA+ICsJCQluZXRkZXZfd2Fybihu ZGV2LCAiTkNTSTogJ1dyaXRpbmcgbWFjIGFkZHJlc3MgdG8gZGV2aWNlIGZhaWxlZFxuIik7DQog ICAgPiArCX0NCiAgICA+ICsJcmV0dXJuIHJldDsNCiAgICA+ICt9DQogICAgPiArDQogICAgPiAg c3RhdGljIGludCBuY3NpX3JzcF9oYW5kbGVyX2d2aShzdHJ1Y3QgbmNzaV9yZXF1ZXN0ICpucikN CiAgICA+ICB7DQogICAgPiAgCXN0cnVjdCBuY3NpX3JzcF9ndmlfcGt0ICpyc3A7DQogICAgPiBA QCAtOTMyLDcgKzk2Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmNzaV9yc3BfaGFuZGxlciB7DQogICAg PiAgCXsgTkNTSV9QS1RfUlNQX0dOUywgICAxNzIsIG5jc2lfcnNwX2hhbmRsZXJfZ25zICAgICB9 LA0KICAgID4gIAl7IE5DU0lfUEtUX1JTUF9HTlBUUywgMTcyLCBuY3NpX3JzcF9oYW5kbGVyX2du cHRzICAgfSwNCiAgICA+ICAJeyBOQ1NJX1BLVF9SU1BfR1BTLCAgICAgOCwgbmNzaV9yc3BfaGFu ZGxlcl9ncHMgICAgIH0sDQogICAgPiAtCXsgTkNTSV9QS1RfUlNQX09FTSwgICAgIDAsIE5VTEwg ICAgICAgICAgICAgICAgICAgICB9LA0KICAgID4gKwl7IE5DU0lfUEtUX1JTUF9PRU0sICAgIC0x LCBuY3NpX3JzcF9oYW5kbGVyX29lbSAgICAgfSwNCiAgICA+ICAJeyBOQ1NJX1BLVF9SU1BfUExE TSwgICAgMCwgTlVMTCAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgPiAgCXsgTkNTSV9QS1Rf UlNQX0dQVVVJRCwgMjAsIG5jc2lfcnNwX2hhbmRsZXJfZ3B1dWlkICB9DQogICAgPiAgfTsNCiAg ICANCiAgICANCiAgICANCg0K