From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH 1/7] gpu: host1x: Remove wait check support Date: Fri, 18 May 2018 16:07:24 +0300 Message-ID: <199dcbe5-dbd4-2734-0818-c9392c8e473e@gmail.com> References: <20180517153430.9602-1-thierry.reding@gmail.com> <20180517153430.9602-2-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180517153430.9602-2-thierry.reding@gmail.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org T24gMTcuMDUuMjAxOCAxODozNCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gRnJvbTogVGhpZXJy eSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBUaGUgam9iIHN1Ym1pc3Npb24gdXNl cnNwYWNlIEFCSSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBhbmQgdGhlcmUgYXJlIG5vCj4gcGxhbnMg dG8gaW1wbGVtZW50IGl0LCBzbyBhbGwgb2YgdGhpcyBjb2RlIGlzIGRlYWQgYW5kIGNhbiBiZSBy ZW1vdmVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRp YS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYyAgICAgICAgfCAgNjIg Ky0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2hvc3QxeC9kZXYuaCAgICAgICAgICAgfCAg IDggLS0KPiAgZHJpdmVycy9ncHUvaG9zdDF4L2h3L2NoYW5uZWxfaHcuYyB8ICAgMyArLQo+ICBk cml2ZXJzL2dwdS9ob3N0MXgvaHcvc3luY3B0X2h3LmMgIHwgIDExIC0tLQo+ICBkcml2ZXJzL2dw dS9ob3N0MXgvam9iLmMgICAgICAgICAgIHwgMTI0ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2hvc3QxeC9zeW5jcHQuYyAgICAgICAgfCAgIDYgLS0KPiAgZHJp dmVycy9ncHUvaG9zdDF4L3N5bmNwdC5oICAgICAgICB8ICAgMyAtCj4gIGluY2x1ZGUvbGludXgv aG9zdDF4LmggICAgICAgICAgICAgfCAgMTUgKy0tLQo+ICBpbmNsdWRlL3RyYWNlL2V2ZW50cy9o b3N0MXguaCAgICAgIHwgIDE2ICsrLS0KPiAgOSBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25z KCspLCAyMzQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYwo+IGluZGV4IDdhZmUyZjYz NWY3NC4uMzNlNDc5MTgyNzczIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9k cm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYwo+IEBAIC0zMTMsNDYgKzMx MywxNCBAQCBzdGF0aWMgaW50IGhvc3QxeF9yZWxvY19jb3B5X2Zyb21fdXNlcihzdHJ1Y3QgaG9z dDF4X3JlbG9jICpkZXN0LAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaG9z dDF4X3dhaXRjaGtfY29weV9mcm9tX3VzZXIoc3RydWN0IGhvc3QxeF93YWl0Y2hrICpkZXN0LAo+ IC0JCQkJCSBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgX191c2VyICpzcmMsCj4gLQkJCQkJIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAtewo+IC0JdTMyIGNtZGJ1ZjsKPiAtCWludCBlcnI7Cj4g LQo+IC0JZXJyID0gZ2V0X3VzZXIoY21kYnVmLCAmc3JjLT5oYW5kbGUpOwo+IC0JaWYgKGVyciA8 IDApCj4gLQkJcmV0dXJuIGVycjsKPiAtCj4gLQllcnIgPSBnZXRfdXNlcihkZXN0LT5vZmZzZXQs ICZzcmMtPm9mZnNldCk7Cj4gLQlpZiAoZXJyIDwgMCkKPiAtCQlyZXR1cm4gZXJyOwo+IC0KPiAt CWVyciA9IGdldF91c2VyKGRlc3QtPnN5bmNwdF9pZCwgJnNyYy0+c3luY3B0KTsKPiAtCWlmIChl cnIgPCAwKQo+IC0JCXJldHVybiBlcnI7Cj4gLQo+IC0JZXJyID0gZ2V0X3VzZXIoZGVzdC0+dGhy ZXNoLCAmc3JjLT50aHJlc2gpOwo+IC0JaWYgKGVyciA8IDApCj4gLQkJcmV0dXJuIGVycjsKPiAt Cj4gLQlkZXN0LT5ibyA9IGhvc3QxeF9ib19sb29rdXAoZmlsZSwgY21kYnVmKTsKPiAtCWlmICgh ZGVzdC0+Ym8pCj4gLQkJcmV0dXJuIC1FTk9FTlQ7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAt Cj4gIGludCB0ZWdyYV9kcm1fc3VibWl0KHN0cnVjdCB0ZWdyYV9kcm1fY29udGV4dCAqY29udGV4 dCwKPiAgCQkgICAgIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0ICphcmdzLCBzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLAo+ICAJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICB7Cj4gIAl1bnNp Z25lZCBpbnQgbnVtX2NtZGJ1ZnMgPSBhcmdzLT5udW1fY21kYnVmczsKPiAgCXVuc2lnbmVkIGlu dCBudW1fcmVsb2NzID0gYXJncy0+bnVtX3JlbG9jczsKPiAtCXVuc2lnbmVkIGludCBudW1fd2Fp dGNoa3MgPSBhcmdzLT5udW1fd2FpdGNoa3M7Cj4gIAlzdHJ1Y3QgZHJtX3RlZ3JhX2NtZGJ1ZiBf X3VzZXIgKnVzZXJfY21kYnVmczsKPiAgCXN0cnVjdCBkcm1fdGVncmFfcmVsb2MgX191c2VyICp1 c2VyX3JlbG9jczsKPiAtCXN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayBfX3VzZXIgKnVzZXJfd2Fp dGNoa3M7Cj4gIAlzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBfX3VzZXIgKnVzZXJfc3luY3B0Owo+ ICAJc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgc3luY3B0Owo+ICAJc3RydWN0IGhvc3QxeCAqaG9z dDF4ID0gZGV2X2dldF9kcnZkYXRhKGRybS0+ZGV2LT5wYXJlbnQpOwo+IEBAIC0zNjQsNyArMzMy LDYgQEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250 ZXh0LAo+ICAKPiAgCXVzZXJfY21kYnVmcyA9IHU2NF90b191c2VyX3B0cihhcmdzLT5jbWRidWZz KTsKPiAgCXVzZXJfcmVsb2NzID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnJlbG9jcyk7Cj4gLQl1 c2VyX3dhaXRjaGtzID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPndhaXRjaGtzKTsKPiAgCXVzZXJf c3luY3B0ID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnN5bmNwdHMpOwo+ICAKPiAgCS8qIFdlIGRv bid0IHlldCBzdXBwb3J0IG90aGVyIHRoYW4gb25lIHN5bmNwdF9pbmNyIHN0cnVjdCBwZXIgc3Vi bWl0ICovCj4gQEAgLTM3NiwxMiArMzQzLDExIEBAIGludCB0ZWdyYV9kcm1fc3VibWl0KHN0cnVj dCB0ZWdyYV9kcm1fY29udGV4dCAqY29udGV4dCwKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4g IAlqb2IgPSBob3N0MXhfam9iX2FsbG9jKGNvbnRleHQtPmNoYW5uZWwsIGFyZ3MtPm51bV9jbWRi dWZzLAo+IC0JCQkgICAgICAgYXJncy0+bnVtX3JlbG9jcywgYXJncy0+bnVtX3dhaXRjaGtzKTsK PiArCQkJICAgICAgIGFyZ3MtPm51bV9yZWxvY3MpOwo+ICAJaWYgKCFqb2IpCj4gIAkJcmV0dXJu IC1FTk9NRU07Cj4gIAo+ICAJam9iLT5udW1fcmVsb2NzID0gYXJncy0+bnVtX3JlbG9jczsKPiAt CWpvYi0+bnVtX3dhaXRjaGsgPSBhcmdzLT5udW1fd2FpdGNoa3M7Cj4gIAlqb2ItPmNsaWVudCA9 ICh1MzIpYXJncy0+Y29udGV4dDsKPiAgCWpvYi0+Y2xhc3MgPSBjb250ZXh0LT5jbGllbnQtPmJh c2UuY2xhc3M7Cj4gIAlqb2ItPnNlcmlhbGl6ZSA9IHRydWU7Cj4gQEAgLTM5MCw3ICszNTYsNyBA QCBpbnQgdGVncmFfZHJtX3N1Ym1pdChzdHJ1Y3QgdGVncmFfZHJtX2NvbnRleHQgKmNvbnRleHQs Cj4gIAkgKiBUcmFjayByZWZlcmVuY2VkIEJPcyBzbyB0aGF0IHRoZXkgY2FuIGJlIHVucmVmZXJl bmNlZCBhZnRlciB0aGUKPiAgCSAqIHN1Ym1pc3Npb24gaXMgY29tcGxldGUuCj4gIAkgKi8KPiAt CW51bV9yZWZzID0gbnVtX2NtZGJ1ZnMgKyBudW1fcmVsb2NzICogMiArIG51bV93YWl0Y2hrczsK PiArCW51bV9yZWZzID0gbnVtX2NtZGJ1ZnMgKyBudW1fcmVsb2NzICogMjsKPiAgCj4gIAlyZWZz ID0ga21hbGxvY19hcnJheShudW1fcmVmcywgc2l6ZW9mKCpyZWZzKSwgR0ZQX0tFUk5FTCk7Cj4g IAlpZiAoIXJlZnMpIHsKPiBAQCAtNDgxLDMwICs0NDcsNiBAQCBpbnQgdGVncmFfZHJtX3N1Ym1p dChzdHJ1Y3QgdGVncmFfZHJtX2NvbnRleHQgKmNvbnRleHQsCj4gIAkJfQo+ICAJfQo+ICAKPiAt CS8qIGNvcHkgYW5kIHJlc29sdmUgd2FpdGNoa3MgZnJvbSBzdWJtaXQgKi8KPiAtCXdoaWxlIChu dW1fd2FpdGNoa3MtLSkgewo+IC0JCXN0cnVjdCBob3N0MXhfd2FpdGNoayAqd2FpdCA9ICZqb2It PndhaXRjaGtbbnVtX3dhaXRjaGtzXTsKPiAtCQlzdHJ1Y3QgdGVncmFfYm8gKm9iajsKPiAtCj4g LQkJZXJyID0gaG9zdDF4X3dhaXRjaGtfY29weV9mcm9tX3VzZXIoCj4gLQkJCXdhaXQsICZ1c2Vy X3dhaXRjaGtzW251bV93YWl0Y2hrc10sIGZpbGUpOwo+IC0JCWlmIChlcnIgPCAwKQo+IC0JCQln b3RvIGZhaWw7Cj4gLQo+IC0JCW9iaiA9IGhvc3QxeF90b190ZWdyYV9ibyh3YWl0LT5ibyk7Cj4g LQkJcmVmc1tudW1fcmVmcysrXSA9ICZvYmotPmdlbTsKPiAtCj4gLQkJLyoKPiAtCQkgKiBUaGUg dW5hbGlnbmVkIG9mZnNldCB3aWxsIGNhdXNlIGFuIHVuYWxpZ25lZCB3cml0ZSBkdXJpbmcKPiAt CQkgKiBvZiB0aGUgd2FpdGNoa3MgcGF0Y2hpbmcsIGNvcnJ1cHRpbmcgdGhlIGNvbW1hbmRzIHN0 cmVhbS4KPiAtCQkgKi8KPiAtCQlpZiAod2FpdC0+b2Zmc2V0ICYgMyB8fAo+IC0JCSAgICB3YWl0 LT5vZmZzZXQgPj0gb2JqLT5nZW0uc2l6ZSkgewo+IC0JCQllcnIgPSAtRUlOVkFMOwo+IC0JCQln b3RvIGZhaWw7Cj4gLQkJfQo+IC0JfQo+IC0KPiAgCWlmIChjb3B5X2Zyb21fdXNlcigmc3luY3B0 LCB1c2VyX3N5bmNwdCwgc2l6ZW9mKHN5bmNwdCkpKSB7Cj4gIAkJZXJyID0gLUVGQVVMVDsKPiAg CQlnb3RvIGZhaWw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9kZXYuaCBiL2Ry aXZlcnMvZ3B1L2hvc3QxeC9kZXYuaAo+IGluZGV4IDQzZTlmYWJiNDNhMS4uMzZmNDRmZmViZTcz IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9kZXYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2hvc3QxeC9kZXYuaAo+IEBAIC03OCw3ICs3OCw2IEBAIHN0cnVjdCBob3N0MXhfc3luY3B0 X29wcyB7Cj4gIAl2b2lkICgqbG9hZF93YWl0X2Jhc2UpKHN0cnVjdCBob3N0MXhfc3luY3B0ICpz eW5jcHQpOwo+ICAJdTMyICgqbG9hZCkoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnN5bmNwdCk7Cj4g IAlpbnQgKCpjcHVfaW5jcikoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnN5bmNwdCk7Cj4gLQlpbnQg KCpwYXRjaF93YWl0KShzdHJ1Y3QgaG9zdDF4X3N5bmNwdCAqc3luY3B0LCB2b2lkICpwYXRjaF9h ZGRyKTsKPiAgCXZvaWQgKCphc3NpZ25fdG9fY2hhbm5lbCkoc3RydWN0IGhvc3QxeF9zeW5jcHQg KnN5bmNwdCwKPiAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGhvc3QxeF9jaGFu bmVsICpjaGFubmVsKTsKPiAgCXZvaWQgKCplbmFibGVfcHJvdGVjdGlvbikoc3RydWN0IGhvc3Qx eCAqaG9zdCk7Cj4gQEAgLTE4MywxMyArMTgyLDYgQEAgc3RhdGljIGlubGluZSBpbnQgaG9zdDF4 X2h3X3N5bmNwdF9jcHVfaW5jcihzdHJ1Y3QgaG9zdDF4ICpob3N0LAo+ICAJcmV0dXJuIGhvc3Qt PnN5bmNwdF9vcC0+Y3B1X2luY3Ioc3ApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5saW5lIGludCBo b3N0MXhfaHdfc3luY3B0X3BhdGNoX3dhaXQoc3RydWN0IGhvc3QxeCAqaG9zdCwKPiAtCQkJCQkg ICAgICBzdHJ1Y3QgaG9zdDF4X3N5bmNwdCAqc3AsCj4gLQkJCQkJICAgICAgdm9pZCAqcGF0Y2hf YWRkcikKPiAtewo+IC0JcmV0dXJuIGhvc3QtPnN5bmNwdF9vcC0+cGF0Y2hfd2FpdChzcCwgcGF0 Y2hfYWRkcik7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBob3N0MXhfaHdfc3luY3B0 X2Fzc2lnbl90b19jaGFubmVsKAo+ICAJc3RydWN0IGhvc3QxeCAqaG9zdCwgc3RydWN0IGhvc3Qx eF9zeW5jcHQgKnNwLAo+ICAJc3RydWN0IGhvc3QxeF9jaGFubmVsICpjaCkKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvaG9zdDF4L2h3L2NoYW5uZWxfaHcuYyBiL2RyaXZlcnMvZ3B1L2hvc3Qx eC9ody9jaGFubmVsX2h3LmMKPiBpbmRleCA5YWY3NTg3ODVhMTEuLjRjOTU1NTAzOGE5NSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9ob3N0MXgvaHcvY2hhbm5lbF9ody5jCj4gKysrIGIvZHJp dmVycy9ncHUvaG9zdDF4L2h3L2NoYW5uZWxfaHcuYwo+IEBAIC0xMDQsOCArMTA0LDcgQEAgc3Rh dGljIGludCBjaGFubmVsX3N1Ym1pdChzdHJ1Y3QgaG9zdDF4X2pvYiAqam9iKQo+ICAJc3AgPSBo b3N0LT5zeW5jcHQgKyBqb2ItPnN5bmNwdF9pZDsKPiAgCXRyYWNlX2hvc3QxeF9jaGFubmVsX3N1 Ym1pdChkZXZfbmFtZShjaC0+ZGV2KSwKPiAgCQkJCSAgICBqb2ItPm51bV9nYXRoZXJzLCBqb2It Pm51bV9yZWxvY3MsCj4gLQkJCQkgICAgam9iLT5udW1fd2FpdGNoaywgam9iLT5zeW5jcHRfaWQs Cj4gLQkJCQkgICAgam9iLT5zeW5jcHRfaW5jcnMpOwo+ICsJCQkJICAgIGpvYi0+c3luY3B0X2lk LCBqb2ItPnN5bmNwdF9pbmNycyk7Cj4gIAo+ICAJLyogYmVmb3JlIGVycm9yIGNoZWNrcywgcmV0 dXJuIGN1cnJlbnQgbWF4ICovCj4gIAlwcmV2X21heCA9IGpvYi0+c3luY3B0X2VuZCA9IGhvc3Qx eF9zeW5jcHRfcmVhZF9tYXgoc3ApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ob3N0MXgv aHcvc3luY3B0X2h3LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvaHcvc3luY3B0X2h3LmMKPiBpbmRl eCA3ZGZkNDdkNzRmODkuLmEyM2JiMzM1MmQwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9o b3N0MXgvaHcvc3luY3B0X2h3LmMKPiArKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvaHcvc3luY3B0 X2h3LmMKPiBAQCAtOTYsMTYgKzk2LDYgQEAgc3RhdGljIGludCBzeW5jcHRfY3B1X2luY3Ioc3Ry dWN0IGhvc3QxeF9zeW5jcHQgKnNwKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLS8qIHJlbW92 ZSBhIHdhaXQgcG9pbnRlZCB0byBieSBwYXRjaF9hZGRyICovCj4gLXN0YXRpYyBpbnQgc3luY3B0 X3BhdGNoX3dhaXQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwLCB2b2lkICpwYXRjaF9hZGRyKQo+ IC17Cj4gLQl1MzIgb3ZlcnJpZGUgPSBob3N0MXhfY2xhc3NfaG9zdF93YWl0X3N5bmNwdChIT1NU MVhfU1lOQ1BUX1JFU0VSVkVELCAwKTsKPiAtCj4gLQkqKCh1MzIgKilwYXRjaF9hZGRyKSA9IG92 ZXJyaWRlOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+ICAvKioKPiAgICogc3luY3B0X2Fz c2lnbl90b19jaGFubmVsKCkgLSBBc3NpZ24gc3luY3BvaW50IHRvIGNoYW5uZWwKPiAgICogQHNw OiBzeW5jcG9pbnQKPiBAQCAtMTU2LDcgKzE0Niw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaG9z dDF4X3N5bmNwdF9vcHMgaG9zdDF4X3N5bmNwdF9vcHMgPSB7Cj4gIAkubG9hZF93YWl0X2Jhc2Ug PSBzeW5jcHRfcmVhZF93YWl0X2Jhc2UsCj4gIAkubG9hZCA9IHN5bmNwdF9sb2FkLAo+ICAJLmNw dV9pbmNyID0gc3luY3B0X2NwdV9pbmNyLAo+IC0JLnBhdGNoX3dhaXQgPSBzeW5jcHRfcGF0Y2hf d2FpdCwKPiAgCS5hc3NpZ25fdG9fY2hhbm5lbCA9IHN5bmNwdF9hc3NpZ25fdG9fY2hhbm5lbCwK PiAgCS5lbmFibGVfcHJvdGVjdGlvbiA9IHN5bmNwdF9lbmFibGVfcHJvdGVjdGlvbiwKPiAgfTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvaG9zdDF4L2pvYi5jIGIvZHJpdmVycy9ncHUvaG9z dDF4L2pvYi5jCj4gaW5kZXggZGI1MDlhYjg4NzRlLi4zY2JmYzZlMzc2NjggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvaG9zdDF4L2pvYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvaG9zdDF4L2pv Yi5jCj4gQEAgLTM0LDggKzM0LDcgQEAKPiAgI2RlZmluZSBIT1NUMVhfV0FJVF9TWU5DUFRfT0ZG U0VUIDB4OAo+ICAKPiAgc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9qb2JfYWxsb2Moc3RydWN0 IGhvc3QxeF9jaGFubmVsICpjaCwKPiAtCQkJCSAgICB1MzIgbnVtX2NtZGJ1ZnMsIHUzMiBudW1f cmVsb2NzLAo+IC0JCQkJICAgIHUzMiBudW1fd2FpdGNoa3MpCj4gKwkJCQkgICAgdTMyIG51bV9j bWRidWZzLCB1MzIgbnVtX3JlbG9jcykKPiAgewo+ICAJc3RydWN0IGhvc3QxeF9qb2IgKmpvYiA9 IE5VTEw7Cj4gIAl1bnNpZ25lZCBpbnQgbnVtX3VucGlucyA9IG51bV9jbWRidWZzICsgbnVtX3Jl bG9jczsKPiBAQCAtNDYsNyArNDUsNiBAQCBzdHJ1Y3QgaG9zdDF4X2pvYiAqaG9zdDF4X2pvYl9h bGxvYyhzdHJ1Y3QgaG9zdDF4X2NoYW5uZWwgKmNoLAo+ICAJdG90YWwgPSBzaXplb2Yoc3RydWN0 IGhvc3QxeF9qb2IpICsKPiAgCQkodTY0KW51bV9yZWxvY3MgKiBzaXplb2Yoc3RydWN0IGhvc3Qx eF9yZWxvYykgKwo+ICAJCSh1NjQpbnVtX3VucGlucyAqIHNpemVvZihzdHJ1Y3QgaG9zdDF4X2pv Yl91bnBpbl9kYXRhKSArCj4gLQkJKHU2NCludW1fd2FpdGNoa3MgKiBzaXplb2Yoc3RydWN0IGhv c3QxeF93YWl0Y2hrKSArCj4gIAkJKHU2NCludW1fY21kYnVmcyAqIHNpemVvZihzdHJ1Y3QgaG9z dDF4X2pvYl9nYXRoZXIpICsKPiAgCQkodTY0KW51bV91bnBpbnMgKiBzaXplb2YoZG1hX2FkZHJf dCkgKwo+ICAJCSh1NjQpbnVtX3VucGlucyAqIHNpemVvZih1MzIgKik7Cj4gQEAgLTY2LDggKzY0 LDYgQEAgc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9qb2JfYWxsb2Moc3RydWN0IGhvc3QxeF9j aGFubmVsICpjaCwKPiAgCW1lbSArPSBudW1fcmVsb2NzICogc2l6ZW9mKHN0cnVjdCBob3N0MXhf cmVsb2MpOwo+ICAJam9iLT51bnBpbnMgPSBudW1fdW5waW5zID8gbWVtIDogTlVMTDsKPiAgCW1l bSArPSBudW1fdW5waW5zICogc2l6ZW9mKHN0cnVjdCBob3N0MXhfam9iX3VucGluX2RhdGEpOwo+ IC0Jam9iLT53YWl0Y2hrID0gbnVtX3dhaXRjaGtzID8gbWVtIDogTlVMTDsKPiAtCW1lbSArPSBu dW1fd2FpdGNoa3MgKiBzaXplb2Yoc3RydWN0IGhvc3QxeF93YWl0Y2hrKTsKPiAgCWpvYi0+Z2F0 aGVycyA9IG51bV9jbWRidWZzID8gbWVtIDogTlVMTDsKPiAgCW1lbSArPSBudW1fY21kYnVmcyAq IHNpemVvZihzdHJ1Y3QgaG9zdDF4X2pvYl9nYXRoZXIpOwo+ICAJam9iLT5hZGRyX3BoeXMgPSBu dW1fdW5waW5zID8gbWVtIDogTlVMTDsKPiBAQCAtMTExLDczICsxMDcsNiBAQCB2b2lkIGhvc3Qx eF9qb2JfYWRkX2dhdGhlcihzdHJ1Y3QgaG9zdDF4X2pvYiAqam9iLCBzdHJ1Y3QgaG9zdDF4X2Jv ICpibywKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGhvc3QxeF9qb2JfYWRkX2dhdGhlcik7Cj4gIAo+ IC0vKgo+IC0gKiBOVUxMIGFuIGFscmVhZHkgc2F0aXNmaWVkIFdBSVRfU1lOQ1BUIGhvc3QgbWV0 aG9kLCBieSBwYXRjaGluZyBpdHMKPiAtICogYXJncyBpbiB0aGUgY29tbWFuZCBzdHJlYW0uIFRo ZSBtZXRob2QgZGF0YSBpcyBjaGFuZ2VkIHRvIHJlZmVyZW5jZQo+IC0gKiBhIHJlc2VydmVkIChu ZXZlciBnaXZlbiBvdXQgb3IgaW5jcikgSE9TVDFYX1NZTkNQVF9SRVNFUlZFRCBzeW5jcHQKPiAt ICogd2l0aCBhIG1hdGNoaW5nIHRocmVzaG9sZCB2YWx1ZSBvZiAwLCBzbyBpcyBndWFyYW50ZWVk IHRvIGJlIHBvcHBlZAo+IC0gKiBieSB0aGUgaG9zdCBIVy4KPiAtICovCj4gLXN0YXRpYyB2b2lk IGhvc3QxeF9zeW5jcHRfcGF0Y2hfb2Zmc2V0KHN0cnVjdCBob3N0MXhfc3luY3B0ICpzcCwKPiAt CQkJCSAgICAgICBzdHJ1Y3QgaG9zdDF4X2JvICpoLCB1MzIgb2Zmc2V0KQo+IC17Cj4gLQl2b2lk ICpwYXRjaF9hZGRyID0gTlVMTDsKPiAtCj4gLQkvKiBwYXRjaCB0aGUgd2FpdCAqLwo+IC0JcGF0 Y2hfYWRkciA9IGhvc3QxeF9ib19rbWFwKGgsIG9mZnNldCA+PiBQQUdFX1NISUZUKTsKPiAtCWlm IChwYXRjaF9hZGRyKSB7Cj4gLQkJaG9zdDF4X3N5bmNwdF9wYXRjaF93YWl0KHNwLAo+IC0JCQkJ CSBwYXRjaF9hZGRyICsgKG9mZnNldCAmIH5QQUdFX01BU0spKTsKPiAtCQlob3N0MXhfYm9fa3Vu bWFwKGgsIG9mZnNldCA+PiBQQUdFX1NISUZULCBwYXRjaF9hZGRyKTsKPiAtCX0gZWxzZQo+IC0J CXByX2VycigiQ291bGQgbm90IG1hcCBjbWRidWYgZm9yIHdhaXQgY2hlY2tcbiIpOwo+IC19Cj4g LQo+IC0vKgo+IC0gKiBDaGVjayBkcml2ZXIgc3VwcGxpZWQgd2FpdGNoayBzdHJ1Y3RzIGZvciBz eW5jcHQgdGhyZXNob2xkcwo+IC0gKiB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNhdGlzZmllZCBh bmQgTlVMTCB0aGUgY29tcGFyaXNvbiAodG8KPiAtICogYXZvaWQgYSB3cmFwIGNvbmRpdGlvbiBp biB0aGUgSFcpLgo+IC0gKi8KPiAtc3RhdGljIGludCBkb193YWl0Y2hrcyhzdHJ1Y3QgaG9zdDF4 X2pvYiAqam9iLCBzdHJ1Y3QgaG9zdDF4ICpob3N0LAo+IC0JCSAgICAgICBzdHJ1Y3QgaG9zdDF4 X2pvYl9nYXRoZXIgKmcpCj4gLXsKPiAtCXN0cnVjdCBob3N0MXhfYm8gKnBhdGNoID0gZy0+Ym87 Cj4gLQlpbnQgaTsKPiAtCj4gLQkvKiBjb21wYXJlIHN5bmNwdCB2cyB3YWl0IHRocmVzaG9sZCAq Lwo+IC0JZm9yIChpID0gMDsgaSA8IGpvYi0+bnVtX3dhaXRjaGs7IGkrKykgewo+IC0JCXN0cnVj dCBob3N0MXhfd2FpdGNoayAqd2FpdCA9ICZqb2ItPndhaXRjaGtbaV07Cj4gLQkJc3RydWN0IGhv c3QxeF9zeW5jcHQgKnNwID0KPiAtCQkJaG9zdDF4X3N5bmNwdF9nZXQoaG9zdCwgd2FpdC0+c3lu Y3B0X2lkKTsKPiAtCj4gLQkJLyogdmFsaWRhdGUgc3luY3B0IGlkICovCj4gLQkJaWYgKHdhaXQt PnN5bmNwdF9pZCA+IGhvc3QxeF9zeW5jcHRfbmJfcHRzKGhvc3QpKQo+IC0JCQljb250aW51ZTsK PiAtCj4gLQkJLyogc2tpcCBhbGwgb3RoZXIgZ2F0aGVycyAqLwo+IC0JCWlmIChwYXRjaCAhPSB3 YWl0LT5ibykKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCXRyYWNlX2hvc3QxeF9zeW5jcHRfd2Fp dF9jaGVjayh3YWl0LT5ibywgd2FpdC0+b2Zmc2V0LAo+IC0JCQkJCSAgICAgICB3YWl0LT5zeW5j cHRfaWQsIHdhaXQtPnRocmVzaCwKPiAtCQkJCQkgICAgICAgaG9zdDF4X3N5bmNwdF9yZWFkX21p bihzcCkpOwo+IC0KPiAtCQlpZiAoaG9zdDF4X3N5bmNwdF9pc19leHBpcmVkKHNwLCB3YWl0LT50 aHJlc2gpKSB7Cj4gLQkJCWRldl9kYmcoaG9zdC0+ZGV2LAo+IC0JCQkJImRyb3AgV0FJVCBpZCAl dSAoJXMpIHRocmVzaCAweCV4LCBtaW4gMHgleFxuIiwKPiAtCQkJCXdhaXQtPnN5bmNwdF9pZCwg c3AtPm5hbWUsIHdhaXQtPnRocmVzaCwKPiAtCQkJCWhvc3QxeF9zeW5jcHRfcmVhZF9taW4oc3Ap KTsKPiAtCj4gLQkJCWhvc3QxeF9zeW5jcHRfcGF0Y2hfb2Zmc2V0KHNwLCBwYXRjaCwKPiAtCQkJ CQkJICAgZy0+b2Zmc2V0ICsgd2FpdC0+b2Zmc2V0KTsKPiAtCQl9Cj4gLQo+IC0JCXdhaXQtPmJv ID0gTlVMTDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIHVuc2ln bmVkIGludCBwaW5fam9iKHN0cnVjdCBob3N0MXggKmhvc3QsIHN0cnVjdCBob3N0MXhfam9iICpq b2IpCj4gIHsKPiAgCXVuc2lnbmVkIGludCBpOwo+IEBAIC0zMzEsMTcgKzI2MCw2IEBAIHN0YXRp YyBib29sIGNoZWNrX3JlbG9jKHN0cnVjdCBob3N0MXhfcmVsb2MgKnJlbG9jLCBzdHJ1Y3QgaG9z dDF4X2JvICpjbWRidWYsCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAtc3RhdGljIGJvb2wg Y2hlY2tfd2FpdChzdHJ1Y3QgaG9zdDF4X3dhaXRjaGsgKndhaXQsIHN0cnVjdCBob3N0MXhfYm8g KmNtZGJ1ZiwKPiAtCQkgICAgICAgdW5zaWduZWQgaW50IG9mZnNldCkKPiAtewo+IC0Jb2Zmc2V0 ICo9IHNpemVvZih1MzIpOwo+IC0KPiAtCWlmICh3YWl0LT5ibyAhPSBjbWRidWYgfHwgd2FpdC0+ b2Zmc2V0ICE9IG9mZnNldCkKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JcmV0dXJuIHRydWU7 Cj4gLX0KPiAtCj4gIHN0cnVjdCBob3N0MXhfZmlyZXdhbGwgewo+ICAJc3RydWN0IGhvc3QxeF9q b2IgKmpvYjsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiBAQCAtMzQ5LDkgKzI2Nyw2IEBAIHN0 cnVjdCBob3N0MXhfZmlyZXdhbGwgewo+ICAJdW5zaWduZWQgaW50IG51bV9yZWxvY3M7Cj4gIAlz dHJ1Y3QgaG9zdDF4X3JlbG9jICpyZWxvYzsKPiAgCj4gLQl1bnNpZ25lZCBpbnQgbnVtX3dhaXRj aGtzOwo+IC0Jc3RydWN0IGhvc3QxeF93YWl0Y2hrICp3YWl0Y2hrOwo+IC0KPiAgCXN0cnVjdCBo b3N0MXhfYm8gKmNtZGJ1ZjsKPiAgCXVuc2lnbmVkIGludCBvZmZzZXQ7Cj4gIAo+IEBAIC0zNzgs MjAgKzI5Myw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVnaXN0ZXIoc3RydWN0IGhvc3QxeF9maXJl d2FsbCAqZncsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQo+ICAJCWZ3LT5yZWxvYysrOwo+ICAJfQo+ ICAKPiAtCWlmIChvZmZzZXQgPT0gSE9TVDFYX1dBSVRfU1lOQ1BUX09GRlNFVCkgewo+IC0JCWlm IChmdy0+Y2xhc3MgIT0gSE9TVDFYX0NMQVNTX0hPU1QxWCkKPiAtCQkJcmV0dXJuIC1FSU5WQUw7 Cj4gLQo+IC0JCWlmICghZnctPm51bV93YWl0Y2hrcykKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4g LQo+IC0JCWlmICghY2hlY2tfd2FpdChmdy0+d2FpdGNoaywgZnctPmNtZGJ1ZiwgZnctPm9mZnNl dCkpCj4gLQkJCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCQlmdy0+bnVtX3dhaXRjaGtzLS07Cj4g LQkJZnctPndhaXRjaGsrKzsKPiAtCX0KPiAtCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBAQCAt NTU2LDggKzQ1Nyw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvcHlfZ2F0aGVycyhzdHJ1Y3QgaG9z dDF4X2pvYiAqam9iLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIAlmdy5kZXYgPSBkZXY7Cj4gIAlm dy5yZWxvYyA9IGpvYi0+cmVsb2NhcnJheTsKPiAgCWZ3Lm51bV9yZWxvY3MgPSBqb2ItPm51bV9y ZWxvY3M7Cj4gLQlmdy53YWl0Y2hrID0gam9iLT53YWl0Y2hrOwo+IC0JZncubnVtX3dhaXRjaGtz ID0gam9iLT5udW1fd2FpdGNoazsKPiAgCWZ3LmNsYXNzID0gam9iLT5jbGFzczsKPiAgCj4gIAlm b3IgKGkgPSAwOyBpIDwgam9iLT5udW1fZ2F0aGVyczsgaSsrKSB7Cj4gQEAgLTYwNCw4ICs1MDMs OCBAQCBzdGF0aWMgaW5saW5lIGludCBjb3B5X2dhdGhlcnMoc3RydWN0IGhvc3QxeF9qb2IgKmpv Yiwgc3RydWN0IGRldmljZSAqZGV2KQo+ICAJCW9mZnNldCArPSBnLT53b3JkcyAqIHNpemVvZih1 MzIpOwo+ICAJfQo+ICAKPiAtCS8qIE5vIHJlbG9jcyBhbmQgd2FpdGNoa3Mgc2hvdWxkIHJlbWFp biBhdCB0aGlzIHBvaW50ICovCj4gLQlpZiAoZncubnVtX3JlbG9jcyB8fCBmdy5udW1fd2FpdGNo a3MpCj4gKwkvKiBObyByZWxvY3Mgc2hvdWxkIHJlbWFpbiBhdCB0aGlzIHBvaW50ICovCj4gKwlp ZiAoZncubnVtX3JlbG9jcykKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gIAlyZXR1cm4gMDsK PiBAQCAtNjE2LDE5ICs1MTUsNiBAQCBpbnQgaG9zdDF4X2pvYl9waW4oc3RydWN0IGhvc3QxeF9q b2IgKmpvYiwgc3RydWN0IGRldmljZSAqZGV2KQo+ICAJaW50IGVycjsKPiAgCXVuc2lnbmVkIGlu dCBpLCBqOwo+ICAJc3RydWN0IGhvc3QxeCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBh cmVudCk7Cj4gLQlERUNMQVJFX0JJVE1BUCh3YWl0Y2hrX21hc2ssIGhvc3QxeF9zeW5jcHRfbmJf cHRzKGhvc3QpKTsKPiAtCj4gLQliaXRtYXBfemVybyh3YWl0Y2hrX21hc2ssIGhvc3QxeF9zeW5j cHRfbmJfcHRzKGhvc3QpKTsKPiAtCWZvciAoaSA9IDA7IGkgPCBqb2ItPm51bV93YWl0Y2hrOyBp KyspIHsKPiAtCQl1MzIgc3luY3B0X2lkID0gam9iLT53YWl0Y2hrW2ldLnN5bmNwdF9pZDsKPiAt Cj4gLQkJaWYgKHN5bmNwdF9pZCA8IGhvc3QxeF9zeW5jcHRfbmJfcHRzKGhvc3QpKQo+IC0JCQlz ZXRfYml0KHN5bmNwdF9pZCwgd2FpdGNoa19tYXNrKTsKPiAtCX0KPiAtCj4gLQkvKiBnZXQgY3Vy cmVudCBzeW5jcHQgdmFsdWVzIGZvciB3YWl0Y2hrICovCj4gLQlmb3JfZWFjaF9zZXRfYml0KGks IHdhaXRjaGtfbWFzaywgaG9zdDF4X3N5bmNwdF9uYl9wdHMoaG9zdCkpCj4gLQkJaG9zdDF4X3N5 bmNwdF9sb2FkKGhvc3QtPnN5bmNwdCArIGkpOwo+ICAKPiAgCS8qIHBpbiBtZW1vcnkgKi8KPiAg CWVyciA9IHBpbl9qb2IoaG9zdCwgam9iKTsKPiBAQCAtNjYzLDEwICs1NDksNiBAQCBpbnQgaG9z dDF4X2pvYl9waW4oc3RydWN0IGhvc3QxeF9qb2IgKmpvYiwgc3RydWN0IGRldmljZSAqZGV2KQo+ ICAJCWVyciA9IGRvX3JlbG9jcyhqb2IsIGcpOwo+ICAJCWlmIChlcnIpCj4gIAkJCWJyZWFrOwo+ IC0KPiAtCQllcnIgPSBkb193YWl0Y2hrcyhqb2IsIGhvc3QsIGcpOwo+IC0JCWlmIChlcnIpCj4g LQkJCWJyZWFrOwo+ICAJfQo+ICAKPiAgb3V0Ogo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9o b3N0MXgvc3luY3B0LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmMKPiBpbmRleCBhMmE5 NTJhZGMxMzYuLmExMDg2NjkxODhlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9ob3N0MXgv c3luY3B0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmMKPiBAQCAtMzczLDEy ICszNzMsNiBAQCBib29sIGhvc3QxeF9zeW5jcHRfaXNfZXhwaXJlZChzdHJ1Y3QgaG9zdDF4X3N5 bmNwdCAqc3AsIHUzMiB0aHJlc2gpCj4gIAkJcmV0dXJuIChzMzIpKGN1cnJlbnRfdmFsIC0gdGhy ZXNoKSA+PSAwOwo+ICB9Cj4gIAo+IC0vKiByZW1vdmUgYSB3YWl0IHBvaW50ZWQgdG8gYnkgcGF0 Y2hfYWRkciAqLwo+IC1pbnQgaG9zdDF4X3N5bmNwdF9wYXRjaF93YWl0KHN0cnVjdCBob3N0MXhf c3luY3B0ICpzcCwgdm9pZCAqcGF0Y2hfYWRkcikKPiAtewo+IC0JcmV0dXJuIGhvc3QxeF9od19z eW5jcHRfcGF0Y2hfd2FpdChzcC0+aG9zdCwgc3AsIHBhdGNoX2FkZHIpOwo+IC19Cj4gLQo+ICBp bnQgaG9zdDF4X3N5bmNwdF9pbml0KHN0cnVjdCBob3N0MXggKmhvc3QpCj4gIHsKPiAgCXN0cnVj dCBob3N0MXhfc3luY3B0X2Jhc2UgKmJhc2VzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9o b3N0MXgvc3luY3B0LmggYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmgKPiBpbmRleCA5ZDg4 ZDM3YzIzOTcuLmQ5OGUyMjMyNWU5ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9ob3N0MXgv c3luY3B0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmgKPiBAQCAtMTI0LDcg KzEyNCw0IEBAIHN0YXRpYyBpbmxpbmUgaW50IGhvc3QxeF9zeW5jcHRfaXNfdmFsaWQoc3RydWN0 IGhvc3QxeF9zeW5jcHQgKnNwKQo+ICAJcmV0dXJuIHNwLT5pZCA8IGhvc3QxeF9zeW5jcHRfbmJf cHRzKHNwLT5ob3N0KTsKPiAgfQo+ICAKPiAtLyogUGF0Y2ggYSB3YWl0IGJ5IHJlcGxhY2luZyBp dCB3aXRoIGEgd2FpdCBmb3Igc3luY3B0IDAgdmFsdWUgMCAqLwo+IC1pbnQgaG9zdDF4X3N5bmNw dF9wYXRjaF93YWl0KHN0cnVjdCBob3N0MXhfc3luY3B0ICpzcCwgdm9pZCAqcGF0Y2hfYWRkcik7 Cj4gLQo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ob3N0MXguaCBiL2lu Y2x1ZGUvbGludXgvaG9zdDF4LmgKPiBpbmRleCBkZGY3ZjljYTg2Y2MuLmY2NmJlY2UxZTFiNyAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2hvc3QxeC5oCj4gKysrIGIvaW5jbHVkZS9saW51 eC9ob3N0MXguaAo+IEBAIC0xOTIsMTMgKzE5Miw2IEBAIHN0cnVjdCBob3N0MXhfcmVsb2Mgewo+ ICAJdW5zaWduZWQgbG9uZyBzaGlmdDsKPiAgfTsKPiAgCj4gLXN0cnVjdCBob3N0MXhfd2FpdGNo ayB7Cj4gLQlzdHJ1Y3QgaG9zdDF4X2JvICpibzsKPiAtCXUzMiBvZmZzZXQ7Cj4gLQl1MzIgc3lu Y3B0X2lkOwo+IC0JdTMyIHRocmVzaDsKPiAtfTsKPiAtCj4gIHN0cnVjdCBob3N0MXhfam9iIHsK PiAgCS8qIFdoZW4gcmVmY291bnQgZ29lcyB0byB6ZXJvLCBqb2IgY2FuIGJlIGZyZWVkICovCj4g IAlzdHJ1Y3Qga3JlZiByZWY7Cj4gQEAgLTIxNSwxMSArMjA4LDYgQEAgc3RydWN0IGhvc3QxeF9q b2Igewo+ICAJc3RydWN0IGhvc3QxeF9qb2JfZ2F0aGVyICpnYXRoZXJzOwo+ICAJdW5zaWduZWQg aW50IG51bV9nYXRoZXJzOwo+ICAKPiAtCS8qIFdhaXQgY2hlY2tzIHRvIGJlIHByb2Nlc3NlZCBh dCBzdWJtaXQgdGltZSAqLwo+IC0Jc3RydWN0IGhvc3QxeF93YWl0Y2hrICp3YWl0Y2hrOwo+IC0J dW5zaWduZWQgaW50IG51bV93YWl0Y2hrOwo+IC0JdTMyIHdhaXRjaGtfbWFzazsKPiAtCj4gIAkv KiBBcnJheSBvZiBoYW5kbGVzIHRvIGJlIHBpbm5lZCAmIHVucGlubmVkICovCj4gIAlzdHJ1Y3Qg aG9zdDF4X3JlbG9jICpyZWxvY2FycmF5Owo+ICAJdW5zaWduZWQgaW50IG51bV9yZWxvY3M7Cj4g QEAgLTI2MSw4ICsyNDksNyBAQCBzdHJ1Y3QgaG9zdDF4X2pvYiB7Cj4gIH07Cj4gIAo+ICBzdHJ1 Y3QgaG9zdDF4X2pvYiAqaG9zdDF4X2pvYl9hbGxvYyhzdHJ1Y3QgaG9zdDF4X2NoYW5uZWwgKmNo LAo+IC0JCQkJICAgIHUzMiBudW1fY21kYnVmcywgdTMyIG51bV9yZWxvY3MsCj4gLQkJCQkgICAg dTMyIG51bV93YWl0Y2hrcyk7Cj4gKwkJCQkgICAgdTMyIG51bV9jbWRidWZzLCB1MzIgbnVtX3Jl bG9jcyk7Cj4gIHZvaWQgaG9zdDF4X2pvYl9hZGRfZ2F0aGVyKHN0cnVjdCBob3N0MXhfam9iICpq b2IsIHN0cnVjdCBob3N0MXhfYm8gKm1lbV9pZCwKPiAgCQkJICAgdTMyIHdvcmRzLCB1MzIgb2Zm c2V0KTsKPiAgc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9qb2JfZ2V0KHN0cnVjdCBob3N0MXhf am9iICpqb2IpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaCBi L2luY2x1ZGUvdHJhY2UvZXZlbnRzL2hvc3QxeC5oCj4gaW5kZXggNjMxMTYzNjI1NDNjLi5hMzdl ZjczMDkyZTUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS90cmFjZS9ldmVudHMvaG9zdDF4LmgKPiAr KysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaAo+IEBAIC0xMTUsMTYgKzExNSwxNSBA QCBUUkFDRV9FVkVOVChob3N0MXhfY2RtYV9wdXNoX2dhdGhlciwKPiAgKTsKPiAgCj4gIFRSQUNF X0VWRU5UKGhvc3QxeF9jaGFubmVsX3N1Ym1pdCwKPiAtCVRQX1BST1RPKGNvbnN0IGNoYXIgKm5h bWUsIHUzMiBjbWRidWZzLCB1MzIgcmVsb2NzLCB1MzIgd2FpdGNoa3MsCj4gLQkJCXUzMiBzeW5j cHRfaWQsIHUzMiBzeW5jcHRfaW5jcnMpLAo+ICsJVFBfUFJPVE8oY29uc3QgY2hhciAqbmFtZSwg dTMyIGNtZGJ1ZnMsIHUzMiByZWxvY3MsIHUzMiBzeW5jcHRfaWQsCj4gKwkJIHUzMiBzeW5jcHRf aW5jcnMpLAo+ICAKPiAtCVRQX0FSR1MobmFtZSwgY21kYnVmcywgcmVsb2NzLCB3YWl0Y2hrcywg c3luY3B0X2lkLCBzeW5jcHRfaW5jcnMpLAo+ICsJVFBfQVJHUyhuYW1lLCBjbWRidWZzLCByZWxv Y3MsIHN5bmNwdF9pZCwgc3luY3B0X2luY3JzKSwKPiAgCj4gIAlUUF9TVFJVQ1RfX2VudHJ5KAo+ ICAJCV9fZmllbGQoY29uc3QgY2hhciAqLCBuYW1lKQo+ICAJCV9fZmllbGQodTMyLCBjbWRidWZz KQo+ICAJCV9fZmllbGQodTMyLCByZWxvY3MpCj4gLQkJX19maWVsZCh1MzIsIHdhaXRjaGtzKQo+ ICAJCV9fZmllbGQodTMyLCBzeW5jcHRfaWQpCj4gIAkJX19maWVsZCh1MzIsIHN5bmNwdF9pbmNy cykKPiAgCSksCj4gQEAgLTEzMywxNSArMTMyLDE0IEBAIFRSQUNFX0VWRU5UKGhvc3QxeF9jaGFu bmVsX3N1Ym1pdCwKPiAgCQlfX2VudHJ5LT5uYW1lID0gbmFtZTsKPiAgCQlfX2VudHJ5LT5jbWRi dWZzID0gY21kYnVmczsKPiAgCQlfX2VudHJ5LT5yZWxvY3MgPSByZWxvY3M7Cj4gLQkJX19lbnRy eS0+d2FpdGNoa3MgPSB3YWl0Y2hrczsKPiAgCQlfX2VudHJ5LT5zeW5jcHRfaWQgPSBzeW5jcHRf aWQ7Cj4gIAkJX19lbnRyeS0+c3luY3B0X2luY3JzID0gc3luY3B0X2luY3JzOwo+ICAJKSwKPiAg Cj4gLQlUUF9wcmludGsoIm5hbWU9JXMsIGNtZGJ1ZnM9JXUsIHJlbG9jcz0ldSwgd2FpdGNoa3M9 JWQsIgo+IC0JCSJzeW5jcHRfaWQ9JXUsIHN5bmNwdF9pbmNycz0ldSIsCj4gLQkgIF9fZW50cnkt Pm5hbWUsIF9fZW50cnktPmNtZGJ1ZnMsIF9fZW50cnktPnJlbG9jcywgX19lbnRyeS0+d2FpdGNo a3MsCj4gLQkgIF9fZW50cnktPnN5bmNwdF9pZCwgX19lbnRyeS0+c3luY3B0X2luY3JzKQo+ICsJ VFBfcHJpbnRrKCJuYW1lPSVzLCBjbWRidWZzPSV1LCByZWxvY3M9JXUsIHN5bmNwdF9pZD0ldSwg Igo+ICsJCSAgInN5bmNwdF9pbmNycz0ldSIsCj4gKwkJICBfX2VudHJ5LT5uYW1lLCBfX2VudHJ5 LT5jbWRidWZzLCBfX2VudHJ5LT5yZWxvY3MsCj4gKwkJICBfX2VudHJ5LT5zeW5jcHRfaWQsIF9f ZW50cnktPnN5bmNwdF9pbmNycykKPiAgKTsKPiAgCj4gIFRSQUNFX0VWRU5UKGhvc3QxeF9jaGFu bmVsX3N1Ym1pdHRlZCwKPiAKClJldmlld2VkLWJ5OiBEbWl0cnkgT3NpcGVua28gPGRpZ2V0eEBn bWFpbC5jb20+ClRlc3RlZC1ieTogRG1pdHJ5IE9zaXBlbmtvIDxkaWdldHhAZ21haWwuY29tPgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK