From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751315AbVKIIhx (ORCPT ); Wed, 9 Nov 2005 03:37:53 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751325AbVKIIhx (ORCPT ); Wed, 9 Nov 2005 03:37:53 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:13257 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1751315AbVKIIhw (ORCPT ); Wed, 9 Nov 2005 03:37:52 -0500 Message-Id: <4371C3AA.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 09:38:50 +0100 From: "Jan Beulich" To: Subject: [PATCH 2/2] i386: double fault adjustment References: <4370AEE1.76F0.0078.0@novell.com> <4370E5FB.76F0.0078.0@novell.com> <4371C360.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part65475A8A.0__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part65475A8A.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Make the double fault handler use CPU-specific stacks. Add some abstraction to simplify future change of other exception handlers to go through task gates. Change the pointer validity checks in the double fault handler to account for the fact that both GDT and TSS aren't in static kernel space anymore. Signed-Off-By: Jan Beulich (actual patch attached) --=__Part65475A8A.0__= Content-Type: application/octet-stream; name="linux-2.6.14-i386-doublefault.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2.6.14-i386-doublefault.patch" TWFrZSB0aGUgZG91YmxlIGZhdWx0IGhhbmRsZXIgdXNlIENQVS1zcGVjaWZpYyBzdGFja3MuIEFk ZCBzb21lCmFic3RyYWN0aW9uIHRvIHNpbXBsaWZ5IGZ1dHVyZSBjaGFuZ2Ugb2Ygb3RoZXIgZXhj ZXB0aW9uIGhhbmRsZXJzIHRvIGdvCnRocm91Z2ggdGFzayBnYXRlcy4gQ2hhbmdlIHRoZSBwb2lu dGVyIHZhbGlkaXR5IGNoZWNrcyBpbiB0aGUgZG91YmxlCmZhdWx0IGhhbmRsZXIgdG8gYWNjb3Vu dCBmb3IgdGhlIGZhY3QgdGhhdCBib3RoIEdEVCBhbmQgVFNTIGFyZW4ndCBpbgpzdGF0aWMga2Vy bmVsIHNwYWNlIGFueW1vcmUuCgpUaGlzIHBhdGNoIGRlcGVuZHMgdXBvbiB0aGUgcHJlc2VuY2Ug b2YgVEhSRUFEX09SREVSLCBhcyBhZGRlZCBpbiBhCnByZXZpb3VzbHkgc3VibWl0dGVkIHBhdGNo LgoKU2lnbmVkLU9mZi1CeTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQG5vdmVsbC5jb20+CgotLS0g Mi42LjE0L2FyY2gvaTM4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCTIwMDUtMTAtMjggMDI6MDI6MDgu MDAwMDAwMDAwICswMjAwCisrKyAyLjYuMTQtaTM4Ni1kb3VibGVmYXVsdC9hcmNoL2kzODYva2Vy bmVsL2NwdS9jb21tb24uYwkyMDA1LTExLTA0IDE2OjE5OjMyLjAwMDAwMDAwMCArMDEwMApAQCAt NCw2ICs0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVt Lmg+CiAjaW5jbHVkZSA8YXNtL3NlbWFwaG9yZS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3Iu aD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgpAQCAtNTcxLDYgKzU3Miw3IEBAIHZvaWQgX19pbml0 IGVhcmx5X2NwdV9pbml0KHZvaWQpCiB2b2lkIF9fZGV2aW5pdCBjcHVfaW5pdCh2b2lkKQogewog CWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJdW5zaWduZWQgaTsKIAlzdHJ1Y3QgdHNz X3N0cnVjdCAqIHQgPSAmcGVyX2NwdShpbml0X3RzcywgY3B1KTsKIAlzdHJ1Y3QgdGhyZWFkX3N0 cnVjdCAqdGhyZWFkID0gJmN1cnJlbnQtPnRocmVhZDsKIAlfX3UzMiBzdGsxNl9vZmYgPSAoX191 MzIpJnBlcl9jcHUoY3B1XzE2Yml0X3N0YWNrLCBjcHUpOwpAQCAtNjM1LDggKzYzNyw1NSBAQCB2 b2lkIF9fZGV2aW5pdCBjcHVfaW5pdCh2b2lkKQogCWxvYWRfVFJfZGVzYygpOwogCWxvYWRfTERU KCZpbml0X21tLmNvbnRleHQpOwogCi0JLyogU2V0IHVwIGRvdWJsZWZhdWx0IFRTUyBwb2ludGVy IGluIHRoZSBHRFQgKi8KLQlfX3NldF90c3NfZGVzYyhjcHUsIEdEVF9FTlRSWV9ET1VCTEVGQVVM VF9UU1MsICZkb3VibGVmYXVsdF90c3MpOworI2lmIEVYQ0VQVElPTl9TVEFDS19PUkRFUiA+IFRI UkVBRF9PUkRFUgorIyBlcnJvciBBc3NlcnRpb24gZmFpbGVkOiBFWENFUFRJT05fU1RBQ0tfT1JE RVIgPD0gVEhSRUFEX09SREVSCisjZW5kaWYKKwlmb3IgKGkgPSAwOyBpIDwgTl9FWENFUFRJT05f VFNTOyArK2kpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFjazsKKworCQkvKiBTZXQgdXAgZXhjZXB0 aW9uIGhhbmRsaW5nIFRTUyAqLworCQlleGNlcHRpb25fdHNzW2NwdV1baV0uZXNwMiA9IGNwdTsK KwkJZXhjZXB0aW9uX3Rzc1tjcHVdW2ldLmVzaSA9ICh1bnNpZ25lZCBsb25nKSZleGNlcHRpb25f dHNzW2NwdV1baV07CisKKwkJLyogU2V0IHVwIGV4Y2VwdGlvbiBoYW5kbGluZyBzdGFja3MgKi8K KyNpZmRlZiBDT05GSUdfU01QCisJCWlmIChjcHUpIHsKKwkJCXN0YWNrID0gX19nZXRfZnJlZV9w YWdlcyhHRlBfQVRPTUlDLCBUSFJFQURfT1JERVIpOworCQkJaWYgKCFzdGFjaykKKwkJCQlwYW5p YygiQ2Fubm90IGFsbG9jYXRlIGV4Y2VwdGlvbiBzdGFjayAldSAlZFxuIiwKKwkJCQkgICAgICBp LAorCQkJCSAgICAgIGNwdSk7CisJCX0KKwkJZWxzZQorI2VuZGlmCisJCQlzdGFjayA9ICh1bnNp Z25lZCBsb25nKV9fYWxsb2NfYm9vdG1lbShFWENFUFRJT05fU1RLU1osCisJCQkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSFJFQURfU0laRSwKKwkJCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcGEoTUFYX0RNQV9BRERSRVNTKSk7CisJCXN0 YWNrICs9IEVYQ0VQVElPTl9TVEtTWjsKKwkJZXhjZXB0aW9uX3Rzc1tjcHVdW2ldLmVzcCA9IHN0 YWNrOworCQlleGNlcHRpb25fdHNzW2NwdV1baV0uZXNwMCA9IHN0YWNrOworI2lmZGVmIENPTkZJ R19TTVAKKwkJaWYgKGNwdSkgeworCQkJdW5zaWduZWQgajsKKworCQkJZm9yIChqID0gRVhDRVBU SU9OX1NUQUNLX09SREVSOyBqIDwgVEhSRUFEX09SREVSOyArK2opIHsKKwkJCQkvKiBzZXRfcGFn ZV9yZWZzIHNldHMgdGhlIHBhZ2UgY291bnQgb25seSBmb3IgdGhlIGZpcnN0CisJCQkJICAgcGFn ZSwgYnV0IHNpbmNlIHdlIHNwbGl0IHRoZSBsYXJnZXItb3JkZXIgcGFnZSBoZXJlLAorCQkJCSAg IHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBwYWdlIGNvdW50IGJlZm9yZSBmcmVlaW5nIHRoZQorCQkJ CSAgIHBpZWNlcy4gKi8KKwkJCQlzdHJ1Y3QgcGFnZSAqIHBhZ2UgPSB2aXJ0X3RvX3BhZ2UoKHZv aWQgKilzdGFjayk7CisKKwkJCQlCVUdfT04ocGFnZV9jb3VudChwYWdlKSk7CisJCQkJc2V0X3Bh Z2VfY291bnQocGFnZSwgMSk7CisJCQkJZnJlZV9wYWdlcyhzdGFjaywgaik7CisJCQkJc3RhY2sg Kz0gKFBBR0VfU0laRSA8PCBqKTsKKwkJCX0KKwkJfQorI2VuZGlmCisKKwkJLyogU2V0IHVwIGV4 Y2VwdGlvbiBoYW5kbGluZyBUU1MgcG9pbnRlciBpbiB0aGUgR0RUICovCisJCV9fc2V0X3Rzc19k ZXNjKGNwdSwgR0RUX0VOVFJZX0VYQ0VQVElPTl9UU1MgKyBpLCAmZXhjZXB0aW9uX3Rzc1tjcHVd W2ldKTsKKwl9CiAKIAkvKiBDbGVhciAlZnMgYW5kICVncy4gKi8KIAlhc20gdm9sYXRpbGUgKCJ4 b3JsICVlYXgsICVlYXg7IG1vdmwgJWVheCwgJWZzOyBtb3ZsICVlYXgsICVncyIpOwotLS0gMi42 LjE0L2FyY2gvaTM4Ni9rZXJuZWwvZG91YmxlZmF1bHQuYwkyMDA1LTEwLTI4IDAyOjAyOjA4LjAw MDAwMDAwMCArMDIwMAorKysgMi42LjE0LWkzODYtZG91YmxlZmF1bHQvYXJjaC9pMzg2L2tlcm5l bC9kb3VibGVmYXVsdC5jCTIwMDUtMTEtMDQgMTY6MTk6MzIuMDAwMDAwMDAwICswMTAwCkBAIC05 LDEzICs5LDExIEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9k ZXNjLmg+CiAKLSNkZWZpbmUgRE9VQkxFRkFVTFRfU1RBQ0tTSVpFICgxMDI0KQotc3RhdGljIHVu c2lnbmVkIGxvbmcgZG91YmxlZmF1bHRfc3RhY2tbRE9VQkxFRkFVTFRfU1RBQ0tTSVpFXTsKLSNk ZWZpbmUgU1RBQ0tfU1RBUlQgKHVuc2lnbmVkIGxvbmcpKGRvdWJsZWZhdWx0X3N0YWNrK0RPVUJM RUZBVUxUX1NUQUNLU0laRSkKK2V4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuOworI2Rl ZmluZSBwdHJfb2soeCwgbCkgKCh4KSA+PSBQQUdFX09GRlNFVCBcCisgICAgICAgICAgICAgICAg ICAgICAgJiYgKHgpICsgKGwpIDw9IFBBR0VfT0ZGU0VUICsgbWF4X2xvd19wZm4gKiBQQUdFX1NJ WkUgLSAxKQogCi0jZGVmaW5lIHB0cl9vayh4KSAoKHgpID4gUEFHRV9PRkZTRVQgJiYgKHgpIDwg UEFHRV9PRkZTRVQgKyAweDEwMDAwMDApCi0KLXN0YXRpYyB2b2lkIGRvdWJsZWZhdWx0X2ZuKHZv aWQpCit2b2lkIGRvdWJsZWZhdWx0X2ZuKHZvaWQpCiB7CiAJc3RydWN0IFhndF9kZXNjX3N0cnVj dCBnZHRfZGVzYyA9IHswLCAwfTsKIAl1bnNpZ25lZCBsb25nIGdkdCwgdHNzOwpAQCAtMjMsNDMg KzIxLDI2IEBAIHN0YXRpYyB2b2lkIGRvdWJsZWZhdWx0X2ZuKHZvaWQpCiAJc3RvcmVfZ2R0KCZn ZHRfZGVzYyk7CiAJZ2R0ID0gZ2R0X2Rlc2MuYWRkcmVzczsKIAotCXByaW50aygiZG91YmxlIGZh dWx0LCBnZHQgYXQgJTA4bHggWyVkIGJ5dGVzXVxuIiwgZ2R0LCBnZHRfZGVzYy5zaXplKTsKKwlw cmludGsoImRvdWJsZSBmYXVsdCwgZ2R0IGF0ICUwOGx4IFslZCBieXRlc11cbiIsIGdkdCwgZ2R0 X2Rlc2Muc2l6ZSArIDEpOwogCi0JaWYgKHB0cl9vayhnZHQpKSB7CisJaWYgKHB0cl9vayhnZHQs IGdkdF9kZXNjLnNpemUpKSB7CiAJCWdkdCArPSBHRFRfRU5UUllfVFNTIDw8IDM7CiAJCXRzcyA9 ICoodTE2ICopKGdkdCsyKTsKIAkJdHNzICs9ICoodTggKikoZ2R0KzQpIDw8IDE2OwogCQl0c3Mg Kz0gKih1OCAqKShnZHQrNykgPDwgMjQ7CiAJCXByaW50aygiZG91YmxlIGZhdWx0LCB0c3MgYXQg JTA4bHhcbiIsIHRzcyk7CiAKLQkJaWYgKHB0cl9vayh0c3MpKSB7CisJCWlmIChwdHJfb2sodHNz LCAqKHUxNiAqKWdkdCkpIHsKIAkJCXN0cnVjdCB0c3Nfc3RydWN0ICp0ID0gKHN0cnVjdCB0c3Nf c3RydWN0ICopdHNzOwogCiAJCQlwcmludGsoImVpcCA9ICUwOGx4LCBlc3AgPSAlMDhseFxuIiwg dC0+ZWlwLCB0LT5lc3ApOwogCiAJCQlwcmludGsoImVheCA9ICUwOGx4LCBlYnggPSAlMDhseCwg ZWN4ID0gJTA4bHgsIGVkeCA9ICUwOGx4XG4iLAogCQkJCXQtPmVheCwgdC0+ZWJ4LCB0LT5lY3gs IHQtPmVkeCk7Ci0JCQlwcmludGsoImVzaSA9ICUwOGx4LCBlZGkgPSAlMDhseFxuIiwKLQkJCQl0 LT5lc2ksIHQtPmVkaSk7CisJCQlwcmludGsoImVzaSA9ICUwOGx4LCBlZGkgPSAlMDhseCwgZWJw ID0gJTA4bHhcbiIsCisJCQkJdC0+ZXNpLCB0LT5lZGksIHQtPmVicCk7CiAJCX0KIAl9CiAKIAlm b3IgKDs7KSAvKiBub3RoaW5nICovOwogfQotCi1zdHJ1Y3QgdHNzX3N0cnVjdCBkb3VibGVmYXVs dF90c3MgX19jYWNoZWxpbmVfYWxpZ25lZCA9IHsKLQkuZXNwMAkJPSBTVEFDS19TVEFSVCwKLQku c3MwCQk9IF9fS0VSTkVMX0RTLAotCS5sZHQJCT0gMCwKLQkuaW9fYml0bWFwX2Jhc2UJPSBJTlZB TElEX0lPX0JJVE1BUF9PRkZTRVQsCi0KLQkuZWlwCQk9ICh1bnNpZ25lZCBsb25nKSBkb3VibGVm YXVsdF9mbiwKLQkuZWZsYWdzCQk9IFg4Nl9FRkxBR1NfU0YgfCAweDIsCS8qIDB4MiBiaXQgaXMg YWx3YXlzIHNldCAqLwotCS5lc3AJCT0gU1RBQ0tfU1RBUlQsCi0JLmVzCQk9IF9fVVNFUl9EUywK LQkuY3MJCT0gX19LRVJORUxfQ1MsCi0JLnNzCQk9IF9fS0VSTkVMX0RTLAotCS5kcwkJPSBfX1VT RVJfRFMsCi0KLQkuX19jcjMJCT0gX19wYShzd2FwcGVyX3BnX2RpcikKLX07Ci0tLSAyLjYuMTQv YXJjaC9pMzg2L2tlcm5lbC9oZWFkLlMJMjAwNS0xMC0yOCAwMjowMjowOC4wMDAwMDAwMDAgKzAy MDAKKysrIDIuNi4xNC1pMzg2LWRvdWJsZWZhdWx0L2FyY2gvaTM4Ni9rZXJuZWwvaGVhZC5TCTIw MDUtMTEtMDQgMTY6NDc6MDIuMDAwMDAwMDAwICswMTAwCkBAIC00NzksOSArNDc5LDkgQEAgRU5U UlkoYm9vdF9nZHRfdGFibGUpCiAJLnF1YWQgMHgwMGNmOTIwMDAwMDBmZmZmCS8qIGtlcm5lbCA0 R0IgZGF0YSBhdCAweDAwMDAwMDAwICovCiAKIC8qCi0gKiBUaGUgR2xvYmFsIERlc2NyaXB0b3Ig VGFibGUgY29udGFpbnMgMjggcXVhZHdvcmRzLCBwZXItQ1BVLgorICogVGhlIEdsb2JhbCBEZXNj cmlwdG9yIFRhYmxlIGNvbnRhaW5zIGF0IGxlYXN0IDMxIHF1YWR3b3JkcywgcGVyLUNQVS4KICAq LwotCS5hbGlnbiBQQUdFX1NJWkVfYXNtCisJLmFsaWduIEwxX0NBQ0hFX0JZVEVTCiBFTlRSWShj cHVfZ2R0X3RhYmxlKQogCS5xdWFkIDB4MDAwMDAwMDAwMDAwMDAwMAkvKiBOVUxMIGRlc2NyaXB0 b3IgKi8KIAkucXVhZCAweDAwMDAwMDAwMDAwMDAwMDAJLyogMHgwYiByZXNlcnZlZCAqLwpAQCAt NTIzLDUgKzUyMyw2IEBAIEVOVFJZKGNwdV9nZHRfdGFibGUpCiAJLnF1YWQgMHgwMDAwMDAwMDAw MDAwMDAwCS8qIDB4ZTAgLSB1bnVzZWQgKi8KIAkucXVhZCAweDAwMDAwMDAwMDAwMDAwMDAJLyog MHhlOCAtIHVudXNlZCAqLwogCS5xdWFkIDB4MDAwMDAwMDAwMDAwMDAwMAkvKiAweGYwIC0gdW51 c2VkICovCi0JLnF1YWQgMHgwMDAwMDAwMDAwMDAwMDAwCS8qIDB4ZjggLSBHRFQgZW50cnkgMzE6 IGRvdWJsZS1mYXVsdCBUU1MgKi8KLQorCS8qIFJlbWFpbmluZyBlbnRyaWVzIHJlcHJlc2VudCBU U1NlcyBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyBhbmQKKwkgICBhcmUgcnVuLXRpbWUgaW5pdGlh bGl6ZWQuICovCisJLmZpbGwgR0RUX0VOVFJJRVMgLSAoLiAtIGNwdV9nZHRfdGFibGUpIC8gOCwg OCwgMAotLS0gMi42LjE0L2FyY2gvaTM4Ni9rZXJuZWwvdHJhcHMuYwkyMDA1LTEwLTI4IDAyOjAy OjA4LjAwMDAwMDAwMCArMDIwMAorKysgMi42LjE0LWkzODYtZG91YmxlZmF1bHQvYXJjaC9pMzg2 L2tlcm5lbC90cmFwcy5jCTIwMDUtMTEtMDQgMTc6MDA6NDcuMDAwMDAwMDAwICswMTAwCkBAIC02 MSw2ICs2MSwyNCBAQCBhc21saW5rYWdlIGludCBzeXN0ZW1fY2FsbCh2b2lkKTsKIHN0cnVjdCBk ZXNjX3N0cnVjdCBkZWZhdWx0X2xkdFtdID0geyB7IDAsIDAgfSwgeyAwLCAwIH0sIHsgMCwgMCB9 LAogCQl7IDAsIDAgfSwgeyAwLCAwIH0gfTsKIAordm9pZCBkb3VibGVmYXVsdF9mbih2b2lkKTsK Kworc3RydWN0IHRzc19zdHJ1Y3QgZXhjZXB0aW9uX3Rzc1tOUl9DUFVTXVtOX0VYQ0VQVElPTl9U U1NdIF9fY2FjaGVsaW5lX2FsaWduZWQgPSB7CisJWzAgLi4uIE5SX0NQVVMtMV0gPSB7CisJCVsw IC4uLiBOX0VYQ0VQVElPTl9UU1MtMV0gPSB7CisJCQkuY3MgICAgICAgPSBfX0tFUk5FTF9DUywK KwkJCS5zcyAgICAgICA9IF9fS0VSTkVMX0RTLAorCQkJLnNzMCAgICAgID0gX19LRVJORUxfRFMs CisJCQkuX19jcjMgICAgPSBfX3BhKHN3YXBwZXJfcGdfZGlyKSwKKwkJCS5pb19iaXRtYXBfYmFz ZSA9IElOVkFMSURfSU9fQklUTUFQX09GRlNFVCwKKwkJCS5kcyAgICAgICA9IF9fVVNFUl9EUywK KwkJCS5lcyAgICAgICA9IF9fVVNFUl9EUywKKwkJCS5lZmxhZ3MJICA9IFg4Nl9FRkxBR1NfU0Yg fCAweDIsIC8qIDB4MiBiaXQgaXMgYWx3YXlzIHNldCAqLworCQl9LAorCQlbRE9VQkxFRkFVTFRf VFNTXS5laXAgPSAodW5zaWduZWQgbG9uZylkb3VibGVmYXVsdF9mbgorCX0KK307CisKIC8qIERv IHdlIGlnbm9yZSBGUFUgaW50ZXJydXB0cyA/ICovCiBjaGFyIGlnbm9yZV9mcHVfaXJxID0gMDsK IApAQCAtMTA4Niw3ICsxMTA0LDcgQEAgdm9pZCBfX2luaXQgdHJhcF9pbml0KHZvaWQpCiAJc2V0 X3N5c3RlbV9nYXRlKDUsJmJvdW5kcyk7CiAJc2V0X3RyYXBfZ2F0ZSg2LCZpbnZhbGlkX29wKTsK IAlzZXRfdHJhcF9nYXRlKDcsJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKLQlzZXRfdGFza19nYXRl KDgsR0RUX0VOVFJZX0RPVUJMRUZBVUxUX1RTUyk7CisJc2V0X3Rhc2tfZ2F0ZSg4LEdEVF9FTlRS WV9FWENFUFRJT05fVFNTICsgRE9VQkxFRkFVTFRfVFNTKTsKIAlzZXRfdHJhcF9nYXRlKDksJmNv cHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7CiAJc2V0X3RyYXBfZ2F0ZSgxMCwmaW52YWxpZF9U U1MpOwogCXNldF90cmFwX2dhdGUoMTEsJnNlZ21lbnRfbm90X3ByZXNlbnQpOwotLS0gMi42LjE0 L2luY2x1ZGUvYXNtLWkzODYvcHJvY2Vzc29yLmgJMjAwNS0xMC0yOCAwMjowMjowOC4wMDAwMDAw MDAgKzAyMDAKKysrIDIuNi4xNC1pMzg2LWRvdWJsZWZhdWx0L2luY2x1ZGUvYXNtLWkzODYvcHJv Y2Vzc29yLmgJMjAwNS0xMS0wNyAxMDoyMDo0My4wMDAwMDAwMDAgKzAxMDAKQEAgLTg2LDcgKzg2 LDYgQEAgc3RydWN0IGNwdWluZm9feDg2IHsKIAogZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBi b290X2NwdV9kYXRhOwogZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBuZXdfY3B1X2RhdGE7Ci1l eHRlcm4gc3RydWN0IHRzc19zdHJ1Y3QgZG91YmxlZmF1bHRfdHNzOwogREVDTEFSRV9QRVJfQ1BV KHN0cnVjdCB0c3Nfc3RydWN0LCBpbml0X3Rzcyk7CiAKICNpZmRlZiBDT05GSUdfU01QCkBAIC00 ODAsNiArNDc5LDEyIEBAIHN0cnVjdCB0aHJlYWRfc3RydWN0IHsKIAkuaW9fYml0bWFwCT0geyBb IDAgLi4uIElPX0JJVE1BUF9MT05HU10gPSB+MCB9LAkJXAogfQogCisjZGVmaW5lIERPVUJMRUZB VUxUX1RTUyAwCisjZGVmaW5lIEVYQ0VQVElPTl9TVEFDS19PUkRFUiAwCisjZGVmaW5lIEVYQ0VQ VElPTl9TVEtTWiAoUEFHRV9TSVpFIDw8IEVYQ0VQVElPTl9TVEFDS19PUkRFUikKKworZXh0ZXJu IHN0cnVjdCB0c3Nfc3RydWN0IGV4Y2VwdGlvbl90c3NbTlJfQ1BVU11bTl9FWENFUFRJT05fVFNT XTsKKwogc3RhdGljIGlubGluZSB2b2lkIGxvYWRfZXNwMChzdHJ1Y3QgdHNzX3N0cnVjdCAqdHNz LCBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdGhyZWFkKQogewogCXRzcy0+ZXNwMCA9IHRocmVhZC0+ ZXNwMDsKLS0tIDIuNi4xNC9pbmNsdWRlL2FzbS1pMzg2L3NlZ21lbnQuaAkyMDA1LTEwLTI4IDAy OjAyOjA4LjAwMDAwMDAwMCArMDIwMAorKysgMi42LjE0LWkzODYtZG91YmxlZmF1bHQvaW5jbHVk ZS9hc20taTM4Ni9zZWdtZW50LmgJMjAwNS0xMS0wOCAwOToxNjoxNy4wMDAwMDAwMDAgKzAxMDAK QEAgLTQzLDcgKzQzLDggQEAKICAqICAyOCAtIHVudXNlZAogICogIDI5IC0gdW51c2VkCiAgKiAg MzAgLSB1bnVzZWQKLSAqICAzMSAtIFRTUyBmb3IgZG91YmxlIGZhdWx0IGhhbmRsZXIKKyAqICAz MSAtIFRTUyBmb3IgZmlyc3QgZXhjZXB0aW9uIGhhbmRsZXIgKGRvdWJsZSBmYXVsdCkKKyAqICAz MisgIFRTU2VzIGZvciBmdXJ0aGVyIGV4Y2VwdGlvbiBoYW5kbGVycwogICovCiAjZGVmaW5lIEdE VF9FTlRSWV9UTFNfRU5UUklFUwkzCiAjZGVmaW5lIEdEVF9FTlRSWV9UTFNfTUlOCTYKQEAgLTc0 LDEyICs3NSwxNCBAQAogI2RlZmluZSBHRFRfRU5UUllfRVNQRklYX1NTCQkoR0RUX0VOVFJZX0tF Uk5FTF9CQVNFICsgMTQpCiAjZGVmaW5lIF9fRVNQRklYX1NTIChHRFRfRU5UUllfRVNQRklYX1NT ICogOCkKIAotI2RlZmluZSBHRFRfRU5UUllfRE9VQkxFRkFVTFRfVFNTCTMxCisjZGVmaW5lIEdE VF9FTlRSWV9FWENFUFRJT05fVFNTCTMxCisjZGVmaW5lIERPVUJMRUZBVUxUX1RTUyAwCisjZGVm aW5lIE5fRVhDRVBUSU9OX1RTUyAxCiAKIC8qCi0gKiBUaGUgR0RUIGhhcyAzMiBlbnRyaWVzCisg KiBUaGUgR0RUIGhhcyAzMisgZW50cmllcy4KICAqLwotI2RlZmluZSBHRFRfRU5UUklFUyAzMgor I2RlZmluZSBHRFRfRU5UUklFUyAoMzEgKyBOX0VYQ0VQVElPTl9UU1MpCiAKICNkZWZpbmUgR0RU X1NJWkUgKEdEVF9FTlRSSUVTICogOCkKIApAQCAtOTIsOSArOTUsNyBAQAogI2RlZmluZSBfX0JP T1RfRFMJKEdEVF9FTlRSWV9CT09UX0RTICogOCkKIAogLyoKLSAqIFRoZSBpbnRlcnJ1cHQgZGVz Y3JpcHRvciB0YWJsZSBoYXMgcm9vbSBmb3IgMjU2IGlkdCdzLAotICogdGhlIGdsb2JhbCBkZXNj cmlwdG9yIHRhYmxlIGlzIGRlcGVuZGVudCBvbiB0aGUgbnVtYmVyCi0gKiBvZiB0YXNrcyB3ZSBj YW4gaGF2ZS4uCisgKiBUaGUgaW50ZXJydXB0IGRlc2NyaXB0b3IgdGFibGUgaGFzIHJvb20gZm9y IDI1NiBpZHQncy4KICAqLwogI2RlZmluZSBJRFRfRU5UUklFUyAyNTYKIAo= --=__Part65475A8A.0__=--