From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6078B6E2CF for ; Fri, 22 Nov 2019 13:03:05 +0000 (UTC) From: Lionel Landwerlin Date: Fri, 22 Nov 2019 15:02:51 +0200 Message-Id: <20191122130300.558951-2-lionel.g.landwerlin@intel.com> In-Reply-To: <20191122130300.558951-1-lionel.g.landwerlin@intel.com> References: <20191122130300.558951-1-lionel.g.landwerlin@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 01/10] lib/syncobj: drop local declarations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: V2UgaGF2ZSBjb3BpZXMgb2YgdGhlIERSTSB1QVBJIGhlYWRlcnMgaW4gdGhlIHJlcG8sIHNvIGRy b3AgdGhlIGxvY2FsCmRlY2xhcmF0aW9uIG9mIHN5bmNvYmogZGVmaW5lcy90eXBlcy4KCnYyOiBz L2RybUlvY3RsL2lndF9pb2N0bC8gKENocmlzKQogICAgQ2xlYXIgZXJybm8gYWZ0ZXIgcmVwb3J0 IGl0IHRocm91Z2ggcmV0dXJuIHZhbHVlIChDaHJpcykKClNpZ25lZC1vZmYtYnk6IExpb25lbCBM YW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGxpYi9pZ3Rfc3luY29i ai5jICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogbGliL2lndF9z eW5jb2JqLmggICAgIHwgMjYgKy0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvc3luY29ial9iYXNp Yy5jIHwgIDIgKy0KIHRlc3RzL3N5bmNvYmpfd2FpdC5jICB8IDU4ICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9u cygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9zeW5jb2JqLmMgYi9s aWIvaWd0X3N5bmNvYmouYwppbmRleCAwZmRkYjk3YS4uYWQyM2ZhYWYgMTAwNjQ0Ci0tLSBhL2xp Yi9pZ3Rfc3luY29iai5jCisrKyBiL2xpYi9pZ3Rfc3luY29iai5jCkBAIC00Myw4ICs0MywxMSBA QCBfX3N5bmNvYmpfY3JlYXRlKGludCBmZCwgdWludDMyX3QgKmhhbmRsZSwgdWludDMyX3QgZmxh Z3MpCiAJaW50IGVyciA9IDA7CiAKIAljcmVhdGUuZmxhZ3MgPSBmbGFnczsKLQlpZiAoZHJtSW9j dGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX0NSRUFURSwgJmNyZWF0ZSkpCisJaWYgKGlndF9pb2N0 bChmZCwgRFJNX0lPQ1RMX1NZTkNPQkpfQ1JFQVRFLCAmY3JlYXRlKSkgewogCQllcnIgPSAtZXJy bm87CisJCWlndF9hc3N1bWUoZXJyKTsKKwkJZXJybm8gPSAwOworCX0KIAkqaGFuZGxlID0gY3Jl YXRlLmhhbmRsZTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtNzQsOCArNzcsMTEgQEAgX19zeW5jb2Jq X2Rlc3Ryb3koaW50IGZkLCB1aW50MzJfdCBoYW5kbGUpCiAJaW50IGVyciA9IDA7CiAKIAlkZXN0 cm95LmhhbmRsZSA9IGhhbmRsZTsKLQlpZiAoZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JK X0RFU1RST1ksICZkZXN0cm95KSkKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09C Sl9ERVNUUk9ZLCAmZGVzdHJveSkpIHsKIAkJZXJyID0gLWVycm5vOworCQlpZ3RfYXNzdW1lKGVy cik7CisJCWVycm5vID0gMDsKKwl9CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtOTUsOCArMTAxLDEx IEBAIGludAogX19zeW5jb2JqX2hhbmRsZV90b19mZChpbnQgZmQsIHN0cnVjdCBkcm1fc3luY29i al9oYW5kbGUgKmFyZ3MpCiB7CiAJaW50IGVyciA9IDA7Ci0JaWYgKGRybUlvY3RsKGZkLCBEUk1f SU9DVExfU1lOQ09CSl9IQU5ETEVfVE9fRkQsIGFyZ3MpKQorCWlmIChpZ3RfaW9jdGwoZmQsIERS TV9JT0NUTF9TWU5DT0JKX0hBTkRMRV9UT19GRCwgYXJncykpIHsKIAkJZXJyID0gLWVycm5vOwor CQlpZ3RfYXNzdW1lKGVycik7CisJCWVycm5vID0gMDsKKwl9CiAJcmV0dXJuIGVycjsKIH0KIApA QCAtMTI1LDggKzEzNCwxMSBAQCBpbnQKIF9fc3luY29ial9mZF90b19oYW5kbGUoaW50IGZkLCBz dHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlICphcmdzKQogewogCWludCBlcnIgPSAwOwotCWlmIChk cm1Jb2N0bChmZCwgRFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFLCBhcmdzKSkKKwlpZiAo aWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUsIGFyZ3MpKSB7CiAJ CWVyciA9IC1lcnJubzsKKwkJaWd0X2Fzc3VtZShlcnIpOworCQllcnJubyA9IDA7CisJfQogCXJl dHVybiBlcnI7CiB9CiAKQEAgLTE3MCwxMSArMTgyLDE0IEBAIHN5bmNvYmpfaW1wb3J0X3N5bmNf ZmlsZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgaW50IHN5bmNfZmlsZSkKIH0KIAogaW50Ci1f X3N5bmNvYmpfd2FpdChpbnQgZmQsIHN0cnVjdCBsb2NhbF9zeW5jb2JqX3dhaXQgKmFyZ3MpCitf X3N5bmNvYmpfd2FpdChpbnQgZmQsIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICphcmdzKQogewog CWludCBlcnIgPSAwOwotCWlmIChkcm1Jb2N0bChmZCwgTE9DQUxfSU9DVExfU1lOQ09CSl9XQUlU LCBhcmdzKSkKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBhcmdz KSkgewogCQllcnIgPSAtZXJybm87CisJCWlndF9hc3N1bWUoZXJyKTsKKwkJZXJybm8gPSAwOwor CX0KIAlyZXR1cm4gZXJyOwogfQogCkBAIC0xODIsNyArMTk3LDcgQEAgaW50CiBzeW5jb2JqX3dh aXRfZXJyKGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQzMl90IGNvdW50LAogCQkgdWlu dDY0X3QgYWJzX3RpbWVvdXRfbnNlYywgdWludDMyX3QgZmxhZ3MpCiB7Ci0Jc3RydWN0IGxvY2Fs X3N5bmNvYmpfd2FpdCB3YWl0OworCXN0cnVjdCBkcm1fc3luY29ial93YWl0IHdhaXQ7CiAKIAl3 YWl0LmhhbmRsZXMgPSB0b191c2VyX3BvaW50ZXIoaGFuZGxlcyk7CiAJd2FpdC50aW1lb3V0X25z ZWMgPSBhYnNfdGltZW91dF9uc2VjOwpAQCAtMjEyLDcgKzIyNyw3IEBAIHN5bmNvYmpfd2FpdChp bnQgZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50MzJfdCBjb3VudCwKIAkgICAgIHVpbnQ2NF90 IGFic190aW1lb3V0X25zZWMsIHVpbnQzMl90IGZsYWdzLAogCSAgICAgdWludDMyX3QgKmZpcnN0 X3NpZ25hbGVkKQogewotCXN0cnVjdCBsb2NhbF9zeW5jb2JqX3dhaXQgd2FpdDsKKwlzdHJ1Y3Qg ZHJtX3N5bmNvYmpfd2FpdCB3YWl0OwogCWludCByZXQ7CiAKIAl3YWl0LmhhbmRsZXMgPSB0b191 c2VyX3BvaW50ZXIoaGFuZGxlcyk7CkBAIC0yMzYsMTMgKzI1MSwxNiBAQCBzeW5jb2JqX3dhaXQo aW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdWludDMyX3QgY291bnQsCiBzdGF0aWMgaW50CiBf X3N5bmNvYmpfcmVzZXQoaW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdWludDMyX3QgY291bnQp CiB7Ci0Jc3RydWN0IGxvY2FsX3N5bmNvYmpfYXJyYXkgYXJyYXkgPSB7IDAgfTsKKwlzdHJ1Y3Qg ZHJtX3N5bmNvYmpfYXJyYXkgYXJyYXkgPSB7IDAgfTsKIAlpbnQgZXJyID0gMDsKIAogCWFycmF5 LmhhbmRsZXMgPSB0b191c2VyX3BvaW50ZXIoaGFuZGxlcyk7CiAJYXJyYXkuY291bnRfaGFuZGxl cyA9IGNvdW50OwotCWlmIChkcm1Jb2N0bChmZCwgTE9DQUxfSU9DVExfU1lOQ09CSl9SRVNFVCwg JmFycmF5KSkKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwgJmFy cmF5KSkgewogCQllcnIgPSAtZXJybm87CisJCWlndF9hc3N1bWUoZXJyKTsKKwkJZXJybm8gPSAw OworCX0KIAlyZXR1cm4gZXJyOwogfQogCkBAIC0yNjMsMTMgKzI4MSwxNiBAQCBzeW5jb2JqX3Jl c2V0KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQzMl90IGNvdW50KQogc3RhdGljIGlu dAogX19zeW5jb2JqX3NpZ25hbChpbnQgZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50MzJfdCBj b3VudCkKIHsKLQlzdHJ1Y3QgbG9jYWxfc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9OworCXN0 cnVjdCBkcm1fc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9OwogCWludCBlcnIgPSAwOwogCiAJ YXJyYXkuaGFuZGxlcyA9IHRvX3VzZXJfcG9pbnRlcihoYW5kbGVzKTsKIAlhcnJheS5jb3VudF9o YW5kbGVzID0gY291bnQ7Ci0JaWYgKGRybUlvY3RsKGZkLCBMT0NBTF9JT0NUTF9TWU5DT0JKX1NJ R05BTCwgJmFycmF5KSkKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9TSUdO QUwsICZhcnJheSkpIHsKIAkJZXJyID0gLWVycm5vOworCQlpZ3RfYXNzdW1lKGVycik7CisJCWVy cm5vID0gMDsKKwl9CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvbGliL2lndF9zeW5j b2JqLmggYi9saWIvaWd0X3N5bmNvYmouaAppbmRleCA0NGQxMzc4ZC4uNTFhZDIzNjQgMTAwNjQ0 Ci0tLSBhL2xpYi9pZ3Rfc3luY29iai5oCisrKyBiL2xpYi9pZ3Rfc3luY29iai5oCkBAIC0yOCwz MCArMjgsNiBAQAogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxkcm0uaD4KIAotI2Rl ZmluZSBMT0NBTF9TWU5DT0JKX0NSRUFURV9TSUdOQUxFRCAoMSA8PCAwKQotCi0jZGVmaW5lIExP Q0FMX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAwKQotI2RlZmluZSBMT0NBTF9T WU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUICgxIDw8IDEpCi1zdHJ1Y3QgbG9jYWxf c3luY29ial93YWl0IHsKLSAgICAgICBfX3U2NCBoYW5kbGVzOwotICAgICAgIC8qIGFic29sdXRl IHRpbWVvdXQgKi8KLSAgICAgICBfX3M2NCB0aW1lb3V0X25zZWM7Ci0gICAgICAgX191MzIgY291 bnRfaGFuZGxlczsKLSAgICAgICBfX3UzMiBmbGFnczsKLSAgICAgICBfX3UzMiBmaXJzdF9zaWdu YWxlZDsgLyogb25seSB2YWxpZCB3aGVuIG5vdCB3YWl0aW5nIGFsbCAqLwotICAgICAgIF9fdTMy IHBhZDsKLX07Ci0KLXN0cnVjdCBsb2NhbF9zeW5jb2JqX2FycmF5IHsKLSAgICAgICBfX3U2NCBo YW5kbGVzOwotICAgICAgIF9fdTMyIGNvdW50X2hhbmRsZXM7Ci0gICAgICAgX191MzIgcGFkOwot fTsKLQotI2RlZmluZSBMT0NBTF9JT0NUTF9TWU5DT0JKX1dBSVQJRFJNX0lPV1IoMHhDMywgc3Ry dWN0IGxvY2FsX3N5bmNvYmpfd2FpdCkKLSNkZWZpbmUgTE9DQUxfSU9DVExfU1lOQ09CSl9SRVNF VAlEUk1fSU9XUigweEM0LCBzdHJ1Y3QgbG9jYWxfc3luY29ial9hcnJheSkKLSNkZWZpbmUgTE9D QUxfSU9DVExfU1lOQ09CSl9TSUdOQUwJRFJNX0lPV1IoMHhDNSwgc3RydWN0IGxvY2FsX3N5bmNv YmpfYXJyYXkpCi0KIHVpbnQzMl90IHN5bmNvYmpfY3JlYXRlKGludCBmZCwgdWludDMyX3QgZmxh Z3MpOwogdm9pZCBzeW5jb2JqX2Rlc3Ryb3koaW50IGZkLCB1aW50MzJfdCBoYW5kbGUpOwogaW50 IF9fc3luY29ial9oYW5kbGVfdG9fZmQoaW50IGZkLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxl ICphcmdzKTsKQEAgLTU5LDcgKzM1LDcgQEAgaW50IF9fc3luY29ial9mZF90b19oYW5kbGUoaW50 IGZkLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlICphcmdzKTsKIGludCBzeW5jb2JqX2hhbmRs ZV90b19mZChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MpOwogdWludDMy X3Qgc3luY29ial9mZF90b19oYW5kbGUoaW50IGZkLCBpbnQgc3luY29ial9mZCwgdWludDMyX3Qg ZmxhZ3MpOwogdm9pZCBzeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGUoaW50IGZkLCB1aW50MzJfdCBo YW5kbGUsIGludCBzeW5jX2ZpbGUpOwotaW50IF9fc3luY29ial93YWl0KGludCBmZCwgc3RydWN0 IGxvY2FsX3N5bmNvYmpfd2FpdCAqYXJncyk7CitpbnQgX19zeW5jb2JqX3dhaXQoaW50IGZkLCBz dHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCAqYXJncyk7CiBpbnQgc3luY29ial93YWl0X2VycihpbnQg ZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50MzJfdCBjb3VudCwKIAkJICAgICB1aW50NjRfdCBh YnNfdGltZW91dF9uc2VjLCB1aW50MzJfdCBmbGFncyk7CiBib29sIHN5bmNvYmpfd2FpdChpbnQg ZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50MzJfdCBjb3VudCwKZGlmZiAtLWdpdCBhL3Rlc3Rz L3N5bmNvYmpfYmFzaWMuYyBiL3Rlc3RzL3N5bmNvYmpfYmFzaWMuYwppbmRleCA0NDc2OWQzYi4u MWRjZTQ1YzkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N5bmNvYmpfYmFzaWMuYworKysgYi90ZXN0cy9z eW5jb2JqX2Jhc2ljLmMKQEAgLTE0OSw3ICsxNDksNyBAQCB0ZXN0X2JhZF9jcmVhdGVfZmxhZ3Mo aW50IGZkKQogc3RhdGljIHZvaWQKIHRlc3RfY3JlYXRlX3NpZ25hbGVkKGludCBmZCkKIHsKLQl1 aW50MzJfdCBzeW5jb2JqID0gc3luY29ial9jcmVhdGUoZmQsIExPQ0FMX1NZTkNPQkpfQ1JFQVRF X1NJR05BTEVEKTsKKwl1aW50MzJfdCBzeW5jb2JqID0gc3luY29ial9jcmVhdGUoZmQsIERSTV9T WU5DT0JKX0NSRUFURV9TSUdOQUxFRCk7CiAKIAlpZ3RfYXNzZXJ0X2VxKHN5bmNvYmpfd2FpdF9l cnIoZmQsICZzeW5jb2JqLCAxLCAwLCAwKSwgMCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3N5bmNv Ympfd2FpdC5jIGIvdGVzdHMvc3luY29ial93YWl0LmMKaW5kZXggMDRkNzlkZTcuLjY2OWQwYWRm IDEwMDY0NAotLS0gYS90ZXN0cy9zeW5jb2JqX3dhaXQuYworKysgYi90ZXN0cy9zeW5jb2JqX3dh aXQuYwpAQCAtMTQwLDcgKzE0MCw3IEBAIHN5bmNvYmpfdHJpZ2dlcl9kZWxheWVkKGludCBmZCwg dWludDMyX3Qgc3luY29iaiwgdWludDY0X3QgbnNlYykKIHN0YXRpYyB2b2lkCiB0ZXN0X3dhaXRf YmFkX2ZsYWdzKGludCBmZCkKIHsKLQlzdHJ1Y3QgbG9jYWxfc3luY29ial93YWl0IHdhaXQgPSB7 IDAgfTsKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB3YWl0ID0geyAwIH07CiAJd2FpdC5mbGFn cyA9IDB4ZGVhZGJlZWY7CiAJaWd0X2Fzc2VydF9lcShfX3N5bmNvYmpfd2FpdChmZCwgJndhaXQp LCAtRUlOVkFMKTsKIH0KQEAgLTE0OCwxNCArMTQ4LDE0IEBAIHRlc3Rfd2FpdF9iYWRfZmxhZ3Mo aW50IGZkKQogc3RhdGljIHZvaWQKIHRlc3Rfd2FpdF96ZXJvX2hhbmRsZXMoaW50IGZkKQogewot CXN0cnVjdCBsb2NhbF9zeW5jb2JqX3dhaXQgd2FpdCA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3lu Y29ial93YWl0IHdhaXQgPSB7IDAgfTsKIAlpZ3RfYXNzZXJ0X2VxKF9fc3luY29ial93YWl0KGZk LCAmd2FpdCksIC1FSU5WQUwpOwogfQogCiBzdGF0aWMgdm9pZAogdGVzdF93YWl0X2lsbGVnYWxf aGFuZGxlKGludCBmZCkKIHsKLQlzdHJ1Y3QgbG9jYWxfc3luY29ial93YWl0IHdhaXQgPSB7IDAg fTsKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB3YWl0ID0geyAwIH07CiAJdWludDMyX3QgaGFu ZGxlID0gMDsKIAogCXdhaXQuY291bnRfaGFuZGxlcyA9IDE7CkBAIC0xNjYsNDMgKzE2Niw0MyBA QCB0ZXN0X3dhaXRfaWxsZWdhbF9oYW5kbGUoaW50IGZkKQogc3RhdGljIHZvaWQKIHRlc3RfcmVz ZXRfemVyb19oYW5kbGVzKGludCBmZCkKIHsKLQlzdHJ1Y3QgbG9jYWxfc3luY29ial9hcnJheSBh cnJheSA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9Owog CWludCByZXQ7CiAKLQlyZXQgPSBkcm1Jb2N0bChmZCwgTE9DQUxfSU9DVExfU1lOQ09CSl9SRVNF VCwgJmFycmF5KTsKKwlyZXQgPSBkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX1NZTkNPQkpfUkVTRVQs ICZhcnJheSk7CiAJaWd0X2Fzc2VydChyZXQgPT0gLTEgJiYgZXJybm8gPT0gIEVJTlZBTCk7CiB9 CiAKIHN0YXRpYyB2b2lkCiB0ZXN0X3Jlc2V0X2lsbGVnYWxfaGFuZGxlKGludCBmZCkKIHsKLQlz dHJ1Y3QgbG9jYWxfc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3lu Y29ial9hcnJheSBhcnJheSA9IHsgMCB9OwogCXVpbnQzMl90IGhhbmRsZSA9IDA7CiAJaW50IHJl dDsKIAogCWFycmF5LmNvdW50X2hhbmRsZXMgPSAxOwogCWFycmF5LmhhbmRsZXMgPSB0b191c2Vy X3BvaW50ZXIoJmhhbmRsZSk7Ci0JcmV0ID0gZHJtSW9jdGwoZmQsIExPQ0FMX0lPQ1RMX1NZTkNP QkpfUkVTRVQsICZhcnJheSk7CisJcmV0ID0gZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JK X1JFU0VULCAmYXJyYXkpOwogCWlndF9hc3NlcnQocmV0ID09IC0xICYmIGVycm5vID09IEVOT0VO VCk7CiB9CiAKIHN0YXRpYyB2b2lkCiB0ZXN0X3Jlc2V0X29uZV9pbGxlZ2FsX2hhbmRsZShpbnQg ZmQpCiB7Ci0Jc3RydWN0IGxvY2FsX3N5bmNvYmpfYXJyYXkgYXJyYXkgPSB7IDAgfTsKKwlzdHJ1 Y3QgZHJtX3N5bmNvYmpfYXJyYXkgYXJyYXkgPSB7IDAgfTsKIAl1aW50MzJfdCBzeW5jb2Jqc1sz XTsKIAlpbnQgcmV0OwogCi0Jc3luY29ianNbMF0gPSBzeW5jb2JqX2NyZWF0ZShmZCwgTE9DQUxf U1lOQ09CSl9DUkVBVEVfU0lHTkFMRUQpOworCXN5bmNvYmpzWzBdID0gc3luY29ial9jcmVhdGUo ZmQsIERSTV9TWU5DT0JKX0NSRUFURV9TSUdOQUxFRCk7CiAJc3luY29ianNbMV0gPSAwOwotCXN5 bmNvYmpzWzJdID0gc3luY29ial9jcmVhdGUoZmQsIExPQ0FMX1NZTkNPQkpfQ1JFQVRFX1NJR05B TEVEKTsKKwlzeW5jb2Jqc1syXSA9IHN5bmNvYmpfY3JlYXRlKGZkLCBEUk1fU1lOQ09CSl9DUkVB VEVfU0lHTkFMRUQpOwogCiAJaWd0X2Fzc2VydF9lcShzeW5jb2JqX3dhaXRfZXJyKGZkLCAmc3lu Y29ianNbMF0sIDEsIDAsIDApLCAwKTsKIAlpZ3RfYXNzZXJ0X2VxKHN5bmNvYmpfd2FpdF9lcnIo ZmQsICZzeW5jb2Jqc1syXSwgMSwgMCwgMCksIDApOwogCiAJYXJyYXkuY291bnRfaGFuZGxlcyA9 IDM7CiAJYXJyYXkuaGFuZGxlcyA9IHRvX3VzZXJfcG9pbnRlcihzeW5jb2Jqcyk7Ci0JcmV0ID0g ZHJtSW9jdGwoZmQsIExPQ0FMX0lPQ1RMX1NZTkNPQkpfUkVTRVQsICZhcnJheSk7CisJcmV0ID0g ZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1JFU0VULCAmYXJyYXkpOwogCWlndF9hc3Nl cnQocmV0ID09IC0xICYmIGVycm5vID09IEVOT0VOVCk7CiAKIAkvKiBBc3NlcnQgdGhhdCB3ZSBk aWRuJ3QgYWN0dWFsbHkgcmVzZXQgYW55dGhpbmcgKi8KQEAgLTIxNiw0NCArMjE2LDQ0IEBAIHRl c3RfcmVzZXRfb25lX2lsbGVnYWxfaGFuZGxlKGludCBmZCkKIHN0YXRpYyB2b2lkCiB0ZXN0X3Jl c2V0X2JhZF9wYWQoaW50IGZkKQogewotCXN0cnVjdCBsb2NhbF9zeW5jb2JqX2FycmF5IGFycmF5 ID0geyAwIH07CisJc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IGFycmF5ID0geyAwIH07CiAJdWlu dDMyX3QgaGFuZGxlID0gMDsKIAlpbnQgcmV0OwogCiAJYXJyYXkucGFkID0gMHhkZWFkYmVlZjsK IAlhcnJheS5jb3VudF9oYW5kbGVzID0gMTsKIAlhcnJheS5oYW5kbGVzID0gdG9fdXNlcl9wb2lu dGVyKCZoYW5kbGUpOwotCXJldCA9IGRybUlvY3RsKGZkLCBMT0NBTF9JT0NUTF9TWU5DT0JKX1JF U0VULCAmYXJyYXkpOworCXJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9SRVNF VCwgJmFycmF5KTsKIAlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiBlcnJubyA9PSBFSU5WQUwpOwog fQogCiBzdGF0aWMgdm9pZAogdGVzdF9zaWduYWxfemVyb19oYW5kbGVzKGludCBmZCkKIHsKLQlz dHJ1Y3QgbG9jYWxfc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3lu Y29ial9hcnJheSBhcnJheSA9IHsgMCB9OwogCWludCByZXQ7CiAKLQlyZXQgPSBkcm1Jb2N0bChm ZCwgTE9DQUxfSU9DVExfU1lOQ09CSl9TSUdOQUwsICZhcnJheSk7CisJcmV0ID0gZHJtSW9jdGwo ZmQsIERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgJmFycmF5KTsKIAlpZ3RfYXNzZXJ0KHJldCA9 PSAtMSAmJiBlcnJubyA9PSBFSU5WQUwpOwogfQogCiBzdGF0aWMgdm9pZAogdGVzdF9zaWduYWxf aWxsZWdhbF9oYW5kbGUoaW50IGZkKQogewotCXN0cnVjdCBsb2NhbF9zeW5jb2JqX2FycmF5IGFy cmF5ID0geyAwIH07CisJc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IGFycmF5ID0geyAwIH07CiAJ dWludDMyX3QgaGFuZGxlID0gMDsKIAlpbnQgcmV0OwogCiAJYXJyYXkuY291bnRfaGFuZGxlcyA9 IDE7CiAJYXJyYXkuaGFuZGxlcyA9IHRvX3VzZXJfcG9pbnRlcigmaGFuZGxlKTsKLQlyZXQgPSBk cm1Jb2N0bChmZCwgTE9DQUxfSU9DVExfU1lOQ09CSl9TSUdOQUwsICZhcnJheSk7CisJcmV0ID0g ZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgJmFycmF5KTsKIAlpZ3RfYXNz ZXJ0KHJldCA9PSAtMSAmJiBlcnJubyA9PSBFTk9FTlQpOwogfQogCiBzdGF0aWMgdm9pZAogdGVz dF9zaWduYWxfb25lX2lsbGVnYWxfaGFuZGxlKGludCBmZCkKIHsKLQlzdHJ1Y3QgbG9jYWxfc3lu Y29ial9hcnJheSBhcnJheSA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3luY29ial9hcnJheSBhcnJh eSA9IHsgMCB9OwogCXVpbnQzMl90IHN5bmNvYmpzWzNdOwogCWludCByZXQ7CiAKQEAgLTI2Niw3 ICsyNjYsNyBAQCB0ZXN0X3NpZ25hbF9vbmVfaWxsZWdhbF9oYW5kbGUoaW50IGZkKQogCiAJYXJy YXkuY291bnRfaGFuZGxlcyA9IDM7CiAJYXJyYXkuaGFuZGxlcyA9IHRvX3VzZXJfcG9pbnRlcihz eW5jb2Jqcyk7Ci0JcmV0ID0gZHJtSW9jdGwoZmQsIExPQ0FMX0lPQ1RMX1NZTkNPQkpfU0lHTkFM LCAmYXJyYXkpOworCXJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfU1lOQ09CSl9TSUdOQUws ICZhcnJheSk7CiAJaWd0X2Fzc2VydChyZXQgPT0gLTEgJiYgZXJybm8gPT0gRU5PRU5UKTsKIAog CS8qIEFzc2VydCB0aGF0IHdlIGRpZG4ndCBhY3R1YWxseSByZXNldCBhbnl0aGluZyAqLwpAQCAt MjgwLDE0ICsyODAsMTQgQEAgdGVzdF9zaWduYWxfb25lX2lsbGVnYWxfaGFuZGxlKGludCBmZCkK IHN0YXRpYyB2b2lkCiB0ZXN0X3NpZ25hbF9iYWRfcGFkKGludCBmZCkKIHsKLQlzdHJ1Y3QgbG9j YWxfc3luY29ial9hcnJheSBhcnJheSA9IHsgMCB9OworCXN0cnVjdCBkcm1fc3luY29ial9hcnJh eSBhcnJheSA9IHsgMCB9OwogCXVpbnQzMl90IGhhbmRsZSA9IDA7CiAJaW50IHJldDsKIAogCWFy cmF5LnBhZCA9IDB4ZGVhZGJlZWY7CiAJYXJyYXkuY291bnRfaGFuZGxlcyA9IDE7CiAJYXJyYXku aGFuZGxlcyA9IHRvX3VzZXJfcG9pbnRlcigmaGFuZGxlKTsKLQlyZXQgPSBkcm1Jb2N0bChmZCwg TE9DQUxfSU9DVExfU1lOQ09CSl9TSUdOQUwsICZhcnJheSk7CisJcmV0ID0gZHJtSW9jdGwoZmQs IERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgJmFycmF5KTsKIAlpZ3RfYXNzZXJ0KHJldCA9PSAt MSAmJiBlcnJubyA9PSAgRUlOVkFMKTsKIH0KIApAQCAtMzA0LDEwICszMDQsMTAgQEAgZmxhZ3Nf Zm9yX3Rlc3RfZmxhZ3ModWludDMyX3QgdGVzdF9mbGFncykKIAl1aW50MzJfdCBmbGFncyA9IDA7 CiAKIAlpZiAodGVzdF9mbGFncyAmIFdBSVRfRk9SX1NVQk1JVCkKLQkJZmxhZ3MgfD0gTE9DQUxf U1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsKKwkJZmxhZ3MgfD0gRFJNX1NZTkNP QkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQ7CiAKIAlpZiAodGVzdF9mbGFncyAmIFdBSVRf QUxMKQotCQlmbGFncyB8PSBMT0NBTF9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEw7CisJCWZs YWdzIHw9IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEw7CiAKIAlyZXR1cm4gZmxhZ3M7 CiB9CkBAIC00MzIsNyArNDMyLDcgQEAgc3RhdGljIHZvaWQKIHRlc3RfcmVzZXRfZHVyaW5nX3dh aXRfZm9yX3N1Ym1pdChpbnQgZmQpCiB7CiAJdWludDMyX3Qgc3luY29iaiA9IHN5bmNvYmpfY3Jl YXRlKGZkLCAwKTsKLQl1aW50MzJfdCBmbGFncyA9IExPQ0FMX1NZTkNPQkpfV0FJVF9GTEFHU19X QUlUX0ZPUl9TVUJNSVQ7CisJdWludDMyX3QgZmxhZ3MgPSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT X1dBSVRfRk9SX1NVQk1JVDsKIAlzdHJ1Y3QgZmRfaGFuZGxlX3BhaXIgcGFpcjsKIAl0aW1lcl90 IHRpbWVyOwogCkBAIC00NTQsNyArNDU0LDcgQEAgc3RhdGljIHZvaWQKIHRlc3Rfc2lnbmFsKGlu dCBmZCkKIHsKIAl1aW50MzJfdCBzeW5jb2JqID0gc3luY29ial9jcmVhdGUoZmQsIDApOwotCXVp bnQzMl90IGZsYWdzID0gTE9DQUxfU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsK Kwl1aW50MzJfdCBmbGFncyA9IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlU OwogCiAJaWd0X2Fzc2VydF9lcShzeW5jb2JqX3dhaXRfZXJyKGZkLCAmc3luY29iaiwgMSwgMCwg MCksIC1FSU5WQUwpOwogCWlndF9hc3NlcnRfZXEoc3luY29ial93YWl0X2VycihmZCwgJnN5bmNv YmosIDEsIDAsIGZsYWdzKSwgLUVUSU1FKTsKQEAgLTUxMSw3ICs1MTEsNyBAQCB0ZXN0X211bHRp X3dhaXQoaW50IGZkLCB1aW50MzJfdCB0ZXN0X2ZsYWdzLCBpbnQgZXhwZWN0KQogCiBzdHJ1Y3Qg d2FpdF90aHJlYWRfZGF0YSB7CiAJaW50IGZkOwotCXN0cnVjdCBsb2NhbF9zeW5jb2JqX3dhaXQg d2FpdDsKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB3YWl0OwogfTsKIAogc3RhdGljIHZvaWQg KgpAQCAtNzEzLDcgKzcxMyw3IEBAIHRlc3Rfd2FpdF9jb21wbGV4KGludCBmZCwgdWludDMyX3Qg dGVzdF9mbGFncykKIHN0YXRpYyB2b2lkCiB0ZXN0X3dhaXRfaW50ZXJydXB0ZWQoaW50IGZkLCB1 aW50MzJfdCB0ZXN0X2ZsYWdzKQogewotCXN0cnVjdCBsb2NhbF9zeW5jb2JqX3dhaXQgd2FpdCA9 IHsgMCB9OworCXN0cnVjdCBkcm1fc3luY29ial93YWl0IHdhaXQgPSB7IDAgfTsKIAl1aW50MzJf dCBzeW5jb2JqID0gc3luY29ial9jcmVhdGUoZmQsIDApOwogCWludCB0aW1lbGluZTsKIApAQCAt NzQwLDcgKzc0MCw3IEBAIHRlc3Rfd2FpdF9pbnRlcnJ1cHRlZChpbnQgZmQsIHVpbnQzMl90IHRl c3RfZmxhZ3MpCiBzdGF0aWMgYm9vbAogaGFzX3N5bmNvYmpfd2FpdChpbnQgZmQpCiB7Ci0Jc3Ry dWN0IGxvY2FsX3N5bmNvYmpfd2FpdCB3YWl0ID0geyAwIH07CisJc3RydWN0IGRybV9zeW5jb2Jq X3dhaXQgd2FpdCA9IHsgMCB9OwogCXVpbnQzMl90IGhhbmRsZSA9IDA7CiAJdWludDY0X3QgdmFs dWU7CiAJaW50IHJldDsKQEAgLTc1Myw3ICs3NTMsNyBAQCBoYXNfc3luY29ial93YWl0KGludCBm ZCkKIAkvKiBUcnkgd2FpdGluZyBmb3IgemVybyBzeW5jIG9iamVjdHMgc2hvdWxkIGZhaWwgd2l0 aCBFSU5WQUwgKi8KIAl3YWl0LmNvdW50X2hhbmRsZXMgPSAxOwogCXdhaXQuaGFuZGxlcyA9IHRv X3VzZXJfcG9pbnRlcigmaGFuZGxlKTsKLQlyZXQgPSBkcm1Jb2N0bChmZCwgTE9DQUxfSU9DVExf U1lOQ09CSl9XQUlULCAmd2FpdCk7CisJcmV0ID0gZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9TWU5D T0JKX1dBSVQsICZ3YWl0KTsKIAlyZXR1cm4gcmV0ID09IC0xICYmIGVycm5vID09IEVOT0VOVDsK IH0KIAotLSAKMi4yNC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=