From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IXoF6-0005U1-Dp for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:20:40 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IXoF5-0005TN-IM for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:20:40 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IXoF5-0005TE-9F for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:20:39 -0400 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IXoF4-0006gw-Ol for qemu-devel@nongnu.org; Tue, 18 Sep 2007 21:20:39 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1IXoF4-0007aB-00 for ; Tue, 18 Sep 2007 21:20:38 -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 GKZDpAJuFfiz for ; Tue, 18 Sep 2007 21:18: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 1IXoCv-0007Y5-00 for ; Tue, 18 Sep 2007 21:18:25 -0400 Date: Tue, 18 Sep 2007 21:18:03 -0400 (EDT) From: Stuart Anderson Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-1448917273-1190164683=:20150" Subject: [Qemu-devel] RFC: [4/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-1448917273-1190164683=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed This part contains the updates for the semaphore IPC syscalls. In addition to the changes to use the new APIs, there are also fixes for some of the semop() and semctl() actions. 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-1448917273-1190164683=:20150 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=06_efault.patch.4 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: efault patch 4 of 11 Content-Disposition: attachment; filename=06_efault.patch.4 SW5kZXg6IHFlbXUvbGludXgtdXNlci9zeXNjYWxsLmMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBxZW11Lm9yaWcvbGludXgtdXNlci9zeXNjYWxs LmMJMjAwNy0wOS0xNiAxNTo1NjozNi4wMDAwMDAwMDAgLTA0MDANCisrKyBx ZW11L2xpbnV4LXVzZXIvc3lzY2FsbC5jCTIwMDctMDktMTYgMTU6NTY6Mzcu MDAwMDAwMDAwIC0wNDAwDQpAQCAtMTI4OSw2NCArMTI4OSw1MCBAQA0KICAg dGFyZ2V0X3Vsb25nIF9fdW51c2VkNDsNCiB9Ow0KIA0KLXN0YXRpYyBpbmxp bmUgdm9pZCB0YXJnZXRfdG9faG9zdF9pcGNfcGVybShzdHJ1Y3QgaXBjX3Bl cm0gKmhvc3RfaXAsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkcikNCitzdGF0 aWMgaW5saW5lIHZvaWQgY29weV9mcm9tX3VzZXJfaXBjX3Blcm0oc3RydWN0 IGlwY19wZXJtICpob3N0X2lwLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtICp0 YXJnZXRfaXApDQogew0KLSAgICBzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtICp0 YXJnZXRfaXA7DQotICAgIHN0cnVjdCB0YXJnZXRfc2VtaWRfZHMgKnRhcmdl dF9zZDsNCi0NCi0gICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRh cmdldF9hZGRyLCAxKTsNCi0gICAgdGFyZ2V0X2lwPSYodGFyZ2V0X3NkLT5z ZW1fcGVybSk7DQotICAgIGhvc3RfaXAtPl9fa2V5ID0gdHN3YXBsKHRhcmdl dF9pcC0+X19rZXkpOw0KLSAgICBob3N0X2lwLT51aWQgPSB0c3dhcGwodGFy Z2V0X2lwLT51aWQpOw0KLSAgICBob3N0X2lwLT5naWQgPSB0c3dhcGwodGFy Z2V0X2lwLT5naWQpOw0KLSAgICBob3N0X2lwLT5jdWlkID0gdHN3YXBsKHRh cmdldF9pcC0+Y3VpZCk7DQotICAgIGhvc3RfaXAtPmNnaWQgPSB0c3dhcGwo dGFyZ2V0X2lwLT5jZ2lkKTsNCi0gICAgaG9zdF9pcC0+bW9kZSA9IHRzd2Fw bCh0YXJnZXRfaXAtPm1vZGUpOw0KLSAgICB1bmxvY2tfdXNlcl9zdHJ1Y3Qo dGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMCk7DQorICAgIC8qIGFjY2VzcyBo YXMgYWxyZWFkeSBiZWVuIGNoZWNrZWQgKi8NCisgICAgX19nZXRfdXNlciho b3N0X2lwLT5fX2tleSwgJnRhcmdldF9pcC0+X19rZXkpOw0KKyAgICBfX2dl dF91c2VyKGhvc3RfaXAtPnVpZCwgJnRhcmdldF9pcC0+dWlkKTsNCisgICAg X19nZXRfdXNlcihob3N0X2lwLT5naWQsICZ0YXJnZXRfaXAtPmdpZCk7DQor ICAgIF9fZ2V0X3VzZXIoaG9zdF9pcC0+Y3VpZCwgJnRhcmdldF9pcC0+Y3Vp ZCk7DQorICAgIF9fZ2V0X3VzZXIoaG9zdF9pcC0+Y2dpZCwgJnRhcmdldF9p cC0+Y2dpZCk7DQorICAgIF9fZ2V0X3VzZXIoaG9zdF9pcC0+bW9kZSwgJnRh cmdldF9pcC0+bW9kZSk7DQorICAgIF9fZ2V0X3VzZXIoaG9zdF9pcC0+X19z ZXEsICZ0YXJnZXRfaXAtPl9fc2VxKTsNCiB9DQogDQotc3RhdGljIGlubGlu ZSB2b2lkIGhvc3RfdG9fdGFyZ2V0X2lwY19wZXJtKHRhcmdldF91bG9uZyB0 YXJnZXRfYWRkciwNCitzdGF0aWMgaW5saW5lIHZvaWQgY29weV90b191c2Vy X2lwY19wZXJtKHN0cnVjdCB0YXJnZXRfaXBjX3Blcm0gKnRhcmdldF9pcCwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGlwY19wZXJtICpob3N0X2lwKQ0KIHsNCi0gICAgc3RydWN0IHRh cmdldF9pcGNfcGVybSAqdGFyZ2V0X2lwOw0KLSAgICBzdHJ1Y3QgdGFyZ2V0 X3NlbWlkX2RzICp0YXJnZXRfc2Q7DQotDQotICAgIGxvY2tfdXNlcl9zdHJ1 Y3QodGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMCk7DQotICAgIHRhcmdldF9p cCA9ICYodGFyZ2V0X3NkLT5zZW1fcGVybSk7DQotICAgIHRhcmdldF9pcC0+ X19rZXkgPSB0c3dhcGwoaG9zdF9pcC0+X19rZXkpOw0KLSAgICB0YXJnZXRf aXAtPnVpZCA9IHRzd2FwbChob3N0X2lwLT51aWQpOw0KLSAgICB0YXJnZXRf aXAtPmdpZCA9IHRzd2FwbChob3N0X2lwLT5naWQpOw0KLSAgICB0YXJnZXRf aXAtPmN1aWQgPSB0c3dhcGwoaG9zdF9pcC0+Y3VpZCk7DQotICAgIHRhcmdl dF9pcC0+Y2dpZCA9IHRzd2FwbChob3N0X2lwLT5jZ2lkKTsNCi0gICAgdGFy Z2V0X2lwLT5tb2RlID0gdHN3YXBsKGhvc3RfaXAtPm1vZGUpOw0KLSAgICB1 bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMSk7 DQotfQ0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0YXJnZXRfdG9faG9zdF9z ZW1pZF9kcyhzdHJ1Y3Qgc2VtaWRfZHMgKmhvc3Rfc2QsDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25n IHRhcmdldF9hZGRyKQ0KLXsNCi0gICAgc3RydWN0IHRhcmdldF9zZW1pZF9k cyAqdGFyZ2V0X3NkOw0KLQ0KLSAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdl dF9zZCwgdGFyZ2V0X2FkZHIsIDEpOw0KLSAgICB0YXJnZXRfdG9faG9zdF9p cGNfcGVybSgmKGhvc3Rfc2QtPnNlbV9wZXJtKSx0YXJnZXRfYWRkcik7DQot ICAgIGhvc3Rfc2QtPnNlbV9uc2VtcyA9IHRzd2FwbCh0YXJnZXRfc2QtPnNl bV9uc2Vtcyk7DQotICAgIGhvc3Rfc2QtPnNlbV9vdGltZSA9IHRzd2FwbCh0 YXJnZXRfc2QtPnNlbV9vdGltZSk7DQotICAgIGhvc3Rfc2QtPnNlbV9jdGlt ZSA9IHRzd2FwbCh0YXJnZXRfc2QtPnNlbV9jdGltZSk7DQotICAgIHVubG9j a191c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9hZGRyLCAwKTsNCisg ICAgLyogYWNjZXNzIGhhcyBhbHJlYWR5IGJlZW4gY2hlY2tlZCAqLw0KKyAg ICBfX3B1dF91c2VyKGhvc3RfaXAtPl9fa2V5LCAmdGFyZ2V0X2lwLT5fX2tl eSk7DQorICAgIF9fcHV0X3VzZXIoaG9zdF9pcC0+dWlkLCAmdGFyZ2V0X2lw LT51aWQpOw0KKyAgICBfX3B1dF91c2VyKGhvc3RfaXAtPmdpZCwgJnRhcmdl dF9pcC0+Z2lkKTsNCisgICAgX19wdXRfdXNlcihob3N0X2lwLT5jdWlkLCAm dGFyZ2V0X2lwLT5jdWlkKTsNCisgICAgX19wdXRfdXNlcihob3N0X2lwLT5j Z2lkLCAmdGFyZ2V0X2lwLT5jZ2lkKTsNCisgICAgX19wdXRfdXNlcihob3N0 X2lwLT5tb2RlLCAmdGFyZ2V0X2lwLT5tb2RlKTsNCisgICAgX19wdXRfdXNl cihob3N0X2lwLT5fX3NlcSwgJnRhcmdldF9pcC0+X19zZXEpOw0KK30NCisN CitzdGF0aWMgaW5saW5lIHZvaWQgY29weV9mcm9tX3VzZXJfc2VtaWRfZHMo c3RydWN0IHNlbWlkX2RzICpob3N0X3NkLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0YXJnZXRfc2VtaWRf ZHMgKnRhcmdldF9zZCkNCit7DQorICAgIC8qIGFjY2VzcyBoYXMgYWxyZWFk eSBiZWVuIGNoZWNrZWQgKi8NCisgICAgY29weV9mcm9tX3VzZXJfaXBjX3Bl cm0oJihob3N0X3NkLT5zZW1fcGVybSksJih0YXJnZXRfc2QtPnNlbV9wZXJt KSk7DQorICAgIF9fZ2V0X3VzZXIoaG9zdF9zZC0+c2VtX25zZW1zLCAmdGFy Z2V0X3NkLT5zZW1fbnNlbXMpOw0KKyAgICBfX2dldF91c2VyKGhvc3Rfc2Qt PnNlbV9vdGltZSwgJnRhcmdldF9zZC0+c2VtX290aW1lKTsNCisgICAgX19n ZXRfdXNlcihob3N0X3NkLT5zZW1fY3RpbWUsICZ0YXJnZXRfc2QtPnNlbV9j dGltZSk7DQogfQ0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCBob3N0X3RvX3Rh cmdldF9zZW1pZF9kcyh0YXJnZXRfdWxvbmcgdGFyZ2V0X2FkZHIsDQorc3Rh dGljIGlubGluZSB2b2lkIGNvcHlfdG9fdXNlcl9zZW1pZF9kcyhzdHJ1Y3Qg dGFyZ2V0X3NlbWlkX2RzICp0YXJnZXRfc2QsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1pZF9kcyAq aG9zdF9zZCkNCiB7DQotICAgIHN0cnVjdCB0YXJnZXRfc2VtaWRfZHMgKnRh cmdldF9zZDsNCi0NCi0gICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc2Qs IHRhcmdldF9hZGRyLCAwKTsNCi0gICAgaG9zdF90b190YXJnZXRfaXBjX3Bl cm0odGFyZ2V0X2FkZHIsJihob3N0X3NkLT5zZW1fcGVybSkpOw0KLSAgICB0 YXJnZXRfc2QtPnNlbV9uc2VtcyA9IHRzd2FwbChob3N0X3NkLT5zZW1fbnNl bXMpOw0KLSAgICB0YXJnZXRfc2QtPnNlbV9vdGltZSA9IHRzd2FwbChob3N0 X3NkLT5zZW1fb3RpbWUpOw0KLSAgICB0YXJnZXRfc2QtPnNlbV9jdGltZSA9 IHRzd2FwbChob3N0X3NkLT5zZW1fY3RpbWUpOw0KLSAgICB1bmxvY2tfdXNl cl9zdHJ1Y3QodGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMSk7DQorICAgIC8q IGFjY2VzcyBoYXMgYWxyZWFkeSBiZWVuIGNoZWNrZWQgKi8NCisgICAgY29w eV90b191c2VyX2lwY19wZXJtKCYodGFyZ2V0X3NkLT5zZW1fcGVybSksJiho b3N0X3NkLT5zZW1fcGVybSkpOw0KKyAgICBfX3B1dF91c2VyKGhvc3Rfc2Qt PnNlbV9uc2VtcywgJnRhcmdldF9zZC0+c2VtX25zZW1zKTsNCisgICAgX19w dXRfdXNlcihob3N0X3NkLT5zZW1fb3RpbWUsICZ0YXJnZXRfc2QtPnNlbV9v dGltZSk7DQorICAgIF9fcHV0X3VzZXIoaG9zdF9zZC0+c2VtX2N0aW1lLCAm dGFyZ2V0X3NkLT5zZW1fY3RpbWUpOw0KIH0NCiANCiB1bmlvbiBzZW11biB7 DQpAQCAtMTM1NywxMTMgKzEzNDMsMTA4IEBADQogDQogdW5pb24gdGFyZ2V0 X3NlbXVuIHsNCiAJaW50IHZhbDsNCi0JdGFyZ2V0X2xvbmcgYnVmOw0KLQl1 bnNpZ25lZCBzaG9ydCBpbnQgKmFycmF5Ow0KKwlzdHJ1Y3QgdGFyZ2V0X3Nl bWlkX2RzICpidWY7DQorCXVuc2lnbmVkIHNob3J0ICphcnJheTsNCisJbG9u ZyBob3N0X3B0cjsNCiB9Ow0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0YXJn ZXRfdG9faG9zdF9zZW11bih1bnNpZ25lZCBsb25nIGNtZCwNCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gc2VtdW4g Kmhvc3Rfc3UsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCitzdGF0aWMgaW5s aW5lIGxvbmcgY29weV9mcm9tX3VzZXJfc2VtdW4odW5zaWduZWQgbG9uZyBj bWQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuaW9uIHNlbXVuIGhvc3Rfc3UsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuaW9uIHRhcmdldF9zZW11biB0YXJnZXRf c3UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzZW1pZF9kcyAqZHMpDQogew0KLSAgICB1bmlvbiB0YXJnZXRf c2VtdW4gKnRhcmdldF9zdTsNCi0NCiAgICAgc3dpdGNoKCBjbWQgKSB7DQot CWNhc2UgSVBDX1NUQVQ6DQogCWNhc2UgSVBDX1NFVDoNCi0gICAgICAgICAg IGxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMSk7 DQotCSAgIHRhcmdldF90b19ob3N0X3NlbWlkX2RzKGRzLHRhcmdldF9zdS0+ YnVmKTsNCi0JICAgaG9zdF9zdS0+YnVmID0gZHM7DQotICAgICAgICAgICB1 bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMCk7 DQorCSAgIGlmKCAhYWNjZXNzX29rKFZFUklGWV9SRUFELCh0YXJnZXRfdWxv bmcpdGFyZ2V0X3N1LmJ1ZixzaXplb2Yoc3RydWN0IHRhcmdldF9zZW1pZF9k cykpICkgcmV0dXJuIC0xOw0KKwkgICBjb3B5X2Zyb21fdXNlcl9zZW1pZF9k cyhkcyx0YXJnZXRfc3UuYnVmKTsNCisJICAgaG9zdF9zdS5idWYgPSBkczsN CiAJICAgYnJlYWs7DQotCWNhc2UgR0VUVkFMOg0KLQljYXNlIFNFVFZBTDoN Ci0gICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJn ZXRfYWRkciwgMSk7DQotCSAgIGhvc3Rfc3UtPnZhbCA9IHRzd2FwbCh0YXJn ZXRfc3UtPnZhbCk7DQotICAgICAgICAgICB1bmxvY2tfdXNlcl9zdHJ1Y3Qo dGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMCk7DQotCSAgIGJyZWFrOw0KLQlj YXNlIEdFVEFMTDoNCiAJY2FzZSBTRVRBTEw6DQotICAgICAgICAgICBsb2Nr X3VzZXJfc3RydWN0KHRhcmdldF9zdSwgdGFyZ2V0X2FkZHIsIDEpOw0KLQkg ICAqaG9zdF9zdS0+YXJyYXkgPSB0c3dhcDE2KCp0YXJnZXRfc3UtPmFycmF5 KTsNCi0gICAgICAgICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3Us IHRhcmdldF9hZGRyLCAwKTsNCisgICAgICAgICAgIHsNCisgICAgICAgICAg IGludCBpOw0KKyAgICAgICAgICAgZm9yKGk9MDtpPGRzLT5zZW1fbnNlbXM7 aSsrKQ0KKwkgICAgICAgaWYgKGdldF91c2VyKGhvc3Rfc3UuYXJyYXlbaV0s Jih0YXJnZXRfc3UuYXJyYXlbaV0pKSkgcmV0dXJuIC0xOw0KIAkgICBicmVh azsNCisgICAgICAgICAgIH0NCiAJZGVmYXVsdDoNCiAgICAgICAgICAgIGdl bXVfbG9nKCJzZW11biBvcGVyYXRpb24gbm90IGZ1bGx5IHN1cHBvcnRlZDog JWRcbiIsIChpbnQpY21kKTsNCiAgICAgfQ0KKw0KKyAgICByZXR1cm4gMDsN CiB9DQogDQotc3RhdGljIGlubGluZSB2b2lkIGhvc3RfdG9fdGFyZ2V0X3Nl bXVuKHVuc2lnbmVkIGxvbmcgY21kLA0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfdWxvbmcgdGFyZ2V0X2FkZHIs DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu aW9uIHNlbXVuICpob3N0X3N1LA0KK3N0YXRpYyBpbmxpbmUgbG9uZyBjb3B5 X3RvX3VzZXJfc2VtdW4odW5zaWduZWQgbG9uZyBjbWQsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHRhcmdldF9z ZW11biB0YXJnZXRfc3UsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuaW9uIHNlbXVuIGhvc3Rfc3UsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1pZF9k cyAqZHMpDQogew0KLSAgICB1bmlvbiB0YXJnZXRfc2VtdW4gKnRhcmdldF9z dTsNCi0NCiAgICAgc3dpdGNoKCBjbWQgKSB7DQogCWNhc2UgSVBDX1NUQVQ6 DQotCWNhc2UgSVBDX1NFVDoNCi0gICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1 Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMCk7DQotCSAgIGhvc3RfdG9f dGFyZ2V0X3NlbWlkX2RzKHRhcmdldF9zdS0+YnVmLGRzKTsNCi0gICAgICAg ICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdldF9hZGRy LCAxKTsNCi0JICAgYnJlYWs7DQotCWNhc2UgR0VUVkFMOg0KLQljYXNlIFNF VFZBTDoNCi0gICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3N1 LCB0YXJnZXRfYWRkciwgMCk7DQotCSAgIHRhcmdldF9zdS0+dmFsID0gdHN3 YXBsKGhvc3Rfc3UtPnZhbCk7DQotICAgICAgICAgICB1bmxvY2tfdXNlcl9z dHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMSk7DQorCSAgIGlmKCAh YWNjZXNzX29rKFZFUklGWV9XUklURSwodGFyZ2V0X3Vsb25nKXRhcmdldF9z dS5idWYsc2l6ZW9mKHN0cnVjdCB0YXJnZXRfc2VtaWRfZHMpKSApIHJldHVy biAtMTsNCisJICAgY29weV90b191c2VyX3NlbWlkX2RzKHRhcmdldF9zdS5i dWYsZHMpOw0KIAkgICBicmVhazsNCiAJY2FzZSBHRVRBTEw6DQotCWNhc2Ug U0VUQUxMOg0KLSAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRf c3UsIHRhcmdldF9hZGRyLCAwKTsNCi0JICAgKnRhcmdldF9zdS0+YXJyYXkg PSB0c3dhcDE2KCpob3N0X3N1LT5hcnJheSk7DQotICAgICAgICAgICB1bmxv Y2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMSk7DQor ICAgICAgICAgICB7DQorICAgICAgICAgICBpbnQgaTsNCisgICAgICAgICAg IGZvcihpPTA7aTxkcy0+c2VtX25zZW1zO2krKykNCisJICAgICAgIGlmIChw dXRfdXNlcihob3N0X3N1LmFycmF5W2ldLCYodGFyZ2V0X3N1LmFycmF5W2ld KSkpIHJldHVybiAtMTsNCiAJICAgYnJlYWs7DQorICAgICAgICAgICB9DQog ICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgZ2VtdV9sb2coInNlbXVu IG9wZXJhdGlvbiBub3QgZnVsbHkgc3VwcG9ydGVkOiAlZFxuIiwgKGludClj bWQpOw0KICAgICB9DQorDQorICAgIHJldHVybiAwOw0KIH0NCiANCiBzdGF0 aWMgaW5saW5lIGxvbmcgZG9fc2VtY3RsKGxvbmcgZmlyc3QsIGxvbmcgc2Vj b25kLCBsb25nIHRoaXJkLCBsb25nIHB0cikNCiB7DQogICAgIHVuaW9uIHNl bXVuIGFyZzsNCisgICAgdW5pb24gdGFyZ2V0X3NlbXVuIHRhcmcgPSAodW5p b24gdGFyZ2V0X3NlbXVuKXB0cjsNCiAgICAgc3RydWN0IHNlbWlkX2RzIGRz YXJnOw0KICAgICBpbnQgY21kID0gdGhpcmQmMHhmZjsNCiAgICAgbG9uZyBy ZXQgPSAwOw0KIA0KKyAgICBhcmcuYnVmID0gJmRzYXJnOw0KKw0KICAgICBz d2l0Y2goIGNtZCApIHsNCiAJY2FzZSBHRVRWQUw6DQotICAgICAgICAgICAg dGFyZ2V0X3RvX2hvc3Rfc2VtdW4oY21kLCZhcmcscHRyLCZkc2FyZyk7DQot ICAgICAgICAgICAgcmV0ID0gZ2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vj b25kLCBjbWQsIGFyZykpOw0KLSAgICAgICAgICAgIGhvc3RfdG9fdGFyZ2V0 X3NlbXVuKGNtZCxwdHIsJmFyZywmZHNhcmcpOw0KKyAgICAgICAgICAgIHJl dCA9IGdldF9lcnJubyhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21kLCB0YXJn KSk7DQogICAgICAgICAgICAgYnJlYWs7DQogCWNhc2UgU0VUVkFMOg0KLSAg ICAgICAgICAgIHRhcmdldF90b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwm ZHNhcmcpOw0KLSAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwo Zmlyc3QsIHNlY29uZCwgY21kLCBhcmcpKTsNCi0gICAgICAgICAgICBob3N0 X3RvX3RhcmdldF9zZW11bihjbWQscHRyLCZhcmcsJmRzYXJnKTsNCisgICAg ICAgICAgICByZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBzZWNvbmQs IGNtZCwgdGFyZy52YWwpKTsNCiAgICAgICAgICAgICBicmVhazsNCiAJY2Fz ZSBHRVRBTEw6DQotICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2VtdW4o Y21kLCZhcmcscHRyLCZkc2FyZyk7DQorCQkvKiBVc2UgSVBDX1NUQVQgdG8g ZmlndXJlIG91dCBob3cgbWFueSBzZW1hcGhvcmVzIGFyZSBpbg0KKwkJICog dGhlIHNldCwgYW5kIGFsbG9jYXRlIGJ1ZmZlciBzcGFjZSBmb3IgdGhlbS4N CisJCSAqLw0KKyAgICAgICAgICAgIHNlbWN0bChmaXJzdCxzZWNvbmQsIElQ Q19TVEFULGFyZyk7DQorICAgICAgICAgICAgYXJnLmFycmF5ID0gYWxsb2Nh KHNpemVvZih1bnNpZ25lZCBzaG9ydCkqZHNhcmcuc2VtX25zZW1zKTsNCiAg ICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBzZWNv bmQsIGNtZCwgYXJnKSk7DQotICAgICAgICAgICAgaG9zdF90b190YXJnZXRf c2VtdW4oY21kLHB0ciwmYXJnLCZkc2FyZyk7DQorICAgIAkgICAgaWYgKCFp c19lcnJvcihyZXQpKSB7DQorICAgICAgICAgICAgICAgIGlmKCBjb3B5X3Rv X3VzZXJfc2VtdW4oY21kLHRhcmcsYXJnLCZkc2FyZykgKSByZXR1cm4gLUVG QVVMVDsNCisJICAgIH0NCiAgICAgICAgICAgICBicmVhazsNCiAJY2FzZSBT RVRBTEw6DQotICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2VtdW4oY21k LCZhcmcscHRyLCZkc2FyZyk7DQorCQkvKiBVc2UgSVBDX1NUQVQgdG8gZmln dXJlIG91dCBob3cgbWFueSBzZW1hcGhvcmVzIGFyZSBpbg0KKwkJICogdGhl IHNldCwgYW5kIGFsbG9jYXRlIGJ1ZmZlciBzcGFjZSBmb3IgdGhlbS4NCisJ CSAqLw0KKyAgICAgICAgICAgIHNlbWN0bChmaXJzdCxzZWNvbmQsIElQQ19T VEFULGFyZyk7DQorICAgICAgICAgICAgYXJnLmFycmF5ID0gYWxsb2NhKHNp emVvZih1bnNpZ25lZCBzaG9ydCkqZHNhcmcuc2VtX25zZW1zKTsNCisgICAg ICAgICAgICBpZiggY29weV9mcm9tX3VzZXJfc2VtdW4oY21kLGFyZyx0YXJn LCZkc2FyZykgKSByZXR1cm4gLUVGQVVMVDsNCiAgICAgICAgICAgICByZXQg PSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBzZWNvbmQsIGNtZCwgYXJnKSk7 DQotICAgICAgICAgICAgaG9zdF90b190YXJnZXRfc2VtdW4oY21kLHB0ciwm YXJnLCZkc2FyZyk7DQogICAgICAgICAgICAgYnJlYWs7DQogCWNhc2UgSVBD X1NUQVQ6DQotICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2VtdW4oY21k LCZhcmcscHRyLCZkc2FyZyk7DQogICAgICAgICAgICAgcmV0ID0gZ2V0X2Vy cm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCBjbWQsIGFyZykpOw0KLSAgICAg ICAgICAgIGhvc3RfdG9fdGFyZ2V0X3NlbXVuKGNtZCxwdHIsJmFyZywmZHNh cmcpOw0KKyAgICAgICAgICAgIGlmKCBjb3B5X3RvX3VzZXJfc2VtdW4oY21k LHRhcmcsYXJnLCZkc2FyZykgKSByZXR1cm4gLUVGQVVMVDsNCiAgICAgICAg ICAgICBicmVhazsNCiAJY2FzZSBJUENfU0VUOg0KLSAgICAgICAgICAgIHRh cmdldF90b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwmZHNhcmcpOw0KKyAg ICAgICAgICAgIGlmKCBjb3B5X2Zyb21fdXNlcihhcmcuYnVmLHRhcmcuYnVm LHNpemVvZih1bmlvbiB0YXJnZXRfc2VtdW4pKSApIHJldHVybiAtRUZBVUxU Ow0KKyAgICAgICAgICAgIGlmKCBjb3B5X2Zyb21fdXNlcl9zZW11bihjbWQs YXJnLHRhcmcsJmRzYXJnKSApIHJldHVybiAtRUZBVUxUOw0KICAgICAgICAg ICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21k LCBhcmcpKTsNCi0gICAgICAgICAgICBob3N0X3RvX3RhcmdldF9zZW11bihj bWQscHRyLCZhcmcsJmRzYXJnKTsNCiAgICAgICAgICAgICBicmVhazsNCiAg ICAgZGVmYXVsdDoNCi0gICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oc2Vt Y3RsKGZpcnN0LCBzZWNvbmQsIGNtZCwgYXJnKSk7DQorICAgICAgICAgICAg cmV0ID0gZ2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCBjbWQsIHB0 cikpOw0KICAgICB9DQogDQogICAgIHJldHVybiByZXQ7DQpAQCAtMTQ5Myw3 ICsxNDc0LDcgQEANCiAgICAgc3RydWN0IHRhcmdldF9tc3FpZF9kcyAqdGFy Z2V0X21kOw0KIA0KICAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9tZCwg dGFyZ2V0X2FkZHIsIDEpOw0KLSAgICB0YXJnZXRfdG9faG9zdF9pcGNfcGVy bSgmKGhvc3RfbWQtPm1zZ19wZXJtKSx0YXJnZXRfYWRkcik7DQorICAgIGNv cHlfZnJvbV91c2VyX2lwY19wZXJtKCYoaG9zdF9tZC0+bXNnX3Blcm0pLHRh cmdldF9hZGRyKTsNCiAgICAgaG9zdF9tZC0+bXNnX3N0aW1lID0gdHN3YXBs KHRhcmdldF9tZC0+bXNnX3N0aW1lKTsNCiAgICAgaG9zdF9tZC0+bXNnX3J0 aW1lID0gdHN3YXBsKHRhcmdldF9tZC0+bXNnX3J0aW1lKTsNCiAgICAgaG9z dF9tZC0+bXNnX2N0aW1lID0gdHN3YXBsKHRhcmdldF9tZC0+bXNnX2N0aW1l KTsNCkBAIC0xNTExLDcgKzE0OTIsNyBAQA0KICAgICBzdHJ1Y3QgdGFyZ2V0 X21zcWlkX2RzICp0YXJnZXRfbWQ7DQogDQogICAgIGxvY2tfdXNlcl9zdHJ1 Y3QodGFyZ2V0X21kLCB0YXJnZXRfYWRkciwgMCk7DQotICAgIGhvc3RfdG9f dGFyZ2V0X2lwY19wZXJtKHRhcmdldF9hZGRyLCYoaG9zdF9tZC0+bXNnX3Bl cm0pKTsNCisgICAgY29weV90b191c2VyX2lwY19wZXJtKHRhcmdldF9hZGRy LCYoaG9zdF9tZC0+bXNnX3Blcm0pKTsNCiAgICAgdGFyZ2V0X21kLT5tc2df c3RpbWUgPSB0c3dhcGwoaG9zdF9tZC0+bXNnX3N0aW1lKTsNCiAgICAgdGFy Z2V0X21kLT5tc2dfcnRpbWUgPSB0c3dhcGwoaG9zdF9tZC0+bXNnX3J0aW1l KTsNCiAgICAgdGFyZ2V0X21kLT5tc2dfY3RpbWUgPSB0c3dhcGwoaG9zdF9t ZC0+bXNnX2N0aW1lKTsNCg== ---1463811327-1448917273-1190164683=:20150--