Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933007AbWKLRWa (ORCPT ); Sun, 12 Nov 2006 12:22:30 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933009AbWKLRWa (ORCPT ); Sun, 12 Nov 2006 12:22:30 -0500 Received: from bay0-omc3-s39.bay0.hotmail.com ([65.54.246.239]:34070 "EHLO bay0-omc3-s39.bay0.hotmail.com") by vger.kernel.org with ESMTP id S933007AbWKLRW3 (ORCPT ); Sun, 12 Nov 2006 12:22:29 -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 2/17 Date: Sun, 12 Nov 2006 19:22:26 +0200 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_1cd2_6c8c_45fc" X-OriginalArrivalTime: 12 Nov 2006 17:22:28.0415 (UTC) FILETIME=[20CB34F0:01C7067F] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 46997 Lines: 783 This is a multi-part message in MIME format. ------=_NextPart_000_1cd2_6c8c_45fc Content-Type: text/plain; format=flowed Second part 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_1cd2_6c8c_45fc Content-Type: application/octet-stream; name="kzalloc_arch.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kzalloc_arch.patch" UmVwbGFjZSBrbWFsbG9jK21lbXNldCB3aXRoIGt6YWxsb2MgClBhdGNoIDIv MTcKClNpZ25lZC1vZmYtYnk6IFlhbiBCdXJtYW4gPHlhbl85NTJAaG90bWFp bC5jb20+CgpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNo L2FscGhhL2tlcm5lbC9tb2R1bGUuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxs b2MvYXJjaC9hbHBoYS9rZXJuZWwvbW9kdWxlLmMKLS0tIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9hcmNoL2FscGhhL2tlcm5lbC9tb2R1bGUuYwkyMDA2LTEx LTA5IDEyOjE2OjIyLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2FyY2gvYWxwaGEva2VybmVsL21vZHVsZS5jCTIwMDYt MTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0xMTksOCArMTE5 LDcgQEAgbW9kdWxlX2Zyb2JfYXJjaF9zZWN0aW9ucyhFbGY2NF9FaGRyICpo ZAogCX0KIAogCW5zeW1zID0gc3ltdGFiLT5zaF9zaXplIC8gc2l6ZW9mKEVs ZjY0X1N5bSk7Ci0JY2hhaW5zID0ga21hbGxvYyhuc3ltcyAqIHNpemVvZihz dHJ1Y3QgZ290X2VudHJ5KSwgR0ZQX0tFUk5FTCk7Ci0JbWVtc2V0KGNoYWlu cywgMCwgbnN5bXMgKiBzaXplb2Yoc3RydWN0IGdvdF9lbnRyeSkpOworCWNo YWlucyA9IGt6YWxsb2MobnN5bXMgKiBzaXplb2Yoc3RydWN0IGdvdF9lbnRy eSksIEdGUF9LRVJORUwpOwogCiAJZ290LT5zaF9zaXplID0gMDsKIAlnb3Qt PnNoX2FkZHJhbGlnbiA9IDg7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJj NV9vcmlnL2FyY2gvYXJtMjYva2VybmVsL2VjYXJkLmMgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2FyY2gvYXJtMjYva2VybmVsL2VjYXJkLmMKLS0tIGxp bnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2FybTI2L2tlcm5lbC9lY2FyZC5j CTIwMDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9hcm0yNi9rZXJuZWwvZWNhcmQu YwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNjIw LDEyICs2MjAsMTAgQEAgZWNhcmRfcHJvYmUoaW50IHNsb3QsIGNhcmRfdHlw ZV90IHR5cGUpCiAJc3RydWN0IGV4X2VjaWQgY2lkOwogCWludCBpLCByYyA9 IC1FTk9NRU07CiAKLQllYyA9IGttYWxsb2Moc2l6ZW9mKGVjYXJkX3QpLCBH RlBfS0VSTkVMKTsKKwllYyA9IGt6YWxsb2Moc2l6ZW9mKGVjYXJkX3QpLCBH RlBfS0VSTkVMKTsKIAlpZiAoIWVjKQogCQlnb3RvIG5vbWVtOwogCi0JbWVt c2V0KGVjLCAwLCBzaXplb2YoZWNhcmRfdCkpOwotCiAJZWMtPnNsb3Rfbm8J PSBzbG90OwogCWVjLT50eXBlICAgICAgICA9IHR5cGU7CiAJZWMtPmlycQkJ PSBOT19JUlE7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2Fy Y2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL3BjaS9kbWEuYyBsaW51eC0yLjYu MTktcmM1X2t6YWxsb2MvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvcGNp L2RtYS5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9jcmlzL2Fy Y2gtdjMyL2RyaXZlcnMvcGNpL2RtYS5jCTIwMDYtMTEtMDkgMTI6MTY6MjEu MDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2Mv YXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvcGNpL2RtYS5jCTIwMDYtMTEt MTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC05MSwxNCArOTEsMTIg QEAgaW50IGRtYV9kZWNsYXJlX2NvaGVyZW50X21lbW9yeShzdHJ1Y3QgZAog CWlmICghbWVtX2Jhc2UpCiAJCWdvdG8gb3V0OwogCi0JZGV2LT5kbWFfbWVt ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGRtYV9jb2hlcmVudF9tZW0pLCBH RlBfS0VSTkVMKTsKKwlkZXYtPmRtYV9tZW0gPSBremFsbG9jKHNpemVvZihz dHJ1Y3QgZG1hX2NvaGVyZW50X21lbSksIEdGUF9LRVJORUwpOwogCWlmICgh ZGV2LT5kbWFfbWVtKQogCQlnb3RvIG91dDsKLQltZW1zZXQoZGV2LT5kbWFf bWVtLCAwLCBzaXplb2Yoc3RydWN0IGRtYV9jb2hlcmVudF9tZW0pKTsKLQlk ZXYtPmRtYV9tZW0tPmJpdG1hcCA9IGttYWxsb2MoYml0bWFwX3NpemUsIEdG UF9LRVJORUwpOworCWRldi0+ZG1hX21lbS0+Yml0bWFwID0ga3phbGxvYyhi aXRtYXBfc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkZXYtPmRtYV9tZW0t PmJpdG1hcCkKIAkJZ290byBmcmVlMV9vdXQ7Ci0JbWVtc2V0KGRldi0+ZG1h X21lbS0+Yml0bWFwLCAwLCBiaXRtYXBfc2l6ZSk7CiAKIAlkZXYtPmRtYV9t ZW0tPnZpcnRfYmFzZSA9IG1lbV9iYXNlOwogCWRldi0+ZG1hX21lbS0+ZGV2 aWNlX2Jhc2UgPSBkZXZpY2VfYWRkcjsKZGlmZiAtcnVicCBsaW51eC0yLjYu MTktcmM1X29yaWcvYXJjaC9pMzg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVp bmZvLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvaTM4Ni9rZXJu ZWwvY3B1L2ludGVsX2NhY2hlaW5mby5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvYXJjaC9pMzg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVpbmZvLmMJ MjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL2kzODYva2VybmVsL2NwdS9pbnRl bF9jYWNoZWluZm8uYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCAr MDIwMApAQCAtNDgwLDEyICs0ODAsMTAgQEAgc3RhdGljIGludCBfX2NwdWlu aXQgZGV0ZWN0X2NhY2hlX2F0dHJpYgogCWlmIChudW1fY2FjaGVfbGVhdmVz ID09IDApCiAJCXJldHVybiAtRU5PRU5UOwogCi0JY3B1aWQ0X2luZm9bY3B1 XSA9IGttYWxsb2MoCisJY3B1aWQ0X2luZm9bY3B1XSA9IGt6YWxsb2MoCiAJ ICAgIHNpemVvZihzdHJ1Y3QgX2NwdWlkNF9pbmZvKSAqIG51bV9jYWNoZV9s ZWF2ZXMsIEdGUF9LRVJORUwpOwogCWlmICh1bmxpa2VseShjcHVpZDRfaW5m b1tjcHVdID09IE5VTEwpKQogCQlyZXR1cm4gLUVOT01FTTsKLQltZW1zZXQo Y3B1aWQ0X2luZm9bY3B1XSwgMCwKLQkgICAgc2l6ZW9mKHN0cnVjdCBfY3B1 aWQ0X2luZm8pICogbnVtX2NhY2hlX2xlYXZlcyk7CiAKIAlvbGRtYXNrID0g Y3VycmVudC0+Y3B1c19hbGxvd2VkOwogCXJldHZhbCA9IHNldF9jcHVzX2Fs bG93ZWQoY3VycmVudCwgY3B1bWFza19vZl9jcHUoY3B1KSk7CkBAIC02NTgs MTcgKzY1NiwxNCBAQCBzdGF0aWMgaW50IF9fY3B1aW5pdCBjcHVpZDRfY2Fj aGVfc3lzZnNfCiAJCXJldHVybiAtRU5PRU5UOwogCiAJLyogQWxsb2NhdGUg YWxsIHJlcXVpcmVkIG1lbW9yeSAqLwotCWNhY2hlX2tvYmplY3RbY3B1XSA9 IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBrb2JqZWN0KSwgR0ZQX0tFUk5FTCk7 CisJY2FjaGVfa29iamVjdFtjcHVdID0ga3phbGxvYyhzaXplb2Yoc3RydWN0 IGtvYmplY3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAodW5saWtlbHkoY2FjaGVf a29iamVjdFtjcHVdID09IE5VTEwpKQogCQlnb3RvIGVycl9vdXQ7Ci0JbWVt c2V0KGNhY2hlX2tvYmplY3RbY3B1XSwgMCwgc2l6ZW9mKHN0cnVjdCBrb2Jq ZWN0KSk7CiAKLQlpbmRleF9rb2JqZWN0W2NwdV0gPSBrbWFsbG9jKAorCWlu ZGV4X2tvYmplY3RbY3B1XSA9IGt6YWxsb2MoCiAJICAgIHNpemVvZihzdHJ1 Y3QgX2luZGV4X2tvYmplY3QgKSAqIG51bV9jYWNoZV9sZWF2ZXMsIEdGUF9L RVJORUwpOwogCWlmICh1bmxpa2VseShpbmRleF9rb2JqZWN0W2NwdV0gPT0g TlVMTCkpCiAJCWdvdG8gZXJyX291dDsKLQltZW1zZXQoaW5kZXhfa29iamVj dFtjcHVdLCAwLAotCSAgICBzaXplb2Yoc3RydWN0IF9pbmRleF9rb2JqZWN0 KSAqIG51bV9jYWNoZV9sZWF2ZXMpOwogCiAJcmV0dXJuIDA7CiAKZGlmZiAt cnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9pMzg2L2tlcm5lbC9j cHUvbXRyci9pZi5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL2kz ODYva2VybmVsL2NwdS9tdHJyL2lmLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVf b3JpZy9hcmNoL2kzODYva2VybmVsL2NwdS9tdHJyL2lmLmMJMjAwNi0xMS0w OSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9hcmNoL2kzODYva2VybmVsL2NwdS9tdHJyL2lmLmMJMjAw Ni0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ0LDEwICs0 NCw5IEBAIG10cnJfZmlsZV9hZGQodW5zaWduZWQgbG9uZyBiYXNlLCB1bnNp Z24KIAogCW1heCA9IG51bV92YXJfcmFuZ2VzOwogCWlmIChmY291bnQgPT0g TlVMTCkgewotCQlmY291bnQgPSBrbWFsbG9jKG1heCAqIHNpemVvZiAqZmNv dW50LCBHRlBfS0VSTkVMKTsKKwkJZmNvdW50ID0ga3phbGxvYyhtYXggKiBz aXplb2YgKmZjb3VudCwgR0ZQX0tFUk5FTCk7CiAJCWlmICghZmNvdW50KQog CQkJcmV0dXJuIC1FTk9NRU07Ci0JCW1lbXNldChmY291bnQsIDAsIG1heCAq IHNpemVvZiAqZmNvdW50KTsKIAkJRklMRV9GQ09VTlQoZmlsZSkgPSBmY291 bnQ7CiAJfQogCWlmICghcGFnZSkgewpkaWZmIC1ydWJwIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9hcmNoL2kzODYva2VybmVsL2NwdS9tdHJyL21haW4uYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pMzg2L2tlcm5lbC9jcHUv bXRyci9tYWluLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2kz ODYva2VybmVsL2NwdS9tdHJyL21haW4uYwkyMDA2LTExLTA5IDEyOjE2OjIx LjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9j L2FyY2gvaTM4Ni9rZXJuZWwvY3B1L210cnIvbWFpbi5jCTIwMDYtMTEtMTEg MjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC01NjUsMTAgKzU2NSw4IEBA IHN0YXRpYyBpbnQgbXRycl9zYXZlKHN0cnVjdCBzeXNfZGV2aWNlICoKIAlp bnQgaTsKIAlpbnQgc2l6ZSA9IG51bV92YXJfcmFuZ2VzICogc2l6ZW9mKHN0 cnVjdCBtdHJyX3ZhbHVlKTsKIAotCW10cnJfc3RhdGUgPSBrbWFsbG9jKHNp emUsR0ZQX0FUT01JQyk7Ci0JaWYgKG10cnJfc3RhdGUpCi0JCW1lbXNldCht dHJyX3N0YXRlLDAsc2l6ZSk7Ci0JZWxzZQorCW10cnJfc3RhdGUgPSBremFs bG9jKHNpemUsR0ZQX0FUT01JQyk7CisJaWYgKCFtdHJyX3N0YXRlKQogCQly ZXR1cm4gLUVOT01FTTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3Jh bmdlczsgaSsrKSB7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmln L2FyY2gvaTM4Ni9rZXJuZWwvaW9fYXBpYy5jIGxpbnV4LTIuNi4xOS1yYzVf a3phbGxvYy9hcmNoL2kzODYva2VybmVsL2lvX2FwaWMuYwotLS0gbGludXgt Mi42LjE5LXJjNV9vcmlnL2FyY2gvaTM4Ni9rZXJuZWwvaW9fYXBpYy5jCTIw MDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pMzg2L2tlcm5lbC9pb19hcGljLmMJ MjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTcwNCwx NCArNzA0LDEyIEBAIHN0YXRpYyBpbnQgX19pbml0IGJhbGFuY2VkX2lycV9p bml0KHZvaWQKIAkJcGh5c2ljYWxfYmFsYW5jZSA9IDE7CiAKIAlmb3JfZWFj aF9vbmxpbmVfY3B1KGkpIHsKLQkJaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0 YSA9IGttYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywg R0ZQX0tFUk5FTCk7Ci0JCWlycV9jcHVfZGF0YVtpXS5sYXN0X2lycSA9IGtt YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tF Uk5FTCk7CisJCWlycV9jcHVfZGF0YVtpXS5pcnFfZGVsdGEgPSBremFsbG9j KHNpemVvZih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMsIEdGUF9LRVJORUwp OworCQlpcnFfY3B1X2RhdGFbaV0ubGFzdF9pcnEgPSBremFsbG9jKHNpemVv Zih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMsIEdGUF9LRVJORUwpOwogCQlp ZiAoaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSA9PSBOVUxMIHx8IGlycV9j cHVfZGF0YVtpXS5sYXN0X2lycSA9PSBOVUxMKSB7CiAJCQlwcmludGsoS0VS Tl9FUlIgImJhbGFuY2VkX2lycV9pbml0OiBvdXQgb2YgbWVtb3J5Iik7CiAJ CQlnb3RvIGZhaWxlZDsKIAkJfQotCQltZW1zZXQoaXJxX2NwdV9kYXRhW2ld LmlycV9kZWx0YSwwLHNpemVvZih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMp OwotCQltZW1zZXQoaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxLDAsc2l6ZW9m KHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUyk7CiAJfQogCQogCXByaW50ayhL RVJOX0lORk8gIlN0YXJ0aW5nIGJhbGFuY2VkX2lycVxuIik7CkBAIC0yNDQ4 LDEyICsyNDQ2LDExIEBAIHN0YXRpYyBpbnQgX19pbml0IGlvYXBpY19pbml0 X3N5c2ZzKHZvaWQKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsr ICkgewogCQlzaXplID0gc2l6ZW9mKHN0cnVjdCBzeXNfZGV2aWNlKSArIG5y X2lvYXBpY19yZWdpc3RlcnNbaV0gCiAJCQkqIHNpemVvZihzdHJ1Y3QgSU9f QVBJQ19yb3V0ZV9lbnRyeSk7Ci0JCW1wX2lvYXBpY19kYXRhW2ldID0ga21h bGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwkJbXBfaW9hcGljX2RhdGFbaV0g PSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwogCQlpZiAoIW1wX2lvYXBp Y19kYXRhW2ldKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkNhbid0IHN1c3Bl bmQvcmVzdW1lIElPQVBJQyAlZFxuIiwgaSk7CiAJCQljb250aW51ZTsKIAkJ fQotCQltZW1zZXQobXBfaW9hcGljX2RhdGFbaV0sIDAsIHNpemUpOwogCQlk ZXYgPSAmbXBfaW9hcGljX2RhdGFbaV0tPmRldjsKIAkJZGV2LT5pZCA9IGk7 IAogCQlkZXYtPmNscyA9ICZpb2FwaWNfc3lzZGV2X2NsYXNzOwpkaWZmIC1y dWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2kzODYva2VybmVsL21j YS5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL2kzODYva2VybmVs L21jYS5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9pMzg2L2tl cm5lbC9tY2EuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIw MAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvaTM4Ni9rZXJu ZWwvbWNhLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAK QEAgLTI4MywxMCArMjgzLDkgQEAgc3RhdGljIGludCBfX2luaXQgbWNhX2lu aXQodm9pZCkKIAlidXMtPmYubWNhX3RyYW5zZm9ybV9tZW1vcnkgPSBtY2Ff ZHVtbXlfdHJhbnNmb3JtX21lbW9yeTsKIAogCS8qIGdldCB0aGUgbW90aGVy Ym9hcmQgZGV2aWNlICovCi0JbWNhX2RldiA9IGttYWxsb2Moc2l6ZW9mKHN0 cnVjdCBtY2FfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJbWNhX2RldiA9IGt6 YWxsb2Moc2l6ZW9mKHN0cnVjdCBtY2FfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7 CiAJaWYodW5saWtlbHkoIW1jYV9kZXYpKQogCQlnb3RvIG91dF9ub21lbTsK LQltZW1zZXQobWNhX2RldiwgMCwgc2l6ZW9mKHN0cnVjdCBtY2FfZGV2aWNl KSk7CiAKIAkvKgogCSAqIFdlIGRvIG5vdCBleHBlY3QgbWFueSBNQ0EgaW50 ZXJydXB0cyBkdXJpbmcgaW5pdGlhbGl6YXRpb24sCkBAIC0zMTAsMTEgKzMw OSw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG1jYV9pbml0KHZvaWQpCiAJbWNh X2Rldi0+c2xvdCA9IE1DQV9NT1RIRVJCT0FSRDsKIAltY2FfcmVnaXN0ZXJf ZGV2aWNlKE1DQV9QUklNQVJZX0JVUywgbWNhX2Rldik7CiAKLQltY2FfZGV2 ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1jYV9kZXZpY2UpLCBHRlBfQVRP TUlDKTsKKwltY2FfZGV2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1jYV9k ZXZpY2UpLCBHRlBfQVRPTUlDKTsKIAlpZih1bmxpa2VseSghbWNhX2Rldikp CiAJCWdvdG8gb3V0X3VubG9ja19ub21lbTsKLQltZW1zZXQobWNhX2Rldiwg MCwgc2l6ZW9mKHN0cnVjdCBtY2FfZGV2aWNlKSk7Ci0KIAogCS8qIFB1dCBt b3RoZXJib2FyZCBpbnRvIHZpZGVvIHNldHVwIG1vZGUsIHJlYWQgaW50ZWdy YXRlZCB2aWRlbwogCSAqIFBPUyByZWdpc3RlcnMsIGFuZCB0dXJuIG1vdGhl cmJvYXJkIHNldHVwIG9mZi4KQEAgLTM0OSwxMCArMzQ2LDkgQEAgc3RhdGlj IGludCBfX2luaXQgbWNhX2luaXQodm9pZCkKIAl9CiAJaWYod2hpY2hfc2Nz aSkgewogCQkvKiBmb3VuZCBhIHNjc2kgY2FyZCAqLwotCQltY2FfZGV2ID0g a21hbGxvYyhzaXplb2Yoc3RydWN0IG1jYV9kZXZpY2UpLCBHRlBfQVRPTUlD KTsKKwkJbWNhX2RldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtY2FfZGV2 aWNlKSwgR0ZQX0FUT01JQyk7CiAJCWlmKHVubGlrZWx5KCFtY2FfZGV2KSkK IAkJCWdvdG8gb3V0X3VubG9ja19ub21lbTsKLQkJbWVtc2V0KG1jYV9kZXYs IDAsIHNpemVvZihzdHJ1Y3QgbWNhX2RldmljZSkpOwogCiAJCWZvcihqID0g MDsgaiA8IDg7IGorKykKIAkJCW1jYV9kZXYtPnBvc1tqXSA9IHBvc1tqXTsK QEAgLTM3OCwxMCArMzc0LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWNhX2lu aXQodm9pZCkKIAkJaWYoIW1jYV9yZWFkX2FuZF9zdG9yZV9wb3MocG9zKSkK IAkJCWNvbnRpbnVlOwogCi0JCW1jYV9kZXYgPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3QgbWNhX2RldmljZSksIEdGUF9BVE9NSUMpOworCQltY2FfZGV2ID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IG1jYV9kZXZpY2UpLCBHRlBfQVRPTUlD KTsKIAkJaWYodW5saWtlbHkoIW1jYV9kZXYpKQogCQkJZ290byBvdXRfdW5s b2NrX25vbWVtOwotCQltZW1zZXQobWNhX2RldiwgMCwgc2l6ZW9mKHN0cnVj dCBtY2FfZGV2aWNlKSk7CiAKIAkJZm9yKGo9MDsgajw4OyBqKyspCiAJCQlt Y2FfZGV2LT5wb3Nbal09cG9zW2pdOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9hcmNoL2kzODYva2VybmVsL3BjaS1kbWEuYyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pMzg2L2tlcm5lbC9wY2ktZG1hLmMK LS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2kzODYva2VybmVsL3Bj aS1kbWEuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAor KysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvaTM4Ni9rZXJuZWwv cGNpLWRtYS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAw CkBAIC05MiwxNCArOTIsMTIgQEAgaW50IGRtYV9kZWNsYXJlX2NvaGVyZW50 X21lbW9yeShzdHJ1Y3QgZAogCWlmICghbWVtX2Jhc2UpCiAJCWdvdG8gb3V0 OwogCi0JZGV2LT5kbWFfbWVtID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGRt YV9jb2hlcmVudF9tZW0pLCBHRlBfS0VSTkVMKTsKKwlkZXYtPmRtYV9tZW0g PSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZG1hX2NvaGVyZW50X21lbSksIEdG UF9LRVJORUwpOwogCWlmICghZGV2LT5kbWFfbWVtKQogCQlnb3RvIG91dDsK LQltZW1zZXQoZGV2LT5kbWFfbWVtLCAwLCBzaXplb2Yoc3RydWN0IGRtYV9j b2hlcmVudF9tZW0pKTsKLQlkZXYtPmRtYV9tZW0tPmJpdG1hcCA9IGttYWxs b2MoYml0bWFwX3NpemUsIEdGUF9LRVJORUwpOworCWRldi0+ZG1hX21lbS0+ Yml0bWFwID0ga3phbGxvYyhiaXRtYXBfc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFkZXYtPmRtYV9tZW0tPmJpdG1hcCkKIAkJZ290byBmcmVlMV9vdXQ7 Ci0JbWVtc2V0KGRldi0+ZG1hX21lbS0+Yml0bWFwLCAwLCBiaXRtYXBfc2l6 ZSk7CiAKIAlkZXYtPmRtYV9tZW0tPnZpcnRfYmFzZSA9IG1lbV9iYXNlOwog CWRldi0+ZG1hX21lbS0+ZGV2aWNlX2Jhc2UgPSBkZXZpY2VfYWRkcjsKZGlm ZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9pMzg2L21hY2gt dm95YWdlci92b3lhZ2VyX2NhdC5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxv Yy9hcmNoL2kzODYvbWFjaC12b3lhZ2VyL3ZveWFnZXJfY2F0LmMKLS0tIGxp bnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2kzODYvbWFjaC12b3lhZ2VyL3Zv eWFnZXJfY2F0LmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAy MDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL2kzODYvbWFj aC12b3lhZ2VyL3ZveWFnZXJfY2F0LmMJMjAwNi0xMS0xMSAyMjo0NDoxOC4w MDAwMDAwMDAgKzAyMDAKQEAgLTc3Niw3ICs3NzYsNyBAQCB2b3lhZ2VyX2Nh dF9pbml0KHZvaWQpCiAJCWZvcihhc2ljPTA7IGFzaWMgPCAoKm1vZHBwKS0+ bnVtX2FzaWNzOyBhc2ljKyspIHsKIAkJCWludCBqOwogCQkJdm95YWdlcl9h c2ljX3QgKmFzaWNwID0gKmFzaWNwcCAKLQkJCQk9IGttYWxsb2Moc2l6ZW9m KHZveWFnZXJfYXNpY190KSwgR0ZQX0tFUk5FTCk7IC8qJnZveWFnZXJfYXNp Y19zdG9yYWdlW2FzaWNfY291bnQrK107Ki8KKwkJCQk9IGt6YWxsb2Moc2l6 ZW9mKHZveWFnZXJfYXNpY190KSwgR0ZQX0tFUk5FTCk7IC8qJnZveWFnZXJf YXNpY19zdG9yYWdlW2FzaWNfY291bnQrK107Ki8KIAkJCXZveWFnZXJfc3Bf dGFibGVfdCAqc3BfdGFibGU7CiAJCQl2b3lhZ2VyX2F0X3QgKmFzaWNfdGFi bGU7CiAJCQl2b3lhZ2VyX2p0dF90ICpqdGFnX3RhYmxlOwpAQCAtNzg1LDcg Kzc4NSw2IEBAIHZveWFnZXJfY2F0X2luaXQodm9pZCkKIAkJCQlwcmludGso IioqV0FSTklORyoqIGttYWxsb2MgZmFpbHVyZSBpbiBjYXRfaW5pdFxuIik7 CiAJCQkJY29udGludWU7CiAJCQl9Ci0JCQltZW1zZXQoYXNpY3AsIDAsIHNp emVvZih2b3lhZ2VyX2FzaWNfdCkpOwogCQkJYXNpY3BwID0gJihhc2ljcC0+ bmV4dCk7CiAJCQlhc2ljcC0+YXNpY19sb2NhdGlvbiA9IGFzaWM7CiAJCQlz cF90YWJsZSA9ICh2b3lhZ2VyX3NwX3RhYmxlX3QgKikoZXByb21fYnVmICsg c3Bfb2Zmc2V0KTsKQEAgLTg1MSw4ICs4NTAsNyBAQCB2b3lhZ2VyX2NhdF9p bml0KHZvaWQpCiAjZW5kaWYKIAogCQl7Ci0JCQlzdHJ1Y3QgcmVzb3VyY2Ug KnJlcyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSksR0ZQX0tF Uk5FTCk7Ci0JCQltZW1zZXQocmVzLCAwLCBzaXplb2Yoc3RydWN0IHJlc291 cmNlKSk7CisJCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IGt6YWxsb2Moc2l6 ZW9mKHN0cnVjdCByZXNvdXJjZSksR0ZQX0tFUk5FTCk7CiAJCQlyZXMtPm5h bWUgPSBrbWFsbG9jKDEyOCwgR0ZQX0tFUk5FTCk7CiAJCQlzcHJpbnRmKChj aGFyICopcmVzLT5uYW1lLCAiVm95YWdlciAlcyBRdWFkIENQSSIsIGNhdF9t b2R1bGVfbmFtZShpKSk7CiAJCQlyZXMtPnN0YXJ0ID0gcWljX2FkZHI7CmRp ZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvaWE2NC9ocC9j b21tb24vc2JhX2lvbW11LmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Fy Y2gvaWE2NC9ocC9jb21tb24vc2JhX2lvbW11LmMKLS0tIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9hcmNoL2lhNjQvaHAvY29tbW9uL3NiYV9pb21tdS5jCTIw MDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pYTY0L2hwL2NvbW1vbi9zYmFfaW9t bXUuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAt MTY3MiwxNSArMTY3MiwxMyBAQCBpb2Nfc2FjX2luaXQoc3RydWN0IGlvYyAq aW9jKQogCSAqIFNBQyAoc2luZ2xlIGFkZHJlc3MgY3ljbGUpIGFkZHJlc3Nh YmxlLCBzbyBhbGxvY2F0ZSBhCiAJICogcHNldWRvLWRldmljZSB0byBlbmZv cmNlIHRoYXQuCiAJICovCi0Jc2FjID0ga21hbGxvYyhzaXplb2YoKnNhYyks IEdGUF9LRVJORUwpOworCXNhYyA9IGt6YWxsb2Moc2l6ZW9mKCpzYWMpLCBH RlBfS0VSTkVMKTsKIAlpZiAoIXNhYykKIAkJcGFuaWMoUEZYICJDb3VsZG4n dCBhbGxvY2F0ZSBzdHJ1Y3QgcGNpX2RldiIpOwotCW1lbXNldChzYWMsIDAs IHNpemVvZigqc2FjKSk7CiAKLQljb250cm9sbGVyID0ga21hbGxvYyhzaXpl b2YoKmNvbnRyb2xsZXIpLCBHRlBfS0VSTkVMKTsKKwljb250cm9sbGVyID0g a3phbGxvYyhzaXplb2YoKmNvbnRyb2xsZXIpLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIWNvbnRyb2xsZXIpCiAJCXBhbmljKFBGWCAiQ291bGRuJ3QgYWxsb2Nh dGUgc3RydWN0IHBjaV9jb250cm9sbGVyIik7Ci0JbWVtc2V0KGNvbnRyb2xs ZXIsIDAsIHNpemVvZigqY29udHJvbGxlcikpOwogCiAJY29udHJvbGxlci0+ aW9tbXUgPSBpb2M7CiAJc2FjLT5zeXNkYXRhID0gY29udHJvbGxlcjsKQEAg LTE3MzcsMTIgKzE3MzUsMTAgQEAgaW9jX2luaXQodTY0IGhwYSwgdm9pZCAq aGFuZGxlKQogCXN0cnVjdCBpb2MgKmlvYzsKIAlzdHJ1Y3QgaW9jX2lvbW11 ICppbmZvOwogCi0JaW9jID0ga21hbGxvYyhzaXplb2YoKmlvYyksIEdGUF9L RVJORUwpOworCWlvYyA9IGt6YWxsb2Moc2l6ZW9mKCppb2MpLCBHRlBfS0VS TkVMKTsKIAlpZiAoIWlvYykKIAkJcmV0dXJuIE5VTEw7CiAKLQltZW1zZXQo aW9jLCAwLCBzaXplb2YoKmlvYykpOwotCiAJaW9jLT5uZXh0ID0gaW9jX2xp c3Q7CiAJaW9jX2xpc3QgPSBpb2M7CiAKZGlmZiAtcnVicCBsaW51eC0yLjYu MTktcmM1X29yaWcvYXJjaC9pYTY0L2hwL3NpbS9zaW1zZXJpYWwuYyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pYTY0L2hwL3NpbS9zaW1zZXJp YWwuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvaWE2NC9ocC9z aW0vc2ltc2VyaWFsLmMJMjAwNi0xMS0wOSAxMjoxNjoyMi4wMDAwMDAwMDAg KzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL2lhNjQv aHAvc2ltL3NpbXNlcmlhbC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAw MDAwICswMjAwCkBAIC02ODQsMTIgKzY4NCwxMSBAQCBzdGF0aWMgaW50IGdl dF9hc3luY19zdHJ1Y3QoaW50IGxpbmUsIHN0CiAJCSpyZXRfaW5mbyA9IHNz dGF0ZS0+aW5mbzsKIAkJcmV0dXJuIDA7CiAJfQotCWluZm8gPSBrbWFsbG9j KHNpemVvZihzdHJ1Y3QgYXN5bmNfc3RydWN0KSwgR0ZQX0tFUk5FTCk7CisJ aW5mbyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhc3luY19zdHJ1Y3QpLCBH RlBfS0VSTkVMKTsKIAlpZiAoIWluZm8pIHsKIAkJc3N0YXRlLT5jb3VudC0t OwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JbWVtc2V0KGluZm8sIDAsIHNp emVvZihzdHJ1Y3QgYXN5bmNfc3RydWN0KSk7CiAJaW5pdF93YWl0cXVldWVf aGVhZCgmaW5mby0+b3Blbl93YWl0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFk KCZpbmZvLT5jbG9zZV93YWl0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZp bmZvLT5kZWx0YV9tc3Jfd2FpdCk7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5 LXJjNV9vcmlnL2FyY2gvaWE2NC9rZXJuZWwvcGVyZm1vbi5jIGxpbnV4LTIu Ni4xOS1yYzVfa3phbGxvYy9hcmNoL2lhNjQva2VybmVsL3BlcmZtb24uYwot LS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvaWE2NC9rZXJuZWwvcGVy Zm1vbi5jCTIwMDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisr KyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pYTY0L2tlcm5lbC9w ZXJmbW9uLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAK QEAgLTg1Myw5ICs4NTMsOCBAQCBwZm1fY29udGV4dF9hbGxvYyh2b2lkKQog CSAqIGFsbG9jYXRlIGNvbnRleHQgZGVzY3JpcHRvciAKIAkgKiBtdXN0IGJl IGFibGUgdG8gZnJlZSB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQKIAkgKi8K LQljdHggPSBrbWFsbG9jKHNpemVvZihwZm1fY29udGV4dF90KSwgR0ZQX0tF Uk5FTCk7CisJY3R4ID0ga3phbGxvYyhzaXplb2YocGZtX2NvbnRleHRfdCks IEdGUF9LRVJORUwpOwogCWlmIChjdHgpIHsKLQkJbWVtc2V0KGN0eCwgMCwg c2l6ZW9mKHBmbV9jb250ZXh0X3QpKTsKIAkJRFBSSU5UKCgiYWxsb2MgY3R4 IEAlcFxuIiwgY3R4KSk7CiAJfQogCXJldHVybiBjdHg7CmRpZmYgLXJ1YnAg bGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvaWE2NC9wY2kvcGNpLmMgbGlu dXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvaWE2NC9wY2kvcGNpLmMKLS0t IGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL2lhNjQvcGNpL3BjaS5jCTIw MDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvYXJjaC9pYTY0L3BjaS9wY2kuYwkyMDA2LTEx LTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMTI1LDExICsxMjUs MTAgQEAgYWxsb2NfcGNpX2NvbnRyb2xsZXIgKGludCBzZWcpCiB7CiAJc3Ry dWN0IHBjaV9jb250cm9sbGVyICpjb250cm9sbGVyOwogCi0JY29udHJvbGxl ciA9IGttYWxsb2Moc2l6ZW9mKCpjb250cm9sbGVyKSwgR0ZQX0tFUk5FTCk7 CisJY29udHJvbGxlciA9IGt6YWxsb2Moc2l6ZW9mKCpjb250cm9sbGVyKSwg R0ZQX0tFUk5FTCk7CiAJaWYgKCFjb250cm9sbGVyKQogCQlyZXR1cm4gTlVM TDsKIAotCW1lbXNldChjb250cm9sbGVyLCAwLCBzaXplb2YoKmNvbnRyb2xs ZXIpKTsKIAljb250cm9sbGVyLT5zZWdtZW50ID0gc2VnOwogCWNvbnRyb2xs ZXItPm5vZGUgPSAtMTsKIAlyZXR1cm4gY29udHJvbGxlcjsKZGlmZiAtcnVi cCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9tNjhrL2FtaWdhL2NoaXBy YW0uYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9tNjhrL2FtaWdh L2NoaXByYW0uYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvbTY4 ay9hbWlnYS9jaGlwcmFtLmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAw MDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL202 OGsvYW1pZ2EvY2hpcHJhbS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAw MDAwICswMjAwCkBAIC01MiwxMCArNTIsOSBAQCB2b2lkICphbWlnYV9jaGlw X2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6CiAjaWZkZWYgREVCVUcKICAgICBw cmludGsoImFtaWdhX2NoaXBfYWxsb2M6IGFsbG9jYXRlICVsZCBieXRlc1xu Iiwgc2l6ZSk7CiAjZW5kaWYKLSAgICByZXMgPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3QgcmVzb3VyY2UpLCBHRlBfS0VSTkVMKTsKKyAgICByZXMgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpLCBHRlBfS0VSTkVMKTsKICAg ICBpZiAoIXJlcykKIAlyZXR1cm4gTlVMTDsKLSAgICBtZW1zZXQocmVzLCAw LCBzaXplb2Yoc3RydWN0IHJlc291cmNlKSk7CiAgICAgcmVzLT5uYW1lID0g bmFtZTsKIAogICAgIGlmIChhbGxvY2F0ZV9yZXNvdXJjZSgmY2hpcHJhbV9y ZXMsIHJlcywgc2l6ZSwgMCwgVUlOVF9NQVgsIFBBR0VfU0laRSwgTlVMTCwg TlVMTCkgPCAwKSB7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmln L2FyY2gvbTY4ay9hdGFyaS9oYWRlcy1wY2kuYyBsaW51eC0yLjYuMTktcmM1 X2t6YWxsb2MvYXJjaC9tNjhrL2F0YXJpL2hhZGVzLXBjaS5jCi0tLSBsaW51 eC0yLjYuMTktcmM1X29yaWcvYXJjaC9tNjhrL2F0YXJpL2hhZGVzLXBjaS5j CTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9tNjhrL2F0YXJpL2hhZGVzLXBj aS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0z NzUsMTAgKzM3NSw5IEBAIHN0cnVjdCBwY2lfYnVzX2luZm8gKiBfX2luaXQg aW5pdF9oYWRlc18KIAkgKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIGJ1cyBpbmZv IHN0cnVjdHVyZS4KIAkgKi8KIAotCWJ1cyA9IGttYWxsb2Moc2l6ZW9mKHN0 cnVjdCBwY2lfYnVzX2luZm8pLCBHRlBfS0VSTkVMKTsKKwlidXMgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgcGNpX2J1c19pbmZvKSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFidXMpCiAJCXJldHVybiBOVUxMOwotCW1lbXNldChidXMsIDAs IHNpemVvZihzdHJ1Y3QgcGNpX2J1c19pbmZvKSk7CiAKIAkvKgogCSAqIENs YWltIHJlc291cmNlcy4gVGhlIG02OGsgaGFzIG5vIHNlcGFyYXRlIEkvTyBz cGFjZSwgYm90aApkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9h cmNoL3Bvd2VycGMva2VybmVsL2libWVidXMuYyBsaW51eC0yLjYuMTktcmM1 X2t6YWxsb2MvYXJjaC9wb3dlcnBjL2tlcm5lbC9pYm1lYnVzLmMKLS0tIGxp bnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMva2VybmVsL2libWVi dXMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvcG93ZXJwYy9rZXJuZWwv aWJtZWJ1cy5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAw CkBAIC0yMTAsMTEgKzIxMCwxMCBAQCBzdGF0aWMgc3RydWN0IGlibWVidXNf ZGV2KiBfX2RldmluaXQgaWJtCiAJCXJldHVybiBOVUxMOwogCX0KIAotCWRl diA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpYm1lYnVzX2RldiksIEdGUF9L RVJORUwpOworCWRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpYm1lYnVz X2RldiksIEdGUF9LRVJORUwpOwogCWlmICghZGV2KSB7CiAJCXJldHVybiBO VUxMOwogCX0KLQltZW1zZXQoZGV2LCAwLCBzaXplb2Yoc3RydWN0IGlibWVi dXNfZGV2KSk7CiAKIAlkZXYtPm9mZGV2Lm5vZGUgPSBvZl9ub2RlX2dldChk bik7CiAgICAgICAgCmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmln L2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfZGV2aWNlLmMgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfZGV2aWNlLmMK LS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMva2VybmVs L29mX2RldmljZS5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICsw MjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9wb3dlcnBj L2tlcm5lbC9vZl9kZXZpY2UuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAw MDAwMCArMDIwMApAQCAtMjE0LDEwICsyMTQsOSBAQCBzdHJ1Y3Qgb2ZfZGV2 aWNlKiBvZl9wbGF0Zm9ybV9kZXZpY2VfY3JlCiB7CiAJc3RydWN0IG9mX2Rl dmljZSAqZGV2OwogCi0JZGV2ID0ga21hbGxvYyhzaXplb2YoKmRldiksIEdG UF9LRVJORUwpOworCWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkZXYpLCBHRlBf S0VSTkVMKTsKIAlpZiAoIWRldikKIAkJcmV0dXJuIE5VTEw7Ci0JbWVtc2V0 KGRldiwgMCwgc2l6ZW9mKCpkZXYpKTsKIAogCWRldi0+bm9kZSA9IG9mX25v ZGVfZ2V0KG5wKTsKIAlkZXYtPmRtYV9tYXNrID0gMHhmZmZmZmZmZlVMOwpk aWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMv a2VybmVsL3BjaV82NC5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNo L3Bvd2VycGMva2VybmVsL3BjaV82NC5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfNjQuYwkyMDA2LTExLTA5 IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzY0LmMJMjAwNi0x MS0xMSAyMjo0NDoxOC4wMDAwMDAwMDAgKzAyMDAKQEAgLTMyOSw3ICszMjks NyBAQCBzdHJ1Y3QgcGNpX2RldiAqb2ZfY3JlYXRlX3BjaV9kZXYoc3RydWN0 CiAJc3RydWN0IHBjaV9kZXYgKmRldjsKIAljb25zdCBjaGFyICp0eXBlOwog Ci0JZGV2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBjaV9kZXYpLCBHRlBf S0VSTkVMKTsKKwlkZXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcGNpX2Rl diksIEdGUF9LRVJORUwpOwogCWlmICghZGV2KQogCQlyZXR1cm4gTlVMTDsK IAl0eXBlID0gZ2V0X3Byb3BlcnR5KG5vZGUsICJkZXZpY2VfdHlwZSIsIE5V TEwpOwpAQCAtMzM4LDcgKzMzOCw2IEBAIHN0cnVjdCBwY2lfZGV2ICpvZl9j cmVhdGVfcGNpX2RldihzdHJ1Y3QKIAogCURCRygiICAgIGNyZWF0ZSBkZXZp Y2UsIGRldmZuOiAleCwgdHlwZTogJXNcbiIsIGRldmZuLCB0eXBlKTsKIAot CW1lbXNldChkZXYsIDAsIHNpemVvZihzdHJ1Y3QgcGNpX2RldikpOwogCWRl di0+YnVzID0gYnVzOwogCWRldi0+c3lzZGF0YSA9IG5vZGU7CiAJZGV2LT5k ZXYucGFyZW50ID0gYnVzLT5icmlkZ2U7CmRpZmYgLXJ1YnAgbGludXgtMi42 LjE5LXJjNV9vcmlnL2FyY2gvcG93ZXJwYy9rZXJuZWwvcnRhc19mbGFzaC5j IGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9hcmNoL3Bvd2VycGMva2VybmVs L3J0YXNfZmxhc2guYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gv cG93ZXJwYy9rZXJuZWwvcnRhc19mbGFzaC5jCTIwMDYtMTEtMDkgMTI6MTY6 MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxs b2MvYXJjaC9wb3dlcnBjL2tlcm5lbC9ydGFzX2ZsYXNoLmMJMjAwNi0xMS0x MSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTY2OCwxNCArNjY4LDEy IEBAIHN0YXRpYyBpbnQgaW5pdGlhbGl6ZV9mbGFzaF9wZGVfZGF0YShjb24K IAlpbnQgKnN0YXR1czsKIAlpbnQgdG9rZW47CiAKLQlkcC0+ZGF0YSA9IGtt YWxsb2MoYnVmX3NpemUsIEdGUF9LRVJORUwpOworCWRwLT5kYXRhID0ga3ph bGxvYyhidWZfc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGRwLT5kYXRhID09 IE5VTEwpIHsKIAkJcmVtb3ZlX2ZsYXNoX3BkZShkcCk7CiAJCXJldHVybiAt RU5PTUVNOwogCX0KIAotCW1lbXNldChkcC0+ZGF0YSwgMCwgYnVmX3NpemUp OwotCiAJLyoKIAkgKiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSBzdGF0 dXMgaW50IGlzIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlCiAJICogc3RydWN0 IApkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2Vy cGMva2VybmVsL3NtcC10YnN5bmMuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxs b2MvYXJjaC9wb3dlcnBjL2tlcm5lbC9zbXAtdGJzeW5jLmMKLS0tIGxpbnV4 LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMva2VybmVsL3NtcC10YnN5 bmMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvcG93ZXJwYy9rZXJuZWwv c21wLXRic3luYy5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICsw MjAwCkBAIC0xMTYsOCArMTE2LDcgQEAgdm9pZCBfX2RldmluaXQgc21wX2dl bmVyaWNfZ2l2ZV90aW1lYmFzZQogCXByaW50aygiU3luY2hyb25pemluZyB0 aW1lYmFzZVxuIik7CiAKIAkvKiBpZiB0aGlzIGZhaWxzIHRoZW4gdGhpcyBr ZXJuZWwgd29uJ3Qgd29yayBhbnl3YXkuLi4gKi8KLQl0YnN5bmMgPSBrbWFs bG9jKCBzaXplb2YoKnRic3luYyksIEdGUF9LRVJORUwgKTsKLQltZW1zZXQo IHRic3luYywgMCwgc2l6ZW9mKCp0YnN5bmMpICk7CisJdGJzeW5jID0ga3ph bGxvYyggc2l6ZW9mKCp0YnN5bmMpLCBHRlBfS0VSTkVMICk7CiAJbWIoKTsK IAlydW5uaW5nID0gMTsKIApkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVf b3JpZy9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2lzZXJpZXMvaW9tbXUuYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9wb3dlcnBjL3BsYXRmb3Jt cy9pc2VyaWVzL2lvbW11LmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zL2lzZXJpZXMvaW9tbXUuYwkyMDA2LTEx LTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5 LXJjNV9remFsbG9jL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvaXNlcmllcy9p b21tdS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBA IC0xMTQsMTIgKzExNCwxMCBAQCB2b2lkIGlvbW11X3RhYmxlX2dldHBhcm1z X2lTZXJpZXModW5zaWduCiB7CiAJc3RydWN0IGlvbW11X3RhYmxlX2NiICpw YXJtczsKIAotCXBhcm1zID0ga21hbGxvYyhzaXplb2YoKnBhcm1zKSwgR0ZQ X0tFUk5FTCk7CisJcGFybXMgPSBremFsbG9jKHNpemVvZigqcGFybXMpLCBH RlBfS0VSTkVMKTsKIAlpZiAocGFybXMgPT0gTlVMTCkKIAkJcGFuaWMoIlBD SV9ETUE6IFRDRSBUYWJsZSBBbGxvY2F0aW9uIGZhaWxlZC4iKTsKIAotCW1l bXNldChwYXJtcywgMCwgc2l6ZW9mKCpwYXJtcykpOwotCiAJcGFybXMtPml0 Y19idXNubyA9IGJ1c25vOwogCXBhcm1zLT5pdGNfc2xvdG5vID0gc2xvdG5v OwogCXBhcm1zLT5pdGNfdmlydGJ1cyA9IHZpcnRidXM7CmRpZmYgLXJ1YnAg bGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMv aXNlcmllcy92aW9wYXRoLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Fy Y2gvcG93ZXJwYy9wbGF0Zm9ybXMvaXNlcmllcy92aW9wYXRoLmMKLS0tIGxp bnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2lz ZXJpZXMvdmlvcGF0aC5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAw ICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9wb3dl cnBjL3BsYXRmb3Jtcy9pc2VyaWVzL3Zpb3BhdGguYwkyMDA2LTExLTExIDIy OjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMTE5LDEwICsxMTksOSBAQCBz dGF0aWMgaW50IHByb2NfdmlvcGF0aF9zaG93KHN0cnVjdCBzZXFfCiAJc3Ry dWN0IGRldmljZV9ub2RlICpub2RlOwogCWNvbnN0IGNoYXIgKnN5c2lkOwog Ci0JYnVmID0ga21hbGxvYyhIV19QQUdFX1NJWkUsIEdGUF9LRVJORUwpOwor CWJ1ZiA9IGt6YWxsb2MoSFdfUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIWJ1ZikKIAkJcmV0dXJuIDA7Ci0JbWVtc2V0KGJ1ZiwgMCwgSFdfUEFH RV9TSVpFKTsKIAogCWhhbmRsZSA9IGRtYV9tYXBfc2luZ2xlKGlTZXJpZXNf dmlvX2RldiwgYnVmLCBIV19QQUdFX1NJWkUsCiAJCQkJRE1BX0ZST01fREVW SUNFKTsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3JlY29uZmlnLmMgbGludXgtMi42 LjE5LXJjNV9remFsbG9jL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmll cy9yZWNvbmZpZy5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3JlY29uZmlnLmMJMjAwNi0xMS0w OSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcmVj b25maWcuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApA QCAtMjY4LDExICsyNjgsMTAgQEAgc3RhdGljIGNoYXIgKiBwYXJzZV9uZXh0 X3Byb3BlcnR5KGNoYXIgKgogc3RhdGljIHN0cnVjdCBwcm9wZXJ0eSAqbmV3 X3Byb3BlcnR5KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGludCBsZW5ndGgs CiAJCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgc3RydWN0 IHByb3BlcnR5ICpsYXN0KQogewotCXN0cnVjdCBwcm9wZXJ0eSAqbmV3ID0g a21hbGxvYyhzaXplb2YoKm5ldyksIEdGUF9LRVJORUwpOworCXN0cnVjdCBw cm9wZXJ0eSAqbmV3ID0ga3phbGxvYyhzaXplb2YoKm5ldyksIEdGUF9LRVJO RUwpOwogCiAJaWYgKCFuZXcpCiAJCXJldHVybiBOVUxMOwotCW1lbXNldChu ZXcsIDAsIHNpemVvZigqbmV3KSk7CiAKIAlpZiAoIShuZXctPm5hbWUgPSBr bWFsbG9jKHN0cmxlbihuYW1lKSArIDEsIEdGUF9LRVJORUwpKSkKIAkJZ290 byBjbGVhbnVwOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9h cmNoL3Bvd2VycGMvc3lzZGV2L3FlX2xpYi91Y2NfZmFzdC5jIGxpbnV4LTIu Ni4xOS1yYzVfa3phbGxvYy9hcmNoL3Bvd2VycGMvc3lzZGV2L3FlX2xpYi91 Y2NfZmFzdC5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9wb3dl cnBjL3N5c2Rldi9xZV9saWIvdWNjX2Zhc3QuYwkyMDA2LTExLTA5IDEyOjE2 OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFs bG9jL2FyY2gvcG93ZXJwYy9zeXNkZXYvcWVfbGliL3VjY19mYXN0LmMJMjAw Ni0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTIxNywxMyAr MjE3LDEyIEBAIGludCB1Y2NfZmFzdF9pbml0KHN0cnVjdCB1Y2NfZmFzdF9p bmZvICoKIAl9CiAKIAl1Y2NmID0gKHN0cnVjdCB1Y2NfZmFzdF9wcml2YXRl ICopCi0JCSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdWNjX2Zhc3RfcHJpdmF0 ZSksIEdGUF9LRVJORUwpOworCQkga3phbGxvYyhzaXplb2Yoc3RydWN0IHVj Y19mYXN0X3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXVjY2YpIHsK IAkJdWNjZl9lcnIKIAkJICAgICgidWNjX2Zhc3RfaW5pdDogTm8gbWVtb3J5 IGZvciBVQ0Mgc2xvdyBkYXRhIHN0cnVjdHVyZSEiKTsKIAkJcmV0dXJuIC1F Tk9NRU07CiAJfQotCW1lbXNldCh1Y2NmLCAwLCBzaXplb2Yoc3RydWN0IHVj Y19mYXN0X3ByaXZhdGUpKTsKIAogCS8qIEZpbGwgZmFzdCBVQ0Mgc3RydWN0 dXJlICovCiAJdWNjZi0+dWZfaW5mbyA9IHVmX2luZm87CmRpZmYgLXJ1YnAg bGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvcG93ZXJwYy9zeXNkZXYvcWVf bGliL3VjY19zbG93LmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gv cG93ZXJwYy9zeXNkZXYvcWVfbGliL3VjY19zbG93LmMKLS0tIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9hcmNoL3Bvd2VycGMvc3lzZGV2L3FlX2xpYi91Y2Nf c2xvdy5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisr KyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9wb3dlcnBjL3N5c2Rl di9xZV9saWIvdWNjX3Nsb3cuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAw MDAwMCArMDIwMApAQCAtMTY5LDEzICsxNjksMTIgQEAgaW50IHVjY19zbG93 X2luaXQoc3RydWN0IHVjY19zbG93X2luZm8gKgogCX0KIAogCXVjY3MgPSAo c3RydWN0IHVjY19zbG93X3ByaXZhdGUgKikKLQkJa21hbGxvYyhzaXplb2Yo c3RydWN0IHVjY19zbG93X3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKKwkJa3ph bGxvYyhzaXplb2Yoc3RydWN0IHVjY19zbG93X3ByaXZhdGUpLCBHRlBfS0VS TkVMKTsKIAlpZiAoIXVjY3MpIHsKIAkJdWNjc19lcnIKIAkJICAgICgidWNj X3Nsb3dfaW5pdDogTm8gbWVtb3J5IGZvciBVQ0Mgc2xvdyBkYXRhIHN0cnVj dHVyZSEiKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCW1lbXNldCh1Y2Nz LCAwLCBzaXplb2Yoc3RydWN0IHVjY19zbG93X3ByaXZhdGUpKTsKIAogCS8q IEZpbGwgc2xvdyBVQ0Mgc3RydWN0dXJlICovCiAJdWNjcy0+dXNfaW5mbyA9 IHVzX2luZm87CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2Fy Y2gvc2gvZHJpdmVycy9kbWEvZG1hLWFwaS5jIGxpbnV4LTIuNi4xOS1yYzVf a3phbGxvYy9hcmNoL3NoL2RyaXZlcnMvZG1hL2RtYS1hcGkuYwotLS0gbGlu dXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvc2gvZHJpdmVycy9kbWEvZG1hLWFw aS5jCTIwMDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9zaC9kcml2ZXJzL2RtYS9k bWEtYXBpLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAK QEAgLTI0MiwxMSArMjQyLDkgQEAgaW50IHJlZ2lzdGVyX2RtYWMoc3RydWN0 IGRtYV9pbmZvICppbmZvKQogCiAJCXNpemUgPSBzaXplb2Yoc3RydWN0IGRt YV9jaGFubmVsKSAqIGluZm8tPm5yX2NoYW5uZWxzOwogCi0JCWluZm8tPmNo YW5uZWxzID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKKwkJaW5mby0+ Y2hhbm5lbHMgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwogCQlpZiAo IWluZm8tPmNoYW5uZWxzKQogCQkJcmV0dXJuIC1FTk9NRU07Ci0KLQkJbWVt c2V0KGluZm8tPmNoYW5uZWxzLCAwLCBzaXplKTsKIAl9CiAKIAl0b3RhbF9j aGFubmVscyA9IGdldF9ucl9jaGFubmVscygpOwpkaWZmIC1ydWJwIGxpbnV4 LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3NwYXJjL2tlcm5lbC9pb3BvcnQuYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9zcGFyYy9rZXJuZWwvaW9w b3J0LmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3NwYXJjL2tl cm5lbC9pb3BvcnQuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvc3BhcmMv a2VybmVsL2lvcG9ydC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAw ICswMjAwCkBAIC0zMTcsOSArMzE3LDggQEAgdm9pZCAqc2J1c19hbGxvY19j b25zaXN0ZW50KHN0cnVjdCBzYnVzXwogCWlmICgodmEgPSBfX2dldF9mcmVl X3BhZ2VzKEdGUF9LRVJORUx8X19HRlBfQ09NUCwgb3JkZXIpKSA9PSAwKQog CQlnb3RvIGVycl9ub3BhZ2VzOwogCi0JaWYgKChyZXMgPSBrbWFsbG9jKHNp emVvZihzdHJ1Y3QgcmVzb3VyY2UpLCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkK KwlpZiAoKHJlcyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSks IEdGUF9LRVJORUwpKSA9PSBOVUxMKQogCQlnb3RvIGVycl9ub21lbTsKLQlt ZW1zZXQoKGNoYXIqKXJlcywgMCwgc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkp OwogCiAJaWYgKGFsbG9jYXRlX3Jlc291cmNlKCZfc3BhcmNfZHZtYSwgcmVz LCBsZW5fdG90YWwsCiAJICAgIF9zcGFyY19kdm1hLnN0YXJ0LCBfc3BhcmNf ZHZtYS5lbmQsIFBBR0VfU0laRSwgTlVMTCwgTlVMTCkgIT0gMCkgewpAQCAt NTg5LDEyICs1ODgsMTEgQEAgdm9pZCAqcGNpX2FsbG9jX2NvbnNpc3RlbnQo c3RydWN0IHBjaV9kZQogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlpZiAoKHJl cyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSksIEdGUF9LRVJO RUwpKSA9PSBOVUxMKSB7CisJaWYgKChyZXMgPSBremFsbG9jKHNpemVvZihz dHJ1Y3QgcmVzb3VyY2UpLCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkgewogCQlm cmVlX3BhZ2VzKHZhLCBvcmRlcik7CiAJCXByaW50aygicGNpX2FsbG9jX2Nv bnNpc3RlbnQ6IG5vIGNvcmVcbiIpOwogCQlyZXR1cm4gTlVMTDsKIAl9Ci0J bWVtc2V0KChjaGFyKilyZXMsIDAsIHNpemVvZihzdHJ1Y3QgcmVzb3VyY2Up KTsKIAogCWlmIChhbGxvY2F0ZV9yZXNvdXJjZSgmX3NwYXJjX2R2bWEsIHJl cywgbGVuX3RvdGFsLAogCSAgICBfc3BhcmNfZHZtYS5zdGFydCwgX3NwYXJj X2R2bWEuZW5kLCBQQUdFX1NJWkUsIE5VTEwsIE5VTEwpICE9IDApIHsKZGlm ZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9zcGFyYy9rZXJu ZWwvb2ZfZGV2aWNlLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gv c3BhcmMva2VybmVsL29mX2RldmljZS5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvYXJjaC9zcGFyYy9rZXJuZWwvb2ZfZGV2aWNlLmMJMjAwNi0xMS0w OSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9hcmNoL3NwYXJjL2tlcm5lbC9vZl9kZXZpY2UuYwkyMDA2 LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNzkzLDEwICs3 OTMsOSBAQCBzdHJ1Y3Qgb2ZfZGV2aWNlKiBvZl9wbGF0Zm9ybV9kZXZpY2Vf Y3JlCiB7CiAJc3RydWN0IG9mX2RldmljZSAqZGV2OwogCi0JZGV2ID0ga21h bGxvYyhzaXplb2YoKmRldiksIEdGUF9LRVJORUwpOworCWRldiA9IGt6YWxs b2Moc2l6ZW9mKCpkZXYpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWRldikKIAkJ cmV0dXJuIE5VTEw7Ci0JbWVtc2V0KGRldiwgMCwgc2l6ZW9mKCpkZXYpKTsK IAogCWRldi0+ZGV2LnBhcmVudCA9IHBhcmVudDsKIAlkZXYtPmRldi5idXMg PSBidXM7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gv c3BhcmMva2VybmVsL3N1bjRkX2lycS5jIGxpbnV4LTIuNi4xOS1yYzVfa3ph bGxvYy9hcmNoL3NwYXJjL2tlcm5lbC9zdW40ZF9pcnEuYwotLS0gbGludXgt Mi42LjE5LXJjNV9vcmlnL2FyY2gvc3BhcmMva2VybmVsL3N1bjRkX2lycS5j CTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51 eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9zcGFyYy9rZXJuZWwvc3VuNGRf aXJxLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAg LTU0NSw4ICs1NDUsNyBAQCB2b2lkIF9faW5pdCBzdW40ZF9pbml0X3NiaV9p cnEodm9pZCkKIAluc2JpID0gMDsKIAlmb3JfZWFjaF9zYnVzKHNidXMpCiAJ CW5zYmkrKzsKLQlzYnVzX2FjdGlvbnMgPSAoc3RydWN0IHNidXNfYWN0aW9u ICopa21hbGxvYyAobnNiaSAqIDggKiA0ICogc2l6ZW9mKHN0cnVjdCBzYnVz X2FjdGlvbiksIEdGUF9BVE9NSUMpOwotCW1lbXNldCAoc2J1c19hY3Rpb25z LCAwLCAobnNiaSAqIDggKiA0ICogc2l6ZW9mKHN0cnVjdCBzYnVzX2FjdGlv bikpKTsKKwlzYnVzX2FjdGlvbnMgPSAoc3RydWN0IHNidXNfYWN0aW9uICop a3phbGxvYyAobnNiaSAqIDggKiA0ICogc2l6ZW9mKHN0cnVjdCBzYnVzX2Fj dGlvbiksIEdGUF9BVE9NSUMpOwogCWZvcl9lYWNoX3NidXMoc2J1cykgewog I2lmZGVmIENPTkZJR19TTVAJCiAJCWV4dGVybiB1bnNpZ25lZCBjaGFyIGJv b3RfY3B1X2lkOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9h cmNoL3NwYXJjL21tL2lvLXVuaXQuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxs b2MvYXJjaC9zcGFyYy9tbS9pby11bml0LmMKLS0tIGxpbnV4LTIuNi4xOS1y YzVfb3JpZy9hcmNoL3NwYXJjL21tL2lvLXVuaXQuYwkyMDA2LTExLTA5IDEy OjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9r emFsbG9jL2FyY2gvc3BhcmMvbW0vaW8tdW5pdC5jCTIwMDYtMTEtMTEgMjI6 NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC00MSw5ICs0MSw4IEBAIGlvdW5p dF9pbml0KGludCBzYmlfbm9kZSwgaW50IGlvX25vZGUsIHMKIAlzdHJ1Y3Qg bGludXhfcHJvbV9yZWdpc3RlcnMgaW9tbXVfcHJvbXJlZ3NbUFJPTVJFR19N QVhdOwogCXN0cnVjdCByZXNvdXJjZSByOwogCi0JaW91bml0ID0ga21hbGxv YyhzaXplb2Yoc3RydWN0IGlvdW5pdF9zdHJ1Y3QpLCBHRlBfQVRPTUlDKTsK Kwlpb3VuaXQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaW91bml0X3N0cnVj dCksIEdGUF9BVE9NSUMpOwogCi0JbWVtc2V0KGlvdW5pdCwgMCwgc2l6ZW9m KCppb3VuaXQpKTsKIAlpb3VuaXQtPmxpbWl0WzBdID0gSU9VTklUX0JNQVAx X1NUQVJUOwogCWlvdW5pdC0+bGltaXRbMV0gPSBJT1VOSVRfQk1BUDJfU1RB UlQ7CiAJaW91bml0LT5saW1pdFsyXSA9IElPVU5JVF9CTUFQTV9TVEFSVDsK ZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9zcGFyYzY0 L2tlcm5lbC9jaG1jLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gv c3BhcmM2NC9rZXJuZWwvY2htYy5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29y aWcvYXJjaC9zcGFyYzY0L2tlcm5lbC9jaG1jLmMJMjAwNi0xMS0wOSAxMjox NjoyMi4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3ph bGxvYy9hcmNoL3NwYXJjNjQva2VybmVsL2NobWMuYwkyMDA2LTExLTExIDIy OjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMzQxLDcgKzM0MSw3IEBAIHN0 YXRpYyB2b2lkIGZldGNoX2RlY29kZV9yZWdzKHN0cnVjdCBtY3QKIAogc3Rh dGljIGludCBpbml0X29uZV9tY3RybChzdHJ1Y3QgZGV2aWNlX25vZGUgKmRw KQogewotCXN0cnVjdCBtY3RybF9pbmZvICptcCA9IGttYWxsb2Moc2l6ZW9m KCptcCksIEdGUF9LRVJORUwpOworCXN0cnVjdCBtY3RybF9pbmZvICptcCA9 IGt6YWxsb2Moc2l6ZW9mKCptcCksIEdGUF9LRVJORUwpOwogCWludCBwb3J0 aWQgPSBvZl9nZXRpbnRwcm9wX2RlZmF1bHQoZHAsICJwb3J0aWQiLCAtMSk7 CiAJc3RydWN0IGxpbnV4X3Byb202NF9yZWdpc3RlcnMgKnJlZ3M7CiAJdm9p ZCAqcHZhbDsKQEAgLTM0OSw3ICszNDksNiBAQCBzdGF0aWMgaW50IGluaXRf b25lX21jdHJsKHN0cnVjdCBkZXZpY2VfCiAKIAlpZiAoIW1wKQogCQlyZXR1 cm4gLTE7Ci0JbWVtc2V0KG1wLCAwLCBzaXplb2YoKm1wKSk7CiAJaWYgKHBv cnRpZCA9PSAtMSkKIAkJZ290byBmYWlsOwogCmRpZmYgLXJ1YnAgbGludXgt Mi42LjE5LXJjNV9vcmlnL2FyY2gvc3BhcmM2NC9rZXJuZWwvaXNhLmMgbGlu dXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvc3BhcmM2NC9rZXJuZWwvaXNh LmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9hcmNoL3NwYXJjNjQva2Vy bmVsL2lzYS5jCTIwMDYtMTEtMDkgMTI6MTY6MjIuMDAwMDAwMDAwICswMjAw CisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvYXJjaC9zcGFyYzY0L2tl cm5lbC9pc2EuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIw MApAQCAtNzIsMTQgKzcyLDEyIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpc2Ff ZmlsbF9jaGlsZHJlbihzdHIKIAkJc3RydWN0IGxpbnV4X3Byb21fcmVnaXN0 ZXJzICpyZWdzOwogCQlzdHJ1Y3Qgc3BhcmNfaXNhX2RldmljZSAqaXNhX2Rl djsKIAotCQlpc2FfZGV2ID0ga21hbGxvYyhzaXplb2YoKmlzYV9kZXYpLCBH RlBfS0VSTkVMKTsKKwkJaXNhX2RldiA9IGt6YWxsb2Moc2l6ZW9mKCppc2Ff ZGV2KSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghaXNhX2RldikgewogCQkJZmF0 YWxfZXJyKCJjYW5ub3QgYWxsb2NhdGUgY2hpbGQgaXNhX2RldiIpOwogCQkJ cHJvbV9oYWx0KCk7CiAJCX0KIAotCQltZW1zZXQoaXNhX2RldiwgMCwgc2l6 ZW9mKCppc2FfZGV2KSk7Ci0KIAkJLyogTGluayBpdCBpbiB0byBwYXJlbnQu ICovCiAJCWlzYV9kZXYtPm5leHQgPSBwYXJlbnRfaXNhX2Rldi0+Y2hpbGQ7 CiAJCXBhcmVudF9pc2FfZGV2LT5jaGlsZCA9IGlzYV9kZXY7CkBAIC0xMDQs MTQgKzEwMiwxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaXNhX2ZpbGxfZGV2 aWNlcyhzdHJ1CiAJCXN0cnVjdCBsaW51eF9wcm9tX3JlZ2lzdGVycyAqcmVn czsKIAkJc3RydWN0IHNwYXJjX2lzYV9kZXZpY2UgKmlzYV9kZXY7CiAKLQkJ aXNhX2RldiA9IGttYWxsb2Moc2l6ZW9mKCppc2FfZGV2KSwgR0ZQX0tFUk5F TCk7CisJCWlzYV9kZXYgPSBremFsbG9jKHNpemVvZigqaXNhX2RldiksIEdG UF9LRVJORUwpOwogCQlpZiAoIWlzYV9kZXYpIHsKIAkJCXByaW50ayhLRVJO X0RFQlVHICJJU0E6IGNhbm5vdCBhbGxvY2F0ZSBpc2FfZGV2Iik7CiAJCQly ZXR1cm47CiAJCX0KIAotCQltZW1zZXQoaXNhX2RldiwgMCwgc2l6ZW9mKCpp c2FfZGV2KSk7Ci0KIAkJaXNhX2Rldi0+b2ZkZXYubm9kZSA9IGRwOwogCQlp c2FfZGV2LT5vZmRldi5kZXYucGFyZW50ID0gJmlzYV9ici0+b2ZkZXYuZGV2 OwogCQlpc2FfZGV2LT5vZmRldi5kZXYuYnVzID0gJmlzYV9idXNfdHlwZTsK QEAgLTE4MCwxNCArMTc2LDEyIEBAIHZvaWQgX19pbml0IGlzYV9pbml0KHZv aWQpCiAJCXBibSA9IHBkZXZfY29va2llLT5wYm07CiAJCWRwID0gcGRldl9j b29raWUtPnByb21fbm9kZTsKIAotCQlpc2FfYnIgPSBrbWFsbG9jKHNpemVv ZigqaXNhX2JyKSwgR0ZQX0tFUk5FTCk7CisJCWlzYV9iciA9IGt6YWxsb2Mo c2l6ZW9mKCppc2FfYnIpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFpc2FfYnIp IHsKIAkJCXByaW50ayhLRVJOX0RFQlVHICJpc2E6IGNhbm5vdCBhbGxvY2F0 ZSBzcGFyY19pc2FfYnJpZGdlIik7CiAJCQlyZXR1cm47CiAJCX0KIAotCQlt ZW1zZXQoaXNhX2JyLCAwLCBzaXplb2YoKmlzYV9icikpOwotCiAJCWlzYV9i ci0+b2ZkZXYubm9kZSA9IGRwOwogCQlpc2FfYnItPm9mZGV2LmRldi5wYXJl bnQgPSAmcGRldi0+ZGV2OwogCQlpc2FfYnItPm9mZGV2LmRldi5idXMgPSAm aXNhX2J1c190eXBlOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3Jp Zy9hcmNoL3NwYXJjNjQva2VybmVsL29mX2RldmljZS5jIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9hcmNoL3NwYXJjNjQva2VybmVsL29mX2RldmljZS5j Ci0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC9zcGFyYzY0L2tlcm5l bC9vZl9kZXZpY2UuYwkyMDA2LTExLTA5IDEyOjE2OjIyLjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvc3BhcmM2 NC9rZXJuZWwvb2ZfZGV2aWNlLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAw MDAwMDAgKzAyMDAKQEAgLTEwMDcsMTAgKzEwMDcsOSBAQCBzdHJ1Y3Qgb2Zf ZGV2aWNlKiBvZl9wbGF0Zm9ybV9kZXZpY2VfY3JlCiB7CiAJc3RydWN0IG9m X2RldmljZSAqZGV2OwogCi0JZGV2ID0ga21hbGxvYyhzaXplb2YoKmRldiks IEdGUF9LRVJORUwpOworCWRldiA9IGt6YWxsb2Moc2l6ZW9mKCpkZXYpLCBH RlBfS0VSTkVMKTsKIAlpZiAoIWRldikKIAkJcmV0dXJuIE5VTEw7Ci0JbWVt c2V0KGRldiwgMCwgc2l6ZW9mKCpkZXYpKTsKIAogCWRldi0+ZGV2LnBhcmVu dCA9IHBhcmVudDsKIAlkZXYtPmRldi5idXMgPSBidXM7CmRpZmYgLXJ1YnAg bGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvc3BhcmM2NC9rZXJuZWwvcGNp X3N1bjR2LmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gvc3BhcmM2 NC9rZXJuZWwvcGNpX3N1bjR2LmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3Jp Zy9hcmNoL3NwYXJjNjQva2VybmVsL3BjaV9zdW40di5jCTIwMDYtMTEtMDkg MTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1 X2t6YWxsb2MvYXJjaC9zcGFyYzY0L2tlcm5lbC9wY2lfc3VuNHYuYwkyMDA2 LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNzk4LDcgKzc5 OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyBwY2lfc3VuNHZfb3BzID0g ewogc3RhdGljIHZvaWQgcGJtX3NjYW5fYnVzKHN0cnVjdCBwY2lfY29udHJv bGxlcl9pbmZvICpwLAogCQkJIHN0cnVjdCBwY2lfcGJtX2luZm8gKnBibSkK IHsKLQlzdHJ1Y3QgcGNpZGV2X2Nvb2tpZSAqY29va2llID0ga21hbGxvYyhz aXplb2YoKmNvb2tpZSksIEdGUF9LRVJORUwpOworCXN0cnVjdCBwY2lkZXZf Y29va2llICpjb29raWUgPSBremFsbG9jKHNpemVvZigqY29va2llKSwgR0ZQ X0tFUk5FTCk7CiAKIAlpZiAoIWNvb2tpZSkgewogCQlwcm9tX3ByaW50Zigi JXM6IENyaXRpY2FsIGFsbG9jYXRpb24gZmFpbHVyZS5cbiIsIHBibS0+bmFt ZSk7CkBAIC04MDYsNyArODA2LDYgQEAgc3RhdGljIHZvaWQgcGJtX3NjYW5f YnVzKHN0cnVjdCBwY2lfY29udAogCX0KIAogCS8qIEFsbCB3ZSBjYXJlIGFi b3V0IGlzIHRoZSBQQk0uICovCi0JbWVtc2V0KGNvb2tpZSwgMCwgc2l6ZW9m KCpjb29raWUpKTsKIAljb29raWUtPnBibSA9IHBibTsKIAogCXBibS0+cGNp X2J1cyA9IHBjaV9zY2FuX2J1cyhwYm0tPnBjaV9maXJzdF9idXNubywgcC0+ cGNpX29wcywgcGJtKTsKQEAgLTEwNDgsMTIgKzEwNDcsMTEgQEAgc3RhdGlj IHZvaWQgcGNpX3N1bjR2X2lvbW11X2luaXQoc3RydWN0IAogCS8qIEFsbG9j YXRlIGFuZCBpbml0aWFsaXplIHRoZSBmcmVlIGFyZWEgbWFwLiAgKi8KIAlz eiA9IG51bV90c2JfZW50cmllcyAvIDg7CiAJc3ogPSAoc3ogKyA3VUwpICYg fjdVTDsKLQlpb21tdS0+YXJlbmEubWFwID0ga21hbGxvYyhzeiwgR0ZQX0tF Uk5FTCk7CisJaW9tbXUtPmFyZW5hLm1hcCA9IGt6YWxsb2Moc3osIEdGUF9L RVJORUwpOwogCWlmICghaW9tbXUtPmFyZW5hLm1hcCkgewogCQlwcm9tX3By aW50ZigiUENJX0lPTU1VOiBFcnJvciwga21hbGxvYyhhcmVuYS5tYXApIGZh aWxlZC5cbiIpOwogCQlwcm9tX2hhbHQoKTsKIAl9Ci0JbWVtc2V0KGlvbW11 LT5hcmVuYS5tYXAsIDAsIHN6KTsKIAlpb21tdS0+YXJlbmEubGltaXQgPSBu dW1fdHNiX2VudHJpZXM7CiAKIAlzeiA9IHByb2JlX2V4aXN0aW5nX2VudHJp ZXMocGJtLCBpb21tdSk7CkBAIC0xMTY0LDI0ICsxMTYyLDIwIEBAIHZvaWQg c3VuNHZfcGNpX2luaXQoc3RydWN0IGRldmljZV9ub2RlICoKIAkJcGVyX2Nw dShwY2lfaW9tbXVfYmF0Y2gsIGkpLnBnbGlzdCA9ICh1NjQgKikgcGFnZTsK IAl9CiAKLQlwID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBjaV9jb250cm9s bGVyX2luZm8pLCBHRlBfQVRPTUlDKTsKKwlwID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IHBjaV9jb250cm9sbGVyX2luZm8pLCBHRlBfQVRPTUlDKTsKIAlp ZiAoIXApCiAJCWdvdG8gZmF0YWxfbWVtb3J5X2Vycm9yOwogCi0JbWVtc2V0 KHAsIDAsIHNpemVvZigqcCkpOwotCi0JaW9tbXUgPSBrbWFsbG9jKHNpemVv ZihzdHJ1Y3QgcGNpX2lvbW11KSwgR0ZQX0FUT01JQyk7CisJaW9tbXUgPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgcGNpX2lvbW11KSwgR0ZQX0FUT01JQyk7 CiAJaWYgKCFpb21tdSkKIAkJZ290byBmYXRhbF9tZW1vcnlfZXJyb3I7CiAK LQltZW1zZXQoaW9tbXUsIDAsIHNpemVvZigqaW9tbXUpKTsKIAlwLT5wYm1f QS5pb21tdSA9IGlvbW11OwogCi0JaW9tbXUgPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3QgcGNpX2lvbW11KSwgR0ZQX0FUT01JQyk7CisJaW9tbXUgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgcGNpX2lvbW11KSwgR0ZQX0FUT01JQyk7CiAJ aWYgKCFpb21tdSkKIAkJZ290byBmYXRhbF9tZW1vcnlfZXJyb3I7CiAKLQlt ZW1zZXQoaW9tbXUsIDAsIHNpemVvZigqaW9tbXUpKTsKIAlwLT5wYm1fQi5p b21tdSA9IGlvbW11OwogCiAJcC0+bmV4dCA9IHBjaV9jb250cm9sbGVyX3Jv b3Q7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2FyY2gvdW0v ZHJpdmVycy9uZXRfa2Vybi5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9h cmNoL3VtL2RyaXZlcnMvbmV0X2tlcm4uYwotLS0gbGludXgtMi42LjE5LXJj NV9vcmlnL2FyY2gvdW0vZHJpdmVycy9uZXRfa2Vybi5jCTIwMDYtMTEtMDkg MTI6MTY6MjIuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1 X2t6YWxsb2MvYXJjaC91bS9kcml2ZXJzL25ldF9rZXJuLmMJMjAwNi0xMS0x MSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTMzMywxMyArMzMzLDEy IEBAIHN0YXRpYyBpbnQgZXRoX2NvbmZpZ3VyZShpbnQgbiwgdm9pZCAqaW4K IAlzaXplID0gdHJhbnNwb3J0LT5wcml2YXRlX3NpemUgKyBzaXplb2Yoc3Ry dWN0IHVtbF9uZXRfcHJpdmF0ZSkgKyAKIAkJc2l6ZW9mKCgoc3RydWN0IHVt bF9uZXRfcHJpdmF0ZSAqKSAwKS0+dXNlcik7CiAKLQlkZXZpY2UgPSBrbWFs bG9jKHNpemVvZigqZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJZGV2aWNlID0g a3phbGxvYyhzaXplb2YoKmRldmljZSksIEdGUF9LRVJORUwpOwogCWlmIChk ZXZpY2UgPT0gTlVMTCkgewogCQlwcmludGsoS0VSTl9FUlIgImV0aF9jb25m aWd1cmUgZmFpbGVkIHRvIGFsbG9jYXRlIHVtbF9uZXRcbiIpOwogCQlyZXR1 cm4oMSk7CiAJfQogCi0JbWVtc2V0KGRldmljZSwgMCwgc2l6ZW9mKCpkZXZp Y2UpKTsKIAlJTklUX0xJU1RfSEVBRCgmZGV2aWNlLT5saXN0KTsKIAlkZXZp Y2UtPmluZGV4ID0gbjsKIApkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVf b3JpZy9hcmNoL3g4Nl82NC9rZXJuZWwvaW9fYXBpYy5jIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9hcmNoL3g4Nl82NC9rZXJuZWwvaW9fYXBpYy5jCi0t LSBsaW51eC0yLjYuMTktcmM1X29yaWcvYXJjaC94ODZfNjQva2VybmVsL2lv X2FwaWMuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAor KysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2FyY2gveDg2XzY0L2tlcm5l bC9pb19hcGljLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAy MDAKQEAgLTE3MDksMTIgKzE3MDksMTEgQEAgc3RhdGljIGludCBfX2luaXQg aW9hcGljX2luaXRfc3lzZnModm9pZAogCWZvciAoaSA9IDA7IGkgPCBucl9p b2FwaWNzOyBpKysgKSB7CiAJCXNpemUgPSBzaXplb2Yoc3RydWN0IHN5c19k ZXZpY2UpICsgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXQogCQkJKiBzaXplb2Yo c3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkpOwotCQltcF9pb2FwaWNfZGF0 YVtpXSA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCW1wX2lvYXBp Y19kYXRhW2ldID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKIAkJaWYg KCFtcF9pb2FwaWNfZGF0YVtpXSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJD YW4ndCBzdXNwZW5kL3Jlc3VtZSBJT0FQSUMgJWRcbiIsIGkpOwogCQkJY29u dGludWU7CiAJCX0KLQkJbWVtc2V0KG1wX2lvYXBpY19kYXRhW2ldLCAwLCBz aXplKTsKIAkJZGV2ID0gJm1wX2lvYXBpY19kYXRhW2ldLT5kZXY7CiAJCWRl di0+aWQgPSBpOwogCQlkZXYtPmNscyA9ICZpb2FwaWNfc3lzZGV2X2NsYXNz Owo= ------=_NextPart_000_1cd2_6c8c_45fc-- - 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/