From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from inx.pm.waw.pl ([195.116.170.130]) by canuck.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1Pargb-0004XT-RE for barebox@lists.infradead.org; Thu, 06 Jan 2011 15:23:36 +0000 From: Krzysztof Halasa References: Date: Thu, 06 Jan 2011 16:23:01 +0100 In-Reply-To: (Krzysztof Halasa's message of "Thu, 06 Jan 2011 15:48:38 +0100") Message-ID: MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 1/3] Fix error handling with malloc, memalign etc. Introduce xmemalign(). To: barebox@lists.infradead.org VGhlIGlkZWEgaXMgdG8gcGFuaWMoKSB3aGVuIHRoZXJlIGlzIG5vIG1lbW9yeSBhdmFpbGFibGUg Zm9yIG5vcm1hbApvcGVyYXRpb24uIEV4Y2VwdGlvbjogY29kZSB3aGljaCBjYW4gY29uc3VtZSBh cmJpdHJhcnkgYW1vdW50IG9mIFJBTQooZXhhbXBsZTogZmlsZXMgYWxsb2NhdGVkIGluIHJhbWZz KSBtdXN0IHJlcG9ydCBlcnJvciBpbnN0ZWFkIG9mIHBhbmljKCkuCgpUaGlzIHBhdGNoIGFsc28g Zml4ZXMgY29kZSB3aGljaCBkaWRuJ3QgY2hlY2sgZm9yIE5VTEwgZnJvbSBtYWxsb2MoKSBldGMu CgpVc2FnZTogbWFsbG9jKCksIG1lbWFsaWduKCkgcmV0dXJuIE5VTEwgd2hlbiBvdXQgb2YgUkFN Lgp4bWFsbG9jKCksIHhtZW1hbGlnbigpIGFsd2F5cyByZXR1cm4gbm9uLU5VTEwgb3IgcGFuaWMo KS4KClNpZ25lZC1vZmYtYnk6IEtyenlzenRvZiBIYcWCYXNhIDxraGNAcG0ud2F3LnBsPgoKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2NwdS9tbXUuYyBiL2FyY2gvYXJtL2NwdS9tbXUuYwppbmRleCAw OGE1N2NlLi5kZjY2NGY2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jcHUvbW11LmMKKysrIGIvYXJj aC9hcm0vY3B1L21tdS5jCkBAIC05NSwxMyArOTUsNyBAQCB2b2lkIHNldHVwX2RtYV9jb2hlcmVu dCh1bnNpZ25lZCBsb25nIG9mZnNldCkKIAogdm9pZCAqZG1hX2FsbG9jX2NvaGVyZW50KHNpemVf dCBzaXplKQogewotCXZvaWQgKm1lbTsKLQotCW1lbSA9IG1lbWFsaWduKDQwOTYsIHNpemUpOwot CWlmIChtZW0pCi0JCXJldHVybiBtZW0gKyBkbWFfY29oZXJlbnRfb2Zmc2V0OwotCi0JcmV0dXJu IE5VTEw7CisJcmV0dXJuIHhtZW1hbGlnbig0MDk2LCBzaXplKSArIGRtYV9jb2hlcmVudF9vZmZz ZXQ7CiB9CiAKIHVuc2lnbmVkIGxvbmcgdmlydF90b19waHlzKHZvaWQgKnZpcnQpCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21t dS5oCmluZGV4IGZkZDIzYjUuLjc3ODljYzkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2luY2x1ZGUv YXNtL21tdS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS5oCkBAIC0yOCw3ICsyOCw3 IEBAIHZvaWQgKnBoeXNfdG9fdmlydCh1bnNpZ25lZCBsb25nIHBoeXMpOwogI2Vsc2UKIHN0YXRp YyBpbmxpbmUgdm9pZCAqZG1hX2FsbG9jX2NvaGVyZW50KHNpemVfdCBzaXplKQogewotCXJldHVy biBtYWxsb2Moc2l6ZSk7CisJcmV0dXJuIHhtYWxsb2Moc2l6ZSk7CiB9CiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBkbWFfZnJlZV9jb2hlcmVudCh2b2lkICptZW0pCmRpZmYgLS1naXQgYS9jb21tYW5k cy9lZGl0LmMgYi9jb21tYW5kcy9lZGl0LmMKaW5kZXggY2E0MGQ1OS4uMzUxOWIwOSAxMDA2NDQK LS0tIGEvY29tbWFuZHMvZWRpdC5jCisrKyBiL2NvbW1hbmRzL2VkaXQuYwpAQCAtMTg0LDEwICsx ODQsOCBAQCBzdGF0aWMgc3RydWN0IGxpbmUgKmxpbmVfcmVhbGxvYyhpbnQgbGVuLCBzdHJ1Y3Qg bGluZSAqbGluZSkKIHsKIAlpbnQgc2l6ZSA9IDMyOwogCi0JaWYgKCFsaW5lKSB7CisJaWYgKCFs aW5lKQogCQlsaW5lID0geHphbGxvYyhzaXplb2Yoc3RydWN0IGxpbmUpKTsKLQkJbGluZS0+ZGF0 YSA9IG1hbGxvYygzMik7Ci0JfQogCiAJd2hpbGUgKHNpemUgPCBsZW4pCiAJCXNpemUgPDw9IDE7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL21jaS9tY2ktY29yZS5jIGIvZHJpdmVycy9tY2kvbWNpLWNv cmUuYwppbmRleCAwNGExZTRjLi5jMTk2MTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21jaS9tY2kt Y29yZS5jCisrKyBiL2RyaXZlcnMvbWNpL21jaS1jb3JlLmMKQEAgLTEzMzMsMTAgKzEzMzMsNyBA QCBzdGF0aWMgc3RydWN0IGRyaXZlcl9kIG1jaV9kcml2ZXIgPSB7CiAKIHN0YXRpYyBpbnQgbWNp X2luaXQodm9pZCkKIHsKLQlzZWN0b3JfYnVmID0gbWVtYWxpZ24oMzIsIDUxMik7Ci0JaWYgKCFz ZWN0b3JfYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQorCXNlY3Rvcl9idWYgPSB4bWVtYWxpZ24o MzIsIDUxMik7CiAJcmV0dXJuIHJlZ2lzdGVyX2RyaXZlcigmbWNpX2RyaXZlcik7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F0OTFfZXRoZXIuYyBiL2RyaXZlcnMvbmV0L2F0OTFfZXRo ZXIuYwppbmRleCA0NTYzZmYzLi5kNWUyNmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9hdDkx X2V0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvYXQ5MV9ldGhlci5jCkBAIC0yNjMsNyArMjYzLDcg QEAgc3RhdGljIGludCBhdDkxcm05MjAwX2V0aF9pbml0IChzdHJ1Y3QgZGV2aWNlX2QgKmRldikK IAlzdHJ1Y3QgZXRoX2RldmljZSAqZWRldjsKIAlpbnQgaTsKIAotCWVkZXYgPSBtYWxsb2Moc2l6 ZW9mKHN0cnVjdCBldGhfZGV2aWNlKSk7CisJZWRldiA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBl dGhfZGV2aWNlKSk7CiAJZGV2LT5wcml2ID0gZWRldjsKIAogCWVkZXYtPm9wZW4gPSBhdDkxcm05 MjAwX2V0aF9vcGVuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY3M4OTAwLmMgYi9kcml2ZXJz L25ldC9jczg5MDAuYwppbmRleCA4MTIwODc3Li4xODdjMGZiIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9jczg5MDAuYworKysgYi9kcml2ZXJzL25ldC9jczg5MDAuYwpAQCAtNDQwLDE0ICs0NDAs MTQgQEAgc3RhdGljIGludCBjczg5MDBfcHJvYmUoc3RydWN0IGRldmljZV9kICpkZXYpCiAKIAlk ZWJ1ZygiY3M4OTAwX2luaXQoKVxuIik7CiAKLQlwcml2ID0gKHN0cnVjdCBjczg5MDBfcHJpdiAq KW1hbGxvYyhzaXplb2YoKnByaXYpKTsKKwlwcml2ID0gKHN0cnVjdCBjczg5MDBfcHJpdiAqKXht YWxsb2Moc2l6ZW9mKCpwcml2KSk7CiAJcHJpdi0+cmVncyA9ICh1MTYgKilkZXYtPm1hcF9iYXNl OwogCWlmIChjczg5MDBfY2hlY2tfaWQocHJpdikpIHsKIAkJZnJlZShwcml2KTsKIAkJcmV0dXJu IC0xOwogCX0KIAotCWVkZXYgPSAoc3RydWN0IGV0aF9kZXZpY2UgKiltYWxsb2Moc2l6ZW9mKHN0 cnVjdCBldGhfZGV2aWNlKSk7CisJZWRldiA9IChzdHJ1Y3QgZXRoX2RldmljZSAqKXhtYWxsb2Mo c2l6ZW9mKHN0cnVjdCBldGhfZGV2aWNlKSk7CiAJZGV2LT50eXBlX2RhdGEgPSBlZGV2OwogCWVk ZXYtPnByaXYgPSBwcml2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mZWNfbXBjNTIwMC5j IGIvZHJpdmVycy9uZXQvZmVjX21wYzUyMDAuYwppbmRleCA4YjJjYjRkLi43NTI4MzE2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9mZWNfbXBjNTIwMC5jCisrKyBiL2RyaXZlcnMvbmV0L2ZlY19t cGM1MjAwLmMKQEAgLTY2MSw5ICs2NjEsOSBAQCBpbnQgbXBjNXh4eF9mZWNfcHJvYmUoc3RydWN0 IGRldmljZV9kICpkZXYpCiAgICAgICAgIHN0cnVjdCBldGhfZGV2aWNlICplZGV2OwogCW1wYzV4 eHhfZmVjX3ByaXYgKmZlYzsKIAotICAgICAgICBlZGV2ID0gKHN0cnVjdCBldGhfZGV2aWNlICop bWFsbG9jKHNpemVvZihzdHJ1Y3QgZXRoX2RldmljZSkpOworICAgICAgICBlZGV2ID0gKHN0cnVj dCBldGhfZGV2aWNlICopeG1hbGxvYyhzaXplb2Yoc3RydWN0IGV0aF9kZXZpY2UpKTsKICAgICAg ICAgZGV2LT50eXBlX2RhdGEgPSBlZGV2OwotCWZlYyA9IChtcGM1eHh4X2ZlY19wcml2ICopbWFs bG9jKHNpemVvZigqZmVjKSk7CisJZmVjID0gKG1wYzV4eHhfZmVjX3ByaXYgKil4bWFsbG9jKHNp emVvZigqZmVjKSk7CiAgICAgICAgIGVkZXYtPnByaXYgPSBmZWM7CiAJZWRldi0+b3BlbiA9IG1w YzV4eHhfZmVjX29wZW4sCiAJZWRldi0+aW5pdCA9IG1wYzV4eHhfZmVjX2luaXQsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC90YXAuYyBiL2RyaXZlcnMvbmV0L3RhcC5jCmluZGV4IDUyMmE5ZjEu LmEzMGE5YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RhcC5jCisrKyBiL2RyaXZlcnMvbmV0 L3RhcC5jCkBAIC03OSw3ICs3OSw3IEBAIGludCB0YXBfcHJvYmUoc3RydWN0IGRldmljZV9kICpk ZXYpCiAJc3RydWN0IHRhcF9wcml2ICpwcml2OwogCWludCByZXQgPSAwOwogCi0JcHJpdiA9IG1h bGxvYyhzaXplb2Yoc3RydWN0IHRhcF9wcml2KSk7CisJcHJpdiA9IHhtYWxsb2Moc2l6ZW9mKHN0 cnVjdCB0YXBfcHJpdikpOwogCXByaXYtPm5hbWUgPSAiYmFyZWJveCI7CiAKIAlwcml2LT5mZCA9 IHRhcF9hbGxvYyhwcml2LT5uYW1lKTsKQEAgLTg4LDcgKzg4LDcgQEAgaW50IHRhcF9wcm9iZShz dHJ1Y3QgZGV2aWNlX2QgKmRldikKIAkJZ290byBvdXQ7CiAJfQogCi0JZWRldiA9IG1hbGxvYyhz aXplb2Yoc3RydWN0IGV0aF9kZXZpY2UpKTsKKwllZGV2ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0 IGV0aF9kZXZpY2UpKTsKIAlkZXYtPnR5cGVfZGF0YSA9IGVkZXY7CiAJZWRldi0+cHJpdiA9IHBy aXY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbm9yL2NmaV9mbGFzaC5jIGIvZHJpdmVycy9ub3Iv Y2ZpX2ZsYXNoLmMKaW5kZXggZWZlODc4NS4uZmFmOTY1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u b3IvY2ZpX2ZsYXNoLmMKKysrIGIvZHJpdmVycy9ub3IvY2ZpX2ZsYXNoLmMKQEAgLTMwNSw3ICsz MDUsNyBAQCBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHN0cnVjdCBmbGFzaF9pbmZvICpp bmZvLCB1bG9uZyBiYXNlKQogI2VuZGlmCiAKIAkvKiBmaXJzdCBvbmx5IG1hbGxvYyBzcGFjZSBm b3IgdGhlIGZpcnN0IHNlY3RvciAqLwotCWluZm8tPnN0YXJ0ID0gbWFsbG9jKHNpemVvZih1bG9u ZykpOworCWluZm8tPnN0YXJ0ID0geG1hbGxvYyhzaXplb2YodWxvbmcpKTsKIAogCWluZm8tPnN0 YXJ0WzBdID0gYmFzZTsKIAlpbmZvLT5wcm90ZWN0ID0gMDsKQEAgLTM5NCw4ICszOTQsOCBAQCBz dGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHN0cnVjdCBmbGFzaF9pbmZvICppbmZvLCB1bG9u ZyBiYXNlKQogCQkJY3VyX29mZnNldCArPSBlcmFzZV9yZWdpb25fc2l6ZSAqIGVyYXNlX3JlZ2lv bl9jb3VudDsKIAogCQkJLyogaW5jcmVhc2UgdGhlIHNwYWNlIG1hbGxvY2VkIGZvciB0aGUgc2Vj dG9yIHN0YXJ0IGFkZHJlc3NlcyAqLwotCQkJaW5mby0+c3RhcnQgPSByZWFsbG9jKGluZm8tPnN0 YXJ0LCBzaXplb2YodWxvbmcpICogKGVyYXNlX3JlZ2lvbl9jb3VudCArIHNlY3RfY250KSk7Ci0J CQlpbmZvLT5wcm90ZWN0ID0gcmVhbGxvYyhpbmZvLT5wcm90ZWN0LCBzaXplb2YodWNoYXIpICog KGVyYXNlX3JlZ2lvbl9jb3VudCArIHNlY3RfY250KSk7CisJCQlpbmZvLT5zdGFydCA9IHhyZWFs bG9jKGluZm8tPnN0YXJ0LCBzaXplb2YodWxvbmcpICogKGVyYXNlX3JlZ2lvbl9jb3VudCArIHNl Y3RfY250KSk7CisJCQlpbmZvLT5wcm90ZWN0ID0geHJlYWxsb2MoaW5mby0+cHJvdGVjdCwgc2l6 ZW9mKHVjaGFyKSAqIChlcmFzZV9yZWdpb25fY291bnQgKyBzZWN0X2NudCkpOwogCiAJCQlmb3Ig KGogPSAwOyBqIDwgZXJhc2VfcmVnaW9uX2NvdW50OyBqKyspIHsKIAkJCQlpbmZvLT5zdGFydFtz ZWN0X2NudF0gPSBzZWN0b3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9hbWJhLXBsMDEx LmMgYi9kcml2ZXJzL3NlcmlhbC9hbWJhLXBsMDExLmMKaW5kZXggYmM5YjBkZS4uNDQyZGJjNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvYW1iYS1wbDAxMS5jCisrKyBiL2RyaXZlcnMvc2Vy aWFsL2FtYmEtcGwwMTEuYwpAQCAtMTU3LDggKzE1Nyw3IEBAIHN0YXRpYyBpbnQgcGwwMTFfcHJv YmUoc3RydWN0IGRldmljZV9kICpkZXYpCiAJc3RydWN0IGFtYmFfdWFydF9wb3J0ICp1YXJ0Owog CXN0cnVjdCBjb25zb2xlX2RldmljZSAqY2RldjsKIAotCXVhcnQgPSBtYWxsb2Moc2l6ZW9mKHN0 cnVjdCBhbWJhX3VhcnRfcG9ydCkpOwotCisJdWFydCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBh bWJhX3VhcnRfcG9ydCkpOwogCXVhcnQtPmNsayA9IGNsa19nZXQoZGV2LCBOVUxMKTsKIAogCWlm IChJU19FUlIodWFydC0+Y2xrKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL2F0bWVsLmMg Yi9kcml2ZXJzL3NlcmlhbC9hdG1lbC5jCmluZGV4IGI5OWVjNGQuLjEwOTg5NTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc2VyaWFsL2F0bWVsLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvYXRtZWwuYwpA QCAtMzk4LDggKzM5OCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfc2VyaWFsX3Byb2JlKHN0cnVjdCBk ZXZpY2VfZCAqZGV2KQogCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKnVhcnQ7CiAJc3RydWN0IGNv bnNvbGVfZGV2aWNlICpjZGV2OwogCi0JdWFydCA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGF0bWVs X3VhcnRfcG9ydCkpOwotCisJdWFydCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBhdG1lbF91YXJ0 X3BvcnQpKTsKIAljZGV2ID0gJnVhcnQtPnVhcnQ7CiAJZGV2LT50eXBlX2RhdGEgPSBjZGV2Owog CWNkZXYtPmRldiA9IGRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9ibGFj a2Zpbi5jIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2JsYWNrZmluLmMKaW5kZXggMjEwMWI3ZS4u NTliMmZiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2JsYWNrZmluLmMKKysr IGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2JsYWNrZmluLmMKQEAgLTExNSw3ICsxMTUsNyBAQCBz dGF0aWMgaW50IGJsYWNrZmluX3NlcmlhbF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKIHsK IAlzdHJ1Y3QgY29uc29sZV9kZXZpY2UgKmNkZXY7CiAKLQljZGV2ID0gbWFsbG9jKHNpemVvZihz dHJ1Y3QgY29uc29sZV9kZXZpY2UpKTsKKwljZGV2ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IGNv bnNvbGVfZGV2aWNlKSk7CiAJZGV2LT50eXBlX2RhdGEgPSBjZGV2OwogCWNkZXYtPmRldiA9IGRl djsKIAljZGV2LT5mX2NhcHMgPSBDT05TT0xFX1NURElOIHwgQ09OU09MRV9TVERPVVQgfCBDT05T T0xFX1NUREVSUjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9pbXguYyBiL2Ry aXZlcnMvc2VyaWFsL3NlcmlhbF9pbXguYwppbmRleCBhNzU2MmY5Li45ODRkN2YyIDEwMDY0NAot LS0gYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfaW14LmMKKysrIGIvZHJpdmVycy9zZXJpYWwvc2Vy aWFsX2lteC5jCkBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGljIGludCBpbXhfc2VyaWFsX3Byb2Jl KHN0cnVjdCBkZXZpY2VfZCAqZGV2KQogCXN0cnVjdCBpbXhfc2VyaWFsX3ByaXYgKnByaXY7CiAJ dWludDMyX3QgdmFsOwogCi0JcHJpdiA9IG1hbGxvYyhzaXplb2YoKnByaXYpKTsKKwlwcml2ID0g eG1hbGxvYyhzaXplb2YoKnByaXYpKTsKIAljZGV2ID0gJnByaXYtPmNkZXY7CiAKIAlwcml2LT5y ZWdzID0gKHZvaWQgX19mb3JjZSBfX2lvbWVtICopZGV2LT5tYXBfYmFzZTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9uZXR4LmMgYi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfbmV0 eC5jCmluZGV4IDdjMDk1MTkuLjlkNGIyOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3Nl cmlhbF9uZXR4LmMKKysrIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX25ldHguYwpAQCAtMTQwLDcg KzE0MCw3IEBAIHN0YXRpYyBpbnQgbmV0eF9zZXJpYWxfcHJvYmUoc3RydWN0IGRldmljZV9kICpk ZXYpCiB7CiAJc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2OwogCi0JY2RldiA9IG1hbGxvYyhz aXplb2Yoc3RydWN0IGNvbnNvbGVfZGV2aWNlKSk7CisJY2RldiA9IHhtYWxsb2Moc2l6ZW9mKHN0 cnVjdCBjb25zb2xlX2RldmljZSkpOwogCWRldi0+dHlwZV9kYXRhID0gY2RldjsKIAljZGV2LT5k ZXYgPSBkZXY7CiAJY2Rldi0+Zl9jYXBzID0gQ09OU09MRV9TVERJTiB8IENPTlNPTEVfU1RET1VU IHwgQ09OU09MRV9TVERFUlI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfcGww MTAuYyBiL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9wbDAxMC5jCmluZGV4IDFhNjM2NmYuLjc5MjNl YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9wbDAxMC5jCisrKyBiL2RyaXZl cnMvc2VyaWFsL3NlcmlhbF9wbDAxMC5jCkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIGludCBw bDAxMF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKIHsKIAlzdHJ1Y3QgY29uc29sZV9kZXZp Y2UgKmNkZXY7CiAKLQljZGV2ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgY29uc29sZV9kZXZpY2Up KTsKKwljZGV2ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IGNvbnNvbGVfZGV2aWNlKSk7CiAJZGV2 LT50eXBlX2RhdGEgPSBjZGV2OwogCWNkZXYtPmRldiA9IGRldjsKIAljZGV2LT5mX2NhcHMgPSBD T05TT0xFX1NURElOIHwgQ09OU09MRV9TVERPVVQgfCBDT05TT0xFX1NUREVSUjsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9zM2MyNHgwLmMgYi9kcml2ZXJzL3NlcmlhbC9zZXJp YWxfczNjMjR4MC5jCmluZGV4IGQ3ZWFjOGYuLjBhMTc5NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c2VyaWFsL3NlcmlhbF9zM2MyNHgwLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX3MzYzI0 eDAuYwpAQCAtMTIxLDggKzEyMSw3IEBAIHN0YXRpYyBpbnQgczNjMjR4MF9zZXJpYWxfcHJvYmUo c3RydWN0IGRldmljZV9kICpkZXYpCiB7CiAJc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2Owog Ci0JY2RldiA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGNvbnNvbGVfZGV2aWNlKSk7Ci0KKwljZGV2 ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IGNvbnNvbGVfZGV2aWNlKSk7CiAJZGV2LT50eXBlX2Rh dGEgPSBjZGV2OwogCWNkZXYtPmRldiA9IGRldjsKIAljZGV2LT5mX2NhcHMgPSBDT05TT0xFX1NU RElOIHwgQ09OU09MRV9TVERPVVQgfCBDT05TT0xFX1NUREVSUjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL2dhZGdldC9jb21wb3NpdGUuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9jb21wb3NpdGUu YwppbmRleCA5NzhmZGQxLi5mZDcwZTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQv Y29tcG9zaXRlLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2NvbXBvc2l0ZS5jCkBAIC05MDMs OSArOTAzLDYgQEAgc3RhdGljIGludCBfX2luaXQgY29tcG9zaXRlX2JpbmQoc3RydWN0IHVzYl9n YWRnZXQgKmdhZGdldCkKIAlpbnQJCQkJc3RhdHVzID0gLUVOT01FTTsKIAogCWNkZXYgPSB4emFs bG9jKHNpemVvZiAqY2Rldik7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm4gc3RhdHVzOwotCiAJY2Rl di0+Z2FkZ2V0ID0gZ2FkZ2V0OwogCXNldF9nYWRnZXRfZGF0YShnYWRnZXQsIGNkZXYpOwogCUlO SVRfTElTVF9IRUFEKCZjZGV2LT5jb25maWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dh ZGdldC9mc2xfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnNsX3VkYy5jCmluZGV4IDQ4ZmQw YjUuLjIwYTUwNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mc2xfdWRjLmMKKysr IGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZzbF91ZGMuYwpAQCAtMTAxNiw4ICsxMDE2LDYgQEAgZnNs X2FsbG9jX3JlcXVlc3Qoc3RydWN0IHVzYl9lcCAqX2VwKQogCXN0cnVjdCBmc2xfcmVxICpyZXE7 CiAKIAlyZXEgPSB4emFsbG9jKHNpemVvZiAqcmVxKTsKLQlpZiAoIXJlcSkKLQkJcmV0dXJuIE5V TEw7CiAKIAlJTklUX0xJU1RfSEVBRCgmcmVxLT5xdWV1ZSk7CiAKQEAgLTIwOTUsNyArMjA5Myw3 IEBAIHN0YXRpYyBpbnQgc3RydWN0X3VkY19zZXR1cChzdHJ1Y3QgZnNsX3VkYyAqdWRjLAogCXVk Yy0+c3RhdHVzX3JlcSA9IGNvbnRhaW5lcl9vZihmc2xfYWxsb2NfcmVxdWVzdChOVUxMKSwKIAkJ CXN0cnVjdCBmc2xfcmVxLCByZXEpOwogCS8qIGFsbG9jYXRlIGEgc21hbGwgYW1vdW50IG9mIG1l bW9yeSB0byBnZXQgdmFsaWQgYWRkcmVzcyAqLwotCXVkYy0+c3RhdHVzX3JlcS0+cmVxLmJ1ZiA9 IGttYWxsb2MoOCwgR0ZQX0tFUk5FTCk7CisJdWRjLT5zdGF0dXNfcmVxLT5yZXEuYnVmID0geG1h bGxvYyg4KTsKIAl1ZGMtPnJlc3VtZV9zdGF0ZSA9IFVTQl9TVEFURV9OT1RBVFRBQ0hFRDsKIAl1 ZGMtPnVzYl9zdGF0ZSA9IFVTQl9TVEFURV9QT1dFUkVEOwogCXVkYy0+ZXAwX2RpciA9IDA7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvdV9zZXJpYWwuYyBiL2RyaXZlcnMvdXNiL2dh ZGdldC91X3NlcmlhbC5jCmluZGV4IGNiNjViMTkuLmQzYmFlZDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdXNiL2dhZGdldC91X3NlcmlhbC5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC91X3Nlcmlh bC5jCkBAIC0yMDUsMTEgKzIwNSw3IEBAIGdzX2FsbG9jX3JlcShzdHJ1Y3QgdXNiX2VwICplcCwg dW5zaWduZWQgbGVuKQogCiAJaWYgKHJlcSAhPSBOVUxMKSB7CiAJCXJlcS0+bGVuZ3RoID0gbGVu OwotCQlyZXEtPmJ1ZiA9IG1lbWFsaWduKDMyLCBsZW4pOwotCQlpZiAocmVxLT5idWYgPT0gTlVM TCkgewotCQkJdXNiX2VwX2ZyZWVfcmVxdWVzdChlcCwgcmVxKTsKLQkJCXJldHVybiBOVUxMOwot CQl9CisJCXJlcS0+YnVmID0geG1lbWFsaWduKDMyLCBsZW4pOwogCX0KIAogCXJldHVybiByZXE7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC5oIGIvaW5jbHVkZS9uZXQuaAppbmRleCAyZDI4ZmVl Li4zM2Q4YTMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC5oCisrKyBiL2luY2x1ZGUvbmV0LmgK QEAgLTM5Miw3ICszOTIsNyBAQCBzdHJ1Y3QgbmV0X2Nvbm5lY3Rpb24gewogCiBzdGF0aWMgaW5s aW5lIGNoYXIgKm5ldF9hbGxvY19wYWNrZXQodm9pZCkKIHsKLQlyZXR1cm4gbWVtYWxpZ24oMzIs IFBLVFNJWkUpOworCXJldHVybiB4bWVtYWxpZ24oMzIsIFBLVFNJWkUpOwogfQogCiBzdHJ1Y3Qg bmV0X2Nvbm5lY3Rpb24gKm5ldF91ZHBfbmV3KElQYWRkcl90IGRlc3QsIHVpbnQxNl90IGRwb3J0 LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZnVuY3MuaCBiL2luY2x1ZGUveGZ1bmNzLmgKaW5kZXgg MjIyZWE0MS4uMjYxYWFhNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZnVuY3MuaAorKysgYi9pbmNs dWRlL3hmdW5jcy5oCkBAIC03LDUgKzcsNiBAQCB2b2lkICp4bWFsbG9jKHNpemVfdCBzaXplKTsK IHZvaWQgKnhyZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpOwogdm9pZCAqeHphbGxvYyhz aXplX3Qgc2l6ZSk7CiBjaGFyICp4c3RyZHVwKGNvbnN0IGNoYXIgKnMpOwordm9pZCogeG1lbWFs aWduKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBieXRlcyk7CiAKICNlbmRpZiAvKiBfX1hGVU5D U19IICovCmRpZmYgLS1naXQgYS9saWIveGZ1bmNzLmMgYi9saWIveGZ1bmNzLmMKaW5kZXggMDFh NjRjZi4uNzEzOTRmZiAxMDA2NDQKLS0tIGEvbGliL3hmdW5jcy5jCisrKyBiL2xpYi94ZnVuY3Mu YwpAQCAtNzAsMyArNzAsMTEgQEAgY2hhciAqeHN0cmR1cChjb25zdCBjaGFyICpzKQogfQogRVhQ T1JUX1NZTUJPTCh4c3RyZHVwKTsKIAordm9pZCogeG1lbWFsaWduKHNpemVfdCBhbGlnbm1lbnQs IHNpemVfdCBieXRlcykKK3sKKwl2b2lkICpwID0gbWVtYWxpZ24oYWxpZ25tZW50LCBieXRlcyk7 CisJaWYgKCFwKQorCQlwYW5pYygiRVJST1I6IG91dCBvZiBtZW1vcnlcbiIpOworCXJldHVybiBw OworfQorRVhQT1JUX1NZTUJPTCh4bWVtYWxpZ24pOwpkaWZmIC0tZ2l0IGEvbmV0L25ldC5jIGIv bmV0L25ldC5jCmluZGV4IDliNGFiODkuLjc0OTUzNTcgMTAwNjQ0Ci0tLSBhL25ldC9uZXQuYwor KysgYi9uZXQvbmV0LmMKQEAgLTM2NSw3ICszNjUsNyBAQCBzdGF0aWMgc3RydWN0IG5ldF9jb25u ZWN0aW9uICpuZXRfbmV3KElQYWRkcl90IGRlc3QsIHJ4X2hhbmRsZXJfZiAqaGFuZGxlcikKIAkJ cmV0dXJuIEVSUl9QVFIoLUVORVRET1dOKTsKIAogCWNvbiA9IHh6YWxsb2Moc2l6ZW9mKCpjb24p KTsKLQljb24tPnBhY2tldCA9IG1lbWFsaWduKDMyLCBQS1RTSVpFKTsKKwljb24tPnBhY2tldCA9 IHhtZW1hbGlnbigzMiwgUEtUU0laRSk7CiAJbWVtc2V0KGNvbi0+cGFja2V0LCAwLCBQS1RTSVpF KTsKIAogCWNvbi0+ZXQgPSAoc3RydWN0IGV0aGVybmV0ICopY29uLT5wYWNrZXQ7CkBAIC02NTgs NyArNjU4LDcgQEAgc3RhdGljIGludCBuZXRfaW5pdCh2b2lkKQogCWludCBpOwogCiAJZm9yIChp ID0gMDsgaSA8IFBLVEJVRlNSWDsgaSsrKQotCQlOZXRSeFBhY2tldHNbaV0gPSAgbWVtYWxpZ24o MzIsIFBLVFNJWkUpOworCQlOZXRSeFBhY2tldHNbaV0gPSAgeG1lbWFsaWduKDMyLCBQS1RTSVpF KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9iYXNpYy9kb2Nwcm9jLmMg Yi9zY3JpcHRzL2Jhc2ljL2RvY3Byb2MuYwppbmRleCAwZDRmNWU3Li45ZjY1MzVkIDEwMDY0NAot LS0gYS9zY3JpcHRzL2Jhc2ljL2RvY3Byb2MuYworKysgYi9zY3JpcHRzL2Jhc2ljL2RvY3Byb2Mu YwpAQCAtMTIyLDggKzEyMiwxMSBAQCBpbnQgc3ltZmlsZWNudCA9IDA7CiAKIHZvaWQgYWRkX25l d19zeW1ib2woc3RydWN0IHN5bWZpbGUgKnN5bSwgY2hhciAqIHN5bW5hbWUpCiB7Ci0Jc3ltLT5z eW1ib2xsaXN0ID0KLSAgICAgICAgICByZWFsbG9jKHN5bS0+c3ltYm9sbGlzdCwgKHN5bS0+c3lt Ym9sY250ICsgMSkgKiBzaXplb2YoY2hhciAqKSk7CisJc3ltLT5zeW1ib2xsaXN0ID0gcmVhbGxv YyhzeW0tPnN5bWJvbGxpc3QsIChzeW0tPnN5bWJvbGNudCArIDEpICogc2l6ZW9mKGNoYXIgKikp OworCWlmICghc3ltLT5zeW1ib2xsaXN0KSB7CisJCWZwcmludGYoc3RkZXJyLCAiZG9jcHJvYzog b3V0IG9mIG1lbW9yeVxuIik7CisJCWV4aXQoMSk7CisJfQogCXN5bS0+c3ltYm9sbGlzdFtzeW0t PnN5bWJvbGNudCsrXS5uYW1lID0gc3RyZHVwKHN5bW5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9z Y3JpcHRzL21vZC9tb2Rwb3N0LmMgYi9zY3JpcHRzL21vZC9tb2Rwb3N0LmMKaW5kZXggNDA3NWMz NS4uMDhiNzViNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tb2QvbW9kcG9zdC5jCisrKyBiL3Njcmlw dHMvbW9kL21vZHBvc3QuYwpAQCAtMTMxNyw3ICsxMzE3LDcgQEAgdm9pZCBidWZfd3JpdGUoc3Ry dWN0IGJ1ZmZlciAqYnVmLCBjb25zdCBjaGFyICpzLCBpbnQgbGVuKQogewogCWlmIChidWYtPnNp emUgLSBidWYtPnBvcyA8IGxlbikgewogCQlidWYtPnNpemUgKz0gbGVuICsgU1o7Ci0JCWJ1Zi0+ cCA9IHJlYWxsb2MoYnVmLT5wLCBidWYtPnNpemUpOworCQlidWYtPnAgPSBOT0ZBSUwocmVhbGxv YyhidWYtPnAsIGJ1Zi0+c2l6ZSkpOwogCX0KIAlzdHJuY3B5KGJ1Zi0+cCArIGJ1Zi0+cG9zLCBz LCBsZW4pOwogCWJ1Zi0+cG9zICs9IGxlbjsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Jh cmVib3gK