From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 23 Feb 2005 20:07:19 -0800 From: "David S. Miller" Subject: [PATCH] set_pte() part 2 arch usage Message-Id: <20050223200719.2d4e8918.davem@davemloft.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__23_Feb_2005_20_07_19_-0800_ye/USpT3nmu=yibW" To: benh@au1.ibm.com Cc: linux-arch@vger.kernel.org List-ID: This is a multi-part message in MIME format. --Multipart=_Wed__23_Feb_2005_20_07_19_-0800_ye/USpT3nmu=yibW Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Ok, here is the promised second installment. This changes sparc64 (first attachment) and ppc{32,64} (second attachment) over to take advantage of the new set_pte_at() mm+address arguments. I've build and run tested the sparc64 version. I have only build tested the ppc32 and ppc64 changes. Ben, can you give them a spin? Thanks. --Multipart=_Wed__23_Feb_2005_20_07_19_-0800_ye/USpT3nmu=yibW Content-Type: application/octet-stream; name="diff1" Content-Disposition: attachment; filename="diff1" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDUvMDIvMjMgMTc6NDY6NDMtMDg6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1NQQVJDNjRdOiBQYXNzIG1tL2FkZHIgZGlyZWN0bHkgdG8gdGxiX2Jh dGNoX2FkZCgpCiMgICAKIyAgIE5vIGxvbmdlciBuZWVkIHRvIHN0b3JlIHRoaXMgaW5mb3JtYXRp b24gaW4gdGhlIHB0ZSB0YWJsZQojICAgcGFnZSBzdHJ1Y3QuCiMgICAKIyAgIFNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIyAKIyBpbmNsdWRlL2Fz bS1zcGFyYzY0L3BndGFibGUuaAojICAgMjAwNS8wMi8yMyAxNzo0NTozNy0wODowMCBkYXZlbUBu dXRzLmRhdmVtbG9mdC5uZXQgKzYgLTUKIyAgIFtTUEFSQzY0XTogUGFzcyBtbS9hZGRyIGRpcmVj dGx5IHRvIHRsYl9iYXRjaF9hZGQoKQojIAojIGluY2x1ZGUvYXNtLXNwYXJjNjQvcGdhbGxvYy5o CiMgICAyMDA1LzAyLzIzIDE3OjQ1OjM3LTA4OjAwIGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCAr NSAtMTUKIyAgIFtTUEFSQzY0XTogUGFzcyBtbS9hZGRyIGRpcmVjdGx5IHRvIHRsYl9iYXRjaF9h ZGQoKQojIAojIGFyY2gvc3BhcmM2NC9tbS90bGIuYwojICAgMjAwNS8wMi8yMyAxNzo0NTozNy0w ODowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzcgLTEwCiMgICBbU1BBUkM2NF06IFBhc3Mg bW0vYWRkciBkaXJlY3RseSB0byB0bGJfYmF0Y2hfYWRkKCkKIyAKIyBhcmNoL3NwYXJjNjQvbW0v aW5pdC5jCiMgICAyMDA1LzAyLzIzIDE3OjQ1OjM2LTA4OjAwIGRhdmVtQG51dHMuZGF2ZW1sb2Z0 Lm5ldCArMiAtMQojICAgW1NQQVJDNjRdOiBQYXNzIG1tL2FkZHIgZGlyZWN0bHkgdG8gdGxiX2Jh dGNoX2FkZCgpCiMgCiMgYXJjaC9zcGFyYzY0L21tL2h1Z2V0bGJwYWdlLmMKIyAgIDIwMDUvMDIv MjMgMTc6NDU6MzYtMDg6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICs2IC00CiMgICBbU1BB UkM2NF06IFBhc3MgbW0vYWRkciBkaXJlY3RseSB0byB0bGJfYmF0Y2hfYWRkKCkKIyAKIyBhcmNo L3NwYXJjNjQvbW0vZ2VuZXJpYy5jCiMgICAyMDA1LzAyLzIzIDE3OjQ1OjM2LTA4OjAwIGRhdmVt QG51dHMuZGF2ZW1sb2Z0Lm5ldCArMTQgLTExCiMgICBbU1BBUkM2NF06IFBhc3MgbW0vYWRkciBk aXJlY3RseSB0byB0bGJfYmF0Y2hfYWRkKCkKIyAKZGlmZiAtTnJ1IGEvYXJjaC9zcGFyYzY0L21t L2dlbmVyaWMuYyBiL2FyY2gvc3BhcmM2NC9tbS9nZW5lcmljLmMKLS0tIGEvYXJjaC9zcGFyYzY0 L21tL2dlbmVyaWMuYwkyMDA1LTAyLTIzIDE5OjMzOjMxIC0wODowMAorKysgYi9hcmNoL3NwYXJj NjQvbW0vZ2VuZXJpYy5jCTIwMDUtMDItMjMgMTk6MzM6MzEgLTA4OjAwCkBAIC0yNSw4ICsyNSwx MSBAQAogICogc2lkZS1lZmZlY3QgYml0IHdpbGwgYmUgdHVybmVkIG9mZi4gIFRoaXMgaXMgdXNl ZCBhcyBhCiAgKiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBvbiBGRkIvQUZCLiAtRGF2ZU0KICAq Lwotc3RhdGljIGlubGluZSB2b2lkIGlvX3JlbWFwX3B0ZV9yYW5nZShwdGVfdCAqIHB0ZSwgdW5z aWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIHNpemUsCi0JdW5zaWduZWQgbG9uZyBv ZmZzZXQsIHBncHJvdF90IHByb3QsIGludCBzcGFjZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBpb19y ZW1hcF9wdGVfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICogcHRlLAorCQkJCSAg ICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIHNpemUs CisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHBncHJvdF90IHByb3QsCisJCQkJICAg ICAgaW50IHNwYWNlKQogewogCXVuc2lnbmVkIGxvbmcgZW5kOwogCkBAIC02NywxNCArNzAsMTQg QEAKIAkJCXB0ZV92YWwoZW50cnkpICY9IH4oX1BBR0VfRSk7CiAJCWRvIHsKIAkJCUJVR19PTigh cHRlX25vbmUoKnB0ZSkpOwotCQkJc2V0X3B0ZShwdGUsIGVudHJ5KTsKKwkJCXNldF9wdGVfYXQo bW0sIGFkZHJlc3MsIHB0ZSwgZW50cnkpOwogCQkJYWRkcmVzcyArPSBQQUdFX1NJWkU7CiAJCQlw dGUrKzsKIAkJfSB3aGlsZSAoYWRkcmVzcyA8IGN1cmVuZCk7CiAJfSB3aGlsZSAoYWRkcmVzcyA8 IGVuZCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IGlvX3JlbWFwX3BtZF9yYW5nZShwbWRfdCAq IHBtZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIHNpemUsCitzdGF0aWMg aW5saW5lIGludCBpb19yZW1hcF9wbWRfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90 ICogcG1kLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAl1bnNp Z25lZCBsb25nIG9mZnNldCwgcGdwcm90X3QgcHJvdCwgaW50IHNwYWNlKQogewogCXVuc2lnbmVk IGxvbmcgZW5kOwpAQCAtODUsMTAgKzg4LDEwIEBACiAJCWVuZCA9IFBHRElSX1NJWkU7CiAJb2Zm c2V0IC09IGFkZHJlc3M7CiAJZG8gewotCQlwdGVfdCAqIHB0ZSA9IHB0ZV9hbGxvY19tYXAoY3Vy cmVudC0+bW0sIHBtZCwgYWRkcmVzcyk7CisJCXB0ZV90ICogcHRlID0gcHRlX2FsbG9jX21hcCht bSwgcG1kLCBhZGRyZXNzKTsKIAkJaWYgKCFwdGUpCiAJCQlyZXR1cm4gLUVOT01FTTsKLQkJaW9f cmVtYXBfcHRlX3JhbmdlKHB0ZSwgYWRkcmVzcywgZW5kIC0gYWRkcmVzcywgYWRkcmVzcyArIG9m ZnNldCwgcHJvdCwgc3BhY2UpOworCQlpb19yZW1hcF9wdGVfcmFuZ2UobW0sIHB0ZSwgYWRkcmVz cywgZW5kIC0gYWRkcmVzcywgYWRkcmVzcyArIG9mZnNldCwgcHJvdCwgc3BhY2UpOwogCQlwdGVf dW5tYXAocHRlKTsKIAkJYWRkcmVzcyA9IChhZGRyZXNzICsgUE1EX1NJWkUpICYgUE1EX01BU0s7 CiAJCXBtZCsrOwpAQCAtOTYsNyArOTksNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5s aW5lIGludCBpb19yZW1hcF9wdWRfcmFuZ2UocHVkX3QgKiBwdWQsIHVuc2lnbmVkIGxvbmcgYWRk cmVzcywgdW5zaWduZWQgbG9uZyBzaXplLAorc3RhdGljIGlubGluZSBpbnQgaW9fcmVtYXBfcHVk X3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqIHB1ZCwgdW5zaWduZWQgbG9uZyBh ZGRyZXNzLCB1bnNpZ25lZCBsb25nIHNpemUsCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQsIHBncHJv dF90IHByb3QsIGludCBzcGFjZSkKIHsKIAl1bnNpZ25lZCBsb25nIGVuZDsKQEAgLTEwNywxMCAr MTEwLDEwIEBACiAJCWVuZCA9IFBVRF9TSVpFOwogCW9mZnNldCAtPSBhZGRyZXNzOwogCWRvIHsK LQkJcG1kX3QgKnBtZCA9IHBtZF9hbGxvYyhjdXJyZW50LT5tbSwgcHVkLCBhZGRyZXNzKTsKKwkJ cG1kX3QgKnBtZCA9IHBtZF9hbGxvYyhtbSwgcHVkLCBhZGRyZXNzKTsKIAkJaWYgKCFwdWQpCiAJ CQlyZXR1cm4gLUVOT01FTTsKLQkJaW9fcmVtYXBfcG1kX3JhbmdlKHBtZCwgYWRkcmVzcywgZW5k IC0gYWRkcmVzcywgYWRkcmVzcyArIG9mZnNldCwgcHJvdCwgc3BhY2UpOworCQlpb19yZW1hcF9w bWRfcmFuZ2UobW0sIHBtZCwgYWRkcmVzcywgZW5kIC0gYWRkcmVzcywgYWRkcmVzcyArIG9mZnNl dCwgcHJvdCwgc3BhY2UpOwogCQlhZGRyZXNzID0gKGFkZHJlc3MgKyBQVURfU0laRSkgJiBQVURf TUFTSzsKIAkJcHVkKys7CiAJfSB3aGlsZSAoYWRkcmVzcyA8IGVuZCk7CkBAIC0xMzIsMTEgKzEz NSwxMSBAQAogCiAJc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKIAl3aGlsZSAoZnJv bSA8IGVuZCkgewotCQlwdWRfdCAqcHVkID0gcHVkX2FsbG9jKGN1cnJlbnQtPm1tLCBkaXIsIGZy b20pOworCQlwdWRfdCAqcHVkID0gcHVkX2FsbG9jKG1tLCBkaXIsIGZyb20pOwogCQllcnJvciA9 IC1FTk9NRU07CiAJCWlmICghcHVkKQogCQkJYnJlYWs7Ci0JCWVycm9yID0gaW9fcmVtYXBfcHVk X3JhbmdlKHB1ZCwgZnJvbSwgZW5kIC0gZnJvbSwgb2Zmc2V0ICsgZnJvbSwgcHJvdCwgc3BhY2Up OworCQllcnJvciA9IGlvX3JlbWFwX3B1ZF9yYW5nZShtbSwgcHVkLCBmcm9tLCBlbmQgLSBmcm9t LCBvZmZzZXQgKyBmcm9tLCBwcm90LCBzcGFjZSk7CiAJCWlmIChlcnJvcikKIAkJCWJyZWFrOwog CQlmcm9tID0gKGZyb20gKyBQR0RJUl9TSVpFKSAmIFBHRElSX01BU0s7CmRpZmYgLU5ydSBhL2Fy Y2gvc3BhcmM2NC9tbS9odWdldGxicGFnZS5jIGIvYXJjaC9zcGFyYzY0L21tL2h1Z2V0bGJwYWdl LmMKLS0tIGEvYXJjaC9zcGFyYzY0L21tL2h1Z2V0bGJwYWdlLmMJMjAwNS0wMi0yMyAxOTozMzoz MSAtMDg6MDAKKysrIGIvYXJjaC9zcGFyYzY0L21tL2h1Z2V0bGJwYWdlLmMJMjAwNS0wMi0yMyAx OTozMzozMSAtMDg6MDAKQEAgLTYyLDYgKzYyLDcgQEAKICNkZWZpbmUgbWtfcHRlX2h1Z2UoZW50 cnkpIGRvIHsgcHRlX3ZhbChlbnRyeSkgfD0gX1BBR0VfU1pIVUdFOyB9IHdoaWxlICgwKQogCiBz dGF0aWMgdm9pZCBzZXRfaHVnZV9wdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLAorCQkJIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCSBzdHJ1Y3QgcGFn ZSAqcGFnZSwgcHRlX3QgKiBwYWdlX3RhYmxlLCBpbnQgd3JpdGVfYWNjZXNzKQogewogCXVuc2ln bmVkIGxvbmcgaTsKQEAgLTc4LDggKzc5LDkgQEAKIAlta19wdGVfaHVnZShlbnRyeSk7CiAKIAlm b3IgKGkgPSAwOyBpIDwgKDEgPDwgSFVHRVRMQl9QQUdFX09SREVSKTsgaSsrKSB7Ci0JCXNldF9w dGUocGFnZV90YWJsZSwgZW50cnkpOworCQlzZXRfcHRlX2F0KG1tLCBhZGRyLCBwYWdlX3RhYmxl LCBlbnRyeSk7CiAJCXBhZ2VfdGFibGUrKzsKKwkJYWRkciArPSBQQUdFX1NJWkU7CiAKIAkJcHRl X3ZhbChlbnRyeSkgKz0gUEFHRV9TSVpFOwogCX0KQEAgLTExNiwxMiArMTE4LDEyIEBACiAJCXB0 ZXBhZ2UgPSBwdGVfcGFnZShlbnRyeSk7CiAJCWdldF9wYWdlKHB0ZXBhZ2UpOwogCQlmb3IgKGkg PSAwOyBpIDwgKDEgPDwgSFVHRVRMQl9QQUdFX09SREVSKTsgaSsrKSB7Ci0JCQlzZXRfcHRlKGRz dF9wdGUsIGVudHJ5KTsKKwkJCXNldF9wdGVfYXQoZHN0LCBhZGRyLCBkc3RfcHRlLCBlbnRyeSk7 CiAJCQlwdGVfdmFsKGVudHJ5KSArPSBQQUdFX1NJWkU7CiAJCQlkc3RfcHRlKys7CisJCQlhZGRy ICs9IFBBR0VfU0laRTsKIAkJfQogCQlkc3QtPnJzcyArPSAoSFBBR0VfU0laRSAvIFBBR0VfU0la RSk7Ci0JCWFkZHIgKz0gSFBBR0VfU0laRTsKIAl9CiAJcmV0dXJuIDA7CiAKQEAgLTI2MSw3ICsy NjMsNyBAQAogCQkJCWdvdG8gb3V0OwogCQkJfQogCQl9Ci0JCXNldF9odWdlX3B0ZShtbSwgdm1h LCBwYWdlLCBwdGUsIHZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSk7CisJCXNldF9odWdlX3B0ZSht bSwgdm1hLCBhZGRyLCBwYWdlLCBwdGUsIHZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSk7CiAJfQog b3V0OgogCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKZGlmZiAtTnJ1IGEvYXJj aC9zcGFyYzY0L21tL2luaXQuYyBiL2FyY2gvc3BhcmM2NC9tbS9pbml0LmMKLS0tIGEvYXJjaC9z cGFyYzY0L21tL2luaXQuYwkyMDA1LTAyLTIzIDE5OjMzOjMxIC0wODowMAorKysgYi9hcmNoL3Nw YXJjNjQvbW0vaW5pdC5jCTIwMDUtMDItMjMgMTk6MzM6MzEgLTA4OjAwCkBAIC00MzEsNyArNDMx LDggQEAKIAkJCQlpZiAodGxiX3R5cGUgPT0gc3BpdGZpcmUpCiAJCQkJCXZhbCAmPSB+MHgwMDAz ZmUwMDAwMDAwMDAwVUw7CiAKLQkJCQlzZXRfcHRlIChwdGVwLCBfX3B0ZSh2YWwgfCBfUEFHRV9N T0RJRklFRCkpOworCQkJCXNldF9wdGVfYXQoJmluaXRfbW0sIHZhZGRyLAorCQkJCQkgICBwdGVw LCBfX3B0ZSh2YWwgfCBfUEFHRV9NT0RJRklFRCkpOwogCQkJCXRyYW5zW2ldLmRhdGEgKz0gQkFT RV9QQUdFX1NJWkU7CiAJCQl9CiAJCX0KZGlmZiAtTnJ1IGEvYXJjaC9zcGFyYzY0L21tL3RsYi5j IGIvYXJjaC9zcGFyYzY0L21tL3RsYi5jCi0tLSBhL2FyY2gvc3BhcmM2NC9tbS90bGIuYwkyMDA1 LTAyLTIzIDE5OjMzOjMxIC0wODowMAorKysgYi9hcmNoL3NwYXJjNjQvbW0vdGxiLmMJMjAwNS0w Mi0yMyAxOTozMzozMSAtMDg6MDAKQEAgLTQxLDE1ICs0MSwxMSBAQAogCX0KIH0KIAotdm9pZCB0 bGJfYmF0Y2hfYWRkKHB0ZV90ICpwdGVwLCBwdGVfdCBvcmlnKQordm9pZCB0bGJfYmF0Y2hfYWRk KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHZhZGRyLAorCQkgICBwdGVfdCAq cHRlcCwgcHRlX3Qgb3JpZykKIHsKLQlzdHJ1Y3QgbW11X2dhdGhlciAqbXAgPSAmX19nZXRfY3B1 X3ZhcihtbXVfZ2F0aGVycyk7Ci0Jc3RydWN0IHBhZ2UgKnB0ZXBhZ2U7Ci0Jc3RydWN0IG1tX3N0 cnVjdCAqbW07Ci0JdW5zaWduZWQgbG9uZyB2YWRkciwgbnI7Ci0KLQlwdGVwYWdlID0gdmlydF90 b19wYWdlKHB0ZXApOwotCW1tID0gKHN0cnVjdCBtbV9zdHJ1Y3QgKikgcHRlcGFnZS0+bWFwcGlu ZzsKKwlzdHJ1Y3QgbW11X2dhdGhlciAqbXA7CisJdW5zaWduZWQgbG9uZyBucjsKIAogCS8qIEl0 IGlzIG1vcmUgZWZmaWNpZW50IHRvIGxldCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKCkKIAkgKiBo YW5kbGUgdGhlc2UgY2FzZXMuCkBAIC01Nyw4ICs1Myw5IEBACiAJaWYgKG1tID09ICZpbml0X21t KQogCQlyZXR1cm47CiAKLQl2YWRkciA9IHB0ZXBhZ2UtPmluZGV4ICsKLQkJKCgodW5zaWduZWQg bG9uZylwdGVwICYgflBBR0VfTUFTSykgKiBQVFJTX1BFUl9QVEUpOworCW1wID0gJl9fZ2V0X2Nw dV92YXIobW11X2dhdGhlcnMpOworCisJdmFkZHIgJj0gUEFHRV9NQVNLOwogCWlmIChwdGVfZXhl YyhvcmlnKSkKIAkJdmFkZHIgfD0gMHgxVUw7CiAKZGlmZiAtTnJ1IGEvaW5jbHVkZS9hc20tc3Bh cmM2NC9wZ2FsbG9jLmggYi9pbmNsdWRlL2FzbS1zcGFyYzY0L3BnYWxsb2MuaAotLS0gYS9pbmNs dWRlL2FzbS1zcGFyYzY0L3BnYWxsb2MuaAkyMDA1LTAyLTIzIDE5OjMzOjMxIC0wODowMAorKysg Yi9pbmNsdWRlL2FzbS1zcGFyYzY0L3BnYWxsb2MuaAkyMDA1LTAyLTIzIDE5OjMzOjMxIC0wODow MApAQCAtMTkxLDI1ICsxOTEsMTcgQEAKIAogc3RhdGljIGlubGluZSBwdGVfdCAqcHRlX2FsbG9j X29uZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykK IHsKLQlwdGVfdCAqcHRlID0gX19wdGVfYWxsb2Nfb25lX2tlcm5lbChtbSwgYWRkcmVzcyk7Ci0J aWYgKHB0ZSkgewotCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZpcnRfdG9fcGFnZShwdGUpOwotCQlw YWdlLT5tYXBwaW5nID0gKHZvaWQgKikgbW07Ci0JCXBhZ2UtPmluZGV4ID0gYWRkcmVzcyAmIFBN RF9NQVNLOwotCX0KLQlyZXR1cm4gcHRlOworCXJldHVybiBfX3B0ZV9hbGxvY19vbmVfa2VybmVs KG1tLCBhZGRyZXNzKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqCiBwdGVfYWxs b2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJcHRl X3QgKnB0ZSA9IF9fcHRlX2FsbG9jX29uZV9rZXJuZWwobW0sIGFkZHIpOwotCWlmIChwdGUpIHsK LQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3BhZ2UocHRlKTsKLQkJcGFnZS0+bWFwcGlu ZyA9ICh2b2lkICopIG1tOwotCQlwYWdlLT5pbmRleCA9IGFkZHIgJiBQTURfTUFTSzsKLQkJcmV0 dXJuIHBhZ2U7Ci0JfQorCisJaWYgKHB0ZSkKKwkJcmV0dXJuIHZpcnRfdG9fcGFnZShwdGUpOwor CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTI0NiwxMyArMjM4LDExIEBACiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwocHRlX3QgKnB0ZSkKIHsKLQl2aXJ0X3RvX3BhZ2UocHRl KS0+bWFwcGluZyA9IE5VTEw7CiAJZnJlZV9wdGVfZmFzdChwdGUpOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IHBhZ2UgKnB0ZXBhZ2UpCiB7Ci0JcHRlcGFnZS0+bWFw cGluZyA9IE5VTEw7CiAJZnJlZV9wdGVfZmFzdChwYWdlX2FkZHJlc3MocHRlcGFnZSkpOwogfQog CmRpZmYgLU5ydSBhL2luY2x1ZGUvYXNtLXNwYXJjNjQvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20t c3BhcmM2NC9wZ3RhYmxlLmgKLS0tIGEvaW5jbHVkZS9hc20tc3BhcmM2NC9wZ3RhYmxlLmgJMjAw NS0wMi0yMyAxOTozMzozMSAtMDg6MDAKKysrIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9wZ3RhYmxl LmgJMjAwNS0wMi0yMyAxOTozMzozMSAtMDg6MDAKQEAgLTMzMywxNyArMzMzLDE4IEBACiAjZGVm aW5lIHB0ZV91bm1hcF9uZXN0ZWQocHRlKQkJZG8geyB9IHdoaWxlICgwKQogCiAvKiBBY3R1YWwg cGFnZSB0YWJsZSBQVEUgdXBkYXRlcy4gICovCi1leHRlcm4gdm9pZCB0bGJfYmF0Y2hfYWRkKHB0 ZV90ICpwdGVwLCBwdGVfdCBvcmlnKTsKK2V4dGVybiB2b2lkIHRsYl9iYXRjaF9hZGQoc3RydWN0 IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCSAgcHRlX3QgKnB0ZXAsIHB0 ZV90IG9yaWcpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRl X3QgcHRlKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9wdGVfYXQoc3RydWN0IG1tX3N0cnVjdCAq bW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCSAgICAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUp CiB7CiAJcHRlX3Qgb3JpZyA9ICpwdGVwOwogCiAJKnB0ZXAgPSBwdGU7Ci0JaWYgKHB0ZV9wcmVz ZW50KG9yaWcpKQotCQl0bGJfYmF0Y2hfYWRkKHB0ZXAsIG9yaWcpOworCWlmIChwdGVfdmFsKG9y aWcpICYgX1BBR0VfVkFMSUQpCisJCXRsYl9iYXRjaF9hZGQobW0sIGFkZHIsIHB0ZXAsIG9yaWcp OwogfQotI2RlZmluZSBzZXRfcHRlX2F0KG1tLGFkZHIscHRlcCxwdGV2YWwpIHNldF9wdGUocHRl cCxwdGV2YWwpCiAKICNkZWZpbmUgcHRlX2NsZWFyKG1tLGFkZHIscHRlcCkJCVwKIAlzZXRfcHRl X2F0KChtbSksIChhZGRyKSwgKHB0ZXApLCBfX3B0ZSgwVUwpKQo= --Multipart=_Wed__23_Feb_2005_20_07_19_-0800_ye/USpT3nmu=yibW Content-Type: application/octet-stream; name="diff2" Content-Disposition: attachment; filename="diff2" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDUvMDIvMjMgMTk6Mjc6NTAtMDg6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1BQQ106IFVzZSBuZXcgc2V0X3B0ZV9hdCgpIHcvbW0rYWRkcmVzcyBh cmdzLgojICAgCiMgICBCYXNlZCBhbG1vc3QgZW50aXJlbHkgdXBvbiBhbiBlYXJsaWVyIHBhdGNo IGJ5CiMgICBCZW5qYW1pbiBIZXJyZW5zY2htaWR0LgojICAgCiMgICBTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CiMgCiMgaW5jbHVkZS9hc20tcHBj NjQvcGd0YWJsZS5oCiMgICAyMDA1LzAyLzIzIDE5OjI2OjUzLTA4OjAwIGRhdmVtQG51dHMuZGF2 ZW1sb2Z0Lm5ldCArMzIgLTIwCiMgICBbUFBDXTogVXNlIG5ldyBzZXRfcHRlX2F0KCkgdy9tbSth ZGRyZXNzIGFyZ3MuCiMgCiMgaW5jbHVkZS9hc20tcHBjNjQvcGdhbGxvYy5oCiMgICAyMDA1LzAy LzIzIDE5OjI2OjUzLTA4OjAwIGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCArNiAtMjIKIyAgIFtQ UENdOiBVc2UgbmV3IHNldF9wdGVfYXQoKSB3L21tK2FkZHJlc3MgYXJncy4KIyAKIyBpbmNsdWRl L2FzbS1wcGMvcGd0YWJsZS5oCiMgICAyMDA1LzAyLzIzIDE5OjI2OjUzLTA4OjAwIGRhdmVtQG51 dHMuZGF2ZW1sb2Z0Lm5ldCArMzMgLTI4CiMgICBbUFBDXTogVXNlIG5ldyBzZXRfcHRlX2F0KCkg dy9tbSthZGRyZXNzIGFyZ3MuCiMgCiMgaW5jbHVkZS9hc20tcHBjL2hpZ2htZW0uaAojICAgMjAw NS8wMi8yMyAxOToyNjo1My0wODowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzEgLTEKIyAg IFtQUENdOiBVc2UgbmV3IHNldF9wdGVfYXQoKSB3L21tK2FkZHJlc3MgYXJncy4KIyAKIyBhcmNo L3BwYzY0L21tL3RsYi5jCiMgICAyMDA1LzAyLzIzIDE5OjI2OjUzLTA4OjAwIGRhdmVtQG51dHMu ZGF2ZW1sb2Z0Lm5ldCArMiAtOQojICAgW1BQQ106IFVzZSBuZXcgc2V0X3B0ZV9hdCgpIHcvbW0r YWRkcmVzcyBhcmdzLgojIAojIGFyY2gvcHBjL21tL3RsYi5jCiMgICAyMDA1LzAyLzIzIDE5OjI2 OjUzLTA4OjAwIGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCArMCAtMjAKIyAgIFtQUENdOiBVc2Ug bmV3IHNldF9wdGVfYXQoKSB3L21tK2FkZHJlc3MgYXJncy4KIyAKIyBhcmNoL3BwYy9tbS9wZ3Rh YmxlLmMKIyAgIDIwMDUvMDIvMjMgMTk6MjY6NTMtMDg6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQu bmV0ICsyIC0xMgojICAgW1BQQ106IFVzZSBuZXcgc2V0X3B0ZV9hdCgpIHcvbW0rYWRkcmVzcyBh cmdzLgojIAojIGFyY2gvcHBjL21tL2luaXQuYwojICAgMjAwNS8wMi8yMyAxOToyNjo1My0wODow MCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzAgLTEyCiMgICBbUFBDXTogVXNlIG5ldyBzZXRf cHRlX2F0KCkgdy9tbSthZGRyZXNzIGFyZ3MuCiMgCiMgYXJjaC9wcGMva2VybmVsL2RtYS1tYXBw aW5nLmMKIyAgIDIwMDUvMDIvMjMgMTk6MjY6NTMtMDg6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQu bmV0ICs1IC0yCiMgICBbUFBDXTogVXNlIG5ldyBzZXRfcHRlX2F0KCkgdy9tbSthZGRyZXNzIGFy Z3MuCiMgCmRpZmYgLU5ydSBhL2FyY2gvcHBjL2tlcm5lbC9kbWEtbWFwcGluZy5jIGIvYXJjaC9w cGMva2VybmVsL2RtYS1tYXBwaW5nLmMKLS0tIGEvYXJjaC9wcGMva2VybmVsL2RtYS1tYXBwaW5n LmMJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6MDAKKysrIGIvYXJjaC9wcGMva2VybmVsL2RtYS1t YXBwaW5nLmMJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6MDAKQEAgLTIxOSw3ICsyMTksOCBAQAog CWMgPSB2bV9yZWdpb25fYWxsb2MoJmNvbnNpc3RlbnRfaGVhZCwgc2l6ZSwKIAkJCSAgICBnZnAg JiB+KF9fR0ZQX0RNQSB8IF9fR0ZQX0hJR0hNRU0pKTsKIAlpZiAoYykgewotCQlwdGVfdCAqcHRl ID0gY29uc2lzdGVudF9wdGUgKyBDT05TSVNURU5UX09GRlNFVChjLT52bV9zdGFydCk7CisJCXVu c2lnbmVkIGxvbmcgdmFkZHIgPSBjLT52bV9zdGFydDsKKwkJcHRlX3QgKnB0ZSA9IGNvbnNpc3Rl bnRfcHRlICsgQ09OU0lTVEVOVF9PRkZTRVQodmFkZHIpOwogCQlzdHJ1Y3QgcGFnZSAqZW5kID0g cGFnZSArICgxIDw8IG9yZGVyKTsKIAogCQkvKgpAQCAtMjMyLDkgKzIzMywxMSBAQAogCiAJCQlz ZXRfcGFnZV9jb3VudChwYWdlLCAxKTsKIAkJCVNldFBhZ2VSZXNlcnZlZChwYWdlKTsKLQkJCXNl dF9wdGUocHRlLCBta19wdGUocGFnZSwgcGdwcm90X25vbmNhY2hlZChQQUdFX0tFUk5FTCkpKTsK KwkJCXNldF9wdGVfYXQoJmluaXRfbW0sIHZhZGRyLAorCQkJCSAgIHB0ZSwgbWtfcHRlKHBhZ2Us IHBncHJvdF9ub25jYWNoZWQoUEFHRV9LRVJORUwpKSk7CiAJCQlwYWdlKys7CiAJCQlwdGUrKzsK KwkJCXZhZGRyICs9IFBBR0VfU0laRTsKIAkJfSB3aGlsZSAoc2l6ZSAtPSBQQUdFX1NJWkUpOwog CiAJCS8qCmRpZmYgLU5ydSBhL2FyY2gvcHBjL21tL2luaXQuYyBiL2FyY2gvcHBjL21tL2luaXQu YwotLS0gYS9hcmNoL3BwYy9tbS9pbml0LmMJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6MDAKKysr IGIvYXJjaC9wcGMvbW0vaW5pdC5jCTIwMDUtMDItMjMgMTk6MzM6NDYgLTA4OjAwCkBAIC00OTAs MTggKzQ5MCw2IEBACiAJCXByaW50ayhLRVJOX0lORk8gIkFHUCBzcGVjaWFsIHBhZ2U6IDB4JTA4 bHhcbiIsIGFncF9zcGVjaWFsX3BhZ2UpOwogI2VuZGlmCiAKLQkvKiBNYWtlIHN1cmUgYWxsIG91 ciBwYWdldGFibGUgcGFnZXMgaGF2ZSBwYWdlLT5tYXBwaW5nCi0JICAgYW5kIHBhZ2UtPmluZGV4 IHNldCBjb3JyZWN0bHkuICovCi0JZm9yIChhZGRyID0gS0VSTkVMQkFTRTsgYWRkciAhPSAwOyBh ZGRyICs9IFBHRElSX1NJWkUpIHsKLQkJc3RydWN0IHBhZ2UgKnBnOwotCQlwbWRfdCAqcG1kID0g cG1kX29mZnNldChwZ2Rfb2Zmc2V0X2soYWRkciksIGFkZHIpOwotCQlpZiAocG1kX3ByZXNlbnQo KnBtZCkpIHsKLQkJCXBnID0gcG1kX3BhZ2UoKnBtZCk7Ci0JCQlwZy0+bWFwcGluZyA9ICh2b2lk ICopICZpbml0X21tOwotCQkJcGctPmluZGV4ID0gYWRkcjsKLQkJfQotCX0KLQogCW1lbV9pbml0 X2RvbmUgPSAxOwogfQogCmRpZmYgLU5ydSBhL2FyY2gvcHBjL21tL3BndGFibGUuYyBiL2FyY2gv cHBjL21tL3BndGFibGUuYwotLS0gYS9hcmNoL3BwYy9tbS9wZ3RhYmxlLmMJMjAwNS0wMi0yMyAx OTozMzo0NiAtMDg6MDAKKysrIGIvYXJjaC9wcGMvbW0vcGd0YWJsZS5jCTIwMDUtMDItMjMgMTk6 MzM6NDYgLTA4OjAwCkBAIC0xMDIsMTEgKzEwMiw2IEBACiAKIAlpZiAobWVtX2luaXRfZG9uZSkg ewogCQlwdGUgPSAocHRlX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTHxfX0dGUF9SRVBF QVR8X19HRlBfWkVSTyk7Ci0JCWlmIChwdGUpIHsKLQkJCXN0cnVjdCBwYWdlICpwdGVwYWdlID0g dmlydF90b19wYWdlKHB0ZSk7Ci0JCQlwdGVwYWdlLT5tYXBwaW5nID0gKHZvaWQgKikgbW07Ci0J CQlwdGVwYWdlLT5pbmRleCA9IGFkZHJlc3MgJiBQTURfTUFTSzsKLQkJfQogCX0gZWxzZSB7CiAJ CXB0ZSA9IChwdGVfdCAqKWVhcmx5X2dldF9wYWdlKCk7CiAJCWlmIChwdGUpCkBAIC0xMjYsMTEg KzEyMSw4IEBACiAjZW5kaWYKIAogCXB0ZXBhZ2UgPSBhbGxvY19wYWdlcyhmbGFncywgMCk7Ci0J aWYgKHB0ZXBhZ2UpIHsKLQkJcHRlcGFnZS0+bWFwcGluZyA9ICh2b2lkICopIG1tOwotCQlwdGVw YWdlLT5pbmRleCA9IGFkZHJlc3MgJiBQTURfTUFTSzsKKwlpZiAocHRlcGFnZSkKIAkJY2xlYXJf aGlnaHBhZ2UocHRlcGFnZSk7Ci0JfQogCXJldHVybiBwdGVwYWdlOwogfQogCkBAIC0xMzksNyAr MTMxLDYgQEAKICNpZmRlZiBDT05GSUdfU01QCiAJaGFzaF9wYWdlX3N5bmMoKTsKICNlbmRpZgot CXZpcnRfdG9fcGFnZShwdGUpLT5tYXBwaW5nID0gTlVMTDsKIAlmcmVlX3BhZ2UoKHVuc2lnbmVk IGxvbmcpcHRlKTsKIH0KIApAQCAtMTQ4LDcgKzEzOSw2IEBACiAjaWZkZWYgQ09ORklHX1NNUAog CWhhc2hfcGFnZV9zeW5jKCk7CiAjZW5kaWYKLQlwdGVwYWdlLT5tYXBwaW5nID0gTlVMTDsKIAlf X2ZyZWVfcGFnZShwdGVwYWdlKTsKIH0KIApAQCAtMjk4LDcgKzI4OCw3IEBACiAJcGcgPSBwdGVf YWxsb2Nfa2VybmVsKCZpbml0X21tLCBwZCwgdmEpOwogCWlmIChwZyAhPSAwKSB7CiAJCWVyciA9 IDA7Ci0JCXNldF9wdGUocGcsIHBmbl9wdGUocGEgPj4gUEFHRV9TSElGVCwgX19wZ3Byb3QoZmxh Z3MpKSk7CisJCXNldF9wdGVfYXQoJmluaXRfbW0sIHZhLCBwZywgcGZuX3B0ZShwYSA+PiBQQUdF X1NISUZULCBfX3BncHJvdChmbGFncykpKTsKIAkJaWYgKG1lbV9pbml0X2RvbmUpCiAJCQlmbHVz aF9IUFRFKDAsIHZhLCBwbWRfdmFsKCpwZCkpOwogCX0KZGlmZiAtTnJ1IGEvYXJjaC9wcGMvbW0v dGxiLmMgYi9hcmNoL3BwYy9tbS90bGIuYwotLS0gYS9hcmNoL3BwYy9tbS90bGIuYwkyMDA1LTAy LTIzIDE5OjMzOjQ2IC0wODowMAorKysgYi9hcmNoL3BwYy9tbS90bGIuYwkyMDA1LTAyLTIzIDE5 OjMzOjQ2IC0wODowMApAQCAtNDcsMjYgKzQ3LDYgQEAKIH0KIAogLyoKLSAqIENhbGxlZCBieSBw dGVwX3Rlc3RfYW5kX2NsZWFyX3lvdW5nKCkKLSAqLwotdm9pZCBmbHVzaF9oYXNoX29uZV9wdGUo cHRlX3QgKnB0ZXApCi17Ci0Jc3RydWN0IHBhZ2UgKnB0ZXBhZ2U7Ci0Jc3RydWN0IG1tX3N0cnVj dCAqbW07Ci0JdW5zaWduZWQgbG9uZyBwdGVwaHlzOwotCXVuc2lnbmVkIGxvbmcgYWRkcjsKLQot CWlmIChIYXNoID09IDApCi0JCXJldHVybjsKLQkKLQlwdGVwYWdlID0gdmlydF90b19wYWdlKHB0 ZXApOwotCW1tID0gKHN0cnVjdCBtbV9zdHJ1Y3QgKikgcHRlcGFnZS0+bWFwcGluZzsKLQlwdGVw aHlzID0gX19wYShwdGVwKSAmIFBBR0VfTUFTSzsKLQlhZGRyID0gcHRlcGFnZS0+aW5kZXggKyAo KCh1bnNpZ25lZCBsb25nKXB0ZXAgJiB+UEFHRV9NQVNLKSA8PCAxMCk7Ci0JZmx1c2hfaGFzaF9w YWdlcyhtbS0+Y29udGV4dCwgYWRkciwgcHRlcGh5cywgMSk7Ci19Ci0KLS8qCiAgKiBDYWxsZWQg YnkgcHRlcF9zZXRfYWNjZXNzX2ZsYWdzLCBtdXN0IGZsdXNoIG9uIENQVXMgZm9yIHdoaWNoIHRo ZQogICogRFNJIGhhbmRsZXIgY2FuJ3QganVzdCAiZml4dXAiIHRoZSBUTEIgb24gYSB3cml0ZSBm YXVsdAogICovCmRpZmYgLU5ydSBhL2FyY2gvcHBjNjQvbW0vdGxiLmMgYi9hcmNoL3BwYzY0L21t L3RsYi5jCi0tLSBhL2FyY2gvcHBjNjQvbW0vdGxiLmMJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6 MDAKKysrIGIvYXJjaC9wcGM2NC9tbS90bGIuYwkyMDA1LTAyLTIzIDE5OjMzOjQ2IC0wODowMApA QCAtNzQsMTkgKzc0LDEyIEBACiAgKiBjaGFuZ2UgdGhlIGV4aXN0aW5nIEhQVEUgdG8gcmVhZC1v bmx5IHJhdGhlciB0aGFuIHJlbW92aW5nIGl0CiAgKiAoaWYgd2UgcmVtb3ZlIGl0IHdlIHNob3Vs ZCBjbGVhciB0aGUgX1BURV9IUFRFRkxBR1MgYml0cykuCiAgKi8KLXZvaWQgaHB0ZV91cGRhdGUo cHRlX3QgKnB0ZXAsIHVuc2lnbmVkIGxvbmcgcHRlLCBpbnQgd3Jwcm90KQordm9pZCBocHRlX3Vw ZGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkgdW5zaWdu ZWQgbG9uZyBwdGUsIGludCB3cnByb3QpCiB7Ci0Jc3RydWN0IHBhZ2UgKnB0ZXBhZ2U7Ci0Jc3Ry dWN0IG1tX3N0cnVjdCAqbW07Ci0JdW5zaWduZWQgbG9uZyBhZGRyOwogCWludCBpOwogCXVuc2ln bmVkIGxvbmcgY29udGV4dCA9IDA7CiAJc3RydWN0IHBwYzY0X3RsYl9iYXRjaCAqYmF0Y2ggPSAm X19nZXRfY3B1X3ZhcihwcGM2NF90bGJfYmF0Y2gpOwotCi0JcHRlcGFnZSA9IHZpcnRfdG9fcGFn ZShwdGVwKTsKLQltbSA9IChzdHJ1Y3QgbW1fc3RydWN0ICopIHB0ZXBhZ2UtPm1hcHBpbmc7Ci0J YWRkciA9IHB0ZXBhZ2UtPmluZGV4ICsKLQkJKCgodW5zaWduZWQgbG9uZylwdGVwICYgflBBR0Vf TUFTSykgKiBQVFJTX1BFUl9QVEUpOwogCiAJaWYgKFJFR0lPTl9JRChhZGRyKSA9PSBVU0VSX1JF R0lPTl9JRCkKIAkJY29udGV4dCA9IG1tLT5jb250ZXh0LmlkOwpkaWZmIC1OcnUgYS9pbmNsdWRl L2FzbS1wcGMvaGlnaG1lbS5oIGIvaW5jbHVkZS9hc20tcHBjL2hpZ2htZW0uaAotLS0gYS9pbmNs dWRlL2FzbS1wcGMvaGlnaG1lbS5oCTIwMDUtMDItMjMgMTk6MzM6NDYgLTA4OjAwCisrKyBiL2lu Y2x1ZGUvYXNtLXBwYy9oaWdobWVtLmgJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6MDAKQEAgLTkw LDcgKzkwLDcgQEAKICNpZmRlZiBISUdITUVNX0RFQlVHCiAJQlVHX09OKCFwdGVfbm9uZSgqKGtt YXBfcHRlK2lkeCkpKTsKICNlbmRpZgotCXNldF9wdGUoa21hcF9wdGUraWR4LCBta19wdGUocGFn ZSwga21hcF9wcm90KSk7CisJc2V0X3B0ZV9hdCgmaW5pdF9tbSwgdmFkZHIsIGttYXBfcHRlK2lk eCwgbWtfcHRlKHBhZ2UsIGttYXBfcHJvdCkpOwogCWZsdXNoX3RsYl9wYWdlKE5VTEwsIHZhZGRy KTsKIAogCXJldHVybiAodm9pZCopIHZhZGRyOwpkaWZmIC1OcnUgYS9pbmNsdWRlL2FzbS1wcGMv cGd0YWJsZS5oIGIvaW5jbHVkZS9hc20tcHBjL3BndGFibGUuaAotLS0gYS9pbmNsdWRlL2FzbS1w cGMvcGd0YWJsZS5oCTIwMDUtMDItMjMgMTk6MzM6NDYgLTA4OjAwCisrKyBiL2luY2x1ZGUvYXNt LXBwYy9wZ3RhYmxlLmgJMjAwNS0wMi0yMyAxOTozMzo0NiAtMDg6MDAKQEAgLTUxMiw2ICs1MTIs MTcgQEAKIH0KIAogLyoKKyAqIFdoZW4gZmx1c2hpbmcgdGhlIHRsYiBlbnRyeSBmb3IgYSBwYWdl LCB3ZSBhbHNvIG5lZWQgdG8gZmx1c2ggdGhlIGhhc2gKKyAqIHRhYmxlIGVudHJ5LiAgZmx1c2hf aGFzaF9wYWdlcyBpcyBhc3NlbWJsZXIgKGZvciBzcGVlZCkgaW4gaGFzaHRhYmxlLlMuCisgKi8K K2V4dGVybiBpbnQgZmx1c2hfaGFzaF9wYWdlcyh1bnNpZ25lZCBjb250ZXh0LCB1bnNpZ25lZCBs b25nIHZhLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgcG1kdmFsLCBpbnQgY291bnQpOworCisvKiBB ZGQgYW4gSFBURSB0byB0aGUgaGFzaCB0YWJsZSAqLworZXh0ZXJuIHZvaWQgYWRkX2hhc2hfcGFn ZSh1bnNpZ25lZCBjb250ZXh0LCB1bnNpZ25lZCBsb25nIHZhLAorCQkJICB1bnNpZ25lZCBsb25n IHBtZHZhbCk7CisKKy8qCiAgKiBBdG9taWMgUFRFIHVwZGF0ZXMuCiAgKgogICogcHRlX3VwZGF0 ZSBjbGVhcnMgYW5kIHNldHMgYml0IGF0b21pY2FsbHksIGFuZCByZXR1cm5zCkBAIC01NDIsNyAr NTUzLDggQEAKICAqIE9uIG1hY2hpbmVzIHdoaWNoIHVzZSBhbiBNTVUgaGFzaCB0YWJsZSB3ZSBh dm9pZCBjaGFuZ2luZyB0aGUKICAqIF9QQUdFX0hBU0hQVEUgYml0LgogICovCi1zdGF0aWMgaW5s aW5lIHZvaWQgc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQorc3RhdGljIGlubGluZSB2 b2lkIHNldF9wdGVfYXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwK KwkJCSAgICAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCiB7CiAjaWYgX1BBR0VfSEFTSFBURSAh PSAwCiAJcHRlX3VwZGF0ZShwdGVwLCB+X1BBR0VfSEFTSFBURSwgcHRlX3ZhbChwdGUpICYgfl9Q QUdFX0hBU0hQVEUpOwpAQCAtNTUwLDM2ICs1NjIsNDQgQEAKIAkqcHRlcCA9IHB0ZTsKICNlbmRp ZgogfQotI2RlZmluZSBzZXRfcHRlX2F0KG1tLGFkZHIscHRlcCxwdGV2YWwpIHNldF9wdGUocHRl cCxwdGV2YWwpCi0KLWV4dGVybiB2b2lkIGZsdXNoX2hhc2hfb25lX3B0ZShwdGVfdCAqcHRlcCk7 CiAKIC8qCiAgKiAyLjYgY2FsbGVzIHRoaXMgd2l0aG91dCBmbHVzaGluZyB0aGUgVExCIGVudHJ5 LCB0aGlzIGlzIHdyb25nCiAgKiBmb3Igb3VyIGhhc2gtYmFzZWQgaW1wbGVtZW50YXRpb24sIHdl IGZpeCB0aGF0IHVwIGhlcmUKICAqLwotc3RhdGljIGlubGluZSBpbnQgcHRlcF90ZXN0X2FuZF9j bGVhcl95b3VuZyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRy LCBwdGVfdCAqcHRlcCkKKyNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9URVNUX0FORF9DTEVBUl9Z T1VORworc3RhdGljIGlubGluZSBpbnQgX19wdGVwX3Rlc3RfYW5kX2NsZWFyX3lvdW5nKHVuc2ln bmVkIGludCBjb250ZXh0LCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQogewogCXVu c2lnbmVkIGxvbmcgb2xkOwogCW9sZCA9IHB0ZV91cGRhdGUocHRlcCwgX1BBR0VfQUNDRVNTRUQs IDApOwogI2lmIF9QQUdFX0hBU0hQVEUgIT0gMAotCWlmIChvbGQgJiBfUEFHRV9IQVNIUFRFKQot CQlmbHVzaF9oYXNoX29uZV9wdGUocHRlcCk7CisJaWYgKG9sZCAmIF9QQUdFX0hBU0hQVEUpIHsK KwkJdW5zaWduZWQgbG9uZyBwdGVwaHlzID0gX19wYShwdGVwKSAmIFBBR0VfTUFTSzsKKwkJZmx1 c2hfaGFzaF9wYWdlcyhjb250ZXh0LCBhZGRyLCBwdGVwaHlzLCAxKTsKKwl9CiAjZW5kaWYKIAly ZXR1cm4gKG9sZCAmIF9QQUdFX0FDQ0VTU0VEKSAhPSAwOwogfQorI2RlZmluZSBwdGVwX3Rlc3Rf YW5kX2NsZWFyX3lvdW5nKF9fdm1hLCBfX2FkZHIsIF9fcHRlcCkgXAorCV9fcHRlcF90ZXN0X2Fu ZF9jbGVhcl95b3VuZygoX192bWEpLT52bV9tbS0+Y29udGV4dCwgX19hZGRyLCBfX3B0ZXApCiAK LXN0YXRpYyBpbmxpbmUgaW50IHB0ZXBfdGVzdF9hbmRfY2xlYXJfZGlydHkoc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCisjZGVmaW5l IF9fSEFWRV9BUkNIX1BURVBfVEVTVF9BTkRfQ0xFQVJfRElSVFkKK3N0YXRpYyBpbmxpbmUgaW50 IHB0ZXBfdGVzdF9hbmRfY2xlYXJfZGlydHkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCisJ CQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQogewogCXJldHVybiAocHRl X3VwZGF0ZShwdGVwLCAoX1BBR0VfRElSVFkgfCBfUEFHRV9IV1dSSVRFKSwgMCkgJiBfUEFHRV9E SVJUWSkgIT0gMDsKIH0KIAotc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX2dldF9hbmRfY2xlYXIo c3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCisj ZGVmaW5lIF9fSEFWRV9BUkNIX1BURVBfR0VUX0FORF9DTEVBUgorc3RhdGljIGlubGluZSBwdGVf dCBwdGVwX2dldF9hbmRfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcg YWRkciwKKwkJCQkgICAgICAgcHRlX3QgKnB0ZXApCiB7CiAJcmV0dXJuIF9fcHRlKHB0ZV91cGRh dGUocHRlcCwgfl9QQUdFX0hBU0hQVEUsIDApKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHB0 ZXBfc2V0X3dycHJvdGVjdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRy LCBwdGVfdCAqcHRlcCkKKyNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9TRVRfV1JQUk9URUNUCitz dGF0aWMgaW5saW5lIHZvaWQgcHRlcF9zZXRfd3Jwcm90ZWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1t LCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJICAgICAgcHRlX3QgKnB0ZXApCiB7CiAJcHRlX3Vw ZGF0ZShwdGVwLCAoX1BBR0VfUlcgfCBfUEFHRV9IV1dSSVRFKSwgMCk7CiB9CkBAIC02MDMsNiAr NjIzLDcgQEAKICAqLwogI2RlZmluZSBwZ3Byb3Rfbm9uY2FjaGVkKHByb3QpCShfX3BncHJvdChw Z3Byb3RfdmFsKHByb3QpIHwgX1BBR0VfTk9fQ0FDSEUgfCBfUEFHRV9HVUFSREVEKSkKIAorI2Rl ZmluZSBfX0hBVkVfQVJDSF9QVEVfU0FNRQogI2RlZmluZSBwdGVfc2FtZShBLEIpCSgoKHB0ZV92 YWwoQSkgXiBwdGVfdmFsKEIpKSAmIH5fUEFHRV9IQVNIUFRFKSA9PSAwKQogCiAvKgpAQCAtNjU1 LDE3ICs2NzYsNiBAQAogZXh0ZXJuIHZvaWQgcGFnaW5nX2luaXQodm9pZCk7CiAKIC8qCi0gKiBX aGVuIGZsdXNoaW5nIHRoZSB0bGIgZW50cnkgZm9yIGEgcGFnZSwgd2UgYWxzbyBuZWVkIHRvIGZs dXNoIHRoZSBoYXNoCi0gKiB0YWJsZSBlbnRyeS4gIGZsdXNoX2hhc2hfcGFnZXMgaXMgYXNzZW1i bGVyIChmb3Igc3BlZWQpIGluIGhhc2h0YWJsZS5TLgotICovCi1leHRlcm4gaW50IGZsdXNoX2hh c2hfcGFnZXModW5zaWduZWQgY29udGV4dCwgdW5zaWduZWQgbG9uZyB2YSwKLQkJCSAgICB1bnNp Z25lZCBsb25nIHBtZHZhbCwgaW50IGNvdW50KTsKLQotLyogQWRkIGFuIEhQVEUgdG8gdGhlIGhh c2ggdGFibGUgKi8KLWV4dGVybiB2b2lkIGFkZF9oYXNoX3BhZ2UodW5zaWduZWQgY29udGV4dCwg dW5zaWduZWQgbG9uZyB2YSwKLQkJCSAgdW5zaWduZWQgbG9uZyBwbWR2YWwpOwotCi0vKgogICog RW5jb2RlIGFuZCBkZWNvZGUgYSBzd2FwIGVudHJ5LgogICogTm90ZSB0aGF0IHRoZSBiaXRzIHdl IHVzZSBpbiBhIFBURSBmb3IgcmVwcmVzZW50aW5nIGEgc3dhcCBlbnRyeQogICogbXVzdCBub3Qg aW5jbHVkZSB0aGUgX1BBR0VfUFJFU0VOVCBiaXQsIHRoZSBfUEFHRV9GSUxFIGJpdCwgb3IgdGhl CkBAIC03MzcsMTQgKzc0Nyw5IEBACiAKIGV4dGVybiBpbnQgZ2V0X3B0ZXB0cihzdHJ1Y3QgbW1f c3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqKnB0ZXApOwogCi0jZW5kaWYg LyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZGVmaW5lIF9fSEFWRV9BUkNIX1BURVBfVEVTVF9BTkRf Q0xFQVJfWU9VTkcKLSNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9URVNUX0FORF9DTEVBUl9ESVJU WQotI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVQX0dFVF9BTkRfQ0xFQVIKLSNkZWZpbmUgX19IQVZF X0FSQ0hfUFRFUF9TRVRfV1JQUk9URUNUCi0jZGVmaW5lIF9fSEFWRV9BUkNIX1BURV9TQU1FCiAj aW5jbHVkZSA8YXNtLWdlbmVyaWMvcGd0YWJsZS5oPgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlf XyAqLwogCiAjZW5kaWYgLyogX1BQQ19QR1RBQkxFX0ggKi8KICNlbmRpZiAvKiBfX0tFUk5FTF9f ICovCmRpZmYgLU5ydSBhL2luY2x1ZGUvYXNtLXBwYzY0L3BnYWxsb2MuaCBiL2luY2x1ZGUvYXNt LXBwYzY0L3BnYWxsb2MuaAotLS0gYS9pbmNsdWRlL2FzbS1wcGM2NC9wZ2FsbG9jLmgJMjAwNS0w Mi0yMyAxOTozMzo0NiAtMDg6MDAKKysrIGIvaW5jbHVkZS9hc20tcHBjNjQvcGdhbGxvYy5oCTIw MDUtMDItMjMgMTk6MzM6NDYgLTA4OjAwCkBAIC00OCw0MiArNDgsMjYgQEAKICNkZWZpbmUgcG1k X3BvcHVsYXRlKG1tLCBwbWQsIHB0ZV9wYWdlKSBcCiAJcG1kX3BvcHVsYXRlX2tlcm5lbChtbSwg cG1kLCBwYWdlX2FkZHJlc3MocHRlX3BhZ2UpKQogCi1zdGF0aWMgaW5saW5lIHB0ZV90ICoKLXB0 ZV9hbGxvY19vbmVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MpCitzdGF0aWMgaW5saW5lIHB0ZV90ICpwdGVfYWxsb2Nfb25lX2tlcm5lbChzdHJ1Y3Qg bW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewotCXB0ZV90ICpwdGU7Ci0J cHRlID0ga21lbV9jYWNoZV9hbGxvYyh6ZXJvX2NhY2hlLCBHRlBfS0VSTkVMfF9fR0ZQX1JFUEVB VCk7Ci0JaWYgKHB0ZSkgewotCQlzdHJ1Y3QgcGFnZSAqcHRlcGFnZSA9IHZpcnRfdG9fcGFnZShw dGUpOwotCQlwdGVwYWdlLT5tYXBwaW5nID0gKHZvaWQgKikgbW07Ci0JCXB0ZXBhZ2UtPmluZGV4 ID0gYWRkcmVzcyAmIFBNRF9NQVNLOwotCX0KLQlyZXR1cm4gcHRlOworCXJldHVybiBrbWVtX2Nh Y2hlX2FsbG9jKHplcm9fY2FjaGUsIEdGUF9LRVJORUx8X19HRlBfUkVQRUFUKTsKIH0KIAotc3Rh dGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqCi1wdGVfYWxsb2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpw dGVfYWxsb2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3Mp CiB7Ci0JcHRlX3QgKnB0ZTsKLQlwdGUgPSBrbWVtX2NhY2hlX2FsbG9jKHplcm9fY2FjaGUsIEdG UF9LRVJORUx8X19HRlBfUkVQRUFUKTsKLQlpZiAocHRlKSB7Ci0JCXN0cnVjdCBwYWdlICpwdGVw YWdlID0gdmlydF90b19wYWdlKHB0ZSk7Ci0JCXB0ZXBhZ2UtPm1hcHBpbmcgPSAodm9pZCAqKSBt bTsKLQkJcHRlcGFnZS0+aW5kZXggPSBhZGRyZXNzICYgUE1EX01BU0s7Ci0JCXJldHVybiBwdGVw YWdlOwotCX0KKwlwdGVfdCAqcHRlID0ga21lbV9jYWNoZV9hbGxvYyh6ZXJvX2NhY2hlLCBHRlBf S0VSTkVMfF9fR0ZQX1JFUEVBVCk7CisJaWYgKHB0ZSkKKwkJcmV0dXJuIHZpcnRfdG9fcGFnZShw dGUpOwogCXJldHVybiBOVUxMOwogfQogCQkKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9r ZXJuZWwocHRlX3QgKnB0ZSkKIHsKLQl2aXJ0X3RvX3BhZ2UocHRlKS0+bWFwcGluZyA9IE5VTEw7 CiAJa21lbV9jYWNoZV9mcmVlKHplcm9fY2FjaGUsIHB0ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg dm9pZCBwdGVfZnJlZShzdHJ1Y3QgcGFnZSAqcHRlcGFnZSkKIHsKLQlwdGVwYWdlLT5tYXBwaW5n ID0gTlVMTDsKIAlrbWVtX2NhY2hlX2ZyZWUoemVyb19jYWNoZSwgcGFnZV9hZGRyZXNzKHB0ZXBh Z2UpKTsKIH0KIApkaWZmIC1OcnUgYS9pbmNsdWRlL2FzbS1wcGM2NC9wZ3RhYmxlLmggYi9pbmNs dWRlL2FzbS1wcGM2NC9wZ3RhYmxlLmgKLS0tIGEvaW5jbHVkZS9hc20tcHBjNjQvcGd0YWJsZS5o CTIwMDUtMDItMjMgMTk6MzM6NDYgLTA4OjAwCisrKyBiL2luY2x1ZGUvYXNtLXBwYzY0L3BndGFi bGUuaAkyMDA1LTAyLTIzIDE5OjMzOjQ2IC0wODowMApAQCAtMzE1LDkgKzMxNSwxMCBAQAogICog YmF0Y2gsIGRvZXNuJ3QgYWN0dWFsbHkgdHJpZ2dlcnMgdGhlIGhhc2ggZmx1c2ggaW1tZWRpYXRl bHksCiAgKiB5b3UgbmVlZCB0byBjYWxsIGZsdXNoX3RsYl9wZW5kaW5nKCkgdG8gZG8gdGhhdC4K ICAqLwotZXh0ZXJuIHZvaWQgaHB0ZV91cGRhdGUocHRlX3QgKnB0ZXAsIHVuc2lnbmVkIGxvbmcg cHRlLCBpbnQgd3Jwcm90KTsKK2V4dGVybiB2b2lkIGhwdGVfdXBkYXRlKHN0cnVjdCBtbV9zdHJ1 Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgcHRlLAorCQkJaW50IHdy cHJvdCk7CiAKLXN0YXRpYyBpbmxpbmUgaW50IHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXAp CitzdGF0aWMgaW5saW5lIGludCBfX3B0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoc3RydWN0IG1t X3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCiB7CiAJdW5zaWdu ZWQgbG9uZyBvbGQ7CiAKQEAgLTMyNSwxOCArMzI2LDI1IEBACiAJCXJldHVybiAwOwogCW9sZCA9 IHB0ZV91cGRhdGUocHRlcCwgX1BBR0VfQUNDRVNTRUQpOwogCWlmIChvbGQgJiBfUEFHRV9IQVNI UFRFKSB7Ci0JCWhwdGVfdXBkYXRlKHB0ZXAsIG9sZCwgMCk7CisJCWhwdGVfdXBkYXRlKG1tLCBh ZGRyLCBvbGQsIDApOwogCQlmbHVzaF90bGJfcGVuZGluZygpOwogCX0KIAlyZXR1cm4gKG9sZCAm IF9QQUdFX0FDQ0VTU0VEKSAhPSAwOwogfQorI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVQX1RFU1Rf QU5EX0NMRUFSX1lPVU5HCisjZGVmaW5lIHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoX192bWEs IF9fYWRkciwgX19wdGVwKQkJICAgXAorKHsJCQkJCQkJCQkgICBcCisJaW50IF9fcjsJCQkJCQkJ ICAgXAorCV9fciA9IF9fcHRlcF90ZXN0X2FuZF9jbGVhcl95b3VuZygoX192bWEpLT52bV9tbSwg X19hZGRyLCBfX3B0ZXApOyBcCisJX19yOwkJCQkJCQkJICAgXAorfSkKIAogLyoKICAqIE9uIFJX L0RJUlRZIGJpdCB0cmFuc2l0aW9ucyB3ZSBjYW4gYXZvaWQgZmx1c2hpbmcgdGhlIGhwdGUuIEZv ciB0aGUKICAqIG1vbWVudCB3ZSBhbHdheXMgZmx1c2ggYnV0IHdlIG5lZWQgdG8gZml4IGhwdGVf dXBkYXRlIGFuZCB0ZXN0IGlmIHRoZQogICogb3B0aW1pc2F0aW9uIGlzIHdvcnRoIGl0LgogICov Ci1zdGF0aWMgaW5saW5lIGludCBwdGVwX3Rlc3RfYW5kX2NsZWFyX2RpcnR5KHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQorc3RhdGlj IGlubGluZSBpbnQgX19wdGVwX3Rlc3RfYW5kX2NsZWFyX2RpcnR5KHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQogewogCXVuc2lnbmVkIGxvbmcg b2xkOwogCkBAIC0zNDQsMTAgKzM1MiwxOCBAQAogCQlyZXR1cm4gMDsKIAlvbGQgPSBwdGVfdXBk YXRlKHB0ZXAsIF9QQUdFX0RJUlRZKTsKIAlpZiAob2xkICYgX1BBR0VfSEFTSFBURSkKLQkJaHB0 ZV91cGRhdGUocHRlcCwgb2xkLCAwKTsKKwkJaHB0ZV91cGRhdGUobW0sIGFkZHIsIG9sZCwgMCk7 CiAJcmV0dXJuIChvbGQgJiBfUEFHRV9ESVJUWSkgIT0gMDsKIH0KKyNkZWZpbmUgX19IQVZFX0FS Q0hfUFRFUF9URVNUX0FORF9DTEVBUl9ESVJUWQorI2RlZmluZSBwdGVwX3Rlc3RfYW5kX2NsZWFy X2RpcnR5KF9fdm1hLCBfX2FkZHIsIF9fcHRlcCkJCSAgIFwKKyh7CQkJCQkJCQkJICAgXAorCWlu dCBfX3I7CQkJCQkJCSAgIFwKKwlfX3IgPSBfX3B0ZXBfdGVzdF9hbmRfY2xlYXJfZGlydHkoKF9f dm1hKS0+dm1fbW0sIF9fYWRkciwgX19wdGVwKTsgXAorCV9fcjsJCQkJCQkJCSAgIFwKK30pCiAK KyNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9TRVRfV1JQUk9URUNUCiBzdGF0aWMgaW5saW5lIHZv aWQgcHRlcF9zZXRfd3Jwcm90ZWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25n IGFkZHIsIHB0ZV90ICpwdGVwKQogewogCXVuc2lnbmVkIGxvbmcgb2xkOwpAQCAtMzU2LDcgKzM3 Miw3IEBACiAgICAgICAgCQlyZXR1cm47CiAJb2xkID0gcHRlX3VwZGF0ZShwdGVwLCBfUEFHRV9S Vyk7CiAJaWYgKG9sZCAmIF9QQUdFX0hBU0hQVEUpCi0JCWhwdGVfdXBkYXRlKHB0ZXAsIG9sZCwg MCk7CisJCWhwdGVfdXBkYXRlKG1tLCBhZGRyLCBvbGQsIDApOwogfQogCiAvKgpAQCAtMzcwLDI2 ICszODYsMjcgQEAKICNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9DTEVBUl9ZT1VOR19GTFVTSAog I2RlZmluZSBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKF9fdm1hLCBfX2FkZHJlc3MsIF9fcHRlcCkJ CVwKICh7CQkJCQkJCQkJXAotCWludCBfX3lvdW5nOwkJCQkJCQlcCi0JX195b3VuZyA9IHB0ZXBf dGVzdF9hbmRfY2xlYXJfeW91bmcoX192bWEsIF9fYWRkcmVzcywgX19wdGVwKTsJXAorCWludCBf X3lvdW5nID0gX19wdGVwX3Rlc3RfYW5kX2NsZWFyX3lvdW5nKChfX3ZtYSktPnZtX21tLCBfX2Fk ZHJlc3MsIFwKKwkJCQkJCSAgX19wdGVwKTsJCVwKIAlfX3lvdW5nOwkJCQkJCQlcCiB9KQogCiAj ZGVmaW5lIF9fSEFWRV9BUkNIX1BURVBfQ0xFQVJfRElSVFlfRkxVU0gKICNkZWZpbmUgcHRlcF9j bGVhcl9mbHVzaF9kaXJ0eShfX3ZtYSwgX19hZGRyZXNzLCBfX3B0ZXApCQlcCiAoewkJCQkJCQkJ CVwKLQlpbnQgX19kaXJ0eTsJCQkJCQkJXAotCV9fZGlydHkgPSBwdGVwX3Rlc3RfYW5kX2NsZWFy X2RpcnR5KF9fdm1hLCBfX2FkZHJlc3MsIF9fcHRlcCk7CVwKKwlpbnQgX19kaXJ0eSA9IF9fcHRl cF90ZXN0X2FuZF9jbGVhcl9kaXJ0eSgoX192bWEpLT52bV9tbSwgX19hZGRyZXNzLCBcCisJCQkJ CQkgIF9fcHRlcCk7IAkJXAogCWZsdXNoX3RsYl9wYWdlKF9fdm1hLCBfX2FkZHJlc3MpOwkJCQlc CiAJX19kaXJ0eTsJCQkJCQkJXAogfSkKIAorI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVQX0dFVF9B TkRfQ0xFQVIKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlcF9nZXRfYW5kX2NsZWFyKHN0cnVjdCBt bV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQogewogCXVuc2ln bmVkIGxvbmcgb2xkID0gcHRlX3VwZGF0ZShwdGVwLCB+MFVMKTsKIAogCWlmIChvbGQgJiBfUEFH RV9IQVNIUFRFKQotCQlocHRlX3VwZGF0ZShwdGVwLCBvbGQsIDApOworCQlocHRlX3VwZGF0ZSht bSwgYWRkciwgb2xkLCAwKTsKIAlyZXR1cm4gX19wdGUob2xkKTsKIH0KIApAQCAtMzk4LDcgKzQx NSw3IEBACiAJdW5zaWduZWQgbG9uZyBvbGQgPSBwdGVfdXBkYXRlKHB0ZXAsIH4wVUwpOwogCiAJ aWYgKG9sZCAmIF9QQUdFX0hBU0hQVEUpCi0JCWhwdGVfdXBkYXRlKHB0ZXAsIG9sZCwgMCk7CisJ CWhwdGVfdXBkYXRlKG1tLCBhZGRyLCBvbGQsIDApOwogfQogCiAvKgpAQCAtNDQ2LDYgKzQ2Myw3 IEBACiAgKi8KICNkZWZpbmUgcGdwcm90X25vbmNhY2hlZChwcm90KQkoX19wZ3Byb3QocGdwcm90 X3ZhbChwcm90KSB8IF9QQUdFX05PX0NBQ0hFIHwgX1BBR0VfR1VBUkRFRCkpCiAKKyNkZWZpbmUg X19IQVZFX0FSQ0hfUFRFX1NBTUUKICNkZWZpbmUgcHRlX3NhbWUoQSxCKQkoKChwdGVfdmFsKEEp IF4gcHRlX3ZhbChCKSkgJiB+X1BBR0VfSFBURUZMQUdTKSA9PSAwKQogCiBleHRlcm4gdW5zaWdu ZWQgbG9uZyBpb3JlbWFwX2JvdCwgaW9yZW1hcF9iYXNlOwpAQCAtNTUzLDE0ICs1NzEsOCBAQAog CXJldHVybiBwdDsKIH0KIAotI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwotCi0jZGVmaW5lIF9f SEFWRV9BUkNIX1BURVBfVEVTVF9BTkRfQ0xFQVJfWU9VTkcKLSNkZWZpbmUgX19IQVZFX0FSQ0hf UFRFUF9URVNUX0FORF9DTEVBUl9ESVJUWQotI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVQX0dFVF9B TkRfQ0xFQVIKLSNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9TRVRfV1JQUk9URUNUCi0jZGVmaW5l IF9fSEFWRV9BUkNIX1BURVBfTUtESVJUWQotI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVfU0FNRQog I2luY2x1ZGUgPGFzbS1nZW5lcmljL3BndGFibGUuaD4KKworI2VuZGlmIC8qIF9fQVNTRU1CTFlf XyAqLwogCiAjZW5kaWYgLyogX1BQQzY0X1BHVEFCTEVfSCAqLwo= --Multipart=_Wed__23_Feb_2005_20_07_19_-0800_ye/USpT3nmu=yibW--