Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx11.netapp.com ([216.240.18.76]:23887 "EHLO mx11.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752258Ab3GXO23 (ORCPT ); Wed, 24 Jul 2013 10:28:29 -0400 From: "Myklebust, Trond" To: "Schumaker, Bryan" CC: "linux-nfs@vger.kernel.org" Subject: Re: [RFC 5/5] NFS: Change copy to support async servers Date: Wed, 24 Jul 2013 14:28:28 +0000 Message-ID: <1374676107.12943.39.camel@leira.trondhjem.org> References: <1374267830-30154-1-git-send-email-bjschuma@netapp.com> <1374267830-30154-6-git-send-email-bjschuma@netapp.com> In-Reply-To: <1374267830-30154-6-git-send-email-bjschuma@netapp.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gRnJpLCAyMDEzLTA3LTE5IGF0IDE3OjAzIC0wNDAwLCBianNjaHVtYUBuZXRhcHAuY29tIHdy b3RlOg0KPiBGcm9tOiBCcnlhbiBTY2h1bWFrZXIgPGJqc2NodW1hQG5ldGFwcC5jb20+DQo+IA0K PiBTdXBwb3J0aW5nIENCX09GRkxPQUQgaXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMsIHNvIGlmIGEg c2VydmVyIGNob29zZXMgdG8NCj4gY29weSBpbiB0aGUgYmFja2dyb3VuZCB3ZSBoYXZlIHRvIHdh aXQgZm9yIHRoZSBjb3B5IHRvIGZpbmlzaCBiZWZvcmUNCj4gcmV0dXJuaW5nIHRvIHVzZXJzcGFj ZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEJyeWFuIFNjaHVtYWtlciA8YmpzY2h1bWFAbmV0YXBw LmNvbT4NCj4gLS0tDQo+ICBmcy9uZnMvY2FsbGJhY2suaCAgICAgICB8IDEzICsrKysrKysrKysr Kw0KPiAgZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyAgfCAgOSArKysrKysrKysNCj4gIGZzL25mcy9j YWxsYmFja194ZHIuYyAgIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQ0KPiAgZnMvbmZzL25mczRfZnMuaCAgICAgICAgfCAgMyArKysNCj4gIGZz L25mcy9uZnM0ZmlsZS5jICAgICAgIHwgNDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgZnMvbmZzL25mczR4ZHIuYyAgICAgICAgfCAgNCArKy0tDQo+ICBp bmNsdWRlL2xpbnV4L25mc194ZHIuaCB8ICAzICsrKw0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAxMjkg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9mcy9uZnMv Y2FsbGJhY2suaCBiL2ZzL25mcy9jYWxsYmFjay5oDQo+IGluZGV4IDg0MzI2ZTkuLmFlNWE1ZDIg MTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9jYWxsYmFjay5oDQo+ICsrKyBiL2ZzL25mcy9jYWxsYmFj ay5oDQo+IEBAIC0xODcsNiArMTg3LDE5IEBAIGV4dGVybiBfX2JlMzIgbmZzNF9jYWxsYmFja19k ZXZpY2Vub3RpZnkoDQo+ICAJdm9pZCAqZHVtbXksIHN0cnVjdCBjYl9wcm9jZXNzX3N0YXRlICpj cHMpOw0KPiAgDQo+ICAjZW5kaWYgLyogQ09ORklHX05GU19WNF8xICovDQo+ICsNCj4gKyNpZmRl ZiBDT05GSUdfTkZTX1Y0XzINCj4gK3N0cnVjdCBjYl9vZmZsb2FkYXJncyB7DQo+ICsJc3RydWN0 IG5mc19maAkJCWRzdF9maDsNCj4gKwluZnM0X3N0YXRlaWQJCQlzdGF0ZWlkOw0KPiArCXN0cnVj dCBuZnM0Ml93cml0ZV9yZXNwb25zZQl3cml0ZV9yZXM7DQo+ICt9Ow0KPiArDQo+ICtleHRlcm4g X19iZTMyIG5mczRfY2FsbGJhY2tfb2ZmbG9hZChzdHJ1Y3QgY2Jfb2ZmbG9hZGFyZ3MgKiwgdm9p ZCAqLA0KPiArCQkJCSAgICBzdHJ1Y3QgY2JfcHJvY2Vzc19zdGF0ZSAqKTsNCj4gK3ZvaWQgd2Fr ZV9jb3B5X29mZmxvYWQoc3RydWN0IGNiX29mZmxvYWRhcmdzICopOw0KPiArI2VuZGlmIC8qIENP TkZJR19ORlNfVjRfMiAqLw0KPiArDQo+ICBleHRlcm4gaW50IGNoZWNrX2dzc19jYWxsYmFja19w cmluY2lwYWwoc3RydWN0IG5mc19jbGllbnQgKiwgc3RydWN0IHN2Y19ycXN0ICopOw0KPiAgZXh0 ZXJuIF9fYmUzMiBuZnM0X2NhbGxiYWNrX2dldGF0dHIoc3RydWN0IGNiX2dldGF0dHJhcmdzICph cmdzLA0KPiAgCQkJCSAgICBzdHJ1Y3QgY2JfZ2V0YXR0cnJlcyAqcmVzLA0KPiBkaWZmIC0tZ2l0 IGEvZnMvbmZzL2NhbGxiYWNrX3Byb2MuYyBiL2ZzL25mcy9jYWxsYmFja19wcm9jLmMNCj4gaW5k ZXggZTZlYmM0Yy4uY2RmNDE4MCAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL2NhbGxiYWNrX3Byb2Mu Yw0KPiArKysgYi9mcy9uZnMvY2FsbGJhY2tfcHJvYy5jDQo+IEBAIC01MzMsMyArNTMzLDEyIEBA IG91dDoNCj4gIAlyZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiAgI2VuZGlmIC8qIENPTkZJR19ORlNf VjRfMSAqLw0KPiArDQo+ICsjaWZkZWYgQ09ORklHX05GU19WNF8yDQo+ICtfX2JlMzIgbmZzNF9j YWxsYmFja19vZmZsb2FkKHN0cnVjdCBjYl9vZmZsb2FkYXJncyAqYXJncywgdm9pZCAqZHVtbXks DQo+ICsJCQkgICAgIHN0cnVjdCBjYl9wcm9jZXNzX3N0YXRlICpjcHMpDQo+ICt7DQo+ICsJd2Fr ZV9jb3B5X29mZmxvYWQoYXJncyk7DQo+ICsJcmV0dXJuIGh0b25sKE5GUzRfT0spOw0KPiArfQ0K PiArI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMiAqLw0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2Nh bGxiYWNrX3hkci5jIGIvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQo+IGluZGV4IGY0Y2NmZTYuLmQ4 ZmNmMWEgMTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9jYWxsYmFja194ZHIuYw0KPiArKysgYi9mcy9u ZnMvY2FsbGJhY2tfeGRyLmMNCj4gQEAgLTM1LDYgKzM1LDE0IEBADQo+ICAjZGVmaW5lIENCX09Q X1JFQ0FMTFNMT1RfUkVTX01BWFNaCShDQl9PUF9IRFJfUkVTX01BWFNaKQ0KPiAgI2VuZGlmIC8q IENPTkZJR19ORlNfVjRfMSAqLw0KPiAgDQo+ICsjaWYgZGVmaW5lZChDT05GSUdfTkZTX1Y0XzIp DQo+ICsjZGVmaW5lIENCX09QX09GRkxPQURfUkVTX01BWFNaCQkoQ0JfT1BfSERSX1JFU19NQVhT WiArIFwNCj4gKwkJCQkJIDEgKyBYRFJfUVVBRExFTihORlM0X0ZIU0laRSkgKyBcDQo+ICsJCQkJ CSBYRFJfUVVBRExFTihORlM0X1NUQVRFSURfU0laRSkgKyBcDQo+ICsJCQkJCSAxICsgWERSX1FV QURMRU4oTkZTNF9TVEFURUlEX1NJWkUpICsgXA0KPiArCQkJCQkgMiArIDEgKyBYRFJfUVVBRExF TihORlM0X1ZFUklGSUVSX1NJWkUpKQ0KPiArI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMiAqLw0K PiArDQo+ICAjZGVmaW5lIE5GU0RCR19GQUNJTElUWSBORlNEQkdfQ0FMTEJBQ0sNCj4gIA0KPiAg LyogSW50ZXJuYWwgZXJyb3IgY29kZSAqLw0KPiBAQCAtNTI3LDYgKzUzNSwzNyBAQCBzdGF0aWMg X19iZTMyIGRlY29kZV9yZWNhbGxzbG90X2FyZ3Moc3RydWN0IHN2Y19ycXN0ICpycXN0cCwNCj4g IA0KPiAgI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMSAqLw0KPiAgDQo+ICsjaWZkZWYgQ09ORklH X05GU19WNF8yDQo+ICtzdGF0aWMgaW5saW5lIF9fYmUzMiBkZWNvZGVfd3JpdGVfcmVzKHN0cnVj dCB4ZHJfc3RyZWFtICp4ZHIsDQo+ICsJCQkJICAgICAgc3RydWN0IG5mczQyX3dyaXRlX3Jlc3Bv bnNlICp3cml0ZV9yZXMpDQo+ICt7DQo+ICsJX19iZTMyIHN0YXR1cyA9IGRlY29kZV93cml0ZV9y ZXNwb25zZSh4ZHIsIHdyaXRlX3Jlcyk7DQo+ICsJaWYgKHN0YXR1cyA9PSAtRUlPKQ0KPiArCQly ZXR1cm4gaHRvbmwoTkZTNEVSUl9SRVNPVVJDRSk7DQo+ICsJcmV0dXJuIGh0b25sKHN0YXR1cyk7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBfX2JlMzIgZGVjb2RlX29mZmxvYWRfYXJncyhzdHJ1Y3Qg c3ZjX3Jxc3QgKnJxc3RwLA0KPiArCQkJCSAgc3RydWN0IHhkcl9zdHJlYW0gKnhkciwNCj4gKwkJ CQkgIHN0cnVjdCBjYl9vZmZsb2FkYXJncyAqYXJncykNCj4gK3sNCj4gKwlfX2JlMzIgc3RhdHVz Ow0KPiArDQo+ICsJc3RhdHVzID0gZGVjb2RlX2ZoKHhkciwgJmFyZ3MtPmRzdF9maCk7DQo+ICsJ aWYgKHVubGlrZWx5KHN0YXR1cyAhPSAwKSkNCj4gKwkJZ290byBvdXQ7DQo+ICsNCj4gKwlzdGF0 dXMgPSBkZWNvZGVfc3RhdGVpZCh4ZHIsICZhcmdzLT5zdGF0ZWlkKTsNCj4gKwlpZiAodW5saWtl bHkoc3RhdHVzICE9IDApKQ0KPiArCQlnb3RvIG91dDsNCj4gKw0KPiArCXN0YXR1cyA9IGRlY29k ZV93cml0ZV9yZXMoeGRyLCAmYXJncy0+d3JpdGVfcmVzKTsNCj4gK291dDoNCj4gKwlkcHJpbnRr KCIlczogZXhpdCB3aXRoIHN0YXR1cyA9ICVkXG4iLCBfX2Z1bmNfXywgbnRvaGwoc3RhdHVzKSk7 DQo+ICsJcmV0dXJuIHN0YXR1czsNCj4gK30NCj4gKyNlbmRpZiAvKiBDT05GSUdfTkZTX1Y0XzIg Ki8NCj4gKw0KPiAgc3RhdGljIF9fYmUzMiBlbmNvZGVfc3RyaW5nKHN0cnVjdCB4ZHJfc3RyZWFt ICp4ZHIsIHVuc2lnbmVkIGludCBsZW4sIGNvbnN0IGNoYXIgKnN0cikNCj4gIHsNCj4gIAlfX2Jl MzIgKnA7DQo+IEBAIC03OTQsOSArODMzLDExIEBAIHByZXByb2Nlc3NfbmZzNDJfb3AoaW50IG5v cCwgdW5zaWduZWQgaW50IG9wX25yLCBzdHJ1Y3QgY2FsbGJhY2tfb3AgKipvcCkNCj4gIAlpZiAo c3RhdHVzICE9IGh0b25sKE5GUzRFUlJfT1BfSUxMRUdBTCkpDQo+ICAJCXJldHVybiBzdGF0dXM7 DQo+ICANCj4gLQlpZiAob3BfbnIgPT0gT1BfQ0JfT0ZGTE9BRCkNCj4gLQkJcmV0dXJuIGh0b25s KE5GUzRFUlJfTk9UU1VQUCk7DQo+IC0JcmV0dXJuIGh0b25sKE5GUzRFUlJfT1BfSUxMRUdBTCk7 DQo+ICsJaWYgKG9wX25yICE9IE9QX0NCX09GRkxPQUQpDQo+ICsJCXJldHVybiBodG9ubChORlM0 RVJSX09QX0lMTEVHQUwpOw0KPiArDQo+ICsJKm9wID0gJmNhbGxiYWNrX29wc1tvcF9ucl07DQo+ ICsJcmV0dXJuIGh0b25sKE5GUzRfT0spOw0KPiAgfQ0KPiAgI2Vsc2UgLyogQ09ORklHX05GU19W NF8yICovDQo+ICBzdGF0aWMgX19iZTMyDQo+IEBAIC05OTEsNiArMTAzMiwxMyBAQCBzdGF0aWMg c3RydWN0IGNhbGxiYWNrX29wIGNhbGxiYWNrX29wc1tdID0gew0KPiAgCQkucmVzX21heHNpemUg PSBDQl9PUF9SRUNBTExTTE9UX1JFU19NQVhTWiwNCj4gIAl9LA0KPiAgI2VuZGlmIC8qIENPTkZJ R19ORlNfVjRfMSAqLw0KPiArI2lmIGRlZmluZWQoQ09ORklHX05GU19WNF8yKQ0KPiArCVtPUF9D Ql9PRkZMT0FEXSA9IHsNCj4gKwkJLnByb2Nlc3Nfb3AgPSAoY2FsbGJhY2tfcHJvY2Vzc19vcF90 KW5mczRfY2FsbGJhY2tfb2ZmbG9hZCwNCj4gKwkJLmRlY29kZV9hcmdzID0gKGNhbGxiYWNrX2Rl Y29kZV9hcmdfdClkZWNvZGVfb2ZmbG9hZF9hcmdzLA0KPiArCQkucmVzX21heHNpemUgPSBDQl9P UF9PRkZMT0FEX1JFU19NQVhTWiwNCj4gKwl9LA0KPiArI2VuZGlmDQo+ICB9Ow0KPiAgDQo+ICAv Kg0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRfZnMuaCBiL2ZzL25mcy9uZnM0X2ZzLmgNCj4g aW5kZXggMjZjN2NmMC4uNWMzMmZiNSAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL25mczRfZnMuaA0K PiArKysgYi9mcy9uZnMvbmZzNF9mcy5oDQo+IEBAIC00MDcsNiArNDA3LDkgQEAgc3RhdGljIGlu bGluZSB2b2lkIG5mczRfdW5yZWdpc3Rlcl9zeXNjdGwodm9pZCkNCj4gIA0KPiAgLyogbmZzNHhk ci5jICovDQo+ICBleHRlcm4gc3RydWN0IHJwY19wcm9jaW5mbyBuZnM0X3Byb2NlZHVyZXNbXTsN Cj4gKyNpZiBkZWZpbmVkKENPTkZJR19ORlNfVjRfMikNCj4gK2ludCBkZWNvZGVfd3JpdGVfcmVz cG9uc2Uoc3RydWN0IHhkcl9zdHJlYW0gKiwgc3RydWN0IG5mczQyX3dyaXRlX3Jlc3BvbnNlICop Ow0KPiArI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMiAqLw0KPiAgDQo+ICBzdHJ1Y3QgbmZzNF9t b3VudF9kYXRhOw0KPiAgDQo+IGRpZmYgLS1naXQgYS9mcy9uZnMvbmZzNGZpbGUuYyBiL2ZzL25m cy9uZnM0ZmlsZS5jDQo+IGluZGV4IGNhNzdhYjQuLmZiZDVmNzcgMTAwNjQ0DQo+IC0tLSBhL2Zz L25mcy9uZnM0ZmlsZS5jDQo+ICsrKyBiL2ZzL25mcy9uZnM0ZmlsZS5jDQo+IEBAIC00LDYgKzQs NyBAQA0KPiAgICogIENvcHlyaWdodCAoQykgMTk5MiAgUmljayBTbGFka2V5DQo+ICAgKi8NCj4g ICNpbmNsdWRlIDxsaW51eC9uZnNfZnMuaD4NCj4gKyNpbmNsdWRlICJjYWxsYmFjay5oIg0KPiAg I2luY2x1ZGUgImludGVybmFsLmgiDQo+ICAjaW5jbHVkZSAiZnNjYWNoZS5oIg0KPiAgI2luY2x1 ZGUgInBuZnMuaCINCj4gQEAgLTExOCw2ICsxMTksOSBAQCBuZnM0X2ZpbGVfZnN5bmMoc3RydWN0 IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeW5jKQ0KPiAg fQ0KPiAgDQo+ICAjaWZkZWYgQ09ORklHX05GU19WNF8yDQo+ICtzdGF0aWMgTElTVF9IRUFEKG5m c19jb3B5X2FzeW5jX2xpc3QpOw0KPiArc3RhdGljIERFRklORV9TUElOTE9DSyhhc3luY19jb3B5 X2xvY2spOw0KPiArDQo+ICBzdGF0aWMgaW50IG5mczRfZmluZF9jb3B5X3N0YXRlaWQoc3RydWN0 IGZpbGUgKmZpbGUsIG5mczRfc3RhdGVpZCAqc3RhdGVpZCwNCj4gIAkJCQkgIGZtb2RlX3QgbW9k ZSkNCj4gIHsNCj4gQEAgLTEzNyw2ICsxNDEsNDMgQEAgc3RhdGljIGludCBuZnM0X2ZpbmRfY29w eV9zdGF0ZWlkKHN0cnVjdCBmaWxlICpmaWxlLCBuZnM0X3N0YXRlaWQgKnN0YXRlaWQsDQo+ICAJ cmV0dXJuIHJldDsNCj4gIH0NCj4gIA0KPiArc3RhdGljIHZvaWQgd2FpdF9mb3Jfb2ZmbG9hZChz dHJ1Y3QgbmZzNDJfY29weV9yZXMgKnJlcykNCj4gK3sNCj4gKwlzcGluX2xvY2soJmFzeW5jX2Nv cHlfbG9jayk7DQo+ICsJbGlzdF9hZGQoJnJlcy0+d2FpdF9saXN0LCAmbmZzX2NvcHlfYXN5bmNf bGlzdCk7DQo+ICsJc3Bpbl91bmxvY2soJmFzeW5jX2NvcHlfbG9jayk7DQo+ICsNCj4gKwl3YWl0 X2Zvcl9jb21wbGV0aW9uKCZyZXMtPmNvbXBsZXRpb24pOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg c3RydWN0IG5mczQyX2NvcHlfcmVzICpmaW5kX2FzeW5jX2NvcHkobmZzNF9zdGF0ZWlkICpzdGF0 ZWlkKQ0KPiArew0KPiArCXN0cnVjdCBuZnM0Ml9jb3B5X3JlcyAqY3VyOw0KPiArDQo+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeShjdXIsICZuZnNfY29weV9hc3luY19saXN0LCB3YWl0X2xpc3QpIHsN Cj4gKwkJaWYgKG1lbWNtcChzdGF0ZWlkLCBjdXItPmNwX3Jlcy53cl9zdGF0ZWlkLCBzaXplb2Yo bmZzNF9zdGF0ZWlkKSkgPT0gMCkNCj4gKwkJCXJldHVybiBjdXI7DQo+ICsJfQ0KPiArCXJldHVy biBOVUxMOw0KPiArfQ0KPiArDQo+ICt2b2lkIHdha2VfY29weV9vZmZsb2FkKHN0cnVjdCBjYl9v ZmZsb2FkYXJncyAqb2ZmbG9hZCkNCg0KUGxlYXNlIHVzZSBhICduZnNfJyBwcmVmaXggaGVyZSB0 byBhdm9pZCBuYW1lc3BhY2UgcG9sbHV0aW9uLiBEaXR0byBmb3INCnRoZSBhYm92ZSByb3V0aW5l cy4NCg0KPiArew0KPiArCXN0cnVjdCBuZnM0Ml9jb3B5X3JlcyAqY29weTsNCj4gKw0KPiArCXNw aW5fbG9jaygmYXN5bmNfY29weV9sb2NrKTsNCj4gKwljb3B5ID0gZmluZF9hc3luY19jb3B5KCZv ZmZsb2FkLT5zdGF0ZWlkKTsNCj4gKwlpZiAoY29weSA9PSBOVUxMKSB7DQo+ICsJCXNwaW5fdW5s b2NrKCZhc3luY19jb3B5X2xvY2spOw0KPiArCQlyZXR1cm47DQo+ICsJfQ0KPiArCWxpc3RfZGVs KCZjb3B5LT53YWl0X2xpc3QpOw0KDQpXb3VsZCBpdCBiZSBiZXR0ZXIgdG8gaGF2ZSB3YWl0X2Zv cl9vZmZsb2FkKCkgY2FsbCBsaXN0X2RlbD8gVGhhdCB3YXksDQp5b3UgY2FuIG1ha2UgdGhlIGNv bXBsZXRpb24gaW50ZXJydXB0aWJsZS4NCg0KPiArCXNwaW5fdW5sb2NrKCZhc3luY19jb3B5X2xv Y2spOw0KPiArDQo+ICsJY29weS0+Y3BfcmVzLndyX2J5dGVzX2NvcGllZCA9IG9mZmxvYWQtPndy aXRlX3Jlcy53cl9ieXRlc19jb3BpZWQ7DQo+ICsJY29tcGxldGUoJmNvcHktPmNvbXBsZXRpb24p Ow0KDQpZb3UgbWlnaHQgd2FudCB0byBob2xkIHRoZSBhc3luY19jb3B5X2xvY2sgaWYgdGhlIGNv bXBsZXRpb24gaXMNCmludGVycnVwdGlibGUgdG8gcHJldmVudCB3YWl0X2Zvcl9vZmZsb2FkKCkg ZnJvbSBkb2luZyBsaXN0X2RlbCgpLg0KDQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBzc2l6ZV90IG5m czRfY29weV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwNCj4gIAkJ CSAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LA0KPiAgCQkJICAg ICAgIHNpemVfdCBjb3VudCkNCj4gQEAgLTE1OSwxMCArMjAwLDE3IEBAIHN0YXRpYyBzc2l6ZV90 IG5mczRfY29weV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwNCj4g IAlpZiAoZXJyKQ0KPiAgCQlyZXR1cm4gZXJyOw0KPiAgDQo+ICsJaW5pdF9jb21wbGV0aW9uKCZy ZXMuY29tcGxldGlvbik7DQo+ICsNCj4gIAllcnIgPSBuZnM0Ml9wcm9jX2NvcHkoTkZTX1NFUlZF UihmaWxlX2lub2RlKGZpbGVfb3V0KSksICZhcmdzLCAmcmVzKTsNCj4gIAlpZiAoZXJyKQ0KPiAg CQlyZXR1cm4gZXJyOw0KPiAgDQo+ICsJaWYgKHJlcy5jcF9yZXMud3Jfc3RhdGVpZCAhPSBOVUxM KSB7DQo+ICsJCXdhaXRfZm9yX29mZmxvYWQoJnJlcyk7DQo+ICsJCWtmcmVlKHJlcy5jcF9yZXMu d3Jfc3RhdGVpZCk7DQo+ICsJfQ0KPiArDQo+ICAJcmV0dXJuIHJlcy5jcF9yZXMud3JfYnl0ZXNf Y29waWVkOw0KPiAgfQ0KPiAgI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMiAqLw0KPiBkaWZmIC0t Z2l0IGEvZnMvbmZzL25mczR4ZHIuYyBiL2ZzL25mcy9uZnM0eGRyLmMNCj4gaW5kZXggZDcwYzZi Yy4uNDY1ZDFiYyAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL25mczR4ZHIuYw0KPiArKysgYi9mcy9u ZnMvbmZzNHhkci5jDQo+IEBAIC02MDExLDggKzYwMTEsOCBAQCBvdXRfb3ZlcmZsb3c6DQo+ICAj ZW5kaWYgLyogQ09ORklHX05GU19WNF8xICovDQo+ICANCj4gICNpZmRlZiBDT05GSUdfTkZTX1Y0 XzINCj4gLXN0YXRpYyBpbnQgZGVjb2RlX3dyaXRlX3Jlc3BvbnNlKHN0cnVjdCB4ZHJfc3RyZWFt ICp4ZHIsDQo+IC0JCQkJIHN0cnVjdCBuZnM0Ml93cml0ZV9yZXNwb25zZSAqd3JpdGVfcmVzKQ0K PiAraW50IGRlY29kZV93cml0ZV9yZXNwb25zZShzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLA0KPiAr CQkJICBzdHJ1Y3QgbmZzNDJfd3JpdGVfcmVzcG9uc2UgKndyaXRlX3JlcykNCj4gIHsNCj4gIAlf X2JlMzIgKnA7DQo+ICAJaW50IG51bV9pZHM7DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L25mc194ZHIuaCBiL2luY2x1ZGUvbGludXgvbmZzX3hkci5oDQo+IGluZGV4IDBiYzZiMTQuLmY2 MDM3OTMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvbmZzX3hkci5oDQo+ICsrKyBiL2lu Y2x1ZGUvbGludXgvbmZzX3hkci5oDQo+IEBAIC0xMjMxLDYgKzEyMzEsOSBAQCBzdHJ1Y3QgbmZz NDJfY29weV9yZXMgew0KPiAgCXN0cnVjdCBuZnM0X3NlcXVlbmNlX3JlcwlzZXFfcmVzOw0KPiAg CXVuc2lnbmVkIGludAkJCXN0YXR1czsNCj4gIAlzdHJ1Y3QgbmZzNDJfd3JpdGVfcmVzcG9uc2UJ Y3BfcmVzOw0KPiArDQo+ICsJc3RydWN0IGxpc3RfaGVhZAkJd2FpdF9saXN0Ow0KPiArCXN0cnVj dCBjb21wbGV0aW9uCQljb21wbGV0aW9uOw0KPiAgfTsNCj4gICNlbmRpZg0KPiAgDQoNCi0tIA0K VHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXINCg0KTmV0QXBwDQpU cm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNvbQ0Kd3d3Lm5ldGFwcC5jb20NCg==