From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail144.messagelabs.com (mail144.messagelabs.com [216.82.254.51]) by kanga.kvack.org (Postfix) with SMTP id 84ED46B0105 for ; Thu, 28 Oct 2010 23:53:21 -0400 (EDT) Received: by qyk4 with SMTP id 4so2801552qyk.14 for ; Thu, 28 Oct 2010 20:53:19 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20101026190458.4e1c0d98.kamezawa.hiroyu@jp.fujitsu.com> References: <20101026190042.57f30338.kamezawa.hiroyu@jp.fujitsu.com> <20101026190458.4e1c0d98.kamezawa.hiroyu@jp.fujitsu.com> Date: Fri, 29 Oct 2010 11:53:18 +0800 Message-ID: Subject: Re: [RFC][PATCH 2/3] a help function for find physically contiguous block. From: Bob Liu Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Sender: owner-linux-mm@kvack.org To: KAMEZAWA Hiroyuki Cc: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "minchan.kim@gmail.com" , andi.kleen@intel.com, KOSAKI Motohiro , fujita.tomonori@lab.ntt.co.jp, felipe.contreras@gmail.com List-ID: T24gVHVlLCBPY3QgMjYsIDIwMTAgYXQgNjowNCBQTSwgS0FNRVpBV0EgSGlyb3l1a2kKPGthbWV6 YXdhLmhpcm95dUBqcC5mdWppdHN1LmNvbT4gd3JvdGU6Cj4gRnJvbTogS0FNRVpBV0EgSGlyb3l1 a2kgPGthbWV6YXdhLmhpcm95dUBqcC5mdWppdHN1LmNvbT4KPgo+IFVubGlrZSBtZW1vcnkgaG90 cGx1ZywgYXQgYW4gYWxsb2NhdGlvbiBvZiBjb250aWdvdXMgbWVtb3J5IHJhbmdlLCBhZGRyZXNz Cj4gbWF5IG5vdCBiZSBhIHByb2JsZW0uIElPVywgaWYgYSByZXF1ZXN0ZXIgb2YgbWVtb3J5IHdh bnRzIHRvIGFsbG9jYXRlIDEwME0gb2YKPiBvZiBjb250aWdvdXMgbWVtb3J5LCBwbGFjZW1lbnQg b2YgYWxsb2NhdGVkIG1lbW9yeSBtYXkgbm90IGJlIGEgcHJvYmxlbS4KPiBTbywgImZpbmRpbmcg YSByYW5nZSBvZiBtZW1vcnkgd2hpY2ggc2VlbXMgdG8gYmUgTU9WQUJMRSIgaXMgcmVxdWlyZWQu Cj4KPiBUaGlzIHBhdGNoIGFkZHMgYSBmdW5jdG9uIHRvIGlzb2xhdGUgYSBsZW5ndGggb2YgbWVt b3J5IHdpdGhpbiBbc3RhcnQsIGVuZCkuCj4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgcGZuIHdo aWNoIGlzIDFzdCBwYWdlIG9mIGlzb2xhdGVkIGNvbnRpZ291cyBjaHVuawo+IG9mIGdpdmVuIGxl bmd0aCB3aXRoaW4gW3N0YXJ0LCBlbmQpLgo+Cj4gQWZ0ZXIgaXNvbGF0aW9uLCBmcmVlIG1lbW9y eSB3aXRoaW4gdGhpcyBhcmVhIHdpbGwgbmV2ZXIgYmUgYWxsb2NhdGVkLgo+IEJ1dCBzb21lIHBh Z2VzIHdpbGwgcmVtYWluIGFzICJVc2VkL0xSVSIgcGFnZXMuIFRoZXkgc2hvdWxkIGJlIGRyb3Bw ZWQgYnkKPiBwYWdlIHJlY2xhaW0gb3IgbWlncmF0aW9uLgo+Cj4gQ2hhbmdlbG9nOgo+IMKgLSB6 b25lIGlzIGFkZGVkIHRvIHRoZSBhcmd1bWVudC4KPiDCoC0gZml4ZWQgYSBjYXNlIHRoYXQgem9u ZXMgYXJlIG5vdCBpbiBsaW5lYXIuCj4gwqAtIGFkZGVkIHpvbmUtPmxvY2suCj4KPgo+IFNpZ25l ZC1vZmYtYnk6IEtBTUVaQVdBIEhpcm95dWtpIDxrYW1lemF3YS5oaXJveXVAanAuZnVqaXRzdS5j b20+Cj4gLS0tCj4gwqBtbS9wYWdlX2lzb2xhdGlvbi5jIHwgwqAxNDggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IMKgMSBmaWxlIGNoYW5nZWQs IDE0OCBpbnNlcnRpb25zKCspCj4KPiBJbmRleDogbW1vdG0tMTAyNC9tbS9wYWdlX2lzb2xhdGlv bi5jCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQo+IC0tLSBtbW90bS0xMDI0Lm9yaWcvbW0vcGFnZV9pc29sYXRpb24u Ywo+ICsrKyBtbW90bS0xMDI0L21tL3BhZ2VfaXNvbGF0aW9uLmMKPiBAQCAtNyw2ICs3LDcgQEAK PiDCoCNpbmNsdWRlIDxsaW51eC9wYWdlYmxvY2stZmxhZ3MuaD4KPiDCoCNpbmNsdWRlIDxsaW51 eC9tZW1jb250cm9sLmg+Cj4gwqAjaW5jbHVkZSA8bGludXgvbWlncmF0ZS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvbWVtb3J5X2hvdHBsdWcuaD4KPiDCoCNpbmNsdWRlIDxsaW51eC9tbV9pbmxpbmUu aD4KPiDCoCNpbmNsdWRlICJpbnRlcm5hbC5oIgo+Cj4gQEAgLTI1MCwzICsyNTEsMTUwIEBAIGlu dCBkb19taWdyYXRlX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQKPiDCoG91dDoKPiDCoCDCoCDC oCDCoHJldHVybiByZXQ7Cj4gwqB9Cj4gKwo+ICsvKgo+ICsgKiBGdW5jdGlvbnMgZm9yIGdldHRp bmcgY29udGlndW91cyBNT1ZBQkxFIHBhZ2VzIGluIGEgem9uZS4KPiArICovCj4gK3N0cnVjdCBw YWdlX3JhbmdlIHsKPiArIMKgIMKgIMKgIHVuc2lnbmVkIGxvbmcgYmFzZTsgLyogQmFzZSBhZGRy ZXNzIG9mIHNlYXJjaGluZyBjb250aWdvdW91cyBibG9jayAqLwo+ICsgwqAgwqAgwqAgdW5zaWdu ZWQgbG9uZyBlbmQ7Cj4gKyDCoCDCoCDCoCB1bnNpZ25lZCBsb25nIHBhZ2VzOy8qIExlbmd0aCBv ZiBjb250aWd1b3VzIGJsb2NrICovCj4gKyDCoCDCoCDCoCBpbnQgYWxpZ25fb3JkZXI7Cj4gKyDC oCDCoCDCoCB1bnNpZ25lZCBsb25nIGFsaWduX21hc2s7Cj4gK307Cj4gKwo+ICtpbnQgX19nZXRf Y29udGlnX2Jsb2NrKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCB2 b2lkICphcmcpCj4gK3sKPiArIMKgIMKgIMKgIHN0cnVjdCBwYWdlX3JhbmdlICpibG9ja2luZm8g PSBhcmc7Cj4gKyDCoCDCoCDCoCB1bnNpZ25lZCBsb25nIGVuZDsKPiArCj4gKyDCoCDCoCDCoCBl bmQgPSBwZm4gKyBucl9wYWdlczsKPiArIMKgIMKgIMKgIHBmbiA9IEFMSUdOKHBmbiwgMSA8PCBi bG9ja2luZm8tPmFsaWduX29yZGVyKTsKPiArIMKgIMKgIMKgIGVuZCA9IGVuZCAmIH4oTUFYX09S REVSX05SX1BBR0VTIC0gMSk7Cj4gKwo+ICsgwqAgwqAgwqAgaWYgKGVuZCA8IHBmbikKPiArIMKg IMKgIMKgIMKgIMKgIMKgIMKgIHJldHVybiAwOwo+ICsgwqAgwqAgwqAgaWYgKGVuZCAtIHBmbiA+ PSBibG9ja2luZm8tPnBhZ2VzKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBibG9ja2luZm8t PmJhc2UgPSBwZm47Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBibG9ja2luZm8tPmVuZCA9IGVu ZDsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJldHVybiAxOwo+ICsgwqAgwqAgwqAgfQo+ICsg wqAgwqAgwqAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fdHJpbV96b25lKHN0 cnVjdCB6b25lICp6b25lLCBzdHJ1Y3QgcGFnZV9yYW5nZSAqcmFuZ2UpCj4gK3sKPiArIMKgIMKg IMKgIHVuc2lnbmVkIGxvbmcgcGZuOwo+ICsgwqAgwqAgwqAgLyoKPiArIMKgIMKgIMKgIMKgKiBz a2lwIHBhZ2VzIHdoaWNoIGRvbmVzJ250IHVuZGVyIHRoZSB6b25lLgo+ICsgwqAgwqAgwqAgwqAq IFRoZXJlIGFyZSBzb21lIGFyY2hzIHdoaWNoIHpvbmVzIGFyZSBub3QgaW4gbGluZWFyIGxheW91 dC4KPiArIMKgIMKgIMKgIMKgKi8KPiArIMKgIMKgIMKgIGlmIChwYWdlX3pvbmUocGZuX3RvX3Bh Z2UocmFuZ2UtPmJhc2UpKSAhPSB6b25lKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBmb3Ig KHBmbiA9IHJhbmdlLT5iYXNlOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg cGZuIDwgcmFuZ2UtPmVuZDsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHBm biArPSBNQVhfT1JERVJfTlJfUEFHRVMpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIGlmIChwYWdlX3pvbmUocGZuX3RvX3BhZ2UocGZuKSkgPT0gem9uZSkKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+ICsgwqAgwqAg wqAgwqAgwqAgwqAgwqAgfQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmFuZ2UtPmJhc2UgPSBt aW4ocGZuLCByYW5nZS0+ZW5kKTsKPiArIMKgIMKgIMKgIH0KPiArIMKgIMKgIMKgIC8qIEhlcmUs IHJhbmdlLT4gYmFzZSBpcyBpbiB0aGUgem9uZSBpZiByYW5nZS0+YmFzZSAhPSByYW5nZS0+ZW5k ICovCj4gKyDCoCDCoCDCoCBmb3IgKHBmbiA9IHJhbmdlLT5iYXNlOwo+ICsgwqAgwqAgwqAgwqAg wqAgwqBwZm4gPCByYW5nZS0+ZW5kOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqBwZm4gKz0gTUFYX09S REVSX05SX1BBR0VTKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAoem9uZSAhPSBwYWdl X3pvbmUocGZuX3RvX3BhZ2UocGZuKSkpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIHBmbiA9IHBmbiAtIE1BWF9PUkRFUl9OUl9QQUdFUzsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+ICsg wqAgwqAgwqAgfQo+ICsgwqAgwqAgwqAgcmFuZ2UtPmVuZCA9IG1pbihwZm4sIHJhbmdlLT5lbmQp Owo+ICsgwqAgwqAgwqAgcmV0dXJuOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBUaGlzIGZ1bmN0aW9u IGlzIGZvciBmaW5kaW5nIGEgY29udGlndW91cyBtZW1vcnkgYmxvY2sgd2hpY2ggaGFzIGxlbmd0 aAo+ICsgKiBvZiBwYWdlcyBhbmQgTU9WQUJMRS4gSWYgaXQgZmluZHMsIG1ha2UgdGhlIHJhbmdl IG9mIHBhZ2VzIGFzIElTT0xBVEVECj4gKyAqIGFuZCByZXR1cm4gdGhlIGZpcnN0IHBhZ2UncyBw Zm4uCj4gKyAqIFRoaXMgY2hlY2tzIGFsbCBwYWdlcyBpbiB0aGUgcmV0dXJuZWQgcmFuZ2UgaXMg ZnJlZSBvZiBQZ19MUlUuIFRvIHJlZHVjZQo+ICsgKiB0aGUgcmlzayBvZiBmYWxzZS1wb3NpdGl2 ZSB0ZXN0aW5nLCBscnVfYWRkX2RyYWluX2FsbCgpIHNob3VsZCBiZSBjYWxsZWQKPiArICogYmVm b3JlIHRoaXMgZnVuY3Rpb24gdG8gcmVkdWNlIHBhZ2VzIG9uIHBhZ2V2ZWMgZm9yIHpvbmVzLgo+ ICsgKi8KPiArCj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZpbmRfY29udGlnX2Jsb2NrKHVuc2ln bmVkIGxvbmcgYmFzZSwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVuc2lnbmVkIGxvbmcgZW5k LCB1bnNpZ25lZCBsb25nIHBhZ2VzLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaW50IGFsaWdu X29yZGVyLCBzdHJ1Y3Qgem9uZSAqem9uZSkKPiArewo+ICsgwqAgwqAgwqAgdW5zaWduZWQgbG9u ZyBwZm4sIHBvczsKPiArIMKgIMKgIMKgIHN0cnVjdCBwYWdlX3JhbmdlIGJsb2NraW5mbzsKPiAr IMKgIMKgIMKgIGludCByZXQ7Cj4gKwo+ICsgwqAgwqAgwqAgVk1fQlVHX09OKHBhZ2VzICYgKE1B WF9PUkRFUl9OUl9QQUdFUyAtIDEpKTsKPiArIMKgIMKgIMKgIFZNX0JVR19PTihiYXNlICYgKCgx IDw8IGFsaWduX29yZGVyKSAtIDEpKTsKPiArcmV0cnk6Cj4gKyDCoCDCoCDCoCBibG9ja2luZm8u YmFzZSA9IGJhc2U7Cj4gKyDCoCDCoCDCoCBibG9ja2luZm8uZW5kID0gZW5kOwo+ICsgwqAgwqAg wqAgYmxvY2tpbmZvLnBhZ2VzID0gcGFnZXM7Cj4gKyDCoCDCoCDCoCBibG9ja2luZm8uYWxpZ25f b3JkZXIgPSBhbGlnbl9vcmRlcjsKPiArIMKgIMKgIMKgIGJsb2NraW5mby5hbGlnbl9tYXNrID0g KDEgPDwgYWxpZ25fb3JkZXIpIC0gMTsKPiArIMKgIMKgIMKgIC8qCj4gKyDCoCDCoCDCoCDCoCog QXQgZmlyc3QsIGNoZWNrIHBoeXNpY2FsIHBhZ2UgbGF5b3V0IGFuZCBza2lwIG1lbW9yeSBob2xl cy4KPiArIMKgIMKgIMKgIMKgKi8KPiArIMKgIMKgIMKgIHJldCA9IHdhbGtfc3lzdGVtX3JhbV9y YW5nZShiYXNlLCBlbmQgLSBiYXNlLCAmYmxvY2tpbmZvLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgX19nZXRfY29udGlnX2Jsb2NrKTsKPiArIMKgIMKgIMKgIGlmICghcmV0KQo+ICsgwqAgwqAg wqAgwqAgwqAgwqAgwqAgcmV0dXJuIDA7Cj4gKyDCoCDCoCDCoCAvKiBjaGVjayBjb250aWd1b3Vz IHBhZ2VzIGluIGEgem9uZSAqLwo+ICsgwqAgwqAgwqAgX190cmltX3pvbmUoem9uZSwgJmJsb2Nr aW5mbyk7Cj4gKwo+ICsgwqAgwqAgwqAgLyoKPiArIMKgIMKgIMKgIMKgKiBPaywgd2UgZm91bmQg Y29udGlndW91cyBtZW1vcnkgY2h1bmsgb2Ygc2l6ZS4gSXNvbGF0ZSBpdC4KPiArIMKgIMKgIMKg IMKgKiBXZSBqdXN0IHNlYXJjaCBNQVhfT1JERVIgYWxpZ25lZCByYW5nZS4KPiArIMKgIMKgIMKg IMKgKi8KPiArIMKgIMKgIMKgIGZvciAocGZuID0gYmxvY2tpbmZvLmJhc2U7IHBmbiArIHBhZ2Vz IDw9IGJsb2NraW5mby5lbmQ7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoHBmbiArPSAoMSA8PCBhbGln bl9vcmRlcikpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN0cnVjdCB6b25lICp6ID0gcGFn ZV96b25lKHBmbl90b19wYWdlKHBmbikpOwo+ICsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHNw aW5fbG9ja19pcnEoJnotPmxvY2spOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcG9zID0gcGZu Owo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyoKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg KiBDaGVjayB0aGUgcmFuZ2Ugb25seSBjb250YWlucyBmcmVlIHBhZ2VzIG9yIExSVSBwYWdlcy4K PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKi8KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHdo aWxlIChwb3MgPCBwZm4gKyBwYWdlcykgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgc3RydWN0IHBhZ2UgKnA7Cj4gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgaWYgKCFwZm5fdmFsaWRfd2l0aGluKHBvcykpCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBicmVhazsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIHAgPSBwZm5fdG9fcGFnZShwb3MpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgaWYgKFBhZ2VSZXNlcnZlZChwKSkKPiArIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgaWYgKCFwYWdlX2NvdW50KHApKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAoIVBhZ2VCdWRkeShwKSkKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHBvcysr Owo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZWxzZSBp ZiAoUGFnZUJ1ZGR5KHApKSB7CgpqdXN0IGVsc2UgaXMgb2theT8KCj4gKyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpbnQgb3JkZXIgPSBw YWdlX29yZGVyKHApOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgcG9zICs9ICgxIDw8IG9yZGVyKTsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIH0KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIH0gZWxzZSBpZiAoUGFnZUxSVShwKSkgewo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcG9zKys7Cj4gKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCB9IGVsc2UKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIGJyZWFrOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+ICsgwqAg wqAgwqAgwqAgwqAgwqAgwqAgc3Bpbl91bmxvY2tfaXJxKCZ6LT5sb2NrKTsKPiArIMKgIMKgIMKg IMKgIMKgIMKgIMKgIGlmICgocG9zID09IHBmbiArIHBhZ2VzKSAmJgo+ICsgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgIXN0YXJ0X2lzb2xhdGVfcGFnZV9yYW5nZShwZm4sIHBmbiAr IHBhZ2VzKSkKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IHJldHVybiBwZm47Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAocG9zICYgKCgxIDw8IGFs aWduX29yZGVyKSAtIDEpKQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcGZu ID0gQUxJR04ocG9zLCAoMSA8PCBhbGlnbl9vcmRlcikpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgZWxzZQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcGZuID0gcG9zICsg KDEgPDwgYWxpZ25fb3JkZXIpOwoKcGZuIGhhcyBjaGFuZ2VkIGhlcmUsIHRoZW4gd2h5IHRoZSBm b3IgbG9vcCBzdGlsbCBuZWVkIHBmbiArPSAoMSA8PAphbGlnbl9vcmRlcikpPwpvciBtYXliZSBJ IG1pc3NlZCBzb21ldGhpbmcuCgo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgY29uZF9yZXNjaGVk KCk7Cj4gKyDCoCDCoCDCoCB9Cj4gKwo+ICsgwqAgwqAgwqAgLyogZmFpbGVkICovCj4gKyDCoCDC oCDCoCBpZiAoYmxvY2tpbmZvLmVuZCArIHBhZ2VzIDw9IGVuZCkgewo+ICsgwqAgwqAgwqAgwqAg wqAgwqAgwqAgLyogTW92ZSBiYXNlIGFkZHJlc3MgYW5kIGZpbmQgdGhlIG5leHQgYmxvY2sgb2Yg UkFNLiAqLwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYmFzZSA9IGJsb2NraW5mby5lbmQ7Cj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBnb3RvIHJldHJ5Owo+ICsgwqAgwqAgwqAgfQo+ICsgwqAg wqAgwqAgcmV0dXJuIDA7Cj4gK30KPgoKLS0gClRoYW5rcywKLS1Cb2IK -- 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