From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f70.google.com (mail-pa0-f70.google.com [209.85.220.70]) by kanga.kvack.org (Postfix) with ESMTP id 83CC76B0038 for ; Wed, 17 Aug 2016 06:14:05 -0400 (EDT) Received: by mail-pa0-f70.google.com with SMTP id le9so193726194pab.0 for ; Wed, 17 Aug 2016 03:14:05 -0700 (PDT) Received: from mailout2.samsung.com (mailout2.samsung.com. [203.254.224.25]) by mx.google.com with ESMTPS id u5si37100146pau.218.2016.08.17.03.14.04 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 17 Aug 2016 03:14:04 -0700 (PDT) Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OC1028HTTREG260@mailout2.samsung.com> for linux-mm@kvack.org; Wed, 17 Aug 2016 19:14:02 +0900 (KST) Message-id: <1907787880.35140.1471428840585.JavaMail.weblogic@epwas3e2> MIME-version: 1.0 Subject: =?UTF-8?B?W1BBVENIIDEvNF0genN3YXA6IFNoYXJlIHpwb29sIG1lbW9y?= =?UTF-8?B?eSBvZiBkdXBsaWNhdGUgcGFnZXM=?= Reply-to: srividya.dr@samsung.com From: =?UTF-8?B?U3JpdmlkeWEgRGVzaXJlZGR5?= Date: Wed, 17 Aug 2016 10:14:00 +0000 Content-type: multipart/related; boundary="----=_Part_35139_1551279780.1471428840585" References: Sender: owner-linux-mm@kvack.org List-ID: To: sjenning@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?B?RGluYWthciBSZWRkeSBQYXRoaXJlZGR5?= , =?UTF-8?B?7IOk656A?= , =?UTF-8?B?U1VORUVMIEtVTUFSIFNVUklNQU5J?= , =?UTF-8?B?6rmA7KO87ZuI?= ------=_Part_35139_1551279780.1471428840585 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8" RnJvbTogU3JpdmlkeWEgRGVzaXJlZGR5IDxzcml2aWR5YS5kckBzYW1zdW5nLmNvbT4NCkRhdGU6 IFdlZCwgMTcgQXVnIDIwMTYgMTQ6MzE6MDEgKzA1MzANClN1YmplY3Q6IFtQQVRDSCAxLzRdIHpz d2FwOiBTaGFyZSB6cG9vbCBtZW1vcnkgb2YgZHVwbGljYXRlIHBhZ2VzDQoNClRoaXMgcGF0Y2gg c2hhcmVzIHRoZSBjb21wcmVzc2VkIHBvb2wgbWVtb3J5IG9mIGR1cGxpY2F0ZSBwYWdlcyBhbmQg cmVkdWNlcw0KY29tcHJlc3NlZCBwb29sIG1lbW9yeSB1dGlsaXplZCBieSB6c3dhcC4NCg0KRm9y IGVhY2ggcGFnZSByZXF1ZXN0ZWQgZm9yIHN3YXAtb3V0IHRvIHpzd2FwLCBjYWxjdWxhdGUgMzIt Yml0IGNoZWNrc3VtIG9mDQp0aGUgcGFnZS4gU2VhcmNoIGZvciBkdXBsaWNhdGUgcGFnZXMgYnkg Y29tcGFyaW5nIHRoZSBjaGVja3N1bSBvZiB0aGUgbmV3DQpwYWdlIHdpdGggZXhpc3RpbmcgcGFn ZXMuIENvbXBhcmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBwYWdlcyBpZiBjaGVja3N1bQ0KbWF0Y2hl cy4gSWYgdGhlIGNvbnRlbnRzIGFsc28gbWF0Y2gsIHRoZW4gc2hhcmUgdGhlIGNvbXByZXNzZWQg ZGF0YSBvZiB0aGUNCmV4aXN0aW5nIHBhZ2Ugd2l0aCB0aGUgbmV3IHBhZ2UuIEluY3JlbWVudCB0 aGUgcmVmZXJlbmNlIGNvdW50IHRvIGNoZWNrDQp0aGUgbnVtYmVyIG9mIHBhZ2VzIHNoYXJpbmcg dGhlIGNvbXByZXNzZWQgcGFnZSBpbiB6cG9vbC4NCg0KSWYgYSBkdXBsaWNhdGUgcGFnZSBpcyBu b3QgZm91bmQgdGhlbiB0cmVhdCB0aGUgbmV3IHBhZ2UgYXMgYSAndW5pcXVlJyBwYWdlDQppbiB6 c3dhcC4gQ29tcHJlc3MgdGhlIG5ldyBwYWdlIGFuZCBzdG9yZSB0aGUgY29tcHJlc3NlZCBkYXRh IGluIHRoZSB6cG9vbC4NCkluc2VydCB0aGUgdW5pcXVlIHBhZ2UgaW4gdGhlIFJlZC1CbGFjayBU cmVlIHdoaWNoIGlzIGJhbGFuY2VkIGJhc2VkIG9uDQozMi1iaXQgY2hlY2tzdW0gdmFsdWUgb2Yg dGhlIHBhZ2UuDQoNClNpZ25lZC1vZmYtYnk6IFNyaXZpZHlhIERlc2lyZWRkeSA8c3JpdmlkeWEu ZHJAc2Ftc3VuZy5jb20+DQotLS0NCiBtbS96c3dhcC5jIHwgIDI2NSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCiAxIGZpbGUgY2hh bmdlZCwgMjQ4IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEv bW0venN3YXAuYyBiL21tL3pzd2FwLmMNCmluZGV4IDI3NWIyMmMuLmY3ZWZlZGUgMTAwNjQ0DQot LS0gYS9tbS96c3dhcC5jDQorKysgYi9tbS96c3dhcC5jDQpAQCAtNDEsNiArNDEsNyBAQA0KICNp bmNsdWRlIDxsaW51eC9zd2Fwb3BzLmg+DQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPg0K ICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQorI2luY2x1ZGUgPGxpbnV4L2poYXNoLmg+DQog DQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogc3RhdGlzdGljcw0KQEAg LTUxLDYgKzUyLDEzIEBAIHN0YXRpYyB1NjQgenN3YXBfcG9vbF90b3RhbF9zaXplOw0KIHN0YXRp YyBhdG9taWNfdCB6c3dhcF9zdG9yZWRfcGFnZXMgPSBBVE9NSUNfSU5JVCgwKTsNCiANCiAvKg0K KyAqIFRoZSBudW1iZXIgb2Ygc3dhcHBlZCBvdXQgcGFnZXMgd2hpY2ggYXJlIGlkZW50aWZpZWQg YXMgZHVwbGljYXRlDQorICogdG8gdGhlIGV4aXN0aW5nIHpzd2FwIHBhZ2VzLiBDb21wcmVzc2lv biBhbmQgc3RvcmluZyBvZiB0aGVzZSBwYWdlcw0KKyAqIGlzIGF2b2lkZWQuDQorICovDQorc3Rh dGljIGF0b21pY190IHpzd2FwX2R1cGxpY2F0ZV9wYWdlcyA9IEFUT01JQ19JTklUKDApOw0KKw0K Ky8qDQogICogVGhlIHN0YXRpc3RpY3MgYmVsb3cgYXJlIG5vdCBwcm90ZWN0ZWQgZnJvbSBjb25j dXJyZW50IGFjY2VzcyBmb3INCiAgKiBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHRoZXkgbWF5IG5v dCBiZSBhIDEwMCUgYWNjdXJhdGUuICBIb3dldmVyLA0KICAqIHRoZXkgZG8gcHJvdmlkZSB1c2Vm dWwgaW5mb3JtYXRpb24gb24gcm91Z2hseSBob3cgbWFueSB0aW1lcyBhDQpAQCAtMTIzLDYgKzEz MSwyOCBAQCBzdHJ1Y3QgenN3YXBfcG9vbCB7DQogfTsNCiANCiAvKg0KKyAqIHN0cnVjdCB6c3dh cF9oYW5kbGUNCisgKiBUaGlzIHN0cnVjdHVyZSBjb250YWlucyB0aGUgbWV0YWRhdGEgZm9yIHRy YWNraW5nIHNpbmdsZSB6cG9vbCBoYW5kbGUNCisgKiBhbGxvY2F0aW9uLg0KKyAqDQorICogcmJu b2RlIC0gbGlua3MgdGhlIHpzd2FwX2hhbmRsZSBpbnRvIHJlZC1ibGFjayB0cmVlDQorICogY2hl Y2tzdW0gLSAzMi1iaXQgY2hlY2tzdW0gdmFsdWUgb2YgdGhlIHBhZ2Ugc3dhcHBlZCB0byB6c3dh cA0KKyAqIHJlZl9jb3VudCAtIG51bWJlciBvZiBwYWdlcyBzaGFyaW5nIHRoaXMgaGFuZGxlDQor ICogbGVuZ3RoIC0gdGhlIGxlbmd0aCBpbiBieXRlcyBvZiB0aGUgY29tcHJlc3NlZCBwYWdlIGRh dGEuDQorICogICAgICAgICAgTmVlZGVkIGR1cmluZyBkZWNvbXByZXNzaW9uLg0KKyAqIGhhbmRs ZSAtIHpwb29sIGFsbG9jYXRpb24gaGFuZGxlIHRoYXQgc3RvcmVzIHRoZSBjb21wcmVzc2VkIHBh Z2UgZGF0YS4NCisgKiBwb29sIC0gdGhlIHpzd2FwX3Bvb2wgdGhlIGVudHJ5J3MgZGF0YSBpcyBp bi4NCisgKi8NCitzdHJ1Y3QgenN3YXBfaGFuZGxlIHsNCisJc3RydWN0IHJiX25vZGUgcmJub2Rl Ow0KKwl1MzIgY2hlY2tzdW07DQorCXUxNiByZWZfY291bnQ7DQorCXVuc2lnbmVkIGludCBsZW5n dGg7DQorCXVuc2lnbmVkIGxvbmcgaGFuZGxlOw0KKwlzdHJ1Y3QgenN3YXBfcG9vbCAqcG9vbDsN Cit9Ow0KKw0KKy8qDQogICogc3RydWN0IHpzd2FwX2VudHJ5DQogICoNCiAgKiBUaGlzIHN0cnVj dHVyZSBjb250YWlucyB0aGUgbWV0YWRhdGEgZm9yIHRyYWNraW5nIGEgc2luZ2xlIGNvbXByZXNz ZWQNCkBAIC0xMzYsMTggKzE2NiwxNSBAQCBzdHJ1Y3QgenN3YXBfcG9vbCB7DQogICogICAgICAg ICAgICBmb3IgdGhlIHpzd2FwX3RyZWUgc3RydWN0dXJlIHRoYXQgY29udGFpbnMgdGhlIGVudHJ5 IG11c3QNCiAgKiAgICAgICAgICAgIGJlIGhlbGQgd2hpbGUgY2hhbmdpbmcgdGhlIHJlZmNvdW50 LiAgU2luY2UgdGhlIGxvY2sgbXVzdA0KICAqICAgICAgICAgICAgYmUgaGVsZCwgdGhlcmUgaXMg bm8gcmVhc29uIHRvIGFsc28gbWFrZSByZWZjb3VudCBhdG9taWMuDQotICogbGVuZ3RoIC0gdGhl IGxlbmd0aCBpbiBieXRlcyBvZiB0aGUgY29tcHJlc3NlZCBwYWdlIGRhdGEuICBOZWVkZWQgZHVy aW5nDQotICogICAgICAgICAgZGVjb21wcmVzc2lvbg0KICAqIHBvb2wgLSB0aGUgenN3YXBfcG9v bCB0aGUgZW50cnkncyBkYXRhIGlzIGluDQotICogaGFuZGxlIC0genBvb2wgYWxsb2NhdGlvbiBo YW5kbGUgdGhhdCBzdG9yZXMgdGhlIGNvbXByZXNzZWQgcGFnZSBkYXRhDQorICogemhhbmRsZSAt IHBvaW50ZXIgdG8gc3RydWN0IHpzd2FwX2hhbmRsZQ0KICAqLw0KIHN0cnVjdCB6c3dhcF9lbnRy eSB7DQogCXN0cnVjdCByYl9ub2RlIHJibm9kZTsNCiAJcGdvZmZfdCBvZmZzZXQ7DQogCWludCBy ZWZjb3VudDsNCi0JdW5zaWduZWQgaW50IGxlbmd0aDsNCiAJc3RydWN0IHpzd2FwX3Bvb2wgKnBv b2w7DQotCXVuc2lnbmVkIGxvbmcgaGFuZGxlOw0KKwlzdHJ1Y3QgenN3YXBfaGFuZGxlICp6aGFu ZGxlOw0KIH07DQogDQogc3RydWN0IHpzd2FwX2hlYWRlciB7DQpAQCAtMTYxLDYgKzE4OCw4IEBA IHN0cnVjdCB6c3dhcF9oZWFkZXIgew0KICAqLw0KIHN0cnVjdCB6c3dhcF90cmVlIHsNCiAJc3Ry dWN0IHJiX3Jvb3QgcmJyb290Ow0KKwlzdHJ1Y3QgcmJfcm9vdCB6aGFuZGxlcm9vdDsNCisJdm9p ZCAgKmJ1ZmZlcjsNCiAJc3BpbmxvY2tfdCBsb2NrOw0KIH07DQogDQpAQCAtMjM2LDYgKzI2NSw3 IEBAIHN0YXRpYyBzdHJ1Y3QgenN3YXBfZW50cnkgKnpzd2FwX2VudHJ5X2NhY2hlX2FsbG9jKGdm cF90IGdmcCkNCiAJaWYgKCFlbnRyeSkNCiAJCXJldHVybiBOVUxMOw0KIAllbnRyeS0+cmVmY291 bnQgPSAxOw0KKwllbnRyeS0+emhhbmRsZSA9IE5VTEw7DQogCVJCX0NMRUFSX05PREUoJmVudHJ5 LT5yYm5vZGUpOw0KIAlyZXR1cm4gZW50cnk7DQogfQ0KQEAgLTI0Niw2ICsyNzYsMzkgQEAgc3Rh dGljIHZvaWQgenN3YXBfZW50cnlfY2FjaGVfZnJlZShzdHJ1Y3QgenN3YXBfZW50cnkgKmVudHJ5 KQ0KIH0NCiANCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiB6c3dhcCBo YW5kbGUgZnVuY3Rpb25zDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCitz dGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKnpzd2FwX2hhbmRsZV9jYWNoZTsNCisNCitzdGF0aWMg aW50IF9faW5pdCB6c3dhcF9oYW5kbGVfY2FjaGVfY3JlYXRlKHZvaWQpDQorew0KKwl6c3dhcF9o YW5kbGVfY2FjaGUgPSBLTUVNX0NBQ0hFKHpzd2FwX2hhbmRsZSwgMCk7DQorCXJldHVybiB6c3dh cF9oYW5kbGVfY2FjaGUgPT0gTlVMTDsNCit9DQorDQorc3RhdGljIHZvaWQgX19pbml0IHpzd2Fw X2hhbmRsZV9jYWNoZV9kZXN0cm95KHZvaWQpDQorew0KKwlrbWVtX2NhY2hlX2Rlc3Ryb3koenN3 YXBfaGFuZGxlX2NhY2hlKTsNCit9DQorDQorc3RhdGljIHN0cnVjdCB6c3dhcF9oYW5kbGUgKnpz d2FwX2hhbmRsZV9jYWNoZV9hbGxvYyhnZnBfdCBnZnApDQorew0KKwlzdHJ1Y3QgenN3YXBfaGFu ZGxlICp6aGFuZGxlOw0KKw0KKwl6aGFuZGxlID0ga21lbV9jYWNoZV9hbGxvYyh6c3dhcF9oYW5k bGVfY2FjaGUsIGdmcCk7DQorCWlmICghemhhbmRsZSkNCisJCXJldHVybiBOVUxMOw0KKwl6aGFu ZGxlLT5yZWZfY291bnQgPSAxOw0KKwlSQl9DTEVBUl9OT0RFKCZ6aGFuZGxlLT5yYm5vZGUpOw0K KwlyZXR1cm4gemhhbmRsZTsNCit9DQorDQorc3RhdGljIHZvaWQgenN3YXBfaGFuZGxlX2NhY2hl X2ZyZWUoc3RydWN0IHpzd2FwX2hhbmRsZSAqemhhbmRsZSkNCit7DQorCWttZW1fY2FjaGVfZnJl ZSh6c3dhcF9oYW5kbGVfY2FjaGUsIHpoYW5kbGUpOw0KK30NCisNCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqDQogKiByYnRyZWUgZnVuY3Rpb25zDQogKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8NCiBzdGF0aWMgc3RydWN0IHpzd2FwX2VudHJ5ICp6c3dhcF9y Yl9zZWFyY2goc3RydWN0IHJiX3Jvb3QgKnJvb3QsIHBnb2ZmX3Qgb2Zmc2V0KQ0KQEAgLTMwMCwx NCArMzYzLDEyNCBAQCBzdGF0aWMgdm9pZCB6c3dhcF9yYl9lcmFzZShzdHJ1Y3QgcmJfcm9vdCAq cm9vdCwgc3RydWN0IHpzd2FwX2VudHJ5ICplbnRyeSkNCiAJfQ0KIH0NCiANCitzdGF0aWMgc3Ry dWN0IHpzd2FwX2hhbmRsZSAqenN3YXBfaGFuZGxlX3JiX3NlYXJjaChzdHJ1Y3QgcmJfcm9vdCAq cm9vdCwNCisJCQkJCQl1MzIgY2hlY2tzdW0pDQorew0KKwlzdHJ1Y3QgcmJfbm9kZSAqbm9kZSA9 IHJvb3QtPnJiX25vZGU7DQorCXN0cnVjdCB6c3dhcF9oYW5kbGUgKnpoYW5kbGU7DQorDQorCXdo aWxlIChub2RlKSB7DQorCQl6aGFuZGxlID0gcmJfZW50cnkobm9kZSwgc3RydWN0IHpzd2FwX2hh bmRsZSwgcmJub2RlKTsNCisJCWlmICh6aGFuZGxlLT5jaGVja3N1bSA+IGNoZWNrc3VtKQ0KKwkJ CW5vZGUgPSBub2RlLT5yYl9sZWZ0Ow0KKwkJZWxzZSBpZiAoemhhbmRsZS0+Y2hlY2tzdW0gPCBj aGVja3N1bSkNCisJCQlub2RlID0gbm9kZS0+cmJfcmlnaHQ7DQorCQllbHNlDQorCQkJcmV0dXJu IHpoYW5kbGU7DQorCX0NCisJcmV0dXJuIE5VTEw7DQorfQ0KKw0KKy8qDQorICogSW4gdGhlIGNh c2UgdGhhdCB6aGFuZGxlIHdpdGggdGhlIHNhbWUgY2hlY2tzdW0gaXMgZm91bmQsIGEgcG9pbnRl ciB0bw0KKyAqIHRoZSBleGlzdGluZyB6aGFuZGxlIGlzIHN0b3JlZCBpbiBkdXBoYW5kbGUgYW5k IHRoZSBmdW5jdGlvbiByZXR1cm5zDQorICogLUVFWElTVA0KKyAqLw0KK3N0YXRpYyBpbnQgenN3 YXBfaGFuZGxlX3JiX2luc2VydChzdHJ1Y3QgcmJfcm9vdCAqcm9vdCwNCisJCQkJc3RydWN0IHpz d2FwX2hhbmRsZSAqemhhbmRsZSwNCisJCQkJc3RydWN0IHpzd2FwX2hhbmRsZSAqKmR1cGhhbmRs ZSkNCit7DQorCXN0cnVjdCByYl9ub2RlICoqbGluayA9ICZyb290LT5yYl9ub2RlLCAqcGFyZW50 ID0gTlVMTDsNCisJc3RydWN0IHpzd2FwX2hhbmRsZSAqbXloYW5kbGU7DQorDQorCXdoaWxlICgq bGluaykgew0KKwkJcGFyZW50ID0gKmxpbms7DQorCQlteWhhbmRsZSA9IHJiX2VudHJ5KHBhcmVu dCwgc3RydWN0IHpzd2FwX2hhbmRsZSwgcmJub2RlKTsNCisJCWlmIChteWhhbmRsZS0+Y2hlY2tz dW0gPiB6aGFuZGxlLT5jaGVja3N1bSkNCisJCQlsaW5rID0gJnBhcmVudC0+cmJfbGVmdDsNCisJ CWVsc2UgaWYgKG15aGFuZGxlLT5jaGVja3N1bSA8IHpoYW5kbGUtPmNoZWNrc3VtKQ0KKwkJCWxp bmsgPSAmcGFyZW50LT5yYl9yaWdodDsNCisJCWVsc2Ugew0KKwkJCSpkdXBoYW5kbGUgPSBteWhh bmRsZTsNCisJCQlyZXR1cm4gLUVFWElTVDsNCisJCX0NCisJfQ0KKwlyYl9saW5rX25vZGUoJnpo YW5kbGUtPnJibm9kZSwgcGFyZW50LCBsaW5rKTsNCisJcmJfaW5zZXJ0X2NvbG9yKCZ6aGFuZGxl LT5yYm5vZGUsIHJvb3QpOw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIHZvaWQgenN3YXBf aGFuZGxlX2VyYXNlKHN0cnVjdCByYl9yb290ICpyb290LA0KKwkJCQlzdHJ1Y3QgenN3YXBfaGFu ZGxlICp6aGFuZGxlKQ0KK3sNCisJaWYgKCFSQl9FTVBUWV9OT0RFKCZ6aGFuZGxlLT5yYm5vZGUp KSB7DQorCQlyYl9lcmFzZSgmemhhbmRsZS0+cmJub2RlLCByb290KTsNCisJCVJCX0NMRUFSX05P REUoJnpoYW5kbGUtPnJibm9kZSk7DQorCX0NCit9DQorDQorLyoNCisgKiBUaGlzIGZ1bmN0aW9u IHNlYXJjaGVzIGZvciB0aGUgc2FtZSBwYWdlIGluIHRoZSB6aGFuZGxlIFJCLVRyZWUgYmFzZWQN CisgKiBvbiB0aGUgY2hlY2tzdW0gdmFsdWUgb2YgdGhlIG5ldyBwYWdlLiBJZiB0aGUgc2FtZSBw YWdlIGlzIGZvdW5kIHRoZQ0KKyAqIHpoYW5kbGUgb2YgdGhhdCBwYWdlIGlzIHJldHVybmVkLg0K KyAqLw0KK3N0YXRpYyBzdHJ1Y3QgenN3YXBfaGFuZGxlICp6c3dhcF9zYW1lX3BhZ2Vfc2VhcmNo KHN0cnVjdCB6c3dhcF90cmVlICp0cmVlLA0KKwkJCQkJCXU4ICp1bmNtZW0sIHUzMiBjaGVja3N1 bSkNCit7DQorCWludCByZXQgPSAwOw0KKwl1bnNpZ25lZCBpbnQgZGxlbiA9IFBBR0VfU0laRTsN CisJdTggKnNyYyA9IE5VTEwsICpkc3QgPSBOVUxMOw0KKwlzdHJ1Y3QgenN3YXBfaGFuZGxlICp6 aGFuZGxlID0gTlVMTDsNCisJc3RydWN0IGNyeXB0b19jb21wICp0Zm07DQorDQorCXpoYW5kbGUg PSB6c3dhcF9oYW5kbGVfcmJfc2VhcmNoKCZ0cmVlLT56aGFuZGxlcm9vdCwgY2hlY2tzdW0pOw0K KwlpZiAoIXpoYW5kbGUpDQorCQlyZXR1cm4gTlVMTDsNCisJaWYgKCF6aGFuZGxlLT5wb29sKQ0K KwkJcmV0dXJuIE5VTEw7DQorDQorCS8qIENvbXBhcmUgbWVtb3J5IGNvbnRlbnRzICovDQorCWRz dCA9ICh1OCAqKXRyZWUtPmJ1ZmZlcjsNCisJc3JjID0gKHU4ICopenBvb2xfbWFwX2hhbmRsZSh6 aGFuZGxlLT5wb29sLT56cG9vbCwgemhhbmRsZS0+aGFuZGxlLA0KKwkJCVpQT09MX01NX1JPKSAr IHNpemVvZihzdHJ1Y3QgenN3YXBfaGVhZGVyKTsNCisJdGZtID0gKmdldF9jcHVfcHRyKHpoYW5k bGUtPnBvb2wtPnRmbSk7DQorCXJldCA9IGNyeXB0b19jb21wX2RlY29tcHJlc3ModGZtLCBzcmMs IHpoYW5kbGUtPmxlbmd0aCwgZHN0LCAmZGxlbik7DQorCXB1dF9jcHVfcHRyKHpoYW5kbGUtPnBv b2wtPnRmbSk7DQorCXpwb29sX3VubWFwX2hhbmRsZSh6aGFuZGxlLT5wb29sLT56cG9vbCwgemhh bmRsZS0+aGFuZGxlKTsNCisNCisJaWYgKHJldCkgLyogQ29uc2lkZXIgdGhlIHBhZ2UgYXMgdW5p cXVlIGlmIGRlY29tcHJlc3Npb24gZmFpbGVkOyovDQorCQlyZXR1cm4gTlVMTDsNCisNCisJaWYg KG1lbWNtcChkc3QsIHVuY21lbSwgUEFHRV9TSVpFKSkNCisJCXJldHVybiBOVUxMOw0KKw0KKwly ZXR1cm4gemhhbmRsZTsNCit9DQorDQorLyoNCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1 ZSBpZiB0aGUgenN3YXBfaGFuZGxlIGlzIHJlZmVyZW5jZWQgYnkgb25seQ0KKyAqIG9uZSBwYWdl IGVudHJ5Lg0KKyAqLw0KK3N0YXRpYyBib29sIHpzd2FwX2hhbmRsZV9pc191bmlxdWUoc3RydWN0 IHpzd2FwX2hhbmRsZSAqemhhbmRsZSkNCit7DQorCVdBUk5fT04oemhhbmRsZS0+cmVmX2NvdW50 IDwgMSk7DQorCXJldHVybiB6aGFuZGxlLT5yZWZfY291bnQgPT0gMTsNCit9DQorDQogLyoNCiAg KiBDYXJyaWVzIG91dCB0aGUgY29tbW9uIHBhdHRlcm4gb2YgZnJlZWluZyBhbmQgZW50cnkncyB6 cG9vbCBhbGxvY2F0aW9uLA0KICAqIGZyZWVpbmcgdGhlIGVudHJ5IGl0c2VsZiwgYW5kIGRlY3Jl bWVudGluZyB0aGUgbnVtYmVyIG9mIHN0b3JlZCBwYWdlcy4NCiAgKi8NCiBzdGF0aWMgdm9pZCB6 c3dhcF9mcmVlX2VudHJ5KHN0cnVjdCB6c3dhcF9lbnRyeSAqZW50cnkpDQogew0KLQl6cG9vbF9m cmVlKGVudHJ5LT5wb29sLT56cG9vbCwgZW50cnktPmhhbmRsZSk7DQotCXpzd2FwX3Bvb2xfcHV0 KGVudHJ5LT5wb29sKTsNCisJaWYgKHpzd2FwX2hhbmRsZV9pc191bmlxdWUoZW50cnktPnpoYW5k bGUpKSB7DQorCQl6cG9vbF9mcmVlKGVudHJ5LT5wb29sLT56cG9vbCwgZW50cnktPnpoYW5kbGUt PmhhbmRsZSk7DQorCQl6c3dhcF9oYW5kbGVfY2FjaGVfZnJlZShlbnRyeS0+emhhbmRsZSk7DQor CQl6c3dhcF9wb29sX3B1dChlbnRyeS0+cG9vbCk7DQorCX0gZWxzZSB7DQorCQllbnRyeS0+emhh bmRsZS0+cmVmX2NvdW50LS07DQorCQlhdG9taWNfZGVjKCZ6c3dhcF9kdXBsaWNhdGVfcGFnZXMp Ow0KKwl9DQogCXpzd2FwX2VudHJ5X2NhY2hlX2ZyZWUoZW50cnkpOw0KIAlhdG9taWNfZGVjKCZ6 c3dhcF9zdG9yZWRfcGFnZXMpOw0KIAl6c3dhcF91cGRhdGVfdG90YWxfc2l6ZSgpOw0KQEAgLTMy OSw2ICs1MDIsOSBAQCBzdGF0aWMgdm9pZCB6c3dhcF9lbnRyeV9wdXQoc3RydWN0IHpzd2FwX3Ry ZWUgKnRyZWUsDQogDQogCUJVR19PTihyZWZjb3VudCA8IDApOw0KIAlpZiAocmVmY291bnQgPT0g MCkgew0KKwkJaWYgKGVudHJ5LT56aGFuZGxlICYmIHpzd2FwX2hhbmRsZV9pc191bmlxdWUoZW50 cnktPnpoYW5kbGUpKQ0KKwkJCXpzd2FwX2hhbmRsZV9lcmFzZSgmdHJlZS0+emhhbmRsZXJvb3Qs DQorCQkJCQllbnRyeS0+emhhbmRsZSk7DQogCQl6c3dhcF9yYl9lcmFzZSgmdHJlZS0+cmJyb290 LCBlbnRyeSk7DQogCQl6c3dhcF9mcmVlX2VudHJ5KGVudHJ5KTsNCiAJfQ0KQEAgLTg4NiwxNSAr MTA2MiwxNiBAQCBzdGF0aWMgaW50IHpzd2FwX3dyaXRlYmFja19lbnRyeShzdHJ1Y3QgenBvb2wg KnBvb2wsIHVuc2lnbmVkIGxvbmcgaGFuZGxlKQ0KIAljYXNlIFpTV0FQX1NXQVBDQUNIRV9ORVc6 IC8qIHBhZ2UgaXMgbG9ja2VkICovDQogCQkvKiBkZWNvbXByZXNzICovDQogCQlkbGVuID0gUEFH RV9TSVpFOw0KLQkJc3JjID0gKHU4ICopenBvb2xfbWFwX2hhbmRsZShlbnRyeS0+cG9vbC0+enBv b2wsIGVudHJ5LT5oYW5kbGUsDQotCQkJCVpQT09MX01NX1JPKSArIHNpemVvZihzdHJ1Y3QgenN3 YXBfaGVhZGVyKTsNCisJCXNyYyA9ICh1OCAqKXpwb29sX21hcF9oYW5kbGUoZW50cnktPnBvb2wt Pnpwb29sLA0KKwkJCQllbnRyeS0+emhhbmRsZS0+aGFuZGxlLCBaUE9PTF9NTV9STykNCisJCQkJ KyBzaXplb2Yoc3RydWN0IHpzd2FwX2hlYWRlcik7DQogCQlkc3QgPSBrbWFwX2F0b21pYyhwYWdl KTsNCiAJCXRmbSA9ICpnZXRfY3B1X3B0cihlbnRyeS0+cG9vbC0+dGZtKTsNCi0JCXJldCA9IGNy eXB0b19jb21wX2RlY29tcHJlc3ModGZtLCBzcmMsIGVudHJ5LT5sZW5ndGgsDQorCQlyZXQgPSBj cnlwdG9fY29tcF9kZWNvbXByZXNzKHRmbSwgc3JjLCBlbnRyeS0+emhhbmRsZS0+bGVuZ3RoLA0K IAkJCQkJICAgICBkc3QsICZkbGVuKTsNCiAJCXB1dF9jcHVfcHRyKGVudHJ5LT5wb29sLT50Zm0p Ow0KIAkJa3VubWFwX2F0b21pYyhkc3QpOw0KLQkJenBvb2xfdW5tYXBfaGFuZGxlKGVudHJ5LT5w b29sLT56cG9vbCwgZW50cnktPmhhbmRsZSk7DQorCQl6cG9vbF91bm1hcF9oYW5kbGUoZW50cnkt PnBvb2wtPnpwb29sLCBlbnRyeS0+emhhbmRsZS0+aGFuZGxlKTsNCiAJCUJVR19PTihyZXQpOw0K IAkJQlVHX09OKGRsZW4gIT0gUEFHRV9TSVpFKTsNCiANCkBAIC05NzUsNiArMTE1Miw4IEBAIHN0 YXRpYyBpbnQgenN3YXBfZnJvbnRzd2FwX3N0b3JlKHVuc2lnbmVkIHR5cGUsIHBnb2ZmX3Qgb2Zm c2V0LA0KIAljaGFyICpidWY7DQogCXU4ICpzcmMsICpkc3Q7DQogCXN0cnVjdCB6c3dhcF9oZWFk ZXIgKnpoZHI7DQorCXN0cnVjdCB6c3dhcF9oYW5kbGUgKnpoYW5kbGUgPSBOVUxMLCAqZHVwaGFu ZGxlID0gTlVMTDsNCisJdTMyIGNoZWNrc3VtID0gMDsNCiANCiAJaWYgKCF6c3dhcF9lbmFibGVk IHx8ICF0cmVlKSB7DQogCQlyZXQgPSAtRU5PREVWOw0KQEAgLTk5OSw2ICsxMTc4LDIzIEBAIHN0 YXRpYyBpbnQgenN3YXBfZnJvbnRzd2FwX3N0b3JlKHVuc2lnbmVkIHR5cGUsIHBnb2ZmX3Qgb2Zm c2V0LA0KIAkJZ290byByZWplY3Q7DQogCX0NCiANCisJc3JjID0ga21hcF9hdG9taWMocGFnZSk7 DQorDQorCWNoZWNrc3VtID0gamhhc2gyKChjb25zdCB1MzIgKilzcmMsIFBBR0VfU0laRSAvIDQs IDE3KTsNCisJc3Bpbl9sb2NrKCZ0cmVlLT5sb2NrKTsNCisJemhhbmRsZSA9IHpzd2FwX3NhbWVf cGFnZV9zZWFyY2godHJlZSwgc3JjLCBjaGVja3N1bSk7DQorCWlmICh6aGFuZGxlKSB7DQorCQll bnRyeS0+b2Zmc2V0ID0gb2Zmc2V0Ow0KKwkJZW50cnktPnpoYW5kbGUgPSB6aGFuZGxlOw0KKwkJ ZW50cnktPnBvb2wgPSB6aGFuZGxlLT5wb29sOw0KKwkJZW50cnktPnpoYW5kbGUtPnJlZl9jb3Vu dCsrOw0KKwkJc3Bpbl91bmxvY2soJnRyZWUtPmxvY2spOw0KKwkJa3VubWFwX2F0b21pYyhzcmMp Ow0KKwkJYXRvbWljX2luYygmenN3YXBfZHVwbGljYXRlX3BhZ2VzKTsNCisJCWdvdG8gaW5zZXJ0 X2VudHJ5Ow0KKwl9DQorCXNwaW5fdW5sb2NrKCZ0cmVlLT5sb2NrKTsNCisNCiAJLyogaWYgZW50 cnkgaXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBpdCBrZWVwcyB0aGUgcmVmZXJlbmNlICovDQogCWVu dHJ5LT5wb29sID0genN3YXBfcG9vbF9jdXJyZW50X2dldCgpOw0KIAlpZiAoIWVudHJ5LT5wb29s KSB7DQpAQCAtMTAwOSw3ICsxMjA1LDYgQEAgc3RhdGljIGludCB6c3dhcF9mcm9udHN3YXBfc3Rv cmUodW5zaWduZWQgdHlwZSwgcGdvZmZfdCBvZmZzZXQsDQogCS8qIGNvbXByZXNzICovDQogCWRz dCA9IGdldF9jcHVfdmFyKHpzd2FwX2RzdG1lbSk7DQogCXRmbSA9ICpnZXRfY3B1X3B0cihlbnRy eS0+cG9vbC0+dGZtKTsNCi0Jc3JjID0ga21hcF9hdG9taWMocGFnZSk7DQogCXJldCA9IGNyeXB0 b19jb21wX2NvbXByZXNzKHRmbSwgc3JjLCBQQUdFX1NJWkUsIGRzdCwgJmRsZW4pOw0KIAlrdW5t YXBfYXRvbWljKHNyYyk7DQogCXB1dF9jcHVfcHRyKGVudHJ5LT5wb29sLT50Zm0pOw0KQEAgLTEw NDAsOSArMTIzNSwyNCBAQCBzdGF0aWMgaW50IHpzd2FwX2Zyb250c3dhcF9zdG9yZSh1bnNpZ25l ZCB0eXBlLCBwZ29mZl90IG9mZnNldCwNCiANCiAJLyogcG9wdWxhdGUgZW50cnkgKi8NCiAJZW50 cnktPm9mZnNldCA9IG9mZnNldDsNCi0JZW50cnktPmhhbmRsZSA9IGhhbmRsZTsNCi0JZW50cnkt Pmxlbmd0aCA9IGRsZW47DQorCXpoYW5kbGUgPSB6c3dhcF9oYW5kbGVfY2FjaGVfYWxsb2MoR0ZQ X0tFUk5FTCk7DQorCWlmICghemhhbmRsZSkgew0KKwkJenN3YXBfcmVqZWN0X2ttZW1jYWNoZV9m YWlsKys7DQorCQlyZXQgPSAtRU5PTUVNOw0KKwkJZ290byBmcmVlZW50cnk7DQorCX0NCisNCisJ ZW50cnktPnpoYW5kbGUgPSB6aGFuZGxlOw0KKwllbnRyeS0+emhhbmRsZS0+aGFuZGxlID0gaGFu ZGxlOw0KKwllbnRyeS0+emhhbmRsZS0+bGVuZ3RoID0gZGxlbjsNCisJZW50cnktPnpoYW5kbGUt PmNoZWNrc3VtID0gY2hlY2tzdW07DQorCWVudHJ5LT56aGFuZGxlLT5wb29sID0gZW50cnktPnBv b2w7DQorCXNwaW5fbG9jaygmdHJlZS0+bG9jayk7DQorCXJldCA9IHpzd2FwX2hhbmRsZV9yYl9p bnNlcnQoJnRyZWUtPnpoYW5kbGVyb290LCBlbnRyeS0+emhhbmRsZSwNCisJCQkJCQkJCSZkdXBo YW5kbGUpOw0KKwlzcGluX3VubG9jaygmdHJlZS0+bG9jayk7DQogDQoraW5zZXJ0X2VudHJ5Og0K IAkvKiBtYXAgKi8NCiAJc3Bpbl9sb2NrKCZ0cmVlLT5sb2NrKTsNCiAJZG8gew0KQEAgLTEwNjQs NiArMTI3NCw3IEBAIHN0YXRpYyBpbnQgenN3YXBfZnJvbnRzd2FwX3N0b3JlKHVuc2lnbmVkIHR5 cGUsIHBnb2ZmX3Qgb2Zmc2V0LA0KIA0KIHB1dF9kc3RtZW06DQogCXB1dF9jcHVfdmFyKHpzd2Fw X2RzdG1lbSk7DQorZnJlZWVudHJ5Og0KIAl6c3dhcF9wb29sX3B1dChlbnRyeS0+cG9vbCk7DQog ZnJlZXBhZ2U6DQogCXpzd2FwX2VudHJ5X2NhY2hlX2ZyZWUoZW50cnkpOw0KQEAgLTEwOTcsMTQg KzEzMDgsMTUgQEAgc3RhdGljIGludCB6c3dhcF9mcm9udHN3YXBfbG9hZCh1bnNpZ25lZCB0eXBl LCBwZ29mZl90IG9mZnNldCwNCiANCiAJLyogZGVjb21wcmVzcyAqLw0KIAlkbGVuID0gUEFHRV9T SVpFOw0KLQlzcmMgPSAodTggKil6cG9vbF9tYXBfaGFuZGxlKGVudHJ5LT5wb29sLT56cG9vbCwg ZW50cnktPmhhbmRsZSwNCisJc3JjID0gKHU4ICopenBvb2xfbWFwX2hhbmRsZShlbnRyeS0+cG9v bC0+enBvb2wsIGVudHJ5LT56aGFuZGxlLT5oYW5kbGUsDQogCQkJWlBPT0xfTU1fUk8pICsgc2l6 ZW9mKHN0cnVjdCB6c3dhcF9oZWFkZXIpOw0KIAlkc3QgPSBrbWFwX2F0b21pYyhwYWdlKTsNCiAJ dGZtID0gKmdldF9jcHVfcHRyKGVudHJ5LT5wb29sLT50Zm0pOw0KLQlyZXQgPSBjcnlwdG9fY29t cF9kZWNvbXByZXNzKHRmbSwgc3JjLCBlbnRyeS0+bGVuZ3RoLCBkc3QsICZkbGVuKTsNCisJcmV0 ID0gY3J5cHRvX2NvbXBfZGVjb21wcmVzcyh0Zm0sIHNyYywgZW50cnktPnpoYW5kbGUtPmxlbmd0 aCwNCisJCQkJCWRzdCwgJmRsZW4pOw0KIAlwdXRfY3B1X3B0cihlbnRyeS0+cG9vbC0+dGZtKTsN CiAJa3VubWFwX2F0b21pYyhkc3QpOw0KLQl6cG9vbF91bm1hcF9oYW5kbGUoZW50cnktPnBvb2wt Pnpwb29sLCBlbnRyeS0+aGFuZGxlKTsNCisJenBvb2xfdW5tYXBfaGFuZGxlKGVudHJ5LT5wb29s LT56cG9vbCwgZW50cnktPnpoYW5kbGUtPmhhbmRsZSk7DQogCUJVR19PTihyZXQpOw0KIA0KIAlz cGluX2xvY2soJnRyZWUtPmxvY2spOw0KQEAgLTExNTIsNyArMTM2NCw5IEBAIHN0YXRpYyB2b2lk IHpzd2FwX2Zyb250c3dhcF9pbnZhbGlkYXRlX2FyZWEodW5zaWduZWQgdHlwZSkNCiAJcmJ0cmVl X3Bvc3RvcmRlcl9mb3JfZWFjaF9lbnRyeV9zYWZlKGVudHJ5LCBuLCAmdHJlZS0+cmJyb290LCBy Ym5vZGUpDQogCQl6c3dhcF9mcmVlX2VudHJ5KGVudHJ5KTsNCiAJdHJlZS0+cmJyb290ID0gUkJf Uk9PVDsNCisJdHJlZS0+emhhbmRsZXJvb3QgPSBSQl9ST09UOw0KIAlzcGluX3VubG9jaygmdHJl ZS0+bG9jayk7DQorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyl0cmVlLT5idWZmZXIpOw0KIAlr ZnJlZSh0cmVlKTsNCiAJenN3YXBfdHJlZXNbdHlwZV0gPSBOVUxMOw0KIH0NCkBAIC0xMTY3LDYg KzEzODEsMTMgQEAgc3RhdGljIHZvaWQgenN3YXBfZnJvbnRzd2FwX2luaXQodW5zaWduZWQgdHlw ZSkNCiAJCXJldHVybjsNCiAJfQ0KIA0KKwl0cmVlLT5idWZmZXIgPSAodm9pZCAqKV9fZ2V0X2Zy ZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7DQorCWlmICghdHJlZS0+YnVmZmVyKSB7 DQorCQlwcl9lcnIoInpzd2FwOiBFcnJvciBhbGxvY2F0aW5nIGJ1ZmZlciBmb3IgZGVjb21wcmVz c2lvblxuIik7DQorCQlrZnJlZSh0cmVlKTsNCisJCXJldHVybjsNCisJfQ0KKwl0cmVlLT56aGFu ZGxlcm9vdCA9IFJCX1JPT1Q7DQogCXRyZWUtPnJicm9vdCA9IFJCX1JPT1Q7DQogCXNwaW5fbG9j a19pbml0KCZ0cmVlLT5sb2NrKTsNCiAJenN3YXBfdHJlZXNbdHlwZV0gPSB0cmVlOw0KQEAgLTEy MTUsNiArMTQzNiw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHpzd2FwX2RlYnVnZnNfaW5pdCh2b2lk KQ0KIAkJCXpzd2FwX2RlYnVnZnNfcm9vdCwgJnpzd2FwX3Bvb2xfdG90YWxfc2l6ZSk7DQogCWRl YnVnZnNfY3JlYXRlX2F0b21pY190KCJzdG9yZWRfcGFnZXMiLCBTX0lSVUdPLA0KIAkJCXpzd2Fw X2RlYnVnZnNfcm9vdCwgJnpzd2FwX3N0b3JlZF9wYWdlcyk7DQorCWRlYnVnZnNfY3JlYXRlX2F0 b21pY190KCJkdXBsaWNhdGVfcGFnZXMiLCBTX0lSVUdPLA0KKwkJCXpzd2FwX2RlYnVnZnNfcm9v dCwgJnpzd2FwX2R1cGxpY2F0ZV9wYWdlcyk7DQorDQogDQogCXJldHVybiAwOw0KIH0NCkBAIC0x MjQ2LDYgKzE0NzAsMTEgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF96c3dhcCh2b2lkKQ0KIAkJ Z290byBjYWNoZV9mYWlsOw0KIAl9DQogDQorCWlmICh6c3dhcF9oYW5kbGVfY2FjaGVfY3JlYXRl KCkpIHsNCisJCXByX2VycigiaGFuZGxlIGNhY2hlIGNyZWF0aW9uIGZhaWxlZFxuIik7DQorCQln b3RvIGhhbmRsZWNhY2hlZmFpbDsNCisJfQ0KKw0KIAlpZiAoenN3YXBfY3B1X2RzdG1lbV9pbml0 KCkpIHsNCiAJCXByX2VycigiZHN0bWVtIGFsbG9jIGZhaWxlZFxuIik7DQogCQlnb3RvIGRzdG1l bV9mYWlsOw0KQEAgLTEyNjksNiArMTQ5OCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfenN3 YXAodm9pZCkNCiBwb29sX2ZhaWw6DQogCXpzd2FwX2NwdV9kc3RtZW1fZGVzdHJveSgpOw0KIGRz dG1lbV9mYWlsOg0KKwl6c3dhcF9oYW5kbGVfY2FjaGVfZGVzdHJveSgpOw0KK2hhbmRsZWNhY2hl ZmFpbDoNCiAJenN3YXBfZW50cnlfY2FjaGVfZGVzdHJveSgpOw0KIGNhY2hlX2ZhaWw6DQogCXJl dHVybiAtRU5PTUVNOw0KLS0gDQoxLjcuOS41DQoNCg== ------=_Part_35139_1551279780.1471428840585-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org