From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755030Ab2FWCOp (ORCPT ); Fri, 22 Jun 2012 22:14:45 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:58180 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752266Ab2FWCOo (ORCPT ); Fri, 22 Jun 2012 22:14:44 -0400 MIME-Version: 1.0 In-Reply-To: <20120622192919.GL4642@google.com> References: <20120618223203.GE32733@google.com> <1340059850.3416.3.camel@lappy> <20120619041154.GA28651@shangw> <20120619212059.GJ32733@google.com> <20120619212618.GK32733@google.com> <20120621201728.GB4642@google.com> <20120622185113.GK4642@google.com> <20120622192919.GL4642@google.com> Date: Fri, 22 Jun 2012 19:14:43 -0700 X-Google-Sender-Auth: -MW0JtGCkHDJAFSGDaeYImIUlcc Message-ID: Subject: Re: Early boot panic on machine with lots of memory From: Yinghai Lu To: Tejun Heo Cc: Gavin Shan , Sasha Levin , Andrew Morton , David Miller , hpa@linux.intel.com, linux-mm , "linux-kernel@vger.kernel.org" Content-Type: multipart/mixed; boundary=047d7b33c65ee840b104c31a4fc1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --047d7b33c65ee840b104c31a4fc1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Jun 22, 2012 at 12:29 PM, Tejun Heo wrote: > I wish we had a single call - say, memblock_die(), or whatever - so > that there's a clear indication that memblock usage is done, but yeah > maybe another day. =A0Will review the patch itself. =A0BTW, can't you pos= t > patches inline anymore? =A0Attaching is better than corrupt but is still > a bit annoying for review. please check the three patches: Thanks Yinghai --047d7b33c65ee840b104c31a4fc1 Content-Type: application/octet-stream; name="fix_free_memblock_reserve_v4_5.patch" Content-Disposition: attachment; filename="fix_free_memblock_reserve_v4_5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h3s21qms0 U3ViamVjdDogW1BBVENIXSBtZW1ibG9jazogZnJlZSBhbGxvY2F0ZWQgbWVtYmxvY2tfcmVzZXJ2 ZWRfcmVnaW9ucyBsYXRlcgoKSW4gbWVtYmxvY2tfZnJlZV9yZXNlcnZlZF9yZWdpb25zLCB3aWxs IGNhbGwgbWVtYmxvY2tfZnJlZSgpLApidXQgbWVtYmxvY2tfZnJlZSgpIHdvdWxkIGRvdWJsZSBy ZXNlcnZlZC5yZWdpb25zIHRvbywgc28gd2UgY291bGQgZnJlZQpvbGQgcmFuZ2UgZm9yIHJlc2Vy dmVkLnJlZ2lvbnMuCgpBbHNvIHRqIHNhaWQgdGhlcmUgaXMgYW5vdGhlciBidWcgY291bGQgYmUg cmVsYXRlZCB0byB0aGlzIHRvby4KCnwgSSBkb24ndCB0aGluayB3ZSdyZSBzYXZpbmcgYW55IG5v dGljZWFibGUKfCBhbW91bnQgYnkgZG9pbmcgdGhpcyAiZnJlZSAtIGdpdmUgaXQgdG8gcGFnZSBh bGxvY2F0b3IgLSByZXNlcnZlCnwgYWdhaW4iIGRhbmNpbmcuICBXZSBzaG91bGQganVzdCBhbGxv Y2F0ZSByZWdpb25zIGFsaWduZWQgdG8gcGFnZQp8IGJvdW5kYXJpZXMgYW5kIGZyZWUgdGhlbSBs YXRlciB3aGVuIG1lbWJsb2NrIGlzIG5vIGxvbmdlciBpbiB1c2UuCgpTbyB0cnkgdG8gYWxsb2Nh dGUgdGhhdCBpbiBQQUdFX1NJWkUgYWxpZ25tZW50IGFuZCBmcmVlIHRoYXQgbGF0ZXIuCgotdjU6 IFVzZSBuZXdfYWxsb2Nfc2l6ZSwgYW5kIG9sZF9hbGxvY19zaXplIHRvIHNpbXBsaWZ5IGl0IGFj Y29yZGluZyB0byB0ai4KCkNjOiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+CkNjOiBCZW5qYW1p biBIZXJyZW5zY2htaWR0IDxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+CkNjOiBBbmRyZXcgTW9y dG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBZaW5naGFpIEx1 IDx5aW5naGFpQGtlcm5lbC5vcmc+CgotLS0KIGluY2x1ZGUvbGludXgvbWVtYmxvY2suaCB8ICAg IDQgLS0tCiBtbS9tZW1ibG9jay5jICAgICAgICAgICAgfCAgIDUxICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtbS9ub2Jvb3RtZW0uYyAgICAgICAgICAg fCAgIDM2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCA0NiBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCkluZGV4OiBsaW51eC0yLjYvaW5j bHVkZS9saW51eC9tZW1ibG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTIuNi5vcmlnL2luY2x1 ZGUvbGludXgvbWVtYmxvY2suaAorKysgbGludXgtMi42L2luY2x1ZGUvbGludXgvbWVtYmxvY2su aApAQCAtNTAsOSArNTAsNyBAQCBwaHlzX2FkZHJfdCBtZW1ibG9ja19maW5kX2luX3JhbmdlX25v ZGUoCiAJCQkJcGh5c19hZGRyX3Qgc2l6ZSwgcGh5c19hZGRyX3QgYWxpZ24sIGludCBuaWQpOwog cGh5c19hZGRyX3QgbWVtYmxvY2tfZmluZF9pbl9yYW5nZShwaHlzX2FkZHJfdCBzdGFydCwgcGh5 c19hZGRyX3QgZW5kLAogCQkJCSAgIHBoeXNfYWRkcl90IHNpemUsIHBoeXNfYWRkcl90IGFsaWdu KTsKLWludCBtZW1ibG9ja19mcmVlX3Jlc2VydmVkX3JlZ2lvbnModm9pZCk7Ci1pbnQgbWVtYmxv Y2tfcmVzZXJ2ZV9yZXNlcnZlZF9yZWdpb25zKHZvaWQpOwotCitwaHlzX2FkZHJfdCBnZXRfYWxs b2NhdGVkX21lbWJsb2NrX3Jlc2VydmVkX3JlZ2lvbnNfaW5mbyhwaHlzX2FkZHJfdCAqYWRkcik7 CiB2b2lkIG1lbWJsb2NrX2FsbG93X3Jlc2l6ZSh2b2lkKTsKIGludCBtZW1ibG9ja19hZGRfbm9k ZShwaHlzX2FkZHJfdCBiYXNlLCBwaHlzX2FkZHJfdCBzaXplLCBpbnQgbmlkKTsKIGludCBtZW1i bG9ja19hZGQocGh5c19hZGRyX3QgYmFzZSwgcGh5c19hZGRyX3Qgc2l6ZSk7CkluZGV4OiBsaW51 eC0yLjYvbW0vbWVtYmxvY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYub3JpZy9tbS9tZW1i bG9jay5jCisrKyBsaW51eC0yLjYvbW0vbWVtYmxvY2suYwpAQCAtMTQzLDMwICsxNDMsNiBAQCBw aHlzX2FkZHJfdCBfX2luaXRfbWVtYmxvY2sgbWVtYmxvY2tfZmluCiAJCQkJCSAgIE1BWF9OVU1O T0RFUyk7CiB9CiAKLS8qCi0gKiBGcmVlIG1lbWJsb2NrLnJlc2VydmVkLnJlZ2lvbnMKLSAqLwot aW50IF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19mcmVlX3Jlc2VydmVkX3JlZ2lvbnModm9pZCkK LXsKLQlpZiAobWVtYmxvY2sucmVzZXJ2ZWQucmVnaW9ucyA9PSBtZW1ibG9ja19yZXNlcnZlZF9p bml0X3JlZ2lvbnMpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIG1lbWJsb2NrX2ZyZWUoX19wYSht ZW1ibG9jay5yZXNlcnZlZC5yZWdpb25zKSwKLQkJIHNpemVvZihzdHJ1Y3QgbWVtYmxvY2tfcmVn aW9uKSAqIG1lbWJsb2NrLnJlc2VydmVkLm1heCk7Ci19Ci0KLS8qCi0gKiBSZXNlcnZlIG1lbWJs b2NrLnJlc2VydmVkLnJlZ2lvbnMKLSAqLwotaW50IF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19y ZXNlcnZlX3Jlc2VydmVkX3JlZ2lvbnModm9pZCkKLXsKLQlpZiAobWVtYmxvY2sucmVzZXJ2ZWQu cmVnaW9ucyA9PSBtZW1ibG9ja19yZXNlcnZlZF9pbml0X3JlZ2lvbnMpCi0JCXJldHVybiAwOwot Ci0JcmV0dXJuIG1lbWJsb2NrX3Jlc2VydmUoX19wYShtZW1ibG9jay5yZXNlcnZlZC5yZWdpb25z KSwKLQkJIHNpemVvZihzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uKSAqIG1lbWJsb2NrLnJlc2VydmVk Lm1heCk7Ci19Ci0KIHN0YXRpYyB2b2lkIF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19yZW1vdmVf cmVnaW9uKHN0cnVjdCBtZW1ibG9ja190eXBlICp0eXBlLCB1bnNpZ25lZCBsb25nIHIpCiB7CiAJ dHlwZS0+dG90YWxfc2l6ZSAtPSB0eXBlLT5yZWdpb25zW3JdLnNpemU7CkBAIC0xODQsNiArMTYw LDE4IEBAIHN0YXRpYyB2b2lkIF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19yZW0KIAl9CiB9CiAK K3BoeXNfYWRkcl90IF9faW5pdF9tZW1ibG9jayBnZXRfYWxsb2NhdGVkX21lbWJsb2NrX3Jlc2Vy dmVkX3JlZ2lvbnNfaW5mbygKKwkJCQkJcGh5c19hZGRyX3QgKmFkZHIpCit7CisJaWYgKG1lbWJs b2NrLnJlc2VydmVkLnJlZ2lvbnMgPT0gbWVtYmxvY2tfcmVzZXJ2ZWRfaW5pdF9yZWdpb25zKQor CQlyZXR1cm4gMDsKKworCSphZGRyID0gX19wYShtZW1ibG9jay5yZXNlcnZlZC5yZWdpb25zKTsK KworCXJldHVybiBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uKSAqCisJ CQkgIG1lbWJsb2NrLnJlc2VydmVkLm1heCk7Cit9CisKIC8qKgogICogbWVtYmxvY2tfZG91Ymxl X2FycmF5IC0gZG91YmxlIHRoZSBzaXplIG9mIHRoZSBtZW1ibG9jayByZWdpb25zIGFycmF5CiAg KiBAdHlwZTogbWVtYmxvY2sgdHlwZSBvZiB0aGUgcmVnaW9ucyBhcnJheSBiZWluZyBkb3VibGVk CkBAIC0yMDQsNiArMTkyLDcgQEAgc3RhdGljIGludCBfX2luaXRfbWVtYmxvY2sgbWVtYmxvY2tf ZG91YgogCQkJCQkJcGh5c19hZGRyX3QgbmV3X2FyZWFfc2l6ZSkKIHsKIAlzdHJ1Y3QgbWVtYmxv Y2tfcmVnaW9uICpuZXdfYXJyYXksICpvbGRfYXJyYXk7CisJcGh5c19hZGRyX3Qgb2xkX2FsbG9j X3NpemUsIG5ld19hbGxvY19zaXplOwogCXBoeXNfYWRkcl90IG9sZF9zaXplLCBuZXdfc2l6ZSwg YWRkcjsKIAlpbnQgdXNlX3NsYWIgPSBzbGFiX2lzX2F2YWlsYWJsZSgpOwogCWludCAqaW5fc2xh YjsKQEAgLTIxNyw2ICsyMDYsMTIgQEAgc3RhdGljIGludCBfX2luaXRfbWVtYmxvY2sgbWVtYmxv Y2tfZG91YgogCS8qIENhbGN1bGF0ZSBuZXcgZG91YmxlZCBzaXplICovCiAJb2xkX3NpemUgPSB0 eXBlLT5tYXggKiBzaXplb2Yoc3RydWN0IG1lbWJsb2NrX3JlZ2lvbik7CiAJbmV3X3NpemUgPSBv bGRfc2l6ZSA8PCAxOworCS8qCisJICogV2UgbmVlZCB0byBhbGxvY2F0ZWQgbmV3IG9uZSBhbGln biB0byBQQUdFX1NJWkUsCisJICogIHNvIGxhdGUgY291bGQgZnJlZSB0aGVtIGNvbXBsZXRlbHku CisJICovCisJb2xkX2FsbG9jX3NpemUgPSBQQUdFX0FMSUdOKG9sZF9zaXplKTsKKwluZXdfYWxs b2Nfc2l6ZSA9IFBBR0VfQUxJR04obmV3X3NpemUpOwogCiAJLyogUmV0cmlldmUgdGhlIHNsYWIg ZmxhZyAqLwogCWlmICh0eXBlID09ICZtZW1ibG9jay5tZW1vcnkpCkBAIC0yNDUsMTEgKzI0MCwx MSBAQCBzdGF0aWMgaW50IF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19kb3ViCiAKIAkJYWRkciA9 IG1lbWJsb2NrX2ZpbmRfaW5fcmFuZ2UobmV3X2FyZWFfc3RhcnQgKyBuZXdfYXJlYV9zaXplLAog CQkJCQkJbWVtYmxvY2suY3VycmVudF9saW1pdCwKLQkJCQkJCW5ld19zaXplLCBzaXplb2YocGh5 c19hZGRyX3QpKTsKKwkJCQkJCW5ld19hbGxvY19zaXplLCBQQUdFX1NJWkUpOwogCQlpZiAoIWFk ZHIgJiYgbmV3X2FyZWFfc2l6ZSkKIAkJCWFkZHIgPSBtZW1ibG9ja19maW5kX2luX3JhbmdlKDAs CiAJCQkJCW1pbihuZXdfYXJlYV9zdGFydCwgbWVtYmxvY2suY3VycmVudF9saW1pdCksCi0JCQkJ CW5ld19zaXplLCBzaXplb2YocGh5c19hZGRyX3QpKTsKKwkJCQkJbmV3X2FsbG9jX3NpemUsIFBB R0VfU0laRSk7CiAKIAkJbmV3X2FycmF5ID0gYWRkciA/IF9fdmEoYWRkcikgOiAwOwogCX0KQEAg LTI3OSwxMyArMjc0LDEzIEBAIHN0YXRpYyBpbnQgX19pbml0X21lbWJsb2NrIG1lbWJsb2NrX2Rv dWIKIAkJa2ZyZWUob2xkX2FycmF5KTsKIAllbHNlIGlmIChvbGRfYXJyYXkgIT0gbWVtYmxvY2tf bWVtb3J5X2luaXRfcmVnaW9ucyAmJgogCQkgb2xkX2FycmF5ICE9IG1lbWJsb2NrX3Jlc2VydmVk X2luaXRfcmVnaW9ucykKLQkJbWVtYmxvY2tfZnJlZShfX3BhKG9sZF9hcnJheSksIG9sZF9zaXpl KTsKKwkJbWVtYmxvY2tfZnJlZShfX3BhKG9sZF9hcnJheSksIG9sZF9hbGxvY19zaXplKTsKIAog CS8qIFJlc2VydmUgdGhlIG5ldyBhcnJheSBpZiB0aGF0IGNvbWVzIGZyb20gdGhlIG1lbWJsb2Nr LgogCSAqIE90aGVyd2lzZSwgd2UgbmVlZG4ndCBkbyBpdAogCSAqLwogCWlmICghdXNlX3NsYWIp Ci0JCUJVR19PTihtZW1ibG9ja19yZXNlcnZlKGFkZHIsIG5ld19zaXplKSk7CisJCUJVR19PTiht ZW1ibG9ja19yZXNlcnZlKGFkZHIsIG5ld19hbGxvY19zaXplKSk7CiAKIAkvKiBVcGRhdGUgc2xh YiBmbGFnICovCiAJKmluX3NsYWIgPSB1c2Vfc2xhYjsKSW5kZXg6IGxpbnV4LTIuNi9tbS9ub2Jv b3RtZW0uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYub3JpZy9tbS9ub2Jvb3RtZW0uYworKysg bGludXgtMi42L21tL25vYm9vdG1lbS5jCkBAIC0xMDUsMjcgKzEwNSwzNSBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgX19mcmVlX3BhZ2VzX21lbW9yeSh1CiAJCV9fZnJlZV9wYWdlc19ib290bWVtKHBm bl90b19wYWdlKGkpLCAwKTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IF9fZnJl ZV9tZW1vcnlfY29yZShwaHlzX2FkZHJfdCBzdGFydCwKKwkJCQkgcGh5c19hZGRyX3QgZW5kKQor eworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuID0gUEZOX1VQKHN0YXJ0KTsKKwl1bnNpZ25lZCBs b25nIGVuZF9wZm4gPSBtaW5fdCh1bnNpZ25lZCBsb25nLAorCQkJCSAgICAgIFBGTl9ET1dOKGVu ZCksIG1heF9sb3dfcGZuKTsKKworCWlmIChzdGFydF9wZm4gPiBlbmRfcGZuKQorCQlyZXR1cm4g MDsKKworCV9fZnJlZV9wYWdlc19tZW1vcnkoc3RhcnRfcGZuLCBlbmRfcGZuKTsKKworCXJldHVy biBlbmRfcGZuIC0gc3RhcnRfcGZuOworfQorCiB1bnNpZ25lZCBsb25nIF9faW5pdCBmcmVlX2xv d19tZW1vcnlfY29yZV9lYXJseShpbnQgbm9kZWlkKQogewogCXVuc2lnbmVkIGxvbmcgY291bnQg PSAwOwotCXBoeXNfYWRkcl90IHN0YXJ0LCBlbmQ7CisJcGh5c19hZGRyX3Qgc3RhcnQsIGVuZCwg c2l6ZTsKIAl1NjQgaTsKIAotCS8qIGZyZWUgcmVzZXJ2ZWQgYXJyYXkgdGVtcG9yYXJpbHkgc28g dGhhdCBpdCdzIHRyZWF0ZWQgYXMgZnJlZSBhcmVhICovCi0JbWVtYmxvY2tfZnJlZV9yZXNlcnZl ZF9yZWdpb25zKCk7CisJZm9yX2VhY2hfZnJlZV9tZW1fcmFuZ2UoaSwgTUFYX05VTU5PREVTLCAm c3RhcnQsICZlbmQsIE5VTEwpCisJCWNvdW50ICs9IF9fZnJlZV9tZW1vcnlfY29yZShzdGFydCwg ZW5kKTsKIAotCWZvcl9lYWNoX2ZyZWVfbWVtX3JhbmdlKGksIE1BWF9OVU1OT0RFUywgJnN0YXJ0 LCAmZW5kLCBOVUxMKSB7Ci0JCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuID0gUEZOX1VQKHN0YXJ0 KTsKLQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gbWluX3QodW5zaWduZWQgbG9uZywKLQkJCQkJ ICAgICAgUEZOX0RPV04oZW5kKSwgbWF4X2xvd19wZm4pOwotCQlpZiAoc3RhcnRfcGZuIDwgZW5k X3BmbikgewotCQkJX19mcmVlX3BhZ2VzX21lbW9yeShzdGFydF9wZm4sIGVuZF9wZm4pOwotCQkJ Y291bnQgKz0gZW5kX3BmbiAtIHN0YXJ0X3BmbjsKLQkJfQotCX0KKwkvKiBmcmVlIHJhbmdlIHRo YXQgaXMgdXNlZCBmb3IgcmVzZXJ2ZWQgYXJyYXkgaWYgd2UgYWxsb2NhdGUgaXQgKi8KKwlzaXpl ID0gZ2V0X2FsbG9jYXRlZF9tZW1ibG9ja19yZXNlcnZlZF9yZWdpb25zX2luZm8oJnN0YXJ0KTsK KwlpZiAoc2l6ZSkKKwkJY291bnQgKz0gX19mcmVlX21lbW9yeV9jb3JlKHN0YXJ0LCBzdGFydCAr IHNpemUpOwogCi0JLyogcHV0IHJlZ2lvbiBhcnJheSBiYWNrPyAqLwotCW1lbWJsb2NrX3Jlc2Vy dmVfcmVzZXJ2ZWRfcmVnaW9ucygpOwogCXJldHVybiBjb3VudDsKIH0KIAo= --047d7b33c65ee840b104c31a4fc1 Content-Type: application/octet-stream; name="fix_free_memblock_memory.patch" Content-Disposition: attachment; filename="fix_free_memblock_memory.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h3s221ec1 U3ViamVjdDogW1BBVENIXSBtZW1ibG9jazogRnJlZSBhbGxvY2F0ZWQgbWVtYmxvY2subWVtb3J5 LnJlZ2lvbnMKCldlIGNvdWxkIGFsbG9jYXRlIHRoYXQgdG9vLgoKU28gZnJlZSBpdCBsaWtlIHJl c2VydmVkLnJlZ2lvbnMuCgpGb3IgeDg2XzY0LCBuZWVkIHRvIG1vdmUgYWJzZW50X3BhZ2UgY2Fs Y3VsYXRpbmcgZWFybHkuCgpTaWduZWQtb2ZmLWJ5OiBZaW5naGFpIEx1IDx5aW5naGFpQGtlcm5l bC5vcmc+CgotLS0KIGFyY2gveDg2L21tL2luaXRfNjQuYyAgICB8ICAgIDQgKysrLQogaW5jbHVk ZS9saW51eC9tZW1ibG9jay5oIHwgICAgMSArCiBtbS9tZW1ibG9jay5jICAgICAgICAgICAgfCAg IDIzICsrKysrKysrKysrKysrKysrKy0tLS0tCiBtbS9ub2Jvb3RtZW0uYyAgICAgICAgICAgfCAg ICA1ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCgpJbmRleDogbGludXgtMi42L2FyY2gveDg2L21tL2luaXRfNjQuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBsaW51eC0yLjYub3JpZy9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysrIGxpbnV4LTIuNi9hcmNo L3g4Ni9tbS9pbml0XzY0LmMKQEAgLTY5MCw2ICs2OTAsOSBAQCB2b2lkIF9faW5pdCBtZW1faW5p dCh2b2lkKQogCiAJcmVzZXJ2ZWRwYWdlcyA9IDA7CiAKKwkvKiBnZXQgdGhhdCBiZWZvcmUgbnVt X2ZyZWVfYWxsX2Jvb3RtZW0sIGl0IHdpbGwgZnJlZSBtZW1vcnkucmVnaW9ucyAqLworCWFic2Vu dF9wYWdlcyA9IGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBtYXhfcGZuKTsKKwogCS8qIHRoaXMg d2lsbCBwdXQgYWxsIGxvdyBtZW1vcnkgb250byB0aGUgZnJlZWxpc3RzICovCiAjaWZkZWYgQ09O RklHX05VTUEKIAl0b3RhbHJhbV9wYWdlcyA9IG51bWFfZnJlZV9hbGxfYm9vdG1lbSgpOwpAQCAt Njk3LDcgKzcwMCw2IEBAIHZvaWQgX19pbml0IG1lbV9pbml0KHZvaWQpCiAJdG90YWxyYW1fcGFn ZXMgPSBmcmVlX2FsbF9ib290bWVtKCk7CiAjZW5kaWYKIAotCWFic2VudF9wYWdlcyA9IGFic2Vu dF9wYWdlc19pbl9yYW5nZSgwLCBtYXhfcGZuKTsKIAlyZXNlcnZlZHBhZ2VzID0gbWF4X3BmbiAt IHRvdGFscmFtX3BhZ2VzIC0gYWJzZW50X3BhZ2VzOwogCWFmdGVyX2Jvb3RtZW0gPSAxOwogCklu ZGV4OiBsaW51eC0yLjYvaW5jbHVkZS9saW51eC9tZW1ibG9jay5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxp bnV4LTIuNi5vcmlnL2luY2x1ZGUvbGludXgvbWVtYmxvY2suaAorKysgbGludXgtMi42L2luY2x1 ZGUvbGludXgvbWVtYmxvY2suaApAQCAtNTEsNiArNTEsNyBAQCBwaHlzX2FkZHJfdCBtZW1ibG9j a19maW5kX2luX3JhbmdlX25vZGUoCiBwaHlzX2FkZHJfdCBtZW1ibG9ja19maW5kX2luX3Jhbmdl KHBoeXNfYWRkcl90IHN0YXJ0LCBwaHlzX2FkZHJfdCBlbmQsCiAJCQkJICAgcGh5c19hZGRyX3Qg c2l6ZSwgcGh5c19hZGRyX3QgYWxpZ24pOwogcGh5c19hZGRyX3QgZ2V0X2FsbG9jYXRlZF9tZW1i bG9ja19yZXNlcnZlZF9yZWdpb25zX2luZm8ocGh5c19hZGRyX3QgKmFkZHIpOworcGh5c19hZGRy X3QgZ2V0X2FsbG9jYXRlZF9tZW1ibG9ja19tZW1vcnlfcmVnaW9uc19pbmZvKHBoeXNfYWRkcl90 ICphZGRyKTsKIHZvaWQgbWVtYmxvY2tfYWxsb3dfcmVzaXplKHZvaWQpOwogaW50IG1lbWJsb2Nr X2FkZF9ub2RlKHBoeXNfYWRkcl90IGJhc2UsIHBoeXNfYWRkcl90IHNpemUsIGludCBuaWQpOwog aW50IG1lbWJsb2NrX2FkZChwaHlzX2FkZHJfdCBiYXNlLCBwaHlzX2FkZHJfdCBzaXplKTsKSW5k ZXg6IGxpbnV4LTIuNi9tbS9tZW1ibG9jay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTIuNi5vcmln L21tL21lbWJsb2NrLmMKKysrIGxpbnV4LTIuNi9tbS9tZW1ibG9jay5jCkBAIC0xNjAsMTYgKzE2 MCwyOSBAQCBzdGF0aWMgdm9pZCBfX2luaXRfbWVtYmxvY2sgbWVtYmxvY2tfcmVtCiAJfQogfQog Ci1waHlzX2FkZHJfdCBfX2luaXRfbWVtYmxvY2sgZ2V0X2FsbG9jYXRlZF9tZW1ibG9ja19yZXNl cnZlZF9yZWdpb25zX2luZm8oCitzdGF0aWMgcGh5c19hZGRyX3QgX19pbml0X21lbWJsb2NrIGdl dF9hbGxvY2F0ZWRfbWVtYmxvY2tfcmVnaW9uc19pbmZvKAorCQkJCQlzdHJ1Y3QgbWVtYmxvY2tf dHlwZSAqdHlwZSwKIAkJCQkJcGh5c19hZGRyX3QgKmFkZHIpCiB7Ci0JaWYgKG1lbWJsb2NrLnJl c2VydmVkLnJlZ2lvbnMgPT0gbWVtYmxvY2tfcmVzZXJ2ZWRfaW5pdF9yZWdpb25zKQorICAgICAg ICBpZiAodHlwZS0+cmVnaW9ucyA9PSBtZW1ibG9ja19tZW1vcnlfaW5pdF9yZWdpb25zIHx8Cisg ICAgICAgICAgICB0eXBlLT5yZWdpb25zID09IG1lbWJsb2NrX3Jlc2VydmVkX2luaXRfcmVnaW9u cykKIAkJcmV0dXJuIDA7CiAKLQkqYWRkciA9IF9fcGEobWVtYmxvY2sucmVzZXJ2ZWQucmVnaW9u cyk7CisJKmFkZHIgPSBfX3BhKHR5cGUtPnJlZ2lvbnMpOworCisJcmV0dXJuIFBBR0VfQUxJR04o c2l6ZW9mKHN0cnVjdCBtZW1ibG9ja19yZWdpb24pICogdHlwZS0+bWF4KTsKK30KKworcGh5c19h ZGRyX3QgX19pbml0X21lbWJsb2NrIGdldF9hbGxvY2F0ZWRfbWVtYmxvY2tfcmVzZXJ2ZWRfcmVn aW9uc19pbmZvKAorCQkJCQlwaHlzX2FkZHJfdCAqYWRkcikKK3sKKwlyZXR1cm4gZ2V0X2FsbG9j YXRlZF9tZW1ibG9ja19yZWdpb25zX2luZm8oJm1lbWJsb2NrLnJlc2VydmVkLCBhZGRyKTsKK30K IAotCXJldHVybiBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uKSAqCi0J CQkgIG1lbWJsb2NrLnJlc2VydmVkLm1heCk7CitwaHlzX2FkZHJfdCBfX2luaXRfbWVtYmxvY2sg Z2V0X2FsbG9jYXRlZF9tZW1ibG9ja19tZW1vcnlfcmVnaW9uc19pbmZvKAorCQkJCQlwaHlzX2Fk ZHJfdCAqYWRkcikKK3sKKwlyZXR1cm4gZ2V0X2FsbG9jYXRlZF9tZW1ibG9ja19yZWdpb25zX2lu Zm8oJm1lbWJsb2NrLm1lbW9yeSwgYWRkcik7CiB9CiAKIC8qKgpJbmRleDogbGludXgtMi42L21t L25vYm9vdG1lbS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTIuNi5vcmlnL21tL25vYm9vdG1lbS5j CisrKyBsaW51eC0yLjYvbW0vbm9ib290bWVtLmMKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdW5zaWdu ZWQgbG9uZyBfX2luaXQgZnJlZV9sb3dfbWVtb3J5X2NvcgogCWlmIChzaXplKQogCQljb3VudCAr PSBfX2ZyZWVfbWVtb3J5X2NvcmUoc3RhcnQsIHN0YXJ0ICsgc2l6ZSk7CiAKKwkvKiBmcmVlIHJh bmdlIHRoYXQgaXMgdXNlZCBmb3IgbWVtb3J5IGFycmF5IGlmIHdlIGFsbG9jYXRlIGl0ICovCisJ c2l6ZSA9IGdldF9hbGxvY2F0ZWRfbWVtYmxvY2tfbWVtb3J5X3JlZ2lvbnNfaW5mbygmc3RhcnQp OworCWlmIChzaXplKQorCQljb3VudCArPSBfX2ZyZWVfbWVtb3J5X2NvcmUoc3RhcnQsIHN0YXJ0 ICsgc2l6ZSk7CisKIAlyZXR1cm4gY291bnQ7CiB9CiAK --047d7b33c65ee840b104c31a4fc1 Content-Type: application/octet-stream; name="memblock_clear_check.patch" Content-Disposition: attachment; filename="memblock_clear_check.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h3s229qi2 U3ViamVjdDogW1BBVENIXSBtZW1ibG9jazogQWRkIGNoZWNraW5nIGFib3V0IGlsbGVnYWwgdXNp bmcgbWVtYmxvY2sKCkFmdGVyIG1lbWJsb2NrIGlzIG5vdCB1c2VkIGFueW1vcmUsIENsZWFyIHRo ZSBtZW1ibG9jayBzbyB3ZSB3aWxsIG5vdAp1c2UgaXQgd3JvbmdseS4KClNpZ25lZC1vZmYtYnk6 IFlpbmdoYWkgTHUgPHlpbmdoYWlAa2VybmVsLm9yZz4KCi0tLQogYXJjaC94ODYvbW0vaW5pdF8z Mi5jICAgIHwgICAgMyArKysKIGFyY2gveDg2L21tL2luaXRfNjQuYyAgICB8ICAgIDIgKysKIGlu Y2x1ZGUvbGludXgvbWVtYmxvY2suaCB8ICAgIDEgKwogbW0vbWVtYmxvY2suYyAgICAgICAgICAg IHwgICAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDM0 IGluc2VydGlvbnMoKykKCkluZGV4OiBsaW51eC0yLjYvYXJjaC94ODYvbW0vaW5pdF8zMi5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGxpbnV4LTIuNi5vcmlnL2FyY2gveDg2L21tL2luaXRfMzIuYworKysgbGlu dXgtMi42L2FyY2gveDg2L21tL2luaXRfMzIuYwpAQCAtNzU5LDYgKzc1OSw5IEBAIHZvaWQgX19p bml0IG1lbV9pbml0KHZvaWQpCiAJCWlmIChwYWdlX2lzX3JhbSh0bXApICYmIFBhZ2VSZXNlcnZl ZChwZm5fdG9fcGFnZSh0bXApKSkKIAkJCXJlc2VydmVkcGFnZXMrKzsKIAorCS8qIGNsZWFyIHRv IGNhdGNoIHdyb25nIHVzYWdlICovCisJbWVtYmxvY2tfY2xlYXIoKTsKKwogCWNvZGVzaXplID0g ICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZfdGV4dDsKIAlkYXRh c2l6ZSA9ICAodW5zaWduZWQgbG9uZykgJl9lZGF0YSAtICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0 OwogCWluaXRzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX19pbml0X2VuZCAtICh1bnNpZ25lZCBs b25nKSAmX19pbml0X2JlZ2luOwpJbmRleDogbGludXgtMi42L2FyY2gveDg2L21tL2luaXRfNjQu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYub3JpZy9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysr IGxpbnV4LTIuNi9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKQEAgLTcwMSw2ICs3MDEsOCBAQCB2b2lk IF9faW5pdCBtZW1faW5pdCh2b2lkKQogI2VuZGlmCiAKIAlyZXNlcnZlZHBhZ2VzID0gbWF4X3Bm biAtIHRvdGFscmFtX3BhZ2VzIC0gYWJzZW50X3BhZ2VzOworCS8qIGNsZWFyIHRvIGNhdGNoIHdy b25nIHVzYWdlICovCisJbWVtYmxvY2tfY2xlYXIoKTsKIAlhZnRlcl9ib290bWVtID0gMTsKIAog CWNvZGVzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZf dGV4dDsKSW5kZXg6IGxpbnV4LTIuNi9pbmNsdWRlL2xpbnV4L21lbWJsb2NrLmgKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gbGludXgtMi42Lm9yaWcvaW5jbHVkZS9saW51eC9tZW1ibG9jay5oCisrKyBsaW51eC0y LjYvaW5jbHVkZS9saW51eC9tZW1ibG9jay5oCkBAIC00Niw2ICs0Niw3IEBAIGV4dGVybiBpbnQg bWVtYmxvY2tfZGVidWc7CiAjZGVmaW5lIG1lbWJsb2NrX2RiZyhmbXQsIC4uLikgXAogCWlmICht ZW1ibG9ja19kZWJ1ZykgcHJpbnRrKEtFUk5fSU5GTyBwcl9mbXQoZm10KSwgIyNfX1ZBX0FSR1Nf XykKIAordm9pZCBtZW1ibG9ja19jbGVhcih2b2lkKTsKIHBoeXNfYWRkcl90IG1lbWJsb2NrX2Zp bmRfaW5fcmFuZ2Vfbm9kZShwaHlzX2FkZHJfdCBzdGFydCwgcGh5c19hZGRyX3QgZW5kLAogCQkJ CXBoeXNfYWRkcl90IHNpemUsIHBoeXNfYWRkcl90IGFsaWduLCBpbnQgbmlkKTsKIHBoeXNfYWRk cl90IG1lbWJsb2NrX2ZpbmRfaW5fcmFuZ2UocGh5c19hZGRyX3Qgc3RhcnQsIHBoeXNfYWRkcl90 IGVuZCwKSW5kZXg6IGxpbnV4LTIuNi9tbS9tZW1ibG9jay5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4 LTIuNi5vcmlnL21tL21lbWJsb2NrLmMKKysrIGxpbnV4LTIuNi9tbS9tZW1ibG9jay5jCkBAIC0x MDEsNiArMTAxLDggQEAgcGh5c19hZGRyX3QgX19pbml0X21lbWJsb2NrIG1lbWJsb2NrX2Zpbgog CXBoeXNfYWRkcl90IHRoaXNfc3RhcnQsIHRoaXNfZW5kLCBjYW5kOwogCXU2NCBpOwogCisJV0FS Tl9PTkNFKCFtZW1ibG9jay5yZXNlcnZlZC5tYXgsICJtZW1ibG9jay5yZXNlcnZlZCB3YXMgY2xl YXJlZCBhbHJlYWR5ISIpOworCiAJLyogcHVtcCB1cCBAZW5kICovCiAJaWYgKGVuZCA9PSBNRU1C TE9DS19BTExPQ19BQ0NFU1NJQkxFKQogCQllbmQgPSBtZW1ibG9jay5jdXJyZW50X2xpbWl0OwpA QCAtMTQzLDYgKzE0NSwxNSBAQCBwaHlzX2FkZHJfdCBfX2luaXRfbWVtYmxvY2sgbWVtYmxvY2tf ZmluCiAJCQkJCSAgIE1BWF9OVU1OT0RFUyk7CiB9CiAKKy8qCisgKiBDbGVhciBtZW1ibG9jawor ICovCit2b2lkIF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19jbGVhcih2b2lkKQoreworCW1lbXNl dCgmbWVtYmxvY2sucmVzZXJ2ZWQsIDAsIHNpemVvZihtZW1ibG9jay5yZXNlcnZlZCkpOworCW1l bXNldCgmbWVtYmxvY2subWVtb3J5LCAwLCBzaXplb2YobWVtYmxvY2subWVtb3J5KSk7Cit9CisK IHN0YXRpYyB2b2lkIF9faW5pdF9tZW1ibG9jayBtZW1ibG9ja19yZW1vdmVfcmVnaW9uKHN0cnVj dCBtZW1ibG9ja190eXBlICp0eXBlLCB1bnNpZ25lZCBsb25nIHIpCiB7CiAJdHlwZS0+dG90YWxf c2l6ZSAtPSB0eXBlLT5yZWdpb25zW3JdLnNpemU7CkBAIC00NDgsMTEgKzQ1OSwxNSBAQCByZXBl YXQ6CiBpbnQgX19pbml0X21lbWJsb2NrIG1lbWJsb2NrX2FkZF9ub2RlKHBoeXNfYWRkcl90IGJh c2UsIHBoeXNfYWRkcl90IHNpemUsCiAJCQkJICAgICAgIGludCBuaWQpCiB7CisJV0FSTl9PTkNF KCFtZW1ibG9jay5tZW1vcnkubWF4LCAibWVtYmxvY2subWVtb3J5IHdhcyBjbGVhcmVkIGFscmVh ZHkhIik7CisKIAlyZXR1cm4gbWVtYmxvY2tfYWRkX3JlZ2lvbigmbWVtYmxvY2subWVtb3J5LCBi YXNlLCBzaXplLCBuaWQpOwogfQogCiBpbnQgX19pbml0X21lbWJsb2NrIG1lbWJsb2NrX2FkZChw aHlzX2FkZHJfdCBiYXNlLCBwaHlzX2FkZHJfdCBzaXplKQogeworCVdBUk5fT05DRSghbWVtYmxv Y2subWVtb3J5Lm1heCwgIm1lbWJsb2NrLm1lbW9yeSB3YXMgY2xlYXJlZCBhbHJlYWR5ISIpOwor CiAJcmV0dXJuIG1lbWJsb2NrX2FkZF9yZWdpb24oJm1lbWJsb2NrLm1lbW9yeSwgYmFzZSwgc2l6 ZSwgTUFYX05VTU5PREVTKTsKIH0KIApAQCAtNTQ3LDExICs1NjIsMTUgQEAgc3RhdGljIGludCBf X2luaXRfbWVtYmxvY2sgX19tZW1ibG9ja19yZQogCiBpbnQgX19pbml0X21lbWJsb2NrIG1lbWJs b2NrX3JlbW92ZShwaHlzX2FkZHJfdCBiYXNlLCBwaHlzX2FkZHJfdCBzaXplKQogeworCVdBUk5f T05DRSghbWVtYmxvY2subWVtb3J5Lm1heCwgIm1lbWJsb2NrLm1lbW9yeSB3YXMgY2xlYXJlZCBh bHJlYWR5ISIpOworCiAJcmV0dXJuIF9fbWVtYmxvY2tfcmVtb3ZlKCZtZW1ibG9jay5tZW1vcnks IGJhc2UsIHNpemUpOwogfQogCiBpbnQgX19pbml0X21lbWJsb2NrIG1lbWJsb2NrX2ZyZWUocGh5 c19hZGRyX3QgYmFzZSwgcGh5c19hZGRyX3Qgc2l6ZSkKIHsKKwlXQVJOX09OQ0UoIW1lbWJsb2Nr LnJlc2VydmVkLm1heCwgIm1lbWJsb2NrLnJlc2VydmVkIHdhcyBjbGVhcmVkIGFscmVhZHkhIik7 CisKIAltZW1ibG9ja19kYmcoIiAgIG1lbWJsb2NrX2ZyZWU6IFslIzAxNmxseC0lIzAxNmxseF0g JXBGXG4iLAogCQkgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpYmFzZSwKIAkJICAgICAodW5zaWdu ZWQgbG9uZyBsb25nKWJhc2UgKyBzaXplLApAQCAtNTY0LDYgKzU4Myw3IEBAIGludCBfX2luaXRf bWVtYmxvY2sgbWVtYmxvY2tfcmVzZXJ2ZShwaHkKIHsKIAlzdHJ1Y3QgbWVtYmxvY2tfdHlwZSAq X3JnbiA9ICZtZW1ibG9jay5yZXNlcnZlZDsKIAorCVdBUk5fT05DRSghbWVtYmxvY2sucmVzZXJ2 ZWQubWF4LCAibWVtYmxvY2sucmVzZXJ2ZWQgd2FzIGNsZWFyZWQgYWxyZWFkeSEiKTsKIAltZW1i bG9ja19kYmcoIm1lbWJsb2NrX3Jlc2VydmU6IFslIzAxNmxseC0lIzAxNmxseF0gJXBGXG4iLAog CQkgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpYmFzZSwKIAkJICAgICAodW5zaWduZWQgbG9uZyBs b25nKWJhc2UgKyBzaXplLApAQCAtNjA0LDYgKzYyNCw5IEBAIHZvaWQgX19pbml0X21lbWJsb2Nr IF9fbmV4dF9mcmVlX21lbV9yYW4KIAlpbnQgbWkgPSAqaWR4ICYgMHhmZmZmZmZmZjsKIAlpbnQg cmkgPSAqaWR4ID4+IDMyOwogCisJV0FSTl9PTkNFKCFtZW0tPm1heCwgIm1lbWJsb2NrLm1lbW9y eSB3YXMgY2xlYXJlZCBhbHJlYWR5ISIpOworCVdBUk5fT05DRSghcnN2LT5tYXgsICJtZW1ibG9j ay5yZXNlcnZlZCB3YXMgY2xlYXJlZCBhbHJlYWR5ISIpOworCiAJZm9yICggOyBtaSA8IG1lbS0+ Y250OyBtaSsrKSB7CiAJCXN0cnVjdCBtZW1ibG9ja19yZWdpb24gKm0gPSAmbWVtLT5yZWdpb25z W21pXTsKIAkJcGh5c19hZGRyX3QgbV9zdGFydCA9IG0tPmJhc2U7CkBAIC02NjcsNiArNjkwLDkg QEAgdm9pZCBfX2luaXRfbWVtYmxvY2sgX19uZXh0X2ZyZWVfbWVtX3JhbgogCWludCBtaSA9ICpp ZHggJiAweGZmZmZmZmZmOwogCWludCByaSA9ICppZHggPj4gMzI7CiAKKwlXQVJOX09OQ0UoIW1l bS0+bWF4LCAibWVtYmxvY2subWVtb3J5IHdhcyBjbGVhcmVkIGFscmVhZHkhIik7CisJV0FSTl9P TkNFKCFyc3YtPm1heCwgIm1lbWJsb2NrLnJlc2VydmVkIHdhcyBjbGVhcmVkIGFscmVhZHkhIik7 CisKIAlpZiAoKmlkeCA9PSAodTY0KVVMTE9OR19NQVgpIHsKIAkJbWkgPSBtZW0tPmNudCAtIDE7 CiAJCXJpID0gcnN2LT5jbnQ7CkBAIC03NjMsNiArNzg5LDggQEAgaW50IF9faW5pdF9tZW1ibG9j ayBtZW1ibG9ja19zZXRfbm9kZShwaAogCWludCBzdGFydF9yZ24sIGVuZF9yZ247CiAJaW50IGks IHJldDsKIAorCVdBUk5fT05DRSghbWVtYmxvY2subWVtb3J5Lm1heCwgIm1lbWJsb2NrLm1lbW9y eSB3YXMgY2xlYXJlZCBhbHJlYWR5ISIpOworCiAJcmV0ID0gbWVtYmxvY2tfaXNvbGF0ZV9yYW5n ZSh0eXBlLCBiYXNlLCBzaXplLCAmc3RhcnRfcmduLCAmZW5kX3Jnbik7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsK --047d7b33c65ee840b104c31a4fc1--