From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH i-g-t 2/2] lib/igt_dummyload: Send batch as first Date: Thu, 18 Apr 2019 17:24:55 +0300 Message-ID: <20190418142455.19763-2-mika.kuoppala@linux.intel.com> References: <20190418142455.19763-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id D35916E14F for ; Thu, 18 Apr 2019 14:25:02 +0000 (UTC) In-Reply-To: <20190418142455.19763-1-mika.kuoppala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VG8gc2ltcGxpZnkgZW1pdHRpbmcgdGhlIHJlY3Vyc2l2ZSBiYXRjaCwgbWFrZSBiYXRjaAphbHdh eXMgdGhlIGZpcnN0IG9iamVjdCBvbiB0aGUgZXhlY2J1ZiBsaXN0LgoKdjI6IHNldCBoYW5kbGVz IGVhcmx5LCBwb2xsX3B0ciBpbmRlY2VuY3kgKENocmlzKQoKQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWth Lmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2R1bW15bG9hZC5jICAgICAg ICAgICAgIHwgMTI5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2R1 bW15bG9hZC5oICAgICAgICAgICAgIHwgIDEyICsrLQogdGVzdHMvaTkxNS9nZW1fY29uY3VycmVu dF9hbGwuYyB8ICAgMyArLQogdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMgICB8ICAgMiAr LQogdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jICB8ICAxNCArKy0tCiB0ZXN0cy9pOTE1 L2dlbV9zb2Z0cGluLmMgICAgICAgIHwgICAyICstCiB0ZXN0cy9pOTE1L2dlbV9zcGluX2JhdGNo LmMgICAgIHwgIDE2ICsrLS0KIHRlc3RzL2k5MTUvaTkxNV9oYW5nbWFuLmMgICAgICAgfCAgIDIg Ky0KIDggZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliL2lndF9kdW1teWxvYWQuYyBiL2xpYi9pZ3RfZHVtbXlsb2FkLmMKaW5k ZXggY2I0NjYzMTcuLmMwMTI4NzlkIDEwMDY0NAotLS0gYS9saWIvaWd0X2R1bW15bG9hZC5jCisr KyBiL2xpYi9pZ3RfZHVtbXlsb2FkLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNkZWZpbmUgTUlfQVJC X0NISyAoMHg1IDw8IDIzKQogCiBzdGF0aWMgY29uc3QgaW50IEJBVENIX1NJWkUgPSA0MDk2Owor c3RhdGljIGNvbnN0IGludCBQT0xMX1NJWkUgPSA0MDk2Owogc3RhdGljIElHVF9MSVNUKHNwaW5f bGlzdCk7CiBzdGF0aWMgcHRocmVhZF9tdXRleF90IGxpc3RfbG9jayA9IFBUSFJFQURfTVVURVhf SU5JVElBTElaRVI7CiAKQEAgLTY5LDE2ICs3MCwxNSBAQCBzdGF0aWMgaW50CiBlbWl0X3JlY3Vy c2l2ZV9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluLAogCQkgICAgIGludCBmZCwgY29uc3Qgc3RydWN0 IGlndF9zcGluX2ZhY3RvcnkgKm9wdHMpCiB7Ci0jZGVmaW5lIFNDUkFUQ0ggMAotI2RlZmluZSBC QVRDSCAxCiAJY29uc3QgaW50IGdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZk KSk7CisJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKiBjb25zdCBiYXRjaCA9ICZz cGluLT5fb2JqWzBdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICogY29uc3Qg cG9sbCA9ICZzcGluLT5fb2JqWzFdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9l bnRyeSByZWxvY3NbMl0sICpyOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmV4 ZWNidWY7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKm9iajsKIAl1bnNpZ25l ZCBpbnQgZW5naW5lc1sxNl07CiAJdW5zaWduZWQgaW50IG5lbmdpbmU7CiAJaW50IGZlbmNlX2Zk ID0gLTE7Ci0JdWludDMyX3QgKmJhdGNoLCAqYmF0Y2hfc3RhcnQ7CisJdWludDMyX3QgKmNzLCAq Y3Nfc3RhcnQ7CiAJaW50IGk7CiAKIAluZW5naW5lID0gMDsKQEAgLTk5LDMwICs5OSwzMSBAQCBl bWl0X3JlY3Vyc2l2ZV9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluLAogCiAJbWVtc2V0KCZzcGluLT5l eGVjYnVmLCAwLCBzaXplb2Yoc3Bpbi0+ZXhlY2J1ZikpOwogCWV4ZWNidWYgPSAmc3Bpbi0+ZXhl Y2J1ZjsKLQltZW1zZXQoc3Bpbi0+b2JqLCAwLCBzaXplb2Yoc3Bpbi0+b2JqKSk7Ci0Jb2JqID0g c3Bpbi0+b2JqOworCW1lbXNldChzcGluLT5fb2JqLCAwLCBzaXplb2Yoc3Bpbi0+X29iaikpOwog CW1lbXNldChyZWxvY3MsIDAsIHNpemVvZihyZWxvY3MpKTsKIAotCW9ialtCQVRDSF0uaGFuZGxl ID0gZ2VtX2NyZWF0ZShmZCwgQkFUQ0hfU0laRSk7Ci0JYmF0Y2ggPSBfX2dlbV9tbWFwX193Yyhm ZCwgb2JqW0JBVENIXS5oYW5kbGUsCi0JCQkgICAgICAgMCwgQkFUQ0hfU0laRSwgUFJPVF9XUklU RSk7Ci0JaWYgKCFiYXRjaCkKLQkJYmF0Y2ggPSBnZW1fbW1hcF9fZ3R0KGZkLCBvYmpbQkFUQ0hd LmhhbmRsZSwKLQkJCQkgICAgICAgCUJBVENIX1NJWkUsIFBST1RfV1JJVEUpOwotCWdlbV9zZXRf ZG9tYWluKGZkLCBvYmpbQkFUQ0hdLmhhbmRsZSwKLQkJCUk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5 MTVfR0VNX0RPTUFJTl9HVFQpOworCWJhdGNoLT5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBCQVRD SF9TSVpFKTsKKwlzcGluLT5oYW5kbGUgPSBiYXRjaC0+aGFuZGxlOworCisJY3MgPSBfX2dlbV9t bWFwX193YyhmZCwgYmF0Y2gtPmhhbmRsZSwKKwkJCSAgICAwLCBCQVRDSF9TSVpFLCBQUk9UX1dS SVRFKTsKKwlpZiAoIWNzKQorCQljcyA9IGdlbV9tbWFwX19ndHQoZmQsIGJhdGNoLT5oYW5kbGUs CisJCQkJICAgQkFUQ0hfU0laRSwgUFJPVF9XUklURSk7CisJZ2VtX3NldF9kb21haW4oZmQsIGJh dGNoLT5oYW5kbGUsCisJCSAgICAgICBJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9ET01B SU5fR1RUKTsKIAlleGVjYnVmLT5idWZmZXJfY291bnQrKzsKLQliYXRjaF9zdGFydCA9IGJhdGNo OworCWNzX3N0YXJ0ID0gY3M7CiAKIAlpZiAob3B0cy0+ZGVwZW5kZW5jeSkgewogCQlpZ3RfYXNz ZXJ0KCEob3B0cy0+ZmxhZ3MgJiBJR1RfU1BJTl9QT0xMX1JVTikpOwogCi0JCXIgPSAmcmVsb2Nz W29ialtCQVRDSF0ucmVsb2NhdGlvbl9jb3VudCsrXTsKKwkJciA9ICZyZWxvY3NbYmF0Y2gtPnJl bG9jYXRpb25fY291bnQrK107CiAKIAkJLyogZHVtbXkgd3JpdGUgdG8gZGVwZW5kZW5jeSAqLwot CQlvYmpbU0NSQVRDSF0uaGFuZGxlID0gb3B0cy0+ZGVwZW5kZW5jeTsKKwkJcG9sbC0+aGFuZGxl ID0gb3B0cy0+ZGVwZW5kZW5jeTsKIAkJci0+cHJlc3VtZWRfb2Zmc2V0ID0gMDsKLQkJci0+dGFy Z2V0X2hhbmRsZSA9IG9ialtTQ1JBVENIXS5oYW5kbGU7CisJCXItPnRhcmdldF9oYW5kbGUgPSBw b2xsLT5oYW5kbGU7CiAJCXItPm9mZnNldCA9IHNpemVvZih1aW50MzJfdCkgKiAxMDIwOwogCQly LT5kZWx0YSA9IDA7CiAJCXItPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7 CkBAIC0xMzAsNyArMTMxLDcgQEAgZW1pdF9yZWN1cnNpdmVfYmF0Y2goaWd0X3NwaW5fdCAqc3Bp biwKIAogCQlleGVjYnVmLT5idWZmZXJfY291bnQrKzsKIAl9IGVsc2UgaWYgKG9wdHMtPmZsYWdz ICYgSUdUX1NQSU5fUE9MTF9SVU4pIHsKLQkJciA9ICZyZWxvY3Nbb2JqW0JBVENIXS5yZWxvY2F0 aW9uX2NvdW50KytdOworCQlyID0gJnJlbG9jc1tiYXRjaC0+cmVsb2NhdGlvbl9jb3VudCsrXTsK IAogCQlpZ3RfYXNzZXJ0KCFvcHRzLT5kZXBlbmRlbmN5KTsKIApAQCAtMTM5LDUyICsxNDAsNTEg QEAgZW1pdF9yZWN1cnNpdmVfYmF0Y2goaWd0X3NwaW5fdCAqc3BpbiwKIAkJCWlndF9yZXF1aXJl KF9faWd0X2RldmljZV9zZXRfbWFzdGVyKGZkKSA9PSAwKTsKIAkJfQogCi0JCXNwaW4tPnBvbGxf aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Ci0JCW9ialtTQ1JBVENIXS5oYW5kbGUgPSBz cGluLT5wb2xsX2hhbmRsZTsKKwkJcG9sbC0+aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgUE9MTF9T SVpFKTsKKwkJc3Bpbi0+cG9sbF9oYW5kbGUgPSBwb2xsLT5oYW5kbGU7CiAKLQkJaWYgKF9fZ2Vt X3NldF9jYWNoaW5nKGZkLCBzcGluLT5wb2xsX2hhbmRsZSwKKwkJaWYgKF9fZ2VtX3NldF9jYWNo aW5nKGZkLCBwb2xsLT5oYW5kbGUsCiAJCQkJICAgICAgSTkxNV9DQUNISU5HX0NBQ0hFRCkgPT0g MCkKLQkJCXNwaW4tPnBvbGwgPSBnZW1fbW1hcF9fY3B1KGZkLCBzcGluLT5wb2xsX2hhbmRsZSwK LQkJCQkJCSAgIDAsIDQwOTYsCisJCQlzcGluLT5wb2xsID0gZ2VtX21tYXBfX2NwdShmZCwgcG9s bC0+aGFuZGxlLAorCQkJCQkJICAgMCwgUE9MTF9TSVpFLAogCQkJCQkJICAgUFJPVF9SRUFEIHwg UFJPVF9XUklURSk7CiAJCWVsc2UKLQkJCXNwaW4tPnBvbGwgPSBnZW1fbW1hcF9fd2MoZmQsIHNw aW4tPnBvbGxfaGFuZGxlLAotCQkJCQkJICAwLCA0MDk2LAorCQkJc3Bpbi0+cG9sbCA9IGdlbV9t bWFwX193YyhmZCwgcG9sbC0+aGFuZGxlLAorCQkJCQkJICAwLCBQT0xMX1NJWkUsCiAJCQkJCQkg IFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwogCiAJCWlndF9hc3NlcnRfZXEoc3Bpbi0+cG9sbFtT UElOX1BPTExfU1RBUlRfSURYXSwgMCk7CiAKIAkJLyogYmF0Y2ggaXMgZmlyc3QgKi8KLQkJci0+ cHJlc3VtZWRfb2Zmc2V0ID0gNDA5NjsKLQkJci0+dGFyZ2V0X2hhbmRsZSA9IG9ialtTQ1JBVENI XS5oYW5kbGU7CisJCXItPnByZXN1bWVkX29mZnNldCA9IEJBVENIX1NJWkU7CisJCXItPnRhcmdl dF9oYW5kbGUgPSBwb2xsLT5oYW5kbGU7CiAJCXItPm9mZnNldCA9IHNpemVvZih1aW50MzJfdCkg KiAxOwogCQlyLT5kZWx0YSA9IHNpemVvZih1aW50MzJfdCkgKiBTUElOX1BPTExfU1RBUlRfSURY OwogCi0JCSpiYXRjaCsrID0gTUlfU1RPUkVfRFdPUkRfSU1NIHwgKGdlbiA8IDYgPyAxIDw8IDIy IDogMCk7CisJCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU1NIHwgKGdlbiA8IDYgPyAxIDw8IDIy IDogMCk7CiAKIAkJaWYgKGdlbiA+PSA4KSB7Ci0JCQkqYmF0Y2grKyA9IHItPnByZXN1bWVkX29m ZnNldCArIHItPmRlbHRhOwotCQkJKmJhdGNoKysgPSAwOworCQkJKmNzKysgPSByLT5wcmVzdW1l ZF9vZmZzZXQgKyByLT5kZWx0YTsKKwkJCSpjcysrID0gMDsKIAkJfSBlbHNlIGlmIChnZW4gPj0g NCkgewotCQkJKmJhdGNoKysgPSAwOwotCQkJKmJhdGNoKysgPSByLT5wcmVzdW1lZF9vZmZzZXQg KyByLT5kZWx0YTsKKwkJCSpjcysrID0gMDsKKwkJCSpjcysrID0gci0+cHJlc3VtZWRfb2Zmc2V0 ICsgci0+ZGVsdGE7CiAJCQlyLT5vZmZzZXQgKz0gc2l6ZW9mKHVpbnQzMl90KTsKIAkJfSBlbHNl IHsKLQkJCWJhdGNoWy0xXS0tOwotCQkJKmJhdGNoKysgPSByLT5wcmVzdW1lZF9vZmZzZXQgKyBy LT5kZWx0YTsKKwkJCWNzWy0xXS0tOworCQkJKmNzKysgPSByLT5wcmVzdW1lZF9vZmZzZXQgKyBy LT5kZWx0YTsKIAkJfQogCi0JCSpiYXRjaCsrID0gMTsKKwkJKmNzKysgPSAxOwogCiAJCWV4ZWNi dWYtPmJ1ZmZlcl9jb3VudCsrOwogCX0KIAotCXNwaW4tPmJhdGNoID0gYmF0Y2ggPSBiYXRjaF9z dGFydCArIDY0IC8gc2l6ZW9mKCpiYXRjaCk7Ci0Jc3Bpbi0+aGFuZGxlID0gb2JqW0JBVENIXS5o YW5kbGU7CisJc3Bpbi0+Y3MgPSBjcyA9IGNzX3N0YXJ0ICsgNjQgLyBzaXplb2YoKmNzKTsKIAog CS8qIEFsbG93IG91cnNlbHZlcyB0byBiZSBwcmVlbXB0ZWQgKi8KIAlpZiAoIShvcHRzLT5mbGFn cyAmIElHVF9TUElOX05PX1BSRUVNUFRJT04pKQotCQkqYmF0Y2grKyA9IE1JX0FSQl9DSEs7CisJ CSpjcysrID0gTUlfQVJCX0NISzsKIAogCS8qIFBhZCB3aXRoIGEgZmV3IG5vcHMgc28gdGhhdCB3 ZSBkbyBub3QgY29tcGxldGVseSBob2cgdGhlIHN5c3RlbS4KIAkgKgpAQCAtMTk4LDMyICsxOTgs MzMgQEAgZW1pdF9yZWN1cnNpdmVfYmF0Y2goaWd0X3NwaW5fdCAqc3BpbiwKIAkgKiB0cm91Ymxl LiBTZWUgaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMjYy CiAJICovCiAJaWYgKCEob3B0cy0+ZmxhZ3MgJiBJR1RfU1BJTl9GQVNUKSkKLQkJYmF0Y2ggKz0g MTAwMDsKKwkJY3MgKz0gMTAwMDsKIAogCS8qIHJlY3Vyc2UgKi8KLQlyID0gJnJlbG9jc1tvYmpb QkFUQ0hdLnJlbG9jYXRpb25fY291bnQrK107Ci0Jci0+dGFyZ2V0X2hhbmRsZSA9IG9ialtCQVRD SF0uaGFuZGxlOwotCXItPm9mZnNldCA9IChiYXRjaCArIDEgLSBiYXRjaF9zdGFydCkgKiBzaXpl b2YoKmJhdGNoKTsKKwlyID0gJnJlbG9jc1tiYXRjaC0+cmVsb2NhdGlvbl9jb3VudCsrXTsKKwly LT5wcmVzdW1lZF9vZmZzZXQgPSAwOworCXItPnRhcmdldF9oYW5kbGUgPSBiYXRjaC0+aGFuZGxl OworCXItPm9mZnNldCA9IChjcyArIDEgLSBjc19zdGFydCkgKiBzaXplb2YoKmNzKTsKIAlyLT5y ZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ09NTUFORDsKIAlyLT5kZWx0YSA9IDY0Owog CWlmIChnZW4gPj0gOCkgewotCQkqYmF0Y2grKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IDEg PDwgOCB8IDE7Ci0JCSpiYXRjaCsrID0gci0+ZGVsdGE7Ci0JCSpiYXRjaCsrID0gMDsKKwkJKmNz KysgPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAxIDw8IDggfCAxOworCQkqY3MrKyA9IHItPnBy ZXN1bWVkX29mZnNldCArIHItPmRlbHRhOworCQkqY3MrKyA9IDA7CiAJfSBlbHNlIGlmIChnZW4g Pj0gNikgewotCQkqYmF0Y2grKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IDEgPDwgODsKLQkJ KmJhdGNoKysgPSByLT5kZWx0YTsKKwkJKmNzKysgPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAx IDw8IDg7CisJCSpjcysrID0gci0+cHJlc3VtZWRfb2Zmc2V0ICsgci0+ZGVsdGE7CiAJfSBlbHNl IHsKLQkJKmJhdGNoKysgPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAyIDw8IDY7CisJCSpjcysr ID0gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwgMiA8PCA2OwogCQlpZiAoZ2VuIDwgNCkKIAkJCXIt PmRlbHRhIHw9IDE7Ci0JCSpiYXRjaCA9IHItPmRlbHRhOwotCQliYXRjaCsrOworCQkqY3MgPSBy LT5wcmVzdW1lZF9vZmZzZXQgKyByLT5kZWx0YTsKKwkJY3MrKzsKIAl9Ci0Jb2JqW0JBVENIXS5y ZWxvY3NfcHRyID0gdG9fdXNlcl9wb2ludGVyKHJlbG9jcyk7CisJYmF0Y2gtPnJlbG9jc19wdHIg PSB0b191c2VyX3BvaW50ZXIocmVsb2NzKTsKIAotCWV4ZWNidWYtPmJ1ZmZlcnNfcHRyID0gdG9f dXNlcl9wb2ludGVyKG9iaiArCi0JCQkJCSAgICAgICAoMiAtIGV4ZWNidWYtPmJ1ZmZlcl9jb3Vu dCkpOworCWV4ZWNidWYtPmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKHNwaW4tPl9vYmop OworCWV4ZWNidWYtPmZsYWdzIHw9IEk5MTVfRVhFQ19CQVRDSF9GSVJTVDsKIAlleGVjYnVmLT5y c3ZkMSA9IG9wdHMtPmN0eDsKIAogCWlmIChvcHRzLT5mbGFncyAmIElHVF9TUElOX0ZFTkNFX09V VCkKQEAgLTI1MiwxNSArMjUzLDEzIEBAIGVtaXRfcmVjdXJzaXZlX2JhdGNoKGlndF9zcGluX3Qg KnNwaW4sCiAJCX0KIAl9CiAKLQkvKiBNYWtlIGl0IGVhc2llciBmb3IgY2FsbGVycyB0byByZXN1 Ym1pdC4gKi8KLQotCW9ialtCQVRDSF0ucmVsb2NhdGlvbl9jb3VudCA9IDA7Ci0Jb2JqW0JBVENI XS5yZWxvY3NfcHRyID0gMDsKLQotCW9ialtTQ1JBVENIXS5mbGFncyA9IEVYRUNfT0JKRUNUX1BJ Tk5FRDsKLQlvYmpbQkFUQ0hdLmZsYWdzID0gRVhFQ19PQkpFQ1RfUElOTkVEOworCWZvciAoaSA9 IDA7IGkgPCBleGVjYnVmLT5idWZmZXJfY291bnQ7IGkrKykgeworCQlzcGluLT5fb2JqW2ldLnJl bG9jYXRpb25fY291bnQgPSAwOworCQlzcGluLT5fb2JqW2ldLnJlbG9jc19wdHIgPSAwOworCQlz cGluLT5fb2JqW2ldLmZsYWdzID0gRVhFQ19PQkpFQ1RfUElOTkVEOworCX0KIAotCXNwaW4tPmNt ZF9zcGluID0gKnNwaW4tPmJhdGNoOworCXNwaW4tPmNtZF9zcGluID0gKnNwaW4tPmNzOwogCiAJ cmV0dXJuIGZlbmNlX2ZkOwogfQpAQCAtMzgyLDcgKzM4MSw3IEBAIHZvaWQgaWd0X3NwaW5fcmVz ZXQoaWd0X3NwaW5fdCAqc3BpbikKIAlpZiAoaWd0X3NwaW5faGFzX3BvbGwoc3BpbikpCiAJCXNw aW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCi0JKnNwaW4tPmJhdGNoID0gc3Bp bi0+Y21kX3NwaW47CisJKnNwaW4tPmNzID0gc3Bpbi0+Y21kX3NwaW47CiAJX19zeW5jX3N5bmNo cm9uaXplKCk7CiB9CiAKQEAgLTM5Nyw3ICszOTYsNyBAQCB2b2lkIGlndF9zcGluX2VuZChpZ3Rf c3Bpbl90ICpzcGluKQogCWlmICghc3BpbikKIAkJcmV0dXJuOwogCi0JKnNwaW4tPmJhdGNoID0g TUlfQkFUQ0hfQlVGRkVSX0VORDsKKwkqc3Bpbi0+Y3MgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwog CV9fc3luY19zeW5jaHJvbml6ZSgpOwogfQogCkBAIC00MjIsNyArNDIxLDcgQEAgdm9pZCBpZ3Rf c3Bpbl9mcmVlKGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbikKIAkJdGltZXJfZGVsZXRlKHNwaW4t PnRpbWVyKTsKIAogCWlndF9zcGluX2VuZChzcGluKTsKLQlnZW1fbXVubWFwKCh2b2lkICopKCh1 bnNpZ25lZCBsb25nKXNwaW4tPmJhdGNoICYgKH40MDk1VUwpKSwKKwlnZW1fbXVubWFwKCh2b2lk ICopKCh1bnNpZ25lZCBsb25nKXNwaW4tPmNzICYgKH40MDk1VUwpKSwKIAkJICAgQkFUQ0hfU0la RSk7CiAKIAlpZiAoc3Bpbi0+cG9sbCkgewpkaWZmIC0tZ2l0IGEvbGliL2lndF9kdW1teWxvYWQu aCBiL2xpYi9pZ3RfZHVtbXlsb2FkLmgKaW5kZXggZDdiMWJlOTEuLmQ2NTk5YTBjIDEwMDY0NAot LS0gYS9saWIvaWd0X2R1bW15bG9hZC5oCisrKyBiL2xpYi9pZ3RfZHVtbXlsb2FkLmgKQEAgLTMz LDE0ICszMywyMCBAQAogI2luY2x1ZGUgImk5MTVfZHJtLmgiCiAKIHR5cGVkZWYgc3RydWN0IGln dF9zcGluIHsKLQl1bnNpZ25lZCBpbnQgaGFuZGxlOworCXVpbnQzMl90IGhhbmRsZTsKKwogCXRp bWVyX3QgdGltZXI7CiAJc3RydWN0IGlndF9saXN0IGxpbms7Ci0JdWludDMyX3QgKmJhdGNoOwor CisJdWludDMyX3QgKmNzOwogCXVpbnQzMl90IGNtZF9zcGluOwogCWludCBvdXRfZmVuY2U7Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOworCisJc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgX29ialsyXTsKKyNkZWZpbmUgU1BJTl9CQVRDSF9JRFggMAor CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmOworCiAJdWludDMyX3Qg cG9sbF9oYW5kbGU7CiAJdWludDMyX3QgKnBvbGw7CiAjZGVmaW5lIFNQSU5fUE9MTF9TVEFSVF9J RFggMApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYyBiL3Rlc3Rz L2k5MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMKaW5kZXggM2RkYWFiODIuLmI1Mzc3MTkxIDEwMDY0 NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5jCisrKyBiL3Rlc3RzL2k5MTUv Z2VtX2NvbmN1cnJlbnRfYWxsLmMKQEAgLTk1Nyw3ICs5NTcsOCBAQCBzdGF0aWMgaWd0X2hhbmdf dCBhbGxfaGFuZyh2b2lkKQogCQlpZiAoZW5naW5lID09IEk5MTVfRVhFQ19SRU5ERVIpCiAJCQlj b250aW51ZTsKIAotCQllYi5mbGFncyA9IGVuZ2luZTsKKwkJZWIuZmxhZ3MgJj0gfihJOTE1X0VY RUNfUklOR19NQVNLIHwgSTkxNV9FWEVDX0JTRF9NQVNLKTsKKwkJZWIuZmxhZ3MgfD0gZW5naW5l OwogCQlfX2dlbV9leGVjYnVmKGZkLCAmZWIpOwogCX0KIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkx NS9nZW1fZXhlY19sYXRlbmN5LmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwppbmRl eCAyY2ZiNzhiZi4uY2I0ZjA5MGIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0 ZW5jeS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCkBAIC04Myw3ICs4Myw3 IEBAIHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUpCiAJ c3BpblsxXSA9IF9faWd0X3NwaW5fZmFjdG9yeShmZCwgJm9wdHMpOwogCWlndF9hc3NlcnQoaWd0 X3NwaW5faGFzX3BvbGwoc3BpblsxXSkpOwogCi0JaWd0X2Fzc2VydCgqc3BpblswXS0+YmF0Y2gg PT0gKnNwaW5bMV0tPmJhdGNoKTsKKwlpZ3RfYXNzZXJ0KCpzcGluWzBdLT5jcyA9PSAqc3Bpblsx XS0+Y3MpOwogCiAJaWd0X3NwaW5fZW5kKHNwaW5bMF0pOwogCWlndF9zcGluX2J1c3l3YWl0X3Vu dGlsX3N0YXJ0ZWQoc3BpblsxXSk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9leGVjX3Nj aGVkdWxlLmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMKaW5kZXggOWEwNzk1Mjgu LjgyZmQyM2VkIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jCkBAIC0yMjMsMTEgKzIyMywxMSBAQCBz dGF0aWMgdm9pZCBpbmRlcGVuZGVudChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAJCWlm IChzcGluID09IE5VTEwpIHsKIAkJCXNwaW4gPSBfX2lndF9zcGluX25ldyhmZCwgLmVuZ2luZSA9 IG90aGVyKTsKIAkJfSBlbHNlIHsKLQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIg ZWIgPSB7Ci0JCQkJLmJ1ZmZlcl9jb3VudCA9IDEsCi0JCQkJLmJ1ZmZlcnNfcHRyID0gdG9fdXNl cl9wb2ludGVyKCZzcGluLT5vYmpbMV0pLAotCQkJCS5mbGFncyA9IG90aGVyLAotCQkJfTsKKwkJ CXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWIgPSBzcGluLT5leGVjYnVmOworCisJ CQllYi5mbGFncyAmPSB+KEk5MTVfRVhFQ19SSU5HX01BU0sgfCBJOTE1X0VYRUNfQlNEX01BU0sp OworCQkJZWIuZmxhZ3MgfD0gb3RoZXI7CisKIAkJCWdlbV9leGVjYnVmKGZkLCAmZWIpOwogCQl9 CiAKQEAgLTYxOSw4ICs2MTksOCBAQCBzdGF0aWMgaWd0X3NwaW5fdCAqX19ub2lzZShpbnQgZmQs IHVpbnQzMl90IGN0eCwgaW50IHByaW8sIGlndF9zcGluX3QgKnNwaW4pCiAJCQkJCSAgICAgIC5l bmdpbmUgPSBvdGhlcik7CiAJCX0gZWxzZSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNi dWZmZXIyIGViID0gewotCQkJCS5idWZmZXJfY291bnQgPSAxLAotCQkJCS5idWZmZXJzX3B0ciA9 IHRvX3VzZXJfcG9pbnRlcigmc3Bpbi0+b2JqWzFdKSwKKwkJCQkuYnVmZmVyX2NvdW50ID0gc3Bp bi0+ZXhlY2J1Zi5idWZmZXJfY291bnQsCisJCQkJLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2lu dGVyKCZzcGluLT5fb2JqW1NQSU5fQkFUQ0hfSURYXSksCiAJCQkJLnJzdmQxID0gY3R4LAogCQkJ CS5mbGFncyA9IG90aGVyLAogCQkJfTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3NvZnRw aW4uYyBiL3Rlc3RzL2k5MTUvZ2VtX3NvZnRwaW4uYwppbmRleCAzMzYwMDhiOC4uYzI2OWFmZGYg MTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3NvZnRwaW4uYworKysgYi90ZXN0cy9pOTE1L2dl bV9zb2Z0cGluLmMKQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2V2aWN0X2hh bmcoaW50IGZkKQogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMTsKIAogCWhhbmcgPSBpZ3RfaGFu Z19jdHgoZmQsIDAsIDAsIDApOwotCWV4cGVjdGVkID0gaGFuZy5zcGluLT5vYmpbMV0ub2Zmc2V0 OworCWV4cGVjdGVkID0gaGFuZy5zcGluLT5fb2JqW1NQSU5fQkFUQ0hfSURYXS5vZmZzZXQ7CiAK IAkvKiBSZXBsYWNlIHRoZSBodW5nIGJhdGNoIHdpdGggb3Vyc2VsdmVzLCBmb3JjaW5nIGFuIGV2 aWN0aW9uICovCiAJb2JqZWN0Lm9mZnNldCA9IGV4cGVjdGVkOwpkaWZmIC0tZ2l0IGEvdGVzdHMv aTkxNS9nZW1fc3Bpbl9iYXRjaC5jIGIvdGVzdHMvaTkxNS9nZW1fc3Bpbl9iYXRjaC5jCmluZGV4 IGE5MjY3MmI4Li5hOGFmOGQxZSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc3Bpbl9iYXRj aC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3NwaW5fYmF0Y2guYwpAQCAtNzcsMjggKzc3LDI4IEBA IHN0YXRpYyB2b2lkIHNwaW5fcmVzdWJtaXQoaW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCiAJaWd0X3NwaW5fdCAqc3BpbiA9IF9faWd0X3NwaW5fbmV3KGZk LCAuY3R4ID0gY3R4MCwgLmVuZ2luZSA9IGVuZ2luZSk7CiAJdW5zaWduZWQgaW50IG90aGVyOwog Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYiA9IHsKLQkJLmJ1ZmZlcl9jb3Vu dCA9IDEsCi0JCS5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmc3Bpbi0+b2JqWzFdKSwK LQkJLnJzdmQxID0gY3R4MSwKLQl9OworCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIg ZWIgPSBzcGluLT5leGVjYnVmOworCisJZWIucnN2ZDEgPSBjdHgxOwogCiAJaWYgKGZsYWdzICYg UkVTVUJNSVRfQUxMX0VOR0lORVMpIHsKIAkJZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBv dGhlcikgewogCQkJaWYgIChvdGhlciA9PSBlbmdpbmUpCiAJCQkJY29udGludWU7CiAKLQkJCWVi LmZsYWdzID0gb3RoZXI7CisJCQllYi5mbGFncyAmPSB+KEk5MTVfRVhFQ19SSU5HX01BU0sgfCBJ OTE1X0VYRUNfQlNEX01BU0spOworCQkJZWIuZmxhZ3MgfD0gb3RoZXI7CiAJCQlnZW1fZXhlY2J1 ZihmZCwgJmViKTsKIAkJfQogCX0gZWxzZSB7Ci0JCWViLmZsYWdzID0gZW5naW5lOworCQllYi5m bGFncyAmPSB+KEk5MTVfRVhFQ19SSU5HX01BU0sgfCBJOTE1X0VYRUNfQlNEX01BU0spOworCQll Yi5mbGFncyB8PSBlbmdpbmU7CiAJCWdlbV9leGVjYnVmKGZkLCAmZWIpOwogCX0KIAogCWlndF9z cGluX2VuZChzcGluKTsKIAotCWdlbV9zeW5jKGZkLCBzcGluLT5vYmpbMV0uaGFuZGxlKTsKKwln ZW1fc3luYyhmZCwgc3Bpbi0+aGFuZGxlKTsKIAogCWlndF9zcGluX2ZyZWUoZmQsIHNwaW4pOwog CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVfaGFuZ21hbi5jIGIvdGVzdHMvaTkxNS9pOTE1 X2hhbmdtYW4uYwppbmRleCA5YTFkNTg4OS4uYjIyMDNkZjMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5 MTUvaTkxNV9oYW5nbWFuLmMKKysrIGIvdGVzdHMvaTkxNS9pOTE1X2hhbmdtYW4uYwpAQCAtMjA5 LDcgKzIwOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfZXJyb3Jfc3RhdGVfY2FwdHVyZSh1bnNpZ25l ZCByaW5nX2lkLAogCWNsZWFyX2Vycm9yX3N0YXRlKCk7CiAKIAloYW5nID0gaWd0X2hhbmdfY3R4 KGRldmljZSwgMCwgcmluZ19pZCwgSEFOR19BTExPV19DQVBUVVJFKTsKLQlvZmZzZXQgPSBoYW5n LnNwaW4tPm9ialsxXS5vZmZzZXQ7CisJb2Zmc2V0ID0gaGFuZy5zcGluLT5fb2JqW1NQSU5fQkFU Q0hfSURYXS5vZmZzZXQ7CiAKIAliYXRjaCA9IGdlbV9tbWFwX19jcHUoZGV2aWNlLCBoYW5nLnNw aW4tPmhhbmRsZSwgMCwgNDA5NiwgUFJPVF9SRUFEKTsKIAlnZW1fc2V0X2RvbWFpbihkZXZpY2Us IGhhbmcuc3Bpbi0+aGFuZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4