From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sun, 8 Aug 1999 20:34:58 +0200 (CEST) From: Andrea Arcangeli Subject: [patch] page-lru against 2.3.13-pre8 Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811840-504741333-934137298=:29734" Sender: owner-linux-mm@kvack.org Return-Path: To: Linus Torvalds Cc: linux-mm@kvack.org, linux-kernel@vger.rutgers.edu List-ID: ---1463811840-504741333-934137298=:29734 Content-Type: TEXT/PLAIN; charset=US-ASCII I ported the minimal page-lru code to 2.3.13-pre8 because I noticed that between 2.3.12 and 2.3.13-pre8 some related change (one from me ;) caused the original patch to not apply cleanly. The new page-lru patch is equivalent of the previous page_lru-2.3.12-H patch. Andrea ---1463811840-504741333-934137298=:29734 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="page_lru-2.3.12-K" Content-ID: Content-Description: Content-Disposition: attachment; filename="page_lru-2.3.12-K" Content-Transfer-Encoding: BASE64 ZGlmZiAtdXJOIDIuMy4xMy1wcmU4L2ZzL2J1ZmZlci5jIDIuMy4xMy1wcmU4 LWxydS9mcy9idWZmZXIuYw0KLS0tIDIuMy4xMy1wcmU4L2ZzL2J1ZmZlci5j CVN1biBBdWcgIDggMTc6MjE6MzcgMTk5OQ0KKysrIDIuMy4xMy1wcmU4LWxy dS9mcy9idWZmZXIuYwlTdW4gQXVnICA4IDIwOjA4OjE5IDE5OTkNCkBAIC0x MjQ3LDcgKzEyNDcsNyBAQA0KIAlpZiAoIVBhZ2VMb2NrZWQocGFnZSkpDQog CQlCVUcoKTsNCiAJaWYgKCFwYWdlLT5idWZmZXJzKQ0KLQkJcmV0dXJuIDA7 DQorCQlyZXR1cm4gMTsNCiANCiAJaGVhZCA9IHBhZ2UtPmJ1ZmZlcnM7DQog CWJoID0gaGVhZDsNCkBAIC0xMjg4LDEwICsxMjg4LDEzIEBADQogCSAqLw0K IAlpZiAoIW9mZnNldCkgew0KIAkJaWYgKCF0cnlfdG9fZnJlZV9idWZmZXJz KHBhZ2UpKQ0KKwkJew0KIAkJCWF0b21pY19hZGQoUEFHRV9DQUNIRV9TSVpF LCAmYnVmZmVybWVtKTsNCisJCQlyZXR1cm4gMDsNCisJCX0NCiAJfQ0KIA0K LQlyZXR1cm4gMDsNCisJcmV0dXJuIDE7DQogfQ0KIA0KIHN0YXRpYyB2b2lk IGNyZWF0ZV9lbXB0eV9idWZmZXJzKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1 Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBsb25nIGJsb2Nrc2l6ZSkNCkBA IC0xODk5LDYgKzE5MDIsNyBAQA0KIHN0YXRpYyBpbnQgZ3Jvd19idWZmZXJz KGludCBzaXplKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBwYWdlOw0KKwlzdHJ1 Y3QgcGFnZSAqIHBhZ2VfbWFwOw0KIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo LCAqdG1wOw0KIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBpbnNlcnRfcG9pbnQ7 DQogCWludCBpc2l6ZTsNCkBAIC0xOTQxLDcgKzE5NDUsOSBAQA0KIAlmcmVl X2xpc3RbaXNpemVdLmxpc3QgPSBiaDsNCiAJc3Bpbl91bmxvY2soJmZyZWVf bGlzdFtpc2l6ZV0ubG9jayk7DQogDQotCW1lbV9tYXBbTUFQX05SKHBhZ2Up XS5idWZmZXJzID0gYmg7DQorCXBhZ2VfbWFwID0gbWVtX21hcCArIE1BUF9O UihwYWdlKTsNCisJcGFnZV9tYXAtPmJ1ZmZlcnMgPSBiaDsNCisJbHJ1X2Nh Y2hlX2FkZChwYWdlX21hcCk7DQogCWF0b21pY19hZGQoUEFHRV9TSVpFLCAm YnVmZmVybWVtKTsNCiAJcmV0dXJuIDE7DQogfQ0KZGlmZiAtdXJOIDIuMy4x My1wcmU4L2ZzL2RjYWNoZS5jIDIuMy4xMy1wcmU4LWxydS9mcy9kY2FjaGUu Yw0KLS0tIDIuMy4xMy1wcmU4L2ZzL2RjYWNoZS5jCVR1ZSBKdWwgMTMgMDI6 MDE6MzkgMTk5OQ0KKysrIDIuMy4xMy1wcmU4LWxydS9mcy9kY2FjaGUuYwlT dW4gQXVnICA4IDIwOjA4OjE5IDE5OTkNCkBAIC0yMCw2ICsyMCw3IEBADQog I2luY2x1ZGUgPGxpbnV4L21hbGxvYy5oPg0KICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+DQogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVkZSA8 bGludXgvc21wX2xvY2suaD4NCiANCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3Mu aD4NCiANCkBAIC00NzMsOSArNDc0LDExIEBADQogew0KIAlpZiAoZ2ZwX21h c2sgJiBfX0dGUF9JTykgew0KIAkJaW50IGNvdW50ID0gMDsNCisJCWxvY2tf a2VybmVsKCk7DQogCQlpZiAocHJpb3JpdHkpDQogCQkJY291bnQgPSBkZW50 cnlfc3RhdC5ucl91bnVzZWQgLyBwcmlvcml0eTsNCiAJCXBydW5lX2RjYWNo ZShjb3VudCk7DQorCQl1bmxvY2tfa2VybmVsKCk7DQogCX0NCiB9DQogDQpk aWZmIC11ck4gMi4zLjEzLXByZTgvaW5jbHVkZS9saW51eC9tbS5oIDIuMy4x My1wcmU4LWxydS9pbmNsdWRlL2xpbnV4L21tLmgNCi0tLSAyLjMuMTMtcHJl OC9pbmNsdWRlL2xpbnV4L21tLmgJV2VkIEF1ZyAgNCAxMjoyODoxNyAxOTk5 DQorKysgMi4zLjEzLXByZTgtbHJ1L2luY2x1ZGUvbGludXgvbW0uaAlTdW4g QXVnICA4IDIwOjEzOjM0IDE5OTkNCkBAIC0xMjUsNiArMTI1LDcgQEANCiAJ c3RydWN0IHBhZ2UgKm5leHRfaGFzaDsNCiAJYXRvbWljX3QgY291bnQ7DQog CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CS8qIGF0b21pYyBmbGFncywgc29tZSBw b3NzaWJseSB1cGRhdGVkIGFzeW5jaHJvbm91c2x5ICovDQorCXN0cnVjdCBs aXN0X2hlYWQgbHJ1Ow0KIAl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0Ow0KIAlz dHJ1Y3QgcGFnZSAqKnBwcmV2X2hhc2g7DQogCXN0cnVjdCBidWZmZXJfaGVh ZCAqIGJ1ZmZlcnM7DQpkaWZmIC11ck4gMi4zLjEzLXByZTgvaW5jbHVkZS9s aW51eC9zd2FwLmggMi4zLjEzLXByZTgtbHJ1L2luY2x1ZGUvbGludXgvc3dh cC5oDQotLS0gMi4zLjEzLXByZTgvaW5jbHVkZS9saW51eC9zd2FwLmgJU3Vu IEF1ZyAgOCAxOTo0MTo0NCAxOTk5DQorKysgMi4zLjEzLXByZTgtbHJ1L2lu Y2x1ZGUvbGludXgvc3dhcC5oCVN1biBBdWcgIDggMjA6MTM6MzQgMTk5OQ0K QEAgLTY0LDYgKzY0LDggQEANCiANCiBleHRlcm4gaW50IG5yX3N3YXBfcGFn ZXM7DQogZXh0ZXJuIGludCBucl9mcmVlX3BhZ2VzOw0KK2V4dGVybiBpbnQg bnJfbHJ1X3BhZ2VzOw0KK2V4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGxydV9j YWNoZTsNCiBleHRlcm4gYXRvbWljX3QgbnJfYXN5bmNfcGFnZXM7DQogZXh0 ZXJuIHN0cnVjdCBpbm9kZSBzd2FwcGVyX2lub2RlOw0KIGV4dGVybiBhdG9t aWNfdCBwYWdlX2NhY2hlX3NpemU7DQpAQCAtMTYwLDYgKzE2MiwyNyBAQA0K IAkJY291bnQtLTsNCiAJcmV0dXJuICBjb3VudCA+IDE7DQogfQ0KKw0KK2V4 dGVybiBzcGlubG9ja190IHBhZ2VtYXBfbHJ1X2xvY2s7DQorDQorLyoNCisg KiBIZWxwZXIgbWFjcm9zIGZvciBscnVfcGFnZXMgaGFuZGxpbmcuDQorICov DQorI2RlZmluZQlscnVfY2FjaGVfYWRkKHBhZ2UpCQkJXA0KK2RvIHsJCQkJ CQlcDQorCXNwaW5fbG9jaygmcGFnZW1hcF9scnVfbG9jayk7CQlcDQorCWxp c3RfYWRkKCYocGFnZSktPmxydSwgJmxydV9jYWNoZSk7CVwNCisJbnJfbHJ1 X3BhZ2VzKys7CQkJCVwNCisJc3Bpbl91bmxvY2soJnBhZ2VtYXBfbHJ1X2xv Y2spOwkJXA0KK30gd2hpbGUgKDApDQorDQorI2RlZmluZQlscnVfY2FjaGVf ZGVsKHBhZ2UpCQkJXA0KK2RvIHsJCQkJCQlcDQorCXNwaW5fbG9jaygmcGFn ZW1hcF9scnVfbG9jayk7CQlcDQorCWxpc3RfZGVsKCYocGFnZSktPmxydSk7 CQkJXA0KKwlucl9scnVfcGFnZXMtLTsJCQkJXA0KKwlzcGluX3VubG9jaygm cGFnZW1hcF9scnVfbG9jayk7CQlcDQorfSB3aGlsZSAoMCkNCiANCiAjZW5k aWYgLyogX19LRVJORUxfXyovDQogDQpkaWZmIC11ck4gMi4zLjEzLXByZTgv aXBjL3NobS5jIDIuMy4xMy1wcmU4LWxydS9pcGMvc2htLmMNCi0tLSAyLjMu MTMtcHJlOC9pcGMvc2htLmMJU3VuIEF1ZyAgOCAxNzoyMTo0MSAxOTk5DQor KysgMi4zLjEzLXByZTgtbHJ1L2lwYy9zaG0uYwlTdW4gQXVnICA4IDIwOjA4 OjE5IDE5OTkNCkBAIC03MTksMTAgKzcxOSwxMiBAQA0KIAlpbnQgbG9vcCA9 IDA7DQogCWludCBjb3VudGVyOw0KIAlzdHJ1Y3QgcGFnZSAqIHBhZ2VfbWFw Ow0KKwlpbnQgcmV0ID0gMDsNCiAJDQorCWxvY2tfa2VybmVsKCk7DQogCWNv dW50ZXIgPSBzaG1fcnNzID4+IHByaW87DQogCWlmICghY291bnRlciB8fCAh KHN3YXBfbnIgPSBnZXRfc3dhcF9wYWdlKCkpKQ0KLQkJcmV0dXJuIDA7DQor CQlnb3RvIG91dF91bmxvY2s7DQogDQogIGNoZWNrX2lkOg0KIAlzaHAgPSBz aG1fc2Vnc1tzd2FwX2lkXTsNCkBAIC03NTUsNyArNzU3LDcgQEANCiAJaWYg KC0tY291bnRlciA8IDApIHsgLyogZmFpbGVkICovDQogCQlmYWlsZWQ6DQog CQlzd2FwX2ZyZWUgKHN3YXBfbnIpOw0KLQkJcmV0dXJuIDA7DQorCQlnb3Rv IG91dF91bmxvY2s7DQogCX0NCiAJaWYgKHBhZ2VfY291bnQobWVtX21hcCAr IE1BUF9OUihwdGVfcGFnZShwYWdlKSkpICE9IDEpDQogCQlnb3RvIGNoZWNr X3RhYmxlOw0KQEAgLTc2OCw3ICs3NzAsMTAgQEANCiAJc3dhcF9zdWNjZXNz ZXMrKzsNCiAJc2htX3N3cCsrOw0KIAlzaG1fcnNzLS07DQotCXJldHVybiAx Ow0KKwlyZXQgPSAxOw0KKyBvdXRfdW5sb2NrOg0KKwl1bmxvY2tfa2VybmVs KCk7DQorCXJldHVybiByZXQ7DQogfQ0KIA0KIC8qDQpkaWZmIC11ck4gMi4z LjEzLXByZTgvbW0vZmlsZW1hcC5jIDIuMy4xMy1wcmU4LWxydS9tbS9maWxl bWFwLmMNCi0tLSAyLjMuMTMtcHJlOC9tbS9maWxlbWFwLmMJU3VuIEF1ZyAg OCAxNzoyMTo0MSAxOTk5DQorKysgMi4zLjEzLXByZTgtbHJ1L21tL2ZpbGVt YXAuYwlTdW4gQXVnICA4IDIwOjA4OjE5IDE5OTkNCkBAIC0zMyw2ICszMyw4 IEBADQogICoNCiAgKiBmaW5pc2hlZCAndW5pZnlpbmcnIHRoZSBwYWdlIGFu ZCBidWZmZXIgY2FjaGUgYW5kIFNNUC10aHJlYWRlZCB0aGUNCiAgKiBwYWdl LWNhY2hlLCAyMS4wNS4xOTk5LCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0 LmNvbT4NCisgKg0KKyAqIFNNUC10aHJlYWRlZCBwYWdlbWFwLUxSVSAxOTk5 LCBBbmRyZWEgQXJjYW5nZWxpIDxhbmRyZWFAc3VzZS5kZT4NCiAgKi8NCiAN CiBhdG9taWNfdCBwYWdlX2NhY2hlX3NpemUgPSBBVE9NSUNfSU5JVCgwKTsN CkBAIC00MCw2ICs0MiwxMSBAQA0KIHN0cnVjdCBwYWdlICoqcGFnZV9oYXNo X3RhYmxlOw0KIA0KIHNwaW5sb2NrX3QgcGFnZWNhY2hlX2xvY2sgPSBTUElO X0xPQ0tfVU5MT0NLRUQ7DQorLyoNCisgKiBOT1RFOiB0byBhdm9pZCBkZWFk bG9ja2luZyB5b3UgbXVzdCBuZXZlciBhY3F1aXJlIHRoZSBwYWdlY2FjaGVf bG9jayB3aXRoDQorICogICAgICAgdGhlIHBhZ2VtYXBfbHJ1X2xvY2sgaGVs ZC4NCisgKi8NCitzcGlubG9ja190IHBhZ2VtYXBfbHJ1X2xvY2sgPSBTUElO X0xPQ0tfVU5MT0NLRUQ7DQogDQogDQogdm9pZCBfX2FkZF9wYWdlX3RvX2hh c2hfcXVldWUoc3RydWN0IHBhZ2UgKiBwYWdlLCBzdHJ1Y3QgcGFnZSAqKnAp DQpAQCAtMTE3LDYgKzEyNCw3IEBADQogCQl9DQogCQlpZiAocGFnZV9jb3Vu dChwYWdlKSAhPSAyKQ0KIAkJCXByaW50aygiaG0sIGJ1c3kgcGFnZSBpbnZh bGlkYXRlZD8gKG5vdCBuZWNlc3NlcmlseSBhIGJ1ZylcbiIpOw0KKwkJbHJ1 X2NhY2hlX2RlbChwYWdlKTsNCiANCiAJCXJlbW92ZV9wYWdlX2Zyb21faW5v ZGVfcXVldWUocGFnZSk7DQogCQlyZW1vdmVfcGFnZV9mcm9tX2hhc2hfcXVl dWUocGFnZSk7DQpAQCAtMTUxLDggKzE1OSw5IEBADQogDQogCQkJbG9ja19w YWdlKHBhZ2UpOw0KIA0KLQkJCWlmIChpbm9kZS0+aV9vcC0+Zmx1c2hwYWdl KQ0KLQkJCQlpbm9kZS0+aV9vcC0+Zmx1c2hwYWdlKGlub2RlLCBwYWdlLCAw KTsNCisJCQlpZiAoIWlub2RlLT5pX29wLT5mbHVzaHBhZ2UgfHwNCisJCQkg ICAgaW5vZGUtPmlfb3AtPmZsdXNocGFnZShpbm9kZSwgcGFnZSwgMCkpDQor CQkJCWxydV9jYWNoZV9kZWwocGFnZSk7DQogDQogCQkJLyoNCiAJCQkgKiBX ZSByZW1vdmUgdGhlIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQ0KQEAgLTIx Niw4MSArMjI1LDYxIEBADQogDQogaW50IHNocmlua19tbWFwKGludCBwcmlv cml0eSwgaW50IGdmcF9tYXNrKQ0KIHsNCi0Jc3RhdGljIHVuc2lnbmVkIGxv bmcgY2xvY2sgPSAwOw0KLQl1bnNpZ25lZCBsb25nIGxpbWl0ID0gbnVtX3Bo eXNwYWdlcyA8PCAxOw0KKwlpbnQgcmV0ID0gMCwgY291bnQ7DQorCUxJU1Rf SEVBRCh5b3VuZyk7DQorCUxJU1RfSEVBRChvbGQpOw0KKwlMSVNUX0hFQUQo Zm9yZ2V0KTsNCisJc3RydWN0IGxpc3RfaGVhZCAqIHBhZ2VfbHJ1LCAqIGRp c3Bvc2U7DQogCXN0cnVjdCBwYWdlICogcGFnZTsNCi0JaW50IGNvdW50LCB1 c2VyczsNCiANCi0JY291bnQgPSBsaW1pdCA+PiBwcmlvcml0eTsNCisJY291 bnQgPSBucl9scnVfcGFnZXMgLyAocHJpb3JpdHkrMSk7DQogDQotCXBhZ2Ug PSBtZW1fbWFwICsgY2xvY2s7DQotCWRvIHsNCi0JCWludCByZWZlcmVuY2Vk Ow0KKwlzcGluX2xvY2soJnBhZ2VtYXBfbHJ1X2xvY2spOw0KIA0KLQkJLyog VGhpcyB3b3JrcyBldmVuIGluIHRoZSBwcmVzZW5jZSBvZiBQYWdlU2tpcCBi ZWNhdXNlDQotCQkgKiB0aGUgZmlyc3QgdHdvIGVudHJpZXMgYXQgdGhlIGJl Z2lubmluZyBvZiBhIGhvbGUgd2lsbA0KLQkJICogYmUgbWFya2VkLCBub3Qg anVzdCB0aGUgZmlyc3QuDQotCQkgKi8NCi0JCXBhZ2UrKzsNCi0JCWNsb2Nr Kys7DQotCQlpZiAoY2xvY2sgPj0gbWF4X21hcG5yKSB7DQotCQkJY2xvY2sg PSAwOw0KLQkJCXBhZ2UgPSBtZW1fbWFwOw0KLQkJfQ0KLQkJaWYgKFBhZ2VT a2lwKHBhZ2UpKSB7DQotCQkJLyogbmV4dF9oYXNoIGlzIG92ZXJsb2FkZWQg Zm9yIFBhZ2VTa2lwICovDQotCQkJcGFnZSA9IHBhZ2UtPm5leHRfaGFzaDsN Ci0JCQljbG9jayA9IHBhZ2UgLSBtZW1fbWFwOw0KLQkJfQ0KLQkJDQotCQly ZWZlcmVuY2VkID0gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlZmVyZW5jZWQs ICZwYWdlLT5mbGFncyk7DQorCXdoaWxlIChjb3VudCA+IDAgJiYgKHBhZ2Vf bHJ1ID0gbHJ1X2NhY2hlLnByZXYpICE9ICZscnVfY2FjaGUpDQorCXsNCisJ CXBhZ2UgPSBsaXN0X2VudHJ5KHBhZ2VfbHJ1LCBzdHJ1Y3QgcGFnZSwgbHJ1 KTsNCisJCWxpc3RfZGVsKHBhZ2VfbHJ1KTsNCisNCisJCWRpc3Bvc2UgPSAm bHJ1X2NhY2hlOw0KKwkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChQR19yZWZl cmVuY2VkLCAmcGFnZS0+ZmxhZ3MpKQ0KKwkJCS8qIFJvbGwgdGhlIHBhZ2Ug YXQgdGhlIHRvcCBvZiB0aGUgbHJ1IGxpc3QsDQorCQkJICogd2UgY291bGQg YWxzbyBiZSBtb3JlIGFnZ3Jlc3NpdmUgcHV0dGluZw0KKwkJCSAqIHRoZSBw YWdlIGluIHRoZSB5b3VuZy1kaXNwb3NlLWxpc3QsIHNvDQorCQkJICogYXZv aWRpbmcgdG8gZnJlZSB5b3VuZyBwYWdlcyBpbiBlYWNoIHBhc3MuDQorCQkJ ICovDQorCQkJZ290byBkaXNwb3NlX2NvbnRpbnVlOw0KIA0KKwkJZGlzcG9z ZSA9ICZvbGQ7DQorCQkvKiBkb24ndCBhY2NvdW50IHBhc3NlcyBvdmVyIG5v dCBETUEgcGFnZXMgKi8NCiAJCWlmICgoZ2ZwX21hc2sgJiBfX0dGUF9ETUEp ICYmICFQYWdlRE1BKHBhZ2UpKQ0KLQkJCWNvbnRpbnVlOw0KKwkJCWdvdG8g ZGlzcG9zZV9jb250aW51ZTsNCiANCiAJCWNvdW50LS07DQogDQotCQkvKg0K LQkJICogU29tZSBjb21tb24gY2FzZXMgdGhhdCB3ZSBqdXN0IHNob3J0LWNp cmN1aXQgd2l0aG91dA0KLQkJICogZ2V0dGluZyB0aGUgbG9ja3MgLSB3ZSBu ZWVkIHRvIHJlLWNoZWNrIHRoaXMgb25jZSB3ZQ0KLQkJICogaGF2ZSB0aGUg bG9jaywgYnV0IHRoYXQncyBmaW5lLg0KLQkJICovDQotCQl1c2VycyA9IHBh Z2VfY291bnQocGFnZSk7DQotCQlpZiAoIXVzZXJzKQ0KLQkJCWNvbnRpbnVl Ow0KLQkJaWYgKCFwYWdlLT5idWZmZXJzKSB7DQotCQkJaWYgKCFwYWdlLT5p bm9kZSkNCi0JCQkJY29udGludWU7DQotCQkJaWYgKHVzZXJzID4gMSkNCi0J CQkJY29udGludWU7DQotCQl9DQotDQotCQkvKg0KLQkJICogb2ssIG5vdyB0 aGUgcGFnZSBsb29rcyBpbnRlcmVzdGluZy4gUmUtY2hlY2sgdGhpbmdzDQot CQkgKiBhbmQga2VlcCB0aGUgbG9jay4NCi0JCSAqLw0KKwkJZGlzcG9zZSA9 ICZ5b3VuZzsNCisJCWlmIChUcnlMb2NrUGFnZShwYWdlKSkNCisJCQlnb3Rv IGRpc3Bvc2VfY29udGludWU7DQorDQorCQkvKiBSZWxlYXNlIHRoZSBwYWdl bWFwX2xydSBsb2NrIGV2ZW4gaWYgdGhlIHBhZ2UgaXMgbm90IHlldA0KKwkJ ICAgcXVldWVkIGluIGFueSBscnUgcXVldWUgc2luY2Ugd2UgaGF2ZSBqdXN0 IGxvY2tlZCBkb3duDQorCQkgICB0aGUgcGFnZSBzbyBub2JvZHkgZWxzZSBt YXkgU01QIHJhY2Ugd2l0aCB1cyBydW5uaW5nDQorCQkgICBhIGxydV9jYWNo ZV9kZWwoKSAobHJ1X2NhY2hlX2RlbCgpIGFsd2F5cyBydW4gd2l0aCB0aGUN CisJCSAgIHBhZ2UgbG9ja2VkIGRvd24gOykuICovDQorCQlzcGluX3VubG9j aygmcGFnZW1hcF9scnVfbG9jayk7DQorDQorCQkvKiBhdm9pZCB1bnNjYWxh YmxlIFNNUCBsb2NraW5nICovDQorCQlpZiAoIXBhZ2UtPmJ1ZmZlcnMgJiYg cGFnZV9jb3VudChwYWdlKSA+IDEpDQorCQkJZ290byB1bmxvY2tfbm9wdXRf Y29udGludWU7DQorDQorCQkvKiBUYWtlIHRoZSBwYWdlY2FjaGVfbG9jayBz cGlubG9jayBoZWxkIHRvIGF2b2lkDQorCQkgICBvdGhlciB0YXNrcyB0byBu b3RpY2UgdGhlIHBhZ2Ugd2hpbGUgd2UgYXJlIGxvb2tpbmcgYXQgaXRzDQor CQkgICBwYWdlIGNvdW50LiBJZiBpdCdzIGEgcGFnZWNhY2hlLXBhZ2Ugd2Un bGwgZnJlZSBpdA0KKwkJICAgaW4gb25lIGF0b21pYyB0cmFuc2FjdGlvbiBh ZnRlciBjaGVja2luZyBpdHMgcGFnZSBjb3VudC4gKi8NCiAJCXNwaW5fbG9j aygmcGFnZWNhY2hlX2xvY2spOw0KLQkJaWYgKCFwYWdlLT5pbm9kZSAmJiAh cGFnZS0+YnVmZmVycykgew0KLQkJCXNwaW5fdW5sb2NrKCZwYWdlY2FjaGVf bG9jayk7DQotCQkJY29udGludWU7DQotCQl9DQotCQlpZiAoIXBhZ2VfY291 bnQocGFnZSkpIHsNCi0JCQlzcGluX3VubG9jaygmcGFnZWNhY2hlX2xvY2sp Ow0KLQkJCUJVRygpOw0KLQkJCWNvbnRpbnVlOw0KLQkJfQ0KLQkJZ2V0X3Bh Z2UocGFnZSk7DQotCQlpZiAoVHJ5TG9ja1BhZ2UocGFnZSkpIHsNCi0JCQlz cGluX3VubG9jaygmcGFnZWNhY2hlX2xvY2spOw0KLQkJCWdvdG8gcHV0X2Nv bnRpbnVlOw0KLQkJfQ0KIA0KLQkJLyoNCi0JCSAqIHdlIGtlZXAgcGFnZWNh Y2hlX2xvY2sgbG9ja2VkIGFuZCB1bmxvY2sgaXQgaW4NCi0JCSAqIGVhY2gg YnJhbmNoLCBzbyB0aGF0IHRoZSBwYWdlLT5pbm9kZSBjYXNlIGRvZXNudA0K LQkJICogaGF2ZSB0byByZS1ncmFiIGl0LiBIZXJlIGNvbWVzIHRoZSAncmVh bCcgbG9naWMNCi0JCSAqIHRvIGZyZWUgbWVtb3J5Og0KLQkJICovDQorCQkv KiBhdm9pZCBmcmVlaW5nIHRoZSBwYWdlIHdoaWxlIGl0J3MgbG9ja2VkICov DQorCQlnZXRfcGFnZShwYWdlKTsNCiANCiAJCS8qIElzIGl0IGEgYnVmZmVy IHBhZ2U/ICovDQogCQlpZiAocGFnZS0+YnVmZmVycykgew0KQEAgLTMwMSw3 ICsyOTAsNyBAQA0KIAkJCWlmICghcGFnZS0+aW5vZGUpDQogCQkJew0KIAkJ CQlhdG9taWNfc3ViKFBBR0VfQ0FDSEVfU0laRSwgJmJ1ZmZlcm1lbSk7DQot CQkJCWdvdG8gbWFkZV9wcm9ncmVzczsNCisJCQkJZ290byBtYWRlX2J1ZmZl cl9wcm9ncmVzczsNCiAJCQl9DQogCQkJc3Bpbl9sb2NrKCZwYWdlY2FjaGVf bG9jayk7DQogCQl9DQpAQCAtMzExLDcgKzMwMCw3IEBADQogCQkgKiAoY291 bnQgPT0gMiBiZWNhdXNlIHdlIGFkZGVkIG9uZSBvdXJzZWx2ZXMgYWJvdmUp Lg0KIAkJICovDQogCQlpZiAocGFnZV9jb3VudChwYWdlKSAhPSAyKQ0KLQkJ CWdvdG8gc3Bpbl91bmxvY2tfY29udGludWU7DQorCQkJZ290byBjYWNoZV91 bmxvY2tfY29udGludWU7DQogDQogCQkvKg0KIAkJICogSXMgaXQgYSBwYWdl IHN3YXAgcGFnZT8gSWYgc28sIHdlIHdhbnQgdG8NCkBAIC0zMjAsMzUgKzMw OSw2OCBAQA0KIAkJICovDQogCQlpZiAoUGFnZVN3YXBDYWNoZShwYWdlKSkg ew0KIAkJCXNwaW5fdW5sb2NrKCZwYWdlY2FjaGVfbG9jayk7DQotCQkJaWYg KHJlZmVyZW5jZWQgJiYgc3dhcF9jb3VudChwYWdlLT5vZmZzZXQpICE9IDIp DQotCQkJCWdvdG8gdW5sb2NrX2NvbnRpbnVlOw0KIAkJCV9fZGVsZXRlX2Zy b21fc3dhcF9jYWNoZShwYWdlKTsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2Uo cGFnZSk7DQotCQkJZ290byBtYWRlX3Byb2dyZXNzOw0KKwkJCWdvdG8gbWFk ZV9pbm9kZV9wcm9ncmVzczsNCiAJCX0JDQogDQogCQkvKiBpcyBpdCBhIHBh Z2UtY2FjaGUgcGFnZT8gKi8NCi0JCWlmICghcmVmZXJlbmNlZCAmJiBwYWdl LT5pbm9kZSAmJiAhcGdjYWNoZV91bmRlcl9taW4oKSkgew0KLQkJCXJlbW92 ZV9wYWdlX2Zyb21faW5vZGVfcXVldWUocGFnZSk7DQotCQkJcmVtb3ZlX3Bh Z2VfZnJvbV9oYXNoX3F1ZXVlKHBhZ2UpOw0KLQkJCXBhZ2UtPmlub2RlID0g TlVMTDsNCi0JCQlzcGluX3VubG9jaygmcGFnZWNhY2hlX2xvY2spOw0KLQ0K LQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCi0JCQlnb3RvIG1hZGVf cHJvZ3Jlc3M7DQorCQlpZiAocGFnZS0+aW5vZGUpDQorCQl7DQorCQkJZGlz cG9zZSA9ICZvbGQ7DQorCQkJaWYgKCFwZ2NhY2hlX3VuZGVyX21pbigpKQ0K KwkJCXsNCisJCQkJcmVtb3ZlX3BhZ2VfZnJvbV9pbm9kZV9xdWV1ZShwYWdl KTsNCisJCQkJcmVtb3ZlX3BhZ2VfZnJvbV9oYXNoX3F1ZXVlKHBhZ2UpOw0K KwkJCQlwYWdlLT5pbm9kZSA9IE5VTEw7DQorCQkJCXNwaW5fdW5sb2NrKCZw YWdlY2FjaGVfbG9jayk7DQorCQkJCWdvdG8gbWFkZV9pbm9kZV9wcm9ncmVz czsNCisJCQl9DQorCQkJZ290byBjYWNoZV91bmxvY2tfY29udGludWU7DQog CQl9DQotc3Bpbl91bmxvY2tfY29udGludWU6DQorDQorCQlkaXNwb3NlID0g JmZvcmdldDsNCisJCXByaW50ayhLRVJOX0VSUiAic2hyaW5rX21tYXA6IHVu a25vd24gTFJVIHBhZ2UhXG4iKTsNCisNCitjYWNoZV91bmxvY2tfY29udGlu dWU6DQogCQlzcGluX3VubG9jaygmcGFnZWNhY2hlX2xvY2spOw0KIHVubG9j a19jb250aW51ZToNCiAJCVVubG9ja1BhZ2UocGFnZSk7DQotcHV0X2NvbnRp bnVlOg0KIAkJcHV0X3BhZ2UocGFnZSk7DQotCX0gd2hpbGUgKGNvdW50ID4g MCk7DQotCXJldHVybiAwOw0KLW1hZGVfcHJvZ3Jlc3M6DQorZGlzcG9zZV9y ZWxvY2tfY29udGludWU6DQorCQkvKiBldmVuIGlmIHRoZSBkaXNwb3NlIGxp c3QgaXMgbG9jYWwsIGEgdHJ1bmNhdGVfaW5vZGVfcGFnZSgpDQorCQkgICBt YXkgcmVtb3ZlIGEgcGFnZSBmcm9tIGl0cyBxdWV1ZSBzbyBhbHdheXMNCisJ CSAgIHN5bmNocm9uaXplIHdpdGggdGhlIGxydSBsb2NrIHdoaWxlIGFjY2Vz aW5nIHRoZQ0KKwkJICAgcGFnZS0+bHJ1IGZpZWxkICovDQorCQlzcGluX2xv Y2soJnBhZ2VtYXBfbHJ1X2xvY2spOw0KKwkJbGlzdF9hZGQocGFnZV9scnUs IGRpc3Bvc2UpOw0KKwkJY29udGludWU7DQorDQordW5sb2NrX25vcHV0X2Nv bnRpbnVlOg0KKwkJVW5sb2NrUGFnZShwYWdlKTsNCisJCWdvdG8gZGlzcG9z ZV9yZWxvY2tfY29udGludWU7DQorDQorZGlzcG9zZV9jb250aW51ZToNCisJ CWxpc3RfYWRkKHBhZ2VfbHJ1LCBkaXNwb3NlKTsNCisJfQ0KKwlnb3RvIG91 dDsNCisNCittYWRlX2lub2RlX3Byb2dyZXNzOg0KKwlwYWdlX2NhY2hlX3Jl bGVhc2UocGFnZSk7DQorbWFkZV9idWZmZXJfcHJvZ3Jlc3M6DQogCVVubG9j a1BhZ2UocGFnZSk7DQogCXB1dF9wYWdlKHBhZ2UpOw0KLQlyZXR1cm4gMTsN CisJcmV0ID0gMTsNCisJc3Bpbl9sb2NrKCZwYWdlbWFwX2xydV9sb2NrKTsN CisJLyogbnJfbHJ1X3BhZ2VzIG5lZWRzIHRoZSBzcGlubG9jayAqLw0KKwlu cl9scnVfcGFnZXMtLTsNCisNCitvdXQ6DQorCWxpc3Rfc3BsaWNlKCZ5b3Vu ZywgJmxydV9jYWNoZSk7DQorCWxpc3Rfc3BsaWNlKCZvbGQsIGxydV9jYWNo ZS5wcmV2KTsNCisNCisJc3Bpbl91bmxvY2soJnBhZ2VtYXBfbHJ1X2xvY2sp Ow0KKw0KKwlyZXR1cm4gcmV0Ow0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHN0 cnVjdCBwYWdlICogX19maW5kX3BhZ2Vfbm9sb2NrKHN0cnVjdCBpbm9kZSAq IGlub2RlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgc3RydWN0IHBhZ2UgKnBh Z2UpDQpAQCAtNDY1LDEzICs0ODcsMTQgQEANCiB7DQogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7DQogDQotCWZsYWdzID0gcGFnZS0+ZmxhZ3MgJiB+KCgxIDw8 IFBHX3VwdG9kYXRlKSB8ICgxIDw8IFBHX2Vycm9yKSk7DQotCXBhZ2UtPmZs YWdzID0gZmxhZ3MgfCAgKCgxIDw8IFBHX2xvY2tlZCkgfCAoMSA8PCBQR19y ZWZlcmVuY2VkKSk7DQorCWZsYWdzID0gcGFnZS0+ZmxhZ3MgJiB+KCgxIDw8 IFBHX3VwdG9kYXRlKSB8ICgxIDw8IFBHX2Vycm9yKSB8ICgxIDw8IFBHX3Jl ZmVyZW5jZWQpKTsNCisJcGFnZS0+ZmxhZ3MgPSBmbGFncyB8ICgxIDw8IFBH X2xvY2tlZCk7DQogCXBhZ2UtPm93bmVyID0gY3VycmVudDsJLyogUkVNT1ZF TUUgKi8NCiAJZ2V0X3BhZ2UocGFnZSk7DQogCXBhZ2UtPm9mZnNldCA9IG9m ZnNldDsNCiAJYWRkX3BhZ2VfdG9faW5vZGVfcXVldWUoaW5vZGUsIHBhZ2Up Ow0KIAlfX2FkZF9wYWdlX3RvX2hhc2hfcXVldWUocGFnZSwgaGFzaCk7DQor CWxydV9jYWNoZV9hZGQocGFnZSk7DQogfQ0KIA0KIHZvaWQgYWRkX3RvX3Bh Z2VfY2FjaGUoc3RydWN0IHBhZ2UgKiBwYWdlLCBzdHJ1Y3QgaW5vZGUgKiBp bm9kZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpDQpkaWZmIC11ck4gMi4zLjEz LXByZTgvbW0vcGFnZV9hbGxvYy5jIDIuMy4xMy1wcmU4LWxydS9tbS9wYWdl X2FsbG9jLmMNCi0tLSAyLjMuMTMtcHJlOC9tbS9wYWdlX2FsbG9jLmMJVHVl IEp1bCAxMyAwMjowMjo0MCAxOTk5DQorKysgMi4zLjEzLXByZTgtbHJ1L21t L3BhZ2VfYWxsb2MuYwlTdW4gQXVnICA4IDIwOjA4OjE5IDE5OTkNCkBAIC0y MCw2ICsyMCw4IEBADQogDQogaW50IG5yX3N3YXBfcGFnZXMgPSAwOw0KIGlu dCBucl9mcmVlX3BhZ2VzID0gMDsNCitpbnQgbnJfbHJ1X3BhZ2VzOw0KK0xJ U1RfSEVBRChscnVfY2FjaGUpOw0KIA0KIC8qDQogICogRnJlZSBhcmVhIG1h bmFnZW1lbnQNCkBAIC0xMjcsNyArMTI5LDYgQEANCiAJCWlmIChQYWdlTG9j a2VkKHBhZ2UpKQ0KIAkJCVBBR0VfQlVHKHBhZ2UpOw0KIA0KLQkJcGFnZS0+ ZmxhZ3MgJj0gfigxIDw8IFBHX3JlZmVyZW5jZWQpOw0KIAkJZnJlZV9wYWdl c19vayhwYWdlIC0gbWVtX21hcCwgMCk7DQogCQlyZXR1cm4gMTsNCiAJfQ0K QEAgLTE0NSw3ICsxNDYsNiBAQA0KIAkJCQlQQUdFX0JVRyhtYXApOw0KIAkJ CWlmIChQYWdlTG9ja2VkKG1hcCkpDQogCQkJCVBBR0VfQlVHKG1hcCk7DQot CQkJbWFwLT5mbGFncyAmPSB+KDEgPDwgUEdfcmVmZXJlbmNlZCk7DQogCQkJ ZnJlZV9wYWdlc19vayhtYXBfbnIsIG9yZGVyKTsNCiAJCQlyZXR1cm4gMTsN CiAJCX0NCkBAIC0yNjksOCArMjY5LDkgQEANCiAgCXVuc2lnbmVkIGxvbmcg dG90YWwgPSAwOw0KIA0KIAlwcmludGsoIkZyZWUgcGFnZXM6ICAgICAgJTZk a0JcbiAoICIsbnJfZnJlZV9wYWdlczw8KFBBR0VfU0hJRlQtMTApKTsNCi0J cHJpbnRrKCJGcmVlOiAlZCAoJWQgJWQgJWQpXG4iLA0KKwlwcmludGsoIkZy ZWU6ICVkLCBscnVfY2FjaGU6ICVkICglZCAlZCAlZClcbiIsDQogCQlucl9m cmVlX3BhZ2VzLA0KKwkJbnJfbHJ1X3BhZ2VzLA0KIAkJZnJlZXBhZ2VzLm1p biwNCiAJCWZyZWVwYWdlcy5sb3csDQogCQlmcmVlcGFnZXMuaGlnaCk7DQpk aWZmIC11ck4gMi4zLjEzLXByZTgvbW0vc3dhcF9zdGF0ZS5jIDIuMy4xMy1w cmU4LWxydS9tbS9zd2FwX3N0YXRlLmMNCi0tLSAyLjMuMTMtcHJlOC9tbS9z d2FwX3N0YXRlLmMJVHVlIEp1bCAxMyAwMjowMjoxMCAxOTk5DQorKysgMi4z LjEzLXByZTgtbHJ1L21tL3N3YXBfc3RhdGUuYwlTdW4gQXVnICA4IDIwOjA4 OjE5IDE5OTkNCkBAIC0yMTQsOCArMjE0LDYgQEANCiAJCSAgIHBhZ2VfYWRk cmVzcyhwYWdlKSwgcGFnZV9jb3VudChwYWdlKSk7DQogI2VuZGlmDQogCVBh Z2VDbGVhclN3YXBDYWNoZShwYWdlKTsNCi0JaWYgKGlub2RlLT5pX29wLT5m bHVzaHBhZ2UpDQotCQlpbm9kZS0+aV9vcC0+Zmx1c2hwYWdlKGlub2RlLCBw YWdlLCAwKTsNCiAJcmVtb3ZlX2lub2RlX3BhZ2UocGFnZSk7DQogfQ0KIA0K QEAgLTIzOSw2ICsyMzcsMTUgQEANCiAJc3dhcF9mcmVlIChlbnRyeSk7DQog fQ0KIA0KK3N0YXRpYyB2b2lkIGRlbGV0ZV9mcm9tX3N3YXBfY2FjaGVfbm9s b2NrKHN0cnVjdCBwYWdlICpwYWdlKQ0KK3sNCisJaWYgKCFzd2FwcGVyX2lu b2RlLmlfb3AtPmZsdXNocGFnZSB8fA0KKwkgICAgc3dhcHBlcl9pbm9kZS5p X29wLT5mbHVzaHBhZ2UoJnN3YXBwZXJfaW5vZGUsIHBhZ2UsIDApKQ0KKwkJ bHJ1X2NhY2hlX2RlbChwYWdlKTsNCisNCisJX19kZWxldGVfZnJvbV9zd2Fw X2NhY2hlKHBhZ2UpOw0KK30NCisNCiAvKg0KICAqIFRoaXMgbXVzdCBiZSBj YWxsZWQgb25seSBvbiBwYWdlcyB0aGF0IGhhdmUNCiAgKiBiZWVuIHZlcmlm aWVkIHRvIGJlIGluIHRoZSBzd2FwIGNhY2hlLg0KQEAgLTI0Nyw3ICsyNTQs NyBAQA0KIHsNCiAJbG9ja19wYWdlKHBhZ2UpOw0KIA0KLQlfX2RlbGV0ZV9m cm9tX3N3YXBfY2FjaGUocGFnZSk7DQorCWRlbGV0ZV9mcm9tX3N3YXBfY2Fj aGVfbm9sb2NrKHBhZ2UpOw0KIA0KIAlVbmxvY2tQYWdlKHBhZ2UpOw0KIAlw YWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQpAQCAtMjY3LDkgKzI3NCw3IEBA DQogCSAqLw0KIAlsb2NrX3BhZ2UocGFnZSk7DQogCWlmIChQYWdlU3dhcENh Y2hlKHBhZ2UpICYmICFpc19wYWdlX3NoYXJlZChwYWdlKSkgew0KLQkJbG9u ZyBlbnRyeSA9IHBhZ2UtPm9mZnNldDsNCi0JCXJlbW92ZV9mcm9tX3N3YXBf Y2FjaGUocGFnZSk7DQotCQlzd2FwX2ZyZWUoZW50cnkpOw0KKwkJZGVsZXRl X2Zyb21fc3dhcF9jYWNoZV9ub2xvY2socGFnZSk7DQogCQlwYWdlX2NhY2hl X3JlbGVhc2UocGFnZSk7DQogCX0NCiAJVW5sb2NrUGFnZShwYWdlKTsNCmRp ZmYgLXVyTiAyLjMuMTMtcHJlOC9tbS92bXNjYW4uYyAyLjMuMTMtcHJlOC1s cnUvbW0vdm1zY2FuLmMNCi0tLSAyLjMuMTMtcHJlOC9tbS92bXNjYW4uYwlT dW4gQXVnICA4IDE3OjIxOjQxIDE5OTkNCisrKyAyLjMuMTMtcHJlOC1scnUv bW0vdm1zY2FuLmMJU3VuIEF1ZyAgOCAyMDoxMTo0MiAxOTk5DQpAQCAtMzE5 LDcgKzMxOSw5IEBADQogew0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwOw0K IAlpbnQgY291bnRlcjsNCisJaW50IF9fcmV0ID0gMDsNCiANCisJbG9ja19r ZXJuZWwoKTsNCiAJLyogDQogCSAqIFdlIG1ha2Ugb25lIG9yIHR3byBwYXNz ZXMgdGhyb3VnaCB0aGUgdGFzayBsaXN0LCBpbmRleGVkIGJ5IA0KIAkgKiBh c3NpZ24gPSB7MCwgMX06DQpAQCAtMzgyLDExICszODQsMTMgQEANCiANCiAJ CQlpZiAocmV0IDwgMCkNCiAJCQkJa2lsbF9wcm9jKHBpZCwgU0lHQlVTLCAx KTsNCi0JCQlyZXR1cm4gMTsNCisJCQlfX3JldCA9IDE7DQorCQkJZ290byBv dXQ7DQogCQl9DQogCX0NCiBvdXQ6DQotCXJldHVybiAwOw0KKwl1bmxvY2tf a2VybmVsKCk7DQorCXJldHVybiBfX3JldDsNCiB9DQogDQogLyoNCkBAIC00 MDMsOCArNDA3LDYgQEANCiAJaW50IHByaW9yaXR5Ow0KIAlpbnQgY291bnQg PSBTV0FQX0NMVVNURVJfTUFYOw0KIA0KLQlsb2NrX2tlcm5lbCgpOw0KLQ0K IAkvKiBBbHdheXMgdHJpbSBTTEFCIGNhY2hlcyB3aGVuIG1lbW9yeSBnZXRz IGxvdy4gKi8NCiAJa21lbV9jYWNoZV9yZWFwKGdmcF9tYXNrKTsNCiANCkBA IC00MzIsNyArNDM0LDYgQEANCiAJCXNocmlua19kY2FjaGVfbWVtb3J5KHBy aW9yaXR5LCBnZnBfbWFzayk7DQogCX0gd2hpbGUgKC0tcHJpb3JpdHkgPj0g MCk7DQogZG9uZToNCi0JdW5sb2NrX2tlcm5lbCgpOw0KIA0KIAlyZXR1cm4g cHJpb3JpdHkgPj0gMDsNCiB9DQo= ---1463811840-504741333-934137298=:29734-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://humbolt.geo.uu.nl/Linux-MM/