From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HX60O-0002UW-Cy for qemu-devel@nongnu.org; Thu, 29 Mar 2007 21:34:16 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HX60M-0002UF-KA for qemu-devel@nongnu.org; Thu, 29 Mar 2007 21:34:15 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HX60M-0002UC-Dz for qemu-devel@nongnu.org; Thu, 29 Mar 2007 20:34:14 -0500 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HX5xh-0008IN-FU for qemu-devel@nongnu.org; Thu, 29 Mar 2007 21:31:30 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1HX5xK-00085M-00 for ; Thu, 29 Mar 2007 21:31:06 -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 iX62MfWF1aFE for ; Thu, 29 Mar 2007 21:30:48 -0400 (EDT) Received: from h211.241.141.67.ip.alltel.net ([67.141.241.211] helo=trantor.stuart.netsweng.com) by grayson.netsweng.com with esmtp (Exim 3.36 #1 (Debian)) id 1HX5x1-000859-00 for ; Thu, 29 Mar 2007 21:30:47 -0400 Date: Thu, 29 Mar 2007 21:30:22 -0400 (EDT) From: Stuart Anderson Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-308536384-1175218222=:514" Subject: [Qemu-devel] [PATCH] semaphore syscalls - refresh 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-308536384-1175218222=:514 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed This is a refresh of a prior patch to fix the semaphore system calls sem*() in user-linux mode. Some additional cases have been dealt with, and a small amount of code re-arrainging to prepare for the EFAULT patch. Tested using Linux Test Project in the target. 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-308536384-1175218222=:514 Content-Type: TEXT/x-diff; charset=US-ASCII; name=03_semcalls.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Semaphore patch Content-Disposition: attachment; filename=03_semcalls.patch SW5kZXg6IHFlbXUvbGludXgtdXNlci9pMzg2L3N5c2NhbGwuaA0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL2kz ODYvc3lzY2FsbC5oCTIwMDctMDMtMjMgMDk6MDU6MTkuMDAwMDAwMDAwIC0w NDAwDQorKysgcWVtdS9saW51eC11c2VyL2kzODYvc3lzY2FsbC5oCTIwMDct MDMtMjMgMDk6MDU6MzIuMDAwMDAwMDAwIC0wNDAwDQpAQCAtMTQyLDgwICsx NDIsNCBAQA0KIAlzdHJ1Y3QgdGFyZ2V0X3ZtODZwbHVzX2luZm9fc3RydWN0 IHZtODZwbHVzOw0KIH07DQogDQotLyogaXBjcyAqLw0KLQ0KLSNkZWZpbmUg VEFSR0VUX1NFTU9QICAgICAgICAgICAxDQotI2RlZmluZSBUQVJHRVRfU0VN R0VUICAgICAgICAgIDINCi0jZGVmaW5lIFRBUkdFVF9TRU1DVEwgICAgICAg ICAgMyANCi0jZGVmaW5lIFRBUkdFVF9NU0dTTkQgICAgICAgICAgMTEgDQot I2RlZmluZSBUQVJHRVRfTVNHUkNWICAgICAgICAgIDEyDQotI2RlZmluZSBU QVJHRVRfTVNHR0VUICAgICAgICAgIDEzDQotI2RlZmluZSBUQVJHRVRfTVNH Q1RMICAgICAgICAgIDE0DQotI2RlZmluZSBUQVJHRVRfU0hNQVQgICAgICAg ICAgIDIxDQotI2RlZmluZSBUQVJHRVRfU0hNRFQgICAgICAgICAgIDIyDQot I2RlZmluZSBUQVJHRVRfU0hNR0VUICAgICAgICAgIDIzDQotI2RlZmluZSBU QVJHRVRfU0hNQ1RMICAgICAgICAgIDI0DQotDQotc3RydWN0IHRhcmdldF9t c2didWYgew0KLQlpbnQgbXR5cGU7DQotCWNoYXIgbXRleHRbMV07DQotfTsN Ci0NCi1zdHJ1Y3QgdGFyZ2V0X2lwY19rbHVkZ2Ugew0KLQl1bnNpZ25lZCBp bnQJbXNncDsJLyogUmVhbGx5IChzdHJ1Y3QgbXNnYnVmICopICovDQotCWlu dCBtc2d0eXA7DQotfTsJDQotDQotc3RydWN0IHRhcmdldF9pcGNfcGVybSB7 DQotCWludAlrZXk7DQotCXVuc2lnbmVkIHNob3J0CXVpZDsNCi0JdW5zaWdu ZWQgc2hvcnQJZ2lkOw0KLQl1bnNpZ25lZCBzaG9ydAljdWlkOw0KLQl1bnNp Z25lZCBzaG9ydAljZ2lkOw0KLQl1bnNpZ25lZCBzaG9ydAltb2RlOw0KLQl1 bnNpZ25lZCBzaG9ydAlzZXE7DQotfTsNCi0NCi1zdHJ1Y3QgdGFyZ2V0X21z cWlkX2RzIHsNCi0Jc3RydWN0IHRhcmdldF9pcGNfcGVybQltc2dfcGVybTsN Ci0JdW5zaWduZWQgaW50CQltc2dfZmlyc3Q7CS8qIHJlYWxseSBzdHJ1Y3Qg dGFyZ2V0X21zZyogKi8NCi0JdW5zaWduZWQgaW50CQltc2dfbGFzdDsJLyog cmVhbGx5IHN0cnVjdCB0YXJnZXRfbXNnKiAqLw0KLQl1bnNpZ25lZCBpbnQJ CW1zZ19zdGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5z aWduZWQgaW50CQltc2dfcnRpbWU7CS8qIHJlYWxseSB0YXJnZXRfdGltZV90 ICovDQotCXVuc2lnbmVkIGludAkJbXNnX2N0aW1lOwkvKiByZWFsbHkgdGFy Z2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJCXd3YWl0OwkJLyogcmVh bGx5IHN0cnVjdCB3YWl0X3F1ZXVlKiAqLw0KLQl1bnNpZ25lZCBpbnQJCXJ3 YWl0OwkJLyogcmVhbGx5IHN0cnVjdCB3YWl0X3F1ZXVlKiAqLw0KLQl1bnNp Z25lZCBzaG9ydAkJbXNnX2NieXRlczsNCi0JdW5zaWduZWQgc2hvcnQJCW1z Z19xbnVtOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNnX3FieXRlczsNCi0JdW5z aWduZWQgc2hvcnQJCW1zZ19sc3BpZDsNCi0JdW5zaWduZWQgc2hvcnQJCW1z Z19scnBpZDsNCi19Ow0KLQ0KLXN0cnVjdCB0YXJnZXRfc2htaWRfZHMgew0K LQlzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtCXNobV9wZXJtOw0KLQlpbnQJCQlz aG1fc2Vnc3o7DQotCXVuc2lnbmVkIGludAkJc2htX2F0aW1lOwkvKiByZWFs bHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJCXNobV9kdGlt ZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5zaWduZWQgaW50 CQlzaG1fY3RpbWU7CS8qIHJlYWxseSB0YXJnZXRfdGltZV90ICovDQotCXVu c2lnbmVkIHNob3J0CQlzaG1fY3BpZDsNCi0JdW5zaWduZWQgc2hvcnQJCXNo bV9scGlkOw0KLQlzaG9ydAkJCXNobV9uYXR0Y2g7DQotCXVuc2lnbmVkIHNo b3J0CQlzaG1fbnBhZ2VzOw0KLQl1bnNpZ25lZCBsb25nCQkqc2htX3BhZ2Vz Ow0KLQl2b2lkIAkJCSphdHRhY2hlczsJLyogcmVhbGx5IHN0cnVjdCBzaG1f ZGVzYyAqICovDQotfTsNCi0NCi0jZGVmaW5lIFRBUkdFVF9JUENfUk1JRAkw DQotI2RlZmluZSBUQVJHRVRfSVBDX1NFVAkxDQotI2RlZmluZSBUQVJHRVRf SVBDX1NUQVQJMg0KLQ0KLXVuaW9uIHRhcmdldF9zZW11biB7DQotICAgIGlu dCB2YWw7DQotICAgIHVuc2lnbmVkIGludCBidWY7CS8qIHJlYWxseSBzdHJ1 Y3Qgc2VtaWRfZHMgKiAqLw0KLSAgICB1bnNpZ25lZCBpbnQgYXJyYXk7IC8q IHJlYWxseSB1bnNpZ25lZCBzaG9ydCAqICovDQotICAgIHVuc2lnbmVkIGlu dCBfX2J1ZjsJLyogcmVhbGx5IHN0cnVjdCBzZW1pbmZvICogKi8NCi0gICAg dW5zaWduZWQgaW50IF9fcGFkOwkvKiByZWFsbHkgdm9pZCogKi8NCi19Ow0K LQ0KICNkZWZpbmUgVU5BTUVfTUFDSElORSAiaTY4NiINCkluZGV4OiBxZW11 L2xpbnV4LXVzZXIvcHBjL3N5c2NhbGwuaA0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL3BwYy9zeXNjYWxsLmgJ MjAwNy0wMy0yMyAwOTowNToxOS4wMDAwMDAwMDAgLTA0MDANCisrKyBxZW11 L2xpbnV4LXVzZXIvcHBjL3N5c2NhbGwuaAkyMDA3LTAzLTIzIDA5OjA1OjMy LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTUxLDgwICs1MSw0IEBADQogICogZmxh Z3MgbWFza3MNCiAgKi8NCiANCi0vKiBpcGNzICovDQotDQotI2RlZmluZSBU QVJHRVRfU0VNT1AgICAgICAgICAgIDENCi0jZGVmaW5lIFRBUkdFVF9TRU1H RVQgICAgICAgICAgMg0KLSNkZWZpbmUgVEFSR0VUX1NFTUNUTCAgICAgICAg ICAzIA0KLSNkZWZpbmUgVEFSR0VUX01TR1NORCAgICAgICAgICAxMSANCi0j ZGVmaW5lIFRBUkdFVF9NU0dSQ1YgICAgICAgICAgMTINCi0jZGVmaW5lIFRB UkdFVF9NU0dHRVQgICAgICAgICAgMTMNCi0jZGVmaW5lIFRBUkdFVF9NU0dD VEwgICAgICAgICAgMTQNCi0jZGVmaW5lIFRBUkdFVF9TSE1BVCAgICAgICAg ICAgMjENCi0jZGVmaW5lIFRBUkdFVF9TSE1EVCAgICAgICAgICAgMjINCi0j ZGVmaW5lIFRBUkdFVF9TSE1HRVQgICAgICAgICAgMjMNCi0jZGVmaW5lIFRB UkdFVF9TSE1DVEwgICAgICAgICAgMjQNCi0NCi1zdHJ1Y3QgdGFyZ2V0X21z Z2J1ZiB7DQotCWludCBtdHlwZTsNCi0JY2hhciBtdGV4dFsxXTsNCi19Ow0K LQ0KLXN0cnVjdCB0YXJnZXRfaXBjX2tsdWRnZSB7DQotCXVuc2lnbmVkIGlu dAltc2dwOwkvKiBSZWFsbHkgKHN0cnVjdCBtc2didWYgKikgKi8NCi0JaW50 IG1zZ3R5cDsNCi19OwkNCi0NCi1zdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtIHsN Ci0JaW50CWtleTsNCi0JdW5zaWduZWQgc2hvcnQJdWlkOw0KLQl1bnNpZ25l ZCBzaG9ydAlnaWQ7DQotCXVuc2lnbmVkIHNob3J0CWN1aWQ7DQotCXVuc2ln bmVkIHNob3J0CWNnaWQ7DQotCXVuc2lnbmVkIHNob3J0CW1vZGU7DQotCXVu c2lnbmVkIHNob3J0CXNlcTsNCi19Ow0KLQ0KLXN0cnVjdCB0YXJnZXRfbXNx aWRfZHMgew0KLQlzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtCW1zZ19wZXJtOw0K LQl1bnNpZ25lZCBpbnQJCW1zZ19maXJzdDsJLyogcmVhbGx5IHN0cnVjdCB0 YXJnZXRfbXNnKiAqLw0KLQl1bnNpZ25lZCBpbnQJCW1zZ19sYXN0OwkvKiBy ZWFsbHkgc3RydWN0IHRhcmdldF9tc2cqICovDQotCXVuc2lnbmVkIGludAkJ bXNnX3N0aW1lOwkvKiByZWFsbHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNp Z25lZCBpbnQJCW1zZ19ydGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3Qg Ki8NCi0JdW5zaWduZWQgaW50CQltc2dfY3RpbWU7CS8qIHJlYWxseSB0YXJn ZXRfdGltZV90ICovDQotCXVuc2lnbmVkIGludAkJd3dhaXQ7CQkvKiByZWFs bHkgc3RydWN0IHdhaXRfcXVldWUqICovDQotCXVuc2lnbmVkIGludAkJcndh aXQ7CQkvKiByZWFsbHkgc3RydWN0IHdhaXRfcXVldWUqICovDQotCXVuc2ln bmVkIHNob3J0CQltc2dfY2J5dGVzOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNn X3FudW07DQotCXVuc2lnbmVkIHNob3J0CQltc2dfcWJ5dGVzOw0KLQl1bnNp Z25lZCBzaG9ydAkJbXNnX2xzcGlkOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNn X2xycGlkOw0KLX07DQotDQotc3RydWN0IHRhcmdldF9zaG1pZF9kcyB7DQot CXN0cnVjdCB0YXJnZXRfaXBjX3Blcm0Jc2htX3Blcm07DQotCWludAkJCXNo bV9zZWdzejsNCi0JdW5zaWduZWQgaW50CQlzaG1fYXRpbWU7CS8qIHJlYWxs eSB0YXJnZXRfdGltZV90ICovDQotCXVuc2lnbmVkIGludAkJc2htX2R0aW1l OwkvKiByZWFsbHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJ CXNobV9jdGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5z aWduZWQgc2hvcnQJCXNobV9jcGlkOw0KLQl1bnNpZ25lZCBzaG9ydAkJc2ht X2xwaWQ7DQotCXNob3J0CQkJc2htX25hdHRjaDsNCi0JdW5zaWduZWQgc2hv cnQJCXNobV9ucGFnZXM7DQotCXVuc2lnbmVkIGxvbmcJCSpzaG1fcGFnZXM7 DQotCXZvaWQgCQkJKmF0dGFjaGVzOwkvKiByZWFsbHkgc3RydWN0IHNobV9k ZXNjICogKi8NCi19Ow0KLQ0KLSNkZWZpbmUgVEFSR0VUX0lQQ19STUlECTAN Ci0jZGVmaW5lIFRBUkdFVF9JUENfU0VUCTENCi0jZGVmaW5lIFRBUkdFVF9J UENfU1RBVAkyDQotDQotdW5pb24gdGFyZ2V0X3NlbXVuIHsNCi0gICAgaW50 IHZhbDsNCi0gICAgdW5zaWduZWQgaW50IGJ1ZjsJLyogcmVhbGx5IHN0cnVj dCBzZW1pZF9kcyAqICovDQotICAgIHVuc2lnbmVkIGludCBhcnJheTsgLyog cmVhbGx5IHVuc2lnbmVkIHNob3J0ICogKi8NCi0gICAgdW5zaWduZWQgaW50 IF9fYnVmOwkvKiByZWFsbHkgc3RydWN0IHNlbWluZm8gKiAqLw0KLSAgICB1 bnNpZ25lZCBpbnQgX19wYWQ7CS8qIHJlYWxseSB2b2lkKiAqLw0KLX07DQot DQogI2RlZmluZSBVTkFNRV9NQUNISU5FICJwcGMiDQpJbmRleDogcWVtdS9s aW51eC11c2VyL3N5c2NhbGwuYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K LS0tIHFlbXUub3JpZy9saW51eC11c2VyL3N5c2NhbGwuYwkyMDA3LTAzLTIz IDA5OjA1OjE5LjAwMDAwMDAwMCAtMDQwMA0KKysrIHFlbXUvbGludXgtdXNl ci9zeXNjYWxsLmMJMjAwNy0wMy0yMyAwOTowNTo0OS4wMDAwMDAwMDAgLTA0 MDANCkBAIC0xMTIzLDEyICsxMTIzLDIwNSBAQA0KICAgICB1aW50MzJfdAlz aXplOw0KIH0gc2htX3JlZ2lvbnNbTl9TSE1fUkVHSU9OU107DQogDQorc3Ry dWN0IHRhcmdldF9pcGNfcGVybQ0KK3sNCisgICAgdGFyZ2V0X2xvbmcgX19r ZXk7DQorICAgIHRhcmdldF91bG9uZyB1aWQ7DQorICAgIHRhcmdldF91bG9u ZyBnaWQ7DQorICAgIHRhcmdldF91bG9uZyBjdWlkOw0KKyAgICB0YXJnZXRf dWxvbmcgY2dpZDsNCisgICAgdW5zaWduZWQgc2hvcnQgaW50IG1vZGU7DQor ICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7DQorICAgIHVuc2lnbmVk IHNob3J0IGludCBfX3NlcTsNCisgICAgdW5zaWduZWQgc2hvcnQgaW50IF9f cGFkMjsNCisgICAgdGFyZ2V0X3Vsb25nIF9fdW51c2VkMTsNCisgICAgdGFy Z2V0X3Vsb25nIF9fdW51c2VkMjsNCit9Ow0KKw0KK3N0cnVjdCB0YXJnZXRf c2VtaWRfZHMNCit7DQorICBzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtIHNlbV9w ZXJtOw0KKyAgdGFyZ2V0X3Vsb25nIHNlbV9vdGltZTsNCisgIHRhcmdldF91 bG9uZyBfX3VudXNlZDE7DQorICB0YXJnZXRfdWxvbmcgc2VtX2N0aW1lOw0K KyAgdGFyZ2V0X3Vsb25nIF9fdW51c2VkMjsNCisgIHRhcmdldF91bG9uZyBz ZW1fbnNlbXM7DQorICB0YXJnZXRfdWxvbmcgX191bnVzZWQzOw0KKyAgdGFy Z2V0X3Vsb25nIF9fdW51c2VkNDsNCit9Ow0KKw0KK3N0YXRpYyBpbmxpbmUg dm9pZCB0YXJnZXRfdG9faG9zdF9pcGNfcGVybShzdHJ1Y3QgaXBjX3Blcm0g Kmhvc3RfaXAsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkcikNCit7DQorICAg IHN0cnVjdCB0YXJnZXRfaXBjX3Blcm0gKnRhcmdldF9pcDsNCisgICAgc3Ry dWN0IHRhcmdldF9zZW1pZF9kcyAqdGFyZ2V0X3NkOw0KKw0KKyAgICBsb2Nr X3VzZXJfc3RydWN0KHRhcmdldF9zZCwgdGFyZ2V0X2FkZHIsIDEpOw0KKyAg ICB0YXJnZXRfaXA9Jih0YXJnZXRfc2QtPnNlbV9wZXJtKTsNCisgICAgaG9z dF9pcC0+X19rZXkgPSB0c3dhcGwodGFyZ2V0X2lwLT5fX2tleSk7DQorICAg IGhvc3RfaXAtPnVpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPnVpZCk7DQorICAg IGhvc3RfaXAtPmdpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPmdpZCk7DQorICAg IGhvc3RfaXAtPmN1aWQgPSB0c3dhcGwodGFyZ2V0X2lwLT5jdWlkKTsNCisg ICAgaG9zdF9pcC0+Y2dpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPmNnaWQpOw0K KyAgICBob3N0X2lwLT5tb2RlID0gdHN3YXBsKHRhcmdldF9pcC0+bW9kZSk7 DQorICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9h ZGRyLCAwKTsNCit9DQorDQorc3RhdGljIGlubGluZSB2b2lkIGhvc3RfdG9f dGFyZ2V0X2lwY19wZXJtKHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGlwY19wZXJtICpob3N0X2lwKQ0KK3sNCisgICAgc3RydWN0IHRhcmdl dF9pcGNfcGVybSAqdGFyZ2V0X2lwOw0KKyAgICBzdHJ1Y3QgdGFyZ2V0X3Nl bWlkX2RzICp0YXJnZXRfc2Q7DQorDQorICAgIGxvY2tfdXNlcl9zdHJ1Y3Qo dGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMCk7DQorICAgIHRhcmdldF9pcCA9 ICYodGFyZ2V0X3NkLT5zZW1fcGVybSk7DQorICAgIHRhcmdldF9pcC0+X19r ZXkgPSB0c3dhcGwoaG9zdF9pcC0+X19rZXkpOw0KKyAgICB0YXJnZXRfaXAt PnVpZCA9IHRzd2FwbChob3N0X2lwLT51aWQpOw0KKyAgICB0YXJnZXRfaXAt PmdpZCA9IHRzd2FwbChob3N0X2lwLT5naWQpOw0KKyAgICB0YXJnZXRfaXAt PmN1aWQgPSB0c3dhcGwoaG9zdF9pcC0+Y3VpZCk7DQorICAgIHRhcmdldF9p cC0+Y2dpZCA9IHRzd2FwbChob3N0X2lwLT5jZ2lkKTsNCisgICAgdGFyZ2V0 X2lwLT5tb2RlID0gdHN3YXBsKGhvc3RfaXAtPm1vZGUpOw0KKyAgICB1bmxv Y2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMSk7DQor fQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB0YXJnZXRfdG9faG9zdF9zZW1p ZF9kcyhzdHJ1Y3Qgc2VtaWRfZHMgKmhvc3Rfc2QsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIHRh cmdldF9hZGRyKQ0KK3sNCisgICAgc3RydWN0IHRhcmdldF9zZW1pZF9kcyAq dGFyZ2V0X3NkOw0KKw0KKyAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9z ZCwgdGFyZ2V0X2FkZHIsIDEpOw0KKyAgICB0YXJnZXRfdG9faG9zdF9pcGNf cGVybSgmKGhvc3Rfc2QtPnNlbV9wZXJtKSx0YXJnZXRfYWRkcik7DQorICAg IGhvc3Rfc2QtPnNlbV9uc2VtcyA9IHRzd2FwbCh0YXJnZXRfc2QtPnNlbV9u c2Vtcyk7DQorICAgIGhvc3Rfc2QtPnNlbV9vdGltZSA9IHRzd2FwbCh0YXJn ZXRfc2QtPnNlbV9vdGltZSk7DQorICAgIGhvc3Rfc2QtPnNlbV9jdGltZSA9 IHRzd2FwbCh0YXJnZXRfc2QtPnNlbV9jdGltZSk7DQorICAgIHVubG9ja191 c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9hZGRyLCAwKTsNCit9DQor DQorc3RhdGljIGlubGluZSB2b2lkIGhvc3RfdG9fdGFyZ2V0X3NlbWlkX2Rz KHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWlkX2RzICpo b3N0X3NkKQ0KK3sNCisgICAgc3RydWN0IHRhcmdldF9zZW1pZF9kcyAqdGFy Z2V0X3NkOw0KKw0KKyAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9zZCwg dGFyZ2V0X2FkZHIsIDApOw0KKyAgICBob3N0X3RvX3RhcmdldF9pcGNfcGVy bSh0YXJnZXRfYWRkciwmKGhvc3Rfc2QtPnNlbV9wZXJtKSk7DQorICAgIHRh cmdldF9zZC0+c2VtX25zZW1zID0gdHN3YXBsKGhvc3Rfc2QtPnNlbV9uc2Vt cyk7DQorICAgIHRhcmdldF9zZC0+c2VtX290aW1lID0gdHN3YXBsKGhvc3Rf c2QtPnNlbV9vdGltZSk7DQorICAgIHRhcmdldF9zZC0+c2VtX2N0aW1lID0g dHN3YXBsKGhvc3Rfc2QtPnNlbV9jdGltZSk7DQorICAgIHVubG9ja191c2Vy X3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9hZGRyLCAxKTsNCit9DQorDQog dW5pb24gc2VtdW4gew0KIAlpbnQgdmFsOw0KLQlzdHJ1Y3Qgc2VuaWRfZHMg KmJ1ZjsNCisJc3RydWN0IHNlbWlkX2RzICpidWY7DQogCXVuc2lnbmVkIHNo b3J0ICphcnJheTsNCiB9Ow0KIA0KK3VuaW9uIHRhcmdldF9zZW11biB7DQor CWludCB2YWw7DQorCXRhcmdldF9sb25nIGJ1ZjsNCisJdGFyZ2V0X2xvbmcg YXJyYXk7DQorfTsNCisNCitzdGF0aWMgaW5saW5lIHZvaWQgdGFyZ2V0X3Rv X2hvc3Rfc2VtdW4odW5zaWduZWQgbG9uZyBjbWQsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHNlbXVuICpob3N0 X3N1LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfdWxvbmcgdGFyZ2V0X2FkZHIsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqZHMp DQorew0KKyAgICB1bmlvbiB0YXJnZXRfc2VtdW4gKnRhcmdldF9zdTsNCisN CisgICAgc3dpdGNoKCBjbWQgKSB7DQorCWNhc2UgR0VUQUxMOg0KKwljYXNl IFNFVEFMTDoNCisJY2FzZSBJUENfU1RBVDoNCisJY2FzZSBJUENfU0VUOg0K KyAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdl dF9hZGRyLCAxKTsNCisJICAgdGFyZ2V0X3RvX2hvc3Rfc2VtaWRfZHMoZHMs dGFyZ2V0X3N1LT5idWYpOw0KKwkgICBob3N0X3N1LT5idWYgPSBkczsNCisg ICAgICAgICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdl dF9hZGRyLCAwKTsNCisJICAgYnJlYWs7DQorCWNhc2UgR0VUVkFMOg0KKwlj YXNlIFNFVFZBTDoNCisgICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFy Z2V0X3N1LCB0YXJnZXRfYWRkciwgMSk7DQorCSAgIGhvc3Rfc3UtPnZhbCA9 IHRzd2FwbCh0YXJnZXRfc3UtPnZhbCk7DQorICAgICAgICAgICB1bmxvY2tf dXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMCk7DQorCSAg IGJyZWFrOw0KKwlkZWZhdWx0Og0KKwkgICBob3N0X3N1LT5hcnJheSA9IHRz d2FwbCh0YXJnZXRfc3UtPmFycmF5KTsNCisgICAgfQ0KK30NCisNCitzdGF0 aWMgaW5saW5lIHZvaWQgaG9zdF90b190YXJnZXRfc2VtdW4odW5zaWduZWQg bG9uZyBjbWQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gc2VtdW4gKmhv c3Rfc3UsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzZW1pZF9kcyAqZHMpDQorew0KKyAgICB1bmlvbiB0YXJn ZXRfc2VtdW4gKnRhcmdldF9zdTsNCisNCisgICAgc3dpdGNoKCBjbWQgKSB7 DQorCWNhc2UgR0VUQUxMOg0KKwljYXNlIFNFVEFMTDoNCisJY2FzZSBJUENf U1RBVDoNCisJY2FzZSBJUENfU0VUOg0KKyAgICAgICAgICAgbG9ja191c2Vy X3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdldF9hZGRyLCAwKTsNCisJICAgaG9z dF90b190YXJnZXRfc2VtaWRfZHModGFyZ2V0X3N1LT5idWYsZHMpOw0KKyAg ICAgICAgICAgdW5sb2NrX3VzZXJfc3RydWN0KHRhcmdldF9zdSwgdGFyZ2V0 X2FkZHIsIDEpOw0KKwkgICBicmVhazsNCisJY2FzZSBHRVRWQUw6DQorCWNh c2UgU0VUVkFMOg0KKyAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJn ZXRfc3UsIHRhcmdldF9hZGRyLCAwKTsNCisJICAgdGFyZ2V0X3N1LT52YWwg PSB0c3dhcGwoaG9zdF9zdS0+dmFsKTsNCisgICAgICAgICAgIHVubG9ja191 c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdldF9hZGRyLCAxKTsNCisJICAg YnJlYWs7DQorICAgICAgICBkZWZhdWx0Og0KKwkgICB0YXJnZXRfc3UtPmFy cmF5ID0gdHN3YXBsKGhvc3Rfc3UtPmFycmF5KTsNCisgICAgfQ0KK30NCisN CitzdGF0aWMgaW5saW5lIGxvbmcgZG9fc2VtY3RsKGxvbmcgZmlyc3QsIGxv bmcgc2Vjb25kLCBsb25nIHRoaXJkLCBsb25nIHB0cikNCit7DQorICAgIHVu aW9uIHNlbXVuIGFyZzsNCisgICAgc3RydWN0IHNlbWlkX2RzIGRzYXJnOw0K KyAgICBpbnQgY21kID0gdGhpcmQmMHhmZjsNCisgICAgbG9uZyByZXQgPSAw Ow0KKw0KKyAgICBzd2l0Y2goIGNtZCApIHsNCisJY2FzZSBHRVRWQUw6DQor ICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2VtdW4oY21kLCZhcmcscHRy LCZkc2FyZyk7DQorICAgICAgICAgICAgcmV0ID0gZ2V0X2Vycm5vKHNlbWN0 bChmaXJzdCwgc2Vjb25kLCBjbWQsIGFyZykpOw0KKyAgICAgICAgICAgIGhv c3RfdG9fdGFyZ2V0X3NlbXVuKGNtZCxwdHIsJmFyZywmZHNhcmcpOw0KKyAg ICAgICAgICAgIGJyZWFrOw0KKwljYXNlIFNFVFZBTDoNCisgICAgICAgICAg ICB0YXJnZXRfdG9faG9zdF9zZW11bihjbWQsJmFyZyxwdHIsJmRzYXJnKTsN CisgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBz ZWNvbmQsIGNtZCwgYXJnKSk7DQorICAgICAgICAgICAgaG9zdF90b190YXJn ZXRfc2VtdW4oY21kLHB0ciwmYXJnLCZkc2FyZyk7DQorICAgICAgICAgICAg YnJlYWs7DQorCWNhc2UgR0VUQUxMOg0KKyAgICAgICAgICAgIHRhcmdldF90 b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwmZHNhcmcpOw0KKyAgICAgICAg ICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21k LCBhcmcpKTsNCisgICAgICAgICAgICBob3N0X3RvX3RhcmdldF9zZW11bihj bWQscHRyLCZhcmcsJmRzYXJnKTsNCisgICAgICAgICAgICBicmVhazsNCisJ Y2FzZSBTRVRBTEw6DQorICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2Vt dW4oY21kLCZhcmcscHRyLCZkc2FyZyk7DQorICAgICAgICAgICAgcmV0ID0g Z2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCBjbWQsIGFyZykpOw0K KyAgICAgICAgICAgIGhvc3RfdG9fdGFyZ2V0X3NlbXVuKGNtZCxwdHIsJmFy ZywmZHNhcmcpOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKwljYXNlIElQQ19T VEFUOg0KKyAgICAgICAgICAgIHRhcmdldF90b19ob3N0X3NlbXVuKGNtZCwm YXJnLHB0ciwmZHNhcmcpOw0KKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJu byhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21kLCBhcmcpKTsNCisgICAgICAg ICAgICBob3N0X3RvX3RhcmdldF9zZW11bihjbWQscHRyLCZhcmcsJmRzYXJn KTsNCisgICAgICAgICAgICBicmVhazsNCisJY2FzZSBJUENfU0VUOg0KKyAg ICAgICAgICAgIHRhcmdldF90b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwm ZHNhcmcpOw0KKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwo Zmlyc3QsIHNlY29uZCwgY21kLCBhcmcpKTsNCisgICAgICAgICAgICBob3N0 X3RvX3RhcmdldF9zZW11bihjbWQscHRyLCZhcmcsJmRzYXJnKTsNCisgICAg ICAgICAgICBicmVhazsNCisgICAgZGVmYXVsdDoNCisgICAgICAgICAgICBy ZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBzZWNvbmQsIGNtZCwgYXJn KSk7DQorICAgIH0NCisNCisgICAgcmV0dXJuIHJldDsNCit9DQorDQogLyog Pz8/IFRoaXMgb25seSB3b3JrcyB3aXRoIGxpbmVhciBtYXBwaW5ncy4gICov DQogc3RhdGljIGxvbmcgZG9faXBjKGxvbmcgY2FsbCwgbG9uZyBmaXJzdCwg bG9uZyBzZWNvbmQsIGxvbmcgdGhpcmQsDQogCQkgICBsb25nIHB0ciwgbG9u ZyBmaWZ0aCkNCkBAIC0xMTUyLDggKzEzNDUsNyBAQA0KICAgICAgICAgYnJl YWs7DQogDQogICAgIGNhc2UgSVBDT1Bfc2VtY3RsOg0KLSAgICAgICAgcmV0 ID0gZ2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCB0aGlyZCwgKCh1 bmlvbiBzZW11biopcHRyKS0+dmFsKSk7DQotDQorICAgICAgICByZXQgPSBk b19zZW1jdGwoZmlyc3QsIHNlY29uZCwgdGhpcmQsIHB0cik7DQogICAgICAg ICBicmVhazsNCiANCiAgICAgY2FzZSBJUENPUF9zZW10aW1lZG9wOg0K ---1463811327-308536384-1175218222=:514--