From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl0-f72.google.com (mail-pl0-f72.google.com [209.85.160.72]) by kanga.kvack.org (Postfix) with ESMTP id 2D18F6B0006 for ; Mon, 9 Apr 2018 00:46:28 -0400 (EDT) Received: by mail-pl0-f72.google.com with SMTP id o2-v6so6216723plk.14 for ; Sun, 08 Apr 2018 21:46:28 -0700 (PDT) Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com. [216.71.153.144]) by mx.google.com with ESMTPS id o1-v6si13963729pls.424.2018.04.08.21.46.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Apr 2018 21:46:26 -0700 (PDT) From: Bart Van Assche Subject: Re: Block layer use of __GFP flags Date: Mon, 9 Apr 2018 04:46:22 +0000 Message-ID: <63d16891d115de25ac2776088571d7e90dab867a.camel@wdc.com> References: <20180408065425.GD16007@bombadil.infradead.org> <20180408190825.GC5704@bombadil.infradead.org> In-Reply-To: <20180408190825.GC5704@bombadil.infradead.org> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <303A56832F8E0F42AFCF96CD13F21E7A@namprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: To: "willy@infradead.org" Cc: "linux-block@vger.kernel.org" , "linux-mm@kvack.org" , "hare@suse.com" , "martin@lichtvoll.de" , "oleksandr@natalenko.name" , "axboe@kernel.dk" T24gU3VuLCAyMDE4LTA0LTA4IGF0IDEyOjA4IC0wNzAwLCBNYXR0aGV3IFdpbGNveCB3cm90ZToN Cj4gT24gU3VuLCBBcHIgMDgsIDIwMTggYXQgMDQ6NDA6NTlQTSArMDAwMCwgQmFydCBWYW4gQXNz Y2hlIHdyb3RlOg0KPiA+IERvIHlvdSBwZXJoYXBzIHdhbnQgbWUgdG8gcHJlcGFyZSBhIHBhdGNo IHRoYXQgbWFrZXMgYmxrX2dldF9yZXF1ZXN0KCkgYWdhaW4NCj4gPiByZXNwZWN0IHRoZSBmdWxs IGdmcCBtYXNrIHBhc3NlZCBhcyB0aGlyZCBhcmd1bWVudCB0byBibGtfZ2V0X3JlcXVlc3QoKT8N Cj4gDQo+IEkgdGhpbmsgdGhhdCB3b3VsZCBiZSBhIGdvb2QgaWRlYS4gIElmIGl0J3Mgb25lcm91 cyB0byBoYXZlIGV4dHJhIGFyZ3VtZW50cywNCj4gdGhlcmUgYXJlIHNvbWUgYml0cyBpbiBnZnBf ZmxhZ3Mgd2hpY2ggY291bGQgYmUgdXNlZCBmb3IgeW91ciBwdXJwb3Nlcy4NCg0KVGhhdCdzIGlu ZGVlZCBzb21ldGhpbmcgd2UgY2FuIGNvbnNpZGVyLg0KDQpJdCB3b3VsZCBiZSBhcHByZWNpYXRl ZCBpZiB5b3UgY291bGQgaGF2ZSBhIGxvb2sgYXQgdGhlIHBhdGNoIGJlbG93Lg0KDQpUaGFua3Ms DQoNCkJhcnQuDQoNCg0KU3ViamVjdDogYmxvY2s6IE1ha2UgYmxrX2dldF9yZXF1ZXN0KCkgYWdh aW4gcmVzcGVjdCB0aGUgZW50aXJlIGdmcF90IGFyZ3VtZW50DQoNCkNvbW1pdCA2YTE1Njc0ZDFl OTAgKCJibG9jazogSW50cm9kdWNlIGJsa19nZXRfcmVxdWVzdF9mbGFncygpIikNCnRyYW5zbGF0 ZXMgdGhlIHRoaXJkIGJsa19nZXRfcmVxdWVzdCgpIGFyZ3VtZW50cyBHRlBfS0VSTkVMLCBHRlBf Tk9JTw0KYW5kIF9fR0ZQX1JFQ0xBSU0gaW50byBfX0dGUF9ESVJFQ1RfUkVDTEFJTS4gTWFrZSBi bGtfZ2V0X3JlcXVlc3QoKQ0KYWdhaW4gcGFzcyB0aGUgZnVsbCBnZnBfdCBhcmd1bWVudCB0byBi bGtfb2xkX2dldF9yZXF1ZXN0KCkgc3VjaCB0aGF0DQprc3dhcGQgaXMgYWdhaW4gd29rZW4gdXAg dW5kZXIgbG93IG1lbW9yeSBjb25kaXRpb25zIGlmIHRoZSBjYWxsZXINCnJlcXVlc3RlZCB0aGlz Lg0KDQpOb3RlczoNCi0gVGhpcyBjaGFuZ2Ugb25seSBhZmZlY3RzIHRoZSBiZWhhdmlvciBvZiB0 aGUgbGVnYWN5IGJsb2NrIGxheWVyLiBTZWUNCiAgYWxzbyB0aGUgbWVtcG9vbF9hbGxvYygpIGNh bGwgaW4gX19nZXRfcmVxdWVzdCgpLg0KLSBUaGUgX19HRlBfUkVDTEFJTSBmbGFnIGluIHRoZSBi bGtfZ2V0X3JlcXVlc3RfZmxhZ3MoKSBjYWxscyBpbg0KICB0aGUgSURFIGFuZCBTQ1NJIGRyaXZl cnMgd2FzIHJlbW92ZWQgYnkgY29tbWl0IDAzOWM2MzVmNGU2NiAoImlkZSwNCiAgc2NzaTogVGVs bCB0aGUgYmxvY2sgbGF5ZXIgYXQgcmVxdWVzdCBhbGxvY2F0aW9uIHRpbWUgYWJvdXQgcHJlZW1w dA0KICByZXF1ZXN0cyIpLg0KLS0tDQogYmxvY2svYmxrLWNvcmUuYyAgICAgICAgfCAyOCArKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tDQogZHJpdmVycy9pZGUvaWRlLXBtLmMgICAgfCAgMiAr LQ0KIGRyaXZlcnMvc2NzaS9zY3NpX2xpYi5jIHwgIDMgKystDQogaW5jbHVkZS9saW51eC9ibGtk ZXYuaCAgfCAgMyArKy0NCiA0IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDE2IGRl bGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWNvcmUuYyBiL2Jsb2NrL2Jsay1j b3JlLmMNCmluZGV4IDNhYzlkZDI1ZTA0ZS4uODNjN2E1OGU0ZmIzIDEwMDY0NA0KLS0tIGEvYmxv Y2svYmxrLWNvcmUuYw0KKysrIGIvYmxvY2svYmxrLWNvcmUuYw0KQEAgLTEzMzMsNiArMTMzMyw3 IEBAIGludCBibGtfdXBkYXRlX25yX3JlcXVlc3RzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB1 bnNpZ25lZCBpbnQgbnIpDQogICogQG9wOiBvcGVyYXRpb24gYW5kIGZsYWdzDQogICogQGJpbzog YmlvIHRvIGFsbG9jYXRlIHJlcXVlc3QgZm9yIChjYW4gYmUgJU5VTEwpDQogICogQGZsYWdzOiBC TFFfTVFfUkVRXyogZmxhZ3MNCisgKiBAZ2ZwX21hc2s6IGFsbG9jYXRpb24gbWFzaw0KICAqDQog ICogR2V0IGEgZnJlZSByZXF1ZXN0IGZyb20gQHEuICBUaGlzIGZ1bmN0aW9uIG1heSBmYWlsIHVu ZGVyIG1lbW9yeQ0KICAqIHByZXNzdXJlIG9yIGlmIEBxIGlzIGRlYWQuDQpAQCAtMTM0Miw3ICsx MzQzLDggQEAgaW50IGJsa191cGRhdGVfbnJfcmVxdWVzdHMoc3RydWN0IHJlcXVlc3RfcXVldWUg KnEsIHVuc2lnbmVkIGludCBucikNCiAgKiBSZXR1cm5zIHJlcXVlc3QgcG9pbnRlciBvbiBzdWNj ZXNzLCB3aXRoIEBxLT5xdWV1ZV9sb2NrICpub3QgaGVsZCouDQogICovDQogc3RhdGljIHN0cnVj dCByZXF1ZXN0ICpfX2dldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0X2xpc3QgKnJsLCB1bnNpZ25l ZCBpbnQgb3AsDQotCQkJCSAgICAgc3RydWN0IGJpbyAqYmlvLCBibGtfbXFfcmVxX2ZsYWdzX3Qg ZmxhZ3MpDQorCQkJCSAgICAgc3RydWN0IGJpbyAqYmlvLCBibGtfbXFfcmVxX2ZsYWdzX3QgZmxh Z3MsDQorCQkJCSAgICAgZ2ZwX3QgZ2ZwX21hc2spDQogew0KIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1 ZSAqcSA9IHJsLT5xOw0KIAlzdHJ1Y3QgcmVxdWVzdCAqcnE7DQpAQCAtMTM1MSw4ICsxMzUzLDYg QEAgc3RhdGljIHN0cnVjdCByZXF1ZXN0ICpfX2dldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0X2xp c3QgKnJsLCB1bnNpZ25lZCBpbnQgb3AsDQogCXN0cnVjdCBpb19jcSAqaWNxID0gTlVMTDsNCiAJ Y29uc3QgYm9vbCBpc19zeW5jID0gb3BfaXNfc3luYyhvcCk7DQogCWludCBtYXlfcXVldWU7DQot CWdmcF90IGdmcF9tYXNrID0gZmxhZ3MgJiBCTEtfTVFfUkVRX05PV0FJVCA/IEdGUF9BVE9NSUMg Og0KLQkJCSBfX0dGUF9ESVJFQ1RfUkVDTEFJTTsNCiAJcmVxX2ZsYWdzX3QgcnFfZmxhZ3MgPSBS UUZfQUxMT0NFRDsNCiANCiAJbG9ja2RlcF9hc3NlcnRfaGVsZChxLT5xdWV1ZV9sb2NrKTsNCkBA IC0xNTE2LDYgKzE1MTYsNyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKl9fZ2V0X3JlcXVlc3Qo c3RydWN0IHJlcXVlc3RfbGlzdCAqcmwsIHVuc2lnbmVkIGludCBvcCwNCiAgKiBAb3A6IG9wZXJh dGlvbiBhbmQgZmxhZ3MNCiAgKiBAYmlvOiBiaW8gdG8gYWxsb2NhdGUgcmVxdWVzdCBmb3IgKGNh biBiZSAlTlVMTCkNCiAgKiBAZmxhZ3M6IEJMS19NUV9SRVFfKiBmbGFncy4NCisgKiBAZ2ZwX21h c2s6IGFsbG9jYXRpb24gbWFzaw0KICAqDQogICogR2V0IGEgZnJlZSByZXF1ZXN0IGZyb20gQHEu ICBJZiAlX19HRlBfRElSRUNUX1JFQ0xBSU0gaXMgc2V0IGluIEBnZnBfbWFzaywNCiAgKiB0aGlz IGZ1bmN0aW9uIGtlZXBzIHJldHJ5aW5nIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSBhbmQgZmFpbHMg aWZmIEBxIGlzIGRlYWQuDQpAQCAtMTUyNSw3ICsxNTI2LDggQEAgc3RhdGljIHN0cnVjdCByZXF1 ZXN0ICpfX2dldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0X2xpc3QgKnJsLCB1bnNpZ25lZCBpbnQg b3AsDQogICogUmV0dXJucyByZXF1ZXN0IHBvaW50ZXIgb24gc3VjY2Vzcywgd2l0aCBAcS0+cXVl dWVfbG9jayAqbm90IGhlbGQqLg0KICAqLw0KIHN0YXRpYyBzdHJ1Y3QgcmVxdWVzdCAqZ2V0X3Jl cXVlc3Qoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHVuc2lnbmVkIGludCBvcCwNCi0JCQkJICAg c3RydWN0IGJpbyAqYmlvLCBibGtfbXFfcmVxX2ZsYWdzX3QgZmxhZ3MpDQorCQkJCSAgIHN0cnVj dCBiaW8gKmJpbywgYmxrX21xX3JlcV9mbGFnc190IGZsYWdzLA0KKwkJCQkgICBnZnBfdCBnZnBf bWFzaykNCiB7DQogCWNvbnN0IGJvb2wgaXNfc3luYyA9IG9wX2lzX3N5bmMob3ApOw0KIAlERUZJ TkVfV0FJVCh3YWl0KTsNCkBAIC0xNTM3LDcgKzE1MzksNyBAQCBzdGF0aWMgc3RydWN0IHJlcXVl c3QgKmdldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQgb3As DQogDQogCXJsID0gYmxrX2dldF9ybChxLCBiaW8pOwkvKiB0cmFuc2ZlcnJlZCB0byBAcnEgb24g c3VjY2VzcyAqLw0KIHJldHJ5Og0KLQlycSA9IF9fZ2V0X3JlcXVlc3QocmwsIG9wLCBiaW8sIGZs YWdzKTsNCisJcnEgPSBfX2dldF9yZXF1ZXN0KHJsLCBvcCwgYmlvLCBmbGFncywgZ2ZwX21hc2sp Ow0KIAlpZiAoIUlTX0VSUihycSkpDQogCQlyZXR1cm4gcnE7DQogDQpAQCAtMTU3NSwxMSArMTU3 NywxMCBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKmdldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0 X3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQgb3AsDQogDQogLyogZmxhZ3M6IEJMS19NUV9SRVFfUFJF RU1QVCBhbmQvb3IgQkxLX01RX1JFUV9OT1dBSVQuICovDQogc3RhdGljIHN0cnVjdCByZXF1ZXN0 ICpibGtfb2xkX2dldF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLA0KLQkJCQl1bnNp Z25lZCBpbnQgb3AsIGJsa19tcV9yZXFfZmxhZ3NfdCBmbGFncykNCisJCQkJdW5zaWduZWQgaW50 IG9wLCBibGtfbXFfcmVxX2ZsYWdzX3QgZmxhZ3MsDQorCQkJCWdmcF90IGdmcF9tYXNrKQ0KIHsN CiAJc3RydWN0IHJlcXVlc3QgKnJxOw0KLQlnZnBfdCBnZnBfbWFzayA9IGZsYWdzICYgQkxLX01R X1JFUV9OT1dBSVQgPyBHRlBfQVRPTUlDIDoNCi0JCQkgX19HRlBfRElSRUNUX1JFQ0xBSU07DQog CWludCByZXQgPSAwOw0KIA0KIAlXQVJOX09OX09OQ0UocS0+bXFfb3BzKTsNCkBAIC0xNTkxLDcg KzE1OTIsNyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKmJsa19vbGRfZ2V0X3JlcXVlc3Qoc3Ry dWN0IHJlcXVlc3RfcXVldWUgKnEsDQogCWlmIChyZXQpDQogCQlyZXR1cm4gRVJSX1BUUihyZXQp Ow0KIAlzcGluX2xvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOw0KLQlycSA9IGdldF9yZXF1ZXN0KHEs IG9wLCBOVUxMLCBmbGFncyk7DQorCXJxID0gZ2V0X3JlcXVlc3QocSwgb3AsIE5VTEwsIGZsYWdz LCBnZnBfbWFzayk7DQogCWlmIChJU19FUlIocnEpKSB7DQogCQlzcGluX3VubG9ja19pcnEocS0+ cXVldWVfbG9jayk7DQogCQlibGtfcXVldWVfZXhpdChxKTsNCkBAIC0xNjEwLDkgKzE2MTEsMTAg QEAgc3RhdGljIHN0cnVjdCByZXF1ZXN0ICpibGtfb2xkX2dldF9yZXF1ZXN0KHN0cnVjdCByZXF1 ZXN0X3F1ZXVlICpxLA0KICAqIEBxOiByZXF1ZXN0IHF1ZXVlIHRvIGFsbG9jYXRlIGEgcmVxdWVz dCBmb3INCiAgKiBAb3A6IG9wZXJhdGlvbiAoUkVRX09QXyopIGFuZCBSRVFfKiBmbGFncywgZS5n LiBSRVFfU1lOQy4NCiAgKiBAZmxhZ3M6IEJMS19NUV9SRVFfKiBmbGFncywgZS5nLiBCTEtfTVFf UkVRX05PV0FJVC4NCisgKiBAZ2ZwX21hc2s6IGFsbG9jYXRpb24gbWFzaw0KICAqLw0KIHN0cnVj dCByZXF1ZXN0ICpibGtfZ2V0X3JlcXVlc3RfZmxhZ3Moc3RydWN0IHJlcXVlc3RfcXVldWUgKnEs IHVuc2lnbmVkIGludCBvcCwNCi0JCQkJICAgICAgYmxrX21xX3JlcV9mbGFnc190IGZsYWdzKQ0K KwkJCQkgICAgICBibGtfbXFfcmVxX2ZsYWdzX3QgZmxhZ3MsIGdmcF90IGdmcF9tYXNrKQ0KIHsN CiAJc3RydWN0IHJlcXVlc3QgKnJlcTsNCiANCkBAIC0xNjI0LDcgKzE2MjYsNyBAQCBzdHJ1Y3Qg cmVxdWVzdCAqYmxrX2dldF9yZXF1ZXN0X2ZsYWdzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB1 bnNpZ25lZCBpbnQgb3AsDQogCQlpZiAoIUlTX0VSUihyZXEpICYmIHEtPm1xX29wcy0+aW5pdGlh bGl6ZV9ycV9mbikNCiAJCQlxLT5tcV9vcHMtPmluaXRpYWxpemVfcnFfZm4ocmVxKTsNCiAJfSBl bHNlIHsNCi0JCXJlcSA9IGJsa19vbGRfZ2V0X3JlcXVlc3QocSwgb3AsIGZsYWdzKTsNCisJCXJl cSA9IGJsa19vbGRfZ2V0X3JlcXVlc3QocSwgb3AsIGZsYWdzLCBnZnBfbWFzayk7DQogCQlpZiAo IUlTX0VSUihyZXEpICYmIHEtPmluaXRpYWxpemVfcnFfZm4pDQogCQkJcS0+aW5pdGlhbGl6ZV9y cV9mbihyZXEpOw0KIAl9DQpAQCAtMTYzNyw3ICsxNjM5LDcgQEAgc3RydWN0IHJlcXVlc3QgKmJs a19nZXRfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IG9wLA0K IAkJCQlnZnBfdCBnZnBfbWFzaykNCiB7DQogCXJldHVybiBibGtfZ2V0X3JlcXVlc3RfZmxhZ3Mo cSwgb3AsIGdmcF9tYXNrICYgX19HRlBfRElSRUNUX1JFQ0xBSU0gPw0KLQkJCQkgICAgIDAgOiBC TEtfTVFfUkVRX05PV0FJVCk7DQorCQkJCSAgICAgMCA6IEJMS19NUV9SRVFfTk9XQUlULCBnZnBf bWFzayk7DQogfQ0KIEVYUE9SVF9TWU1CT0woYmxrX2dldF9yZXF1ZXN0KTsNCiANCkBAIC0yMDY1 LDcgKzIwNjcsNyBAQCBzdGF0aWMgYmxrX3FjX3QgYmxrX3F1ZXVlX2JpbyhzdHJ1Y3QgcmVxdWVz dF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvKQ0KIAkgKiBSZXR1cm5zIHdpdGggdGhlIHF1ZXVl IHVubG9ja2VkLg0KIAkgKi8NCiAJYmxrX3F1ZXVlX2VudGVyX2xpdmUocSk7DQotCXJlcSA9IGdl dF9yZXF1ZXN0KHEsIGJpby0+Ymlfb3BmLCBiaW8sIDApOw0KKwlyZXEgPSBnZXRfcmVxdWVzdChx LCBiaW8tPmJpX29wZiwgYmlvLCAwLCBHRlBfTk9JTyk7DQogCWlmIChJU19FUlIocmVxKSkgew0K IAkJYmxrX3F1ZXVlX2V4aXQocSk7DQogCQlfX3didF9kb25lKHEtPnJxX3diLCB3Yl9hY2N0KTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtcG0uYyBiL2RyaXZlcnMvaWRlL2lkZS1wbS5j DQppbmRleCBhZDhhMTI1ZGVmZGQuLjNkZGI0NjRiNzJlNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv aWRlL2lkZS1wbS5jDQorKysgYi9kcml2ZXJzL2lkZS9pZGUtcG0uYw0KQEAgLTkxLDcgKzkxLDcg QEAgaW50IGdlbmVyaWNfaWRlX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogDQogCW1lbXNl dCgmcnFwbSwgMCwgc2l6ZW9mKHJxcG0pKTsNCiAJcnEgPSBibGtfZ2V0X3JlcXVlc3RfZmxhZ3Mo ZHJpdmUtPnF1ZXVlLCBSRVFfT1BfRFJWX0lOLA0KLQkJCQkgICBCTEtfTVFfUkVRX1BSRUVNUFQp Ow0KKwkJCQkgICBCTEtfTVFfUkVRX1BSRUVNUFQsIF9fR0ZQX1JFQ0xBSU0pOw0KIAlpZGVfcmVx KHJxKS0+dHlwZSA9IEFUQV9QUklWX1BNX1JFU1VNRTsNCiAJcnEtPnNwZWNpYWwgPSAmcnFwbTsN CiAJcnFwbS5wbV9zdGVwID0gSURFX1BNX1NUQVJUX1JFU1VNRTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3Njc2kvc2NzaV9saWIuYyBiL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jDQppbmRleCAwZGZl YzBkZWRkNWUuLjYyZDMxNDAzNzY3YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xp Yi5jDQorKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYw0KQEAgLTI2Nyw3ICsyNjcsOCBAQCBp bnQgc2NzaV9leGVjdXRlKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgY29uc3QgdW5zaWduZWQg Y2hhciAqY21kLA0KIA0KIAlyZXEgPSBibGtfZ2V0X3JlcXVlc3RfZmxhZ3Moc2Rldi0+cmVxdWVz dF9xdWV1ZSwNCiAJCQlkYXRhX2RpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFID8NCi0JCQlSRVFf T1BfU0NTSV9PVVQgOiBSRVFfT1BfU0NTSV9JTiwgQkxLX01RX1JFUV9QUkVFTVBUKTsNCisJCQlS RVFfT1BfU0NTSV9PVVQgOiBSRVFfT1BfU0NTSV9JTiwgQkxLX01RX1JFUV9QUkVFTVBULA0KKwkJ CV9fR0ZQX1JFQ0xBSU0pOw0KIAlpZiAoSVNfRVJSKHJlcSkpDQogCQlyZXR1cm4gcmV0Ow0KIAly cSA9IHNjc2lfcmVxKHJlcSk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBi L2luY2x1ZGUvbGludXgvYmxrZGV2LmgNCmluZGV4IGYyY2RmMjYzNjk3NC4uZTBhNmE3NDFhZmQw IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaA0KKysrIGIvaW5jbHVkZS9saW51 eC9ibGtkZXYuaA0KQEAgLTk0Myw3ICs5NDMsOCBAQCBleHRlcm4gdm9pZCBibGtfcHV0X3JlcXVl c3Qoc3RydWN0IHJlcXVlc3QgKik7DQogZXh0ZXJuIHZvaWQgX19ibGtfcHV0X3JlcXVlc3Qoc3Ry dWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKik7DQogZXh0ZXJuIHN0cnVjdCBy ZXF1ZXN0ICpibGtfZ2V0X3JlcXVlc3RfZmxhZ3Moc3RydWN0IHJlcXVlc3RfcXVldWUgKiwNCiAJ CQkJCSAgICAgdW5zaWduZWQgaW50IG9wLA0KLQkJCQkJICAgICBibGtfbXFfcmVxX2ZsYWdzX3Qg ZmxhZ3MpOw0KKwkJCQkJICAgICBibGtfbXFfcmVxX2ZsYWdzX3QgZmxhZ3MsDQorCQkJCQkgICAg IGdmcF90IGdmcF9tYXNrKTsNCiBleHRlcm4gc3RydWN0IHJlcXVlc3QgKmJsa19nZXRfcmVxdWVz dChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBpbnQgb3AsDQogCQkJCSAgICAgICBn ZnBfdCBnZnBfbWFzayk7DQogZXh0ZXJuIHZvaWQgYmxrX3JlcXVldWVfcmVxdWVzdChzdHJ1Y3Qg cmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsNCi0tIA0KMi4xNi4yDQo=