Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933027AbWKLR1q (ORCPT ); Sun, 12 Nov 2006 12:27:46 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933028AbWKLR1p (ORCPT ); Sun, 12 Nov 2006 12:27:45 -0500 Received: from bay0-omc1-s15.bay0.hotmail.com ([65.54.246.87]:1851 "EHLO bay0-omc1-s15.bay0.hotmail.com") by vger.kernel.org with ESMTP id S933027AbWKLR1o (ORCPT ); Sun, 12 Nov 2006 12:27:44 -0500 Message-ID: X-Originating-IP: [80.178.43.168] X-Originating-Email: [yan_952@hotmail.com] From: "Burman Yan" To: trivial@kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATH] Replace kmalloc+memset with kzalloc 6/17 Date: Sun, 12 Nov 2006 19:27:38 +0200 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_4871_7087_7bcc" X-OriginalArrivalTime: 12 Nov 2006 17:27:43.0816 (UTC) FILETIME=[DCC99480:01C7067F] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 38638 Lines: 645 This is a multi-part message in MIME format. ------=_NextPart_000_4871_7087_7bcc Content-Type: text/plain; format=flowed Part 6 of the kmalloc+memset to kzalloc patch Yan Burman _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ ------=_NextPart_000_4871_7087_7bcc Content-Type: application/octet-stream; name="kzalloc_drivers2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kzalloc_drivers2.patch" UmVwbGFjZSBrbWFsbG9jK21lbXNldCB3aXRoIGt6YWxsb2MgClBhdGNoIDYv MTcKClNpZ25lZC1vZmYtYnk6IFlhbiBCdXJtYW4gPHlhbl85NTJAaG90bWFp bC5jb20+CgpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL21hY2ludG9zaC9tYWNpb19hc2ljLmMgbGludXgtMi42LjE5LXJjNV9r emFsbG9jL2RyaXZlcnMvbWFjaW50b3NoL21hY2lvX2FzaWMuYwotLS0gbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWFjaW50b3NoL21hY2lvX2Fz aWMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvbWFjaW50b3NoL21h Y2lvX2FzaWMuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIw MApAQCAtNDYxLDEwICs0NjEsOSBAQCBzdGF0aWMgc3RydWN0IG1hY2lvX2Rl diAqIG1hY2lvX2FkZF9vbmVfCiAJaWYgKG5wID09IE5VTEwpCiAJCXJldHVy biBOVUxMOwogCi0JZGV2ID0ga21hbGxvYyhzaXplb2YoKmRldiksIEdGUF9L RVJORUwpOworCWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkZXYpLCBHRlBfS0VS TkVMKTsKIAlpZiAoIWRldikKIAkJcmV0dXJuIE5VTEw7Ci0JbWVtc2V0KGRl diwgMCwgc2l6ZW9mKCpkZXYpKTsKIAogCWRldi0+YnVzID0gJmNoaXAtPmxi dXM7CiAJZGV2LT5tZWRpYV9iYXkgPSBpbl9iYXk7CmRpZmYgLXJ1YnAgbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWFjaW50b3NoL3NtdS5jIGxp bnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21hY2ludG9zaC9zbXUu YwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWFjaW50b3No L3NtdS5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisr KyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9tYWNpbnRvc2gv c211LmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAg LTEwNTIsMTAgKzEwNTIsOSBAQCBzdGF0aWMgaW50IHNtdV9vcGVuKHN0cnVj dCBpbm9kZSAqaW5vZGUsCiAJc3RydWN0IHNtdV9wcml2YXRlICpwcDsKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JcHAgPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3Qgc211X3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKKwlwcCA9IGt6YWxs b2Moc2l6ZW9mKHN0cnVjdCBzbXVfcHJpdmF0ZSksIEdGUF9LRVJORUwpOwog CWlmIChwcCA9PSAwKQogCQlyZXR1cm4gLUVOT01FTTsKLQltZW1zZXQocHAs IDAsIHNpemVvZihzdHJ1Y3Qgc211X3ByaXZhdGUpKTsKIAlzcGluX2xvY2tf aW5pdCgmcHAtPmxvY2spOwogCXBwLT5tb2RlID0gc211X2ZpbGVfY29tbWFu ZHM7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcHAtPndhaXQpOwpkaWZmIC1y dWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL21hY2ludG9zaC90 aGVybV9hZHQ3NDZ4LmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZl cnMvbWFjaW50b3NoL3RoZXJtX2FkdDc0NnguYwotLS0gbGludXgtMi42LjE5 LXJjNV9vcmlnL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX2FkdDc0NnguYwky MDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgt Mi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX2Fk dDc0NnguYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApA QCAtMzc5LDEyICszNzksMTEgQEAgc3RhdGljIGludCBhdHRhY2hfb25lX3Ro ZXJtb3N0YXQoc3RydWN0IAogCQlyZXR1cm4gMDsKIAogCXRoID0gKHN0cnVj dCB0aGVybW9zdGF0ICopCi0JCWttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0aGVy bW9zdGF0KSwgR0ZQX0tFUk5FTCk7CisJCWt6YWxsb2Moc2l6ZW9mKHN0cnVj dCB0aGVybW9zdGF0KSwgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoIXRoKQogCQly ZXR1cm4gLUVOT01FTTsKIAotCW1lbXNldCh0aCwgMCwgc2l6ZW9mKCp0aCkp OwogCXRoLT5jbHQuYWRkciA9IGFkZHI7CiAJdGgtPmNsdC5hZGFwdGVyID0g YWRhcHRlcjsKIAl0aC0+Y2x0LmRyaXZlciA9ICZ0aGVybW9zdGF0X2RyaXZl cjsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9t YWNpbnRvc2gvdGhlcm1fcG03Mi5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxv Yy9kcml2ZXJzL21hY2ludG9zaC90aGVybV9wbTcyLmMKLS0tIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL21hY2ludG9zaC90aGVybV9wbTcyLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21hY2ludG9zaC90aGVybV9w bTcyLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAg LTMxOCwxMCArMzE4LDkgQEAgc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50ICph dHRhY2hfaTJjX2NoaQogCWlmIChhZGFwID09IE5VTEwpCiAJCXJldHVybiBO VUxMOwogCi0JY2x0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGkyY19jbGll bnQpLCBHRlBfS0VSTkVMKTsKKwljbHQgPSBremFsbG9jKHNpemVvZihzdHJ1 Y3QgaTJjX2NsaWVudCksIEdGUF9LRVJORUwpOwogCWlmIChjbHQgPT0gTlVM TCkKIAkJcmV0dXJuIE5VTEw7Ci0JbWVtc2V0KGNsdCwgMCwgc2l6ZW9mKHN0 cnVjdCBpMmNfY2xpZW50KSk7CiAKIAljbHQtPmFkZHIgPSAoaWQgPj4gMSkg JiAweDdmOwogCWNsdC0+YWRhcHRlciA9IGFkYXA7CmRpZmYgLXJ1YnAgbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX3dp bmR0dW5uZWwuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9t YWNpbnRvc2gvdGhlcm1fd2luZHR1bm5lbC5jCi0tLSBsaW51eC0yLjYuMTkt cmM1X29yaWcvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fd2luZHR1bm5lbC5j CTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1f d2luZHR1bm5lbC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICsw MjAwCkBAIC00MzAsOSArNDMwLDggQEAgZG9fcHJvYmUoIHN0cnVjdCBpMmNf YWRhcHRlciAqYWRhcHRlciwgaQogCQkJCSAgICAgfCBJMkNfRlVOQ19TTUJV U19XUklURV9CWVRFKSApCiAJCXJldHVybiAwOwogCi0JaWYoICEoY2w9a21h bGxvYyhzaXplb2YoKmNsKSwgR0ZQX0tFUk5FTCkpICkKKwlpZiggIShjbD1r emFsbG9jKHNpemVvZigqY2wpLCBHRlBfS0VSTkVMKSkgKQogCQlyZXR1cm4g LUVOT01FTTsKLQltZW1zZXQoIGNsLCAwLCBzaXplb2Yoc3RydWN0IGkyY19j bGllbnQpICk7CiAKIAljbC0+YWRkciA9IGFkZHI7CiAJY2wtPmFkYXB0ZXIg PSBhZGFwdGVyOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9k cml2ZXJzL21hY2ludG9zaC93aW5kZmFybV9sbTc1X3NlbnNvci5jIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21hY2ludG9zaC93aW5kZmFy bV9sbTc1X3NlbnNvci5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJp dmVycy9tYWNpbnRvc2gvd2luZGZhcm1fbG03NV9zZW5zb3IuYwkyMDA2LTEx LTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2RyaXZlcnMvbWFjaW50b3NoL3dpbmRmYXJtX2xtNzVf c2Vuc29yLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAK QEAgLTExNywxMCArMTE3LDkgQEAgc3RhdGljIHN0cnVjdCB3Zl9sbTc1X3Nl bnNvciAqd2ZfbG03NV9jcgogCURCRygid2ZfbG03NTogY3JlYXRpbmcgICVz IGRldmljZSBhdCBhZGRyZXNzIDB4JTAyeFxuIiwKIAkgICAgZHMxNzc1ID8g ImRzMTc3NSIgOiAibG03NSIsIGFkZHIpOwogCi0JbG0gPSBrbWFsbG9jKHNp emVvZihzdHJ1Y3Qgd2ZfbG03NV9zZW5zb3IpLCBHRlBfS0VSTkVMKTsKKwls bSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB3Zl9sbTc1X3NlbnNvciksIEdG UF9LRVJORUwpOwogCWlmIChsbSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsK LQltZW1zZXQobG0sIDAsIHNpemVvZihzdHJ1Y3Qgd2ZfbG03NV9zZW5zb3Ip KTsKIAogCS8qIFVzdWFsIHJhbnQgYWJvdXQgc2Vuc29yIG5hbWVzIG5vdCBi ZWVpbmcgdmVyeSBjb25zaXN0ZW50IGluCiAJICogdGhlIGRldmljZS10cmVl LCBvaCB3ZWxsIC4uLgpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3Jp Zy9kcml2ZXJzL21kL2RtLWVtYy5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxv Yy9kcml2ZXJzL21kL2RtLWVtYy5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29y aWcvZHJpdmVycy9tZC9kbS1lbWMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvbWQvZG0tZW1jLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAw MDAgKzAyMDAKQEAgLTIyNCwxMiArMjI0LDEwIEBAIGZhaWxfcGF0aDoKIAog c3RhdGljIHN0cnVjdCBlbWNfaGFuZGxlciAqYWxsb2NfZW1jX2hhbmRsZXIo dm9pZCkKIHsKLQlzdHJ1Y3QgZW1jX2hhbmRsZXIgKmggPSBrbWFsbG9jKHNp emVvZigqaCksIEdGUF9LRVJORUwpOworCXN0cnVjdCBlbWNfaGFuZGxlciAq aCA9IGt6YWxsb2Moc2l6ZW9mKCpoKSwgR0ZQX0tFUk5FTCk7CiAKLQlpZiAo aCkgewotCQltZW1zZXQoaCwgMCwgc2l6ZW9mKCpoKSk7CisJaWYgKGgpCiAJ CXNwaW5fbG9ja19pbml0KCZoLT5sb2NrKTsKLQl9CiAKIAlyZXR1cm4gaDsK IH0KZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9t ZC9kbS1ody1oYW5kbGVyLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvbWQvZG0taHctaGFuZGxlci5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvZHJpdmVycy9tZC9kbS1ody1oYW5kbGVyLmMJMjAwNi0xMS0wOSAx MjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVf a3phbGxvYy9kcml2ZXJzL21kL2RtLWh3LWhhbmRsZXIuYwkyMDA2LTExLTEx IDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtOTEsMTIgKzkxLDEwIEBA IHZvaWQgZG1fcHV0X2h3X2hhbmRsZXIoc3RydWN0IGh3X2hhbmRsZXIKIAog c3RhdGljIHN0cnVjdCBod2hfaW50ZXJuYWwgKl9hbGxvY19od19oYW5kbGVy KHN0cnVjdCBod19oYW5kbGVyX3R5cGUgKmh3aHQpCiB7Ci0Jc3RydWN0IGh3 aF9pbnRlcm5hbCAqaHdoaSA9IGttYWxsb2Moc2l6ZW9mKCpod2hpKSwgR0ZQ X0tFUk5FTCk7CisJc3RydWN0IGh3aF9pbnRlcm5hbCAqaHdoaSA9IGt6YWxs b2Moc2l6ZW9mKCpod2hpKSwgR0ZQX0tFUk5FTCk7CiAKLQlpZiAoaHdoaSkg ewotCQltZW1zZXQoaHdoaSwgMCwgc2l6ZW9mKCpod2hpKSk7CisJaWYgKGh3 aGkpCiAJCWh3aGktPmh3aHQgPSAqaHdodDsKLQl9CiAKIAlyZXR1cm4gaHdo aTsKIH0KZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVy cy9tZC9kbS1wYXRoLXNlbGVjdG9yLmMgbGludXgtMi42LjE5LXJjNV9remFs bG9jL2RyaXZlcnMvbWQvZG0tcGF0aC1zZWxlY3Rvci5jCi0tLSBsaW51eC0y LjYuMTktcmM1X29yaWcvZHJpdmVycy9tZC9kbS1wYXRoLXNlbGVjdG9yLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21kL2RtLXBhdGgtc2VsZWN0 b3IuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAt OTQsMTIgKzk0LDEwIEBAIG91dDoKIAogc3RhdGljIHN0cnVjdCBwc19pbnRl cm5hbCAqX2FsbG9jX3BhdGhfc2VsZWN0b3Ioc3RydWN0IHBhdGhfc2VsZWN0 b3JfdHlwZSAqcHN0KQogewotCXN0cnVjdCBwc19pbnRlcm5hbCAqcHNpID0g a21hbGxvYyhzaXplb2YoKnBzaSksIEdGUF9LRVJORUwpOworCXN0cnVjdCBw c19pbnRlcm5hbCAqcHNpID0ga3phbGxvYyhzaXplb2YoKnBzaSksIEdGUF9L RVJORUwpOwogCi0JaWYgKHBzaSkgewotCQltZW1zZXQocHNpLCAwLCBzaXpl b2YoKnBzaSkpOworCWlmIChwc2kpCiAJCXBzaS0+cHN0ID0gKnBzdDsKLQl9 CiAKIAlyZXR1cm4gcHNpOwogfQpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1y YzVfb3JpZy9kcml2ZXJzL21kL2RtLXJhaWQxLmMgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvbWQvZG0tcmFpZDEuYwotLS0gbGludXgtMi42 LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWQvZG0tcmFpZDEuYwkyMDA2LTExLTA5 IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvbWQvZG0tcmFpZDEuYwkyMDA2LTExLTExIDIy OjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtODk0LDEzICs4OTQsMTIgQEAg c3RhdGljIHN0cnVjdCBtaXJyb3Jfc2V0ICphbGxvY19jb250ZXh0KAogCiAJ bGVuID0gc2l6ZW9mKCptcykgKyAoc2l6ZW9mKG1zLT5taXJyb3JbMF0pICog bnJfbWlycm9ycyk7CiAKLQltcyA9IGttYWxsb2MobGVuLCBHRlBfS0VSTkVM KTsKKwltcyA9IGt6YWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKIAlpZiAoIW1z KSB7CiAJCXRpLT5lcnJvciA9ICJDYW5ub3QgYWxsb2NhdGUgbWlycm9yIGNv bnRleHQiOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQltZW1zZXQobXMsIDAs IGxlbik7CiAJc3Bpbl9sb2NrX2luaXQoJm1zLT5sb2NrKTsKIAogCW1zLT50 aSA9IHRpOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL21kL2RtLXRhYmxlLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvbWQvZG0tdGFibGUuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmln L2RyaXZlcnMvbWQvZG0tdGFibGUuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvbWQvZG0tdGFibGUuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAw MDAwMCArMDIwMApAQCAtMjEzLDEyICsyMTMsMTEgQEAgc3RhdGljIGludCBh bGxvY190YXJnZXRzKHN0cnVjdCBkbV90YWJsZQogaW50IGRtX3RhYmxlX2Ny ZWF0ZShzdHJ1Y3QgZG1fdGFibGUgKipyZXN1bHQsIGludCBtb2RlLAogCQkg ICAgdW5zaWduZWQgbnVtX3RhcmdldHMsIHN0cnVjdCBtYXBwZWRfZGV2aWNl ICptZCkKIHsKLQlzdHJ1Y3QgZG1fdGFibGUgKnQgPSBrbWFsbG9jKHNpemVv ZigqdCksIEdGUF9LRVJORUwpOworCXN0cnVjdCBkbV90YWJsZSAqdCA9IGt6 YWxsb2Moc2l6ZW9mKCp0KSwgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoIXQpCiAJ CXJldHVybiAtRU5PTUVNOwogCi0JbWVtc2V0KHQsIDAsIHNpemVvZigqdCkp OwogCUlOSVRfTElTVF9IRUFEKCZ0LT5kZXZpY2VzKTsKIAlhdG9taWNfc2V0 KCZ0LT5ob2xkZXJzLCAxKTsKIApkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1y YzVfb3JpZy9kcml2ZXJzL21kL2RtLXRhcmdldC5jIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9kcml2ZXJzL21kL2RtLXRhcmdldC5jCi0tLSBsaW51eC0y LjYuMTktcmM1X29yaWcvZHJpdmVycy9tZC9kbS10YXJnZXQuYwkyMDA2LTEx LTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2RyaXZlcnMvbWQvZG0tdGFyZ2V0LmMJMjAwNi0xMS0x MSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTg4LDEyICs4OCwxMCBA QCB2b2lkIGRtX3B1dF90YXJnZXRfdHlwZShzdHJ1Y3QgdGFyZ2V0X3R5CiAK IHN0YXRpYyBzdHJ1Y3QgdHRfaW50ZXJuYWwgKmFsbG9jX3RhcmdldChzdHJ1 Y3QgdGFyZ2V0X3R5cGUgKnQpCiB7Ci0Jc3RydWN0IHR0X2ludGVybmFsICp0 aSA9IGttYWxsb2Moc2l6ZW9mKCp0aSksIEdGUF9LRVJORUwpOworCXN0cnVj dCB0dF9pbnRlcm5hbCAqdGkgPSBremFsbG9jKHNpemVvZigqdGkpLCBHRlBf S0VSTkVMKTsKIAotCWlmICh0aSkgewotCQltZW1zZXQodGksIDAsIHNpemVv ZigqdGkpKTsKKwlpZiAodGkpCiAJCXRpLT50dCA9ICp0OwotCX0KIAogCXJl dHVybiB0aTsKIH0KZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcv ZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYyBsaW51eC0yLjYuMTkt cmM1X2t6YWxsb2MvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYwot LS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWVzc2FnZS9mdXNp b24vbXB0Y3RsLmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAy MDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21lc3Nh Z2UvZnVzaW9uL21wdGN0bC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAw MDAwICswMjAwCkBAIC05NjIsMTAgKzk2Miw5IEBAIGtidWZfYWxsb2NfMl9z Z2woaW50IGJ5dGVzLCB1MzIgc2dkaXIsIGkKIAkgKiBzdHJ1Y3R1cmVzIGZv ciB0aGUgU0cgZWxlbWVudHMuCiAJICovCiAJaSA9IE1BWF9TR0xfQllURVMg LyA4OwotCWJ1Zmxpc3QgPSBrbWFsbG9jKGksIEdGUF9VU0VSKTsKKwlidWZs aXN0ID0ga3phbGxvYyhpLCBHRlBfVVNFUik7CiAJaWYgKGJ1Zmxpc3QgPT0g TlVMTCkKIAkJcmV0dXJuIE5VTEw7Ci0JbWVtc2V0KGJ1Zmxpc3QsIDAsIGkp OwogCWJ1Zmxpc3RfZW50ID0gMDsKIAogCS8qIEFsbG9jYXRlIGEgc2luZ2xl IGJsb2NrIG9mIG1lbW9yeSB0byBzdG9yZSB0aGUgc2cgZWxlbWVudHMgYW5k CkBAIC0xMzc3LDEzICsxMzc2LDEyIEBAIG1wdGN0bF9nZXR0YXJnZXRpbmZv ICh1bnNpZ25lZCBsb25nIGFyZykKIAkgKiAgICAgIDE1LSA4OiBCdXMgTnVt YmVyCiAJICogICAgICAgNy0gMDogVGFyZ2V0IElECiAJICovCi0JcG1lbSA9 IGttYWxsb2MobnVtQnl0ZXMsIEdGUF9LRVJORUwpOworCXBtZW0gPSBremFs bG9jKG51bUJ5dGVzLCBHRlBfS0VSTkVMKTsKIAlpZiAocG1lbSA9PSBOVUxM KSB7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6Om1wdGN0bF9nZXR0YXJnZXRp bmZvKCkgQCVkIC0gbm8gbWVtb3J5IGF2YWlsYWJsZSFcbiIsCiAJCQkJX19G SUxFX18sIF9fTElORV9fKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCW1l bXNldChwbWVtLCAwLCBudW1CeXRlcyk7CiAJcGRhdGEgPSAgKGludCAqKSBw bWVtOwogCiAJLyogR2V0IG51bWJlciBvZiBkZXZpY2VzCkBAIC0xNjE3LDEy ICsxNjE1LDExIEBAIG1wdGN0bF9ldmVudGVuYWJsZSAodW5zaWduZWQgbG9u ZyBhcmcpCiAJCS8qIEhhdmUgbm90IHlldCBhbGxvY2F0ZWQgbWVtb3J5IC0g ZG8gc28gbm93LgogCQkgKi8KIAkJaW50IHN6ID0gTVBUQ1RMX0VWRU5UX0xP R19TSVpFICogc2l6ZW9mKE1QVF9JT0NUTF9FVkVOVFMpOwotCQlpb2MtPmV2 ZW50cyA9IGttYWxsb2Moc3osIEdGUF9LRVJORUwpOworCQlpb2MtPmV2ZW50 cyA9IGt6YWxsb2Moc3osIEdGUF9LRVJORUwpOwogCQlpZiAoaW9jLT5ldmVu dHMgPT0gTlVMTCkgewogCQkJcHJpbnRrKEtFUk5fRVJSIE1ZTkFNICI6IEVS Uk9SIC0gSW5zdWZmaWNpZW50IG1lbW9yeSB0byBhZGQgYWRhcHRlciFcbiIp OwogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KLQkJbWVtc2V0KGlvYy0+ZXZl bnRzLCAwLCBzeik7CiAJCWlvYy0+YWxsb2NfdG90YWwgKz0gc3o7CiAKIAkJ aW9jLT5ldmVudENvbnRleHQgPSAwOwpAQCAtMjg4OCwxMyArMjg4NSwxMiBA QCBtcHRjdGxfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0CiAJ ICogQWxsb2NhdGUgYW5kIGluaXRlIGEgTVBUX0lPQ1RMIHN0cnVjdHVyZQog CSovCiAJc3ogPSBzaXplb2YgKE1QVF9JT0NUTCk7Ci0JbWVtID0ga21hbGxv YyhzeiwgR0ZQX0tFUk5FTCk7CisJbWVtID0ga3phbGxvYyhzeiwgR0ZQX0tF Uk5FTCk7CiAJaWYgKG1lbSA9PSBOVUxMKSB7CiAJCWVyciA9IC1FTk9NRU07 CiAJCWdvdG8gb3V0X2ZhaWw7CiAJfQogCi0JbWVtc2V0KG1lbSwgMCwgc3op OwogCWlvYy0+aW9jdGwgPSAoTVBUX0lPQ1RMICopIG1lbTsKIAlpb2MtPmlv Y3RsLT5pb2MgPSBpb2M7CiAJbXV0ZXhfaW5pdCgmaW9jLT5pb2N0bC0+aW9j dGxfbXV0ZXgpOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9k cml2ZXJzL21mZC9tY3AtY29yZS5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxv Yy9kcml2ZXJzL21mZC9tY3AtY29yZS5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvZHJpdmVycy9tZmQvbWNwLWNvcmUuYwkyMDA2LTExLTA5IDEyOjE2 OjIwLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFs bG9jL2RyaXZlcnMvbWZkL21jcC1jb3JlLmMJMjAwNi0xMS0xMSAyMjo0NDow NC4wMDAwMDAwMDAgKzAyMDAKQEAgLTIwMCw5ICsyMDAsOCBAQCBzdHJ1Y3Qg bWNwICptY3BfaG9zdF9hbGxvYyhzdHJ1Y3QgZGV2aWNlCiB7CiAJc3RydWN0 IG1jcCAqbWNwOwogCi0JbWNwID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1j cCkgKyBzaXplLCBHRlBfS0VSTkVMKTsKKwltY3AgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3QgbWNwKSArIHNpemUsIEdGUF9LRVJORUwpOwogCWlmIChtY3Ap IHsKLQkJbWVtc2V0KG1jcCwgMCwgc2l6ZW9mKHN0cnVjdCBtY3ApICsgc2l6 ZSk7CiAJCXNwaW5fbG9ja19pbml0KCZtY3AtPmxvY2spOwogCQltY3AtPmF0 dGFjaGVkX2RldmljZS5wYXJlbnQgPSBwYXJlbnQ7CiAJCW1jcC0+YXR0YWNo ZWRfZGV2aWNlLmJ1cyA9ICZtY3BfYnVzX3R5cGU7CmRpZmYgLXJ1YnAgbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWZkL3VjYjF4MDAtY29yZS5j IGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21mZC91Y2IxeDAw LWNvcmUuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWZk L3VjYjF4MDAtY29yZS5jCTIwMDYtMTEtMDkgMTI6MTY6MjAuMDAwMDAwMDAw ICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9t ZmQvdWNiMXgwMC1jb3JlLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAw MDAgKzAyMDAKQEAgLTQ4NCwxMyArNDg0LDExIEBAIHN0YXRpYyBpbnQgdWNi MXgwMF9wcm9iZShzdHJ1Y3QgbWNwICptY3AKIAkJZ290byBlcnJfZGlzYWJs ZTsKIAl9CiAKLQl1Y2IgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdWNiMXgw MCksIEdGUF9LRVJORUwpOworCXVjYiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCB1Y2IxeDAwKSwgR0ZQX0tFUk5FTCk7CiAJcmV0ID0gLUVOT01FTTsKIAlp ZiAoIXVjYikKIAkJZ290byBlcnJfZGlzYWJsZTsKIAotCW1lbXNldCh1Y2Is IDAsIHNpemVvZihzdHJ1Y3QgdWNiMXgwMCkpOwotCiAJdWNiLT5jZGV2LmNs YXNzID0gJnVjYjF4MDBfY2xhc3M7CiAJdWNiLT5jZGV2LmRldiA9ICZtY3At PmF0dGFjaGVkX2RldmljZTsKIAlzdHJsY3B5KHVjYi0+Y2Rldi5jbGFzc19p ZCwgInVjYjF4MDAiLCBzaXplb2YodWNiLT5jZGV2LmNsYXNzX2lkKSk7CmRp ZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWlzYy9p Ym1hc20vY29tbWFuZC5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2 ZXJzL21pc2MvaWJtYXNtL2NvbW1hbmQuYwotLS0gbGludXgtMi42LjE5LXJj NV9vcmlnL2RyaXZlcnMvbWlzYy9pYm1hc20vY29tbWFuZC5jCTIwMDYtMTEt MDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTkt cmM1X2t6YWxsb2MvZHJpdmVycy9taXNjL2libWFzbS9jb21tYW5kLmMJMjAw Ni0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTQxLDE4ICs0 MSwxNSBAQCBzdHJ1Y3QgY29tbWFuZCAqaWJtYXNtX25ld19jb21tYW5kKHN0 cnVjCiAJaWYgKGJ1ZmZlcl9zaXplID4gSUJNQVNNX0NNRF9NQVhfQlVGRkVS X1NJWkUpCiAJCXJldHVybiBOVUxMOwogCi0JY21kID0ga21hbGxvYyhzaXpl b2Yoc3RydWN0IGNvbW1hbmQpLCBHRlBfS0VSTkVMKTsKKwljbWQgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCksIEdGUF9LRVJORUwpOwogCWlm IChjbWQgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKLQltZW1zZXQoY21k LCAwLCBzaXplb2YoKmNtZCkpOwotCi0JY21kLT5idWZmZXIgPSBrbWFsbG9j KGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKKwljbWQtPmJ1ZmZlciA9IGt6 YWxsb2MoYnVmZmVyX3NpemUsIEdGUF9LRVJORUwpOwogCWlmIChjbWQtPmJ1 ZmZlciA9PSBOVUxMKSB7CiAJCWtmcmVlKGNtZCk7CiAJCXJldHVybiBOVUxM OwogCX0KLQltZW1zZXQoY21kLT5idWZmZXIsIDAsIGJ1ZmZlcl9zaXplKTsK IAljbWQtPmJ1ZmZlcl9zaXplID0gYnVmZmVyX3NpemU7CiAKIAlrb2JqZWN0 X2luaXQoJmNtZC0+a29iaik7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJj NV9vcmlnL2RyaXZlcnMvbWlzYy9pYm1hc20vaWJtYXNtZnMuYyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9taXNjL2libWFzbS9pYm1hc21m cy5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9taXNjL2li bWFzbS9pYm1hc21mcy5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAw ICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9t aXNjL2libWFzbS9pYm1hc21mcy5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAw MDAwMDAwICswMjAwCkBAIC01NjMsMTIgKzU2MywxMCBAQCBzdGF0aWMgc3Np emVfdCByZW1vdGVfc2V0dGluZ3NfZmlsZV93cml0CiAJaWYgKCpvZmZzZXQg IT0gMCkKIAkJcmV0dXJuIDA7CiAKLQlidWZmID0ga21hbGxvYyAoY291bnQg KyAxLCBHRlBfS0VSTkVMKTsKKwlidWZmID0ga3phbGxvYyAoY291bnQgKyAx LCBHRlBfS0VSTkVMKTsKIAlpZiAoIWJ1ZmYpCiAJCXJldHVybiAtRU5PTUVN OwogCi0JbWVtc2V0KGJ1ZmYsIDB4MCwgY291bnQgKyAxKTsKLQogCWlmIChj b3B5X2Zyb21fdXNlcihidWZmLCB1YnVmZiwgY291bnQpKSB7CiAJCWtmcmVl KGJ1ZmYpOwogCQlyZXR1cm4gLUVGQVVMVDsKZGlmZiAtcnVicCBsaW51eC0y LjYuMTktcmM1X29yaWcvZHJpdmVycy9taXNjL2libWFzbS9tb2R1bGUuYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9taXNjL2libWFzbS9t b2R1bGUuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbWlz Yy9pYm1hc20vbW9kdWxlLmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAw MDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJz L21pc2MvaWJtYXNtL21vZHVsZS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAw MDAwMDAwICswMjAwCkBAIC03NywxMyArNzcsMTIgQEAgc3RhdGljIGludCBf X2RldmluaXQgaWJtYXNtX2luaXRfb25lKHN0cgogCS8qIHZuYyBjbGllbnQg d29uJ3Qgd29yayB3aXRob3V0IGJ1cy1tYXN0ZXJpbmcgKi8KIAlwY2lfc2V0 X21hc3RlcihwZGV2KTsKIAotCXNwID0ga21hbGxvYyhzaXplb2Yoc3RydWN0 IHNlcnZpY2VfcHJvY2Vzc29yKSwgR0ZQX0tFUk5FTCk7CisJc3AgPSBremFs bG9jKHNpemVvZihzdHJ1Y3Qgc2VydmljZV9wcm9jZXNzb3IpLCBHRlBfS0VS TkVMKTsKIAlpZiAoc3AgPT0gTlVMTCkgewogCQlkZXZfZXJyKCZwZGV2LT5k ZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5XG4iKTsKIAkJcmVzdWx0 ID0gLUVOT01FTTsKIAkJZ290byBlcnJvcl9rbWFsbG9jOwogCX0KLQltZW1z ZXQoc3AsIDAsIHNpemVvZihzdHJ1Y3Qgc2VydmljZV9wcm9jZXNzb3IpKTsK IAogCXNwaW5fbG9ja19pbml0KCZzcC0+bG9jayk7CiAJSU5JVF9MSVNUX0hF QUQoJnNwLT5jb21tYW5kX3F1ZXVlKTsKZGlmZiAtcnVicCBsaW51eC0yLjYu MTktcmM1X29yaWcvZHJpdmVycy9tbWMvbW1jX2Jsb2NrLmMgbGludXgtMi42 LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvbW1jL21tY19ibG9jay5jCi0tLSBs aW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9tbWMvbW1jX2Jsb2NrLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL21tYy9tbWNfYmxvY2suYwky MDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNDE0LDE0 ICs0MTQsMTIgQEAgc3RhdGljIHN0cnVjdCBtbWNfYmxrX2RhdGEgKm1tY19i bGtfYWxsbwogCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKIAlfX3NldF9i aXQoZGV2aWR4LCBkZXZfdXNlKTsKIAotCW1kID0ga21hbGxvYyhzaXplb2Yo c3RydWN0IG1tY19ibGtfZGF0YSksIEdGUF9LRVJORUwpOworCW1kID0ga3ph bGxvYyhzaXplb2Yoc3RydWN0IG1tY19ibGtfZGF0YSksIEdGUF9LRVJORUwp OwogCWlmICghbWQpIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXQ7 CiAJfQogCi0JbWVtc2V0KG1kLCAwLCBzaXplb2Yoc3RydWN0IG1tY19ibGtf ZGF0YSkpOwotCiAJLyoKIAkgKiBTZXQgdGhlIHJlYWQtb25seSBzdGF0dXMg YmFzZWQgb24gdGhlIHN1cHBvcnRlZCBjb21tYW5kcwogCSAqIGFuZCB0aGUg d3JpdGUgcHJvdGVjdCBzd2l0Y2guCmRpZmYgLXJ1YnAgbGludXgtMi42LjE5 LXJjNV9vcmlnL2RyaXZlcnMvbW1jL21tY19zeXNmcy5jIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9kcml2ZXJzL21tYy9tbWNfc3lzZnMuYwotLS0gbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvbW1jL21tY19zeXNmcy5jCTIw MDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9tbWMvbW1jX3N5c2ZzLmMJMjAw Ni0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTI2MywxMCAr MjYzLDggQEAgc3RydWN0IG1tY19ob3N0ICptbWNfYWxsb2NfaG9zdF9zeXNm cyhpbgogewogCXN0cnVjdCBtbWNfaG9zdCAqaG9zdDsKIAotCWhvc3QgPSBr bWFsbG9jKHNpemVvZihzdHJ1Y3QgbW1jX2hvc3QpICsgZXh0cmEsIEdGUF9L RVJORUwpOworCWhvc3QgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW1jX2hv c3QpICsgZXh0cmEsIEdGUF9LRVJORUwpOwogCWlmIChob3N0KSB7Ci0JCW1l bXNldChob3N0LCAwLCBzaXplb2Yoc3RydWN0IG1tY19ob3N0KSArIGV4dHJh KTsKLQogCQlob3N0LT5kZXYgPSBkZXY7CiAJCWhvc3QtPmNsYXNzX2Rldi5k ZXYgPSBob3N0LT5kZXY7CiAJCWhvc3QtPmNsYXNzX2Rldi5jbGFzcyA9ICZt bWNfaG9zdF9jbGFzczsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29y aWcvZHJpdmVycy9udWJ1cy9udWJ1cy5jIGxpbnV4LTIuNi4xOS1yYzVfa3ph bGxvYy9kcml2ZXJzL251YnVzL251YnVzLmMKLS0tIGxpbnV4LTIuNi4xOS1y YzVfb3JpZy9kcml2ZXJzL251YnVzL251YnVzLmMJMjAwNi0xMS0wOSAxMjox NjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3ph bGxvYy9kcml2ZXJzL251YnVzL251YnVzLmMJMjAwNi0xMS0xMSAyMjo0NDow NC4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ2Niw5ICs0NjYsOCBAQCBzdGF0aWMg c3RydWN0IG51YnVzX2RldiogX19pbml0CiAJCSAgICAgICBwYXJlbnQtPmJh c2UsIGRpci5iYXNlKTsKIAogCS8qIEFjdHVhbGx5IHdlIHNob3VsZCBwcm9i YWJseSBwYW5pYyBpZiB0aGlzIGZhaWxzICovCi0JaWYgKChkZXYgPSBrbWFs bG9jKHNpemVvZigqZGV2KSwgR0ZQX0FUT01JQykpID09IE5VTEwpCisJaWYg KChkZXYgPSBremFsbG9jKHNpemVvZigqZGV2KSwgR0ZQX0FUT01JQykpID09 IE5VTEwpCiAJCXJldHVybiBOVUxMOwkKLQltZW1zZXQoZGV2LCAwLCBzaXpl b2YoKmRldikpOwogCWRldi0+cmVzaWQgPSBwYXJlbnQtPnR5cGU7CiAJZGV2 LT5kaXJlY3RvcnkgPSBkaXIuYmFzZTsKIAlkZXYtPmJvYXJkID0gYm9hcmQ7 CkBAIC04MDAsOSArNzk5LDggQEAgc3RhdGljIHN0cnVjdCBudWJ1c19ib2Fy ZCogX19pbml0IG51YnVzXwogCW51YnVzX3Jld2luZCgmcnAsIEZPUk1BVF9C TE9DS19TSVpFLCBieXRlbGFuZXMpOwogCiAJLyogQWN0dWFsbHkgd2Ugc2hv dWxkIHByb2JhYmx5IHBhbmljIGlmIHRoaXMgZmFpbHMgKi8KLQlpZiAoKGJv YXJkID0ga21hbGxvYyhzaXplb2YoKmJvYXJkKSwgR0ZQX0FUT01JQykpID09 IE5VTEwpCisJaWYgKChib2FyZCA9IGt6YWxsb2Moc2l6ZW9mKCpib2FyZCks IEdGUF9BVE9NSUMpKSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsJCi0JbWVt c2V0KGJvYXJkLCAwLCBzaXplb2YoKmJvYXJkKSk7CiAJYm9hcmQtPmZibG9j ayA9IHJwOwogCiAJLyogRHVtcCB0aGUgZm9ybWF0IGJsb2NrIGZvciBkZWJ1 Z2dpbmcgcHVycG9zZXMgKi8KZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1 X29yaWcvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfY3MuYyBsaW51eC0yLjYu MTktcmM1X2t6YWxsb2MvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfY3MuYwot LS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvcGFycG9ydC9wYXJw b3J0X2NzLmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAK KysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3BhcnBvcnQv cGFycG9ydF9jcy5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICsw MjAwCkBAIC0xMDYsOSArMTA2LDggQEAgc3RhdGljIGludCBwYXJwb3J0X3By b2JlKHN0cnVjdCBwY21jaWFfZAogICAgIERFQlVHKDAsICJwYXJwb3J0X2F0 dGFjaCgpXG4iKTsKIAogICAgIC8qIENyZWF0ZSBuZXcgcGFycG9ydCBkZXZp Y2UgKi8KLSAgICBpbmZvID0ga21hbGxvYyhzaXplb2YoKmluZm8pLCBHRlBf S0VSTkVMKTsKKyAgICBpbmZvID0ga3phbGxvYyhzaXplb2YoKmluZm8pLCBH RlBfS0VSTkVMKTsKICAgICBpZiAoIWluZm8pIHJldHVybiAtRU5PTUVNOwot ICAgIG1lbXNldChpbmZvLCAwLCBzaXplb2YoKmluZm8pKTsKICAgICBsaW5r LT5wcml2ID0gaW5mbzsKICAgICBpbmZvLT5wX2RldiA9IGxpbms7CiAKZGlm ZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9wYXJwb3J0 L3BhcnBvcnRfc2VyaWFsLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvcGFycG9ydC9wYXJwb3J0X3NlcmlhbC5jCi0tLSBsaW51eC0yLjYu MTktcmM1X29yaWcvZHJpdmVycy9wYXJwb3J0L3BhcnBvcnRfc2VyaWFsLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3BhcnBvcnQvcGFycG9ydF9z ZXJpYWwuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApA QCAtMzI0LDEwICszMjQsOSBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBwYXJw b3J0X3NlcmlhbF9wY2lfCiAJc3RydWN0IHBhcnBvcnRfc2VyaWFsX3ByaXZh dGUgKnByaXY7CiAJaW50IGVycjsKIAotCXByaXYgPSBrbWFsbG9jIChzaXpl b2YgKnByaXYsIEdGUF9LRVJORUwpOworCXByaXYgPSBremFsbG9jIChzaXpl b2YgKnByaXYsIEdGUF9LRVJORUwpOwogCWlmICghcHJpdikKIAkJcmV0dXJu IC1FTk9NRU07Ci0JbWVtc2V0KHByaXYsIDAsIHNpemVvZihzdHJ1Y3QgcGFy cG9ydF9zZXJpYWxfcHJpdmF0ZSkpOwogCXBjaV9zZXRfZHJ2ZGF0YSAoZGV2 LCBwcml2KTsKIAogCWVyciA9IHBjaV9lbmFibGVfZGV2aWNlIChkZXYpOwpk aWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL3BhcnBv cnQvc2hhcmUuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9w YXJwb3J0L3NoYXJlLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL3BhcnBvcnQvc2hhcmUuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAw MDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZl cnMvcGFycG9ydC9zaGFyZS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAw MDAwICswMjAwCkBAIC0yODIsMTQgKzI4MiwxMyBAQCBzdHJ1Y3QgcGFycG9y dCAqcGFycG9ydF9yZWdpc3Rlcl9wb3J0KHVuCiAJaW50IGRldmljZTsKIAlj aGFyICpuYW1lOwogCi0JdG1wID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBh cnBvcnQpLCBHRlBfS0VSTkVMKTsKKwl0bXAgPSBremFsbG9jKHNpemVvZihz dHJ1Y3QgcGFycG9ydCksIEdGUF9LRVJORUwpOwogCWlmICghdG1wKSB7CiAJ CXByaW50ayhLRVJOX1dBUk5JTkcgInBhcnBvcnQ6IG1lbW9yeSBzcXVlZXpl XG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCiAJLyogSW5pdCBvdXIgc3Ry dWN0dXJlICovCi0gCW1lbXNldCh0bXAsIDAsIHNpemVvZihzdHJ1Y3QgcGFy cG9ydCkpOwogCXRtcC0+YmFzZSA9IGJhc2U7CiAJdG1wLT5pcnEgPSBpcnE7 CiAJdG1wLT5kbWEgPSBkbWE7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJj NV9vcmlnL2RyaXZlcnMvcGNpL2hvdHBsdWcvY3BxcGhwX2N0cmwuYyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFw aHBfY3RybC5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9w Y2kvaG90cGx1Zy9jcHFwaHBfY3RybC5jCTIwMDYtMTEtMDkgMTI6MTY6MjEu MDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2Mv ZHJpdmVycy9wY2kvaG90cGx1Zy9jcHFwaHBfY3RybC5jCTIwMDYtMTEtMTEg MjI6NDQ6MTguMDAwMDAwMDAwICswMjAwCkBAIC05NzMsNyArOTczLDcgQEAg c3RydWN0IHBjaV9mdW5jICpjcHFocF9zbG90X2NyZWF0ZSh1OCBidQogCXN0 cnVjdCBwY2lfZnVuYyAqbmV3X3Nsb3Q7CiAJc3RydWN0IHBjaV9mdW5jICpu ZXh0OwogCi0JbmV3X3Nsb3QgPSBrbWFsbG9jKHNpemVvZigqbmV3X3Nsb3Qp LCBHRlBfS0VSTkVMKTsKKwluZXdfc2xvdCA9IGt6YWxsb2Moc2l6ZW9mKCpu ZXdfc2xvdCksIEdGUF9LRVJORUwpOwogCiAJaWYgKG5ld19zbG90ID09IE5V TEwpIHsKIAkJLyogSSdtIG5vdCBkZWFkIHlldCEKQEAgLTk4MSw4ICs5ODEs NiBAQCBzdHJ1Y3QgcGNpX2Z1bmMgKmNwcWhwX3Nsb3RfY3JlYXRlKHU4IGJ1 CiAJCXJldHVybiBuZXdfc2xvdDsKIAl9CiAKLQltZW1zZXQobmV3X3Nsb3Qs IDAsIHNpemVvZihzdHJ1Y3QgcGNpX2Z1bmMpKTsKLQogCW5ld19zbG90LT5u ZXh0ID0gTlVMTDsKIAluZXdfc2xvdC0+Y29uZmlndXJlZCA9IDE7CiAKZGlm ZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9wY2kvaG90 cGx1Zy9wY2llaHBfaHBjLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jCi0tLSBsaW51eC0yLjYu MTktcmM1X29yaWcvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVo cF9ocGMuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApA QCAtMTMyMiwxNSArMTMyMiwxMyBAQCBpbnQgcGNpZV9pbml0KHN0cnVjdCBj b250cm9sbGVyICogY3RybCwgCiAJREJHX0VOVEVSX1JPVVRJTkUKIAkKIAlz cGluX2xvY2tfaW5pdCgmbGlzdF9sb2NrKTsJCi0JcGhwX2N0bHIgPSAoc3Ry dWN0IHBocF9jdGxyX3N0YXRlX3MgKikga21hbGxvYyhzaXplb2Yoc3RydWN0 IHBocF9jdGxyX3N0YXRlX3MpLCBHRlBfS0VSTkVMKTsKKwlwaHBfY3RsciA9 IChzdHJ1Y3QgcGhwX2N0bHJfc3RhdGVfcyAqKSBremFsbG9jKHNpemVvZihz dHJ1Y3QgcGhwX2N0bHJfc3RhdGVfcyksIEdGUF9LRVJORUwpOwogCiAJaWYg KCFwaHBfY3RscikgewkvKiBhbGxvY2F0ZSBjb250cm9sbGVyIHN0YXRlIGRh dGEgKi8KIAkJZXJyKCIlczogSFBDIGNvbnRyb2xsZXIgbWVtb3J5IGFsbG9j YXRpb24gZXJyb3IhXG4iLCBfX0ZVTkNUSU9OX18pOwogCQlnb3RvIGFib3J0 OwogCX0KIAotCW1lbXNldChwaHBfY3RsciwgMCwgc2l6ZW9mKHN0cnVjdCBw aHBfY3Rscl9zdGF0ZV9zKSk7Ci0JCiAJcGRldiA9IGRldi0+cG9ydDsKIAlw aHBfY3Rsci0+cGNpX2RldiA9IHBkZXY7CS8qIHNhdmUgcGNpX2RldiBpbiBj b250ZXh0ICovCiAKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcv ZHJpdmVycy9wY2kvcGNpZS9hZXIvYWVyZHJ2LmMgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvcGNpL3BjaWUvYWVyL2FlcmRydi5jCi0tLSBs aW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9wY2kvcGNpZS9hZXIvYWVy ZHJ2LmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysr IGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3BjaS9wY2llL2Fl ci9hZXJkcnYuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIw MApAQCAtMTQ4LDExICsxNDgsMTAgQEAgc3RhdGljIHN0cnVjdCBhZXJfcnBj KiBhZXJfYWxsb2NfcnBjKHN0cgogewogCXN0cnVjdCBhZXJfcnBjICpycGM7 CiAKLQlpZiAoIShycGMgPSAoc3RydWN0IGFlcl9ycGMgKilrbWFsbG9jKHNp emVvZihzdHJ1Y3QgYWVyX3JwYyksCisJaWYgKCEocnBjID0gKHN0cnVjdCBh ZXJfcnBjICopa3phbGxvYyhzaXplb2Yoc3RydWN0IGFlcl9ycGMpLAogCQlH RlBfS0VSTkVMKSkpCiAJCXJldHVybiBOVUxMOwogCi0JbWVtc2V0KHJwYywg MCwgc2l6ZW9mKHN0cnVjdCBhZXJfcnBjKSk7CiAJLyoKIAkgKiBJbml0aWFs aXplIFJvb3QgbG9jayBhY2Nlc3MsIGVfbG9jaywgdG8gUm9vdCBFcnJvciBT dGF0dXMgUmVnLAogCSAqIFJvb3QgRXJyb3IgSUQgUmVnLCBhbmQgUm9vdCBl cnJvciBwcm9kdWNlci9jb25zdW1lciBpbmRleC4KZGlmZiAtcnVicCBsaW51 eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9wbnAvY29yZS5jIGxpbnV4LTIu Ni4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3BucC9jb3JlLmMKLS0tIGxpbnV4 LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL3BucC9jb3JlLmMJMjAwNi0xMS0w OSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9kcml2ZXJzL3BucC9jb3JlLmMJMjAwNi0xMS0xMSAyMjo0 NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTI2LDEyICsyNiw5IEBAIHZvaWQg KnBucF9hbGxvYyhsb25nIHNpemUpCiB7CiAJdm9pZCAqcmVzdWx0OwogCi0J cmVzdWx0ID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXJl c3VsdCl7CisJcmVzdWx0ID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsK KwlpZiAoIXJlc3VsdCkKIAkJcHJpbnRrKEtFUk5fRVJSICJwbnA6IE91dCBv ZiBNZW1vcnlcbiIpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JbWVtc2V0KHJl c3VsdCwgMCwgc2l6ZSk7CiAJcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC1y dWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL3JhcGlkaW8vcmlv LXNjYW4uYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9yYXBp ZGlvL3Jpby1zY2FuLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL3JhcGlkaW8vcmlvLXNjYW4uYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvcmFwaWRpby9yaW8tc2Nhbi5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQu MDAwMDAwMDAwICswMjAwCkBAIC0yOTcsMTEgKzI5NywxMCBAQCBzdGF0aWMg c3RydWN0IHJpb19kZXYgKnJpb19zZXR1cF9kZXZpY2UoCiAJc3RydWN0IHJp b19zd2l0Y2ggKnJzd2l0Y2g7CiAJaW50IHJlc3VsdCwgcmRpZDsKIAotCXJk ZXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmlvX2RldiksIEdGUF9LRVJO RUwpOworCXJkZXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmlvX2Rldiks IEdGUF9LRVJORUwpOwogCWlmICghcmRldikKIAkJZ290byBvdXQ7CiAKLQlt ZW1zZXQocmRldiwgMCwgc2l6ZW9mKHN0cnVjdCByaW9fZGV2KSk7CiAJcmRl di0+bmV0ID0gbmV0OwogCXJpb19tcG9ydF9yZWFkX2NvbmZpZ18zMihwb3J0 LCBkZXN0aWQsIGhvcGNvdW50LCBSSU9fREVWX0lEX0NBUiwKIAkJCQkgJnJl c3VsdCk7CkBAIC03ODQsOSArNzgzLDggQEAgc3RhdGljIHN0cnVjdCByaW9f bmV0IF9fZGV2aW5pdCAqcmlvX2FsbAogewogCXN0cnVjdCByaW9fbmV0ICpu ZXQ7CiAKLQluZXQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmlvX25ldCks IEdGUF9LRVJORUwpOworCW5ldCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBy aW9fbmV0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKG5ldCkgewotCQltZW1zZXQo bmV0LCAwLCBzaXplb2Yoc3RydWN0IHJpb19uZXQpKTsKIAkJSU5JVF9MSVNU X0hFQUQoJm5ldC0+bm9kZSk7CiAJCUlOSVRfTElTVF9IRUFEKCZuZXQtPmRl dmljZXMpOwogCQlJTklUX0xJU1RfSEVBRCgmbmV0LT5tcG9ydHMpOwpkaWZm IC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL3NidXMvY2hh ci9iYmNfZW52Y3RybC5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2 ZXJzL3NidXMvY2hhci9iYmNfZW52Y3RybC5jCi0tLSBsaW51eC0yLjYuMTkt cmM1X29yaWcvZHJpdmVycy9zYnVzL2NoYXIvYmJjX2VudmN0cmwuYwkyMDA2 LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42 LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvc2J1cy9jaGFyL2JiY19lbnZjdHJs LmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ4 MCwxMSArNDgwLDEwIEBAIHN0YXRpYyBpbnQga2VudmN0cmxkKHZvaWQgKl9f dW51c2VkKQogCiBzdGF0aWMgdm9pZCBhdHRhY2hfb25lX3RlbXAoc3RydWN0 IGxpbnV4X2VidXNfY2hpbGQgKmVjaGlsZCwgaW50IHRlbXBfaWR4KQogewot CXN0cnVjdCBiYmNfY3B1X3RlbXBlcmF0dXJlICp0cCA9IGttYWxsb2Moc2l6 ZW9mKCp0cCksIEdGUF9LRVJORUwpOworCXN0cnVjdCBiYmNfY3B1X3RlbXBl cmF0dXJlICp0cCA9IGt6YWxsb2Moc2l6ZW9mKCp0cCksIEdGUF9LRVJORUwp OwogCiAJaWYgKCF0cCkKIAkJcmV0dXJuOwotCW1lbXNldCh0cCwgMCwgc2l6 ZW9mKCp0cCkpOwogCXRwLT5jbGllbnQgPSBiYmNfaTJjX2F0dGFjaChlY2hp bGQpOwogCWlmICghdHAtPmNsaWVudCkgewogCQlrZnJlZSh0cCk7CkBAIC01 MjYsMTEgKzUyNSwxMCBAQCBzdGF0aWMgdm9pZCBhdHRhY2hfb25lX3RlbXAo c3RydWN0IGxpbnV4CiAKIHN0YXRpYyB2b2lkIGF0dGFjaF9vbmVfZmFuKHN0 cnVjdCBsaW51eF9lYnVzX2NoaWxkICplY2hpbGQsIGludCBmYW5faWR4KQog ewotCXN0cnVjdCBiYmNfZmFuX2NvbnRyb2wgKmZwID0ga21hbGxvYyhzaXpl b2YoKmZwKSwgR0ZQX0tFUk5FTCk7CisJc3RydWN0IGJiY19mYW5fY29udHJv bCAqZnAgPSBremFsbG9jKHNpemVvZigqZnApLCBHRlBfS0VSTkVMKTsKIAog CWlmICghZnApCiAJCXJldHVybjsKLQltZW1zZXQoZnAsIDAsIHNpemVvZigq ZnApKTsKIAlmcC0+Y2xpZW50ID0gYmJjX2kyY19hdHRhY2goZWNoaWxkKTsK IAlpZiAoIWZwLT5jbGllbnQpIHsKIAkJa2ZyZWUoZnApOwpkaWZmIC1ydWJw IGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL3NidXMvY2hhci9iYmNf aTJjLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvc2J1cy9j aGFyL2JiY19pMmMuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZl cnMvc2J1cy9jaGFyL2JiY19pMmMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvc2J1cy9jaGFyL2JiY19pMmMuYwkyMDA2LTExLTExIDIyOjQ0OjA0 LjAwMDAwMDAwMCArMDIwMApAQCAtMTU1LDEwICsxNTUsOSBAQCBzdHJ1Y3Qg YmJjX2kyY19jbGllbnQgKmJiY19pMmNfYXR0YWNoKHN0CiAKIAlpZiAoIWJw KQogCQlyZXR1cm4gTlVMTDsKLQljbGllbnQgPSBrbWFsbG9jKHNpemVvZigq Y2xpZW50KSwgR0ZQX0tFUk5FTCk7CisJY2xpZW50ID0ga3phbGxvYyhzaXpl b2YoKmNsaWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xpZW50KQogCQly ZXR1cm4gTlVMTDsKLQltZW1zZXQoY2xpZW50LCAwLCBzaXplb2YoKmNsaWVu dCkpOwogCWNsaWVudC0+YnAgPSBicDsKIAljbGllbnQtPmVjaGlsZCA9IGVj aGlsZDsKIAljbGllbnQtPmJ1cyA9IGVjaGlsZC0+cmVzb3VyY2VbMF0uc3Rh cnQ7CkBAIC0zNTYsMTMgKzM1NSwxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cmVzZXRfb25lX2kyYyhzdHJ1Y3QgCiAKIHN0YXRpYyBpbnQgX19pbml0IGF0 dGFjaF9vbmVfaTJjKHN0cnVjdCBsaW51eF9lYnVzX2RldmljZSAqZWRldiwg aW50IGluZGV4KQogewotCXN0cnVjdCBiYmNfaTJjX2J1cyAqYnAgPSBrbWFs bG9jKHNpemVvZigqYnApLCBHRlBfS0VSTkVMKTsKKwlzdHJ1Y3QgYmJjX2ky Y19idXMgKmJwID0ga3phbGxvYyhzaXplb2YoKmJwKSwgR0ZQX0tFUk5FTCk7 CiAJc3RydWN0IGxpbnV4X2VidXNfY2hpbGQgKmVjaGlsZDsKIAlpbnQgZW50 cnk7CiAKIAlpZiAoIWJwKQogCQlyZXR1cm4gLUVOT01FTTsKLQltZW1zZXQo YnAsIDAsIHNpemVvZigqYnApKTsKIAogCWJwLT5pMmNfY29udHJvbF9yZWdz ID0gaW9yZW1hcChlZGV2LT5yZXNvdXJjZVswXS5zdGFydCwgMHgyKTsKIAlp ZiAoIWJwLT5pMmNfY29udHJvbF9yZWdzKQpkaWZmIC1ydWJwIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMgbGlu dXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvc2J1cy9jaGFyL3ZmY19k ZXYuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvc2J1cy9j aGFyL3ZmY19kZXYuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvc2J1 cy9jaGFyL3ZmY19kZXYuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAw MCArMDIwMApAQCAtMjYwLDExICsyNjAsMTAgQEAgc3RhdGljIGludCB2ZmNf ZGVidWcoc3RydWN0IHZmY19kZXYgKmRldgogCQlpZiAoY29weV9mcm9tX3Vz ZXIoJmlub3V0LCBhcmdwLCBzaXplb2YoaW5vdXQpKSkKIAkJCXJldHVybiAt RUZBVUxUOwogCi0JCWJ1ZmZlciA9IGttYWxsb2MoaW5vdXQubGVuLCBHRlBf S0VSTkVMKTsKKwkJYnVmZmVyID0ga3phbGxvYyhpbm91dC5sZW4sIEdGUF9L RVJORUwpOwogCQlpZiAoYnVmZmVyID09IE5VTEwpCiAJCQlyZXR1cm4gLUVO T01FTTsKIAotCQltZW1zZXQoYnVmZmVyLDAsaW5vdXQubGVuKTsKIAkJdmZj X2xvY2tfZGV2aWNlKGRldik7CiAJCWlub3V0LnJldD0KIAkJCXZmY19pMmNf cmVjdmJ1ZihkZXYsaW5vdXQuYWRkciAmIDB4ZmYKQEAgLTY1OSwxMiArNjU4 LDExIEBAIHN0YXRpYyBpbnQgdmZjX3Byb2JlKHZvaWQpCiAJaWYgKCFjYXJk cykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQl2ZmNfZGV2X2xzdCA9IChzdHJ1 Y3QgdmZjX2RldiAqKilrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdmZjX2RldiAq KSAqCisJdmZjX2Rldl9sc3QgPSAoc3RydWN0IHZmY19kZXYgKiopa3phbGxv YyhzaXplb2Yoc3RydWN0IHZmY19kZXYgKikgKgogCQkJCQkJIChjYXJkcysx KSwKIAkJCQkJCSBHRlBfS0VSTkVMKTsKIAlpZiAodmZjX2Rldl9sc3QgPT0g TlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07Ci0JbWVtc2V0KHZmY19kZXZfbHN0 LCAwLCBzaXplb2Yoc3RydWN0IHZmY19kZXYgKikgKiAoY2FyZHMgKyAxKSk7 CiAJdmZjX2Rldl9sc3RbY2FyZHNdID0gTlVMTDsKIAogCXJldCA9IHJlZ2lz dGVyX2NocmRldihWRkNfTUFKT1IsIHZmY3N0ciwgJnZmY19mb3BzKTsKZGlm ZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9zaC9zdXBl cmh5d2F5L3N1cGVyaHl3YXkuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2Mv ZHJpdmVycy9zaC9zdXBlcmh5d2F5L3N1cGVyaHl3YXkuYwotLS0gbGludXgt Mi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvc2gvc3VwZXJoeXdheS9zdXBlcmh5 d2F5LmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysr IGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3NoL3N1cGVyaHl3 YXkvc3VwZXJoeXdheS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAw ICswMjAwCkBAIC01NiwxMSArNTYsOSBAQCBpbnQgc3VwZXJoeXdheV9hZGRf ZGV2aWNlKHVuc2lnbmVkIGxvbmcgCiAJc3RydWN0IHN1cGVyaHl3YXlfZGV2 aWNlICpkZXYgPSBzZGV2OwogCiAJaWYgKCFkZXYpIHsKLQkJZGV2ID0ga21h bGxvYyhzaXplb2Yoc3RydWN0IHN1cGVyaHl3YXlfZGV2aWNlKSwgR0ZQX0tF Uk5FTCk7CisJCWRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzdXBlcmh5 d2F5X2RldmljZSksIEdGUF9LRVJORUwpOwogCQlpZiAoIWRldikKIAkJCXJl dHVybiAtRU5PTUVNOwotCi0JCW1lbXNldChkZXYsIDAsIHNpemVvZihzdHJ1 Y3Qgc3VwZXJoeXdheV9kZXZpY2UpKTsKIAl9CiAKIAlkZXYtPmJ1cyA9IGJ1 czsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9z bi9pb2MzLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvc24v aW9jMy5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9zbi9p b2MzLmMJMjAwNi0xMS0wOSAxMjoxNjoyMC4wMDAwMDAwMDAgKzAyMDAKKysr IGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL3NuL2lvYzMuYwky MDA2LTExLTExIDIyOjQ0OjE4LjAwMDAwMDAwMCArMDIwMApAQCAtNjI5LDcg KzYyOSw3IEBAIHN0YXRpYyBpbnQgaW9jM19wcm9iZShzdHJ1Y3QgcGNpX2Rl diAqcGQKICNlbmRpZgogCiAJLyogU2V0IHVwIHBlci1JT0MzIGRhdGEgKi8K LQlpZGQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaW9jM19kcml2ZXJfZGF0 YSksIEdGUF9LRVJORUwpOworCWlkZCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCBpb2MzX2RyaXZlcl9kYXRhKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpZGQp IHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORwogCQkgICAgICAgIiVzOiBGYWls ZWQgdG8gYWxsb2NhdGUgSU9DMyBkYXRhIGZvciBwY2lfZGV2ICVzLlxuIiwK QEAgLTYzNyw3ICs2MzcsNiBAQCBzdGF0aWMgaW50IGlvYzNfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkCiAJCXJldCA9IC1FTk9ERVY7CiAJCWdvdG8gb3V0 X2lkZDsKIAl9Ci0JbWVtc2V0KGlkZCwgMCwgc2l6ZW9mKHN0cnVjdCBpb2Mz X2RyaXZlcl9kYXRhKSk7CiAJc3Bpbl9sb2NrX2luaXQoJmlkZC0+aXJfbG9j ayk7CiAJc3Bpbl9sb2NrX2luaXQoJmlkZC0+Z3Bpb19sb2NrKTsKIAlpZGQt PnBkZXYgPSBwZGV2OwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3Jp Zy9kcml2ZXJzL3RlbGVwaG9ueS9peGpfcGNtY2lhLmMgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2RyaXZlcnMvdGVsZXBob255L2l4al9wY21jaWEuYwot LS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvdGVsZXBob255L2l4 al9wY21jaWEuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIw MAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvdGVsZXBo b255L2l4al9wY21jaWEuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAw MCArMDIwMApAQCAtNDYsMTEgKzQ2LDEwIEBAIHN0YXRpYyBpbnQgaXhqX3By b2JlKHN0cnVjdCBwY21jaWFfZGV2aWMKIAlwX2Rldi0+aW8uQXR0cmlidXRl czIgPSBJT19EQVRBX1BBVEhfV0lEVEhfODsKIAlwX2Rldi0+aW8uSU9BZGRy TGluZXMgPSAzOwogCXBfZGV2LT5jb25mLkludFR5cGUgPSBJTlRfTUVNT1JZ X0FORF9JTzsKLQlwX2Rldi0+cHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBpeGpfaW5mb190KSwgR0ZQX0tFUk5FTCk7CisJcF9kZXYtPnByaXYgPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgaXhqX2luZm9fdCksIEdGUF9LRVJORUwp OwogCWlmICghcF9kZXYtPnByaXYpIHsKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQotCW1lbXNldChwX2Rldi0+cHJpdiwgMCwgc2l6ZW9mKHN0cnVjdCBpeGpf aW5mb190KSk7CiAKIAlyZXR1cm4gaXhqX2NvbmZpZyhwX2Rldik7CiB9Cg== ------=_NextPart_000_4871_7087_7bcc-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/