Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx2.netapp.com ([216.240.18.37]:63536 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753979Ab2CAWkE (ORCPT ); Thu, 1 Mar 2012 17:40:04 -0500 From: "Myklebust, Trond" To: Chuck Lever CC: "linux-nfs@vger.kernel.org" Subject: Re: [PATCH 15/15] NFS: Fix some minor problems with nfs4_deviceids Date: Thu, 1 Mar 2012 22:39:59 +0000 Message-ID: <1330641595.15828.16.camel@lade.trondhjem.org> References: <20120301215755.2138.73488.stgit@degas.1015granger.net> <20120301220222.2138.65095.stgit@degas.1015granger.net> In-Reply-To: <20120301220222.2138.65095.stgit@degas.1015granger.net> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gVGh1LCAyMDEyLTAzLTAxIGF0IDE3OjAyIC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g Q2xlYW4gdXAgZHVlIHRvIGNvZGUgcmV2aWV3Lg0KPiANCj4gc2l6ZW9mKHN0cnVjdCBuZnM0X2Rl dmljZWlkKSBpcyB0aGUgc2l6ZSBvZiB0aGUgaW4tY29yZSBkZXZpY2UgSUQgZGF0YQ0KPiBzdHJ1 Y3R1cmUsIGJ1dCBORlM0X0RFVklDRUlENF9TSVpFIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGlu IGFuIFhEUidkDQo+IGRldmljZSBJRC4gIFRoZSB0d28gYXJlIG5vdCBpbnRlcmNoYW5nZWFibGUs IGV2ZW4gaWYgdGhleSBoYXBwZW4gdG8NCj4gaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gIElmIHN0cnVj dCBuZnM0X2RldmljZWlkIGlzIHBhZGRlZCBieSB0aGUNCj4gY29tcGlsZXIsIHNpemVvZihzdHJ1 Y3QgbmZzNF9kZXZpY2VpZCkgbWF5IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUNCj4gWERSJ2Qgc2l6 ZS4gIE5vdCBsaWtlbHksIGJ1dCBzdGlsbC4NCj4gDQo+IEVuc3VyZSB0aGF0IHRoZSBkYXRhIGZp ZWxkIGlzIGFsaWduZWQgdG8gdGhlIGxhcmdlc3QgcG9pbnRlciB0eXBlIHRoYXQNCj4gaXMgdXNl ZCB0byBhY2Nlc3MgaXQ6IGluIHRoaXMgY2FzZSwgdGhhdCdzIHU2NC4gIFR5cGUtcHVubmluZyBh bW9uZw0KPiB0eXBlcyB3aXRoIGRpZmZlcmVudCBhbGlnbm1lbnQgaGFzIGJlZW4gZGlzY291cmFn ZWQgaW4gdXNlciBzcGFjZSBhbmQNCj4gdGhlIGtlcm5lbCwgdG8gYXZvaWQgdW5uZWVkZWQgcG9p bnRlciBhbGlhc2luZy4gIFRoZSB1c2Ugb2YgYSB1bmlvbg0KPiBpcyBwcmVmZXJyZWQgaW5zdGVh ZC4NCj4gDQo+IEVuc3VyZSB0aGF0IFhEUidpbmcgYW5kIGNvbXBhcmluZyBpcyBkb25lIHZpYSBv bmUgb2YgdGhlIHVuaW9uJ3MgZGF0YQ0KPiBmaWVsZHMsIGFuZCBub3QgdmlhIHRoZSB3aG9sZSBz dHJ1Y3QsIGFnYWluIGluIGNhc2UgdGhlIGNvbXBpbGVyIHBhZHMNCj4gdGhlIHN0cnVjdC4NCj4g DQo+IEFzIGEgbWljcm8tb3B0aW1pemF0aW9uLCB0aGlzIGNoYW5nZSBhbHNvIGVuc3VyZXMgdGhh dCB0aGUgY29tcGlsZXINCj4gbWF5IHBlcmZvcm0gbWVtY3B5KCkgYW5kIG1lbWNtcCgpIG9wZXJh dGlvbnMgb24gdGhlc2UgZmllbGRzIGluDQo+IGxhcmdlciwgbW9yZSBlZmZpY2llbnQsIGNodW5r cy4NCj4gDQo+IFRoaXMgcGF0Y2ggbmVlZHMgcmV2aWV3IGFuZCB0ZXN0aW5nIGJ5IHBuZnMgbGF5 b3V0IHNwZWNpYWxpc3RzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQ2h1Y2sgTGV2ZXIgPGNodWNr LmxldmVyQG9yYWNsZS5jb20+DQo+IC0tLQ0KPiANCj4gIGZzL25mcy9ibG9ja2xheW91dC9ibG9j a2xheW91dC5jICAgIHwgICAgMiArLQ0KPiAgZnMvbmZzL2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0 ZGV2LmMgfCAgICA4ICsrKystLS0tDQo+ICBmcy9uZnMvYmxvY2tsYXlvdXQvZXh0ZW50cy5jICAg ICAgICB8ICAgIDUgKysrLS0NCj4gIGZzL25mcy9jYWxsYmFja194ZHIuYyAgICAgICAgICAgICAg IHwgICAgMiArLQ0KPiAgZnMvbmZzL25mczRmaWxlbGF5b3V0LmMgICAgICAgICAgICAgfCAgICAz ICstLQ0KPiAgZnMvbmZzL25mczR4ZHIuYyAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsrLS0N Cj4gIGZzL25mcy9vYmpsYXlvdXQvcG5mc19vc2RfeGRyX2NsaS5jIHwgICAgOCArKysrLS0tLQ0K PiAgZnMvbmZzL3BuZnNfZGV2LmMgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrKystLS0NCj4g IGluY2x1ZGUvbGludXgvbmZzNC5oICAgICAgICAgICAgICAgIHwgICAgNyArKysrKystDQo+ICBp bmNsdWRlL2xpbnV4L3BuZnNfb3NkX3hkci5oICAgICAgICB8ICAgIDQgKystLQ0KPiAgMTAgZmls ZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm IC0tZ2l0IGEvZnMvbmZzL2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmMgYi9mcy9uZnMvYmxvY2ts YXlvdXQvYmxvY2tsYXlvdXQuYw0KPiBpbmRleCA3ODNlYmQ1Li4zYjczMGJmIDEwMDY0NA0KPiAt LS0gYS9mcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXQuYw0KPiArKysgYi9mcy9uZnMvYmxv Y2tsYXlvdXQvYmxvY2tsYXlvdXQuYw0KPiBAQCAtOTAxLDcgKzkwMSw3IEBAIG5mczRfYmxrX2dl dF9kZXZpY2VpbmZvKHN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXIsIGNvbnN0IHN0cnVjdCBuZnNf ZmggKmZoLA0KPiAgCWRldi0+cGdsZW4gPSBQQUdFX1NJWkUgKiBtYXhfcGFnZXM7DQo+ICAJZGV2 LT5taW5jb3VudCA9IDA7DQo+ICANCj4gLQlkcHJpbnRrKCIlczogZGV2X2lkOiAlc1xuIiwgX19m dW5jX18sIGRldi0+ZGV2X2lkLmRhdGEpOw0KPiArCWRwcmludGsoIiVzOiBkZXZfaWQ6ICVzXG4i LCBfX2Z1bmNfXywgZGV2LT5kZXZfaWQudS5kYXRhKTsNCj4gIAlyYyA9IG5mczRfcHJvY19nZXRk ZXZpY2VpbmZvKHNlcnZlciwgZGV2KTsNCj4gIAlkcHJpbnRrKCIlcyBnZXRkZXZpY2UgaW5mbyBy ZXR1cm5zICVkXG4iLCBfX2Z1bmNfXywgcmMpOw0KPiAgCWlmIChyYykgew0KPiBkaWZmIC0tZ2l0 IGEvZnMvbmZzL2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0ZGV2LmMgYi9mcy9uZnMvYmxvY2tsYXlv dXQvYmxvY2tsYXlvdXRkZXYuYw0KPiBpbmRleCBiNDhmNzgyLi4yZGFmY2E1IDEwMDY0NA0KPiAt LS0gYS9mcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXRkZXYuYw0KPiArKysgYi9mcy9uZnMv YmxvY2tsYXlvdXQvYmxvY2tsYXlvdXRkZXYuYw0KPiBAQCAtMTI0LDggKzEyNCw4IEBAIG5mczRf YmxrX2RlY29kZV9kZXZpY2Uoc3RydWN0IG5mc19zZXJ2ZXIgKnNlcnZlciwNCj4gIAlzdHJ1Y3Qg bmZzX25ldCAqbm4gPSBuZXRfZ2VuZXJpYyhuZXQsIG5mc19uZXRfaWQpOw0KPiAgDQo+ICAJZHBy aW50aygiJXMgQ1JFQVRJTkcgUElQRUZTIE1FU1NBR0VcbiIsIF9fZnVuY19fKTsNCj4gLQlkcHJp bnRrKCIlczogZGV2aWNlaWQ6ICVzLCBtaW5jb3VudDogJWRcbiIsIF9fZnVuY19fLCBkZXYtPmRl dl9pZC5kYXRhLA0KPiAtCQlkZXYtPm1pbmNvdW50KTsNCj4gKwlkcHJpbnRrKCIlczogZGV2aWNl aWQ6ICVzLCBtaW5jb3VudDogJWRcbiIsIF9fZnVuY19fLA0KPiArCQlkZXYtPmRldl9pZC51LmRh dGEsIGRldi0+bWluY291bnQpOw0KPiAgDQo+ICAJbWVtc2V0KCZtc2csIDAsIHNpemVvZihtc2cp KTsNCj4gIAltc2cuZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKGJsX21zZykgKyBkZXYtPm1pbmNvdW50 LCBHRlBfTk9GUyk7DQo+IEBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGljIHN0cnVjdCBibG9ja19k ZXZpY2UgKnRyYW5zbGF0ZV9kZXZpZChzdHJ1Y3QgcG5mc19sYXlvdXRfaGRyICpsbywNCj4gIAlt aWQgPSBCTEtfSUQobG8pOw0KPiAgCXNwaW5fbG9jaygmbWlkLT5ibV9sb2NrKTsNCj4gIAlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGRldiwgJm1pZC0+Ym1fZGV2bGlzdCwgYm1fbm9kZSkgew0KPiAtCQlp ZiAobWVtY21wKGlkLT5kYXRhLCBkZXYtPmJtX21kZXZpZC5kYXRhLA0KPiArCQlpZiAobWVtY21w KGlkLT51LmRhdGEsIGRldi0+Ym1fbWRldmlkLnUuZGF0YSwNCj4gIAkJCSAgIE5GUzRfREVWSUNF SUQ0X1NJWkUpID09IDApIHsNCj4gIAkJCXJ2ID0gZGV2LT5ibV9tZGV2Ow0KPiAgCQkJZ290byBv dXQ7DQo+IEBAIC0zMjMsNyArMzIzLDcgQEAgbmZzNF9ibGtfcHJvY2Vzc19sYXlvdXRnZXQoc3Ry dWN0IHBuZnNfbGF5b3V0X2hkciAqbG8sDQo+ICAJCQlzdGF0dXMgPSAtRU5PTUVNOw0KPiAgCQkJ Z290byBvdXRfZXJyOw0KPiAgCQl9DQo+IC0JCW1lbWNweSgmYmUtPmJlX2RldmlkLCBwLCBORlM0 X0RFVklDRUlENF9TSVpFKTsNCj4gKwkJbWVtY3B5KCZiZS0+YmVfZGV2aWQudS5kYXRhLCBwLCBO RlM0X0RFVklDRUlENF9TSVpFKTsNCj4gIAkJcCArPSBYRFJfUVVBRExFTihORlM0X0RFVklDRUlE NF9TSVpFKTsNCj4gIAkJYmUtPmJlX21kZXYgPSB0cmFuc2xhdGVfZGV2aWQobG8sICZiZS0+YmVf ZGV2aWQpOw0KPiAgCQlpZiAoIWJlLT5iZV9tZGV2KQ0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2Js b2NrbGF5b3V0L2V4dGVudHMuYyBiL2ZzL25mcy9ibG9ja2xheW91dC9leHRlbnRzLmMNCj4gaW5k ZXggMWY5YTYwMy4uNTJiNzQ3YyAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL2Jsb2NrbGF5b3V0L2V4 dGVudHMuYw0KPiArKysgYi9mcy9uZnMvYmxvY2tsYXlvdXQvZXh0ZW50cy5jDQo+IEBAIC02NzUs MTAgKzY3NSwxMSBAQCBlbmNvZGVfcG5mc19ibG9ja19sYXlvdXR1cGRhdGUoc3RydWN0IHBuZnNf YmxvY2tfbGF5b3V0ICpibCwNCj4gIAlpZiAoIXhkcl9zdGFydCkNCj4gIAkJZ290byBvdXQ7DQo+ ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGxjZSwgc2F2ZSwgJmJsLT5ibF9jb21taXQsIGJz ZV9ub2RlKSB7DQo+IC0JCXAgPSB4ZHJfcmVzZXJ2ZV9zcGFjZSh4ZHIsIDcgKiA0ICsgc2l6ZW9m KGxjZS0+YnNlX2RldmlkLmRhdGEpKTsNCj4gKwkJcCA9IHhkcl9yZXNlcnZlX3NwYWNlKHhkciwg NyAqIDQgKyBORlM0X0RFVklDRUlENF9TSVpFKTsNCj4gIAkJaWYgKCFwKQ0KPiAgCQkJYnJlYWs7 DQo+IC0JCXAgPSB4ZHJfZW5jb2RlX29wYXF1ZV9maXhlZChwLCBsY2UtPmJzZV9kZXZpZC5kYXRh LCBORlM0X0RFVklDRUlENF9TSVpFKTsNCj4gKwkJcCA9IHhkcl9lbmNvZGVfb3BhcXVlX2ZpeGVk KHAsIGxjZS0+YnNlX2RldmlkLnUuZGF0YSwNCj4gKwkJCQkJICAgIE5GUzRfREVWSUNFSUQ0X1NJ WkUpOw0KPiAgCQlwID0geGRyX2VuY29kZV9oeXBlcihwLCBsY2UtPmJzZV9mX29mZnNldCA8PCBT RUNUT1JfU0hJRlQpOw0KPiAgCQlwID0geGRyX2VuY29kZV9oeXBlcihwLCBsY2UtPmJzZV9sZW5n dGggPDwgU0VDVE9SX1NISUZUKTsNCj4gIAkJcCA9IHhkcl9lbmNvZGVfaHlwZXIocCwgMExMKTsN Cj4gZGlmZiAtLWdpdCBhL2ZzL25mcy9jYWxsYmFja194ZHIuYyBiL2ZzL25mcy9jYWxsYmFja194 ZHIuYw0KPiBpbmRleCA1NDY2ODI5Li42MDYxMzIyIDEwMDY0NA0KPiAtLS0gYS9mcy9uZnMvY2Fs bGJhY2tfeGRyLmMNCj4gKysrIGIvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQo+IEBAIC0zNDcsNyAr MzQ3LDcgQEAgX19iZTMyIGRlY29kZV9kZXZpY2Vub3RpZnlfYXJncyhzdHJ1Y3Qgc3ZjX3Jxc3Qg KnJxc3RwLA0KPiAgCQkJZ290byBlcnI7DQo+ICAJCX0NCj4gIAkJZGV2LT5jYmRfbGF5b3V0X3R5 cGUgPSBudG9obCgqcCsrKTsNCj4gLQkJbWVtY3B5KGRldi0+Y2JkX2Rldl9pZC5kYXRhLCBwLCBO RlM0X0RFVklDRUlENF9TSVpFKTsNCj4gKwkJbWVtY3B5KGRldi0+Y2JkX2Rldl9pZC51LmRhdGEs IHAsIE5GUzRfREVWSUNFSUQ0X1NJWkUpOw0KPiAgCQlwICs9IFhEUl9RVUFETEVOKE5GUzRfREVW SUNFSUQ0X1NJWkUpOw0KPiAgDQo+ICAJCWlmIChkZXYtPmNiZF9sYXlvdXRfdHlwZSA9PSBOT1RJ RllfREVWSUNFSUQ0X0NIQU5HRSkgew0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRmaWxlbGF5 b3V0LmMgYi9mcy9uZnMvbmZzNGZpbGVsYXlvdXQuYw0KPiBpbmRleCA0N2U4ZjM0Li5mMGM2YmEw IDEwMDY0NA0KPiAtLS0gYS9mcy9uZnMvbmZzNGZpbGVsYXlvdXQuYw0KPiArKysgYi9mcy9uZnMv bmZzNGZpbGVsYXlvdXQuYw0KPiBAQCAtNTUwLDggKzU1MCw3IEBAIGZpbGVsYXlvdXRfZGVjb2Rl X2xheW91dChzdHJ1Y3QgcG5mc19sYXlvdXRfaGRyICpmbG8sDQo+ICAJaWYgKHVubGlrZWx5KCFw KSkNCj4gIAkJZ290byBvdXRfZXJyOw0KPiAgDQo+IC0JbWVtY3B5KGlkLCBwLCBzaXplb2YoKmlk KSk7DQo+IC0JcCArPSBYRFJfUVVBRExFTihORlM0X0RFVklDRUlENF9TSVpFKTsNCj4gKwlwID0g eGRyX2RlY29kZV9vcGFxdWVfZml4ZWQocCwgaWQtPnUuZGF0YSwgTkZTNF9ERVZJQ0VJRDRfU0la RSk7DQo+ICAJbmZzNF9wcmludF9kZXZpY2VpZChpZCk7DQo+ICANCj4gIAluZmxfdXRpbCA9IGJl MzJfdG9fY3B1cChwKyspOw0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczR4ZHIuYyBiL2ZzL25m cy9uZnM0eGRyLmMNCj4gaW5kZXggODBiYTAxMC4uOTEwMjBlYSAxMDA2NDQNCj4gLS0tIGEvZnMv bmZzL25mczR4ZHIuYw0KPiArKysgYi9mcy9uZnMvbmZzNHhkci5jDQo+IEBAIC0xOTQ2LDcgKzE5 NDYsNyBAQCBlbmNvZGVfZ2V0ZGV2aWNlaW5mbyhzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLA0KPiAg DQo+ICAJcCA9IHJlc2VydmVfc3BhY2UoeGRyLCAxNiArIE5GUzRfREVWSUNFSUQ0X1NJWkUpOw0K PiAgCSpwKysgPSBjcHVfdG9fYmUzMihPUF9HRVRERVZJQ0VJTkZPKTsNCj4gLQlwID0geGRyX2Vu Y29kZV9vcGFxdWVfZml4ZWQocCwgYXJncy0+cGRldi0+ZGV2X2lkLmRhdGEsDQo+ICsJcCA9IHhk cl9lbmNvZGVfb3BhcXVlX2ZpeGVkKHAsIGFyZ3MtPnBkZXYtPmRldl9pZC51LmRhdGEsDQo+ICAJ CQkJICAgIE5GUzRfREVWSUNFSUQ0X1NJWkUpOw0KPiAgCSpwKysgPSBjcHVfdG9fYmUzMihhcmdz LT5wZGV2LT5sYXlvdXRfdHlwZSk7DQo+ICAJKnArKyA9IGNwdV90b19iZTMyKGFyZ3MtPnBkZXYt PnBnbGVuKTsJCS8qIGdkaWFfbWF4Y291bnQgKi8NCj4gQEAgLTU0OTIsNyArNTQ5Miw3IEBAIHN0 YXRpYyBpbnQgZGVjb2RlX2dldGRldmljZWxpc3Qoc3RydWN0IHhkcl9zdHJlYW0gKnhkciwNCj4g IAlpZiAodW5saWtlbHkoIXApKQ0KPiAgCQlnb3RvIG91dF9vdmVyZmxvdzsNCj4gIAlmb3IgKGkg PSAwOyBpIDwgcmVzLT5udW1fZGV2czsgaSsrKQ0KPiAtCQlwID0geGRyX2RlY29kZV9vcGFxdWVf Zml4ZWQocCwgcmVzLT5kZXZfaWRbaV0uZGF0YSwNCj4gKwkJcCA9IHhkcl9kZWNvZGVfb3BhcXVl X2ZpeGVkKHAsIHJlcy0+ZGV2X2lkW2ldLnUuZGF0YSwNCj4gIAkJCQkJICAgIE5GUzRfREVWSUNF SUQ0X1NJWkUpOw0KPiAgCXJlcy0+ZW9mID0gYmUzMl90b19jcHVwKHApOw0KPiAgCXJldHVybiAw Ow0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL29iamxheW91dC9wbmZzX29zZF94ZHJfY2xpLmMgYi9m cy9uZnMvb2JqbGF5b3V0L3BuZnNfb3NkX3hkcl9jbGkuYw0KPiBpbmRleCBiMzkxOGY3Li45OWEx ZTg5IDEwMDY0NA0KPiAtLS0gYS9mcy9uZnMvb2JqbGF5b3V0L3BuZnNfb3NkX3hkcl9jbGkuYw0K PiArKysgYi9mcy9uZnMvb2JqbGF5b3V0L3BuZnNfb3NkX3hkcl9jbGkuYw0KPiBAQCAtNTUsOCAr NTUsOCBAQA0KPiAgc3RhdGljIF9fYmUzMiAqDQo+ICBfb3NkX3hkcl9kZWNvZGVfb2JqaWQoX19i ZTMyICpwLCBzdHJ1Y3QgcG5mc19vc2Rfb2JqaWQgKm9iamlkKQ0KPiAgew0KPiAtCXAgPSB4ZHJf ZGVjb2RlX29wYXF1ZV9maXhlZChwLCBvYmppZC0+b2lkX2RldmljZV9pZC5kYXRhLA0KPiAtCQkJ CSAgICBzaXplb2Yob2JqaWQtPm9pZF9kZXZpY2VfaWQuZGF0YSkpOw0KPiArCXAgPSB4ZHJfZGVj b2RlX29wYXF1ZV9maXhlZChwLCBvYmppZC0+b2lkX2RldmljZV9pZC51LmRhdGEsDQo+ICsJCQkJ ICAgIE5GUzRfREVWSUNFSUQ0X1NJWkUpOw0KPiAgDQo+ICAJcCA9IHhkcl9kZWNvZGVfaHlwZXIo cCwgJm9iamlkLT5vaWRfcGFydGl0aW9uX2lkKTsNCj4gIAlwID0geGRyX2RlY29kZV9oeXBlcihw LCAmb2JqaWQtPm9pZF9vYmplY3RfaWQpOw0KPiBAQCAtMzc3LDggKzM3Nyw4IEBAIHBuZnNfb3Nk X3hkcl9lbmNvZGVfbGF5b3V0dXBkYXRlKHN0cnVjdCB4ZHJfc3RyZWFtICp4ZHIsDQo+ICBzdGF0 aWMgaW5saW5lIF9fYmUzMiAqDQo+ICBwbmZzX29zZF94ZHJfZW5jb2RlX29iamlkKF9fYmUzMiAq cCwgc3RydWN0IHBuZnNfb3NkX29iamlkICpvYmplY3RfaWQpDQo+ICB7DQo+IC0JcCA9IHhkcl9l bmNvZGVfb3BhcXVlX2ZpeGVkKHAsICZvYmplY3RfaWQtPm9pZF9kZXZpY2VfaWQuZGF0YSwNCj4g LQkJCQkgICAgc2l6ZW9mKG9iamVjdF9pZC0+b2lkX2RldmljZV9pZC5kYXRhKSk7DQo+ICsJcCA9 IHhkcl9lbmNvZGVfb3BhcXVlX2ZpeGVkKHAsICZvYmplY3RfaWQtPm9pZF9kZXZpY2VfaWQudS5k YXRhLA0KPiArCQkJCSAgICBORlM0X0RFVklDRUlENF9TSVpFKTsNCj4gIAlwID0geGRyX2VuY29k ZV9oeXBlcihwLCBvYmplY3RfaWQtPm9pZF9wYXJ0aXRpb25faWQpOw0KPiAgCXAgPSB4ZHJfZW5j b2RlX2h5cGVyKHAsIG9iamVjdF9pZC0+b2lkX29iamVjdF9pZCk7DQo+ICANCj4gZGlmZiAtLWdp dCBhL2ZzL25mcy9wbmZzX2Rldi5jIGIvZnMvbmZzL3BuZnNfZGV2LmMNCj4gaW5kZXggNGYzNTlk Mi4uNmM2YWI4MSAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL3BuZnNfZGV2LmMNCj4gKysrIGIvZnMv bmZzL3BuZnNfZGV2LmMNCj4gQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIERFRklORV9TUElOTE9D SyhuZnM0X2RldmljZWlkX2xvY2spOw0KPiAgdm9pZA0KPiAgbmZzNF9wcmludF9kZXZpY2VpZChj b25zdCBzdHJ1Y3QgbmZzNF9kZXZpY2VpZCAqaWQpDQo+ICB7DQo+IC0JdTMyICpwID0gKHUzMiAq KWlkOw0KPiArCWNvbnN0IHUzMiAqcCA9IGlkLT51LmRhdGEzMjsNCj4gIA0KPiAgCWRwcmludGso IiVzOiBkZXZpY2UgaWQ9IFsleCV4JXgleF1cbiIsIF9fZnVuY19fLA0KPiAgCQlwWzBdLCBwWzFd LCBwWzJdLCBwWzNdKTsNCj4gQEAgLTU2LDcgKzU2LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwobmZz NF9wcmludF9kZXZpY2VpZCk7DQo+ICBzdGF0aWMgaW5saW5lIHUzMg0KPiAgbmZzNF9kZXZpY2Vp ZF9oYXNoKGNvbnN0IHN0cnVjdCBuZnM0X2RldmljZWlkICppZCkNCj4gIHsNCj4gLQl1bnNpZ25l ZCBjaGFyICpjcHRyID0gKHVuc2lnbmVkIGNoYXIgKilpZC0+ZGF0YTsNCj4gKwljb25zdCB1bnNp Z25lZCBjaGFyICpjcHRyID0gaWQtPnUuZGF0YTsNCj4gIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0g TkZTNF9ERVZJQ0VJRDRfU0laRTsNCj4gIAl1MzIgeCA9IDA7DQo+ICANCj4gQEAgLTc3LDcgKzc3 LDggQEAgX2xvb2t1cF9kZXZpY2VpZChjb25zdCBzdHJ1Y3QgcG5mc19sYXlvdXRkcml2ZXJfdHlw ZSAqbGQsDQo+ICANCj4gIAlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoZCwgbiwgJm5mczRfZGV2 aWNlaWRfY2FjaGVbaGFzaF0sIG5vZGUpDQo+ICAJCWlmIChkLT5sZCA9PSBsZCAmJiBkLT5uZnNf Y2xpZW50ID09IGNscCAmJg0KPiAtCQkgICAgIW1lbWNtcCgmZC0+ZGV2aWNlaWQsIGlkLCBzaXpl b2YoKmlkKSkpIHsNCj4gKwkJICAgICFtZW1jbXAoJmQtPmRldmljZWlkLnUuZGF0YSwgaWQtPnUu ZGF0YSwNCj4gKwkJCQkJCU5GUzRfREVWSUNFSUQ0X1NJWkUpKSB7DQo+ICAJCQlpZiAoYXRvbWlj X3JlYWQoJmQtPnJlZikpDQo+ICAJCQkJcmV0dXJuIGQ7DQo+ICAJCQllbHNlDQo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L25mczQuaCBiL2luY2x1ZGUvbGludXgvbmZzNC5oDQo+IGluZGV4 IGIxZTZiNjQuLjk3OWY2MDcgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvbmZzNC5oDQo+ ICsrKyBiL2luY2x1ZGUvbGludXgvbmZzNC5oDQo+IEBAIC02NDksOSArNjQ5LDE0IEBAIGVudW0g ZmlsZWxheW91dF9oaW50X2NhcmU0IHsNCj4gICNkZWZpbmUgTkZTNF9ERVZJQ0VJRDRfU0laRSAx Ng0KPiAgDQo+ICBzdHJ1Y3QgbmZzNF9kZXZpY2VpZCB7DQo+IC0JY2hhciBkYXRhW05GUzRfREVW SUNFSUQ0X1NJWkVdOw0KPiArCXVuaW9uIHsNCj4gKwkJdW5zaWduZWQgY2hhcglkYXRhW05GUzRf REVWSUNFSUQ0X1NJWkVdOw0KPiArCQl1MzIJCWRhdGEzMltORlM0X0RFVklDRUlENF9TSVpFIC8g c2l6ZW9mKHUzMildOw0KPiArCQl1NjQJCWRhdGE2NFtORlM0X0RFVklDRUlENF9TSVpFIC8gc2l6 ZW9mKHU2NCldOw0KPiArCX0gdTsNCj4gIH07DQo+ICANCg0KVWdoLi4uIFRoaXMganVzdCBsb29r cyB3b3JzZSBhbmQgd29yc2UuLi4uIExldCdzIHJhdGhlciBqdXN0IGtlZXAgdGhlc2UNCmFzIHVu c2lnbmVkIGNoYXIuIEkgZG9uJ3QgY2FyZSBpZiBPU0RzIGhhdmUgc3BlY2lhbCBzZWNyZXQgbWVh bmluZ3MgYW5kDQphbGwgdGhhdCBjcmFwLiBUaGV5IGNhbiBjYXN0IHRoZSBkYW1uZWQgdGhpbmcg aWYgdGhleSBuZWVkIHRvLiBUaGUgcmVzdA0Kb2YgdXMgc2hvdWxkIGJlIGNvbnNpZGVyaW5nIHRo aXMgdG8gYmUgb3BhcXVlIGRhdGEuDQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNs aWVudCBtYWludGFpbmVyDQoNCk5ldEFwcA0KVHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20NCnd3 dy5uZXRhcHAuY29tDQoNCg==