Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933026AbWKLR0a (ORCPT ); Sun, 12 Nov 2006 12:26:30 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933027AbWKLR0a (ORCPT ); Sun, 12 Nov 2006 12:26:30 -0500 Received: from bay0-omc1-s16.bay0.hotmail.com ([65.54.246.88]:18212 "EHLO bay0-omc1-s16.bay0.hotmail.com") by vger.kernel.org with ESMTP id S933026AbWKLR03 (ORCPT ); Sun, 12 Nov 2006 12:26: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 5/17 Date: Sun, 12 Nov 2006 19:26:24 +0200 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_257b_6f95_134" X-OriginalArrivalTime: 12 Nov 2006 17:26:28.0745 (UTC) FILETIME=[B00AA790:01C7067F] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 36419 Lines: 609 This is a multi-part message in MIME format. ------=_NextPart_000_257b_6f95_134 Content-Type: text/plain; format=flowed Part 5 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_257b_6f95_134 Content-Type: application/octet-stream; name="kzalloc_drivers1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kzalloc_drivers1.patch" UmVwbGFjZSBrbWFsbG9jK21lbXNldCB3aXRoIGt6YWxsb2MgClBhdGNoIDUv MTcKClNpZ25lZC1vZmYtYnk6IFlhbiBCdXJtYW4gPHlhbl85NTJAaG90bWFp bC5jb20+CgpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL2Jsb2NrL2NjaXNzLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvYmxvY2svY2Npc3MuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmln L2RyaXZlcnMvYmxvY2svY2Npc3MuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvYmxvY2svY2Npc3MuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAw MDAwMCArMDIwMApAQCAtMTk2OSwxMiArMTk2OSwxMSBAQCBjY2lzc19yZWFk X2NhcGFjaXR5KGludCBjdGxyLCBpbnQgbG9ndm9sCiB7CiAJUmVhZENhcGRh dGFfc3RydWN0ICpidWY7CiAJaW50IHJldHVybl9jb2RlOwotCWJ1ZiA9IGtt YWxsb2Moc2l6ZW9mKFJlYWRDYXBkYXRhX3N0cnVjdCksIEdGUF9LRVJORUwp OworCWJ1ZiA9IGt6YWxsb2Moc2l6ZW9mKFJlYWRDYXBkYXRhX3N0cnVjdCks IEdGUF9LRVJORUwpOwogCWlmIChidWYgPT0gTlVMTCkgewogCQlwcmludGso S0VSTl9XQVJOSU5HICJjY2lzczogb3V0IG9mIG1lbW9yeVxuIik7CiAJCXJl dHVybjsKIAl9Ci0JbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKFJlYWRDYXBkYXRh X3N0cnVjdCkpOwogCWlmICh3aXRoaXJxKQogCQlyZXR1cm5fY29kZSA9IHNl bmRjbWRfd2l0aGlycShDQ0lTU19SRUFEX0NBUEFDSVRZLAogCQkJCWN0bHIs IGJ1Ziwgc2l6ZW9mKFJlYWRDYXBkYXRhX3N0cnVjdCksCkBAIC0yMDAzLDEy ICsyMDAyLDExIEBAIGNjaXNzX3JlYWRfY2FwYWNpdHlfMTYoaW50IGN0bHIs IGludCBsb2cKIHsKIAlSZWFkQ2FwZGF0YV9zdHJ1Y3RfMTYgKmJ1ZjsKIAlp bnQgcmV0dXJuX2NvZGU7Ci0JYnVmID0ga21hbGxvYyhzaXplb2YoUmVhZENh cGRhdGFfc3RydWN0XzE2KSwgR0ZQX0tFUk5FTCk7CisJYnVmID0ga3phbGxv YyhzaXplb2YoUmVhZENhcGRhdGFfc3RydWN0XzE2KSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKGJ1ZiA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcg ImNjaXNzOiBvdXQgb2YgbWVtb3J5XG4iKTsKIAkJcmV0dXJuOwogCX0KLQlt ZW1zZXQoYnVmLCAwLCBzaXplb2YoUmVhZENhcGRhdGFfc3RydWN0XzE2KSk7 CiAJaWYgKHdpdGhpcnEpIHsKIAkJcmV0dXJuX2NvZGUgPSBzZW5kY21kX3dp dGhpcnEoQ0NJU1NfUkVBRF9DQVBBQ0lUWV8xNiwKIAkJCWN0bHIsIGJ1Ziwg c2l6ZW9mKFJlYWRDYXBkYXRhX3N0cnVjdF8xNiksCmRpZmYgLXJ1YnAgbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvYmxvY2svY3BxYXJyYXkuYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9ibG9jay9jcHFhcnJh eS5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9ibG9jay9j cHFhcnJheS5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAw CisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9ibG9jay9j cHFhcnJheS5jCTIwMDYtMTEtMTEgMjI6NDQ6MTguMDAwMDAwMDAwICswMjAw CkBAIC00MjMsNyArNDIzLDcgQEAgc3RhdGljIGludCBfX2luaXQgY3BxYXJy YXlfcmVnaXN0ZXJfY3RscgogCWhiYVtpXS0+Y21kX3Bvb2wgPSAoY21kbGlz dF90ICopcGNpX2FsbG9jX2NvbnNpc3RlbnQoCiAJCWhiYVtpXS0+cGNpX2Rl diwgTlJfQ01EUyAqIHNpemVvZihjbWRsaXN0X3QpLAogCQkmKGhiYVtpXS0+ Y21kX3Bvb2xfZGhhbmRsZSkpOwotCWhiYVtpXS0+Y21kX3Bvb2xfYml0cyA9 IGttYWxsb2MoCisJaGJhW2ldLT5jbWRfcG9vbF9iaXRzID0ga3phbGxvYygK IAkJKChOUl9DTURTK0JJVFNfUEVSX0xPTkctMSkvQklUU19QRVJfTE9ORykq c2l6ZW9mKHVuc2lnbmVkIGxvbmcpLAogCQlHRlBfS0VSTkVMKTsKIApAQCAt NDMxLDcgKzQzMSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGNwcWFycmF5X3Jl Z2lzdGVyX2N0bHIKIAkJCWdvdG8gRW5vbWVtMTsKIAogCW1lbXNldChoYmFb aV0tPmNtZF9wb29sLCAwLCBOUl9DTURTICogc2l6ZW9mKGNtZGxpc3RfdCkp OwotCW1lbXNldChoYmFbaV0tPmNtZF9wb29sX2JpdHMsIDAsICgoTlJfQ01E UytCSVRTX1BFUl9MT05HLTEpL0JJVFNfUEVSX0xPTkcpKnNpemVvZih1bnNp Z25lZCBsb25nKSk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiY3BxYXJyYXk6IEZp bmRpbmcgZHJpdmVzIG9uICVzIiwKIAkJaGJhW2ldLT5kZXZuYW1lKTsKIApA QCAtMTY1MywxNCArMTY1MiwxNCBAQCBzdGF0aWMgdm9pZCBnZXRnZW9tZXRy eShpbnQgY3RscikKIAogCWluZm9fcC0+bG9nX2Rydl9tYXAgPSAwOwkKIAkK LQlpZF9sZHJpdmUgPSAoaWRfbG9nX2Rydl90ICopa21hbGxvYyhzaXplb2Yo aWRfbG9nX2Rydl90KSwgR0ZQX0tFUk5FTCk7CisJaWRfbGRyaXZlID0gKGlk X2xvZ19kcnZfdCAqKWt6YWxsb2Moc2l6ZW9mKGlkX2xvZ19kcnZfdCksIEdG UF9LRVJORUwpOwogCWlmKGlkX2xkcml2ZSA9PSBOVUxMKQogCXsKIAkJcHJp bnRrKCBLRVJOX0VSUiAiY3BxYXJyYXk6ICBvdXQgb2YgbWVtb3J5LlxuIik7 CiAJCXJldHVybjsKIAl9CiAKLQlpZF9jdGxyX2J1ZiA9IChpZF9jdGxyX3Qg KilrbWFsbG9jKHNpemVvZihpZF9jdGxyX3QpLCBHRlBfS0VSTkVMKTsKKwlp ZF9jdGxyX2J1ZiA9IChpZF9jdGxyX3QgKilremFsbG9jKHNpemVvZihpZF9j dGxyX3QpLCBHRlBfS0VSTkVMKTsKIAlpZihpZF9jdGxyX2J1ZiA9PSBOVUxM KQogCXsKIAkJa2ZyZWUoaWRfbGRyaXZlKTsKQEAgLTE2NjgsNyArMTY2Nyw3 IEBAIHN0YXRpYyB2b2lkIGdldGdlb21ldHJ5KGludCBjdGxyKQogCQlyZXR1 cm47CiAJfQogCi0JaWRfbHN0YXR1c19idWYgPSAoc2Vuc2VfbG9nX2Rydl9z dGF0X3QgKilrbWFsbG9jKHNpemVvZihzZW5zZV9sb2dfZHJ2X3N0YXRfdCks IEdGUF9LRVJORUwpOworCWlkX2xzdGF0dXNfYnVmID0gKHNlbnNlX2xvZ19k cnZfc3RhdF90ICopa3phbGxvYyhzaXplb2Yoc2Vuc2VfbG9nX2Rydl9zdGF0 X3QpLCBHRlBfS0VSTkVMKTsKIAlpZihpZF9sc3RhdHVzX2J1ZiA9PSBOVUxM KQogCXsKIAkJa2ZyZWUoaWRfY3Rscl9idWYpOwpAQCAtMTY3Nyw3ICsxNjc2 LDcgQEAgc3RhdGljIHZvaWQgZ2V0Z2VvbWV0cnkoaW50IGN0bHIpCiAJCXJl dHVybjsKIAl9CiAKLQlzZW5zZV9jb25maWdfYnVmID0gKGNvbmZpZ190ICop a21hbGxvYyhzaXplb2YoY29uZmlnX3QpLCBHRlBfS0VSTkVMKTsKKwlzZW5z ZV9jb25maWdfYnVmID0gKGNvbmZpZ190ICopa3phbGxvYyhzaXplb2YoY29u ZmlnX3QpLCBHRlBfS0VSTkVMKTsKIAlpZihzZW5zZV9jb25maWdfYnVmID09 IE5VTEwpCiAJewogCQlrZnJlZShpZF9sc3RhdHVzX2J1Zik7CkBAIC0xNjg3 LDExICsxNjg2LDYgQEAgc3RhdGljIHZvaWQgZ2V0Z2VvbWV0cnkoaW50IGN0 bHIpCiAJCXJldHVybjsKIAl9CiAKLQltZW1zZXQoaWRfbGRyaXZlLCAwLCBz aXplb2YoaWRfbG9nX2Rydl90KSk7Ci0JbWVtc2V0KGlkX2N0bHJfYnVmLCAw LCBzaXplb2YoaWRfY3Rscl90KSk7Ci0JbWVtc2V0KGlkX2xzdGF0dXNfYnVm LCAwLCBzaXplb2Yoc2Vuc2VfbG9nX2Rydl9zdGF0X3QpKTsKLQltZW1zZXQo c2Vuc2VfY29uZmlnX2J1ZiwgMCwgc2l6ZW9mKGNvbmZpZ190KSk7Ci0KIAlp bmZvX3AtPnBoeXNfZHJpdmVzID0gMDsKIAlpbmZvX3AtPmxvZ19kcnZfbWFw ID0gMDsKIAlpbmZvX3AtPmRydl9hc3NpZ25fbWFwID0gMDsKZGlmZiAtcnVi cCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9ibG9jay9sb29wLmMg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvYmxvY2svbG9vcC5j Ci0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9ibG9jay9sb29w LmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxp bnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2Jsb2NrL2xvb3AuYwky MDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMTQxMSwx MCArMTQxMSw5IEBAIHN0YXRpYyBpbnQgX19pbml0IGxvb3BfaW5pdCh2b2lk KQogCWlmIChyZWdpc3Rlcl9ibGtkZXYoTE9PUF9NQUpPUiwgImxvb3AiKSkK IAkJcmV0dXJuIC1FSU87CiAKLQlsb29wX2RldiA9IGttYWxsb2MobWF4X2xv b3AgKiBzaXplb2Yoc3RydWN0IGxvb3BfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7 CisJbG9vcF9kZXYgPSBremFsbG9jKG1heF9sb29wICogc2l6ZW9mKHN0cnVj dCBsb29wX2RldmljZSksIEdGUF9LRVJORUwpOwogCWlmICghbG9vcF9kZXYp CiAJCWdvdG8gb3V0X21lbTE7Ci0JbWVtc2V0KGxvb3BfZGV2LCAwLCBtYXhf bG9vcCAqIHNpemVvZihzdHJ1Y3QgbG9vcF9kZXZpY2UpKTsKIAogCWRpc2tz ID0ga21hbGxvYyhtYXhfbG9vcCAqIHNpemVvZihzdHJ1Y3QgZ2VuZGlzayAq KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkaXNrcykKZGlmZiAtcnVicCBsaW51 eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9ibG9jay9zeDguYyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9ibG9jay9zeDguYwotLS0gbGlu dXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvYmxvY2svc3g4LmMJMjAwNi0x MS0wOSAxMjoxNjoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9kcml2ZXJzL2Jsb2NrL3N4OC5jCTIwMDYtMTEtMTEg MjI6NDQ6MTguMDAwMDAwMDAwICswMjAwCkBAIC0xNjA3LDcgKzE2MDcsNyBA QCBzdGF0aWMgaW50IGNhcm1faW5pdF9vbmUgKHN0cnVjdCBwY2lfZGV2CiAJ fQogI2VuZGlmCiAKLQlob3N0ID0ga21hbGxvYyhzaXplb2YoKmhvc3QpLCBH RlBfS0VSTkVMKTsKKwlob3N0ID0ga3phbGxvYyhzaXplb2YoKmhvc3QpLCBH RlBfS0VSTkVMKTsKIAlpZiAoIWhvc3QpIHsKIAkJcHJpbnRrKEtFUk5fRVJS IERSVl9OQU1FICIoJXMpOiBtZW1vcnkgYWxsb2MgZmFpbHVyZVxuIiwKIAkJ ICAgICAgIHBjaV9uYW1lKHBkZXYpKTsKQEAgLTE2MTUsNyArMTYxNSw2IEBA IHN0YXRpYyBpbnQgY2FybV9pbml0X29uZSAoc3RydWN0IHBjaV9kZXYKIAkJ Z290byBlcnJfb3V0X3JlZ2lvbnM7CiAJfQogCi0JbWVtc2V0KGhvc3QsIDAs IHNpemVvZigqaG9zdCkpOwogCWhvc3QtPnBkZXYgPSBwZGV2OwogCWhvc3Qt PmZsYWdzID0gcGNpX2RhYyA/IEZMX0RBQyA6IDA7CiAJc3Bpbl9sb2NrX2lu aXQoJmhvc3QtPmxvY2spOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVf b3JpZy9kcml2ZXJzL2NoYXIvYW1pc2VyaWFsLmMgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvY2hhci9hbWlzZXJpYWwuYwotLS0gbGludXgt Mi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9hbWlzZXJpYWwuYwkyMDA2 LTExLTA5IDEyOjE2OjIwLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42 LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9hbWlzZXJpYWwuYwkyMDA2 LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMTczMCwxMiAr MTczMCwxMSBAQCBzdGF0aWMgaW50IGdldF9hc3luY19zdHJ1Y3QoaW50IGxp bmUsIHN0CiAJCSpyZXRfaW5mbyA9IHNzdGF0ZS0+aW5mbzsKIAkJcmV0dXJu IDA7CiAJfQotCWluZm8gPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgYXN5bmNf c3RydWN0KSwgR0ZQX0tFUk5FTCk7CisJaW5mbyA9IGt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBhc3luY19zdHJ1Y3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWlu Zm8pIHsKIAkJc3N0YXRlLT5jb3VudC0tOwogCQlyZXR1cm4gLUVOT01FTTsK IAl9Ci0JbWVtc2V0KGluZm8sIDAsIHNpemVvZihzdHJ1Y3QgYXN5bmNfc3Ry dWN0KSk7CiAjaWZkZWYgREVDTEFSRV9XQUlUUVVFVUUKIAlpbml0X3dhaXRx dWV1ZV9oZWFkKCZpbmZvLT5vcGVuX3dhaXQpOwogCWluaXRfd2FpdHF1ZXVl X2hlYWQoJmluZm8tPmNsb3NlX3dhaXQpOwpkaWZmIC1ydWJwIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvY29uc29sZW1hcC5jIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvY29uc29sZW1hcC5j Ci0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9jaGFyL2NvbnNv bGVtYXAuYwkyMDA2LTExLTA5IDEyOjE2OjIwLjAwMDAwMDAwMCArMDIwMAor KysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9jb25z b2xlbWFwLmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAK QEAgLTQ0MywxMiArNDQzLDExIEBAIGludCBjb25fY2xlYXJfdW5pbWFwKHN0 cnVjdCB2Y19kYXRhICp2YywKIAlwID0gKHN0cnVjdCB1bmlfcGFnZWRpciAq KSp2Yy0+dmNfdW5pX3BhZ2VkaXJfbG9jOwogCWlmIChwICYmIHAtPnJlYWRv bmx5KSByZXR1cm4gLUVJTzsKIAlpZiAoIXAgfHwgLS1wLT5yZWZjb3VudCkg ewotCQlxID0gKHN0cnVjdCB1bmlfcGFnZWRpciAqKWttYWxsb2Moc2l6ZW9m KCpwKSwgR0ZQX0tFUk5FTCk7CisJCXEgPSAoc3RydWN0IHVuaV9wYWdlZGly ICopa3phbGxvYyhzaXplb2YoKnEpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFx KSB7CiAJCQlpZiAocCkgcC0+cmVmY291bnQrKzsKIAkJCXJldHVybiAtRU5P TUVNOwogCQl9Ci0JCW1lbXNldChxLCAwLCBzaXplb2YoKnEpKTsKIAkJcS0+ cmVmY291bnQ9MTsKIAkJKnZjLT52Y191bmlfcGFnZWRpcl9sb2MgPSAodW5z aWduZWQgbG9uZylxOwogCX0gZWxzZSB7CmRpZmYgLXJ1YnAgbGludXgtMi42 LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9kcm0vZmZiX2Rydi5jIGxpbnV4 LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvZHJtL2ZmYl9kcnYu YwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9kcm0v ZmZiX2Rydi5jCTIwMDYtMTEtMDkgMTI6MTY6MjAuMDAwMDAwMDAwICswMjAw CisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL2Ry bS9mZmJfZHJ2LmMJMjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAy MDAKQEAgLTIxOCwxMCArMjE4LDkgQEAgc3RhdGljIGludCBmZmJfcHJlc2V0 dXAoZHJtX2RldmljZV90ICogZAogCQlyZXR1cm4gLUVOT0RFVjsKIAogCS8q IGNvZGUgdXNlZCB0byB1c2UgbnVtZGV2cyBubyBudW1kZXZzIGFueW1vcmUg Ki8KLQlmZmJfcHJpdiA9IGttYWxsb2Moc2l6ZW9mKGZmYl9kZXZfcHJpdl90 KSwgR0ZQX0tFUk5FTCk7CisJZmZiX3ByaXYgPSBremFsbG9jKHNpemVvZihm ZmJfZGV2X3ByaXZfdCksIEdGUF9LRVJORUwpOwogCWlmICghZmZiX3ByaXYp CiAJCXJldHVybiAtRU5PTUVNOwotCW1lbXNldChmZmJfcHJpdiwgMCwgc2l6 ZW9mKCpmZmJfcHJpdikpOwogCWRldi0+ZGV2X3ByaXZhdGUgPSBmZmJfcHJp djsKIAogCXJldCA9IGZmYl9pbml0X29uZShkZXYsIGZmYl9wb3NpdGlvbltp XS5ub2RlLCBmZmJfcG9zaXRpb25baV0ucm9vdCwgaSk7CmRpZmYgLXJ1YnAg bGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9kcm0vdmlhX2Rt YWJsaXQuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFy L2RybS92aWFfZG1hYmxpdC5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcv ZHJpdmVycy9jaGFyL2RybS92aWFfZG1hYmxpdC5jCTIwMDYtMTEtMDkgMTI6 MTY6MjAuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6 YWxsb2MvZHJpdmVycy9jaGFyL2RybS92aWFfZG1hYmxpdC5jCTIwMDYtMTEt MTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0yNzEsMTAgKzI3MSw5 IEBAIHZpYV9hbGxvY19kZXNjX3BhZ2VzKGRybV92aWFfc2dfaW5mb190ICoK IAl2c2ctPm51bV9kZXNjX3BhZ2VzID0gKHZzZy0+bnVtX2Rlc2MgKyB2c2ct PmRlc2NyaXB0b3JzX3Blcl9wYWdlIC0gMSkgLyAKIAkJdnNnLT5kZXNjcmlw dG9yc19wZXJfcGFnZTsKIAotCWlmIChOVUxMID09ICAodnNnLT5kZXNjX3Bh Z2VzID0ga21hbGxvYyhzaXplb2Yodm9pZCAqKSAqIHZzZy0+bnVtX2Rlc2Nf cGFnZXMsIEdGUF9LRVJORUwpKSkgCisJaWYgKE5VTEwgPT0gKHZzZy0+ZGVz Y19wYWdlcyA9IGt6YWxsb2Moc2l6ZW9mKHZvaWQgKikgKiB2c2ctPm51bV9k ZXNjX3BhZ2VzLCBHRlBfS0VSTkVMKSkpIAogCQlyZXR1cm4gRFJNX0VSUihF Tk9NRU0pOwogCQotCW1lbXNldCh2c2ctPmRlc2NfcGFnZXMsIDAsIHNpemVv Zih2b2lkICopICogdnNnLT5udW1fZGVzY19wYWdlcyk7CiAJdnNnLT5zdGF0 ZSA9IGRyX3ZpYV9kZXNjX3BhZ2VzX2FsbG9jOwogCWZvciAoaT0wOyBpPHZz Zy0+bnVtX2Rlc2NfcGFnZXM7ICsraSkgewogCQlpZiAoTlVMTCA9PSAodnNn LT5kZXNjX3BhZ2VzW2ldID0gCmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJj NV9vcmlnL2RyaXZlcnMvY2hhci9lc3AuYyBsaW51eC0yLjYuMTktcmM1X2t6 YWxsb2MvZHJpdmVycy9jaGFyL2VzcC5jCi0tLSBsaW51eC0yLjYuMTktcmM1 X29yaWcvZHJpdmVycy9jaGFyL2VzcC5jCTIwMDYtMTEtMDkgMTI6MTY6MjAu MDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2Mv ZHJpdmVycy9jaGFyL2VzcC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAw MDAwICswMjAwCkBAIC0yNDY0LDcgKzI0NjQsNyBAQCBzdGF0aWMgaW50IF9f aW5pdCBlc3BzZXJpYWxfaW5pdCh2b2lkKQogCQlyZXR1cm4gMTsKIAl9CiAK LQlpbmZvID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGVzcF9zdHJ1Y3QpLCBH RlBfS0VSTkVMKTsKKwlpbmZvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGVz cF9zdHJ1Y3QpLCBHRlBfS0VSTkVMKTsKIAogCWlmICghaW5mbykKIAl7CkBA IC0yNDc0LDcgKzI0NzQsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBlc3BzZXJp YWxfaW5pdCh2b2lkKQogCQlyZXR1cm4gMTsKIAl9CiAKLQltZW1zZXQoKHZv aWQgKilpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGVzcF9zdHJ1Y3QpKTsKIAlz cGluX2xvY2tfaW5pdCgmaW5mby0+bG9jayk7CiAJLyogcnhfdHJpZ2dlciwg dHhfdHJpZ2dlciBhcmUgbmVlZGVkIGJ5IGF1dG9jb25maWcgKi8KIAlpbmZv LT5jb25maWcucnhfdHJpZ2dlciA9IHJ4X3RyaWdnZXI7CkBAIC0yNTMyLDcg KzI1MzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBlc3BzZXJpYWxfaW5pdCh2 b2lkKQogCQlpZiAoIWRtYSkKIAkJCWluZm8tPnN0YXRfZmxhZ3MgfD0gRVNQ X1NUQVRfTkVWRVJfRE1BOwogCi0JCWluZm8gPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3QgZXNwX3N0cnVjdCksIEdGUF9LRVJORUwpOworCQlpbmZvID0ga3ph bGxvYyhzaXplb2Yoc3RydWN0IGVzcF9zdHJ1Y3QpLCBHRlBfS0VSTkVMKTsK IAkJaWYgKCFpbmZvKQogCQl7CiAJCQlwcmludGsoS0VSTl9FUlIgIkNvdWxk bid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZXNwIHNlcmlhbCBkZXZpY2UgaW5m b3JtYXRpb25cbiIpOyAKQEAgLTI1NDEsNyArMjU0MCw2IEBAIHN0YXRpYyBp bnQgX19pbml0IGVzcHNlcmlhbF9pbml0KHZvaWQpCiAJCQlyZXR1cm4gMDsK IAkJfQogCi0JCW1lbXNldCgodm9pZCAqKWluZm8sIDAsIHNpemVvZihzdHJ1 Y3QgZXNwX3N0cnVjdCkpOwogCQkvKiByeF90cmlnZ2VyLCB0eF90cmlnZ2Vy IGFyZSBuZWVkZWQgYnkgYXV0b2NvbmZpZyAqLwogCQlpbmZvLT5jb25maWcu cnhfdHJpZ2dlciA9IHJ4X3RyaWdnZXI7CiAJCWluZm8tPmNvbmZpZy50eF90 cmlnZ2VyID0gdHhfdHJpZ2dlcjsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTkt cmM1X29yaWcvZHJpdmVycy9jaGFyL2Z0YXBlL2xvd2xldmVsL2Z0YXBlLWJ1 ZmZlci5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIv ZnRhcGUvbG93bGV2ZWwvZnRhcGUtYnVmZmVyLmMKLS0tIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvZnRhcGUvbG93bGV2ZWwvZnRhcGUt YnVmZmVyLmMJMjAwNi0xMS0wOSAxMjoxNjoyMC4wMDAwMDAwMDAgKzAyMDAK KysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvZnRh cGUvbG93bGV2ZWwvZnRhcGUtYnVmZmVyLmMJMjAwNi0xMS0xMSAyMjo0NDow NC4wMDAwMDAwMDAgKzAyMDAKQEAgLTc0LDExICs3NCwxMCBAQCBzdGF0aWMg aW50IGFkZF9vbmVfYnVmZmVyKHZvaWQpCiAJaWYgKGZ0X25yX2J1ZmZlcnMg Pj0gRlRfTUFYX05SX0JVRkZFUlMpIHsKIAkJVFJBQ0VfRVhJVCAtRU5PTUVN OwogCX0KLQlmdF9idWZmZXJbZnRfbnJfYnVmZmVyc10gPSBrbWFsbG9jKHNp emVvZihidWZmZXJfc3RydWN0KSwgR0ZQX0tFUk5FTCk7CisJZnRfYnVmZmVy W2Z0X25yX2J1ZmZlcnNdID0ga3phbGxvYyhzaXplb2YoYnVmZmVyX3N0cnVj dCksIEdGUF9LRVJORUwpOwogCWlmIChmdF9idWZmZXJbZnRfbnJfYnVmZmVy c10gPT0gTlVMTCkgewogCQlUUkFDRV9FWElUIC1FTk9NRU07CiAJfQotCW1l bXNldChmdF9idWZmZXJbZnRfbnJfYnVmZmVyc10sIDAsIHNpemVvZihidWZm ZXJfc3RydWN0KSk7CiAJZnRfYnVmZmVyW2Z0X25yX2J1ZmZlcnNdLT5hZGRy ZXNzID0gZG1hYWxsb2MoRlRfQlVGRl9TSVpFKTsKIAlpZiAoZnRfYnVmZmVy W2Z0X25yX2J1ZmZlcnNdLT5hZGRyZXNzID09IE5VTEwpIHsKIAkJa2ZyZWUo ZnRfYnVmZmVyW2Z0X25yX2J1ZmZlcnNdKTsKZGlmZiAtcnVicCBsaW51eC0y LjYuMTktcmM1X29yaWcvZHJpdmVycy9jaGFyL2h2Y3MuYyBsaW51eC0yLjYu MTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL2h2Y3MuYwotLS0gbGludXgt Mi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9odmNzLmMJMjAwNi0xMS0w OSAxMjoxNjoyMC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1y YzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvaHZjcy5jCTIwMDYtMTEtMTEgMjI6 NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC02MjAsMTMgKzYyMCwxMSBAQCBz dGF0aWMgaW50IF9fZGV2aW5pdCBodmNzX3Byb2JlKAogCQlyZXR1cm4gLUVG QVVMVDsKIAl9CiAKLQlodmNzZCA9IGttYWxsb2Moc2l6ZW9mKCpodmNzZCks IEdGUF9LRVJORUwpOworCS8qIGh2Y3NkLT50dHkgaXMgemVyb2VkIG91dCB3 aXRoIHRoZSBremFsbG9jICovCisJaHZjc2QgPSBremFsbG9jKHNpemVvZigq aHZjc2QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWh2Y3NkKQogCQlyZXR1cm4g LUVOT0RFVjsKIAotCS8qIGh2Y3NkLT50dHkgaXMgemVyb2VkIG91dCB3aXRo IHRoZSBtZW1zZXQgKi8KLQltZW1zZXQoaHZjc2QsIDB4MDAsIHNpemVvZigq aHZjc2QpKTsKLQogCXNwaW5fbG9ja19pbml0KCZodmNzZC0+bG9jayk7CiAJ LyogQXV0b21hdGljYWxseSBpbmNzIHRoZSByZWZjb3VudCB0aGUgZmlyc3Qg dGltZSAqLwogCWtvYmplY3RfaW5pdCgmaHZjc2QtPmtvYmopOwpkaWZmIC1y dWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvaXAyL2lw Mm1haW4uYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFy L2lwMi9pcDJtYWluLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2 ZXJzL2NoYXIvaXAyL2lwMm1haW4uYwkyMDA2LTExLTA5IDEyOjE2OjIwLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvY2hhci9pcDIvaXAybWFpbi5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQu MDAwMDAwMDAwICswMjAwCkBAIC02NDcsMTAgKzY0Nyw5IEBAIGlwMl9sb2Fk bWFpbihpbnQgKmlvcCwgaW50ICppcnFwLCB1bnNpZ24KIAogCWZvciAoIGkg PSAwOyBpIDwgSVAyX01BWF9CT0FSRFM7ICsraSApIHsKIAkJaWYgKCBpcDJj b25maWcuYWRkcltpXSApIHsKLQkJCXBCID0ga21hbGxvYyggc2l6ZW9mKGky ZUJvcmRTdHIpLCBHRlBfS0VSTkVMKTsKKwkJCXBCID0ga3phbGxvYyggc2l6 ZW9mKGkyZUJvcmRTdHIpLCBHRlBfS0VSTkVMKTsKIAkJCWlmICggcEIgIT0g TlVMTCApIHsKIAkJCQlpMkJvYXJkUHRyVGFibGVbaV0gPSBwQjsKLQkJCQlt ZW1zZXQoIHBCLCAwLCBzaXplb2YoaTJlQm9yZFN0cikgKTsKIAkJCQlpaVNl dEFkZHJlc3MoIHBCLCBpcDJjb25maWcuYWRkcltpXSwgaWkyRGVsYXlUaW1l ciApOwogCQkJCWlpUmVzZXQoIHBCICk7CiAJCQl9IGVsc2UgewpkaWZmIC1y dWJwIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvaXBtaS9p cG1pX21zZ2hhbmRsZXIuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJp dmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKLS0tIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX21zZ2hhbmRs ZXIuYwkyMDA2LTExLTA5IDEyOjE2OjIwLjAwMDAwMDAwMCArMDIwMAorKysg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9pcG1pL2lw bWlfbXNnaGFuZGxlci5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAw ICswMjAwCkBAIC0yNDIzLDEwICsyNDIzLDkgQEAgaW50IGlwbWlfcmVnaXN0 ZXJfc21pKHN0cnVjdCBpcG1pX3NtaV9oYQogCQkJcmV0dXJuIC1FTk9ERVY7 CiAJfQogCi0JaW50ZiA9IGttYWxsb2Moc2l6ZW9mKCppbnRmKSwgR0ZQX0tF Uk5FTCk7CisJaW50ZiA9IGt6YWxsb2Moc2l6ZW9mKCppbnRmKSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCFpbnRmKQogCQlyZXR1cm4gLUVOT01FTTsKLQltZW1z ZXQoaW50ZiwgMCwgc2l6ZW9mKCppbnRmKSk7CiAJaW50Zi0+Ym1jID0ga3ph bGxvYyhzaXplb2YoKmludGYtPmJtYyksIEdGUF9LRVJORUwpOwogCWlmICgh aW50Zi0+Ym1jKSB7CiAJCWtmcmVlKGludGYpOwpkaWZmIC1ydWJwIGxpbnV4 LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvcGNtY2lhL3N5bmNsaW5r X2NzLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9w Y21jaWEvc3luY2xpbmtfY3MuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmln L2RyaXZlcnMvY2hhci9wY21jaWEvc3luY2xpbmtfY3MuYwkyMDA2LTExLTA5 IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvY2hhci9wY21jaWEvc3luY2xpbmtfY3MuYwky MDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNTM5LDEz ICs1MzksMTIgQEAgc3RhdGljIGludCBtZ3NscGNfcHJvYmUoc3RydWN0IHBj bWNpYV9kZQogICAgIGlmIChkZWJ1Z19sZXZlbCA+PSBERUJVR19MRVZFTF9J TkZPKQogCSAgICBwcmludGsoIm1nc2xwY19hdHRhY2hcbiIpOwogCi0gICAg aW5mbyA9IChNR1NMUENfSU5GTyAqKWttYWxsb2Moc2l6ZW9mKE1HU0xQQ19J TkZPKSwgR0ZQX0tFUk5FTCk7CisgICAgaW5mbyA9IChNR1NMUENfSU5GTyAq KWt6YWxsb2Moc2l6ZW9mKE1HU0xQQ19JTkZPKSwgR0ZQX0tFUk5FTCk7CiAg ICAgaWYgKCFpbmZvKSB7CiAJICAgIHByaW50aygiRXJyb3IgY2FuJ3QgYWxs b2NhdGUgZGV2aWNlIGluc3RhbmNlIGRhdGFcbiIpOwogCSAgICByZXR1cm4g LUVOT01FTTsKICAgICB9CiAKLSAgICBtZW1zZXQoaW5mbywgMCwgc2l6ZW9m KE1HU0xQQ19JTkZPKSk7CiAgICAgaW5mby0+bWFnaWMgPSBNR1NMUENfTUFH SUM7CiAgICAgSU5JVF9XT1JLKCZpbmZvLT50YXNrLCBiaF9oYW5kbGVyLCBp bmZvKTsKICAgICBpbmZvLT5tYXhfZnJhbWVfc2l6ZSA9IDQwOTY7CmRpZmYg LXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9yYW5k b20uYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL3Jh bmRvbS5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9jaGFy L3JhbmRvbS5jCTIwMDYtMTEtMDkgMTI6MTY6MjAuMDAwMDAwMDAwICswMjAw CisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL3Jh bmRvbS5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBA IC05MTQsMTEgKzkxNCw5IEBAIHZvaWQgcmFuZF9pbml0aWFsaXplX2lycShp bnQgaXJxKQogCSAqIElmIGttYWxsb2MgcmV0dXJucyBudWxsLCB3ZSBqdXN0 IHdvbid0IHVzZSB0aGF0IGVudHJvcHkKIAkgKiBzb3VyY2UuCiAJICovCi0J c3RhdGUgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdGltZXJfcmFuZF9zdGF0 ZSksIEdGUF9LRVJORUwpOwotCWlmIChzdGF0ZSkgewotCQltZW1zZXQoc3Rh dGUsIDAsIHNpemVvZihzdHJ1Y3QgdGltZXJfcmFuZF9zdGF0ZSkpOworCXN0 YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRpbWVyX3JhbmRfc3RhdGUp LCBHRlBfS0VSTkVMKTsKKwlpZiAoc3RhdGUpCiAJCWlycV90aW1lcl9zdGF0 ZVtpcnFdID0gc3RhdGU7Ci0JfQogfQogCiAjaWZkZWYgQ09ORklHX0JMT0NL CkBAIC05MzAsMTEgKzkyOCw5IEBAIHZvaWQgcmFuZF9pbml0aWFsaXplX2Rp c2soc3RydWN0IGdlbmRpc2sKIAkgKiBJZiBrbWFsbG9jIHJldHVybnMgbnVs bCwgd2UganVzdCB3b24ndCB1c2UgdGhhdCBlbnRyb3B5CiAJICogc291cmNl LgogCSAqLwotCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRpbWVy X3JhbmRfc3RhdGUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoc3RhdGUpIHsKLQkJ bWVtc2V0KHN0YXRlLCAwLCBzaXplb2Yoc3RydWN0IHRpbWVyX3JhbmRfc3Rh dGUpKTsKKwlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0aW1lcl9y YW5kX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHN0YXRlKQogCQlkaXNr LT5yYW5kb20gPSBzdGF0ZTsKLQl9CiB9CiAjZW5kaWYKIApkaWZmIC1ydWJw IGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvcm9ja2V0LmMg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9yb2NrZXQu YwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hhci9yb2Nr ZXQuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAwMDAwMDAwMCArMDIwMAorKysg bGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9yb2NrZXQu YwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtNjM4 LDEyICs2MzgsMTEgQEAgc3RhdGljIHZvaWQgaW5pdF9yX3BvcnQoaW50IGJv YXJkLCBpbnQgYQogCWN0bHAgPSBzQ3RsTnVtVG9DdGxQdHIoYm9hcmQpOwog CiAJLyogIEdldCBhIHJfcG9ydCBzdHJ1Y3QgZm9yIHRoZSBwb3J0LCBmaWxs IGl0IGluIGFuZCBzYXZlIGl0IGdsb2JhbGx5LCBpbmRleGVkIGJ5IGxpbmUg bnVtYmVyICovCi0JaW5mbyA9IGttYWxsb2Moc2l6ZW9mIChzdHJ1Y3Qgcl9w b3J0KSwgR0ZQX0tFUk5FTCk7CisJaW5mbyA9IGt6YWxsb2Moc2l6ZW9mIChz dHJ1Y3Qgcl9wb3J0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpbmZvKSB7CiAJ CXByaW50ayhLRVJOX0lORk8gIkNvdWxkbid0IGFsbG9jYXRlIGluZm8gc3Ry dWN0IGZvciBsaW5lICMlZFxuIiwgbGluZSk7CiAJCXJldHVybjsKIAl9Ci0J bWVtc2V0KGluZm8sIDAsIHNpemVvZiAoc3RydWN0IHJfcG9ydCkpOwogCiAJ aW5mby0+bWFnaWMgPSBSUE9SVF9NQUdJQzsKIAlpbmZvLT5saW5lID0gbGlu ZTsKZGlmZiAtcnVicCBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9j aGFyL3N5bmNsaW5rLmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZl cnMvY2hhci9zeW5jbGluay5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcv ZHJpdmVycy9jaGFyL3N5bmNsaW5rLmMJMjAwNi0xMS0wOSAxMjoxNjoyMC4w MDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9k cml2ZXJzL2NoYXIvc3luY2xpbmsuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAw MDAwMDAwMCArMDIwMApAQCAtNDMyOSwxMyArNDMyOSwxMiBAQCBzdGF0aWMg c3RydWN0IG1nc2xfc3RydWN0KiBtZ3NsX2FsbG9jYXRlCiB7CiAJc3RydWN0 IG1nc2xfc3RydWN0ICppbmZvOwogCQotCWluZm8gPSAoc3RydWN0IG1nc2xf c3RydWN0ICopa21hbGxvYyhzaXplb2Yoc3RydWN0IG1nc2xfc3RydWN0KSwK KwlpbmZvID0gKHN0cnVjdCBtZ3NsX3N0cnVjdCAqKWt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBtZ3NsX3N0cnVjdCksCiAJCSBHRlBfS0VSTkVMKTsKIAkJIAog CWlmICghaW5mbykgewogCQlwcmludGsoIkVycm9yIGNhbid0IGFsbG9jYXRl IGRldmljZSBpbnN0YW5jZSBkYXRhXG4iKTsKIAl9IGVsc2UgewotCQltZW1z ZXQoaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBtZ3NsX3N0cnVjdCkpOwogCQlp bmZvLT5tYWdpYyA9IE1HU0xfTUFHSUM7CiAJCUlOSVRfV09SSygmaW5mby0+ dGFzaywgbWdzbF9iaF9oYW5kbGVyLCBpbmZvKTsKIAkJaW5mby0+bWF4X2Zy YW1lX3NpemUgPSA0MDk2OwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4xOS1yYzVf b3JpZy9kcml2ZXJzL2NoYXIvc3luY2xpbmtfZ3QuYyBsaW51eC0yLjYuMTkt cmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL3N5bmNsaW5rX2d0LmMKLS0tIGxp bnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvc3luY2xpbmtfZ3Qu YwkyMDA2LTExLTA5IDEyOjE2OjIwLjAwMDAwMDAwMCArMDIwMAorKysgbGlu dXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvY2hhci9zeW5jbGlua19n dC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0z MzE4LDEzICszMzE4LDEyIEBAIHN0YXRpYyBzdHJ1Y3Qgc2xndF9pbmZvICph bGxvY19kZXYoaW50IGEKIHsKIAlzdHJ1Y3Qgc2xndF9pbmZvICppbmZvOwog Ci0JaW5mbyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBzbGd0X2luZm8pLCBH RlBfS0VSTkVMKTsKKwlpbmZvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNs Z3RfaW5mbyksIEdGUF9LRVJORUwpOwogCiAJaWYgKCFpbmZvKSB7CiAJCURC R0VSUigoIiVzIGRldmljZSBhbGxvYyBmYWlsZWQgYWRhcHRlcj0lZCBwb3J0 PSVkXG4iLAogCQkJZHJpdmVyX25hbWUsIGFkYXB0ZXJfbnVtLCBwb3J0X251 bSkpOwogCX0gZWxzZSB7Ci0JCW1lbXNldChpbmZvLCAwLCBzaXplb2Yoc3Ry dWN0IHNsZ3RfaW5mbykpOwogCQlpbmZvLT5tYWdpYyA9IE1HU0xfTUFHSUM7 CiAJCUlOSVRfV09SSygmaW5mby0+dGFzaywgYmhfaGFuZGxlciwgaW5mbyk7 CiAJCWluZm8tPm1heF9mcmFtZV9zaXplID0gNDA5NjsKZGlmZiAtcnVicCBs aW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9jaGFyL3N5bmNsaW5rbXAu YyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9jaGFyL3N5bmNs aW5rbXAuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvY2hh ci9zeW5jbGlua21wLmMJMjAwNi0xMS0wOSAxMjoxNjoyMC4wMDAwMDAwMDAg KzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2No YXIvc3luY2xpbmttcC5jCTIwMDYtMTEtMTEgMjI6NDQ6MDQuMDAwMDAwMDAw ICswMjAwCkBAIC0zNzk2LDE0ICszNzk2LDEzIEBAIHN0YXRpYyBTTE1QX0lO Rk8gKmFsbG9jX2RldihpbnQgYWRhcHRlcl8KIHsKIAlTTE1QX0lORk8gKmlu Zm87CiAKLQlpbmZvID0gKFNMTVBfSU5GTyAqKWttYWxsb2Moc2l6ZW9mKFNM TVBfSU5GTyksCisJaW5mbyA9IChTTE1QX0lORk8gKilremFsbG9jKHNpemVv ZihTTE1QX0lORk8pLAogCQkgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoIWluZm8p IHsKIAkJcHJpbnRrKCIlcyglZCkgRXJyb3IgY2FuJ3QgYWxsb2NhdGUgZGV2 aWNlIGluc3RhbmNlIGRhdGEgZm9yIGFkYXB0ZXIgJWQsIHBvcnQgJWRcbiIs CiAJCQlfX0ZJTEVfXyxfX0xJTkVfXywgYWRhcHRlcl9udW0sIHBvcnRfbnVt KTsKIAl9IGVsc2UgewotCQltZW1zZXQoaW5mbywgMCwgc2l6ZW9mKFNMTVBf SU5GTykpOwogCQlpbmZvLT5tYWdpYyA9IE1HU0xfTUFHSUM7CiAJCUlOSVRf V09SSygmaW5mby0+dGFzaywgYmhfaGFuZGxlciwgaW5mbyk7CiAJCWluZm8t Pm1heF9mcmFtZV9zaXplID0gNDA5NjsKZGlmZiAtcnVicCBsaW51eC0yLjYu MTktcmM1X29yaWcvZHJpdmVycy9jaGFyL3R0eV9pby5jIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvdHR5X2lvLmMKLS0tIGxpbnV4 LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvdHR5X2lvLmMJMjAwNi0x MS0wOSAxMjoxNjoyMC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4x OS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvdHR5X2lvLmMJMjAwNi0xMS0x MSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTE5MTEsMTEgKzE5MTEs MTAgQEAgc3RhdGljIGludCBpbml0X2RldihzdHJ1Y3QgdHR5X2RyaXZlciAq ZAogCX0KIAogCWlmICghKmx0cF9sb2MpIHsKLQkJbHRwID0gKHN0cnVjdCB0 ZXJtaW9zICopIGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0ZXJtaW9zKSwKKwkJ bHRwID0gKHN0cnVjdCB0ZXJtaW9zICopIGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCB0ZXJtaW9zKSwKIAkJCQkJCSBHRlBfS0VSTkVMKTsKIAkJaWYgKCFsdHAp CiAJCQlnb3RvIGZyZWVfbWVtX291dDsKLQkJbWVtc2V0KGx0cCwgMCwgc2l6 ZW9mKHN0cnVjdCB0ZXJtaW9zKSk7CiAJfQogCiAJaWYgKGRyaXZlci0+dHlw ZSA9PSBUVFlfRFJJVkVSX1RZUEVfUFRZKSB7CkBAIC0xOTQ1LDEwICsxOTQ0 LDkgQEAgc3RhdGljIGludCBpbml0X2RldihzdHJ1Y3QgdHR5X2RyaXZlciAq ZAogCiAJCWlmICghKm9fbHRwX2xvYykgewogCQkJb19sdHAgPSAoc3RydWN0 IHRlcm1pb3MgKikKLQkJCQlrbWFsbG9jKHNpemVvZihzdHJ1Y3QgdGVybWlv cyksIEdGUF9LRVJORUwpOworCQkJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0 ZXJtaW9zKSwgR0ZQX0tFUk5FTCk7CiAJCQlpZiAoIW9fbHRwKQogCQkJCWdv dG8gZnJlZV9tZW1fb3V0OwotCQkJbWVtc2V0KG9fbHRwLCAwLCBzaXplb2Yo c3RydWN0IHRlcm1pb3MpKTsKIAkJfQogCiAJCS8qCkBAIC0zNjY1LDkgKzM2 NjMsOCBAQCBzdHJ1Y3QgdHR5X2RyaXZlciAqYWxsb2NfdHR5X2RyaXZlcihp bnQgCiB7CiAJc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlcjsKIAotCWRyaXZl ciA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0dHlfZHJpdmVyKSwgR0ZQX0tF Uk5FTCk7CisJZHJpdmVyID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHR0eV9k cml2ZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoZHJpdmVyKSB7Ci0JCW1lbXNl dChkcml2ZXIsIDAsIHNpemVvZihzdHJ1Y3QgdHR5X2RyaXZlcikpOwogCQlk cml2ZXItPm1hZ2ljID0gVFRZX0RSSVZFUl9NQUdJQzsKIAkJZHJpdmVyLT5u dW0gPSBsaW5lczsKIAkJLyogbGF0ZXIgd2UnbGwgbW92ZSBhbGxvY2F0aW9u IG9mIHRhYmxlcyBoZXJlICovCkBAIC0zNzI3LDEwICszNzI0LDkgQEAgaW50 IHR0eV9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IHR0eV9kcml2ZQogCQlyZXR1 cm4gMDsKIAogCWlmICghKGRyaXZlci0+ZmxhZ3MgJiBUVFlfRFJJVkVSX0RF VlBUU19NRU0pKSB7Ci0JCXAgPSBrbWFsbG9jKGRyaXZlci0+bnVtICogMyAq IHNpemVvZih2b2lkICopLCBHRlBfS0VSTkVMKTsKKwkJcCA9IGt6YWxsb2Mo ZHJpdmVyLT5udW0gKiAzICogc2l6ZW9mKHZvaWQgKiksIEdGUF9LRVJORUwp OwogCQlpZiAoIXApCiAJCQlyZXR1cm4gLUVOT01FTTsKLQkJbWVtc2V0KHAs IDAsIGRyaXZlci0+bnVtICogMyAqIHNpemVvZih2b2lkICopKTsKIAl9CiAK IAlpZiAoIWRyaXZlci0+bWFqb3IpIHsKZGlmZiAtcnVicCBsaW51eC0yLjYu MTktcmM1X29yaWcvZHJpdmVycy9jaGFyL3Z0LmMgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvY2hhci92dC5jCi0tLSBsaW51eC0yLjYuMTkt cmM1X29yaWcvZHJpdmVycy9jaGFyL3Z0LmMJMjAwNi0xMS0wOSAxMjoxNjoy MC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxv Yy9kcml2ZXJzL2NoYXIvdnQuYwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAw MDAwMCArMDIwMApAQCAtNzIyLDEwICs3MjIsOSBAQCBpbnQgdmNfYWxsb2Nh dGUodW5zaWduZWQgaW50IGN1cnJjb25zKQkvCiAJICAgIC8qIGFsdGhvdWdo IHRoZSBudW1iZXJzIGFib3ZlIGFyZSBub3QgdmFsaWQgc2luY2UgbG9uZyBh Z28sIHRoZQogCSAgICAgICBwb2ludCBpcyBzdGlsbCB1cC10by1kYXRlIGFu ZCB0aGUgY29tbWVudCBzdGlsbCBoYXMgaXRzIHZhbHVlCiAJICAgICAgIGV2 ZW4gaWYgb25seSBhcyBhIGhpc3RvcmljYWwgYXJ0aWZhY3QuICAtLW1qLCBK dWx5IDE5OTggKi8KLQkgICAgdmMgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qg dmNfZGF0YSksIEdGUF9LRVJORUwpOworCSAgICB2YyA9IGt6YWxsb2Moc2l6 ZW9mKHN0cnVjdCB2Y19kYXRhKSwgR0ZQX0tFUk5FTCk7CiAJICAgIGlmICgh dmMpCiAJCXJldHVybiAtRU5PTUVNOwotCSAgICBtZW1zZXQodmMsIDAsIHNp emVvZigqdmMpKTsKIAkgICAgdmNfY29uc1tjdXJyY29uc10uZCA9IHZjOwog CSAgICB2aXN1YWxfaW5pdCh2YywgY3VycmNvbnMsIDEpOwogCSAgICBpZiAo ISp2Yy0+dmNfdW5pX3BhZ2VkaXJfbG9jKQpkaWZmIC1ydWJwIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL2NoYXIvd2F0Y2hkb2cvbXBjb3JlX3dk dC5jIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2NoYXIvd2F0 Y2hkb2cvbXBjb3JlX3dkdC5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcv ZHJpdmVycy9jaGFyL3dhdGNoZG9nL21wY29yZV93ZHQuYwkyMDA2LTExLTA5 IDEyOjE2OjIwLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJj NV9remFsbG9jL2RyaXZlcnMvY2hhci93YXRjaGRvZy9tcGNvcmVfd2R0LmMJ MjAwNi0xMS0xMSAyMjo0NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTMyOCwx MiArMzI4LDExIEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IG1wY29yZV93ZHRf cHJvYmUoc3QKIAkJZ290byBlcnJfb3V0OwogCX0KIAotCXdkdCA9IGttYWxs b2Moc2l6ZW9mKHN0cnVjdCBtcGNvcmVfd2R0KSwgR0ZQX0tFUk5FTCk7CisJ d2R0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1wY29yZV93ZHQpLCBHRlBf S0VSTkVMKTsKIAlpZiAoIXdkdCkgewogCQlyZXQgPSAtRU5PTUVNOwogCQln b3RvIGVycl9vdXQ7CiAJfQotCW1lbXNldCh3ZHQsIDAsIHNpemVvZihzdHJ1 Y3QgbXBjb3JlX3dkdCkpOwogCiAJd2R0LT5kZXYgPSAmZGV2LT5kZXY7CiAJ d2R0LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKGRldiwgMCk7CmRpZmYgLXJ1 YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvZWRhYy9lZGFjX21j LmMgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2RyaXZlcnMvZWRhYy9lZGFj X21jLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2VkYWMv ZWRhY19tYy5jCTIwMDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAw CisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9lZGFjL2Vk YWNfbWMuYwkyMDA2LTExLTExIDIyOjQ0OjE4LjAwMDAwMDAwMCArMDIwMApA QCAtMTI4MCw3ICsxMjgwLDggQEAgc3RydWN0IG1lbV9jdGxfaW5mbyAqZWRh Y19tY19hbGxvYyh1bnNpZwogCXB2dCA9IGFsaWduX3B0cigmY2hpW25yX2No YW5zICogbnJfY3Nyb3dzXSwgc3pfcHZ0KTsKIAlzaXplID0gKCh1bnNpZ25l ZCBsb25nKSBwdnQpICsgc3pfcHZ0OwogCi0JaWYgKChtY2kgPSBrbWFsbG9j KHNpemUsIEdGUF9LRVJORUwpKSA9PSBOVUxMKQorCS8qIGNsZWFyIGFsbCB0 aGUgZmllbGRzICovCisJaWYgKChtY2kgPSBremFsbG9jKHNpemUsIEdGUF9L RVJORUwpKSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAogCS8qIEFkanVz dCBwb2ludGVycyBzbyB0aGV5IHBvaW50IHdpdGhpbiB0aGUgbWVtb3J5IHdl IGp1c3QgYWxsb2NhdGVkCkBAIC0xMjkwLDcgKzEyOTEsNiBAQCBzdHJ1Y3Qg bWVtX2N0bF9pbmZvICplZGFjX21jX2FsbG9jKHVuc2lnCiAJY2hpID0gKHN0 cnVjdCBjaGFubmVsX2luZm8gKikgKCgoY2hhciAqKSBtY2kpICsgKCh1bnNp Z25lZCBsb25nKSBjaGkpKTsKIAlwdnQgPSBzel9wdnQgPyAoKChjaGFyICop IG1jaSkgKyAoKHVuc2lnbmVkIGxvbmcpIHB2dCkpIDogTlVMTDsKIAotCW1l bXNldChtY2ksIDAsIHNpemUpOyAgLyogY2xlYXIgYWxsIGZpZWxkcyAqLwog CW1jaS0+Y3Nyb3dzID0gY3NpOwogCW1jaS0+cHZ0X2luZm8gPSBwdnQ7CiAJ bWNpLT5ucl9jc3Jvd3MgPSBucl9jc3Jvd3M7CmRpZmYgLXJ1YnAgbGludXgt Mi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIu YyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9pbmZpbmliYW5k L2NvcmUvYWRkci5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVy cy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCTIwMDYtMTEtMDkgMTI6MTY6MjEu MDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2Mv ZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCTIwMDYtMTEtMTEgMjI6 NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0yOTcsMTAgKzI5Nyw5IEBAIGlu dCByZG1hX3Jlc29sdmVfaXAoc3RydWN0IHJkbWFfYWRkcl9jbGkKIAlzdHJ1 Y3QgYWRkcl9yZXEgKnJlcTsKIAlpbnQgcmV0ID0gMDsKIAotCXJlcSA9IGtt YWxsb2Moc2l6ZW9mICpyZXEsIEdGUF9LRVJORUwpOworCXJlcSA9IGt6YWxs b2Moc2l6ZW9mICpyZXEsIEdGUF9LRVJORUwpOwogCWlmICghcmVxKQogCQly ZXR1cm4gLUVOT01FTTsKLQltZW1zZXQocmVxLCAwLCBzaXplb2YgKnJlcSk7 CiAKIAlpZiAoc3JjX2FkZHIpCiAJCW1lbWNweSgmcmVxLT5zcmNfYWRkciwg c3JjX2FkZHIsIGlwX2FkZHJfc2l6ZShzcmNfYWRkcikpOwpkaWZmIC1ydWJw IGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9kcml2ZXJzL2lucHV0L3NlcmlvL2Ft YmFrbWkuYyBsaW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9pbnB1 dC9zZXJpby9hbWJha21pLmMKLS0tIGxpbnV4LTIuNi4xOS1yYzVfb3JpZy9k cml2ZXJzL2lucHV0L3NlcmlvL2FtYmFrbWkuYwkyMDA2LTExLTA5IDEyOjE2 OjIxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFs bG9jL2RyaXZlcnMvaW5wdXQvc2VyaW8vYW1iYWttaS5jCTIwMDYtMTEtMTEg MjI6NDQ6MDQuMDAwMDAwMDAwICswMjAwCkBAIC0xMTcsMTYgKzExNywxMyBA QCBzdGF0aWMgaW50IGFtYmFfa21pX3Byb2JlKHN0cnVjdCBhbWJhX2RlCiAJ aWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWttaSA9IGttYWxsb2Moc2l6 ZW9mKHN0cnVjdCBhbWJhX2ttaV9wb3J0KSwgR0ZQX0tFUk5FTCk7Ci0JaW8g PSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2VyaW8pLCBHRlBfS0VSTkVMKTsK KwlrbWkgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYW1iYV9rbWlfcG9ydCks IEdGUF9LRVJORUwpOworCWlvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNl cmlvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFrbWkgfHwgIWlvKSB7CiAJCXJl dCA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwogCX0KIAotCW1lbXNldChrbWks IDAsIHNpemVvZihzdHJ1Y3QgYW1iYV9rbWlfcG9ydCkpOwotCW1lbXNldChp bywgMCwgc2l6ZW9mKHN0cnVjdCBzZXJpbykpOwotCiAJaW8tPmlkLnR5cGUJ PSBTRVJJT184MDQyOwogCWlvLT53cml0ZQk9IGFtYmFfa21pX3dyaXRlOwog CWlvLT5vcGVuCT0gYW1iYV9rbWlfb3BlbjsKZGlmZiAtcnVicCBsaW51eC0y LjYuMTktcmM1X29yaWcvZHJpdmVycy9pbnB1dC9zZXJpby9nc2NwczIuYyBs aW51eC0yLjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9pbnB1dC9zZXJpby9n c2NwczIuYwotLS0gbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZlcnMvaW5w dXQvc2VyaW8vZ3NjcHMyLmMJMjAwNi0xMS0wOSAxMjoxNjoyMS4wMDAwMDAw MDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJz L2lucHV0L3NlcmlvL2dzY3BzMi5jCTIwMDYtMTEtMTEgMjI6NDQ6MTguMDAw MDAwMDAwICswMjAwCkBAIC0zNDAsOCArMzQwLDggQEAgc3RhdGljIGludCBf X2luaXQgZ3NjcHMyX3Byb2JlKHN0cnVjdCBwYQogCWlmIChkZXYtPmlkLnN2 ZXJzaW9uID09IDB4OTYpCiAJCWhwYSArPSBHU0NfRElOT19PRkZTRVQ7CiAK LQlwczJwb3J0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGdzY3BzMnBvcnQp LCBHRlBfS0VSTkVMKTsKLQlzZXJpbyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBzZXJpbyksIEdGUF9LRVJORUwpOworCXBzMnBvcnQgPSBremFsbG9jKHNp emVvZihzdHJ1Y3QgZ3NjcHMycG9ydCksIEdGUF9LRVJORUwpOworCXNlcmlv ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNlcmlvKSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFwczJwb3J0IHx8ICFzZXJpbykgewogCQlyZXQgPSAtRU5PTUVN OwogCQlnb3RvIGZhaWxfbm9tZW07CkBAIC0zNDksOCArMzQ5LDYgQEAgc3Rh dGljIGludCBfX2luaXQgZ3NjcHMyX3Byb2JlKHN0cnVjdCBwYQogCiAJZGV2 X3NldF9kcnZkYXRhKCZkZXYtPmRldiwgcHMycG9ydCk7CiAKLQltZW1zZXQo cHMycG9ydCwgMCwgc2l6ZW9mKHN0cnVjdCBnc2NwczJwb3J0KSk7Ci0JbWVt c2V0KHNlcmlvLCAwLCBzaXplb2Yoc3RydWN0IHNlcmlvKSk7CiAJcHMycG9y dC0+cG9ydCA9IHNlcmlvOwogCXBzMnBvcnQtPnBhZGV2ID0gZGV2OwogCXBz MnBvcnQtPmFkZHIgPSBpb3JlbWFwX25vY2FjaGUoaHBhLCBHU0NfU1RBVFVT ICsgNCk7CmRpZmYgLXJ1YnAgbGludXgtMi42LjE5LXJjNV9vcmlnL2RyaXZl cnMvaW5wdXQvc2VyaW8vcGNpcHMyLmMgbGludXgtMi42LjE5LXJjNV9remFs bG9jL2RyaXZlcnMvaW5wdXQvc2VyaW8vcGNpcHMyLmMKLS0tIGxpbnV4LTIu Ni4xOS1yYzVfb3JpZy9kcml2ZXJzL2lucHV0L3NlcmlvL3BjaXBzMi5jCTIw MDYtMTEtMDkgMTI6MTY6MjEuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjYuMTktcmM1X2t6YWxsb2MvZHJpdmVycy9pbnB1dC9zZXJpby9wY2lwczIu YwkyMDA2LTExLTExIDIyOjQ0OjA0LjAwMDAwMDAwMCArMDIwMApAQCAtMTQw LDE2ICsxNDAsMTMgQEAgc3RhdGljIGludCBfX2RldmluaXQgcGNpcHMyX3By b2JlKHN0cnVjdAogCWlmIChyZXQpCiAJCWdvdG8gZGlzYWJsZTsKIAotCXBz MmlmID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBjaXBzMl9kYXRhKSwgR0ZQ X0tFUk5FTCk7Ci0Jc2VyaW8gPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2Vy aW8pLCBHRlBfS0VSTkVMKTsKKwlwczJpZiA9IGt6YWxsb2Moc2l6ZW9mKHN0 cnVjdCBwY2lwczJfZGF0YSksIEdGUF9LRVJORUwpOworCXNlcmlvID0ga3ph bGxvYyhzaXplb2Yoc3RydWN0IHNlcmlvKSwgR0ZQX0tFUk5FTCk7CiAJaWYg KCFwczJpZiB8fCAhc2VyaW8pIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290 byByZWxlYXNlOwogCX0KIAotCW1lbXNldChwczJpZiwgMCwgc2l6ZW9mKHN0 cnVjdCBwY2lwczJfZGF0YSkpOwotCW1lbXNldChzZXJpbywgMCwgc2l6ZW9m KHN0cnVjdCBzZXJpbykpOwotCiAJc2VyaW8tPmlkLnR5cGUJCT0gU0VSSU9f ODA0MjsKIAlzZXJpby0+d3JpdGUJCT0gcGNpcHMyX3dyaXRlOwogCXNlcmlv LT5vcGVuCQk9IHBjaXBzMl9vcGVuOwpkaWZmIC1ydWJwIGxpbnV4LTIuNi4x OS1yYzVfb3JpZy9kcml2ZXJzL2lucHV0L3NlcmlvL3NhMTExMXBzMi5jIGxp bnV4LTIuNi4xOS1yYzVfa3phbGxvYy9kcml2ZXJzL2lucHV0L3NlcmlvL3Nh MTExMXBzMi5jCi0tLSBsaW51eC0yLjYuMTktcmM1X29yaWcvZHJpdmVycy9p bnB1dC9zZXJpby9zYTExMTFwczIuYwkyMDA2LTExLTA5IDEyOjE2OjIxLjAw MDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjE5LXJjNV9remFsbG9jL2Ry aXZlcnMvaW5wdXQvc2VyaW8vc2ExMTExcHMyLmMJMjAwNi0xMS0xMSAyMjo0 NDowNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTIzNCwxNiArMjM0LDEzIEBAIHN0 YXRpYyBpbnQgcHMyX3Byb2JlKHN0cnVjdCBzYTExMTFfZGV2ICoKIAlzdHJ1 Y3Qgc2VyaW8gKnNlcmlvOwogCWludCByZXQ7CiAKLQlwczJpZiA9IGttYWxs b2Moc2l6ZW9mKHN0cnVjdCBwczJpZiksIEdGUF9LRVJORUwpOwotCXNlcmlv ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHNlcmlvKSwgR0ZQX0tFUk5FTCk7 CisJcHMyaWYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHMyaWYpLCBHRlBf S0VSTkVMKTsKKwlzZXJpbyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzZXJp byksIEdGUF9LRVJORUwpOwogCWlmICghcHMyaWYgfHwgIXNlcmlvKSB7CiAJ CXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZnJlZTsKIAl9CiAKLQltZW1zZXQo cHMyaWYsIDAsIHNpemVvZihzdHJ1Y3QgcHMyaWYpKTsKLQltZW1zZXQoc2Vy aW8sIDAsIHNpemVvZihzdHJ1Y3Qgc2VyaW8pKTsKLQogCXNlcmlvLT5pZC50 eXBlCQk9IFNFUklPXzgwNDI7CiAJc2VyaW8tPndyaXRlCQk9IHBzMl93cml0 ZTsKIAlzZXJpby0+b3BlbgkJPSBwczJfb3BlbjsK ------=_NextPart_000_257b_6f95_134-- - 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/