From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IXo4z-0000bG-TZ for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:10:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IXo4y-0000Yp-Bw for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:10:12 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IXo4y-0000YW-64 for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:10:12 -0400 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IXo4x-0005Qk-L5 for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:10:11 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1IXo4t-0007HC-00 for ; Tue, 18 Sep 2007 21:10:07 -0400 Received: from grayson.netsweng.com ([127.0.0.1]) by localhost (grayson.netsweng.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id upVBcJaGvGur for ; Tue, 18 Sep 2007 21:09:42 -0400 (EDT) Received: from h134.99.28.71.ip.alltel.net ([71.28.99.134] helo=trantor.stuart.netsweng.com) by grayson.netsweng.com with esmtp (Exim 3.36 #1 (Debian)) id 1IXo4T-0007GT-00 for ; Tue, 18 Sep 2007 21:09:41 -0400 Date: Tue, 18 Sep 2007 21:09:20 -0400 (EDT) From: Stuart Anderson Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-959732379-1190164160=:20150" Subject: [Qemu-devel] RCF: [2/11] EFAULT patch Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811327-959732379-1190164160=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed In this section, the functions for reading and writing fdsets, reading rusage, and reading and writing timevals have been updated to use the new kernel like interfaces. Also, places where these function have been used are adjusted to match, this includes do_select(), and the do_syscall() code for getrusage(), gettimeofday(), settimeofday() and setitimer(). Stuart Stuart R. Anderson anderson@netsweng.com Network & Software Engineering http://www.netsweng.com/ 1024D/37A79149: 0791 D3B8 9A4C 2CDC A31F BD03 0A62 E534 37A7 9149 ---1463811327-959732379-1190164160=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=06_efault.patch.2 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: efault patch 2 of 11 Content-Disposition: attachment; filename=06_efault.patch.2 SW5kZXg6IHFlbXUvbGludXgtdXNlci9zeXNjYWxsLmMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBxZW11Lm9yaWcvbGludXgtdXNlci9zeXNjYWxs LmMJMjAwNy0wOS0xNyAxNjoxNzozOC4wMDAwMDAwMDAgLTA0MDANCisrKyBx ZW11L2xpbnV4LXVzZXIvc3lzY2FsbC5jCTIwMDctMDktMTcgMjE6MDc6MzUu MDAwMDAwMDAwIC0wNDAwDQpAQCAtMzYzLDEzICszNjMsMTUgQEANCiAgICAg fQ0KIH0NCiANCi1zdGF0aWMgaW5saW5lIGZkX3NldCAqdGFyZ2V0X3RvX2hv c3RfZmRzKGZkX3NldCAqZmRzLA0KKyNkZWZpbmUgRkRfTUFTS19TSVpFIChG RF9TRVRTSVpFL05GREJJVFMpDQorDQorc3RhdGljIGlubGluZSBsb25nIGNv cHlfZnJvbV91c2VyX2Zkc2V0KGZkX3NldCAqZmRzLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2xvbmcgKnRh cmdldF9mZHMsIGludCBuKQ0KIHsNCi0jaWYgIWRlZmluZWQoQlNXQVBfTkVF REVEKSAmJiAhZGVmaW5lZChXT1JEU19CSUdFTkRJQU4pDQotICAgIHJldHVy biAoZmRfc2V0ICopdGFyZ2V0X2ZkczsNCi0jZWxzZQ0KICAgICBpbnQgaSwg YjsNCisNCisgICAgaWYoICFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsdGFyZ2V0 X2ZkcyxGRF9NQVNLX1NJWkUpICkgcmV0dXJuIC0xOw0KKw0KICAgICBpZiAo dGFyZ2V0X2Zkcykgew0KICAgICAgICAgRkRfWkVSTyhmZHMpOw0KICAgICAg ICAgZm9yKGkgPSAwO2kgPCBuOyBpKyspIHsNCkBAIC0zNzgsMjIgKzM4MCwx OCBAQA0KICAgICAgICAgICAgIGlmIChiKQ0KICAgICAgICAgICAgICAgICBG RF9TRVQoaSwgZmRzKTsNCiAgICAgICAgIH0NCi0gICAgICAgIHJldHVybiBm ZHM7DQotICAgIH0gZWxzZSB7DQotICAgICAgICByZXR1cm4gTlVMTDsNCiAg ICAgfQ0KLSNlbmRpZg0KKyAgICByZXR1cm4gMDsNCiB9DQogDQotc3RhdGlj IGlubGluZSB2b2lkIGhvc3RfdG9fdGFyZ2V0X2Zkcyh0YXJnZXRfbG9uZyAq dGFyZ2V0X2ZkcywNCitzdGF0aWMgaW5saW5lIGxvbmcgY29weV90b191c2Vy X2Zkc2V0KHRhcmdldF9sb25nICp0YXJnZXRfZmRzLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRfc2V0ICpmZHMsIGludCBu KQ0KIHsNCi0jaWYgIWRlZmluZWQoQlNXQVBfTkVFREVEKSAmJiAhZGVmaW5l ZChXT1JEU19CSUdFTkRJQU4pDQotICAgIC8qIG5vdGhpbmcgdG8gZG8gKi8N Ci0jZWxzZQ0KICAgICBpbnQgaSwgbncsIGosIGs7DQogICAgIHRhcmdldF9s b25nIHY7DQogDQorICAgIGlmKCAhYWNjZXNzX29rKFZFUklGWV9XUklURSx0 YXJnZXRfZmRzLEZEX01BU0tfU0laRSkgKSByZXR1cm4gLTE7DQorDQogICAg IGlmICh0YXJnZXRfZmRzKSB7DQogICAgICAgICBudyA9IChuICsgVEFSR0VU X0xPTkdfQklUUyAtIDEpIC8gVEFSR0VUX0xPTkdfQklUUzsNCiAgICAgICAg IGsgPSAwOw0KQEAgLTQwNiw3ICs0MDQsNyBAQA0KICAgICAgICAgICAgIHRh cmdldF9mZHNbaV0gPSB0c3dhcGwodik7DQogICAgICAgICB9DQogICAgIH0N Ci0jZW5kaWYNCisgICAgcmV0dXJuIDA7DQogfQ0KIA0KICNpZiBkZWZpbmVk KF9fYWxwaGFfXykNCkBAIC00MjQsNTMgKzQyMiw1MCBAQA0KICNlbmRpZg0K IH0NCiANCi1zdGF0aWMgaW5saW5lIHZvaWQgaG9zdF90b190YXJnZXRfcnVz YWdlKHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCitzdGF0aWMgaW5saW5l IGxvbmcgY29weV90b191c2VyX3J1c2FnZShzdHJ1Y3QgdGFyZ2V0X3J1c2Fn ZSAqdGFyZ2V0X3J1c2FnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydXNhZ2UgKnJ1c2FnZSkN CiB7DQotICAgIHN0cnVjdCB0YXJnZXRfcnVzYWdlICp0YXJnZXRfcnVzYWdl Ow0KKyAgICBpZiggIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsdGFyZ2V0X3J1 c2FnZSxzaXplb2YoKnRhcmdldF9ydXNhZ2UpKSApIHJldHVybiAtMTsNCisg ICAgX19wdXRfdXNlcihydXNhZ2UtPnJ1X3V0aW1lLnR2X3NlYywgJnRhcmdl dF9ydXNhZ2UtPnJ1X3V0aW1lLnR2X3NlYyk7DQorICAgIF9fcHV0X3VzZXIo cnVzYWdlLT5ydV91dGltZS50dl91c2VjLCAmdGFyZ2V0X3J1c2FnZS0+cnVf dXRpbWUudHZfdXNlYyk7DQorICAgIF9fcHV0X3VzZXIocnVzYWdlLT5ydV9z dGltZS50dl9zZWMsICZ0YXJnZXRfcnVzYWdlLT5ydV9zdGltZS50dl9zZWMp Ow0KKyAgICBfX3B1dF91c2VyKHJ1c2FnZS0+cnVfc3RpbWUudHZfdXNlYywg JnRhcmdldF9ydXNhZ2UtPnJ1X3N0aW1lLnR2X3VzZWMpOw0KKyAgICBfX3B1 dF91c2VyKHJ1c2FnZS0+cnVfbWF4cnNzLCAmdGFyZ2V0X3J1c2FnZS0+cnVf bWF4cnNzKTsNCisgICAgX19wdXRfdXNlcihydXNhZ2UtPnJ1X2l4cnNzLCAm dGFyZ2V0X3J1c2FnZS0+cnVfaXhyc3MpOw0KKyAgICBfX3B1dF91c2VyKHJ1 c2FnZS0+cnVfaWRyc3MsICZ0YXJnZXRfcnVzYWdlLT5ydV9pZHJzcyk7DQor ICAgIF9fcHV0X3VzZXIocnVzYWdlLT5ydV9pc3JzcywgJnRhcmdldF9ydXNh Z2UtPnJ1X2lzcnNzKTsNCisgICAgX19wdXRfdXNlcihydXNhZ2UtPnJ1X21p bmZsdCwgJnRhcmdldF9ydXNhZ2UtPnJ1X21pbmZsdCk7DQorICAgIF9fcHV0 X3VzZXIocnVzYWdlLT5ydV9tYWpmbHQsICZ0YXJnZXRfcnVzYWdlLT5ydV9t YWpmbHQpOw0KKyAgICBfX3B1dF91c2VyKHJ1c2FnZS0+cnVfbnN3YXAsICZ0 YXJnZXRfcnVzYWdlLT5ydV9uc3dhcCk7DQorICAgIF9fcHV0X3VzZXIocnVz YWdlLT5ydV9pbmJsb2NrLCAmdGFyZ2V0X3J1c2FnZS0+cnVfaW5ibG9jayk7 DQorICAgIF9fcHV0X3VzZXIocnVzYWdlLT5ydV9vdWJsb2NrLCAmdGFyZ2V0 X3J1c2FnZS0+cnVfb3VibG9jayk7DQorICAgIF9fcHV0X3VzZXIocnVzYWdl LT5ydV9tc2dzbmQsICZ0YXJnZXRfcnVzYWdlLT5ydV9tc2dzbmQpOw0KKyAg ICBfX3B1dF91c2VyKHJ1c2FnZS0+cnVfbXNncmN2LCAmdGFyZ2V0X3J1c2Fn ZS0+cnVfbXNncmN2KTsNCisgICAgX19wdXRfdXNlcihydXNhZ2UtPnJ1X25z aWduYWxzLCAmdGFyZ2V0X3J1c2FnZS0+cnVfbnNpZ25hbHMpOw0KKyAgICBf X3B1dF91c2VyKHJ1c2FnZS0+cnVfbnZjc3csICZ0YXJnZXRfcnVzYWdlLT5y dV9udmNzdyk7DQorICAgIF9fcHV0X3VzZXIocnVzYWdlLT5ydV9uaXZjc3cs ICZ0YXJnZXRfcnVzYWdlLT5ydV9uaXZjc3cpOw0KIA0KLSAgICBsb2NrX3Vz ZXJfc3RydWN0KHRhcmdldF9ydXNhZ2UsIHRhcmdldF9hZGRyLCAwKTsNCi0g ICAgdGFyZ2V0X3J1c2FnZS0+cnVfdXRpbWUudHZfc2VjID0gdHN3YXBsKHJ1 c2FnZS0+cnVfdXRpbWUudHZfc2VjKTsNCi0gICAgdGFyZ2V0X3J1c2FnZS0+ cnVfdXRpbWUudHZfdXNlYyA9IHRzd2FwbChydXNhZ2UtPnJ1X3V0aW1lLnR2 X3VzZWMpOw0KLSAgICB0YXJnZXRfcnVzYWdlLT5ydV9zdGltZS50dl9zZWMg PSB0c3dhcGwocnVzYWdlLT5ydV9zdGltZS50dl9zZWMpOw0KLSAgICB0YXJn ZXRfcnVzYWdlLT5ydV9zdGltZS50dl91c2VjID0gdHN3YXBsKHJ1c2FnZS0+ cnVfc3RpbWUudHZfdXNlYyk7DQotICAgIHRhcmdldF9ydXNhZ2UtPnJ1X21h eHJzcyA9IHRzd2FwbChydXNhZ2UtPnJ1X21heHJzcyk7DQotICAgIHRhcmdl dF9ydXNhZ2UtPnJ1X2l4cnNzID0gdHN3YXBsKHJ1c2FnZS0+cnVfaXhyc3Mp Ow0KLSAgICB0YXJnZXRfcnVzYWdlLT5ydV9pZHJzcyA9IHRzd2FwbChydXNh Z2UtPnJ1X2lkcnNzKTsNCi0gICAgdGFyZ2V0X3J1c2FnZS0+cnVfaXNyc3Mg PSB0c3dhcGwocnVzYWdlLT5ydV9pc3Jzcyk7DQotICAgIHRhcmdldF9ydXNh Z2UtPnJ1X21pbmZsdCA9IHRzd2FwbChydXNhZ2UtPnJ1X21pbmZsdCk7DQot ICAgIHRhcmdldF9ydXNhZ2UtPnJ1X21hamZsdCA9IHRzd2FwbChydXNhZ2Ut PnJ1X21hamZsdCk7DQotICAgIHRhcmdldF9ydXNhZ2UtPnJ1X25zd2FwID0g dHN3YXBsKHJ1c2FnZS0+cnVfbnN3YXApOw0KLSAgICB0YXJnZXRfcnVzYWdl LT5ydV9pbmJsb2NrID0gdHN3YXBsKHJ1c2FnZS0+cnVfaW5ibG9jayk7DQot ICAgIHRhcmdldF9ydXNhZ2UtPnJ1X291YmxvY2sgPSB0c3dhcGwocnVzYWdl LT5ydV9vdWJsb2NrKTsNCi0gICAgdGFyZ2V0X3J1c2FnZS0+cnVfbXNnc25k ID0gdHN3YXBsKHJ1c2FnZS0+cnVfbXNnc25kKTsNCi0gICAgdGFyZ2V0X3J1 c2FnZS0+cnVfbXNncmN2ID0gdHN3YXBsKHJ1c2FnZS0+cnVfbXNncmN2KTsN Ci0gICAgdGFyZ2V0X3J1c2FnZS0+cnVfbnNpZ25hbHMgPSB0c3dhcGwocnVz YWdlLT5ydV9uc2lnbmFscyk7DQotICAgIHRhcmdldF9ydXNhZ2UtPnJ1X252 Y3N3ID0gdHN3YXBsKHJ1c2FnZS0+cnVfbnZjc3cpOw0KLSAgICB0YXJnZXRf cnVzYWdlLT5ydV9uaXZjc3cgPSB0c3dhcGwocnVzYWdlLT5ydV9uaXZjc3cp Ow0KLSAgICB1bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3J1c2FnZSwgdGFy Z2V0X2FkZHIsIDEpOw0KKyAgICByZXR1cm4gMDsNCiB9DQogDQotc3RhdGlj IGlubGluZSB2b2lkIHRhcmdldF90b19ob3N0X3RpbWV2YWwoc3RydWN0IHRp bWV2YWwgKnR2LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkcikNCitzdGF0aWMg aW5saW5lIGxvbmcgY29weV9mcm9tX3VzZXJfdGltZXZhbChzdHJ1Y3QgdGlt ZXZhbCAqdHYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHRhcmdldF90aW1ldmFsICp0YXJnZXRfdHYpDQog ew0KLSAgICBzdHJ1Y3QgdGFyZ2V0X3RpbWV2YWwgKnRhcmdldF90djsNCisg ICAgaWYoICFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsdGFyZ2V0X3R2LHNpemVv ZigqdGFyZ2V0X3R2KSkgKSByZXR1cm4gLTE7DQorICAgIF9fZ2V0X3VzZXIo dHYtPnR2X3NlYywgJnRhcmdldF90di0+dHZfc2VjKTsNCisgICAgX19nZXRf dXNlcih0di0+dHZfdXNlYywgJnRhcmdldF90di0+dHZfdXNlYyk7DQogDQot ICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3R2LCB0YXJnZXRfYWRkciwg MSk7DQotICAgIHR2LT50dl9zZWMgPSB0c3dhcGwodGFyZ2V0X3R2LT50dl9z ZWMpOw0KLSAgICB0di0+dHZfdXNlYyA9IHRzd2FwbCh0YXJnZXRfdHYtPnR2 X3VzZWMpOw0KLSAgICB1bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3R2LCB0 YXJnZXRfYWRkciwgMCk7DQorICAgIHJldHVybiAwOw0KIH0NCiANCi1zdGF0 aWMgaW5saW5lIHZvaWQgaG9zdF90b190YXJnZXRfdGltZXZhbCh0YXJnZXRf dWxvbmcgdGFyZ2V0X2FkZHIsDQorc3RhdGljIGlubGluZSBsb25nIGNvcHlf dG9fdXNlcl90aW1ldmFsKHN0cnVjdCB0YXJnZXRfdGltZXZhbCAqdGFyZ2V0 X3R2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsICp0dikNCiB7DQotICAgIHN0cnVj dCB0YXJnZXRfdGltZXZhbCAqdGFyZ2V0X3R2Ow0KKyAgICBpZiggIWFjY2Vz c19vayhWRVJJRllfV1JJVEUsdGFyZ2V0X3R2LHNpemVvZigqdGFyZ2V0X3R2 KSkgKSByZXR1cm4gLTE7DQorICAgIF9fcHV0X3VzZXIodHYtPnR2X3NlYywg JnRhcmdldF90di0+dHZfc2VjKTsNCisgICAgX19wdXRfdXNlcih0di0+dHZf dXNlYywgJnRhcmdldF90di0+dHZfdXNlYyk7DQogDQotICAgIGxvY2tfdXNl cl9zdHJ1Y3QodGFyZ2V0X3R2LCB0YXJnZXRfYWRkciwgMCk7DQotICAgIHRh cmdldF90di0+dHZfc2VjID0gdHN3YXBsKHR2LT50dl9zZWMpOw0KLSAgICB0 YXJnZXRfdHYtPnR2X3VzZWMgPSB0c3dhcGwodHYtPnR2X3VzZWMpOw0KLSAg ICB1bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3R2LCB0YXJnZXRfYWRkciwg MSk7DQorICAgIHJldHVybiAwOw0KIH0NCiANCiANCkBAIC00ODYsMjkgKzQ4 MSwzMiBAQA0KICAgICBpbnQgb2s7DQogDQogICAgIGlmIChyZmRfcCkgew0K LSAgICAgICAgdGFyZ2V0X3JmZHMgPSBsb2NrX3VzZXIocmZkX3AsIHNpemVv Zih0YXJnZXRfbG9uZykgKiBuLCAxKTsNCi0gICAgICAgIHJmZHNfcHRyID0g dGFyZ2V0X3RvX2hvc3RfZmRzKCZyZmRzLCB0YXJnZXRfcmZkcywgbik7DQor ICAgICAgICBpZiggY29weV9mcm9tX3VzZXJfZmRzZXQoJnJmZHMsIHJmZF9w LCBuKSApIHJldHVybiAtRUZBVUxUOw0KKyAgICAgICAgcmZkc19wdHIgPSAm cmZkczsNCisgICAgICAgIHRhcmdldF9yZmRzID0gcmZkX3A7DQogICAgIH0g ZWxzZSB7DQogICAgICAgICB0YXJnZXRfcmZkcyA9IE5VTEw7DQogICAgICAg ICByZmRzX3B0ciA9IE5VTEw7DQogICAgIH0NCiAgICAgaWYgKHdmZF9wKSB7 DQotICAgICAgICB0YXJnZXRfd2ZkcyA9IGxvY2tfdXNlcih3ZmRfcCwgc2l6 ZW9mKHRhcmdldF9sb25nKSAqIG4sIDEpOw0KLSAgICAgICAgd2Zkc19wdHIg PSB0YXJnZXRfdG9faG9zdF9mZHMoJndmZHMsIHRhcmdldF93ZmRzLCBuKTsN CisgICAgICAgIGlmKCBjb3B5X2Zyb21fdXNlcl9mZHNldCgmd2Zkcywgd2Zk X3AsIG4pICkgcmV0dXJuIC1FRkFVTFQ7DQorICAgICAgICB3ZmRzX3B0ciA9 ICZ3ZmRzOw0KKyAgICAgICAgdGFyZ2V0X3dmZHMgPSB3ZmRfcDsNCiAgICAg fSBlbHNlIHsNCiAgICAgICAgIHRhcmdldF93ZmRzID0gTlVMTDsNCiAgICAg ICAgIHdmZHNfcHRyID0gTlVMTDsNCiAgICAgfQ0KICAgICBpZiAoZWZkX3Ap IHsNCi0gICAgICAgIHRhcmdldF9lZmRzID0gbG9ja191c2VyKGVmZF9wLCBz aXplb2YodGFyZ2V0X2xvbmcpICogbiwgMSk7DQotICAgICAgICBlZmRzX3B0 ciA9IHRhcmdldF90b19ob3N0X2ZkcygmZWZkcywgdGFyZ2V0X2VmZHMsIG4p Ow0KKyAgICAgICAgaWYoIGNvcHlfZnJvbV91c2VyX2Zkc2V0KCZlZmRzLCBl ZmRfcCwgbikgKSByZXR1cm4gLUVGQVVMVDsNCisgICAgICAgIGVmZHNfcHRy ID0gJmVmZHM7DQorICAgICAgICB0YXJnZXRfZWZkcyA9IGVmZF9wOw0KICAg ICB9IGVsc2Ugew0KICAgICAgICAgdGFyZ2V0X2VmZHMgPSBOVUxMOw0KICAg ICAgICAgZWZkc19wdHIgPSBOVUxMOw0KICAgICB9DQogICAgICAgICAgICAN CiAgICAgaWYgKHRhcmdldF90dikgew0KLSAgICAgICAgdGFyZ2V0X3RvX2hv c3RfdGltZXZhbCgmdHYsIHRhcmdldF90dik7DQorICAgICAgICBpZiggY29w eV9mcm9tX3VzZXJfdGltZXZhbCgmdHYsIChzdHJ1Y3QgdGFyZ2V0X3RpbWV2 YWwgKil0YXJnZXRfdHYpICkgcmV0dXJuIC1FRkFVTFQ7DQogICAgICAgICB0 dl9wdHIgPSAmdHY7DQogICAgIH0gZWxzZSB7DQogICAgICAgICB0dl9wdHIg PSBOVUxMOw0KQEAgLTUxNywyMCArNTE1LDE0IEBADQogICAgIG9rID0gIWlz X2Vycm9yKHJldCk7DQogDQogICAgIGlmIChvaykgew0KLSAgICAgICAgaG9z dF90b190YXJnZXRfZmRzKHRhcmdldF9yZmRzLCByZmRzX3B0ciwgbik7DQot ICAgICAgICBob3N0X3RvX3RhcmdldF9mZHModGFyZ2V0X3dmZHMsIHdmZHNf cHRyLCBuKTsNCi0gICAgICAgIGhvc3RfdG9fdGFyZ2V0X2Zkcyh0YXJnZXRf ZWZkcywgZWZkc19wdHIsIG4pOw0KKyAgICAgICAgaWYoIHJmZF9wICYmIGNv cHlfdG9fdXNlcl9mZHNldChyZmRfcCwgJnJmZHMsIG4pICkgcmV0dXJuIC1F RkFVTFQ7DQorICAgICAgICBpZiggd2ZkX3AgJiYgY29weV90b191c2VyX2Zk c2V0KHdmZF9wLCAmd2ZkcywgbikgKSByZXR1cm4gLUVGQVVMVDsNCisgICAg ICAgIGlmKCBlZmRfcCAmJiBjb3B5X3RvX3VzZXJfZmRzZXQoZWZkX3AsICZl ZmRzLCBuKSApIHJldHVybiAtRUZBVUxUOw0KIA0KICAgICAgICAgaWYgKHRh cmdldF90dikgew0KLSAgICAgICAgICAgIGhvc3RfdG9fdGFyZ2V0X3RpbWV2 YWwodGFyZ2V0X3R2LCAmdHYpOw0KKyAgICAgICAgICAgIGlmKCBjb3B5X3Rv X3VzZXJfdGltZXZhbCgoc3RydWN0IHRhcmdldF90aW1ldmFsICopdGFyZ2V0 X3R2LCAmdHYpICkgcmV0dXJuIC1FRkFVTFQ7DQogICAgICAgICB9DQogICAg IH0NCi0gICAgaWYgKHRhcmdldF9yZmRzKQ0KLSAgICAgICAgdW5sb2NrX3Vz ZXIodGFyZ2V0X3JmZHMsIHJmZF9wLCBvayA/IHNpemVvZih0YXJnZXRfbG9u ZykgKiBuIDogMCk7DQotICAgIGlmICh0YXJnZXRfd2ZkcykNCi0gICAgICAg IHVubG9ja191c2VyKHRhcmdldF93ZmRzLCB3ZmRfcCwgb2sgPyBzaXplb2Yo dGFyZ2V0X2xvbmcpICogbiA6IDApOw0KLSAgICBpZiAodGFyZ2V0X2VmZHMp DQotICAgICAgICB1bmxvY2tfdXNlcih0YXJnZXRfZWZkcywgZWZkX3AsIG9r ID8gc2l6ZW9mKHRhcmdldF9sb25nKSAqIG4gOiAwKTsNCiANCiAgICAgcmV0 dXJuIHJldDsNCiB9DQpAQCAtMjcwOSw5ICsyNzAxLDExIEBADQogICAgICAg ICB7DQogICAgICAgICAgICAgc3RydWN0IHRpbWV2YWwgKnR2cCwgdHZbMl07 DQogICAgICAgICAgICAgaWYgKGFyZzIpIHsNCi0gICAgICAgICAgICAgICAg dGFyZ2V0X3RvX2hvc3RfdGltZXZhbCgmdHZbMF0sIGFyZzIpOw0KLSAgICAg ICAgICAgICAgICB0YXJnZXRfdG9faG9zdF90aW1ldmFsKCZ0dlsxXSwNCi0g ICAgICAgICAgICAgICAgICAgIGFyZzIgKyBzaXplb2YgKHN0cnVjdCB0YXJn ZXRfdGltZXZhbCkpOw0KKyAgICAgICAgICAgICAgICBpZiggY29weV9mcm9t X3VzZXJfdGltZXZhbCgmdHZbMF0sIChzdHJ1Y3QgdGFyZ2V0X3RpbWV2YWwg KilhcmcyKSApDQorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVG QVVMVDsNCisgICAgICAgICAgICAgICAgaWYoIGNvcHlfZnJvbV91c2VyX3Rp bWV2YWwoJnR2WzFdLA0KKyAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCB0 YXJnZXRfdGltZXZhbCAqKShhcmcyICsgc2l6ZW9mIChzdHJ1Y3QgdGFyZ2V0 X3RpbWV2YWwpKSkgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC1FRkFVTFQ7DQogICAgICAgICAgICAgICAgIHR2cCA9IHR2Ow0KICAgICAg ICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgIHR2cCA9IE5VTEw7 DQpAQCAtMzE3NCw3ICszMTY4LDcgQEANCiAgICAgICAgICAgICBzdHJ1Y3Qg cnVzYWdlIHJ1c2FnZTsNCiAgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8o Z2V0cnVzYWdlKGFyZzEsICZydXNhZ2UpKTsNCiAgICAgICAgICAgICBpZiAo IWlzX2Vycm9yKHJldCkpIHsNCi0gICAgICAgICAgICAgICAgaG9zdF90b190 YXJnZXRfcnVzYWdlKGFyZzIsICZydXNhZ2UpOw0KKyAgICAgICAgICAgICAg ICBpZiggY29weV90b191c2VyX3J1c2FnZSgoc3RydWN0IHRhcmdldF9ydXNh Z2UgKilhcmcyLCAmcnVzYWdlKSApIHJldHVybiAtRUZBVUxUOw0KICAgICAg ICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICAgIGJyZWFrOw0KQEAgLTMx ODMsMTQgKzMxNzcsMTQgQEANCiAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZh bCB0djsNCiAgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oZ2V0dGltZW9m ZGF5KCZ0diwgTlVMTCkpOw0KICAgICAgICAgICAgIGlmICghaXNfZXJyb3Io cmV0KSkgew0KLSAgICAgICAgICAgICAgICBob3N0X3RvX3RhcmdldF90aW1l dmFsKGFyZzEsICZ0dik7DQorICAgICAgICAgICAgICAgIGNvcHlfdG9fdXNl cl90aW1ldmFsKGFyZzEsICZ0dik7DQogICAgICAgICAgICAgfQ0KICAgICAg ICAgfQ0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgVEFSR0VUX05SX3Nl dHRpbWVvZmRheToNCiAgICAgICAgIHsNCiAgICAgICAgICAgICBzdHJ1Y3Qg dGltZXZhbCB0djsNCi0gICAgICAgICAgICB0YXJnZXRfdG9faG9zdF90aW1l dmFsKCZ0diwgYXJnMSk7DQorICAgICAgICAgICAgY29weV9mcm9tX3VzZXJf dGltZXZhbCgmdHYsIGFyZzEpOw0KICAgICAgICAgICAgIHJldCA9IGdldF9l cnJubyhzZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKSk7DQogICAgICAgICB9DQog ICAgICAgICBicmVhazsNCkBAIC0zNTExLDE5ICszNTA1LDIzIEBADQogDQog ICAgICAgICAgICAgaWYgKGFyZzIpIHsNCiAgICAgICAgICAgICAgICAgcHZh bHVlID0gJnZhbHVlOw0KLSAgICAgICAgICAgICAgICB0YXJnZXRfdG9faG9z dF90aW1ldmFsKCZwdmFsdWUtPml0X2ludGVydmFsLA0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzIpOw0KLSAgICAgICAg ICAgICAgICB0YXJnZXRfdG9faG9zdF90aW1ldmFsKCZwdmFsdWUtPml0X3Zh bHVlLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyZzIgKyBzaXplb2Yoc3RydWN0IHRhcmdldF90aW1ldmFsKSk7DQorICAg ICAgICAgICAgICAgIGlmKCBjb3B5X2Zyb21fdXNlcl90aW1ldmFsKCZwdmFs dWUtPml0X2ludGVydmFsLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RydWN0IHRhcmdldF90aW1ldmFsICopYXJn MikgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7 DQorDQorICAgICAgICAgICAgICAgIGlmKCBjb3B5X2Zyb21fdXNlcl90aW1l dmFsKCZwdmFsdWUtPml0X3ZhbHVlLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgdGFyZ2V0X3RpbWV2YWwgKiko YXJnMiArIHNpemVvZihzdHJ1Y3QgdGFyZ2V0X3RpbWV2YWwpKSkgKQ0KKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7DQorDQogICAg ICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgcHZhbHVlID0g TlVMTDsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgICAgcmV0ID0gZ2V0 X2Vycm5vKHNldGl0aW1lcihhcmcxLCBwdmFsdWUsICZvdmFsdWUpKTsNCiAg ICAgICAgICAgICBpZiAoIWlzX2Vycm9yKHJldCkgJiYgYXJnMykgew0KLSAg ICAgICAgICAgICAgICBob3N0X3RvX3RhcmdldF90aW1ldmFsKGFyZzMsDQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm92YWx1 ZS5pdF9pbnRlcnZhbCk7DQotICAgICAgICAgICAgICAgIGhvc3RfdG9fdGFy Z2V0X3RpbWV2YWwoYXJnMyArIHNpemVvZihzdHJ1Y3QgdGFyZ2V0X3RpbWV2 YWwpLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZvdmFsdWUuaXRfdmFsdWUpOw0KKyAgICAgICAgICAgICAgICBpZiggY29w eV90b191c2VyX3RpbWV2YWwoKHN0cnVjdCB0YXJnZXRfdGltZXZhbCAqKWFy ZzMsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jm92YWx1ZS5pdF9pbnRlcnZhbCkgKSByZXR1cm4gLUVGQVVMVDsNCisgICAg ICAgICAgICAgICAgaWYoIGNvcHlfdG9fdXNlcl90aW1ldmFsKChzdHJ1Y3Qg dGFyZ2V0X3RpbWV2YWwgKikoYXJnMyArIHNpemVvZihzdHJ1Y3QgdGFyZ2V0 X3RpbWV2YWwpKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmb3ZhbHVlLml0X3ZhbHVlKSApIHJldHVybiAtRUZBVUxUOw0K ICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICAgIGJyZWFrOw0K QEAgLTM1MzMsMTAgKzM1MzEsMTAgQEANCiAgICAgICAgICAgIA0KICAgICAg ICAgICAgIHJldCA9IGdldF9lcnJubyhnZXRpdGltZXIoYXJnMSwgJnZhbHVl KSk7DQogICAgICAgICAgICAgaWYgKCFpc19lcnJvcihyZXQpICYmIGFyZzIp IHsNCi0gICAgICAgICAgICAgICAgaG9zdF90b190YXJnZXRfdGltZXZhbChh cmcyLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ2YWx1ZS5pdF9pbnRlcnZhbCk7DQotICAgICAgICAgICAgICAgIGhvc3Rf dG9fdGFyZ2V0X3RpbWV2YWwoYXJnMiArIHNpemVvZihzdHJ1Y3QgdGFyZ2V0 X3RpbWV2YWwpLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZ2YWx1ZS5pdF92YWx1ZSk7DQorICAgICAgICAgICAgICAgIGlm KCBjb3B5X3RvX3VzZXJfdGltZXZhbCgoc3RydWN0IHRhcmdldF90aW1ldmFs ICopYXJnMiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmdmFsdWUuaXRfaW50ZXJ2YWwpICApIHJldHVybiAtRUZBVUxUOw0K KyAgICAgICAgICAgICAgICBpZiggY29weV90b191c2VyX3RpbWV2YWwoKHN0 cnVjdCB0YXJnZXRfdGltZXZhbCAqKShhcmcyICsgc2l6ZW9mKHN0cnVjdCB0 YXJnZXRfdGltZXZhbCkpLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZ2YWx1ZS5pdF92YWx1ZSkgKSByZXR1cm4gLUVGQVVM VDsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgICAgICBicmVh azsNCkBAIC0zNjMzLDcgKzM2MzEsOCBAQA0KICAgICAgICAgICAgICAgICBp ZiAoc3RhdHVzX3B0cikNCiAgICAgICAgICAgICAgICAgICAgIHRwdXRsKHN0 YXR1c19wdHIsIHN0YXR1cyk7DQogICAgICAgICAgICAgICAgIGlmICh0YXJn ZXRfcnVzYWdlKSB7DQotICAgICAgICAgICAgICAgICAgICBob3N0X3RvX3Rh cmdldF9ydXNhZ2UodGFyZ2V0X3J1c2FnZSwgJnJ1c2FnZSk7DQorICAgICAg ICAgICAgICAgICAgICBpZiggY29weV90b191c2VyX3J1c2FnZSh0YXJnZXRf cnVzYWdlLCAmcnVzYWdlKSApDQorICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUZBVUxUOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgfQ0KICAgICAgICAgfQ0K ---1463811327-959732379-1190164160=:20150--