From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IXoTp-00010r-Pm for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:35:53 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IXoTo-00010Z-8O for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:35:52 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IXoTo-00010W-1g for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:35:52 -0400 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IXoTn-000096-IZ for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:35:51 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1IXoTn-000846-00 for ; Tue, 18 Sep 2007 21:35:51 -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 r2j8p0a0ILDC for ; Tue, 18 Sep 2007 21:35:27 -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 1IXoTL-0007xi-00 for ; Tue, 18 Sep 2007 21:35:23 -0400 Date: Tue, 18 Sep 2007 21:35:02 -0400 (EDT) From: Stuart Anderson Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-1608270077-1190165702=:20150" Subject: [Qemu-devel] RFC: [10/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-1608270077-1190165702=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed This part contains the rest of the updates to do_syscall() that contain the changes to the new API for several systcalls, including utime(), sigaction(), rt_sigaction(), rt_sigpending(), sigsuspend(), rt_sigtimedwait(), rt_sigqueueinfo(), stat() and stat64(). 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-1608270077-1190165702=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=06_efault.patch.10 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: efault patch 10 off 11 Content-Disposition: attachment; filename=06_efault.patch.10 SW5kZXg6IHFlbXUvbGludXgtdXNlci9zeXNjYWxsLmMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBxZW11Lm9yaWcvbGludXgtdXNlci9zeXNjYWxs LmMJMjAwNy0wOS0xNyAwMTowOToyNS4wMDAwMDAwMDAgLTA0MDANCisrKyBx ZW11L2xpbnV4LXVzZXIvc3lzY2FsbC5jCTIwMDctMDktMTcgMDE6MTI6NDcu MDAwMDAwMDAwIC0wNDAwDQpAQCAtMjY4NywxMiArMjY4NywxMSBAQA0KICAg ICBjYXNlIFRBUkdFVF9OUl91dGltZToNCiAgICAgICAgIHsNCiAgICAgICAg ICAgICBzdHJ1Y3QgdXRpbWJ1ZiB0YnVmLCAqaG9zdF90YnVmOw0KLSAgICAg ICAgICAgIHN0cnVjdCB0YXJnZXRfdXRpbWJ1ZiAqdGFyZ2V0X3RidWY7DQor ICAgICAgICAgICAgc3RydWN0IHRhcmdldF91dGltYnVmICp0YXJnZXRfdGJ1 ZiA9IChzdHJ1Y3QgdGFyZ2V0X3V0aW1idWYgKilhcmcyOw0KICAgICAgICAg ICAgIGlmIChhcmcyKSB7DQotICAgICAgICAgICAgICAgIGxvY2tfdXNlcl9z dHJ1Y3QodGFyZ2V0X3RidWYsIGFyZzIsIDEpOw0KKwkJaWYoICFhY2Nlc3Nf b2soVkVSSUZZX1JFQUQsdGFyZ2V0X3RidWYsc2l6ZW9mKHN0cnVjdCB0YXJn ZXRfdXRpbWJ1ZikpICkgcmV0dXJuIC1FRkFVTFQ7DQogICAgICAgICAgICAg ICAgIHRidWYuYWN0aW1lID0gdHN3YXBsKHRhcmdldF90YnVmLT5hY3RpbWUp Ow0KICAgICAgICAgICAgICAgICB0YnVmLm1vZHRpbWUgPSB0c3dhcGwodGFy Z2V0X3RidWYtPm1vZHRpbWUpOw0KLSAgICAgICAgICAgICAgICB1bmxvY2tf dXNlcl9zdHJ1Y3QodGFyZ2V0X3RidWYsIGFyZzIsIDApOw0KICAgICAgICAg ICAgICAgICBob3N0X3RidWYgPSAmdGJ1ZjsNCiAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgICAgICBob3N0X3RidWYgPSBOVUxMOw0KQEAg LTI4NzgsMzcgKzI4NzcsMzUgQEANCiAgICAgY2FzZSBUQVJHRVRfTlJfc2ln YWN0aW9uOg0KICAgICAgICAgew0KICNpZiAhZGVmaW5lZChUQVJHRVRfTUlQ UykNCi0gICAgICAgICAgICBzdHJ1Y3QgdGFyZ2V0X29sZF9zaWdhY3Rpb24g Km9sZF9hY3Q7DQorICAgICAgICAgICAgc3RydWN0IHRhcmdldF9vbGRfc2ln YWN0aW9uICpvbGRfYWN0ID0gKHN0cnVjdCB0YXJnZXRfb2xkX3NpZ2FjdGlv biAqKWFyZzI7DQogICAgICAgICAgICAgc3RydWN0IHRhcmdldF9zaWdhY3Rp b24gYWN0LCBvYWN0LCAqcGFjdDsNCiAgICAgICAgICAgICBpZiAoYXJnMikg ew0KLSAgICAgICAgICAgICAgICBsb2NrX3VzZXJfc3RydWN0KG9sZF9hY3Qs IGFyZzIsIDEpOw0KKwkJaWYoICFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsb2xk X2FjdCxzaXplb2YoKm9sZF9hY3QpKSApIHJldHVybiAtRUZBVUxUOw0KICAg ICAgICAgICAgICAgICBhY3QuX3NhX2hhbmRsZXIgPSBvbGRfYWN0LT5fc2Ff aGFuZGxlcjsNCiAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZ2luaXRzZXQo JmFjdC5zYV9tYXNrLCBvbGRfYWN0LT5zYV9tYXNrKTsNCiAgICAgICAgICAg ICAgICAgYWN0LnNhX2ZsYWdzID0gb2xkX2FjdC0+c2FfZmxhZ3M7DQogICAg ICAgICAgICAgICAgIGFjdC5zYV9yZXN0b3JlciA9IG9sZF9hY3QtPnNhX3Jl c3RvcmVyOw0KLSAgICAgICAgICAgICAgICB1bmxvY2tfdXNlcl9zdHJ1Y3Qo b2xkX2FjdCwgYXJnMiwgMCk7DQogICAgICAgICAgICAgICAgIHBhY3QgPSAm YWN0Ow0KICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAg IHBhY3QgPSBOVUxMOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBy ZXQgPSBnZXRfZXJybm8oZG9fc2lnYWN0aW9uKGFyZzEsIHBhY3QsICZvYWN0 KSk7DQogICAgICAgICAgICAgaWYgKCFpc19lcnJvcihyZXQpICYmIGFyZzMp IHsNCi0gICAgICAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdChvbGRfYWN0 LCBhcmczLCAwKTsNCisgICAgICAgICAgICAgICAgb2xkX2FjdCA9IChzdHJ1 Y3QgdGFyZ2V0X29sZF9zaWdhY3Rpb24gKilhcmczOw0KKwkJaWYoICFhY2Nl c3Nfb2soVkVSSUZZX1dSSVRFLG9sZF9hY3Qsc2l6ZW9mKCpvbGRfYWN0KSkg KSByZXR1cm4gLUVGQVVMVDsNCiAgICAgICAgICAgICAgICAgb2xkX2FjdC0+ X3NhX2hhbmRsZXIgPSBvYWN0Ll9zYV9oYW5kbGVyOw0KICAgICAgICAgICAg ICAgICBvbGRfYWN0LT5zYV9tYXNrID0gb2FjdC5zYV9tYXNrLnNpZ1swXTsN CiAgICAgICAgICAgICAgICAgb2xkX2FjdC0+c2FfZmxhZ3MgPSBvYWN0LnNh X2ZsYWdzOw0KICAgICAgICAgICAgICAgICBvbGRfYWN0LT5zYV9yZXN0b3Jl ciA9IG9hY3Quc2FfcmVzdG9yZXI7DQotICAgICAgICAgICAgICAgIHVubG9j a191c2VyX3N0cnVjdChvbGRfYWN0LCBhcmczLCAxKTsNCiAgICAgICAgICAg ICB9DQogI2Vsc2UNCiAJICAgIHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9uIGFj dCwgb2FjdCwgKnBhY3QsICpvbGRfYWN0Ow0KIA0KIAkgICAgaWYgKGFyZzIp IHsNCi0JCWxvY2tfdXNlcl9zdHJ1Y3Qob2xkX2FjdCwgYXJnMiwgMSk7DQor CQlpZiggIWFjY2Vzc19vayhWRVJJRllfUkVBRCxvbGRfYWN0LHNpemVvZigq b2xkX2FjdCkpICkgcmV0dXJuIC1FRkFVTFQ7DQogCQlhY3QuX3NhX2hhbmRs ZXIgPSBvbGRfYWN0LT5fc2FfaGFuZGxlcjsNCiAJCXRhcmdldF9zaWdpbml0 c2V0KCZhY3Quc2FfbWFzaywgb2xkX2FjdC0+c2FfbWFzay5zaWdbMF0pOw0K IAkJYWN0LnNhX2ZsYWdzID0gb2xkX2FjdC0+c2FfZmxhZ3M7DQotCQl1bmxv Y2tfdXNlcl9zdHJ1Y3Qob2xkX2FjdCwgYXJnMiwgMCk7DQogCQlwYWN0ID0g JmFjdDsNCiAJICAgIH0gZWxzZSB7DQogCQlwYWN0ID0gTlVMTDsNCkBAIC0y OTE3LDE0ICsyOTE0LDE0IEBADQogCSAgICByZXQgPSBnZXRfZXJybm8oZG9f c2lnYWN0aW9uKGFyZzEsIHBhY3QsICZvYWN0KSk7DQogDQogCSAgICBpZiAo IWlzX2Vycm9yKHJldCkgJiYgYXJnMykgew0KLQkJbG9ja191c2VyX3N0cnVj dChvbGRfYWN0LCBhcmczLCAwKTsNCisgICAgICAgICAgICAgICAgb2xkX2Fj dCA9IChzdHJ1Y3QgdGFyZ2V0X29sZF9zaWdhY3Rpb24gKilhcmczOw0KKwkJ aWYoICFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLG9sZF9hY3Qsc2l6ZW9mKCpv bGRfYWN0KSkgKSByZXR1cm4gLUVGQVVMVDsNCiAJCW9sZF9hY3QtPl9zYV9o YW5kbGVyID0gb2FjdC5fc2FfaGFuZGxlcjsNCiAJCW9sZF9hY3QtPnNhX2Zs YWdzID0gb2FjdC5zYV9mbGFnczsNCiAJCW9sZF9hY3QtPnNhX21hc2suc2ln WzBdID0gb2FjdC5zYV9tYXNrLnNpZ1swXTsNCiAJCW9sZF9hY3QtPnNhX21h c2suc2lnWzFdID0gMDsNCiAJCW9sZF9hY3QtPnNhX21hc2suc2lnWzJdID0g MDsNCiAJCW9sZF9hY3QtPnNhX21hc2suc2lnWzNdID0gMDsNCi0JCXVubG9j a191c2VyX3N0cnVjdChvbGRfYWN0LCBhcmczLCAxKTsNCiAJICAgIH0NCiAj ZW5kaWYNCiAgICAgICAgIH0NCkBAIC0yOTMyLDIyICsyOTI5LDIwIEBADQog I2VuZGlmDQogICAgIGNhc2UgVEFSR0VUX05SX3J0X3NpZ2FjdGlvbjoNCiAg ICAgICAgIHsNCi0gICAgICAgICAgICBzdHJ1Y3QgdGFyZ2V0X3NpZ2FjdGlv biAqYWN0Ow0KLSAgICAgICAgICAgIHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9u ICpvYWN0Ow0KKyAgICAgICAgICAgIHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9u ICphY3QgPSAoc3RydWN0IHRhcmdldF9zaWdhY3Rpb24gKilhcmcyOw0KKyAg ICAgICAgICAgIHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9uICpvYWN0ID0gKHN0 cnVjdCB0YXJnZXRfc2lnYWN0aW9uICopYXJnMzsNCiANCi0gICAgICAgICAg ICBpZiAoYXJnMikNCi0gICAgICAgICAgICAgICAgbG9ja191c2VyX3N0cnVj dChhY3QsIGFyZzIsIDEpOw0KKyAgICAgICAgICAgIGlmIChhcmcyKSB7DQor CQlpZiggIWFjY2Vzc19vayhWRVJJRllfUkVBRCxhY3Qsc2l6ZW9mKCphY3Qp KSApIHJldHVybiAtRUZBVUxUOw0KKyAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICBhY3QgPSBOVUxMOw0K LSAgICAgICAgICAgIGlmIChhcmczKQ0KLSAgICAgICAgICAgICAgICBsb2Nr X3VzZXJfc3RydWN0KG9hY3QsIGFyZzMsIDApOw0KKyAgICAgICAgICAgIGlm IChhcmczKSB7DQorCQlpZiggIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsb2Fj dCxzaXplb2YoKm9hY3QpKSApIHJldHVybiAtRUZBVUxUOw0KKyAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAg ICBvYWN0ID0gTlVMTDsNCiAgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8o ZG9fc2lnYWN0aW9uKGFyZzEsIGFjdCwgb2FjdCkpOw0KLSAgICAgICAgICAg IGlmIChhcmcyKQ0KLSAgICAgICAgICAgICAgICB1bmxvY2tfdXNlcl9zdHJ1 Y3QoYWN0LCBhcmcyLCAwKTsNCi0gICAgICAgICAgICBpZiAoYXJnMykNCi0g ICAgICAgICAgICAgICAgdW5sb2NrX3VzZXJfc3RydWN0KG9hY3QsIGFyZzMs IDEpOw0KICAgICAgICAgfQ0KICAgICAgICAgYnJlYWs7DQogI2lmZGVmIFRB UkdFVF9OUl9zZ2V0bWFzayAvKiBub3Qgb24gYWxwaGEgKi8NCkBAIC0zMDY0 LDIyICszMDU5LDIyIEBADQogI2VuZGlmDQogICAgIGNhc2UgVEFSR0VUX05S X3J0X3NpZ3BlbmRpbmc6DQogICAgICAgICB7DQorICAgICAgICAgICAgdGFy Z2V0X3NpZ3NldF90ICp0c2lnID0gKHRhcmdldF9zaWdzZXRfdCAqKWFyZzE7 DQogICAgICAgICAgICAgc2lnc2V0X3Qgc2V0Ow0KICAgICAgICAgICAgIHJl dCA9IGdldF9lcnJubyhzaWdwZW5kaW5nKCZzZXQpKTsNCiAgICAgICAgICAg ICBpZiAoIWlzX2Vycm9yKHJldCkpIHsNCi0gICAgICAgICAgICAgICAgcCA9 IGxvY2tfdXNlcihhcmcxLCBzaXplb2YodGFyZ2V0X3NpZ3NldF90KSwgMCk7 DQotICAgICAgICAgICAgICAgIGhvc3RfdG9fdGFyZ2V0X3NpZ3NldChwLCAm c2V0KTsNCi0gICAgICAgICAgICAgICAgdW5sb2NrX3VzZXIocCwgYXJnMSwg c2l6ZW9mKHRhcmdldF9zaWdzZXRfdCkpOw0KKyAgICAgICAgICAgICAgICBp ZiggIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsdHNpZyxzaXplb2YodGFyZ2V0 X3NpZ3NldF90KSkgKSByZXR1cm4gLUVGQVVMVDsNCisgICAgICAgICAgICAg ICAgaG9zdF90b190YXJnZXRfc2lnc2V0KHRzaWcsICZzZXQpOw0KICAgICAg ICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICAgIGJyZWFrOw0KICNpZmRl ZiBUQVJHRVRfTlJfc2lnc3VzcGVuZA0KICAgICBjYXNlIFRBUkdFVF9OUl9z aWdzdXNwZW5kOg0KICAgICAgICAgew0KKyAgICAgICAgICAgIHRhcmdldF9z aWdzZXRfdCAqdHNpZyA9ICh0YXJnZXRfc2lnc2V0X3QgKilhcmcxOw0KICAg ICAgICAgICAgIHNpZ3NldF90IHNldDsNCi0gICAgICAgICAgICBwID0gbG9j a191c2VyKGFyZzEsIHNpemVvZih0YXJnZXRfc2lnc2V0X3QpLCAxKTsNCi0g ICAgICAgICAgICB0YXJnZXRfdG9faG9zdF9vbGRfc2lnc2V0KCZzZXQsIHAp Ow0KLSAgICAgICAgICAgIHVubG9ja191c2VyKHAsIGFyZzEsIDApOw0KKyAg ICAgICAgICAgIGlmKCAhYWNjZXNzX29rKFZFUklGWV9SRUFELHRzaWcsc2l6 ZW9mKHRhcmdldF9zaWdzZXRfdCkpICkgcmV0dXJuIC1FRkFVTFQ7DQorICAg ICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2lnc2V0KCZzZXQsIHRzaWcpOw0K ICAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhzaWdzdXNwZW5kKCZzZXQp KTsNCiAgICAgICAgIH0NCiAgICAgICAgIGJyZWFrOw0KQEAgLTMwOTUsMzMg KzMwOTAsMzMgQEANCiAgICAgICAgIGJyZWFrOw0KICAgICBjYXNlIFRBUkdF VF9OUl9ydF9zaWd0aW1lZHdhaXQ6DQogICAgICAgICB7DQorICAgICAgICAg ICAgdGFyZ2V0X3NpZ3NldF90ICp0c2lnID0gKHRhcmdldF9zaWdzZXRfdCAq KWFyZzE7DQogICAgICAgICAgICAgc2lnc2V0X3Qgc2V0Ow0KICAgICAgICAg ICAgIHN0cnVjdCB0aW1lc3BlYyB1dHMsICpwdXRzOw0KICAgICAgICAgICAg IHNpZ2luZm9fdCB1aW5mbzsNCiAgICAgICAgICAgIA0KLSAgICAgICAgICAg IHAgPSBsb2NrX3VzZXIoYXJnMSwgc2l6ZW9mKHRhcmdldF9zaWdzZXRfdCks IDEpOw0KLSAgICAgICAgICAgIHRhcmdldF90b19ob3N0X3NpZ3NldCgmc2V0 LCBwKTsNCi0gICAgICAgICAgICB1bmxvY2tfdXNlcihwLCBhcmcxLCAwKTsN CisgICAgICAgICAgICBpZiggIWFjY2Vzc19vayhWRVJJRllfUkVBRCx0c2ln LHNpemVvZih0YXJnZXRfc2lnc2V0X3QpKSApIHJldHVybiAtRUZBVUxUOw0K KyAgICAgICAgICAgIHRhcmdldF90b19ob3N0X3NpZ3NldCgmc2V0LCB0c2ln KTsNCiAgICAgICAgICAgICBpZiAoYXJnMykgew0KICAgICAgICAgICAgICAg ICBwdXRzID0gJnV0czsNCi0gICAgICAgICAgICAgICAgY29weV9mcm9tX3Vz ZXJfdGltZXNwZWMocHV0cywgKHN0cnVjdCB0YXJnZXRfdGltZXNwZWMgKilh cmczKTsNCisgICAgICAgICAgICAgICAgaWYoIGNvcHlfZnJvbV91c2VyX3Rp bWVzcGVjKHB1dHMsIChzdHJ1Y3QgdGFyZ2V0X3RpbWVzcGVjICopYXJnMykg KSByZXR1cm4gLUVGQVVMVDsNCiAgICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICAgICBwdXRzID0gTlVMTDsNCiAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgcmV0ID0gZ2V0X2Vycm5vKHNpZ3RpbWVkd2FpdCgmc2V0 LCAmdWluZm8sIHB1dHMpKTsNCiAgICAgICAgICAgICBpZiAoIWlzX2Vycm9y KHJldCkgJiYgYXJnMikgew0KLSAgICAgICAgICAgICAgICBwID0gbG9ja191 c2VyKGFyZzIsIHNpemVvZih0YXJnZXRfc2lnc2V0X3QpLCAwKTsNCi0gICAg ICAgICAgICAgICAgaG9zdF90b190YXJnZXRfc2lnaW5mbyhwLCAmdWluZm8p Ow0KLSAgICAgICAgICAgICAgICB1bmxvY2tfdXNlcihwLCBhcmcyLCBzaXpl b2YodGFyZ2V0X3NpZ3NldF90KSk7DQorICAgICAgICAgICAgICAgIHRzaWcg PSAodGFyZ2V0X3NpZ3NldF90ICopYXJnMjsNCisgICAgICAgICAgICAgICAg aWYoICFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLHRzaWcsc2l6ZW9mKHRhcmdl dF9zaWdzZXRfdCkpICkgcmV0dXJuIC1FRkFVTFQ7DQorICAgICAgICAgICAg ICAgIGhvc3RfdG9fdGFyZ2V0X3NpZ2luZm8odHNpZywgJnVpbmZvKTsNCiAg ICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgICAgICBicmVhazsNCiAg ICAgY2FzZSBUQVJHRVRfTlJfcnRfc2lncXVldWVpbmZvOg0KICAgICAgICAg ew0KKyAgICAgICAgICAgIHRhcmdldF9zaWdzZXRfdCAqdHNpZyA9ICh0YXJn ZXRfc2lnc2V0X3QgKilhcmczOw0KICAgICAgICAgICAgIHNpZ2luZm9fdCB1 aW5mbzsNCi0gICAgICAgICAgICBwID0gbG9ja191c2VyKGFyZzMsIHNpemVv Zih0YXJnZXRfc2lnc2V0X3QpLCAxKTsNCi0gICAgICAgICAgICB0YXJnZXRf dG9faG9zdF9zaWdpbmZvKCZ1aW5mbywgcCk7DQotICAgICAgICAgICAgdW5s b2NrX3VzZXIocCwgYXJnMSwgMCk7DQorICAgICAgICAgICAgaWYoICFhY2Nl c3Nfb2soVkVSSUZZX1JFQUQsdHNpZyxzaXplb2YodGFyZ2V0X3NpZ2luZm9f dCkpICkgcmV0dXJuIC1FRkFVTFQ7DQorICAgICAgICAgICAgdGFyZ2V0X3Rv X2hvc3Rfc2lnaW5mbygmdWluZm8sIHRzaWcpOw0KICAgICAgICAgICAgIHJl dCA9IGdldF9lcnJubyhzeXNfcnRfc2lncXVldWVpbmZvKGFyZzEsIGFyZzIs ICZ1aW5mbykpOw0KICAgICAgICAgfQ0KICAgICAgICAgYnJlYWs7DQpAQCAt MzE4MywxNCArMzE3OCwxNCBAQA0KICAgICAgICAgICAgIHN0cnVjdCB0aW1l dmFsIHR2Ow0KICAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhnZXR0aW1l b2ZkYXkoJnR2LCBOVUxMKSk7DQogICAgICAgICAgICAgaWYgKCFpc19lcnJv cihyZXQpKSB7DQotICAgICAgICAgICAgICAgIGNvcHlfdG9fdXNlcl90aW1l dmFsKGFyZzEsICZ0dik7DQorICAgICAgICAgICAgICAgIGlmKCBjb3B5X3Rv X3VzZXJfdGltZXZhbCgoc3RydWN0IHRhcmdldF90aW1ldmFsICopYXJnMSwg JnR2KSApIHJldHVybiAtRUZBVUxUOw0KICAgICAgICAgICAgIH0NCiAgICAg ICAgIH0NCiAgICAgICAgIGJyZWFrOw0KICAgICBjYXNlIFRBUkdFVF9OUl9z ZXR0aW1lb2ZkYXk6DQogICAgICAgICB7DQogICAgICAgICAgICAgc3RydWN0 IHRpbWV2YWwgdHY7DQotICAgICAgICAgICAgY29weV9mcm9tX3VzZXJfdGlt ZXZhbCgmdHYsIGFyZzEpOw0KKyAgICAgICAgICAgIGlmKCBjb3B5X2Zyb21f dXNlcl90aW1ldmFsKCZ0diwgKHN0cnVjdCB0YXJnZXRfdGltZXZhbCAqKWFy ZzEpICkgcmV0dXJuIC1FRkFVTFQ7DQogICAgICAgICAgICAgcmV0ID0gZ2V0 X2Vycm5vKHNldHRpbWVvZmRheSgmdHYsIE5VTEwpKTsNCiAgICAgICAgIH0N CiAgICAgICAgIGJyZWFrOw0KQEAgLTM0MTUsNyArMzQxMCw3IEBADQogI2Vu ZGlmDQogI2lmZGVmIFRBUkdFVF9OUl9hY2NlcHQNCiAgICAgY2FzZSBUQVJH RVRfTlJfYWNjZXB0Og0KLSAgICAgICAgcmV0ID0gZG9fYWNjZXB0KGFyZzEs IGFyZzIsIGFyZzMpOw0KKyAgICAgICAgcmV0ID0gZG9fYWNjZXB0KGFyZzEs IGFyZzIsIChzb2NrbGVuX3QgKilhcmczKTsNCiAgICAgICAgIGJyZWFrOw0K ICNlbmRpZg0KICNpZmRlZiBUQVJHRVRfTlJfYmluZA0KQEAgLTM0MzAsMTcg KzM0MjUsMTcgQEANCiAjZW5kaWYNCiAjaWZkZWYgVEFSR0VUX05SX2dldHBl ZXJuYW1lDQogICAgIGNhc2UgVEFSR0VUX05SX2dldHBlZXJuYW1lOg0KLSAg ICAgICAgcmV0ID0gZG9fZ2V0cGVlcm5hbWUoYXJnMSwgYXJnMiwgYXJnMyk7 DQorICAgICAgICByZXQgPSBkb19nZXRwZWVybmFtZShhcmcxLCBhcmcyLCAo c29ja2xlbl90ICopYXJnMyk7DQogICAgICAgICBicmVhazsNCiAjZW5kaWYN CiAjaWZkZWYgVEFSR0VUX05SX2dldHNvY2tuYW1lDQogICAgIGNhc2UgVEFS R0VUX05SX2dldHNvY2tuYW1lOg0KLSAgICAgICAgcmV0ID0gZG9fZ2V0c29j a25hbWUoYXJnMSwgYXJnMiwgYXJnMyk7DQorICAgICAgICByZXQgPSBkb19n ZXRzb2NrbmFtZShhcmcxLCBhcmcyLCAoc29ja2xlbl90ICopYXJnMyk7DQog ICAgICAgICBicmVhazsNCiAjZW5kaWYNCiAjaWZkZWYgVEFSR0VUX05SX2dl dHNvY2tvcHQNCiAgICAgY2FzZSBUQVJHRVRfTlJfZ2V0c29ja29wdDoNCi0g ICAgICAgIHJldCA9IGRvX2dldHNvY2tvcHQoYXJnMSwgYXJnMiwgYXJnMywg YXJnNCwgYXJnNSk7DQorICAgICAgICByZXQgPSBkb19nZXRzb2Nrb3B0KGFy ZzEsIGFyZzIsIGFyZzMsIGFyZzQsIChzb2NrbGVuX3QgKilhcmc1KTsNCiAg ICAgICAgIGJyZWFrOw0KICNlbmRpZg0KICNpZmRlZiBUQVJHRVRfTlJfbGlz dGVuDQpAQCAtMzU0NiwxMSArMzU0MSwxMyBAQA0KICAgICAgICAgYnJlYWs7 DQogICAgIGNhc2UgVEFSR0VUX05SX3N0YXQ6DQogICAgICAgICBwID0gbG9j a191c2VyX3N0cmluZyhhcmcxKTsNCisgICAgICAgIGlmKCAhYWNjZXNzX29r KFZFUklGWV9SRUFELHAsMSkgKSByZXR1cm4gLUVGQVVMVDsNCiAgICAgICAg IHJldCA9IGdldF9lcnJubyhzdGF0KHBhdGgocCksICZzdCkpOw0KICAgICAg ICAgdW5sb2NrX3VzZXIocCwgYXJnMSwgMCk7DQogICAgICAgICBnb3RvIGRv X3N0YXQ7DQogICAgIGNhc2UgVEFSR0VUX05SX2xzdGF0Og0KICAgICAgICAg cCA9IGxvY2tfdXNlcl9zdHJpbmcoYXJnMSk7DQorICAgICAgICBpZiggIWFj Y2Vzc19vayhWRVJJRllfUkVBRCxwLDEpICkgcmV0dXJuIC1FRkFVTFQ7DQog ICAgICAgICByZXQgPSBnZXRfZXJybm8obHN0YXQocGF0aChwKSwgJnN0KSk7 DQogICAgICAgICB1bmxvY2tfdXNlcihwLCBhcmcxLCAwKTsNCiAgICAgICAg IGdvdG8gZG9fc3RhdDsNCkBAIC0zNTU5LDkgKzM1NTYsOSBAQA0KICAgICAg ICAgICAgIHJldCA9IGdldF9lcnJubyhmc3RhdChhcmcxLCAmc3QpKTsNCiAg ICAgICAgIGRvX3N0YXQ6DQogICAgICAgICAgICAgaWYgKCFpc19lcnJvcihy ZXQpKSB7DQotICAgICAgICAgICAgICAgIHN0cnVjdCB0YXJnZXRfc3RhdCAq dGFyZ2V0X3N0Ow0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgdGFyZ2V0X3N0 YXQgKnRhcmdldF9zdCA9IChzdHJ1Y3QgdGFyZ2V0X3N0YXQgKilhcmcyOw0K IA0KLSAgICAgICAgICAgICAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9z dCwgYXJnMiwgMCk7DQorICAgICAgICAgICAgICAgIGlmKCAhYWNjZXNzX29r KFZFUklGWV9XUklURSx0YXJnZXRfc3Qsc2l6ZW9mKCp0YXJnZXRfc3QpKSAp IHJldHVybiAtRUZBVUxUOw0KICNpZiBkZWZpbmVkKFRBUkdFVF9NSVBTKSB8 fCBkZWZpbmVkKFRBUkdFVF9TUEFSQzY0KQ0KICAgICAgICAgICAgICAgICB0 YXJnZXRfc3QtPnN0X2RldiA9IHRzd2FwMzIoc3Quc3RfZGV2KTsNCiAjZWxz ZQ0KQEAgLTM1OTgsNyArMzU5NSw2IEBADQogICAgICAgICAgICAgICAgIHRh cmdldF9zdC0+dGFyZ2V0X3N0X2F0aW1lID0gdHN3YXBsKHN0LnN0X2F0aW1l KTsNCiAgICAgICAgICAgICAgICAgdGFyZ2V0X3N0LT50YXJnZXRfc3RfbXRp bWUgPSB0c3dhcGwoc3Quc3RfbXRpbWUpOw0KICAgICAgICAgICAgICAgICB0 YXJnZXRfc3QtPnRhcmdldF9zdF9jdGltZSA9IHRzd2FwbChzdC5zdF9jdGlt ZSk7DQotICAgICAgICAgICAgICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJn ZXRfc3QsIGFyZzIsIDEpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0N CiAgICAgICAgIGJyZWFrOw0KQEAgLTM2MjcsNyArMzYyMyw3IEBADQogICAg ICAgICAgICAgaW50IHN0YXR1czsNCiAgICAgICAgICAgICB0YXJnZXRfbG9u ZyBzdGF0dXNfcHRyID0gYXJnMjsNCiAgICAgICAgICAgICBzdHJ1Y3QgcnVz YWdlIHJ1c2FnZSwgKnJ1c2FnZV9wdHI7DQotICAgICAgICAgICAgdGFyZ2V0 X3Vsb25nIHRhcmdldF9ydXNhZ2UgPSBhcmc0Ow0KKyAgICAgICAgICAgIHN0 cnVjdCB0YXJnZXRfcnVzYWdlICp0YXJnZXRfcnVzYWdlID0gKHN0cnVjdCB0 YXJnZXRfcnVzYWdlICopYXJnNDsNCiAgICAgICAgICAgICBpZiAodGFyZ2V0 X3J1c2FnZSkNCiAgICAgICAgICAgICAgICAgcnVzYWdlX3B0ciA9ICZydXNh Z2U7DQogICAgICAgICAgICAgZWxzZQ0KQEAgLTQxMDcsNiArNDEwMyw3IEBA DQogI2lmZGVmIFRBUkdFVF9OUl9zdGF0NjQNCiAgICAgY2FzZSBUQVJHRVRf TlJfc3RhdDY0Og0KICAgICAgICAgcCA9IGxvY2tfdXNlcl9zdHJpbmcoYXJn MSk7DQorICAgICAgICBpZiggIWFjY2Vzc19vayhWRVJJRllfUkVBRCxwLDEp ICkgcmV0dXJuIC1FRkFVTFQ7DQogICAgICAgICByZXQgPSBnZXRfZXJybm8o c3RhdChwYXRoKHApLCAmc3QpKTsNCiAgICAgICAgIHVubG9ja191c2VyKHAs IGFyZzEsIDApOw0KICAgICAgICAgZ290byBkb19zdGF0NjQ7DQpAQCAtNDEx NCw2ICs0MTExLDcgQEANCiAjaWZkZWYgVEFSR0VUX05SX2xzdGF0NjQNCiAg ICAgY2FzZSBUQVJHRVRfTlJfbHN0YXQ2NDoNCiAgICAgICAgIHAgPSBsb2Nr X3VzZXJfc3RyaW5nKGFyZzEpOw0KKyAgICAgICAgaWYoICFhY2Nlc3Nfb2so VkVSSUZZX1JFQUQscCwxKSApIHJldHVybiAtRUZBVUxUOw0KICAgICAgICAg cmV0ID0gZ2V0X2Vycm5vKGxzdGF0KHBhdGgocCksICZzdCkpOw0KICAgICAg ICAgdW5sb2NrX3VzZXIocCwgYXJnMSwgMCk7DQogICAgICAgICBnb3RvIGRv X3N0YXQ2NDsNCg== ---1463811327-1608270077-1190165702=:20150--