From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCB06C2D0E4 for ; Fri, 27 Nov 2020 12:08:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 92DF321D81 for ; Fri, 27 Nov 2020 12:08:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 92DF321D81 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4E5896EC24; Fri, 27 Nov 2020 12:08:20 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 81E076EC22; Fri, 27 Nov 2020 12:08:18 +0000 (UTC) IronPort-SDR: HqDXIpHDKdeItKmaemen2n4nAkKLOKulr4drW0qC8N4zK/zE9JJNdmOtkK0ShYYtMtuS39y/C6 BoLScxksNMEw== X-IronPort-AV: E=McAfee;i="6000,8403,9817"; a="168883426" X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="168883426" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:08:18 -0800 IronPort-SDR: d6qfg7PM2J5jq+l2jz4awfSZU2LalKfe1OqZxaTLU627g4+f98GBT6yRIBlCh8WBrxxgtV8WYN r2WgJfheua5w== X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="548028694" Received: from mjgleeso-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.251.85.2]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:08:16 -0800 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Subject: [RFC PATCH 028/162] drm/i915: Make ring submission compatible with obj->mm.lock removal, v2. Date: Fri, 27 Nov 2020 12:05:04 +0000 Message-Id: <20201127120718.454037-29-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201127120718.454037-1-matthew.auld@intel.com> References: <20201127120718.454037-1-matthew.auld@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , kernel test robot , dri-devel@lists.freedesktop.org, Dan Carpenter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KCldlIG1hcCB0aGUgaW5pdGlhbCBjb250ZXh0IGR1cmluZyBmaXJzdCBwaW4uCgpUaGlzIGFs bG93cyB1cyB0byByZW1vdmUgcGluX21hcCBmcm9tIHN0YXRlIGFsbG9jYXRpb24sIHdoaWNoIHNh dmVzCnVzIGEgZmV3IHJldHJ5IGxvb3BzLiBXZSB3b24ndCBuZWVkIHRoaXMgdW50aWwgZmlyc3Qg cGluIGFueXdheS4KCmludGVsX3Jpbmdfc3VibWlzc2lvbl9zZXR1cCgpIGlzIGFsc28gcmV3b3Jr ZWQgc2xpZ2h0bHkgdG8gZG8gYWxsCnBpbm5pbmcgaW4gYSBzaW5nbGUgd3cgbG9vcC4KClNpZ25l ZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+ClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KUmVw b3J0ZWQtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KQ2M6IFRo b21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KLS0tCiAu Li4vZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jICAgfCAxODQgKysrKysr KysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDY2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNz aW9uLmMKaW5kZXggYTQxYjQzZjQ0NWI4Li42YjI4MDkwNGRiNDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCkBAIC00NzgsNiArNDc4LDI2 IEBAIHN0YXRpYyB2b2lkIHJpbmdfY29udGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICpyZWYpCiAJ aW50ZWxfY29udGV4dF9mcmVlKGNlKTsKIH0KIAorc3RhdGljIGludCByaW5nX2NvbnRleHRfaW5p dF9kZWZhdWx0X3N0YXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJCQkJICAgc3RydWN0 IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IGNlLT5zdGF0ZS0+b2JqOworCXZvaWQgKnZhZGRyOworCisJdmFkZHIgPSBpOTE1X2dlbV9v YmplY3RfcGluX21hcChvYmosIEk5MTVfTUFQX1dCKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkKKwkJ cmV0dXJuIFBUUl9FUlIodmFkZHIpOworCisJc2htZW1fcmVhZChjZS0+ZW5naW5lLT5kZWZhdWx0 X3N0YXRlLCAwLAorCQkgICB2YWRkciwgY2UtPmVuZ2luZS0+Y29udGV4dF9zaXplKTsKKworCWk5 MTVfZ2VtX29iamVjdF9mbHVzaF9tYXAob2JqKTsKKwlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNl X21hcChvYmopOworCisJX19zZXRfYml0KENPTlRFWFRfVkFMSURfQklULCAmY2UtPmZsYWdzKTsK KwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCByaW5nX2NvbnRleHRfcHJlX3BpbihzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UsCiAJCQkJc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3csCiAJCQkJ dm9pZCAqKnVudXNlZCkKQEAgLTQ4NSw2ICs1MDUsMTMgQEAgc3RhdGljIGludCByaW5nX2NvbnRl eHRfcHJlX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm07CiAJaW50IGVyciA9IDA7CiAKKwlpZiAoY2UtPmVuZ2luZS0+ZGVmYXVsdF9z dGF0ZSAmJgorCSAgICAhdGVzdF9iaXQoQ09OVEVYVF9WQUxJRF9CSVQsICZjZS0+ZmxhZ3MpKSB7 CisJCWVyciA9IHJpbmdfY29udGV4dF9pbml0X2RlZmF1bHRfc3RhdGUoY2UsIHd3KTsKKwkJaWYg KGVycikKKwkJCXJldHVybiBlcnI7CisJfQorCiAJdm0gPSB2bV9hbGlhcyhjZS0+dm0pOwogCWlm ICh2bSkKIAkJZXJyID0gZ2VuNl9wcGd0dF9waW4oaTkxNV92bV90b19wcGd0dCgodm0pKSwgd3cp OwpAQCAtNTQwLDIyICs1NjcsNiBAQCBhbGxvY19jb250ZXh0X3ZtYShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiAJaWYgKElTX0lWWUJSSURHRShpOTE1KSkKIAkJaTkxNV9nZW1fb2Jq ZWN0X3NldF9jYWNoZV9jb2hlcmVuY3kob2JqLCBJOTE1X0NBQ0hFX0wzX0xMQyk7CiAKLQlpZiAo ZW5naW5lLT5kZWZhdWx0X3N0YXRlKSB7Ci0JCXZvaWQgKnZhZGRyOwotCi0JCXZhZGRyID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl9tYXAob2JqLCBJOTE1X01BUF9XQik7Ci0JCWlmIChJU19FUlIodmFk ZHIpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKLQkJCWdvdG8gZXJyX29iajsKLQkJfQot Ci0JCXNobWVtX3JlYWQoZW5naW5lLT5kZWZhdWx0X3N0YXRlLCAwLAotCQkJICAgdmFkZHIsIGVu Z2luZS0+Y29udGV4dF9zaXplKTsKLQotCQlpOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKG9iaik7 Ci0JCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbWFwKG9iaik7Ci0JfQotCiAJdm1hID0gaTkx NV92bWFfaW5zdGFuY2Uob2JqLCAmZW5naW5lLT5ndC0+Z2d0dC0+dm0sIE5VTEwpOwogCWlmIChJ U19FUlIodm1hKSkgewogCQllcnIgPSBQVFJfRVJSKHZtYSk7CkBAIC01ODcsOCArNTk4LDYgQEAg c3RhdGljIGludCByaW5nX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQog CQkJcmV0dXJuIFBUUl9FUlIodm1hKTsKIAogCQljZS0+c3RhdGUgPSB2bWE7Ci0JCWlmIChlbmdp bmUtPmRlZmF1bHRfc3RhdGUpCi0JCQlfX3NldF9iaXQoQ09OVEVYVF9WQUxJRF9CSVQsICZjZS0+ ZmxhZ3MpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTE4NCwzNyArMTE5MywxNSBAQCBzdGF0aWMg aW50IGdlbjdfY3R4X3N3aXRjaF9iYl9zZXR1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29u c3QgZW5naW5lLAogCXJldHVybiBnZW43X3NldHVwX2NsZWFyX2dwcl9iYihlbmdpbmUsIHZtYSk7 CiB9CiAKLXN0YXRpYyBpbnQgZ2VuN19jdHhfc3dpdGNoX2JiX2luaXQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQorc3RhdGljIGludCBnZW43X2N0eF9zd2l0Y2hfYmJfaW5pdChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAgc3RydWN0IGk5MTVfZ2VtX3d3X2N0 eCAqd3csCisJCQkJICAgc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlpbnQgc2l6ZTsKIAlp bnQgZXJyOwogCi0Jc2l6ZSA9IGdlbjdfY3R4X3N3aXRjaF9iYl9zZXR1cChlbmdpbmUsIE5VTEwg LyogcHJvYmUgc2l6ZSAqLyk7Ci0JaWYgKHNpemUgPD0gMCkKLQkJcmV0dXJuIHNpemU7Ci0KLQlz aXplID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpFKTsKLQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX2ludGVybmFsKGVuZ2luZS0+aTkxNSwgc2l6ZSk7Ci0JaWYgKElTX0VSUihvYmopKQotCQly ZXR1cm4gUFRSX0VSUihvYmopOwotCi0Jdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCBlbmdp bmUtPmd0LT52bSwgTlVMTCk7Ci0JaWYgKElTX0VSUih2bWEpKSB7Ci0JCWVyciA9IFBUUl9FUlIo dm1hKTsKLQkJZ290byBlcnJfb2JqOwotCX0KLQotCXZtYS0+cHJpdmF0ZSA9IGludGVsX2NvbnRl eHRfY3JlYXRlKGVuZ2luZSk7IC8qIGR1bW15IHJlc2lkdWFscyAqLwotCWlmIChJU19FUlIodm1h LT5wcml2YXRlKSkgewotCQllcnIgPSBQVFJfRVJSKHZtYS0+cHJpdmF0ZSk7Ci0JCWdvdG8gZXJy X29iajsKLQl9Ci0KLQllcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCAwLCBQSU5fVVNFUiB8IFBJ Tl9ISUdIKTsKKwllcnIgPSBpOTE1X3ZtYV9waW5fd3codm1hLCB3dywgMCwgMCwgUElOX1VTRVIg fCBQSU5fSElHSCk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfcHJpdmF0ZTsKKwkJcmV0dXJuIGVy cjsKIAogCWVyciA9IGk5MTVfdm1hX3N5bmModm1hKTsKIAlpZiAoZXJyKQpAQCAtMTIyOSwxNyAr MTIxNiw1MyBAQCBzdGF0aWMgaW50IGdlbjdfY3R4X3N3aXRjaF9iYl9pbml0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogZXJyX3VucGluOgogCWk5MTVfdm1hX3VucGluKHZtYSk7 Ci1lcnJfcHJpdmF0ZToKLQlpbnRlbF9jb250ZXh0X3B1dCh2bWEtPnByaXZhdGUpOwotZXJyX29i ajoKLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGlj IHN0cnVjdCBpOTE1X3ZtYSAqZ2VuN19jdHhfdm1hKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBpOTE1 X3ZtYSAqdm1hOworCWludCBzaXplLCBlcnI7CisKKwlpZiAoIUlTX0hBU1dFTEwoZW5naW5lLT5p OTE1KSB8fCBlbmdpbmUtPmNsYXNzICE9IFJFTkRFUl9DTEFTUykKKwkJcmV0dXJuIDA7CisKKwll cnIgPSBnZW43X2N0eF9zd2l0Y2hfYmJfc2V0dXAoZW5naW5lLCBOVUxMIC8qIHByb2JlIHNpemUg Ki8pOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCWlmICghZXJyKQor CQlyZXR1cm4gTlVMTDsKKworCXNpemUgPSBBTElHTihlcnIsIFBBR0VfU0laRSk7CisKKwlvYmog PSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGVuZ2luZS0+aTkxNSwgc2l6ZSk7CisJ aWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKKworCXZtYSA9IGk5MTVf dm1hX2luc3RhbmNlKG9iaiwgZW5naW5lLT5ndC0+dm0sIE5VTEwpOworCWlmIChJU19FUlIodm1h KSkgeworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJCXJldHVybiBFUlJfQ0FTVCh2bWEp OworCX0KKworCXZtYS0+cHJpdmF0ZSA9IGludGVsX2NvbnRleHRfY3JlYXRlKGVuZ2luZSk7IC8q IGR1bW15IHJlc2lkdWFscyAqLworCWlmIChJU19FUlIodm1hLT5wcml2YXRlKSkgeworCQllcnIg PSBQVFJfRVJSKHZtYS0+cHJpdmF0ZSk7CisJCXZtYS0+cHJpdmF0ZSA9IE5VTEw7CisJCWk5MTVf Z2VtX29iamVjdF9wdXQob2JqKTsKKwkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKwl9CisKKwlyZXR1 cm4gdm1hOworfQorCiBpbnQgaW50ZWxfcmluZ19zdWJtaXNzaW9uX3NldHVwKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKKwlzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4IHd3OwogCXN0 cnVjdCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmU7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7 CisJc3RydWN0IGk5MTVfdm1hICpnZW43X3dhX3ZtYTsKIAlpbnQgZXJyOwogCiAJc2V0dXBfY29t bW9uKGVuZ2luZSk7CkBAIC0xMjcwLDQzICsxMjkzLDcyIEBAIGludCBpbnRlbF9yaW5nX3N1Ym1p c3Npb25fc2V0dXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIAlHRU1fQlVH X09OKHRpbWVsaW5lLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKTsKIAotCWVyciA9IGludGVsX3Rp bWVsaW5lX3Bpbih0aW1lbGluZSwgTlVMTCk7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfdGltZWxp bmU7Ci0KIAlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGVuZ2luZSwgU1pfMTZLKTsK IAlpZiAoSVNfRVJSKHJpbmcpKSB7CiAJCWVyciA9IFBUUl9FUlIocmluZyk7Ci0JCWdvdG8gZXJy X3RpbWVsaW5lX3VucGluOworCQlnb3RvIGVycl90aW1lbGluZTsKIAl9CiAKLQllcnIgPSBpbnRl bF9yaW5nX3BpbihyaW5nLCBOVUxMKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9yaW5nOwotCiAJ R0VNX0JVR19PTihlbmdpbmUtPmxlZ2FjeS5yaW5nKTsKIAllbmdpbmUtPmxlZ2FjeS5yaW5nID0g cmluZzsKIAllbmdpbmUtPmxlZ2FjeS50aW1lbGluZSA9IHRpbWVsaW5lOwogCi0JR0VNX0JVR19P Tih0aW1lbGluZS0+aHdzcF9nZ3R0ICE9IGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKKwlnZW43 X3dhX3ZtYSA9IGdlbjdfY3R4X3ZtYShlbmdpbmUpOworCWlmIChJU19FUlIoZ2VuN193YV92bWEp KSB7CisJCWVyciA9IFBUUl9FUlIoZ2VuN193YV92bWEpOworCQlnb3RvIGVycl9yaW5nOworCX0K IAotCWlmIChJU19IQVNXRUxMKGVuZ2luZS0+aTkxNSkgJiYgZW5naW5lLT5jbGFzcyA9PSBSRU5E RVJfQ0xBU1MpIHsKLQkJZXJyID0gZ2VuN19jdHhfc3dpdGNoX2JiX2luaXQoZW5naW5lKTsKKwlp OTE1X2dlbV93d19jdHhfaW5pdCgmd3csIGZhbHNlKTsKKworcmV0cnk6CisJZXJyID0gaTkxNV9n ZW1fb2JqZWN0X2xvY2sodGltZWxpbmUtPmh3c3BfZ2d0dC0+b2JqLCAmd3cpOworCWlmICghZXJy ICYmIGdlbjdfd2Ffdm1hKQorCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfbG9jayhnZW43X3dhX3Zt YS0+b2JqLCAmd3cpOworCWlmICghZXJyICYmIGVuZ2luZS0+bGVnYWN5LnJpbmctPnZtYS0+b2Jq KQorCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfbG9jayhlbmdpbmUtPmxlZ2FjeS5yaW5nLT52bWEt Pm9iaiwgJnd3KTsKKwlpZiAoIWVycikKKwkJZXJyID0gaW50ZWxfdGltZWxpbmVfcGluKHRpbWVs aW5lLCAmd3cpOworCWlmICghZXJyKSB7CisJCWVyciA9IGludGVsX3JpbmdfcGluKHJpbmcsICZ3 dyk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIGVycl9yaW5nX3VucGluOworCQkJaW50ZWxfdGltZWxp bmVfdW5waW4odGltZWxpbmUpOwogCX0KKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCUdFTV9C VUdfT04odGltZWxpbmUtPmh3c3BfZ2d0dCAhPSBlbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7CisK KwlpZiAoZ2VuN193YV92bWEpIHsKKwkJZXJyID0gZ2VuN19jdHhfc3dpdGNoX2JiX2luaXQoZW5n aW5lLCAmd3csIGdlbjdfd2Ffdm1hKTsKKwkJaWYgKGVycikgeworCQkJaW50ZWxfcmluZ191bnBp bihyaW5nKTsKKwkJCWludGVsX3RpbWVsaW5lX3VucGluKHRpbWVsaW5lKTsKKwkJfQorCX0KKwor b3V0OgorCWlmIChlcnIgPT0gLUVERUFETEspIHsKKwkJZXJyID0gaTkxNV9nZW1fd3dfY3R4X2Jh Y2tvZmYoJnd3KTsKKwkJaWYgKCFlcnIpCisJCQlnb3RvIHJldHJ5OworCX0KKwlpOTE1X2dlbV93 d19jdHhfZmluaSgmd3cpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX2dlbjdfcHV0OwogCiAJLyog RmluYWxseSwgdGFrZSBvd25lcnNoaXAgYW5kIHJlc3BvbnNpYmlsaXR5IGZvciBjbGVhbnVwISAq LwogCWVuZ2luZS0+cmVsZWFzZSA9IHJpbmdfcmVsZWFzZTsKIAogCXJldHVybiAwOwogCi1lcnJf cmluZ191bnBpbjoKLQlpbnRlbF9yaW5nX3VucGluKHJpbmcpOworZXJyX2dlbjdfcHV0OgorCWlm IChnZW43X3dhX3ZtYSkgeworCQlpbnRlbF9jb250ZXh0X3B1dChnZW43X3dhX3ZtYS0+cHJpdmF0 ZSk7CisJCWk5MTVfZ2VtX29iamVjdF9wdXQoZ2VuN193YV92bWEtPm9iaik7CisJfQogZXJyX3Jp bmc6CiAJaW50ZWxfcmluZ19wdXQocmluZyk7Ci1lcnJfdGltZWxpbmVfdW5waW46Ci0JaW50ZWxf dGltZWxpbmVfdW5waW4odGltZWxpbmUpOwogZXJyX3RpbWVsaW5lOgogCWludGVsX3RpbWVsaW5l X3B1dCh0aW1lbGluZSk7CiBlcnI6Ci0tIAoyLjI2LjIKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=