From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 1/7] gpu: host1x: Remove wait check support Date: Thu, 17 May 2018 17:34:24 +0200 Message-ID: <20180517153430.9602-2-thierry.reding@gmail.com> References: <20180517153430.9602-1-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-1-thierry.reding@gmail.com> 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, Dmitry Osipenko , dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBqb2Igc3VibWlz c2lvbiB1c2Vyc3BhY2UgQUJJIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIGFuZCB0aGVyZSBhcmUgbm8K cGxhbnMgdG8gaW1wbGVtZW50IGl0LCBzbyBhbGwgb2YgdGhpcyBjb2RlIGlzIGRlYWQgYW5kIGNh biBiZSByZW1vdmVkLgoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZp ZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMgICAgICAgIHwgIDYyICst LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5oICAgICAgICAgICB8ICAgOCAt LQogZHJpdmVycy9ncHUvaG9zdDF4L2h3L2NoYW5uZWxfaHcuYyB8ICAgMyArLQogZHJpdmVycy9n cHUvaG9zdDF4L2h3L3N5bmNwdF9ody5jICB8ICAxMSAtLS0KIGRyaXZlcnMvZ3B1L2hvc3QxeC9q b2IuYyAgICAgICAgICAgfCAxMjQgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2hvc3QxeC9zeW5jcHQuYyAgICAgICAgfCAgIDYgLS0KIGRyaXZlcnMvZ3B1L2hvc3Qx eC9zeW5jcHQuaCAgICAgICAgfCAgIDMgLQogaW5jbHVkZS9saW51eC9ob3N0MXguaCAgICAgICAg ICAgICB8ICAxNSArLS0tCiBpbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaCAgICAgIHwgIDE2 ICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjM0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYyBiL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS9kcm0uYwppbmRleCA3YWZlMmY2MzVmNzQuLjMzZTQ3OTE4Mjc3MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kcm0uYwpAQCAtMzEzLDQ2ICszMTMsMTQgQEAgc3RhdGljIGludCBob3N0MXhfcmVsb2Nf Y29weV9mcm9tX3VzZXIoc3RydWN0IGhvc3QxeF9yZWxvYyAqZGVzdCwKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBob3N0MXhfd2FpdGNoa19jb3B5X2Zyb21fdXNlcihzdHJ1Y3QgaG9zdDF4 X3dhaXRjaGsgKmRlc3QsCi0JCQkJCSBzdHJ1Y3QgZHJtX3RlZ3JhX3dhaXRjaGsgX191c2VyICpz cmMsCi0JCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCi17Ci0JdTMyIGNtZGJ1ZjsKLQlpbnQg ZXJyOwotCi0JZXJyID0gZ2V0X3VzZXIoY21kYnVmLCAmc3JjLT5oYW5kbGUpOwotCWlmIChlcnIg PCAwKQotCQlyZXR1cm4gZXJyOwotCi0JZXJyID0gZ2V0X3VzZXIoZGVzdC0+b2Zmc2V0LCAmc3Jj LT5vZmZzZXQpOwotCWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOwotCi0JZXJyID0gZ2V0X3Vz ZXIoZGVzdC0+c3luY3B0X2lkLCAmc3JjLT5zeW5jcHQpOwotCWlmIChlcnIgPCAwKQotCQlyZXR1 cm4gZXJyOwotCi0JZXJyID0gZ2V0X3VzZXIoZGVzdC0+dGhyZXNoLCAmc3JjLT50aHJlc2gpOwot CWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOwotCi0JZGVzdC0+Ym8gPSBob3N0MXhfYm9fbG9v a3VwKGZpbGUsIGNtZGJ1Zik7Ci0JaWYgKCFkZXN0LT5ibykKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0K LQlyZXR1cm4gMDsKLX0KLQogaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9j b250ZXh0ICpjb250ZXh0LAogCQkgICAgIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0ICphcmdzLCBz dHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsK IAl1bnNpZ25lZCBpbnQgbnVtX2NtZGJ1ZnMgPSBhcmdzLT5udW1fY21kYnVmczsKIAl1bnNpZ25l ZCBpbnQgbnVtX3JlbG9jcyA9IGFyZ3MtPm51bV9yZWxvY3M7Ci0JdW5zaWduZWQgaW50IG51bV93 YWl0Y2hrcyA9IGFyZ3MtPm51bV93YWl0Y2hrczsKIAlzdHJ1Y3QgZHJtX3RlZ3JhX2NtZGJ1ZiBf X3VzZXIgKnVzZXJfY21kYnVmczsKIAlzdHJ1Y3QgZHJtX3RlZ3JhX3JlbG9jIF9fdXNlciAqdXNl cl9yZWxvY3M7Ci0Jc3RydWN0IGRybV90ZWdyYV93YWl0Y2hrIF9fdXNlciAqdXNlcl93YWl0Y2hr czsKIAlzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBfX3VzZXIgKnVzZXJfc3luY3B0OwogCXN0cnVj dCBkcm1fdGVncmFfc3luY3B0IHN5bmNwdDsKIAlzdHJ1Y3QgaG9zdDF4ICpob3N0MXggPSBkZXZf Z2V0X2RydmRhdGEoZHJtLT5kZXYtPnBhcmVudCk7CkBAIC0zNjQsNyArMzMyLDYgQEAgaW50IHRl Z3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250ZXh0LAogCiAJdXNl cl9jbWRidWZzID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmNtZGJ1ZnMpOwogCXVzZXJfcmVsb2Nz ID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnJlbG9jcyk7Ci0JdXNlcl93YWl0Y2hrcyA9IHU2NF90 b191c2VyX3B0cihhcmdzLT53YWl0Y2hrcyk7CiAJdXNlcl9zeW5jcHQgPSB1NjRfdG9fdXNlcl9w dHIoYXJncy0+c3luY3B0cyk7CiAKIAkvKiBXZSBkb24ndCB5ZXQgc3VwcG9ydCBvdGhlciB0aGFu IG9uZSBzeW5jcHRfaW5jciBzdHJ1Y3QgcGVyIHN1Ym1pdCAqLwpAQCAtMzc2LDEyICszNDMsMTEg QEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250ZXh0 LAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWpvYiA9IGhvc3QxeF9qb2JfYWxsb2MoY29udGV4dC0+ Y2hhbm5lbCwgYXJncy0+bnVtX2NtZGJ1ZnMsCi0JCQkgICAgICAgYXJncy0+bnVtX3JlbG9jcywg YXJncy0+bnVtX3dhaXRjaGtzKTsKKwkJCSAgICAgICBhcmdzLT5udW1fcmVsb2NzKTsKIAlpZiAo IWpvYikKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlqb2ItPm51bV9yZWxvY3MgPSBhcmdzLT5udW1f cmVsb2NzOwotCWpvYi0+bnVtX3dhaXRjaGsgPSBhcmdzLT5udW1fd2FpdGNoa3M7CiAJam9iLT5j bGllbnQgPSAodTMyKWFyZ3MtPmNvbnRleHQ7CiAJam9iLT5jbGFzcyA9IGNvbnRleHQtPmNsaWVu dC0+YmFzZS5jbGFzczsKIAlqb2ItPnNlcmlhbGl6ZSA9IHRydWU7CkBAIC0zOTAsNyArMzU2LDcg QEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250ZXh0 LAogCSAqIFRyYWNrIHJlZmVyZW5jZWQgQk9zIHNvIHRoYXQgdGhleSBjYW4gYmUgdW5yZWZlcmVu Y2VkIGFmdGVyIHRoZQogCSAqIHN1Ym1pc3Npb24gaXMgY29tcGxldGUuCiAJICovCi0JbnVtX3Jl ZnMgPSBudW1fY21kYnVmcyArIG51bV9yZWxvY3MgKiAyICsgbnVtX3dhaXRjaGtzOworCW51bV9y ZWZzID0gbnVtX2NtZGJ1ZnMgKyBudW1fcmVsb2NzICogMjsKIAogCXJlZnMgPSBrbWFsbG9jX2Fy cmF5KG51bV9yZWZzLCBzaXplb2YoKnJlZnMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJlZnMpIHsK QEAgLTQ4MSwzMCArNDQ3LDYgQEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2Ry bV9jb250ZXh0ICpjb250ZXh0LAogCQl9CiAJfQogCi0JLyogY29weSBhbmQgcmVzb2x2ZSB3YWl0 Y2hrcyBmcm9tIHN1Ym1pdCAqLwotCXdoaWxlIChudW1fd2FpdGNoa3MtLSkgewotCQlzdHJ1Y3Qg aG9zdDF4X3dhaXRjaGsgKndhaXQgPSAmam9iLT53YWl0Y2hrW251bV93YWl0Y2hrc107Ci0JCXN0 cnVjdCB0ZWdyYV9ibyAqb2JqOwotCi0JCWVyciA9IGhvc3QxeF93YWl0Y2hrX2NvcHlfZnJvbV91 c2VyKAotCQkJd2FpdCwgJnVzZXJfd2FpdGNoa3NbbnVtX3dhaXRjaGtzXSwgZmlsZSk7Ci0JCWlm IChlcnIgPCAwKQotCQkJZ290byBmYWlsOwotCi0JCW9iaiA9IGhvc3QxeF90b190ZWdyYV9ibyh3 YWl0LT5ibyk7Ci0JCXJlZnNbbnVtX3JlZnMrK10gPSAmb2JqLT5nZW07Ci0KLQkJLyoKLQkJICog VGhlIHVuYWxpZ25lZCBvZmZzZXQgd2lsbCBjYXVzZSBhbiB1bmFsaWduZWQgd3JpdGUgZHVyaW5n Ci0JCSAqIG9mIHRoZSB3YWl0Y2hrcyBwYXRjaGluZywgY29ycnVwdGluZyB0aGUgY29tbWFuZHMg c3RyZWFtLgotCQkgKi8KLQkJaWYgKHdhaXQtPm9mZnNldCAmIDMgfHwKLQkJICAgIHdhaXQtPm9m ZnNldCA+PSBvYmotPmdlbS5zaXplKSB7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJZ290byBmYWls OwotCQl9Ci0JfQotCiAJaWYgKGNvcHlfZnJvbV91c2VyKCZzeW5jcHQsIHVzZXJfc3luY3B0LCBz aXplb2Yoc3luY3B0KSkpIHsKIAkJZXJyID0gLUVGQVVMVDsKIAkJZ290byBmYWlsOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5oIGIvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5o CmluZGV4IDQzZTlmYWJiNDNhMS4uMzZmNDRmZmViZTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9ob3N0MXgvZGV2LmgKKysrIGIvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5oCkBAIC03OCw3ICs3 OCw2IEBAIHN0cnVjdCBob3N0MXhfc3luY3B0X29wcyB7CiAJdm9pZCAoKmxvYWRfd2FpdF9iYXNl KShzdHJ1Y3QgaG9zdDF4X3N5bmNwdCAqc3luY3B0KTsKIAl1MzIgKCpsb2FkKShzdHJ1Y3QgaG9z dDF4X3N5bmNwdCAqc3luY3B0KTsKIAlpbnQgKCpjcHVfaW5jcikoc3RydWN0IGhvc3QxeF9zeW5j cHQgKnN5bmNwdCk7Ci0JaW50ICgqcGF0Y2hfd2FpdCkoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnN5 bmNwdCwgdm9pZCAqcGF0Y2hfYWRkcik7CiAJdm9pZCAoKmFzc2lnbl90b19jaGFubmVsKShzdHJ1 Y3QgaG9zdDF4X3N5bmNwdCAqc3luY3B0LAogCSAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGhvc3QxeF9jaGFubmVsICpjaGFubmVsKTsKIAl2b2lkICgqZW5hYmxlX3Byb3RlY3Rpb24p KHN0cnVjdCBob3N0MXggKmhvc3QpOwpAQCAtMTgzLDEzICsxODIsNiBAQCBzdGF0aWMgaW5saW5l IGludCBob3N0MXhfaHdfc3luY3B0X2NwdV9pbmNyKHN0cnVjdCBob3N0MXggKmhvc3QsCiAJcmV0 dXJuIGhvc3QtPnN5bmNwdF9vcC0+Y3B1X2luY3Ioc3ApOwogfQogCi1zdGF0aWMgaW5saW5lIGlu dCBob3N0MXhfaHdfc3luY3B0X3BhdGNoX3dhaXQoc3RydWN0IGhvc3QxeCAqaG9zdCwKLQkJCQkJ ICAgICAgc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwLAotCQkJCQkgICAgICB2b2lkICpwYXRjaF9h ZGRyKQotewotCXJldHVybiBob3N0LT5zeW5jcHRfb3AtPnBhdGNoX3dhaXQoc3AsIHBhdGNoX2Fk ZHIpOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgaG9zdDF4X2h3X3N5bmNwdF9hc3NpZ25fdG9f Y2hhbm5lbCgKIAlzdHJ1Y3QgaG9zdDF4ICpob3N0LCBzdHJ1Y3QgaG9zdDF4X3N5bmNwdCAqc3As CiAJc3RydWN0IGhvc3QxeF9jaGFubmVsICpjaCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2hv c3QxeC9ody9jaGFubmVsX2h3LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvaHcvY2hhbm5lbF9ody5j CmluZGV4IDlhZjc1ODc4NWExMS4uNGM5NTU1MDM4YTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9ob3N0MXgvaHcvY2hhbm5lbF9ody5jCisrKyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9ody9jaGFu bmVsX2h3LmMKQEAgLTEwNCw4ICsxMDQsNyBAQCBzdGF0aWMgaW50IGNoYW5uZWxfc3VibWl0KHN0 cnVjdCBob3N0MXhfam9iICpqb2IpCiAJc3AgPSBob3N0LT5zeW5jcHQgKyBqb2ItPnN5bmNwdF9p ZDsKIAl0cmFjZV9ob3N0MXhfY2hhbm5lbF9zdWJtaXQoZGV2X25hbWUoY2gtPmRldiksCiAJCQkJ ICAgIGpvYi0+bnVtX2dhdGhlcnMsIGpvYi0+bnVtX3JlbG9jcywKLQkJCQkgICAgam9iLT5udW1f d2FpdGNoaywgam9iLT5zeW5jcHRfaWQsCi0JCQkJICAgIGpvYi0+c3luY3B0X2luY3JzKTsKKwkJ CQkgICAgam9iLT5zeW5jcHRfaWQsIGpvYi0+c3luY3B0X2luY3JzKTsKIAogCS8qIGJlZm9yZSBl cnJvciBjaGVja3MsIHJldHVybiBjdXJyZW50IG1heCAqLwogCXByZXZfbWF4ID0gam9iLT5zeW5j cHRfZW5kID0gaG9zdDF4X3N5bmNwdF9yZWFkX21heChzcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9ob3N0MXgvaHcvc3luY3B0X2h3LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvaHcvc3luY3B0 X2h3LmMKaW5kZXggN2RmZDQ3ZDc0Zjg5Li5hMjNiYjMzNTJkMDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2hvc3QxeC9ody9zeW5jcHRfaHcuYworKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvaHcv c3luY3B0X2h3LmMKQEAgLTk2LDE2ICs5Niw2IEBAIHN0YXRpYyBpbnQgc3luY3B0X2NwdV9pbmNy KHN0cnVjdCBob3N0MXhfc3luY3B0ICpzcCkKIAlyZXR1cm4gMDsKIH0KIAotLyogcmVtb3ZlIGEg d2FpdCBwb2ludGVkIHRvIGJ5IHBhdGNoX2FkZHIgKi8KLXN0YXRpYyBpbnQgc3luY3B0X3BhdGNo X3dhaXQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwLCB2b2lkICpwYXRjaF9hZGRyKQotewotCXUz MiBvdmVycmlkZSA9IGhvc3QxeF9jbGFzc19ob3N0X3dhaXRfc3luY3B0KEhPU1QxWF9TWU5DUFRf UkVTRVJWRUQsIDApOwotCi0JKigodTMyICopcGF0Y2hfYWRkcikgPSBvdmVycmlkZTsKLQotCXJl dHVybiAwOwotfQotCiAvKioKICAqIHN5bmNwdF9hc3NpZ25fdG9fY2hhbm5lbCgpIC0gQXNzaWdu IHN5bmNwb2ludCB0byBjaGFubmVsCiAgKiBAc3A6IHN5bmNwb2ludApAQCAtMTU2LDcgKzE0Niw2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaG9zdDF4X3N5bmNwdF9vcHMgaG9zdDF4X3N5bmNwdF9v cHMgPSB7CiAJLmxvYWRfd2FpdF9iYXNlID0gc3luY3B0X3JlYWRfd2FpdF9iYXNlLAogCS5sb2Fk ID0gc3luY3B0X2xvYWQsCiAJLmNwdV9pbmNyID0gc3luY3B0X2NwdV9pbmNyLAotCS5wYXRjaF93 YWl0ID0gc3luY3B0X3BhdGNoX3dhaXQsCiAJLmFzc2lnbl90b19jaGFubmVsID0gc3luY3B0X2Fz c2lnbl90b19jaGFubmVsLAogCS5lbmFibGVfcHJvdGVjdGlvbiA9IHN5bmNwdF9lbmFibGVfcHJv dGVjdGlvbiwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ob3N0MXgvam9iLmMgYi9kcml2 ZXJzL2dwdS9ob3N0MXgvam9iLmMKaW5kZXggZGI1MDlhYjg4NzRlLi4zY2JmYzZlMzc2NjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9qb2IuYworKysgYi9kcml2ZXJzL2dwdS9ob3N0 MXgvam9iLmMKQEAgLTM0LDggKzM0LDcgQEAKICNkZWZpbmUgSE9TVDFYX1dBSVRfU1lOQ1BUX09G RlNFVCAweDgKIAogc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9qb2JfYWxsb2Moc3RydWN0IGhv c3QxeF9jaGFubmVsICpjaCwKLQkJCQkgICAgdTMyIG51bV9jbWRidWZzLCB1MzIgbnVtX3JlbG9j cywKLQkJCQkgICAgdTMyIG51bV93YWl0Y2hrcykKKwkJCQkgICAgdTMyIG51bV9jbWRidWZzLCB1 MzIgbnVtX3JlbG9jcykKIHsKIAlzdHJ1Y3QgaG9zdDF4X2pvYiAqam9iID0gTlVMTDsKIAl1bnNp Z25lZCBpbnQgbnVtX3VucGlucyA9IG51bV9jbWRidWZzICsgbnVtX3JlbG9jczsKQEAgLTQ2LDcg KzQ1LDYgQEAgc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9qb2JfYWxsb2Moc3RydWN0IGhvc3Qx eF9jaGFubmVsICpjaCwKIAl0b3RhbCA9IHNpemVvZihzdHJ1Y3QgaG9zdDF4X2pvYikgKwogCQko dTY0KW51bV9yZWxvY3MgKiBzaXplb2Yoc3RydWN0IGhvc3QxeF9yZWxvYykgKwogCQkodTY0KW51 bV91bnBpbnMgKiBzaXplb2Yoc3RydWN0IGhvc3QxeF9qb2JfdW5waW5fZGF0YSkgKwotCQkodTY0 KW51bV93YWl0Y2hrcyAqIHNpemVvZihzdHJ1Y3QgaG9zdDF4X3dhaXRjaGspICsKIAkJKHU2NClu dW1fY21kYnVmcyAqIHNpemVvZihzdHJ1Y3QgaG9zdDF4X2pvYl9nYXRoZXIpICsKIAkJKHU2NClu dW1fdW5waW5zICogc2l6ZW9mKGRtYV9hZGRyX3QpICsKIAkJKHU2NCludW1fdW5waW5zICogc2l6 ZW9mKHUzMiAqKTsKQEAgLTY2LDggKzY0LDYgQEAgc3RydWN0IGhvc3QxeF9qb2IgKmhvc3QxeF9q b2JfYWxsb2Moc3RydWN0IGhvc3QxeF9jaGFubmVsICpjaCwKIAltZW0gKz0gbnVtX3JlbG9jcyAq IHNpemVvZihzdHJ1Y3QgaG9zdDF4X3JlbG9jKTsKIAlqb2ItPnVucGlucyA9IG51bV91bnBpbnMg PyBtZW0gOiBOVUxMOwogCW1lbSArPSBudW1fdW5waW5zICogc2l6ZW9mKHN0cnVjdCBob3N0MXhf am9iX3VucGluX2RhdGEpOwotCWpvYi0+d2FpdGNoayA9IG51bV93YWl0Y2hrcyA/IG1lbSA6IE5V TEw7Ci0JbWVtICs9IG51bV93YWl0Y2hrcyAqIHNpemVvZihzdHJ1Y3QgaG9zdDF4X3dhaXRjaGsp OwogCWpvYi0+Z2F0aGVycyA9IG51bV9jbWRidWZzID8gbWVtIDogTlVMTDsKIAltZW0gKz0gbnVt X2NtZGJ1ZnMgKiBzaXplb2Yoc3RydWN0IGhvc3QxeF9qb2JfZ2F0aGVyKTsKIAlqb2ItPmFkZHJf cGh5cyA9IG51bV91bnBpbnMgPyBtZW0gOiBOVUxMOwpAQCAtMTExLDczICsxMDcsNiBAQCB2b2lk IGhvc3QxeF9qb2JfYWRkX2dhdGhlcihzdHJ1Y3QgaG9zdDF4X2pvYiAqam9iLCBzdHJ1Y3QgaG9z dDF4X2JvICpibywKIH0KIEVYUE9SVF9TWU1CT0woaG9zdDF4X2pvYl9hZGRfZ2F0aGVyKTsKIAot LyoKLSAqIE5VTEwgYW4gYWxyZWFkeSBzYXRpc2ZpZWQgV0FJVF9TWU5DUFQgaG9zdCBtZXRob2Qs IGJ5IHBhdGNoaW5nIGl0cwotICogYXJncyBpbiB0aGUgY29tbWFuZCBzdHJlYW0uIFRoZSBtZXRo b2QgZGF0YSBpcyBjaGFuZ2VkIHRvIHJlZmVyZW5jZQotICogYSByZXNlcnZlZCAobmV2ZXIgZ2l2 ZW4gb3V0IG9yIGluY3IpIEhPU1QxWF9TWU5DUFRfUkVTRVJWRUQgc3luY3B0Ci0gKiB3aXRoIGEg bWF0Y2hpbmcgdGhyZXNob2xkIHZhbHVlIG9mIDAsIHNvIGlzIGd1YXJhbnRlZWQgdG8gYmUgcG9w cGVkCi0gKiBieSB0aGUgaG9zdCBIVy4KLSAqLwotc3RhdGljIHZvaWQgaG9zdDF4X3N5bmNwdF9w YXRjaF9vZmZzZXQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwLAotCQkJCSAgICAgICBzdHJ1Y3Qg aG9zdDF4X2JvICpoLCB1MzIgb2Zmc2V0KQotewotCXZvaWQgKnBhdGNoX2FkZHIgPSBOVUxMOwot Ci0JLyogcGF0Y2ggdGhlIHdhaXQgKi8KLQlwYXRjaF9hZGRyID0gaG9zdDF4X2JvX2ttYXAoaCwg b2Zmc2V0ID4+IFBBR0VfU0hJRlQpOwotCWlmIChwYXRjaF9hZGRyKSB7Ci0JCWhvc3QxeF9zeW5j cHRfcGF0Y2hfd2FpdChzcCwKLQkJCQkJIHBhdGNoX2FkZHIgKyAob2Zmc2V0ICYgflBBR0VfTUFT SykpOwotCQlob3N0MXhfYm9fa3VubWFwKGgsIG9mZnNldCA+PiBQQUdFX1NISUZULCBwYXRjaF9h ZGRyKTsKLQl9IGVsc2UKLQkJcHJfZXJyKCJDb3VsZCBub3QgbWFwIGNtZGJ1ZiBmb3Igd2FpdCBj aGVja1xuIik7Ci19Ci0KLS8qCi0gKiBDaGVjayBkcml2ZXIgc3VwcGxpZWQgd2FpdGNoayBzdHJ1 Y3RzIGZvciBzeW5jcHQgdGhyZXNob2xkcwotICogdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBzYXRp c2ZpZWQgYW5kIE5VTEwgdGhlIGNvbXBhcmlzb24gKHRvCi0gKiBhdm9pZCBhIHdyYXAgY29uZGl0 aW9uIGluIHRoZSBIVykuCi0gKi8KLXN0YXRpYyBpbnQgZG9fd2FpdGNoa3Moc3RydWN0IGhvc3Qx eF9qb2IgKmpvYiwgc3RydWN0IGhvc3QxeCAqaG9zdCwKLQkJICAgICAgIHN0cnVjdCBob3N0MXhf am9iX2dhdGhlciAqZykKLXsKLQlzdHJ1Y3QgaG9zdDF4X2JvICpwYXRjaCA9IGctPmJvOwotCWlu dCBpOwotCi0JLyogY29tcGFyZSBzeW5jcHQgdnMgd2FpdCB0aHJlc2hvbGQgKi8KLQlmb3IgKGkg PSAwOyBpIDwgam9iLT5udW1fd2FpdGNoazsgaSsrKSB7Ci0JCXN0cnVjdCBob3N0MXhfd2FpdGNo ayAqd2FpdCA9ICZqb2ItPndhaXRjaGtbaV07Ci0JCXN0cnVjdCBob3N0MXhfc3luY3B0ICpzcCA9 Ci0JCQlob3N0MXhfc3luY3B0X2dldChob3N0LCB3YWl0LT5zeW5jcHRfaWQpOwotCi0JCS8qIHZh bGlkYXRlIHN5bmNwdCBpZCAqLwotCQlpZiAod2FpdC0+c3luY3B0X2lkID4gaG9zdDF4X3N5bmNw dF9uYl9wdHMoaG9zdCkpCi0JCQljb250aW51ZTsKLQotCQkvKiBza2lwIGFsbCBvdGhlciBnYXRo ZXJzICovCi0JCWlmIChwYXRjaCAhPSB3YWl0LT5ibykKLQkJCWNvbnRpbnVlOwotCi0JCXRyYWNl X2hvc3QxeF9zeW5jcHRfd2FpdF9jaGVjayh3YWl0LT5ibywgd2FpdC0+b2Zmc2V0LAotCQkJCQkg ICAgICAgd2FpdC0+c3luY3B0X2lkLCB3YWl0LT50aHJlc2gsCi0JCQkJCSAgICAgICBob3N0MXhf c3luY3B0X3JlYWRfbWluKHNwKSk7Ci0KLQkJaWYgKGhvc3QxeF9zeW5jcHRfaXNfZXhwaXJlZChz cCwgd2FpdC0+dGhyZXNoKSkgewotCQkJZGV2X2RiZyhob3N0LT5kZXYsCi0JCQkJImRyb3AgV0FJ VCBpZCAldSAoJXMpIHRocmVzaCAweCV4LCBtaW4gMHgleFxuIiwKLQkJCQl3YWl0LT5zeW5jcHRf aWQsIHNwLT5uYW1lLCB3YWl0LT50aHJlc2gsCi0JCQkJaG9zdDF4X3N5bmNwdF9yZWFkX21pbihz cCkpOwotCi0JCQlob3N0MXhfc3luY3B0X3BhdGNoX29mZnNldChzcCwgcGF0Y2gsCi0JCQkJCQkg ICBnLT5vZmZzZXQgKyB3YWl0LT5vZmZzZXQpOwotCQl9Ci0KLQkJd2FpdC0+Ym8gPSBOVUxMOwot CX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdW5zaWduZWQgaW50IHBpbl9qb2Ioc3RydWN0 IGhvc3QxeCAqaG9zdCwgc3RydWN0IGhvc3QxeF9qb2IgKmpvYikKIHsKIAl1bnNpZ25lZCBpbnQg aTsKQEAgLTMzMSwxNyArMjYwLDYgQEAgc3RhdGljIGJvb2wgY2hlY2tfcmVsb2Moc3RydWN0IGhv c3QxeF9yZWxvYyAqcmVsb2MsIHN0cnVjdCBob3N0MXhfYm8gKmNtZGJ1ZiwKIAlyZXR1cm4gdHJ1 ZTsKIH0KIAotc3RhdGljIGJvb2wgY2hlY2tfd2FpdChzdHJ1Y3QgaG9zdDF4X3dhaXRjaGsgKndh aXQsIHN0cnVjdCBob3N0MXhfYm8gKmNtZGJ1ZiwKLQkJICAgICAgIHVuc2lnbmVkIGludCBvZmZz ZXQpCi17Ci0Jb2Zmc2V0ICo9IHNpemVvZih1MzIpOwotCi0JaWYgKHdhaXQtPmJvICE9IGNtZGJ1 ZiB8fCB3YWl0LT5vZmZzZXQgIT0gb2Zmc2V0KQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlyZXR1cm4g dHJ1ZTsKLX0KLQogc3RydWN0IGhvc3QxeF9maXJld2FsbCB7CiAJc3RydWN0IGhvc3QxeF9qb2Ig KmpvYjsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CkBAIC0zNDksOSArMjY3LDYgQEAgc3RydWN0IGhv c3QxeF9maXJld2FsbCB7CiAJdW5zaWduZWQgaW50IG51bV9yZWxvY3M7CiAJc3RydWN0IGhvc3Qx eF9yZWxvYyAqcmVsb2M7CiAKLQl1bnNpZ25lZCBpbnQgbnVtX3dhaXRjaGtzOwotCXN0cnVjdCBo b3N0MXhfd2FpdGNoayAqd2FpdGNoazsKLQogCXN0cnVjdCBob3N0MXhfYm8gKmNtZGJ1ZjsKIAl1 bnNpZ25lZCBpbnQgb2Zmc2V0OwogCkBAIC0zNzgsMjAgKzI5Myw2IEBAIHN0YXRpYyBpbnQgY2hl Y2tfcmVnaXN0ZXIoc3RydWN0IGhvc3QxeF9maXJld2FsbCAqZncsIHVuc2lnbmVkIGxvbmcgb2Zm c2V0KQogCQlmdy0+cmVsb2MrKzsKIAl9CiAKLQlpZiAob2Zmc2V0ID09IEhPU1QxWF9XQUlUX1NZ TkNQVF9PRkZTRVQpIHsKLQkJaWYgKGZ3LT5jbGFzcyAhPSBIT1NUMVhfQ0xBU1NfSE9TVDFYKQot CQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkJaWYgKCFmdy0+bnVtX3dhaXRjaGtzKQotCQkJcmV0dXJu IC1FSU5WQUw7Ci0KLQkJaWYgKCFjaGVja193YWl0KGZ3LT53YWl0Y2hrLCBmdy0+Y21kYnVmLCBm dy0+b2Zmc2V0KSkKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCWZ3LT5udW1fd2FpdGNoa3MtLTsK LQkJZnctPndhaXRjaGsrKzsKLQl9Ci0KIAlyZXR1cm4gMDsKIH0KIApAQCAtNTU2LDggKzQ1Nyw2 IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNvcHlfZ2F0aGVycyhzdHJ1Y3QgaG9zdDF4X2pvYiAqam9i LCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJZncuZGV2ID0gZGV2OwogCWZ3LnJlbG9jID0gam9iLT5y ZWxvY2FycmF5OwogCWZ3Lm51bV9yZWxvY3MgPSBqb2ItPm51bV9yZWxvY3M7Ci0JZncud2FpdGNo ayA9IGpvYi0+d2FpdGNoazsKLQlmdy5udW1fd2FpdGNoa3MgPSBqb2ItPm51bV93YWl0Y2hrOwog CWZ3LmNsYXNzID0gam9iLT5jbGFzczsKIAogCWZvciAoaSA9IDA7IGkgPCBqb2ItPm51bV9nYXRo ZXJzOyBpKyspIHsKQEAgLTYwNCw4ICs1MDMsOCBAQCBzdGF0aWMgaW5saW5lIGludCBjb3B5X2dh dGhlcnMoc3RydWN0IGhvc3QxeF9qb2IgKmpvYiwgc3RydWN0IGRldmljZSAqZGV2KQogCQlvZmZz ZXQgKz0gZy0+d29yZHMgKiBzaXplb2YodTMyKTsKIAl9CiAKLQkvKiBObyByZWxvY3MgYW5kIHdh aXRjaGtzIHNob3VsZCByZW1haW4gYXQgdGhpcyBwb2ludCAqLwotCWlmIChmdy5udW1fcmVsb2Nz IHx8IGZ3Lm51bV93YWl0Y2hrcykKKwkvKiBObyByZWxvY3Mgc2hvdWxkIHJlbWFpbiBhdCB0aGlz IHBvaW50ICovCisJaWYgKGZ3Lm51bV9yZWxvY3MpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcmV0 dXJuIDA7CkBAIC02MTYsMTkgKzUxNSw2IEBAIGludCBob3N0MXhfam9iX3BpbihzdHJ1Y3QgaG9z dDF4X2pvYiAqam9iLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaW50IGVycjsKIAl1bnNpZ25lZCBp bnQgaSwgajsKIAlzdHJ1Y3QgaG9zdDF4ICpob3N0ID0gZGV2X2dldF9kcnZkYXRhKGRldi0+cGFy ZW50KTsKLQlERUNMQVJFX0JJVE1BUCh3YWl0Y2hrX21hc2ssIGhvc3QxeF9zeW5jcHRfbmJfcHRz KGhvc3QpKTsKLQotCWJpdG1hcF96ZXJvKHdhaXRjaGtfbWFzaywgaG9zdDF4X3N5bmNwdF9uYl9w dHMoaG9zdCkpOwotCWZvciAoaSA9IDA7IGkgPCBqb2ItPm51bV93YWl0Y2hrOyBpKyspIHsKLQkJ dTMyIHN5bmNwdF9pZCA9IGpvYi0+d2FpdGNoa1tpXS5zeW5jcHRfaWQ7Ci0KLQkJaWYgKHN5bmNw dF9pZCA8IGhvc3QxeF9zeW5jcHRfbmJfcHRzKGhvc3QpKQotCQkJc2V0X2JpdChzeW5jcHRfaWQs IHdhaXRjaGtfbWFzayk7Ci0JfQotCi0JLyogZ2V0IGN1cnJlbnQgc3luY3B0IHZhbHVlcyBmb3Ig d2FpdGNoayAqLwotCWZvcl9lYWNoX3NldF9iaXQoaSwgd2FpdGNoa19tYXNrLCBob3N0MXhfc3lu Y3B0X25iX3B0cyhob3N0KSkKLQkJaG9zdDF4X3N5bmNwdF9sb2FkKGhvc3QtPnN5bmNwdCArIGkp OwogCiAJLyogcGluIG1lbW9yeSAqLwogCWVyciA9IHBpbl9qb2IoaG9zdCwgam9iKTsKQEAgLTY2 MywxMCArNTQ5LDYgQEAgaW50IGhvc3QxeF9qb2JfcGluKHN0cnVjdCBob3N0MXhfam9iICpqb2Is IHN0cnVjdCBkZXZpY2UgKmRldikKIAkJZXJyID0gZG9fcmVsb2NzKGpvYiwgZyk7CiAJCWlmIChl cnIpCiAJCQlicmVhazsKLQotCQllcnIgPSBkb193YWl0Y2hrcyhqb2IsIGhvc3QsIGcpOwotCQlp ZiAoZXJyKQotCQkJYnJlYWs7CiAJfQogCiBvdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9o b3N0MXgvc3luY3B0LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmMKaW5kZXggYTJhOTUy YWRjMTM2Li5hMTA4NjY5MTg4ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9zeW5j cHQuYworKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvc3luY3B0LmMKQEAgLTM3MywxMiArMzczLDYg QEAgYm9vbCBob3N0MXhfc3luY3B0X2lzX2V4cGlyZWQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNw LCB1MzIgdGhyZXNoKQogCQlyZXR1cm4gKHMzMikoY3VycmVudF92YWwgLSB0aHJlc2gpID49IDA7 CiB9CiAKLS8qIHJlbW92ZSBhIHdhaXQgcG9pbnRlZCB0byBieSBwYXRjaF9hZGRyICovCi1pbnQg aG9zdDF4X3N5bmNwdF9wYXRjaF93YWl0KHN0cnVjdCBob3N0MXhfc3luY3B0ICpzcCwgdm9pZCAq cGF0Y2hfYWRkcikKLXsKLQlyZXR1cm4gaG9zdDF4X2h3X3N5bmNwdF9wYXRjaF93YWl0KHNwLT5o b3N0LCBzcCwgcGF0Y2hfYWRkcik7Ci19Ci0KIGludCBob3N0MXhfc3luY3B0X2luaXQoc3RydWN0 IGhvc3QxeCAqaG9zdCkKIHsKIAlzdHJ1Y3QgaG9zdDF4X3N5bmNwdF9iYXNlICpiYXNlczsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9zeW5jcHQuaCBiL2RyaXZlcnMvZ3B1L2hvc3Qx eC9zeW5jcHQuaAppbmRleCA5ZDg4ZDM3YzIzOTcuLmQ5OGUyMjMyNWU5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvaG9zdDF4L3N5bmNwdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9zeW5j cHQuaApAQCAtMTI0LDcgKzEyNCw0IEBAIHN0YXRpYyBpbmxpbmUgaW50IGhvc3QxeF9zeW5jcHRf aXNfdmFsaWQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwKQogCXJldHVybiBzcC0+aWQgPCBob3N0 MXhfc3luY3B0X25iX3B0cyhzcC0+aG9zdCk7CiB9CiAKLS8qIFBhdGNoIGEgd2FpdCBieSByZXBs YWNpbmcgaXQgd2l0aCBhIHdhaXQgZm9yIHN5bmNwdCAwIHZhbHVlIDAgKi8KLWludCBob3N0MXhf c3luY3B0X3BhdGNoX3dhaXQoc3RydWN0IGhvc3QxeF9zeW5jcHQgKnNwLCB2b2lkICpwYXRjaF9h ZGRyKTsKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2hvc3QxeC5oIGIvaW5j bHVkZS9saW51eC9ob3N0MXguaAppbmRleCBkZGY3ZjljYTg2Y2MuLmY2NmJlY2UxZTFiNyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9ob3N0MXguaAorKysgYi9pbmNsdWRlL2xpbnV4L2hvc3Qx eC5oCkBAIC0xOTIsMTMgKzE5Miw2IEBAIHN0cnVjdCBob3N0MXhfcmVsb2MgewogCXVuc2lnbmVk IGxvbmcgc2hpZnQ7CiB9OwogCi1zdHJ1Y3QgaG9zdDF4X3dhaXRjaGsgewotCXN0cnVjdCBob3N0 MXhfYm8gKmJvOwotCXUzMiBvZmZzZXQ7Ci0JdTMyIHN5bmNwdF9pZDsKLQl1MzIgdGhyZXNoOwot fTsKLQogc3RydWN0IGhvc3QxeF9qb2IgewogCS8qIFdoZW4gcmVmY291bnQgZ29lcyB0byB6ZXJv LCBqb2IgY2FuIGJlIGZyZWVkICovCiAJc3RydWN0IGtyZWYgcmVmOwpAQCAtMjE1LDExICsyMDgs NiBAQCBzdHJ1Y3QgaG9zdDF4X2pvYiB7CiAJc3RydWN0IGhvc3QxeF9qb2JfZ2F0aGVyICpnYXRo ZXJzOwogCXVuc2lnbmVkIGludCBudW1fZ2F0aGVyczsKIAotCS8qIFdhaXQgY2hlY2tzIHRvIGJl IHByb2Nlc3NlZCBhdCBzdWJtaXQgdGltZSAqLwotCXN0cnVjdCBob3N0MXhfd2FpdGNoayAqd2Fp dGNoazsKLQl1bnNpZ25lZCBpbnQgbnVtX3dhaXRjaGs7Ci0JdTMyIHdhaXRjaGtfbWFzazsKLQog CS8qIEFycmF5IG9mIGhhbmRsZXMgdG8gYmUgcGlubmVkICYgdW5waW5uZWQgKi8KIAlzdHJ1Y3Qg aG9zdDF4X3JlbG9jICpyZWxvY2FycmF5OwogCXVuc2lnbmVkIGludCBudW1fcmVsb2NzOwpAQCAt MjYxLDggKzI0OSw3IEBAIHN0cnVjdCBob3N0MXhfam9iIHsKIH07CiAKIHN0cnVjdCBob3N0MXhf am9iICpob3N0MXhfam9iX2FsbG9jKHN0cnVjdCBob3N0MXhfY2hhbm5lbCAqY2gsCi0JCQkJICAg IHUzMiBudW1fY21kYnVmcywgdTMyIG51bV9yZWxvY3MsCi0JCQkJICAgIHUzMiBudW1fd2FpdGNo a3MpOworCQkJCSAgICB1MzIgbnVtX2NtZGJ1ZnMsIHUzMiBudW1fcmVsb2NzKTsKIHZvaWQgaG9z dDF4X2pvYl9hZGRfZ2F0aGVyKHN0cnVjdCBob3N0MXhfam9iICpqb2IsIHN0cnVjdCBob3N0MXhf Ym8gKm1lbV9pZCwKIAkJCSAgIHUzMiB3b3JkcywgdTMyIG9mZnNldCk7CiBzdHJ1Y3QgaG9zdDF4 X2pvYiAqaG9zdDF4X2pvYl9nZXQoc3RydWN0IGhvc3QxeF9qb2IgKmpvYik7CmRpZmYgLS1naXQg YS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaCBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2hv c3QxeC5oCmluZGV4IDYzMTE2MzYyNTQzYy4uYTM3ZWY3MzA5MmU1IDEwMDY0NAotLS0gYS9pbmNs dWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaAorKysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0 MXguaApAQCAtMTE1LDE2ICsxMTUsMTUgQEAgVFJBQ0VfRVZFTlQoaG9zdDF4X2NkbWFfcHVzaF9n YXRoZXIsCiApOwogCiBUUkFDRV9FVkVOVChob3N0MXhfY2hhbm5lbF9zdWJtaXQsCi0JVFBfUFJP VE8oY29uc3QgY2hhciAqbmFtZSwgdTMyIGNtZGJ1ZnMsIHUzMiByZWxvY3MsIHUzMiB3YWl0Y2hr cywKLQkJCXUzMiBzeW5jcHRfaWQsIHUzMiBzeW5jcHRfaW5jcnMpLAorCVRQX1BST1RPKGNvbnN0 IGNoYXIgKm5hbWUsIHUzMiBjbWRidWZzLCB1MzIgcmVsb2NzLCB1MzIgc3luY3B0X2lkLAorCQkg dTMyIHN5bmNwdF9pbmNycyksCiAKLQlUUF9BUkdTKG5hbWUsIGNtZGJ1ZnMsIHJlbG9jcywgd2Fp dGNoa3MsIHN5bmNwdF9pZCwgc3luY3B0X2luY3JzKSwKKwlUUF9BUkdTKG5hbWUsIGNtZGJ1ZnMs IHJlbG9jcywgc3luY3B0X2lkLCBzeW5jcHRfaW5jcnMpLAogCiAJVFBfU1RSVUNUX19lbnRyeSgK IAkJX19maWVsZChjb25zdCBjaGFyICosIG5hbWUpCiAJCV9fZmllbGQodTMyLCBjbWRidWZzKQog CQlfX2ZpZWxkKHUzMiwgcmVsb2NzKQotCQlfX2ZpZWxkKHUzMiwgd2FpdGNoa3MpCiAJCV9fZmll bGQodTMyLCBzeW5jcHRfaWQpCiAJCV9fZmllbGQodTMyLCBzeW5jcHRfaW5jcnMpCiAJKSwKQEAg LTEzMywxNSArMTMyLDE0IEBAIFRSQUNFX0VWRU5UKGhvc3QxeF9jaGFubmVsX3N1Ym1pdCwKIAkJ X19lbnRyeS0+bmFtZSA9IG5hbWU7CiAJCV9fZW50cnktPmNtZGJ1ZnMgPSBjbWRidWZzOwogCQlf X2VudHJ5LT5yZWxvY3MgPSByZWxvY3M7Ci0JCV9fZW50cnktPndhaXRjaGtzID0gd2FpdGNoa3M7 CiAJCV9fZW50cnktPnN5bmNwdF9pZCA9IHN5bmNwdF9pZDsKIAkJX19lbnRyeS0+c3luY3B0X2lu Y3JzID0gc3luY3B0X2luY3JzOwogCSksCiAKLQlUUF9wcmludGsoIm5hbWU9JXMsIGNtZGJ1ZnM9 JXUsIHJlbG9jcz0ldSwgd2FpdGNoa3M9JWQsIgotCQkic3luY3B0X2lkPSV1LCBzeW5jcHRfaW5j cnM9JXUiLAotCSAgX19lbnRyeS0+bmFtZSwgX19lbnRyeS0+Y21kYnVmcywgX19lbnRyeS0+cmVs b2NzLCBfX2VudHJ5LT53YWl0Y2hrcywKLQkgIF9fZW50cnktPnN5bmNwdF9pZCwgX19lbnRyeS0+ c3luY3B0X2luY3JzKQorCVRQX3ByaW50aygibmFtZT0lcywgY21kYnVmcz0ldSwgcmVsb2NzPSV1 LCBzeW5jcHRfaWQ9JXUsICIKKwkJICAic3luY3B0X2luY3JzPSV1IiwKKwkJICBfX2VudHJ5LT5u YW1lLCBfX2VudHJ5LT5jbWRidWZzLCBfX2VudHJ5LT5yZWxvY3MsCisJCSAgX19lbnRyeS0+c3lu Y3B0X2lkLCBfX2VudHJ5LT5zeW5jcHRfaW5jcnMpCiApOwogCiBUUkFDRV9FVkVOVChob3N0MXhf Y2hhbm5lbF9zdWJtaXR0ZWQsCi0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=