From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com [IPv6:2607:f8b0:4864:20::52b]) by gabe.freedesktop.org (Postfix) with ESMTPS id B27886EABD for ; Thu, 15 Apr 2021 19:12:00 +0000 (UTC) Received: by mail-pg1-x52b.google.com with SMTP id p2so2098845pgh.4 for ; Thu, 15 Apr 2021 12:12:00 -0700 (PDT) From: Jason Ekstrand Date: Thu, 15 Apr 2021 14:10:36 -0500 Message-Id: <20210415191145.2137858-6-jason@jlekstrand.net> In-Reply-To: <20210415191145.2137858-1-jason@jlekstrand.net> References: <20210415191145.2137858-1-jason@jlekstrand.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 05/74] tests/i915: Drop gem_ctx_clone 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: V2UncmUgZ29pbmcgdG8gYmUgZGVsZXRpbmcgdGhlIENPTlRFWFRfQ0xPTkUgQVBJIHNpbmNlIElH VCBpcyB0aGUgb25seQp1c2Vyc3BhY2UgdG8gZXZlciB1c2UgaXQuCgpTaWduZWQtb2ZmLWJ5OiBK YXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+ClJldmlld2VkLWJ5OiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2N0eF9j bG9uZS5jIHwgNDUwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3Rz L21lc29uLmJ1aWxkICAgICAgICAgIHwgICAxIC0KIDIgZmlsZXMgY2hhbmdlZCwgNDUxIGRlbGV0 aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUvZ2VtX2N0eF9jbG9uZS5jCgpk aWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY3R4X2Nsb25lLmMgYi90ZXN0cy9pOTE1L2dlbV9j dHhfY2xvbmUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyMjY5YmMuLjAwMDAw MDAwCi0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9jbG9uZS5jCisrKyAvZGV2L251bGwKQEAgLTEs NDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgot ICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBp biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29m dHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK LSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5j bHVkZSAiaTkxNS9nZW0uaCIKLSNpbmNsdWRlICJpOTE1L2dlbV92bS5oIgotI2luY2x1ZGUgImk5 MTVfZHJtLmgiCi0jaW5jbHVkZSAiaWd0LmgiCi0jaW5jbHVkZSAiaWd0X2d0LmgiCi0KLXN0YXRp YyBpbnQgY3R4X2NyZWF0ZV9pb2N0bChpbnQgaTkxNSwgc3RydWN0IGRybV9pOTE1X2dlbV9jb250 ZXh0X2NyZWF0ZV9leHQgKmFyZykKLXsKLQlpbnQgZXJyOwotCi0JZXJyID0gMDsKLQlpZiAoaWd0 X2lvY3RsKGk5MTUsIERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURV9FWFQsIGFyZykp IHsKLQkJZXJyID0gLWVycm5vOwotCQlpZ3RfYXNzdW1lKGVycik7Ci0JfQotCi0JZXJybm8gPSAw OwotCXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyB2b2lkIGludmFsaWRfY2xvbmUoaW50IGk5MTUp Ci17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0g ewotCQl7IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQl9OwotCXN0 cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZXh0IGNyZWF0ZSA9IHsKLQkJLmZsYWdz ID0gSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VU0VfRVhURU5TSU9OUywKLQkJLmV4dGVuc2lv bnMgPSB0b191c2VyX3BvaW50ZXIoJmV4dCksCi0JfTsKLQotCWlndF9hc3NlcnRfZXEoY3R4X2Ny ZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0JZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1 LCBjcmVhdGUuY3R4X2lkKTsKLQotCWV4dC5mbGFncyA9IC0xOyAvKiBIb3BlZnVsbHkgd2Ugd29u J3QgcnVuIG91dCBvZiBmbGFncyAqLwotCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChp OTE1LCAmY3JlYXRlKSwgLUVJTlZBTCk7Ci0JZXh0LmZsYWdzID0gMDsKLQotCWV4dC5iYXNlLm5l eHRfZXh0ZW5zaW9uID0gLTE7Ci0JaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUs ICZjcmVhdGUpLCAtRUZBVUxUKTsKLQlleHQuYmFzZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJf cG9pbnRlcigmZXh0KTsKLQlpZ3RfYXNzZXJ0X2VxKGN0eF9jcmVhdGVfaW9jdGwoaTkxNSwgJmNy ZWF0ZSksIC1FMkJJRyk7Ci0JZXh0LmJhc2UubmV4dF9leHRlbnNpb24gPSAwOwotCi0JZXh0LmNs b25lX2lkID0gLTE7Ci0JaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUsICZjcmVh dGUpLCAtRU5PRU5UKTsKLQlleHQuY2xvbmVfaWQgPSAwOwotfQotCi1zdGF0aWMgdm9pZCBjbG9u ZV9mbGFncyhpbnQgaTkxNSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRl X2V4dF9zZXRwYXJhbSBzZXQgPSB7Ci0JCXsgLm5hbWUgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0VY VF9TRVRQQVJBTSB9LAotCQl7IC5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9SRUNPVkVSQUJM RSB9LAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUg ZXh0ID0gewotCQl7IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQkJ LmZsYWdzID0gSTkxNV9DT05URVhUX0NMT05FX0ZMQUdTLAotCX07Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQgY3JlYXRlID0gewotCQkuZmxhZ3MgPSBJOTE1X0NPTlRF WFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TLAotCQkuZXh0ZW5zaW9ucyA9IHRvX3VzZXJf cG9pbnRlcigmZXh0KSwKLQl9OwotCWludCBleHBlY3RlZDsKLQotCXNldC5wYXJhbS52YWx1ZSA9 IDE7IC8qIGRlZmF1bHQgaXMgcmVjb3ZlcmFibGUgKi8KLQlpZ3RfcmVxdWlyZShfX2dlbV9jb250 ZXh0X3NldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKSA9PSAwKTsKLQotCWZvciAoaW50IHBhc3Mg PSAwOyBwYXNzIDwgMjsgcGFzcysrKSB7IC8qIGNsb25pbmcgZGVmYXVsdCwgdGhlbiBjaGlsZCAq LwotCQlpZ3RfZGVidWcoIkNsb25pbmcgJWRcbiIsIGV4dC5jbG9uZV9pZCk7Ci0JCWlndF9hc3Nl cnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFt LmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZz ZXQucGFyYW0pOwotCQlleHBlY3RlZCA9IHNldC5wYXJhbS52YWx1ZTsKLQotCQlzZXQucGFyYW0u Y3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZz ZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXFfdTY0KHNldC5wYXJhbS5wYXJhbSwKLQkJCQkg IEk5MTVfQ09OVEVYVF9QQVJBTV9SRUNPVkVSQUJMRSk7Ci0JCWlndF9hc3NlcnRfZXEoKGludClz ZXQucGFyYW0udmFsdWUsIGV4cGVjdGVkKTsKLQotCQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUs IGNyZWF0ZS5jdHhfaWQpOwotCi0JCWV4cGVjdGVkID0gc2V0LnBhcmFtLnZhbHVlID0gMDsKLQkJ c2V0LnBhcmFtLmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFt KGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChp OTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGNyZWF0ZS5jdHhfaWQ7 Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsKLQotCQlpZ3RfYXNz ZXJ0X2VxX3U2NChzZXQucGFyYW0ucGFyYW0sCi0JCQkJICBJOTE1X0NPTlRFWFRfUEFSQU1fUkVD T1ZFUkFCTEUpOwotCQlpZ3RfYXNzZXJ0X2VxKChpbnQpc2V0LnBhcmFtLnZhbHVlLCBleHBlY3Rl ZCk7Ci0KLQkJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQkv KiBjbG9uZSBidXQgdGhlbiByZXNldCBwcmlvcml0eSB0byBkZWZhdWx0Li4uICovCi0JCXNldC5w YXJhbS5jdHhfaWQgPSAwOwotCQlzZXQucGFyYW0udmFsdWUgPSAxOwotCQlleHQuYmFzZS5uZXh0 X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRlcigmc2V0KTsKLQkJaWd0X2Fzc2VydF9lcShjdHhf Y3JlYXRlX2lvY3RsKGk5MTUsICZjcmVhdGUpLCAwKTsKLQkJZXh0LmJhc2UubmV4dF9leHRlbnNp b24gPSAwOwotCi0JCS8qIHRoZW4gbmV3IGNvbnRleHQgc2hvdWxkIGhhdmUgdXBkYXRlZCBwcmlv cml0eS4uLiAqLwotCQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2Nv bnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQlpZ3RfYXNzZXJ0X2VxX3U2NChz ZXQucGFyYW0udmFsdWUsIDEpOwotCi0JCS8qIGJ1dCBvcmlnaW5hbCBjb250ZXh0IHNob3VsZCBo YXZlIGRlZmF1bHQgcHJpb3JpdHkgKi8KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGV4dC5jbG9uZV9p ZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQlpZ3RfYXNz ZXJ0X2VxX3U2NChzZXQucGFyYW0udmFsdWUsIDApOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3ko aTkxNSwgY3JlYXRlLmN0eF9pZCk7Ci0JCWV4dC5jbG9uZV9pZCA9IGdlbV9jb250ZXh0X2NyZWF0 ZShpOTE1KTsKLQl9Ci0KLQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGV4dC5jbG9uZV9pZCk7 Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb25lX2VuZ2luZXMoaW50IGk5MTUpCi17Ci0Jc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfc2V0cGFyYW0gc2V0ID0gewotCQl7IC5uYW1l ID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfU0VUUEFSQU0gfSwKLQkJeyAucGFyYW0gPSBJOTE1 X0NPTlRFWFRfUEFSQU1fRU5HSU5FUyB9LAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250 ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1lID0gSTkxNV9DT05URVhUX0NS RUFURV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NMT05FX0VOR0lORVMs Ci0JfTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dCBjcmVhdGUgPSB7 Ci0JCS5mbGFncyA9IEk5MTVfQ09OVEVYVF9DUkVBVEVfRkxBR1NfVVNFX0VYVEVOU0lPTlMsCi0J CS5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKCZleHQpLAotCX07Ci0JSTkxNV9ERUZJTkVf Q09OVEVYVF9QQVJBTV9FTkdJTkVTKGV4cGVjdGVkLCA2NCk7Ci0JSTkxNV9ERUZJTkVfQ09OVEVY VF9QQVJBTV9FTkdJTkVTKGVuZ2luZXMsIDY0KTsKLQl1aW50NjRfdCBleF9zaXplOwotCi0JbWVt c2V0KCZleHBlY3RlZCwgMCwgc2l6ZW9mKGV4cGVjdGVkKSk7Ci0JbWVtc2V0KCZlbmdpbmVzLCAw LCBzaXplb2YoZW5naW5lcykpOwotCi0JaWd0X3JlcXVpcmUoX19nZW1fY29udGV4dF9zZXRfcGFy YW0oaTkxNSwgJnNldC5wYXJhbSkgPT0gMCk7Ci0KLQlmb3IgKGludCBwYXNzID0gMDsgcGFzcyA8 IDI7IHBhc3MrKykgeyAvKiBjbG9uaW5nIGRlZmF1bHQsIHRoZW4gY2hpbGQgKi8KLQkJaWd0X2Rl YnVnKCJDbG9uaW5nICVkXG4iLCBleHQuY2xvbmVfaWQpOwotCQlpZ3RfYXNzZXJ0X2VxKGN0eF9j cmVhdGVfaW9jdGwoaTkxNSwgJmNyZWF0ZSksIDApOwotCi0JCS8qIENoZWNrIHRoYXQgd2UgY2xv bmVkIHRoZSBlbmdpbmUgbWFwICovCi0JCXNldC5wYXJhbS5jdHhfaWQgPSBleHQuY2xvbmVfaWQ7 Ci0JCXNldC5wYXJhbS5zaXplID0gc2l6ZW9mKGV4cGVjdGVkKTsKLQkJc2V0LnBhcmFtLnZhbHVl ID0gdG9fdXNlcl9wb2ludGVyKCZleHBlY3RlZCk7Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShp OTE1LCAmc2V0LnBhcmFtKTsKLQkJZXhfc2l6ZSA9IHNldC5wYXJhbS5zaXplOwotCi0JCXNldC5w YXJhbS5jdHhfaWQgPSBjcmVhdGUuY3R4X2lkOwotCQlzZXQucGFyYW0uc2l6ZSA9IHNpemVvZihl bmdpbmVzKTsKLQkJc2V0LnBhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZlbmdpbmVzKTsK LQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3Nl cnRfZXFfdTY0KHNldC5wYXJhbS5wYXJhbSwgSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMpOwot CQlpZ3RfYXNzZXJ0X2VxX3U2NChzZXQucGFyYW0uc2l6ZSwgZXhfc2l6ZSk7Ci0JCWlndF9hc3Nl cnQoIW1lbWNtcCgmZW5naW5lcywgJmV4cGVjdGVkLCBleF9zaXplKSk7Ci0KLQkJZ2VtX2NvbnRl eHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQkvKiBDaGVjayB0aGF0IHRoZSBj bG9uZSB3aWxsIHJlcGxhY2UgYW4gZWFybGllciBzZXQgKi8KLQkJZXhwZWN0ZWQuZW5naW5lc1sw XS5lbmdpbmVfY2xhc3MgPQotCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKLQkJZXhwZWN0 ZWQuZW5naW5lc1swXS5lbmdpbmVfaW5zdGFuY2UgPQotCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5W QUxJRF9OT05FOwotCQlleF9zaXplID0gKHNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFt X2VuZ2luZXMpICsKLQkJCSAgIHNpemVvZihleHBlY3RlZC5lbmdpbmVzWzBdKSk7Ci0KLQkJc2V0 LnBhcmFtLmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJc2V0LnBhcmFtLnNpemUgPSBleF9zaXpl OwotCQlzZXQucGFyYW0udmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmV4cGVjdGVkKTsKLQkJZ2Vt X2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXEo Y3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9p ZCA9IGNyZWF0ZS5jdHhfaWQ7Ci0JCXNldC5wYXJhbS5zaXplID0gc2l6ZW9mKGVuZ2luZXMpOwot CQlzZXQucGFyYW0udmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpOwotCQlnZW1fY29u dGV4dF9nZXRfcGFyYW0oaTkxNSwgJnNldC5wYXJhbSk7Ci0KLQkJaWd0X2Fzc2VydF9lcV91NjQo c2V0LnBhcmFtLnNpemUsIGV4X3NpemUpOwotCQlpZ3RfYXNzZXJ0KCFtZW1jbXAoJmVuZ2luZXMs ICZleHBlY3RlZCwgZXhfc2l6ZSkpOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3Jl YXRlLmN0eF9pZCk7Ci0KLQkJLyogY2xvbmUgYnV0IHRoZW4gcmVzZXQgZW5naW5lcyB0byBkZWZh dWx0ICovCi0JCXNldC5wYXJhbS5jdHhfaWQgPSAwOwotCQlzZXQucGFyYW0uc2l6ZSA9IDA7Ci0J CXNldC5wYXJhbS52YWx1ZSA9IDA7Ci0JCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gdG9fdXNl cl9wb2ludGVyKCZzZXQpOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1 LCAmY3JlYXRlKSwgMCk7Ci0JCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gMDsKLQotCQlzZXQu cGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJc2V0LnBhcmFtLnNpemUgPSBzaXplb2Yo ZW5naW5lcyk7Ci0JCXNldC5wYXJhbS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigmZW5naW5lcyk7 Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsKLQkJaWd0X2Fzc2Vy dF9lcV91NjQoc2V0LnBhcmFtLnNpemUsIDApOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkx NSwgY3JlYXRlLmN0eF9pZCk7Ci0KLQkJLyogQW5kIGNoZWNrIHdlIGlnbm9yZSB0aGUgZmxhZyAq LwotCQlleHQuZmxhZ3MgPSAwOwotCQlpZ3RfYXNzZXJ0X2VxKGN0eF9jcmVhdGVfaW9jdGwoaTkx NSwgJmNyZWF0ZSksIDApOwotCQlleHQuZmxhZ3MgPSBJOTE1X0NPTlRFWFRfQ0xPTkVfRU5HSU5F UzsKLQotCQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJc2V0LnBhcmFtLnNp emUgPSBzaXplb2YoZW5naW5lcyk7Ci0JCXNldC5wYXJhbS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRl cigmZW5naW5lcyk7Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsK LQkJaWd0X2Fzc2VydF9lcV91NjQoc2V0LnBhcmFtLnNpemUsIDApOwotCi0JCWV4dC5jbG9uZV9p ZCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQl9Ci0KLQlnZW1fY29udGV4dF9kZXN0cm95 KGk5MTUsIGV4dC5jbG9uZV9pZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb25lX3NjaGVkdWxlcihp bnQgaTkxNSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9zZXRw YXJhbSBzZXQgPSB7Ci0JCXsgLm5hbWUgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0VYVF9TRVRQQVJB TSB9LAotCQl7IC5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWSB9LAotCX07Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7 IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkx NV9DT05URVhUX0NMT05FX1NDSEVEQVRUUiwKLQl9OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfZXh0IGNyZWF0ZSA9IHsKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NSRUFU RV9GTEFHU19VU0VfRVhURU5TSU9OUywKLQkJLmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIo JmV4dCksCi0JfTsKLQlpbnQgZXhwZWN0ZWQ7Ci0KLQlpZ3RfcmVxdWlyZShfX2dlbV9jb250ZXh0 X3NldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKSA9PSAwKTsKLQotCWZvciAoaW50IHBhc3MgPSAw OyBwYXNzIDwgMjsgcGFzcysrKSB7IC8qIGNsb25pbmcgZGVmYXVsdCwgdGhlbiBjaGlsZCAqLwot CQlpZ3RfZGVidWcoIkNsb25pbmcgJWRcbiIsIGV4dC5jbG9uZV9pZCk7Ci0JCWlndF9hc3NlcnRf ZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0 eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQu cGFyYW0pOwotCQlleHBlY3RlZCA9IHNldC5wYXJhbS52YWx1ZTsKLQotCQlzZXQucGFyYW0uY3R4 X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQu cGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXFfdTY0KHNldC5wYXJhbS5wYXJhbSwgSTkxNV9DT05U RVhUX1BBUkFNX1BSSU9SSVRZKTsKLQkJaWd0X2Fzc2VydF9lcSgoaW50KXNldC5wYXJhbS52YWx1 ZSwgZXhwZWN0ZWQpOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRlLmN0eF9p ZCk7Ci0KLQkJZXhwZWN0ZWQgPSBzZXQucGFyYW0udmFsdWUgPSAxOwotCQlzZXQucGFyYW0uY3R4 X2lkID0gZXh0LmNsb25lX2lkOwotCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnNldC5w YXJhbSk7Ci0KLQkJaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUsICZjcmVhdGUp LCAwKTsKLQotCQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRl eHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXFfdTY0KHNl dC5wYXJhbS5wYXJhbSwgSTkxNV9DT05URVhUX1BBUkFNX1BSSU9SSVRZKTsKLQkJaWd0X2Fzc2Vy dF9lcSgoaW50KXNldC5wYXJhbS52YWx1ZSwgZXhwZWN0ZWQpOwotCi0JCWdlbV9jb250ZXh0X2Rl c3Ryb3koaTkxNSwgY3JlYXRlLmN0eF9pZCk7Ci0KLQkJLyogY2xvbmUgYnV0IHRoZW4gcmVzZXQg cHJpb3JpdHkgdG8gZGVmYXVsdCAqLwotCQlzZXQucGFyYW0uY3R4X2lkID0gMDsKLQkJc2V0LnBh cmFtLnZhbHVlID0gMDsKLQkJZXh0LmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50 ZXIoJnNldCk7Ci0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRl KSwgMCk7Ci0JCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gMDsKLQotCQlzZXQucGFyYW0uY3R4 X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQu cGFyYW0pOwotCQlpZ3RfYXNzZXJ0X2VxX3U2NChzZXQucGFyYW0udmFsdWUsIDApOwotCi0JCXNl dC5wYXJhbS5jdHhfaWQgPSBleHQuY2xvbmVfaWQ7Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShp OTE1LCAmc2V0LnBhcmFtKTsKLQkJaWd0X2Fzc2VydF9lcV91NjQoc2V0LnBhcmFtLnZhbHVlLCAx KTsKLQotCQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGNyZWF0ZS5jdHhfaWQpOwotCQlleHQu Y2xvbmVfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7Ci0JfQotCi0JZ2VtX2NvbnRleHRf ZGVzdHJveShpOTE1LCBleHQuY2xvbmVfaWQpOwotfQotCi1zdGF0aWMgdWludDMyX3QgX19iYXRj aF9jcmVhdGUoaW50IGk5MTUsIHVpbnQzMl90IG9mZnNldCkKLXsKLQljb25zdCB1aW50MzJfdCBi YmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwotCXVpbnQzMl90IGhhbmRsZTsKLQotCWhhbmRsZSA9 IGdlbV9jcmVhdGUoaTkxNSwgQUxJR04ob2Zmc2V0ICsgNCwgNDA5NikpOwotCWdlbV93cml0ZShp OTE1LCBoYW5kbGUsIG9mZnNldCwgJmJiZSwgc2l6ZW9mKGJiZSkpOwotCi0JcmV0dXJuIGhhbmRs ZTsKLX0KLQotc3RhdGljIHVpbnQzMl90IGJhdGNoX2NyZWF0ZShpbnQgaTkxNSkKLXsKLQlyZXR1 cm4gX19iYXRjaF9jcmVhdGUoaTkxNSwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNoZWNrX3NhbWVf dm0oaW50IGk5MTUsIHVpbnQzMl90IGN0eF9hLCB1aW50MzJfdCBjdHhfYikKLXsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBiYXRjaCA9IHsKLQkJLmhhbmRsZSA9IGJhdGNoX2Ny ZWF0ZShpOTE1KSwKLQl9OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWIgPSB7 Ci0JCS5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmYmF0Y2gpLAotCQkuYnVmZmVyX2Nv dW50ID0gMSwKLQl9OwotCi0JLyogRmlyc3QgdmVyaWZ5IHRoYXQgd2UgdHJ5IHRvIHVzZSAic29m dHBpbm5pbmciIGJ5IGRlZmF1bHQgKi8KLQliYXRjaC5vZmZzZXQgPSA0OCA8PCAyMDsKLQllYi5y c3ZkMSA9IGN0eF9hOwotCWdlbV9leGVjYnVmKGk5MTUsICZlYik7Ci0JaWd0X2Fzc2VydF9lcV91 NjQoYmF0Y2gub2Zmc2V0LCA0OCA8PCAyMCk7Ci0KLQkvKiBBbiBhbHJlYWR5IGFjdGl2ZSBWTUEg d2lsbCB0cnkgdG8ga2VlcCBpdHMgb2Zmc2V0ICovCi0JYmF0Y2gub2Zmc2V0ID0gMDsKLQllYi5y c3ZkMSA9IGN0eF9iOwotCWdlbV9leGVjYnVmKGk5MTUsICZlYik7Ci0JaWd0X2Fzc2VydF9lcV91 NjQoYmF0Y2gub2Zmc2V0LCA0OCA8PCAyMCk7Ci0KLQlnZW1fc3luYyhpOTE1LCBiYXRjaC5oYW5k bGUpOwotCWdlbV9jbG9zZShpOTE1LCBiYXRjaC5oYW5kbGUpOwotCi0JZ2VtX3F1aWVzY2VudF9n cHUoaTkxNSk7IC8qIGV2aWN0IHRoZSB2bWEgKi8KLX0KLQotc3RhdGljIHZvaWQgY2xvbmVfdm0o aW50IGk5MTUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHNldCA9IHsK LQkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX1ZNLAotCX07Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1lID0gSTkxNV9D T05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NMT05F X1ZNLAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQgY3JlYXRl ID0gewotCQkuZmxhZ3MgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05T LAotCQkuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcigmZXh0KSwKLQl9OwotCXVpbnQzMl90 IHZtX2lkWzJdOwotCi0JaWd0X3JlcXVpcmUoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwg JnNldCkgPT0gLUVOT0VOVCk7Ci0KLQkvKiBTY3J1YiB0aGUgVk0gZm9yIG91ciB0ZXN0cyAqLwot CWk5MTUgPSBnZW1fcmVvcGVuX2RyaXZlcihpOTE1KTsKLQotCXNldC5jdHhfaWQgPSBnZW1fY29u dGV4dF9jcmVhdGUoaTkxNSk7Ci0JZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQpOwot CXZtX2lkWzBdID0gc2V0LnZhbHVlOwotCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgc2V0LmN0 eF9pZCk7Ci0KLQl2bV9pZFsxXSA9IGdlbV92bV9jcmVhdGUoaTkxNSk7Ci0KLQlmb3IgKGludCBw YXNzID0gMDsgcGFzcyA8IDI7IHBhc3MrKykgeyAvKiBjbG9uaW5nIGRlZmF1bHQsIHRoZW4gY2hp bGQgKi8KLQkJaWd0X2RlYnVnKCJDbG9uaW5nICVkXG4iLCBleHQuY2xvbmVfaWQpOwotCi0JCWln dF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0JCWNoZWNr X3NhbWVfdm0oaTkxNSwgZXh0LmNsb25lX2lkLCBjcmVhdGUuY3R4X2lkKTsKLQkJZ2VtX2NvbnRl eHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQlzZXQudmFsdWUgPSB2bV9pZFtw YXNzXTsKLQkJc2V0LmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfc2V0X3Bh cmFtKGk5MTUsICZzZXQpOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1 LCAmY3JlYXRlKSwgMCk7Ci0JCWNoZWNrX3NhbWVfdm0oaTkxNSwgZXh0LmNsb25lX2lkLCBjcmVh dGUuY3R4X2lkKTsKLQkJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsK LQotCQlleHQuY2xvbmVfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7Ci0JfQotCi0JZ2Vt X2NvbnRleHRfZGVzdHJveShpOTE1LCBleHQuY2xvbmVfaWQpOwotCi0JZm9yIChpbnQgaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKHZtX2lkKTsgaSsrKQotCQlnZW1fdm1fZGVzdHJveShpOTE1LCB2bV9p ZFtpXSk7Ci0KLQljbG9zZShpOTE1KTsKLX0KLQotaWd0X21haW4KLXsKLQlpbnQgaTkxNSA9IC0x OwotCi0JaWd0X2ZpeHR1cmUgewotCQlpOTE1ID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRF TCk7Ci0JCWlndF9yZXF1aXJlX2dlbShpOTE1KTsKLQkJZ2VtX3JlcXVpcmVfY29udGV4dHMoaTkx NSk7Ci0KLQkJaWd0X3JlcXVpcmUoZ2VtX2hhc19jb250ZXh0X2Nsb25lKGk5MTUpKTsKLQkJaWd0 X2ZvcmtfaGFuZ19kZXRlY3RvcihpOTE1KTsKLQl9Ci0KLQlpZ3Rfc3VidGVzdCgiaW52YWxpZCIp Ci0JCWludmFsaWRfY2xvbmUoaTkxNSk7Ci0KLQlpZ3Rfc3VidGVzdCgiZW5naW5lcyIpCi0JCWNs b25lX2VuZ2luZXMoaTkxNSk7Ci0KLQlpZ3Rfc3VidGVzdCgiZmxhZ3MiKQotCQljbG9uZV9mbGFn cyhpOTE1KTsKLQotCWlndF9zdWJ0ZXN0KCJzY2hlZHVsZXIiKQotCQljbG9uZV9zY2hlZHVsZXIo aTkxNSk7Ci0KLQlpZ3Rfc3VidGVzdCgidm0iKQotCQljbG9uZV92bShpOTE1KTsKLQotCWlndF9m aXh0dXJlIHsKLQkJaWd0X3N0b3BfaGFuZ19kZXRlY3RvcigpOwotCQljbG9zZShpOTE1KTsKLQl9 Ci19CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmlu ZGV4IDJjNTc5ZDRjLi5mOGYwYmViMiAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysr IGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTEyNiw3ICsxMjYsNiBAQCBpOTE1X3Byb2dzID0gWwog CSdnZW1fY29uY3VycmVudF9ibGl0JywKIAknZ2VtX2NzX3RsYicsCiAJJ2dlbV9jdHhfYmFkX2Rl c3Ryb3knLAotCSdnZW1fY3R4X2Nsb25lJywKIAknZ2VtX2N0eF9jcmVhdGUnLAogCSdnZW1fY3R4 X2VuZ2luZXMnLAogCSdnZW1fY3R4X2V4ZWMnLAotLSAKMi4zMS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK