From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by gabe.freedesktop.org (Postfix) with ESMTPS id E0CC26E840 for ; Tue, 23 Mar 2021 03:51:47 +0000 (UTC) Received: by mail-pj1-x1030.google.com with SMTP id w8so9485956pjf.4 for ; Mon, 22 Mar 2021 20:51:47 -0700 (PDT) From: Jason Ekstrand Date: Mon, 22 Mar 2021 22:51:31 -0500 Message-Id: <20210323035135.3367084-6-jason@jlekstrand.net> In-Reply-To: <20210323035135.3367084-1-jason@jlekstrand.net> References: <20210322204123.3331055-1-jason@jlekstrand.net> <20210323035135.3367084-1-jason@jlekstrand.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 5/9] 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 VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJj ZXMgICAgIHwgICAzIC0KIHRlc3RzL2k5MTUvZ2VtX2N0eF9jbG9uZS5jIHwgNDUwIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAg IHwgICAxIC0KIDMgZmlsZXMgY2hhbmdlZCwgNDU0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUg MTAwNjQ0IHRlc3RzL2k5MTUvZ2VtX2N0eF9jbG9uZS5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggYmZmYTBkYjMuLmEw YzIzYzFmIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKQEAgLTE2OSw5ICsxNjksNiBAQCBnZW1fY3NfdGxiX1NPVVJDRVMgPSBp OTE1L2dlbV9jc190bGIuYwogVEVTVFNfcHJvZ3MgKz0gZ2VtX2N0eF9iYWRfZGVzdHJveQogZ2Vt X2N0eF9iYWRfZGVzdHJveV9TT1VSQ0VTID0gaTkxNS9nZW1fY3R4X2JhZF9kZXN0cm95LmMKIAot VEVTVFNfcHJvZ3MgKz0gZ2VtX2N0eF9jbG9uZQotZ2VtX2N0eF9jbG9uZV9TT1VSQ0VTID0gaTkx NS9nZW1fY3R4X2Nsb25lLmMKLQogVEVTVFNfcHJvZ3MgKz0gZ2VtX2N0eF9jcmVhdGUKIGdlbV9j dHhfY3JlYXRlX1NPVVJDRVMgPSBpOTE1L2dlbV9jdHhfY3JlYXRlLmMKIApkaWZmIC0tZ2l0IGEv dGVzdHMvaTkxNS9nZW1fY3R4X2Nsb25lLmMgYi90ZXN0cy9pOTE1L2dlbV9jdHhfY2xvbmUuYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyMjY5YmMuLjAwMDAwMDAwCi0tLSBhL3Rl c3RzL2k5MTUvZ2VtX2N0eF9jbG9uZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDUwICswLDAgQEAK LS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgot ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiaTkxNS9n ZW0uaCIKLSNpbmNsdWRlICJpOTE1L2dlbV92bS5oIgotI2luY2x1ZGUgImk5MTVfZHJtLmgiCi0j aW5jbHVkZSAiaWd0LmgiCi0jaW5jbHVkZSAiaWd0X2d0LmgiCi0KLXN0YXRpYyBpbnQgY3R4X2Ny ZWF0ZV9pb2N0bChpbnQgaTkxNSwgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9l eHQgKmFyZykKLXsKLQlpbnQgZXJyOwotCi0JZXJyID0gMDsKLQlpZiAoaWd0X2lvY3RsKGk5MTUs IERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURV9FWFQsIGFyZykpIHsKLQkJZXJyID0g LWVycm5vOwotCQlpZ3RfYXNzdW1lKGVycik7Ci0JfQotCi0JZXJybm8gPSAwOwotCXJldHVybiBl cnI7Ci19Ci0KLXN0YXRpYyB2b2lkIGludmFsaWRfY2xvbmUoaW50IGk5MTUpCi17Ci0Jc3RydWN0 IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1l ID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQl9OwotCXN0cnVjdCBkcm1faTkx NV9nZW1fY29udGV4dF9jcmVhdGVfZXh0IGNyZWF0ZSA9IHsKLQkJLmZsYWdzID0gSTkxNV9DT05U RVhUX0NSRUFURV9GTEFHU19VU0VfRVhURU5TSU9OUywKLQkJLmV4dGVuc2lvbnMgPSB0b191c2Vy X3BvaW50ZXIoJmV4dCksCi0JfTsKLQotCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChp OTE1LCAmY3JlYXRlKSwgMCk7Ci0JZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4 X2lkKTsKLQotCWV4dC5mbGFncyA9IC0xOyAvKiBIb3BlZnVsbHkgd2Ugd29uJ3QgcnVuIG91dCBv ZiBmbGFncyAqLwotCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRl KSwgLUVJTlZBTCk7Ci0JZXh0LmZsYWdzID0gMDsKLQotCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9u ID0gLTE7Ci0JaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUsICZjcmVhdGUpLCAt RUZBVUxUKTsKLQlleHQuYmFzZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRlcigmZXh0 KTsKLQlpZ3RfYXNzZXJ0X2VxKGN0eF9jcmVhdGVfaW9jdGwoaTkxNSwgJmNyZWF0ZSksIC1FMkJJ Ryk7Ci0JZXh0LmJhc2UubmV4dF9leHRlbnNpb24gPSAwOwotCi0JZXh0LmNsb25lX2lkID0gLTE7 Ci0JaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUsICZjcmVhdGUpLCAtRU5PRU5U KTsKLQlleHQuY2xvbmVfaWQgPSAwOwotfQotCi1zdGF0aWMgdm9pZCBjbG9uZV9mbGFncyhpbnQg aTkxNSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9zZXRwYXJh bSBzZXQgPSB7Ci0JCXsgLm5hbWUgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0VYVF9TRVRQQVJBTSB9 LAotCQl7IC5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9SRUNPVkVSQUJMRSB9LAotCX07Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7 IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkx NV9DT05URVhUX0NMT05FX0ZMQUdTLAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X2NyZWF0ZV9leHQgY3JlYXRlID0gewotCQkuZmxhZ3MgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZM QUdTX1VTRV9FWFRFTlNJT05TLAotCQkuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcigmZXh0 KSwKLQl9OwotCWludCBleHBlY3RlZDsKLQotCXNldC5wYXJhbS52YWx1ZSA9IDE7IC8qIGRlZmF1 bHQgaXMgcmVjb3ZlcmFibGUgKi8KLQlpZ3RfcmVxdWlyZShfX2dlbV9jb250ZXh0X3NldF9wYXJh bShpOTE1LCAmc2V0LnBhcmFtKSA9PSAwKTsKLQotCWZvciAoaW50IHBhc3MgPSAwOyBwYXNzIDwg MjsgcGFzcysrKSB7IC8qIGNsb25pbmcgZGVmYXVsdCwgdGhlbiBjaGlsZCAqLwotCQlpZ3RfZGVi dWcoIkNsb25pbmcgJWRcbiIsIGV4dC5jbG9uZV9pZCk7Ci0JCWlndF9hc3NlcnRfZXEoY3R4X2Ny ZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGV4 dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwot CQlleHBlY3RlZCA9IHNldC5wYXJhbS52YWx1ZTsKLQotCQlzZXQucGFyYW0uY3R4X2lkID0gY3Jl YXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwot Ci0JCWlndF9hc3NlcnRfZXFfdTY0KHNldC5wYXJhbS5wYXJhbSwKLQkJCQkgIEk5MTVfQ09OVEVY VF9QQVJBTV9SRUNPVkVSQUJMRSk7Ci0JCWlndF9hc3NlcnRfZXEoKGludClzZXQucGFyYW0udmFs dWUsIGV4cGVjdGVkKTsKLQotCQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGNyZWF0ZS5jdHhf aWQpOwotCi0JCWV4cGVjdGVkID0gc2V0LnBhcmFtLnZhbHVlID0gMDsKLQkJc2V0LnBhcmFtLmN0 eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZzZXQu cGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRl KSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGNyZWF0ZS5jdHhfaWQ7Ci0JCWdlbV9jb250 ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsKLQotCQlpZ3RfYXNzZXJ0X2VxX3U2NChz ZXQucGFyYW0ucGFyYW0sCi0JCQkJICBJOTE1X0NPTlRFWFRfUEFSQU1fUkVDT1ZFUkFCTEUpOwot CQlpZ3RfYXNzZXJ0X2VxKChpbnQpc2V0LnBhcmFtLnZhbHVlLCBleHBlY3RlZCk7Ci0KLQkJZ2Vt X2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQkvKiBjbG9uZSBidXQg dGhlbiByZXNldCBwcmlvcml0eSB0byBkZWZhdWx0Li4uICovCi0JCXNldC5wYXJhbS5jdHhfaWQg PSAwOwotCQlzZXQucGFyYW0udmFsdWUgPSAxOwotCQlleHQuYmFzZS5uZXh0X2V4dGVuc2lvbiA9 IHRvX3VzZXJfcG9pbnRlcigmc2V0KTsKLQkJaWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3Rs KGk5MTUsICZjcmVhdGUpLCAwKTsKLQkJZXh0LmJhc2UubmV4dF9leHRlbnNpb24gPSAwOwotCi0J CS8qIHRoZW4gbmV3IGNvbnRleHQgc2hvdWxkIGhhdmUgdXBkYXRlZCBwcmlvcml0eS4uLiAqLwot CQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3Bh cmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQlpZ3RfYXNzZXJ0X2VxX3U2NChzZXQucGFyYW0udmFs dWUsIDEpOwotCi0JCS8qIGJ1dCBvcmlnaW5hbCBjb250ZXh0IHNob3VsZCBoYXZlIGRlZmF1bHQg cHJpb3JpdHkgKi8KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2Nv bnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQlpZ3RfYXNzZXJ0X2VxX3U2NChz ZXQucGFyYW0udmFsdWUsIDApOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRl LmN0eF9pZCk7Ci0JCWV4dC5jbG9uZV9pZCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQl9 Ci0KLQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGV4dC5jbG9uZV9pZCk7Ci19Ci0KLXN0YXRp YyB2b2lkIGNsb25lX2VuZ2luZXMoaW50IGk5MTUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X2NyZWF0ZV9leHRfc2V0cGFyYW0gc2V0ID0gewotCQl7IC5uYW1lID0gSTkxNV9DT05U RVhUX0NSRUFURV9FWFRfU0VUUEFSQU0gfSwKLQkJeyAucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFS QU1fRU5HSU5FUyB9LAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9l eHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xP TkUgfSwKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NMT05FX0VOR0lORVMsCi0JfTsKLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dCBjcmVhdGUgPSB7Ci0JCS5mbGFncyA9 IEk5MTVfQ09OVEVYVF9DUkVBVEVfRkxBR1NfVVNFX0VYVEVOU0lPTlMsCi0JCS5leHRlbnNpb25z ID0gdG9fdXNlcl9wb2ludGVyKCZleHQpLAotCX07Ci0JSTkxNV9ERUZJTkVfQ09OVEVYVF9QQVJB TV9FTkdJTkVTKGV4cGVjdGVkLCA2NCk7Ci0JSTkxNV9ERUZJTkVfQ09OVEVYVF9QQVJBTV9FTkdJ TkVTKGVuZ2luZXMsIDY0KTsKLQl1aW50NjRfdCBleF9zaXplOwotCi0JbWVtc2V0KCZleHBlY3Rl ZCwgMCwgc2l6ZW9mKGV4cGVjdGVkKSk7Ci0JbWVtc2V0KCZlbmdpbmVzLCAwLCBzaXplb2YoZW5n aW5lcykpOwotCi0JaWd0X3JlcXVpcmUoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnNl dC5wYXJhbSkgPT0gMCk7Ci0KLQlmb3IgKGludCBwYXNzID0gMDsgcGFzcyA8IDI7IHBhc3MrKykg eyAvKiBjbG9uaW5nIGRlZmF1bHQsIHRoZW4gY2hpbGQgKi8KLQkJaWd0X2RlYnVnKCJDbG9uaW5n ICVkXG4iLCBleHQuY2xvbmVfaWQpOwotCQlpZ3RfYXNzZXJ0X2VxKGN0eF9jcmVhdGVfaW9jdGwo aTkxNSwgJmNyZWF0ZSksIDApOwotCi0JCS8qIENoZWNrIHRoYXQgd2UgY2xvbmVkIHRoZSBlbmdp bmUgbWFwICovCi0JCXNldC5wYXJhbS5jdHhfaWQgPSBleHQuY2xvbmVfaWQ7Ci0JCXNldC5wYXJh bS5zaXplID0gc2l6ZW9mKGV4cGVjdGVkKTsKLQkJc2V0LnBhcmFtLnZhbHVlID0gdG9fdXNlcl9w b2ludGVyKCZleHBlY3RlZCk7Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBh cmFtKTsKLQkJZXhfc2l6ZSA9IHNldC5wYXJhbS5zaXplOwotCi0JCXNldC5wYXJhbS5jdHhfaWQg PSBjcmVhdGUuY3R4X2lkOwotCQlzZXQucGFyYW0uc2l6ZSA9IHNpemVvZihlbmdpbmVzKTsKLQkJ c2V0LnBhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZlbmdpbmVzKTsKLQkJZ2VtX2NvbnRl eHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXFfdTY0KHNl dC5wYXJhbS5wYXJhbSwgSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMpOwotCQlpZ3RfYXNzZXJ0 X2VxX3U2NChzZXQucGFyYW0uc2l6ZSwgZXhfc2l6ZSk7Ci0JCWlndF9hc3NlcnQoIW1lbWNtcCgm ZW5naW5lcywgJmV4cGVjdGVkLCBleF9zaXplKSk7Ci0KLQkJZ2VtX2NvbnRleHRfZGVzdHJveShp OTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQkvKiBDaGVjayB0aGF0IHRoZSBjbG9uZSB3aWxsIHJl cGxhY2UgYW4gZWFybGllciBzZXQgKi8KLQkJZXhwZWN0ZWQuZW5naW5lc1swXS5lbmdpbmVfY2xh c3MgPQotCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKLQkJZXhwZWN0ZWQuZW5naW5lc1sw XS5lbmdpbmVfaW5zdGFuY2UgPQotCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FOwot CQlleF9zaXplID0gKHNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMpICsK LQkJCSAgIHNpemVvZihleHBlY3RlZC5lbmdpbmVzWzBdKSk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9p ZCA9IGV4dC5jbG9uZV9pZDsKLQkJc2V0LnBhcmFtLnNpemUgPSBleF9zaXplOwotCQlzZXQucGFy YW0udmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmV4cGVjdGVkKTsKLQkJZ2VtX2NvbnRleHRfc2V0 X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9p b2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGNyZWF0ZS5j dHhfaWQ7Ci0JCXNldC5wYXJhbS5zaXplID0gc2l6ZW9mKGVuZ2luZXMpOwotCQlzZXQucGFyYW0u dmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpOwotCQlnZW1fY29udGV4dF9nZXRfcGFy YW0oaTkxNSwgJnNldC5wYXJhbSk7Ci0KLQkJaWd0X2Fzc2VydF9lcV91NjQoc2V0LnBhcmFtLnNp emUsIGV4X3NpemUpOwotCQlpZ3RfYXNzZXJ0KCFtZW1jbXAoJmVuZ2luZXMsICZleHBlY3RlZCwg ZXhfc2l6ZSkpOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRlLmN0eF9pZCk7 Ci0KLQkJLyogY2xvbmUgYnV0IHRoZW4gcmVzZXQgZW5naW5lcyB0byBkZWZhdWx0ICovCi0JCXNl dC5wYXJhbS5jdHhfaWQgPSAwOwotCQlzZXQucGFyYW0uc2l6ZSA9IDA7Ci0JCXNldC5wYXJhbS52 YWx1ZSA9IDA7Ci0JCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKCZz ZXQpOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwg MCk7Ci0JCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gMDsKLQotCQlzZXQucGFyYW0uY3R4X2lk ID0gY3JlYXRlLmN0eF9pZDsKLQkJc2V0LnBhcmFtLnNpemUgPSBzaXplb2YoZW5naW5lcyk7Ci0J CXNldC5wYXJhbS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigmZW5naW5lcyk7Ci0JCWdlbV9jb250 ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsKLQkJaWd0X2Fzc2VydF9lcV91NjQoc2V0 LnBhcmFtLnNpemUsIDApOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRlLmN0 eF9pZCk7Ci0KLQkJLyogQW5kIGNoZWNrIHdlIGlnbm9yZSB0aGUgZmxhZyAqLwotCQlleHQuZmxh Z3MgPSAwOwotCQlpZ3RfYXNzZXJ0X2VxKGN0eF9jcmVhdGVfaW9jdGwoaTkxNSwgJmNyZWF0ZSks IDApOwotCQlleHQuZmxhZ3MgPSBJOTE1X0NPTlRFWFRfQ0xPTkVfRU5HSU5FUzsKLQotCQlzZXQu cGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJc2V0LnBhcmFtLnNpemUgPSBzaXplb2Yo ZW5naW5lcyk7Ci0JCXNldC5wYXJhbS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigmZW5naW5lcyk7 Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBhcmFtKTsKLQkJaWd0X2Fzc2Vy dF9lcV91NjQoc2V0LnBhcmFtLnNpemUsIDApOwotCi0JCWV4dC5jbG9uZV9pZCA9IGdlbV9jb250 ZXh0X2NyZWF0ZShpOTE1KTsKLQl9Ci0KLQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGV4dC5j bG9uZV9pZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb25lX3NjaGVkdWxlcihpbnQgaTkxNSkKLXsK LQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9zZXRwYXJhbSBzZXQgPSB7 Ci0JCXsgLm5hbWUgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0VYVF9TRVRQQVJBTSB9LAotCQl7IC5w YXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWSB9LAotCX07Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1lID0gSTkx NV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NM T05FX1NDSEVEQVRUUiwKLQl9OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVf ZXh0IGNyZWF0ZSA9IHsKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19VU0Vf RVhURU5TSU9OUywKLQkJLmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIoJmV4dCksCi0JfTsK LQlpbnQgZXhwZWN0ZWQ7Ci0KLQlpZ3RfcmVxdWlyZShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShp OTE1LCAmc2V0LnBhcmFtKSA9PSAwKTsKLQotCWZvciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgMjsg cGFzcysrKSB7IC8qIGNsb25pbmcgZGVmYXVsdCwgdGhlbiBjaGlsZCAqLwotCQlpZ3RfZGVidWco IkNsb25pbmcgJWRcbiIsIGV4dC5jbG9uZV9pZCk7Ci0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0 ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0KLQkJc2V0LnBhcmFtLmN0eF9pZCA9IGV4dC5j bG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQll eHBlY3RlZCA9IHNldC5wYXJhbS52YWx1ZTsKLQotCQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRl LmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCi0J CWlndF9hc3NlcnRfZXFfdTY0KHNldC5wYXJhbS5wYXJhbSwgSTkxNV9DT05URVhUX1BBUkFNX1BS SU9SSVRZKTsKLQkJaWd0X2Fzc2VydF9lcSgoaW50KXNldC5wYXJhbS52YWx1ZSwgZXhwZWN0ZWQp OwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRlLmN0eF9pZCk7Ci0KLQkJZXhw ZWN0ZWQgPSBzZXQucGFyYW0udmFsdWUgPSAxOwotCQlzZXQucGFyYW0uY3R4X2lkID0gZXh0LmNs b25lX2lkOwotCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnNldC5wYXJhbSk7Ci0KLQkJ aWd0X2Fzc2VydF9lcShjdHhfY3JlYXRlX2lvY3RsKGk5MTUsICZjcmVhdGUpLCAwKTsKLQotCQlz ZXQucGFyYW0uY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFt KGk5MTUsICZzZXQucGFyYW0pOwotCi0JCWlndF9hc3NlcnRfZXFfdTY0KHNldC5wYXJhbS5wYXJh bSwgSTkxNV9DT05URVhUX1BBUkFNX1BSSU9SSVRZKTsKLQkJaWd0X2Fzc2VydF9lcSgoaW50KXNl dC5wYXJhbS52YWx1ZSwgZXhwZWN0ZWQpOwotCi0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwg Y3JlYXRlLmN0eF9pZCk7Ci0KLQkJLyogY2xvbmUgYnV0IHRoZW4gcmVzZXQgcHJpb3JpdHkgdG8g ZGVmYXVsdCAqLwotCQlzZXQucGFyYW0uY3R4X2lkID0gMDsKLQkJc2V0LnBhcmFtLnZhbHVlID0g MDsKLQkJZXh0LmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIoJnNldCk7Ci0J CWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0JCWV4 dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gMDsKLQotCQlzZXQucGFyYW0uY3R4X2lkID0gY3JlYXRl LmN0eF9pZDsKLQkJZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQucGFyYW0pOwotCQlp Z3RfYXNzZXJ0X2VxX3U2NChzZXQucGFyYW0udmFsdWUsIDApOwotCi0JCXNldC5wYXJhbS5jdHhf aWQgPSBleHQuY2xvbmVfaWQ7Ci0JCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmc2V0LnBh cmFtKTsKLQkJaWd0X2Fzc2VydF9lcV91NjQoc2V0LnBhcmFtLnZhbHVlLCAxKTsKLQotCQlnZW1f Y29udGV4dF9kZXN0cm95KGk5MTUsIGNyZWF0ZS5jdHhfaWQpOwotCQlleHQuY2xvbmVfaWQgPSBn ZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7Ci0JfQotCi0JZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1 LCBleHQuY2xvbmVfaWQpOwotfQotCi1zdGF0aWMgdWludDMyX3QgX19iYXRjaF9jcmVhdGUoaW50 IGk5MTUsIHVpbnQzMl90IG9mZnNldCkKLXsKLQljb25zdCB1aW50MzJfdCBiYmUgPSBNSV9CQVRD SF9CVUZGRVJfRU5EOwotCXVpbnQzMl90IGhhbmRsZTsKLQotCWhhbmRsZSA9IGdlbV9jcmVhdGUo aTkxNSwgQUxJR04ob2Zmc2V0ICsgNCwgNDA5NikpOwotCWdlbV93cml0ZShpOTE1LCBoYW5kbGUs IG9mZnNldCwgJmJiZSwgc2l6ZW9mKGJiZSkpOwotCi0JcmV0dXJuIGhhbmRsZTsKLX0KLQotc3Rh dGljIHVpbnQzMl90IGJhdGNoX2NyZWF0ZShpbnQgaTkxNSkKLXsKLQlyZXR1cm4gX19iYXRjaF9j cmVhdGUoaTkxNSwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNoZWNrX3NhbWVfdm0oaW50IGk5MTUs IHVpbnQzMl90IGN0eF9hLCB1aW50MzJfdCBjdHhfYikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2V4ZWNfb2JqZWN0MiBiYXRjaCA9IHsKLQkJLmhhbmRsZSA9IGJhdGNoX2NyZWF0ZShpOTE1KSwK LQl9OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWIgPSB7Ci0JCS5idWZmZXJz X3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmYmF0Y2gpLAotCQkuYnVmZmVyX2NvdW50ID0gMSwKLQl9 OwotCi0JLyogRmlyc3QgdmVyaWZ5IHRoYXQgd2UgdHJ5IHRvIHVzZSAic29mdHBpbm5pbmciIGJ5 IGRlZmF1bHQgKi8KLQliYXRjaC5vZmZzZXQgPSA0OCA8PCAyMDsKLQllYi5yc3ZkMSA9IGN0eF9h OwotCWdlbV9leGVjYnVmKGk5MTUsICZlYik7Ci0JaWd0X2Fzc2VydF9lcV91NjQoYmF0Y2gub2Zm c2V0LCA0OCA8PCAyMCk7Ci0KLQkvKiBBbiBhbHJlYWR5IGFjdGl2ZSBWTUEgd2lsbCB0cnkgdG8g a2VlcCBpdHMgb2Zmc2V0ICovCi0JYmF0Y2gub2Zmc2V0ID0gMDsKLQllYi5yc3ZkMSA9IGN0eF9i OwotCWdlbV9leGVjYnVmKGk5MTUsICZlYik7Ci0JaWd0X2Fzc2VydF9lcV91NjQoYmF0Y2gub2Zm c2V0LCA0OCA8PCAyMCk7Ci0KLQlnZW1fc3luYyhpOTE1LCBiYXRjaC5oYW5kbGUpOwotCWdlbV9j bG9zZShpOTE1LCBiYXRjaC5oYW5kbGUpOwotCi0JZ2VtX3F1aWVzY2VudF9ncHUoaTkxNSk7IC8q IGV2aWN0IHRoZSB2bWEgKi8KLX0KLQotc3RhdGljIHZvaWQgY2xvbmVfdm0oaW50IGk5MTUpCi17 Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHNldCA9IHsKLQkJLnBhcmFtID0g STkxNV9DT05URVhUX1BBUkFNX1ZNLAotCX07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X2NyZWF0ZV9leHRfY2xvbmUgZXh0ID0gewotCQl7IC5uYW1lID0gSTkxNV9DT05URVhUX0NSRUFU RV9FWFRfQ0xPTkUgfSwKLQkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NMT05FX1ZNLAotCX07Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQgY3JlYXRlID0gewotCQkuZmxh Z3MgPSBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TLAotCQkuZXh0ZW5z aW9ucyA9IHRvX3VzZXJfcG9pbnRlcigmZXh0KSwKLQl9OwotCXVpbnQzMl90IHZtX2lkWzJdOwot Ci0JaWd0X3JlcXVpcmUoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnNldCkgPT0gLUVO T0VOVCk7Ci0KLQkvKiBTY3J1YiB0aGUgVk0gZm9yIG91ciB0ZXN0cyAqLwotCWk5MTUgPSBnZW1f cmVvcGVuX2RyaXZlcihpOTE1KTsKLQotCXNldC5jdHhfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUo aTkxNSk7Ci0JZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGk5MTUsICZzZXQpOwotCXZtX2lkWzBdID0g c2V0LnZhbHVlOwotCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgc2V0LmN0eF9pZCk7Ci0KLQl2 bV9pZFsxXSA9IGdlbV92bV9jcmVhdGUoaTkxNSk7Ci0KLQlmb3IgKGludCBwYXNzID0gMDsgcGFz cyA8IDI7IHBhc3MrKykgeyAvKiBjbG9uaW5nIGRlZmF1bHQsIHRoZW4gY2hpbGQgKi8KLQkJaWd0 X2RlYnVnKCJDbG9uaW5nICVkXG4iLCBleHQuY2xvbmVfaWQpOwotCi0JCWlndF9hc3NlcnRfZXEo Y3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwgMCk7Ci0JCWNoZWNrX3NhbWVfdm0oaTkx NSwgZXh0LmNsb25lX2lkLCBjcmVhdGUuY3R4X2lkKTsKLQkJZ2VtX2NvbnRleHRfZGVzdHJveShp OTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQlzZXQudmFsdWUgPSB2bV9pZFtwYXNzXTsKLQkJc2V0 LmN0eF9pZCA9IGV4dC5jbG9uZV9pZDsKLQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZz ZXQpOwotCi0JCWlndF9hc3NlcnRfZXEoY3R4X2NyZWF0ZV9pb2N0bChpOTE1LCAmY3JlYXRlKSwg MCk7Ci0JCWNoZWNrX3NhbWVfdm0oaTkxNSwgZXh0LmNsb25lX2lkLCBjcmVhdGUuY3R4X2lkKTsK LQkJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKLQotCQlleHQuY2xv bmVfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7Ci0JfQotCi0JZ2VtX2NvbnRleHRfZGVz dHJveShpOTE1LCBleHQuY2xvbmVfaWQpOwotCi0JZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHZtX2lkKTsgaSsrKQotCQlnZW1fdm1fZGVzdHJveShpOTE1LCB2bV9pZFtpXSk7Ci0KLQlj bG9zZShpOTE1KTsKLX0KLQotaWd0X21haW4KLXsKLQlpbnQgaTkxNSA9IC0xOwotCi0JaWd0X2Zp eHR1cmUgewotCQlpOTE1ID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0JCWlndF9y ZXF1aXJlX2dlbShpOTE1KTsKLQkJZ2VtX3JlcXVpcmVfY29udGV4dHMoaTkxNSk7Ci0KLQkJaWd0 X3JlcXVpcmUoZ2VtX2hhc19jb250ZXh0X2Nsb25lKGk5MTUpKTsKLQkJaWd0X2ZvcmtfaGFuZ19k ZXRlY3RvcihpOTE1KTsKLQl9Ci0KLQlpZ3Rfc3VidGVzdCgiaW52YWxpZCIpCi0JCWludmFsaWRf Y2xvbmUoaTkxNSk7Ci0KLQlpZ3Rfc3VidGVzdCgiZW5naW5lcyIpCi0JCWNsb25lX2VuZ2luZXMo aTkxNSk7Ci0KLQlpZ3Rfc3VidGVzdCgiZmxhZ3MiKQotCQljbG9uZV9mbGFncyhpOTE1KTsKLQot CWlndF9zdWJ0ZXN0KCJzY2hlZHVsZXIiKQotCQljbG9uZV9zY2hlZHVsZXIoaTkxNSk7Ci0KLQlp Z3Rfc3VidGVzdCgidm0iKQotCQljbG9uZV92bShpOTE1KTsKLQotCWlndF9maXh0dXJlIHsKLQkJ aWd0X3N0b3BfaGFuZ19kZXRlY3RvcigpOwotCQljbG9zZShpOTE1KTsKLQl9Ci19CmRpZmYgLS1n aXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IGM4NTc2OGUx Li40NWMwNzc2MyAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVz b24uYnVpbGQKQEAgLTEyNyw3ICsxMjcsNiBAQCBpOTE1X3Byb2dzID0gWwogCSdnZW1fY29uY3Vy cmVudF9ibGl0JywKIAknZ2VtX2NzX3RsYicsCiAJJ2dlbV9jdHhfYmFkX2Rlc3Ryb3knLAotCSdn ZW1fY3R4X2Nsb25lJywKIAknZ2VtX2N0eF9jcmVhdGUnLAogCSdnZW1fY3R4X2VuZ2luZXMnLAog CSdnZW1fY3R4X2V4ZWMnLAotLSAKMi4yOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXYK