From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fmr03.intel.com ([143.183.121.5]:51098 "EHLO hermes.sc.intel.com") by vger.kernel.org with ESMTP id S262208AbUF3TDo (ORCPT ); Wed, 30 Jun 2004 15:03:44 -0400 Received: from talaria.sc.intel.com (talaria.sc.intel.com [10.3.253.5]) by hermes.sc.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i5UJ4q3Q002582 for ; Wed, 30 Jun 2004 19:04:53 GMT Received: from [143.183.130.155] (adsharma-desk.amr.corp.intel.com [143.183.130.155]) by talaria.sc.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with ESMTP id i5UJ4vbg025592 for ; Wed, 30 Jun 2004 19:04:57 GMT Message-ID: <40E30E8F.3000601@intel.com> Date: Wed, 30 Jun 2004 12:03:43 -0700 From: Arun Sharma MIME-Version: 1.0 Subject: compat_sys_adjtimex Content-Type: multipart/mixed; boundary="------------000501030400050909020302" To: linux-arch@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------000501030400050909020302 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit This system call seems to be duplicated in many architectures. Here's a patch which moves it to kernel/compat.c We didn't touch ppc64, because it seems to be different. We've tested this on ia64 with LTP. -Arun --------------000501030400050909020302 Content-Type: text/plain; name="compat_sys_adjtimex.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="compat_sys_adjtimex.patch" VGhpcyBwYXRjaCBtb3ZlcyBzeXMzMl9hZGp0aW1leCBpbiA2IGFyY2hzIHRvIGtlcm5lbC9j b21wYXQuYy4KClNpZ25lZC1vZmYtYnk6IEdvcmRvbiBKaW4gPGdvcmRvbi5qaW5AaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBBcnVuIFNoYXJtYSA8YXJ1bi5zaGFybWFAaW50ZWwuY29t PgoKLS0tCiBhcmNoL2lhNjQvaWEzMi9pYTMyX2VudHJ5LlMgICAgICAgIHwgICAgMiAKIGFy Y2gvaWE2NC9pYTMyL3N5c19pYTMyLmMgICAgICAgICAgfCAgIDc0IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogYXJjaC9taXBzL2tlcm5lbC9saW51eDMyLmMgICAg ICAgICB8ICAgNzMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gv bWlwcy9rZXJuZWwvc2NhbGw2NC1uMzIuUyAgICAgfCAgICAyIAogYXJjaC9taXBzL2tlcm5l bC9zY2FsbDY0LW8zMi5TICAgICB8ICAgIDIgCiBhcmNoL3BhcmlzYy9rZXJuZWwvc3lzX3Bh cmlzYzMyLmMgIHwgICA1OCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBhcmNoL3Bh cmlzYy9rZXJuZWwvc3lzY2FsbF90YWJsZS5TIHwgICAgMiAKIGFyY2gvczM5MC9rZXJuZWwv Y29tcGF0X2xpbnV4LmMgICAgfCAgIDczIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBhcmNoL3MzOTAva2VybmVsL2NvbXBhdF93cmFwcGVyLlMgIHwgICAgOCArLS0K IGFyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMuUyAgICAgICAgfCAgICAyIAogYXJjaC9zcGFy YzY0L2tlcm5lbC9zeXNfc3BhcmMzMi5jICB8ICAgNzMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGFyY2gvc3BhcmM2NC9rZXJuZWwvc3lzdGJscy5TICAgICAgfCAg ICAyIAogYXJjaC94ODZfNjQvaWEzMi9pYTMyZW50cnkuUyAgICAgICB8ICAgIDIgCiBhcmNo L3g4Nl82NC9pYTMyL3N5c19pYTMyLmMgICAgICAgIHwgICA3NiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L2NvbXBhdC5oICAgICAgICAg ICAgIHwgICAxNSArKysrKysrCiBrZXJuZWwvY29tcGF0LmMgICAgICAgICAgICAgICAgICAg IHwgICA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxNiBmaWxlcyBjaGFuZ2Vk LCA4NCBpbnNlcnRpb25zKCspLCA0MzggZGVsZXRpb25zKC0pCgpkaWZmIC1wdXJOIGxpbnV4 LTIuNi43L2FyY2gvaWE2NC9pYTMyL2lhMzJfZW50cnkuUyBsaW51eC0yLjYuNy1hZGp0aW1l eC9hcmNoL2lhNjQvaWEzMi9pYTMyX2VudHJ5LlMKLS0tIGxpbnV4LTIuNi43L2FyY2gvaWE2 NC9pYTMyL2lhMzJfZW50cnkuUwkyMDA0LTA2LTIzIDE3OjI5OjE1LjAwMDAwMDAwMCArMDgw MAorKysgbGludXgtMi42LjctYWRqdGltZXgvYXJjaC9pYTY0L2lhMzIvaWEzMl9lbnRyeS5T CTIwMDQtMDYtMzAgMDk6MjY6MjQuMDAwMDAwMDAwICswODAwCkBAIC0zMzIsNyArMzMyLDcg QEAgaWEzMl9zeXNjYWxsX3RhYmxlOgogCWRhdGE4IHN5c19zZXRkb21haW5uYW1lCiAJZGF0 YTggc3lzMzJfbmV3dW5hbWUKIAlkYXRhOCBzeXMzMl9tb2RpZnlfbGR0Ci0JZGF0YTggc3lz X25pX3N5c2NhbGwJLyogYWRqdGltZXggKi8KKwlkYXRhOCBjb21wYXRfc3lzX2FkanRpbWV4 CiAJZGF0YTggc3lzMzJfbXByb3RlY3QJICAvKiAxMjUgKi8KIAlkYXRhOCBjb21wYXRfc3lz X3NpZ3Byb2NtYXNrCiAJZGF0YTggc3lzX25pX3N5c2NhbGwJLyogY3JlYXRlX21vZHVsZSAq LwpkaWZmIC1wdXJOIGxpbnV4LTIuNi43L2FyY2gvaWE2NC9pYTMyL3N5c19pYTMyLmMgbGlu dXgtMi42LjctYWRqdGltZXgvYXJjaC9pYTY0L2lhMzIvc3lzX2lhMzIuYwotLS0gbGludXgt Mi42LjcvYXJjaC9pYTY0L2lhMzIvc3lzX2lhMzIuYwkyMDA0LTA2LTIzIDE3OjI5OjE1LjAw MDAwMDAwMCArMDgwMAorKysgbGludXgtMi42LjctYWRqdGltZXgvYXJjaC9pYTY0L2lhMzIv c3lzX2lhMzIuYwkyMDA0LTA2LTMwIDA5OjU2OjA5LjAwMDAwMDAwMCArMDgwMApAQCAtMjE5 OSw3OCArMjE5OSw0IEBAIHN5czMyX3NldHJlc2dpZChjb21wYXRfZ2lkX3QgcmdpZCwgY29t cGEKIAlzc2dpZCA9IChzZ2lkID09IChjb21wYXRfZ2lkX3QpLTEpID8gKChnaWRfdCktMSkg OiAoKGdpZF90KXNnaWQpOwogCXJldHVybiBzeXNfc2V0cmVzZ2lkKHNyZ2lkLCBzZWdpZCwg c3NnaWQpOwogfQotCi0vKiBIYW5kbGUgYWRqdGltZXggY29tcGF0aWJpbGl0eS4gKi8KLQot c3RydWN0IHRpbWV4MzIgewotCXUzMiBtb2RlczsKLQlzMzIgb2Zmc2V0LCBmcmVxLCBtYXhl cnJvciwgZXN0ZXJyb3I7Ci0JczMyIHN0YXR1cywgY29uc3RhbnQsIHByZWNpc2lvbiwgdG9s ZXJhbmNlOwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCB0aW1lOwotCXMzMiB0aWNrOwotCXMz MiBwcHNmcmVxLCBqaXR0ZXIsIHNoaWZ0LCBzdGFiaWw7Ci0JczMyIGppdGNudCwgY2FsY250 LCBlcnJjbnQsIHN0YmNudDsKLQlzMzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOyBzMzIg IDozMjsKLQlzMzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsKLQlzMzIg IDozMjsgczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsKLX07Ci0KLWV4dGVybiBpbnQg ZG9fYWRqdGltZXgoc3RydWN0IHRpbWV4ICopOwotCi1hc21saW5rYWdlIGxvbmcKLXN5czMy X2FkanRpbWV4KHN0cnVjdCB0aW1leDMyICp1dHApCi17Ci0Jc3RydWN0IHRpbWV4IHR4YzsK LQlpbnQgcmV0OwotCi0JbWVtc2V0KCZ0eGMsIDAsIHNpemVvZihzdHJ1Y3QgdGltZXgpKTsK LQotCWlmKGdldF91c2VyKHR4Yy5tb2RlcywgJnV0cC0+bW9kZXMpIHx8Ci0JICAgX19nZXRf dXNlcih0eGMub2Zmc2V0LCAmdXRwLT5vZmZzZXQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMu ZnJlcSwgJnV0cC0+ZnJlcSkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5tYXhlcnJvciwgJnV0 cC0+bWF4ZXJyb3IpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuZXN0ZXJyb3IsICZ1dHAtPmVz dGVycm9yKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLnN0YXR1cywgJnV0cC0+c3RhdHVzKSB8 fAotCSAgIF9fZ2V0X3VzZXIodHhjLmNvbnN0YW50LCAmdXRwLT5jb25zdGFudCkgfHwKLQkg ICBfX2dldF91c2VyKHR4Yy5wcmVjaXNpb24sICZ1dHAtPnByZWNpc2lvbikgfHwKLQkgICBf X2dldF91c2VyKHR4Yy50b2xlcmFuY2UsICZ1dHAtPnRvbGVyYW5jZSkgfHwKLQkgICBfX2dl dF91c2VyKHR4Yy50aW1lLnR2X3NlYywgJnV0cC0+dGltZS50dl9zZWMpIHx8Ci0JICAgX19n ZXRfdXNlcih0eGMudGltZS50dl91c2VjLCAmdXRwLT50aW1lLnR2X3VzZWMpIHx8Ci0JICAg X19nZXRfdXNlcih0eGMudGljaywgJnV0cC0+dGljaykgfHwKLQkgICBfX2dldF91c2VyKHR4 Yy5wcHNmcmVxLCAmdXRwLT5wcHNmcmVxKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLmppdHRl ciwgJnV0cC0+aml0dGVyKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLnNoaWZ0LCAmdXRwLT5z aGlmdCkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5zdGFiaWwsICZ1dHAtPnN0YWJpbCkgfHwK LQkgICBfX2dldF91c2VyKHR4Yy5qaXRjbnQsICZ1dHAtPmppdGNudCkgfHwKLQkgICBfX2dl dF91c2VyKHR4Yy5jYWxjbnQsICZ1dHAtPmNhbGNudCkgfHwKLQkgICBfX2dldF91c2VyKHR4 Yy5lcnJjbnQsICZ1dHAtPmVycmNudCkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5zdGJjbnQs ICZ1dHAtPnN0YmNudCkpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JcmV0ID0gZG9fYWRqdGlt ZXgoJnR4Yyk7Ci0KLQlpZihwdXRfdXNlcih0eGMubW9kZXMsICZ1dHAtPm1vZGVzKSB8fAot CSAgIF9fcHV0X3VzZXIodHhjLm9mZnNldCwgJnV0cC0+b2Zmc2V0KSB8fAotCSAgIF9fcHV0 X3VzZXIodHhjLmZyZXEsICZ1dHAtPmZyZXEpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMubWF4 ZXJyb3IsICZ1dHAtPm1heGVycm9yKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLmVzdGVycm9y LCAmdXRwLT5lc3RlcnJvcikgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5zdGF0dXMsICZ1dHAt PnN0YXR1cykgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5jb25zdGFudCwgJnV0cC0+Y29uc3Rh bnQpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMucHJlY2lzaW9uLCAmdXRwLT5wcmVjaXNpb24p IHx8Ci0JICAgX19wdXRfdXNlcih0eGMudG9sZXJhbmNlLCAmdXRwLT50b2xlcmFuY2UpIHx8 Ci0JICAgX19wdXRfdXNlcih0eGMudGltZS50dl9zZWMsICZ1dHAtPnRpbWUudHZfc2VjKSB8 fAotCSAgIF9fcHV0X3VzZXIodHhjLnRpbWUudHZfdXNlYywgJnV0cC0+dGltZS50dl91c2Vj KSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLnRpY2ssICZ1dHAtPnRpY2spIHx8Ci0JICAgX19w dXRfdXNlcih0eGMucHBzZnJlcSwgJnV0cC0+cHBzZnJlcSkgfHwKLQkgICBfX3B1dF91c2Vy KHR4Yy5qaXR0ZXIsICZ1dHAtPmppdHRlcikgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5zaGlm dCwgJnV0cC0+c2hpZnQpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuc3RhYmlsLCAmdXRwLT5z dGFiaWwpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuaml0Y250LCAmdXRwLT5qaXRjbnQpIHx8 Ci0JICAgX19wdXRfdXNlcih0eGMuY2FsY250LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAgX19w dXRfdXNlcih0eGMuZXJyY250LCAmdXRwLT5lcnJjbnQpIHx8Ci0JICAgX19wdXRfdXNlcih0 eGMuc3RiY250LCAmdXRwLT5zdGJjbnQpKQotCQlyZXQgPSAtRUZBVUxUOwotCi0JcmV0dXJu IHJldDsKLX0KICNlbmRpZiAvKiBOT1RZRVQgKi8KZGlmZiAtcHVyTiBsaW51eC0yLjYuNy9h cmNoL21pcHMva2VybmVsL2xpbnV4MzIuYyBsaW51eC0yLjYuNy1hZGp0aW1leC9hcmNoL21p cHMva2VybmVsL2xpbnV4MzIuYwotLS0gbGludXgtMi42LjcvYXJjaC9taXBzL2tlcm5lbC9s aW51eDMyLmMJMjAwNC0wNi0xNyAxNTo1NToyOC4wMDAwMDAwMDAgKzA4MDAKKysrIGxpbnV4 LTIuNi43LWFkanRpbWV4L2FyY2gvbWlwcy9rZXJuZWwvbGludXgzMi5jCTIwMDQtMDYtMzAg MTA6NDk6NTEuMDAwMDAwMDAwICswODAwCkBAIC0xMjU3LDc5ICsxMjU3LDYgQEAgb3V0Ogog CXJldHVybiBlcnI7CiB9CiAKLS8qIEhhbmRsZSBhZGp0aW1leCBjb21wYXRpYmlsaXR5LiAq LwotCi1zdHJ1Y3QgdGltZXgzMiB7Ci0JdTMyIG1vZGVzOwotCXMzMiBvZmZzZXQsIGZyZXEs IG1heGVycm9yLCBlc3RlcnJvcjsKLQlzMzIgc3RhdHVzLCBjb25zdGFudCwgcHJlY2lzaW9u LCB0b2xlcmFuY2U7Ci0Jc3RydWN0IGNvbXBhdF90aW1ldmFsIHRpbWU7Ci0JczMyIHRpY2s7 Ci0JczMyIHBwc2ZyZXEsIGppdHRlciwgc2hpZnQsIHN0YWJpbDsKLQlzMzIgaml0Y250LCBj YWxjbnQsIGVycmNudCwgc3RiY250OwotCXMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7 IHMzMiAgOjMyOwotCXMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOwot CXMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOwotfTsKLQotZXh0ZXJu IGludCBkb19hZGp0aW1leChzdHJ1Y3QgdGltZXggKik7Ci0KLWFzbWxpbmthZ2UgaW50IHN5 czMyX2FkanRpbWV4KHN0cnVjdCB0aW1leDMyICp1dHApCi17Ci0Jc3RydWN0IHRpbWV4IHR4 YzsKLQlpbnQgcmV0OwotCi0JbWVtc2V0KCZ0eGMsIDAsIHNpemVvZihzdHJ1Y3QgdGltZXgp KTsKLQotCWlmIChnZXRfdXNlcih0eGMubW9kZXMsICZ1dHAtPm1vZGVzKSB8fAotCSAgIF9f Z2V0X3VzZXIodHhjLm9mZnNldCwgJnV0cC0+b2Zmc2V0KSB8fAotCSAgIF9fZ2V0X3VzZXIo dHhjLmZyZXEsICZ1dHAtPmZyZXEpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMubWF4ZXJyb3Is ICZ1dHAtPm1heGVycm9yKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLmVzdGVycm9yLCAmdXRw LT5lc3RlcnJvcikgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5zdGF0dXMsICZ1dHAtPnN0YXR1 cykgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5jb25zdGFudCwgJnV0cC0+Y29uc3RhbnQpIHx8 Ci0JICAgX19nZXRfdXNlcih0eGMucHJlY2lzaW9uLCAmdXRwLT5wcmVjaXNpb24pIHx8Ci0J ICAgX19nZXRfdXNlcih0eGMudG9sZXJhbmNlLCAmdXRwLT50b2xlcmFuY2UpIHx8Ci0JICAg X19nZXRfdXNlcih0eGMudGltZS50dl9zZWMsICZ1dHAtPnRpbWUudHZfc2VjKSB8fAotCSAg IF9fZ2V0X3VzZXIodHhjLnRpbWUudHZfdXNlYywgJnV0cC0+dGltZS50dl91c2VjKSB8fAot CSAgIF9fZ2V0X3VzZXIodHhjLnRpY2ssICZ1dHAtPnRpY2spIHx8Ci0JICAgX19nZXRfdXNl cih0eGMucHBzZnJlcSwgJnV0cC0+cHBzZnJlcSkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5q aXR0ZXIsICZ1dHAtPmppdHRlcikgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5zaGlmdCwgJnV0 cC0+c2hpZnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuc3RhYmlsLCAmdXRwLT5zdGFiaWwp IHx8Ci0JICAgX19nZXRfdXNlcih0eGMuaml0Y250LCAmdXRwLT5qaXRjbnQpIHx8Ci0JICAg X19nZXRfdXNlcih0eGMuY2FsY250LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAgX19nZXRfdXNl cih0eGMuZXJyY250LCAmdXRwLT5lcnJjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuc3Ri Y250LCAmdXRwLT5zdGJjbnQpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCXJldCA9IGRvX2Fk anRpbWV4KCZ0eGMpOwotCi0JaWYgKHB1dF91c2VyKHR4Yy5tb2RlcywgJnV0cC0+bW9kZXMp IHx8Ci0JICAgX19wdXRfdXNlcih0eGMub2Zmc2V0LCAmdXRwLT5vZmZzZXQpIHx8Ci0JICAg X19wdXRfdXNlcih0eGMuZnJlcSwgJnV0cC0+ZnJlcSkgfHwKLQkgICBfX3B1dF91c2VyKHR4 Yy5tYXhlcnJvciwgJnV0cC0+bWF4ZXJyb3IpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuZXN0 ZXJyb3IsICZ1dHAtPmVzdGVycm9yKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLnN0YXR1cywg JnV0cC0+c3RhdHVzKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLmNvbnN0YW50LCAmdXRwLT5j b25zdGFudCkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5wcmVjaXNpb24sICZ1dHAtPnByZWNp c2lvbikgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy50b2xlcmFuY2UsICZ1dHAtPnRvbGVyYW5j ZSkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy50aW1lLnR2X3NlYywgJnV0cC0+dGltZS50dl9z ZWMpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMudGltZS50dl91c2VjLCAmdXRwLT50aW1lLnR2 X3VzZWMpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMudGljaywgJnV0cC0+dGljaykgfHwKLQkg ICBfX3B1dF91c2VyKHR4Yy5wcHNmcmVxLCAmdXRwLT5wcHNmcmVxKSB8fAotCSAgIF9fcHV0 X3VzZXIodHhjLmppdHRlciwgJnV0cC0+aml0dGVyKSB8fAotCSAgIF9fcHV0X3VzZXIodHhj LnNoaWZ0LCAmdXRwLT5zaGlmdCkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5zdGFiaWwsICZ1 dHAtPnN0YWJpbCkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5qaXRjbnQsICZ1dHAtPmppdGNu dCkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5jYWxjbnQsICZ1dHAtPmNhbGNudCkgfHwKLQkg ICBfX3B1dF91c2VyKHR4Yy5lcnJjbnQsICZ1dHAtPmVycmNudCkgfHwKLQkgICBfX3B1dF91 c2VyKHR4Yy5zdGJjbnQsICZ1dHAtPnN0YmNudCkpCi0JCXJldCA9IC1FRkFVTFQ7Ci0KLQly ZXR1cm4gcmV0OwotfQotCiBhc21saW5rYWdlIGludCBzeXMzMl9zZW5kZmlsZShpbnQgb3V0 X2ZkLCBpbnQgaW5fZmQsIGNvbXBhdF9vZmZfdCAqb2Zmc2V0LAogCXMzMiBjb3VudCkKIHsK ZGlmZiAtcHVyTiBsaW51eC0yLjYuNy9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbjMyLlMg bGludXgtMi42LjctYWRqdGltZXgvYXJjaC9taXBzL2tlcm5lbC9zY2FsbDY0LW4zMi5TCi0t LSBsaW51eC0yLjYuNy9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQtbjMyLlMJMjAwNC0wNi0x NyAxNTo1NToyOC4wMDAwMDAwMDAgKzA4MDAKKysrIGxpbnV4LTIuNi43LWFkanRpbWV4L2Fy Y2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1uMzIuUwkyMDA0LTA2LTMwIDEwOjUwOjU5LjAwMDAw MDAwMCArMDgwMApAQCAtMjcxLDcgKzI3MSw3IEBAIEVYUE9SVChzeXNuMzJfY2FsbF90YWJs ZSkKIAlQVFIJc3lzX3Bpdm90X3Jvb3QKIAlQVFIJc3lzMzJfc3lzY3RsCiAJUFRSCXN5c19w cmN0bAotCVBUUglzeXMzMl9hZGp0aW1leAorCVBUUgljb21wYXRfc3lzX2FkanRpbWV4CiAJ UFRSCWNvbXBhdF9zeXNfc2V0cmxpbWl0CQkvKiA2MTU1ICovCiAJUFRSCXN5c19jaHJvb3QK IAlQVFIJc3lzX3N5bmMKZGlmZiAtcHVyTiBsaW51eC0yLjYuNy9hcmNoL21pcHMva2VybmVs L3NjYWxsNjQtbzMyLlMgbGludXgtMi42LjctYWRqdGltZXgvYXJjaC9taXBzL2tlcm5lbC9z Y2FsbDY0LW8zMi5TCi0tLSBsaW51eC0yLjYuNy9hcmNoL21pcHMva2VybmVsL3NjYWxsNjQt bzMyLlMJMjAwNC0wNi0xNyAxNTo1NToyOC4wMDAwMDAwMDAgKzA4MDAKKysrIGxpbnV4LTIu Ni43LWFkanRpbWV4L2FyY2gvbWlwcy9rZXJuZWwvc2NhbGw2NC1vMzIuUwkyMDA0LTA2LTMw IDEwOjUxOjUxLjAwMDAwMDAwMCArMDgwMApAQCAtMzgyLDcgKzM4Miw3IEBAIG91dDoJanIJ cmEKIAlzeXMJc3lzX3NldGRvbWFpbm5hbWUgMgogCXN5cwlzeXMzMl9uZXd1bmFtZQkxCiAJ c3lzCXN5c19uaV9zeXNjYWxsCTAJLyogc3lzX21vZGlmeV9sZHQgKi8KLQlzeXMJc3lzMzJf YWRqdGltZXgJMQorCXN5cwljb21wYXRfc3lzX2FkanRpbWV4CTEKIAlzeXMJc3lzX21wcm90 ZWN0CTMJCQkvKiA0MTI1ICovCiAJc3lzCWNvbXBhdF9zeXNfc2lncHJvY21hc2sJMwogCXN5 cwlzeXNfbmlfc3lzY2FsbAkwCQkJLyogd2FzIGNyZWF0X21vZHVsZSAqLwpkaWZmIC1wdXJO IGxpbnV4LTIuNi43L2FyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxsX3RhYmxlLlMgbGludXgt Mi42LjctYWRqdGltZXgvYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxfdGFibGUuUwotLS0g bGludXgtMi42LjcvYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxfdGFibGUuUwkyMDA0LTA2 LTE3IDE1OjU1OjM3LjAwMDAwMDAwMCArMDgwMAorKysgbGludXgtMi42LjctYWRqdGltZXgv YXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGxfdGFibGUuUwkyMDA0LTA2LTMwIDEwOjU5OjEw LjAwMDAwMDAwMCArMDgwMApAQCAtMjA3LDcgKzIwNyw3IEBACiAJLyogc3RydWN0IHNvY2th ZGRyLi4uICovCiAJRU5UUllfU0FNRShyZWN2ZnJvbSkKIAkvKiBzdHJ1Y3QgdGltZXggY29u dGFpbnMgbG9uZ3MgKi8KLQlFTlRSWV9ESUZGKGFkanRpbWV4KQorCUVOVFJZX0NPTVAoYWRq dGltZXgpCiAJRU5UUllfU0FNRShtcHJvdGVjdCkJCS8qIDEyNSAqLwogCS8qIG9sZF9zaWdz ZXRfdCBmb3JjZWQgdG8gMzIgYml0cy4gIEJld2FyZSBnbGliYyBzaWdzZXRfdCAqLwogCUVO VFJZX0NPTVAoc2lncHJvY21hc2spCmRpZmYgLXB1ck4gbGludXgtMi42LjcvYXJjaC9wYXJp c2Mva2VybmVsL3N5c19wYXJpc2MzMi5jIGxpbnV4LTIuNi43LWFkanRpbWV4L2FyY2gvcGFy aXNjL2tlcm5lbC9zeXNfcGFyaXNjMzIuYwotLS0gbGludXgtMi42LjcvYXJjaC9wYXJpc2Mv a2VybmVsL3N5c19wYXJpc2MzMi5jCTIwMDQtMDYtMTcgMTU6NTU6MzcuMDAwMDAwMDAwICsw ODAwCisrKyBsaW51eC0yLjYuNy1hZGp0aW1leC9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzX3Bh cmlzYzMyLmMJMjAwNC0wNi0zMCAxMDo1ODoxNC4wMDAwMDAwMDAgKzA4MDAKQEAgLTU4NSw2 NCArNTg1LDYgQEAgYXNtbGlua2FnZSBpbnQgc3lzMzJfc2VuZGZpbGU2NChpbnQgb3V0Xwog CXJldHVybiByZXQ7CiB9CiAKLQotc3RydWN0IHRpbWV4MzIgewotCXVuc2lnbmVkIGludCBt b2RlczsJLyogbW9kZSBzZWxlY3RvciAqLwotCWludCBvZmZzZXQ7CQkvKiB0aW1lIG9mZnNl dCAodXNlYykgKi8KLQlpbnQgZnJlcTsJCS8qIGZyZXF1ZW5jeSBvZmZzZXQgKHNjYWxlZCBw cG0pICovCi0JaW50IG1heGVycm9yOwkJLyogbWF4aW11bSBlcnJvciAodXNlYykgKi8KLQlp bnQgZXN0ZXJyb3I7CQkvKiBlc3RpbWF0ZWQgZXJyb3IgKHVzZWMpICovCi0JaW50IHN0YXR1 czsJCS8qIGNsb2NrIGNvbW1hbmQvc3RhdHVzICovCi0JaW50IGNvbnN0YW50OwkJLyogcGxs IHRpbWUgY29uc3RhbnQgKi8KLQlpbnQgcHJlY2lzaW9uOwkJLyogY2xvY2sgcHJlY2lzaW9u ICh1c2VjKSAocmVhZCBvbmx5KSAqLwotCWludCB0b2xlcmFuY2U7CQkvKiBjbG9jayBmcmVx dWVuY3kgdG9sZXJhbmNlIChwcG0pCi0JCQkJICogKHJlYWQgb25seSkKLQkJCQkgKi8KLQlz dHJ1Y3QgY29tcGF0X3RpbWV2YWwgdGltZTsJLyogKHJlYWQgb25seSkgKi8KLQlpbnQgdGlj azsJCS8qIChtb2RpZmllZCkgdXNlY3MgYmV0d2VlbiBjbG9jayB0aWNrcyAqLwotCi0JaW50 IHBwc2ZyZXE7ICAgICAgICAgICAvKiBwcHMgZnJlcXVlbmN5IChzY2FsZWQgcHBtKSAocm8p ICovCi0JaW50IGppdHRlcjsgICAgICAgICAgICAvKiBwcHMgaml0dGVyICh1cykgKHJvKSAq LwotCWludCBzaGlmdDsgICAgICAgICAgICAgIC8qIGludGVydmFsIGR1cmF0aW9uIChzKSAo c2hpZnQpIChybykgKi8KLQlpbnQgc3RhYmlsOyAgICAgICAgICAgIC8qIHBwcyBzdGFiaWxp dHkgKHNjYWxlZCBwcG0pIChybykgKi8KLQlpbnQgaml0Y250OyAgICAgICAgICAgIC8qIGpp dHRlciBsaW1pdCBleGNlZWRlZCAocm8pICovCi0JaW50IGNhbGNudDsgICAgICAgICAgICAv KiBjYWxpYnJhdGlvbiBpbnRlcnZhbHMgKHJvKSAqLwotCWludCBlcnJjbnQ7ICAgICAgICAg ICAgLyogY2FsaWJyYXRpb24gZXJyb3JzIChybykgKi8KLQlpbnQgc3RiY250OyAgICAgICAg ICAgIC8qIHN0YWJpbGl0eSBsaW1pdCBleGNlZWRlZCAocm8pICovCi0KLQlpbnQgIDozMjsg aW50ICA6MzI7IGludCAgOjMyOyBpbnQgIDozMjsKLQlpbnQgIDozMjsgaW50ICA6MzI7IGlu dCAgOjMyOyBpbnQgIDozMjsKLQlpbnQgIDozMjsgaW50ICA6MzI7IGludCAgOjMyOyBpbnQg IDozMjsKLX07Ci0KLWFzbWxpbmthZ2UgbG9uZyBzeXMzMl9hZGp0aW1leChzdHJ1Y3QgdGlt ZXgzMiAqdHhjX3AzMikKLXsKLQlzdHJ1Y3QgdGltZXggdHhjOwotCXN0cnVjdCB0aW1leDMy IHQzMjsKLQlpbnQgcmV0OwotCWV4dGVybiBpbnQgZG9fYWRqdGltZXgoc3RydWN0IHRpbWV4 ICp0eGMpOwotCi0JaWYoY29weV9mcm9tX3VzZXIoJnQzMiwgdHhjX3AzMiwgc2l6ZW9mKHN0 cnVjdCB0aW1leDMyKSkpCi0JCXJldHVybiAtRUZBVUxUOwotI3VuZGVmIENQCi0jZGVmaW5l IENQKHgpIHR4Yy54ID0gdDMyLngKLQlDUChtb2Rlcyk7IENQKG9mZnNldCk7IENQKGZyZXEp OyBDUChtYXhlcnJvcik7IENQKGVzdGVycm9yKTsKLQlDUChzdGF0dXMpOyBDUChjb25zdGFu dCk7IENQKHByZWNpc2lvbik7IENQKHRvbGVyYW5jZSk7Ci0JQ1AodGltZS50dl9zZWMpOyBD UCh0aW1lLnR2X3VzZWMpOyBDUCh0aWNrKTsgQ1AocHBzZnJlcSk7IENQKGppdHRlcik7Ci0J Q1Aoc2hpZnQpOyBDUChzdGFiaWwpOyBDUChqaXRjbnQpOyBDUChjYWxjbnQpOyBDUChlcnJj bnQpOwotCUNQKHN0YmNudCk7Ci0JcmV0ID0gZG9fYWRqdGltZXgoJnR4Yyk7Ci0jdW5kZWYg Q1AKLSNkZWZpbmUgQ1AoeCkgdDMyLnggPSB0eGMueAotCUNQKG1vZGVzKTsgQ1Aob2Zmc2V0 KTsgQ1AoZnJlcSk7IENQKG1heGVycm9yKTsgQ1AoZXN0ZXJyb3IpOwotCUNQKHN0YXR1cyk7 IENQKGNvbnN0YW50KTsgQ1AocHJlY2lzaW9uKTsgQ1AodG9sZXJhbmNlKTsKLQlDUCh0aW1l LnR2X3NlYyk7IENQKHRpbWUudHZfdXNlYyk7IENQKHRpY2spOyBDUChwcHNmcmVxKTsgQ1Ao aml0dGVyKTsKLQlDUChzaGlmdCk7IENQKHN0YWJpbCk7IENQKGppdGNudCk7IENQKGNhbGNu dCk7IENQKGVycmNudCk7Ci0JQ1Aoc3RiY250KTsKLQlyZXR1cm4gY29weV90b191c2VyKHR4 Y19wMzIsICZ0MzIsIHNpemVvZihzdHJ1Y3QgdGltZXgzMikpID8gLUVGQVVMVCA6IHJldDsK LX0KLQotCiBzdHJ1Y3Qgc3lzaW5mbzMyIHsKIAlzMzIgdXB0aW1lOwogCXUzMiBsb2Fkc1sz XTsKZGlmZiAtcHVyTiBsaW51eC0yLjYuNy9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9saW51 eC5jIGxpbnV4LTIuNi43LWFkanRpbWV4L2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X2xpbnV4 LmMKLS0tIGxpbnV4LTIuNi43L2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X2xpbnV4LmMJMjAw NC0wNi0xNyAxNTo1NTozNy4wMDAwMDAwMDAgKzA4MDAKKysrIGxpbnV4LTIuNi43LWFkanRp bWV4L2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X2xpbnV4LmMJMjAwNC0wNi0zMCAxMTowNTo0 Ny4wMDAwMDAwMDAgKzA4MDAKQEAgLTkxNiw3OSArOTE2LDYgQEAgYXNtbGlua2FnZSBsb25n IHN5czMyX3NlbmRmaWxlNjQoaW50IG91dAogCXJldHVybiByZXQ7CiB9CiAKLS8qIEhhbmRs ZSBhZGp0aW1leCBjb21wYXRpYmlsaXR5LiAqLwotCi1zdHJ1Y3QgdGltZXgzMiB7Ci0JdTMy IG1vZGVzOwotCXMzMiBvZmZzZXQsIGZyZXEsIG1heGVycm9yLCBlc3RlcnJvcjsKLQlzMzIg c3RhdHVzLCBjb25zdGFudCwgcHJlY2lzaW9uLCB0b2xlcmFuY2U7Ci0Jc3RydWN0IGNvbXBh dF90aW1ldmFsIHRpbWU7Ci0JczMyIHRpY2s7Ci0JczMyIHBwc2ZyZXEsIGppdHRlciwgc2hp ZnQsIHN0YWJpbDsKLQlzMzIgaml0Y250LCBjYWxjbnQsIGVycmNudCwgc3RiY250OwotCXMz MiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOwotCXMzMiAgOjMyOyBzMzIg IDozMjsgczMyICA6MzI7IHMzMiAgOjMyOwotCXMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6 MzI7IHMzMiAgOjMyOwotfTsKLQotZXh0ZXJuIGludCBkb19hZGp0aW1leChzdHJ1Y3QgdGlt ZXggKik7Ci0KLWFzbWxpbmthZ2UgbG9uZyBzeXMzMl9hZGp0aW1leChzdHJ1Y3QgdGltZXgz MiAqdXRwKQotewotCXN0cnVjdCB0aW1leCB0eGM7Ci0JaW50IHJldDsKLQotCW1lbXNldCgm dHhjLCAwLCBzaXplb2Yoc3RydWN0IHRpbWV4KSk7Ci0KLQlpZihnZXRfdXNlcih0eGMubW9k ZXMsICZ1dHAtPm1vZGVzKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLm9mZnNldCwgJnV0cC0+ b2Zmc2V0KSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLmZyZXEsICZ1dHAtPmZyZXEpIHx8Ci0J ICAgX19nZXRfdXNlcih0eGMubWF4ZXJyb3IsICZ1dHAtPm1heGVycm9yKSB8fAotCSAgIF9f Z2V0X3VzZXIodHhjLmVzdGVycm9yLCAmdXRwLT5lc3RlcnJvcikgfHwKLQkgICBfX2dldF91 c2VyKHR4Yy5zdGF0dXMsICZ1dHAtPnN0YXR1cykgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5j b25zdGFudCwgJnV0cC0+Y29uc3RhbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMucHJlY2lz aW9uLCAmdXRwLT5wcmVjaXNpb24pIHx8Ci0JICAgX19nZXRfdXNlcih0eGMudG9sZXJhbmNl LCAmdXRwLT50b2xlcmFuY2UpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMudGltZS50dl9zZWMs ICZ1dHAtPnRpbWUudHZfc2VjKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLnRpbWUudHZfdXNl YywgJnV0cC0+dGltZS50dl91c2VjKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLnRpY2ssICZ1 dHAtPnRpY2spIHx8Ci0JICAgX19nZXRfdXNlcih0eGMucHBzZnJlcSwgJnV0cC0+cHBzZnJl cSkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5qaXR0ZXIsICZ1dHAtPmppdHRlcikgfHwKLQkg ICBfX2dldF91c2VyKHR4Yy5zaGlmdCwgJnV0cC0+c2hpZnQpIHx8Ci0JICAgX19nZXRfdXNl cih0eGMuc3RhYmlsLCAmdXRwLT5zdGFiaWwpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuaml0 Y250LCAmdXRwLT5qaXRjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuY2FsY250LCAmdXRw LT5jYWxjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuZXJyY250LCAmdXRwLT5lcnJjbnQp IHx8Ci0JICAgX19nZXRfdXNlcih0eGMuc3RiY250LCAmdXRwLT5zdGJjbnQpKQotCQlyZXR1 cm4gLUVGQVVMVDsKLQotCXJldCA9IGRvX2FkanRpbWV4KCZ0eGMpOwotCi0JaWYocHV0X3Vz ZXIodHhjLm1vZGVzLCAmdXRwLT5tb2RlcykgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5vZmZz ZXQsICZ1dHAtPm9mZnNldCkgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5mcmVxLCAmdXRwLT5m cmVxKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLm1heGVycm9yLCAmdXRwLT5tYXhlcnJvcikg fHwKLQkgICBfX3B1dF91c2VyKHR4Yy5lc3RlcnJvciwgJnV0cC0+ZXN0ZXJyb3IpIHx8Ci0J ICAgX19wdXRfdXNlcih0eGMuc3RhdHVzLCAmdXRwLT5zdGF0dXMpIHx8Ci0JICAgX19wdXRf dXNlcih0eGMuY29uc3RhbnQsICZ1dHAtPmNvbnN0YW50KSB8fAotCSAgIF9fcHV0X3VzZXIo dHhjLnByZWNpc2lvbiwgJnV0cC0+cHJlY2lzaW9uKSB8fAotCSAgIF9fcHV0X3VzZXIodHhj LnRvbGVyYW5jZSwgJnV0cC0+dG9sZXJhbmNlKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLnRp bWUudHZfc2VjLCAmdXRwLT50aW1lLnR2X3NlYykgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy50 aW1lLnR2X3VzZWMsICZ1dHAtPnRpbWUudHZfdXNlYykgfHwKLQkgICBfX3B1dF91c2VyKHR4 Yy50aWNrLCAmdXRwLT50aWNrKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLnBwc2ZyZXEsICZ1 dHAtPnBwc2ZyZXEpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuaml0dGVyLCAmdXRwLT5qaXR0 ZXIpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuc2hpZnQsICZ1dHAtPnNoaWZ0KSB8fAotCSAg IF9fcHV0X3VzZXIodHhjLnN0YWJpbCwgJnV0cC0+c3RhYmlsKSB8fAotCSAgIF9fcHV0X3Vz ZXIodHhjLmppdGNudCwgJnV0cC0+aml0Y250KSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLmNh bGNudCwgJnV0cC0+Y2FsY250KSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLmVycmNudCwgJnV0 cC0+ZXJyY250KSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLnN0YmNudCwgJnV0cC0+c3RiY250 KSkKLQkJcmV0ID0gLUVGQVVMVDsKLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0cnVjdCBfX3N5 c2N0bF9hcmdzMzIgewogCXUzMiBuYW1lOwogCWludCBubGVuOwpkaWZmIC1wdXJOIGxpbnV4 LTIuNi43L2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3dyYXBwZXIuUyBsaW51eC0yLjYuNy1h ZGp0aW1leC9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF93cmFwcGVyLlMKLS0tIGxpbnV4LTIu Ni43L2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3dyYXBwZXIuUwkyMDA0LTA2LTE3IDE1OjU1 OjM3LjAwMDAwMDAwMCArMDgwMAorKysgbGludXgtMi42LjctYWRqdGltZXgvYXJjaC9zMzkw L2tlcm5lbC9jb21wYXRfd3JhcHBlci5TCTIwMDQtMDYtMzAgMTE6MTE6MDAuMDAwMDAwMDAw ICswODAwCkBAIC01NDcsMTAgKzU0NywxMCBAQCBzeXMzMl9uZXd1bmFtZV93cmFwcGVyOgog CWxsZ3RyCSVyMiwlcjIJCQkjIHN0cnVjdCBuZXdfdXRzbmFtZSAqCiAJamcJczM5MHhfbmV3 dW5hbWUJCSMgYnJhbmNoIHRvIHN5c3RlbSBjYWxsCiAKLQkuZ2xvYmwgIHN5czMyX2FkanRp bWV4X3dyYXBwZXIgCi1zeXMzMl9hZGp0aW1leF93cmFwcGVyOgotCWxsZ3RyCSVyMiwlcjIJ CQkjIHN0cnVjdCB0aW1leF9lbXUzMSAqCi0JamcJc3lzMzJfYWRqdGltZXgJCSMgYnJhbmNo IHRvIHN5c3RlbSBjYWxsCisJLmdsb2JsICBjb21wYXRfc3lzX2FkanRpbWV4X3dyYXBwZXIK K2NvbXBhdF9zeXNfYWRqdGltZXhfd3JhcHBlcjoKKwlsbGd0cgklcjIsJXIyCQkJIyBzdHJ1 Y3QgY29tcGF0X3RpbWV4ICoKKwlqZwljb21wYXRfc3lzX2FkanRpbWV4CSMgYnJhbmNoIHRv IHN5c3RlbSBjYWxsCiAKIAkuZ2xvYmwgIHN5czMyX21wcm90ZWN0X3dyYXBwZXIgCiBzeXMz Ml9tcHJvdGVjdF93cmFwcGVyOgpkaWZmIC1wdXJOIGxpbnV4LTIuNi43L2FyY2gvczM5MC9r ZXJuZWwvc3lzY2FsbHMuUyBsaW51eC0yLjYuNy1hZGp0aW1leC9hcmNoL3MzOTAva2VybmVs L3N5c2NhbGxzLlMKLS0tIGxpbnV4LTIuNi43L2FyY2gvczM5MC9rZXJuZWwvc3lzY2FsbHMu UwkyMDA0LTA2LTE3IDE1OjU1OjM3LjAwMDAwMDAwMCArMDgwMAorKysgbGludXgtMi42Ljct YWRqdGltZXgvYXJjaC9zMzkwL2tlcm5lbC9zeXNjYWxscy5TCTIwMDQtMDYtMzAgMTE6MTE6 NTQuMDAwMDAwMDAwICswODAwCkBAIC0xMzIsNyArMTMyLDcgQEAgU1lTQ0FMTChzeXNfY2xv bmVfZ2x1ZSxzeXNfY2xvbmVfZ2x1ZSxzeQogU1lTQ0FMTChzeXNfc2V0ZG9tYWlubmFtZSxz eXNfc2V0ZG9tYWlubmFtZSxzeXMzMl9zZXRkb21haW5uYW1lX3dyYXBwZXIpCiBTWVNDQUxM KHN5c19uZXd1bmFtZSxzMzkweF9uZXd1bmFtZSxzeXMzMl9uZXd1bmFtZV93cmFwcGVyKQog TklfU1lTQ0FMTAkJCQkJCQkvKiBtb2RpZnlfbGR0IGZvciBpMzg2ICovCi1TWVNDQUxMKHN5 c19hZGp0aW1leCxzeXNfYWRqdGltZXgsc3lzMzJfYWRqdGltZXhfd3JhcHBlcikKK1NZU0NB TEwoc3lzX2FkanRpbWV4LHN5c19hZGp0aW1leCxjb21wYXRfc3lzX2FkanRpbWV4X3dyYXBw ZXIpCiBTWVNDQUxMKHN5c19tcHJvdGVjdCxzeXNfbXByb3RlY3Qsc3lzMzJfbXByb3RlY3Rf d3JhcHBlcikJLyogMTI1ICovCiBTWVNDQUxMKHN5c19zaWdwcm9jbWFzayxzeXNfc2lncHJv Y21hc2ssY29tcGF0X3N5c19zaWdwcm9jbWFza193cmFwcGVyKQogTklfU1lTQ0FMTAkJCQkJ CQkvKiBvbGQgImNyZWF0ZSBtb2R1bGUiICovCmRpZmYgLXB1ck4gbGludXgtMi42LjcvYXJj aC9zcGFyYzY0L2tlcm5lbC9zeXNfc3BhcmMzMi5jIGxpbnV4LTIuNi43LWFkanRpbWV4L2Fy Y2gvc3BhcmM2NC9rZXJuZWwvc3lzX3NwYXJjMzIuYwotLS0gbGludXgtMi42LjcvYXJjaC9z cGFyYzY0L2tlcm5lbC9zeXNfc3BhcmMzMi5jCTIwMDQtMDYtMTcgMTU6NTU6MjkuMDAwMDAw MDAwICswODAwCisrKyBsaW51eC0yLjYuNy1hZGp0aW1leC9hcmNoL3NwYXJjNjQva2VybmVs L3N5c19zcGFyYzMyLmMJMjAwNC0wNi0zMCAxMToxMzozMC4wMDAwMDAwMDAgKzA4MDAKQEAg LTE2MDcsNzkgKzE2MDcsNiBAQCBhc21saW5rYWdlIGxvbmcgY29tcGF0X3N5c19zZW5kZmls ZTY0KGluCiAJcmV0dXJuIHJldDsKIH0KIAotLyogSGFuZGxlIGFkanRpbWV4IGNvbXBhdGli aWxpdHkuICovCi0KLXN0cnVjdCB0aW1leDMyIHsKLQl1MzIgbW9kZXM7Ci0JczMyIG9mZnNl dCwgZnJlcSwgbWF4ZXJyb3IsIGVzdGVycm9yOwotCXMzMiBzdGF0dXMsIGNvbnN0YW50LCBw cmVjaXNpb24sIHRvbGVyYW5jZTsKLQlzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgdGltZTsKLQlz MzIgdGljazsKLQlzMzIgcHBzZnJlcSwgaml0dGVyLCBzaGlmdCwgc3RhYmlsOwotCXMzMiBq aXRjbnQsIGNhbGNudCwgZXJyY250LCBzdGJjbnQ7Ci0JczMyICA6MzI7IHMzMiAgOjMyOyBz MzIgIDozMjsgczMyICA6MzI7Ci0JczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsgczMy ICA6MzI7Ci0JczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7Ci19Owot Ci1leHRlcm4gaW50IGRvX2FkanRpbWV4KHN0cnVjdCB0aW1leCAqKTsKLQotYXNtbGlua2Fn ZSBsb25nIHN5czMyX2FkanRpbWV4KHN0cnVjdCB0aW1leDMyIF9fdXNlciAqdXRwKQotewot CXN0cnVjdCB0aW1leCB0eGM7Ci0JaW50IHJldDsKLQotCW1lbXNldCgmdHhjLCAwLCBzaXpl b2Yoc3RydWN0IHRpbWV4KSk7Ci0KLQlpZiAoZ2V0X3VzZXIodHhjLm1vZGVzLCAmdXRwLT5t b2RlcykgfHwKLQkgICAgX19nZXRfdXNlcih0eGMub2Zmc2V0LCAmdXRwLT5vZmZzZXQpIHx8 Ci0JICAgIF9fZ2V0X3VzZXIodHhjLmZyZXEsICZ1dHAtPmZyZXEpIHx8Ci0JICAgIF9fZ2V0 X3VzZXIodHhjLm1heGVycm9yLCAmdXRwLT5tYXhlcnJvcikgfHwKLQkgICAgX19nZXRfdXNl cih0eGMuZXN0ZXJyb3IsICZ1dHAtPmVzdGVycm9yKSB8fAotCSAgICBfX2dldF91c2VyKHR4 Yy5zdGF0dXMsICZ1dHAtPnN0YXR1cykgfHwKLQkgICAgX19nZXRfdXNlcih0eGMuY29uc3Rh bnQsICZ1dHAtPmNvbnN0YW50KSB8fAotCSAgICBfX2dldF91c2VyKHR4Yy5wcmVjaXNpb24s ICZ1dHAtPnByZWNpc2lvbikgfHwKLQkgICAgX19nZXRfdXNlcih0eGMudG9sZXJhbmNlLCAm dXRwLT50b2xlcmFuY2UpIHx8Ci0JICAgIF9fZ2V0X3VzZXIodHhjLnRpbWUudHZfc2VjLCAm dXRwLT50aW1lLnR2X3NlYykgfHwKLQkgICAgX19nZXRfdXNlcih0eGMudGltZS50dl91c2Vj LCAmdXRwLT50aW1lLnR2X3VzZWMpIHx8Ci0JICAgIF9fZ2V0X3VzZXIodHhjLnRpY2ssICZ1 dHAtPnRpY2spIHx8Ci0JICAgIF9fZ2V0X3VzZXIodHhjLnBwc2ZyZXEsICZ1dHAtPnBwc2Zy ZXEpIHx8Ci0JICAgIF9fZ2V0X3VzZXIodHhjLmppdHRlciwgJnV0cC0+aml0dGVyKSB8fAot CSAgICBfX2dldF91c2VyKHR4Yy5zaGlmdCwgJnV0cC0+c2hpZnQpIHx8Ci0JICAgIF9fZ2V0 X3VzZXIodHhjLnN0YWJpbCwgJnV0cC0+c3RhYmlsKSB8fAotCSAgICBfX2dldF91c2VyKHR4 Yy5qaXRjbnQsICZ1dHAtPmppdGNudCkgfHwKLQkgICAgX19nZXRfdXNlcih0eGMuY2FsY250 LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAgIF9fZ2V0X3VzZXIodHhjLmVycmNudCwgJnV0cC0+ ZXJyY250KSB8fAotCSAgICBfX2dldF91c2VyKHR4Yy5zdGJjbnQsICZ1dHAtPnN0YmNudCkp Ci0JCXJldHVybiAtRUZBVUxUOwotCi0JcmV0ID0gZG9fYWRqdGltZXgoJnR4Yyk7Ci0KLQlp ZiAocHV0X3VzZXIodHhjLm1vZGVzLCAmdXRwLT5tb2RlcykgfHwKLQkgICAgX19wdXRfdXNl cih0eGMub2Zmc2V0LCAmdXRwLT5vZmZzZXQpIHx8Ci0JICAgIF9fcHV0X3VzZXIodHhjLmZy ZXEsICZ1dHAtPmZyZXEpIHx8Ci0JICAgIF9fcHV0X3VzZXIodHhjLm1heGVycm9yLCAmdXRw LT5tYXhlcnJvcikgfHwKLQkgICAgX19wdXRfdXNlcih0eGMuZXN0ZXJyb3IsICZ1dHAtPmVz dGVycm9yKSB8fAotCSAgICBfX3B1dF91c2VyKHR4Yy5zdGF0dXMsICZ1dHAtPnN0YXR1cykg fHwKLQkgICAgX19wdXRfdXNlcih0eGMuY29uc3RhbnQsICZ1dHAtPmNvbnN0YW50KSB8fAot CSAgICBfX3B1dF91c2VyKHR4Yy5wcmVjaXNpb24sICZ1dHAtPnByZWNpc2lvbikgfHwKLQkg ICAgX19wdXRfdXNlcih0eGMudG9sZXJhbmNlLCAmdXRwLT50b2xlcmFuY2UpIHx8Ci0JICAg IF9fcHV0X3VzZXIodHhjLnRpbWUudHZfc2VjLCAmdXRwLT50aW1lLnR2X3NlYykgfHwKLQkg ICAgX19wdXRfdXNlcih0eGMudGltZS50dl91c2VjLCAmdXRwLT50aW1lLnR2X3VzZWMpIHx8 Ci0JICAgIF9fcHV0X3VzZXIodHhjLnRpY2ssICZ1dHAtPnRpY2spIHx8Ci0JICAgIF9fcHV0 X3VzZXIodHhjLnBwc2ZyZXEsICZ1dHAtPnBwc2ZyZXEpIHx8Ci0JICAgIF9fcHV0X3VzZXIo dHhjLmppdHRlciwgJnV0cC0+aml0dGVyKSB8fAotCSAgICBfX3B1dF91c2VyKHR4Yy5zaGlm dCwgJnV0cC0+c2hpZnQpIHx8Ci0JICAgIF9fcHV0X3VzZXIodHhjLnN0YWJpbCwgJnV0cC0+ c3RhYmlsKSB8fAotCSAgICBfX3B1dF91c2VyKHR4Yy5qaXRjbnQsICZ1dHAtPmppdGNudCkg fHwKLQkgICAgX19wdXRfdXNlcih0eGMuY2FsY250LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAg IF9fcHV0X3VzZXIodHhjLmVycmNudCwgJnV0cC0+ZXJyY250KSB8fAotCSAgICBfX3B1dF91 c2VyKHR4Yy5zdGJjbnQsICZ1dHAtPnN0YmNudCkpCi0JCXJldCA9IC1FRkFVTFQ7Ci0KLQly ZXR1cm4gcmV0OwotfQotCiAvKiBUaGlzIGlzIGp1c3QgYSB2ZXJzaW9uIGZvciAzMi1iaXQg YXBwbGljYXRpb25zIHdoaWNoIGRvZXMKICAqIG5vdCBmb3JjZSBPX0xBUkdFRklMRSBvbi4K ICAqLwpkaWZmIC1wdXJOIGxpbnV4LTIuNi43L2FyY2gvc3BhcmM2NC9rZXJuZWwvc3lzdGJs cy5TIGxpbnV4LTIuNi43LWFkanRpbWV4L2FyY2gvc3BhcmM2NC9rZXJuZWwvc3lzdGJscy5T Ci0tLSBsaW51eC0yLjYuNy9hcmNoL3NwYXJjNjQva2VybmVsL3N5c3RibHMuUwkyMDA0LTA2 LTE3IDE1OjU1OjI5LjAwMDAwMDAwMCArMDgwMAorKysgbGludXgtMi42LjctYWRqdGltZXgv YXJjaC9zcGFyYzY0L2tlcm5lbC9zeXN0YmxzLlMJMjAwNC0wNi0zMCAxMToxNjo0MS4wMDAw MDAwMDAgKzA4MDAKQEAgLTYyLDcgKzYyLDcgQEAgc3lzX2NhbGxfdGFibGUzMjoKIC8qMjAw Ki8JLndvcmQgc3lzMzJfc3NldG1hc2ssIHN5c19zaWdzdXNwZW5kLCBjb21wYXRfc3lzX25l d2xzdGF0LCBzeXNfdXNlbGliLCBvbGQzMl9yZWFkZGlyCiAJLndvcmQgc3lzMzJfcmVhZGFo ZWFkLCBzeXMzMl9zb2NrZXRjYWxsLCBzeXMzMl9zeXNsb2csIHN5czMyX2xvb2t1cF9kY29v a2llLCBzeXMzMl9mYWR2aXNlNjQKIC8qMjEwKi8JLndvcmQgc3lzMzJfZmFkdmlzZTY0XzY0 LCBzeXMzMl90Z2tpbGwsIHN5czMyX3dhaXRwaWQsIHN5c19zd2Fwb2ZmLCBzeXMzMl9zeXNp bmZvCi0JLndvcmQgc3lzMzJfaXBjLCBzeXMzMl9zaWdyZXR1cm4sIHN5c19jbG9uZSwgc3lz X25pc19zeXNjYWxsLCBzeXMzMl9hZGp0aW1leAorCS53b3JkIHN5czMyX2lwYywgc3lzMzJf c2lncmV0dXJuLCBzeXNfY2xvbmUsIHN5c19uaXNfc3lzY2FsbCwgY29tcGF0X3N5c19hZGp0 aW1leAogLyoyMjAqLwkud29yZCBzeXMzMl9zaWdwcm9jbWFzaywgc3lzX25pX3N5c2NhbGws IHN5czMyX2RlbGV0ZV9tb2R1bGUsIHN5c19uaV9zeXNjYWxsLCBzeXMzMl9nZXRwZ2lkCiAJ LndvcmQgc3lzMzJfYmRmbHVzaCwgc3lzMzJfc3lzZnMsIHN5c19uaXNfc3lzY2FsbCwgc3lz MzJfc2V0ZnN1aWQxNiwgc3lzMzJfc2V0ZnNnaWQxNgogLyoyMzAqLwkud29yZCBzeXMzMl9z ZWxlY3QsIHN5c190aW1lLCBzeXNfbmlzX3N5c2NhbGwsIHN5c19zdGltZSwgY29tcGF0X3N0 YXRmczY0CmRpZmYgLXB1ck4gbGludXgtMi42LjcvYXJjaC94ODZfNjQvaWEzMi9pYTMyZW50 cnkuUyBsaW51eC0yLjYuNy1hZGp0aW1leC9hcmNoL3g4Nl82NC9pYTMyL2lhMzJlbnRyeS5T Ci0tLSBsaW51eC0yLjYuNy9hcmNoL3g4Nl82NC9pYTMyL2lhMzJlbnRyeS5TCTIwMDQtMDYt MTcgMTU6NTU6MzcuMDAwMDAwMDAwICswODAwCisrKyBsaW51eC0yLjYuNy1hZGp0aW1leC9h cmNoL3g4Nl82NC9pYTMyL2lhMzJlbnRyeS5TCTIwMDQtMDYtMzAgMTE6MjE6MTYuMDAwMDAw MDAwICswODAwCkBAIC00MjksNyArNDI5LDcgQEAgaWEzMl9zeXNfY2FsbF90YWJsZToKIAku cXVhZCBzeXNfc2V0ZG9tYWlubmFtZQogCS5xdWFkIHN5c191bmFtZQogCS5xdWFkIHN5c19t b2RpZnlfbGR0Ci0JLnF1YWQgc3lzMzJfYWRqdGltZXgKKwkucXVhZCBjb21wYXRfc3lzX2Fk anRpbWV4CiAJLnF1YWQgc3lzMzJfbXByb3RlY3QJCS8qIDEyNSAqLwogCS5xdWFkIGNvbXBh dF9zeXNfc2lncHJvY21hc2sKIAkucXVhZCBxdWlldF9uaV9zeXNjYWxsCQkvKiBjcmVhdGVf bW9kdWxlICovCmRpZmYgLXB1ck4gbGludXgtMi42LjcvYXJjaC94ODZfNjQvaWEzMi9zeXNf aWEzMi5jIGxpbnV4LTIuNi43LWFkanRpbWV4L2FyY2gveDg2XzY0L2lhMzIvc3lzX2lhMzIu YwotLS0gbGludXgtMi42LjcvYXJjaC94ODZfNjQvaWEzMi9zeXNfaWEzMi5jCTIwMDQtMDYt MTcgMTU6NTU6MzcuMDAwMDAwMDAwICswODAwCisrKyBsaW51eC0yLjYuNy1hZGp0aW1leC9h cmNoL3g4Nl82NC9pYTMyL3N5c19pYTMyLmMJMjAwNC0wNi0zMCAxMToyMTo0MC4wMDAwMDAw MDAgKzA4MDAKQEAgLTk1Myw4MiArOTUzLDYgQEAgc3lzMzJfc2VuZGZpbGUoaW50IG91dF9m ZCwgaW50IGluX2ZkLCBjbwogCXJldHVybiByZXQ7CiB9CiAKLS8qIEhhbmRsZSBhZGp0aW1l eCBjb21wYXRpYmlsaXR5LiAqLwotCi1zdHJ1Y3QgdGltZXgzMiB7Ci0JdTMyIG1vZGVzOwot CXMzMiBvZmZzZXQsIGZyZXEsIG1heGVycm9yLCBlc3RlcnJvcjsKLQlzMzIgc3RhdHVzLCBj b25zdGFudCwgcHJlY2lzaW9uLCB0b2xlcmFuY2U7Ci0Jc3RydWN0IGNvbXBhdF90aW1ldmFs IHRpbWU7Ci0JczMyIHRpY2s7Ci0JczMyIHBwc2ZyZXEsIGppdHRlciwgc2hpZnQsIHN0YWJp bDsKLQlzMzIgaml0Y250LCBjYWxjbnQsIGVycmNudCwgc3RiY250OwotCXMzMiAgOjMyOyBz MzIgIDozMjsgczMyICA6MzI7IHMzMiAgOjMyOwotCXMzMiAgOjMyOyBzMzIgIDozMjsgczMy ICA6MzI7IHMzMiAgOjMyOwotCXMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7IHMzMiAg OjMyOwotfTsKLQotZXh0ZXJuIGludCBkb19hZGp0aW1leChzdHJ1Y3QgdGltZXggKik7Ci0K LWFzbWxpbmthZ2UgbG9uZwotc3lzMzJfYWRqdGltZXgoc3RydWN0IHRpbWV4MzIgX191c2Vy ICp1dHApCi17Ci0Jc3RydWN0IHRpbWV4IHR4YzsKLQlpbnQgcmV0OwotCi0JbWVtc2V0KCZ0 eGMsIDAsIHNpemVvZihzdHJ1Y3QgdGltZXgpKTsKLQotCWlmKHZlcmlmeV9hcmVhKFZFUklG WV9SRUFELCB1dHAsIHNpemVvZihzdHJ1Y3QgdGltZXgzMikpIHx8Ci0JICAgX19nZXRfdXNl cih0eGMubW9kZXMsICZ1dHAtPm1vZGVzKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLm9mZnNl dCwgJnV0cC0+b2Zmc2V0KSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLmZyZXEsICZ1dHAtPmZy ZXEpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMubWF4ZXJyb3IsICZ1dHAtPm1heGVycm9yKSB8 fAotCSAgIF9fZ2V0X3VzZXIodHhjLmVzdGVycm9yLCAmdXRwLT5lc3RlcnJvcikgfHwKLQkg ICBfX2dldF91c2VyKHR4Yy5zdGF0dXMsICZ1dHAtPnN0YXR1cykgfHwKLQkgICBfX2dldF91 c2VyKHR4Yy5jb25zdGFudCwgJnV0cC0+Y29uc3RhbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0 eGMucHJlY2lzaW9uLCAmdXRwLT5wcmVjaXNpb24pIHx8Ci0JICAgX19nZXRfdXNlcih0eGMu dG9sZXJhbmNlLCAmdXRwLT50b2xlcmFuY2UpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMudGlt ZS50dl9zZWMsICZ1dHAtPnRpbWUudHZfc2VjKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhjLnRp bWUudHZfdXNlYywgJnV0cC0+dGltZS50dl91c2VjKSB8fAotCSAgIF9fZ2V0X3VzZXIodHhj LnRpY2ssICZ1dHAtPnRpY2spIHx8Ci0JICAgX19nZXRfdXNlcih0eGMucHBzZnJlcSwgJnV0 cC0+cHBzZnJlcSkgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5qaXR0ZXIsICZ1dHAtPmppdHRl cikgfHwKLQkgICBfX2dldF91c2VyKHR4Yy5zaGlmdCwgJnV0cC0+c2hpZnQpIHx8Ci0JICAg X19nZXRfdXNlcih0eGMuc3RhYmlsLCAmdXRwLT5zdGFiaWwpIHx8Ci0JICAgX19nZXRfdXNl cih0eGMuaml0Y250LCAmdXRwLT5qaXRjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuY2Fs Y250LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuZXJyY250LCAmdXRw LT5lcnJjbnQpIHx8Ci0JICAgX19nZXRfdXNlcih0eGMuc3RiY250LCAmdXRwLT5zdGJjbnQp KQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCXJldCA9IGRvX2FkanRpbWV4KCZ0eGMpOwotCi0J aWYodmVyaWZ5X2FyZWEoVkVSSUZZX1dSSVRFLCB1dHAsIHNpemVvZihzdHJ1Y3QgdGltZXgz MikpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMubW9kZXMsICZ1dHAtPm1vZGVzKSB8fAotCSAg IF9fcHV0X3VzZXIodHhjLm9mZnNldCwgJnV0cC0+b2Zmc2V0KSB8fAotCSAgIF9fcHV0X3Vz ZXIodHhjLmZyZXEsICZ1dHAtPmZyZXEpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMubWF4ZXJy b3IsICZ1dHAtPm1heGVycm9yKSB8fAotCSAgIF9fcHV0X3VzZXIodHhjLmVzdGVycm9yLCAm dXRwLT5lc3RlcnJvcikgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5zdGF0dXMsICZ1dHAtPnN0 YXR1cykgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5jb25zdGFudCwgJnV0cC0+Y29uc3RhbnQp IHx8Ci0JICAgX19wdXRfdXNlcih0eGMucHJlY2lzaW9uLCAmdXRwLT5wcmVjaXNpb24pIHx8 Ci0JICAgX19wdXRfdXNlcih0eGMudG9sZXJhbmNlLCAmdXRwLT50b2xlcmFuY2UpIHx8Ci0J ICAgX19wdXRfdXNlcih0eGMudGltZS50dl9zZWMsICZ1dHAtPnRpbWUudHZfc2VjKSB8fAot CSAgIF9fcHV0X3VzZXIodHhjLnRpbWUudHZfdXNlYywgJnV0cC0+dGltZS50dl91c2VjKSB8 fAotCSAgIF9fcHV0X3VzZXIodHhjLnRpY2ssICZ1dHAtPnRpY2spIHx8Ci0JICAgX19wdXRf dXNlcih0eGMucHBzZnJlcSwgJnV0cC0+cHBzZnJlcSkgfHwKLQkgICBfX3B1dF91c2VyKHR4 Yy5qaXR0ZXIsICZ1dHAtPmppdHRlcikgfHwKLQkgICBfX3B1dF91c2VyKHR4Yy5zaGlmdCwg JnV0cC0+c2hpZnQpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuc3RhYmlsLCAmdXRwLT5zdGFi aWwpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMuaml0Y250LCAmdXRwLT5qaXRjbnQpIHx8Ci0J ICAgX19wdXRfdXNlcih0eGMuY2FsY250LCAmdXRwLT5jYWxjbnQpIHx8Ci0JICAgX19wdXRf dXNlcih0eGMuZXJyY250LCAmdXRwLT5lcnJjbnQpIHx8Ci0JICAgX19wdXRfdXNlcih0eGMu c3RiY250LCAmdXRwLT5zdGJjbnQpKQotCQlyZXQgPSAtRUZBVUxUOwotCi0JcmV0dXJuIHJl dDsKLX0KLQogYXNtbGlua2FnZSBsb25nIHN5czMyX21tYXAyKHVuc2lnbmVkIGxvbmcgYWRk ciwgdW5zaWduZWQgbG9uZyBsZW4sCiAJdW5zaWduZWQgbG9uZyBwcm90LCB1bnNpZ25lZCBs b25nIGZsYWdzLAogCXVuc2lnbmVkIGxvbmcgZmQsIHVuc2lnbmVkIGxvbmcgcGdvZmYpCmRp ZmYgLXB1ck4gbGludXgtMi42LjcvaW5jbHVkZS9saW51eC9jb21wYXQuaCBsaW51eC0yLjYu Ny1hZGp0aW1leC9pbmNsdWRlL2xpbnV4L2NvbXBhdC5oCi0tLSBsaW51eC0yLjYuNy9pbmNs dWRlL2xpbnV4L2NvbXBhdC5oCTIwMDQtMDYtMTcgMTU6NTU6NTMuMDAwMDAwMDAwICswODAw CisrKyBsaW51eC0yLjYuNy1hZGp0aW1leC9pbmNsdWRlL2xpbnV4L2NvbXBhdC5oCTIwMDQt MDYtMzAgMTU6MTU6NTMuNTc2ODMxODE0ICswODAwCkBAIC00MCw2ICs0MCwxOSBAQCBzdHJ1 Y3QgY29tcGF0X3RtcyB7CiAJY29tcGF0X2Nsb2NrX3QJCXRtc19jc3RpbWU7CiB9OwogCitz dHJ1Y3QgY29tcGF0X3RpbWV4IHsKKwl1MzIgbW9kZXM7CisJczMyIG9mZnNldCwgZnJlcSwg bWF4ZXJyb3IsIGVzdGVycm9yOworCXMzMiBzdGF0dXMsIGNvbnN0YW50LCBwcmVjaXNpb24s IHRvbGVyYW5jZTsKKwlzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgdGltZTsKKwlzMzIgdGljazsK KwlzMzIgcHBzZnJlcSwgaml0dGVyLCBzaGlmdCwgc3RhYmlsOworCXMzMiBqaXRjbnQsIGNh bGNudCwgZXJyY250LCBzdGJjbnQ7CisJczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsg czMyICA6MzI7CisJczMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7CisJ czMyICA6MzI7IHMzMiAgOjMyOyBzMzIgIDozMjsgczMyICA6MzI7Cit9OworCiAjZGVmaW5l IF9DT01QQVRfTlNJR19XT1JEUwkoX0NPTVBBVF9OU0lHIC8gX0NPTVBBVF9OU0lHX0JQVykK IAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAtMTMwLDUgKzE0Myw3IEBAIGFzbWxpbmthZ2UgbG9u ZyBjb21wYXRfc3lzX3NlbGVjdChpbnQgbiwKIAkJY29tcGF0X3Vsb25nX3QgX191c2VyICpv dXRwLCBjb21wYXRfdWxvbmdfdCBfX3VzZXIgKmV4cCwKIAkJc3RydWN0IGNvbXBhdF90aW1l dmFsIF9fdXNlciAqdHZwKTsKIAorYXNtbGlua2FnZSBsb25nIGNvbXBhdF9zeXNfYWRqdGlt ZXgoc3RydWN0IGNvbXBhdF90aW1leCAqdXRwKQorCiAjZW5kaWYgLyogQ09ORklHX0NPTVBB VCAqLwogI2VuZGlmIC8qIF9MSU5VWF9DT01QQVRfSCAqLwpkaWZmIC1wdXJOIGxpbnV4LTIu Ni43L2tlcm5lbC9jb21wYXQuYyBsaW51eC0yLjYuNy1hZGp0aW1leC9rZXJuZWwvY29tcGF0 LmMKLS0tIGxpbnV4LTIuNi43L2tlcm5lbC9jb21wYXQuYwkyMDA0LTA2LTE3IDE1OjU2OjA1 LjAwMDAwMDAwMCArMDgwMAorKysgbGludXgtMi42LjctYWRqdGltZXgva2VybmVsL2NvbXBh dC5jCTIwMDQtMDYtMzAgMTU6MTM6MzguODY4ODI1NjUyICswODAwCkBAIC0xNzAsNiArMTcw LDY0IEBAIGFzbWxpbmthZ2UgbG9uZyBjb21wYXRfc3lzX3RpbWVzKHN0cnVjdCAKIAlyZXR1 cm4gY29tcGF0X2ppZmZpZXNfdG9fY2xvY2tfdChqaWZmaWVzKTsKIH0KIAorZXh0ZXJuIGlu dCBkb19hZGp0aW1leChzdHJ1Y3QgdGltZXggKik7CisKK2FzbWxpbmthZ2UgbG9uZyBjb21w YXRfc3lzX2FkanRpbWV4KHN0cnVjdCBjb21wYXRfdGltZXggKnV0cCkKK3sKKwlzdHJ1Y3Qg dGltZXggdHhjOworCWludCByZXQ7CisKKwltZW1zZXQoJnR4YywgMCwgc2l6ZW9mKHN0cnVj dCB0aW1leCkpOworCisJaWYoZ2V0X3VzZXIodHhjLm1vZGVzLCAmdXRwLT5tb2RlcykgfHwK KwkgICBfX2dldF91c2VyKHR4Yy5vZmZzZXQsICZ1dHAtPm9mZnNldCkgfHwKKwkgICBfX2dl dF91c2VyKHR4Yy5mcmVxLCAmdXRwLT5mcmVxKSB8fAorCSAgIF9fZ2V0X3VzZXIodHhjLm1h eGVycm9yLCAmdXRwLT5tYXhlcnJvcikgfHwKKwkgICBfX2dldF91c2VyKHR4Yy5lc3RlcnJv ciwgJnV0cC0+ZXN0ZXJyb3IpIHx8CisJICAgX19nZXRfdXNlcih0eGMuc3RhdHVzLCAmdXRw LT5zdGF0dXMpIHx8CisJICAgX19nZXRfdXNlcih0eGMuY29uc3RhbnQsICZ1dHAtPmNvbnN0 YW50KSB8fAorCSAgIF9fZ2V0X3VzZXIodHhjLnByZWNpc2lvbiwgJnV0cC0+cHJlY2lzaW9u KSB8fAorCSAgIF9fZ2V0X3VzZXIodHhjLnRvbGVyYW5jZSwgJnV0cC0+dG9sZXJhbmNlKSB8 fAorCSAgIF9fZ2V0X3VzZXIodHhjLnRpbWUudHZfc2VjLCAmdXRwLT50aW1lLnR2X3NlYykg fHwKKwkgICBfX2dldF91c2VyKHR4Yy50aW1lLnR2X3VzZWMsICZ1dHAtPnRpbWUudHZfdXNl YykgfHwKKwkgICBfX2dldF91c2VyKHR4Yy50aWNrLCAmdXRwLT50aWNrKSB8fAorCSAgIF9f Z2V0X3VzZXIodHhjLnBwc2ZyZXEsICZ1dHAtPnBwc2ZyZXEpIHx8CisJICAgX19nZXRfdXNl cih0eGMuaml0dGVyLCAmdXRwLT5qaXR0ZXIpIHx8CisJICAgX19nZXRfdXNlcih0eGMuc2hp ZnQsICZ1dHAtPnNoaWZ0KSB8fAorCSAgIF9fZ2V0X3VzZXIodHhjLnN0YWJpbCwgJnV0cC0+ c3RhYmlsKSB8fAorCSAgIF9fZ2V0X3VzZXIodHhjLmppdGNudCwgJnV0cC0+aml0Y250KSB8 fAorCSAgIF9fZ2V0X3VzZXIodHhjLmNhbGNudCwgJnV0cC0+Y2FsY250KSB8fAorCSAgIF9f Z2V0X3VzZXIodHhjLmVycmNudCwgJnV0cC0+ZXJyY250KSB8fAorCSAgIF9fZ2V0X3VzZXIo dHhjLnN0YmNudCwgJnV0cC0+c3RiY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXQg PSBkb19hZGp0aW1leCgmdHhjKTsKKworCWlmKHB1dF91c2VyKHR4Yy5tb2RlcywgJnV0cC0+ bW9kZXMpIHx8CisJICAgX19wdXRfdXNlcih0eGMub2Zmc2V0LCAmdXRwLT5vZmZzZXQpIHx8 CisJICAgX19wdXRfdXNlcih0eGMuZnJlcSwgJnV0cC0+ZnJlcSkgfHwKKwkgICBfX3B1dF91 c2VyKHR4Yy5tYXhlcnJvciwgJnV0cC0+bWF4ZXJyb3IpIHx8CisJICAgX19wdXRfdXNlcih0 eGMuZXN0ZXJyb3IsICZ1dHAtPmVzdGVycm9yKSB8fAorCSAgIF9fcHV0X3VzZXIodHhjLnN0 YXR1cywgJnV0cC0+c3RhdHVzKSB8fAorCSAgIF9fcHV0X3VzZXIodHhjLmNvbnN0YW50LCAm dXRwLT5jb25zdGFudCkgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy5wcmVjaXNpb24sICZ1dHAt PnByZWNpc2lvbikgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy50b2xlcmFuY2UsICZ1dHAtPnRv bGVyYW5jZSkgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy50aW1lLnR2X3NlYywgJnV0cC0+dGlt ZS50dl9zZWMpIHx8CisJICAgX19wdXRfdXNlcih0eGMudGltZS50dl91c2VjLCAmdXRwLT50 aW1lLnR2X3VzZWMpIHx8CisJICAgX19wdXRfdXNlcih0eGMudGljaywgJnV0cC0+dGljaykg fHwKKwkgICBfX3B1dF91c2VyKHR4Yy5wcHNmcmVxLCAmdXRwLT5wcHNmcmVxKSB8fAorCSAg IF9fcHV0X3VzZXIodHhjLmppdHRlciwgJnV0cC0+aml0dGVyKSB8fAorCSAgIF9fcHV0X3Vz ZXIodHhjLnNoaWZ0LCAmdXRwLT5zaGlmdCkgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy5zdGFi aWwsICZ1dHAtPnN0YWJpbCkgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy5qaXRjbnQsICZ1dHAt PmppdGNudCkgfHwKKwkgICBfX3B1dF91c2VyKHR4Yy5jYWxjbnQsICZ1dHAtPmNhbGNudCkg fHwKKwkgICBfX3B1dF91c2VyKHR4Yy5lcnJjbnQsICZ1dHAtPmVycmNudCkgfHwKKwkgICBf X3B1dF91c2VyKHR4Yy5zdGJjbnQsICZ1dHAtPnN0YmNudCkpCisJCXJldCA9IC1FRkFVTFQ7 CisKKwlyZXR1cm4gcmV0OworfQorCiAvKgogICogQXNzdW1wdGlvbjogb2xkX3NpZ3NldF90 IGFuZCBjb21wYXRfb2xkX3NpZ3NldF90IGFyZSBib3RoCiAgKiB0eXBlcyB0aGF0IGNhbiBi ZSBwYXNzZWQgdG8gcHV0X3VzZXIoKS9nZXRfdXNlcigpLgo= --------------000501030400050909020302--