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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 AEC8FC433B4 for ; Mon, 12 Apr 2021 13:19:07 +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 7360C6134F for ; Mon, 12 Apr 2021 13:19:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7360C6134F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 DAE806E58A; Mon, 12 Apr 2021 13:19:06 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8886A6E57E for ; Mon, 12 Apr 2021 13:19:05 +0000 (UTC) IronPort-SDR: j1mAB6MH7P/sLhgg3is7Hato9IXy5MODoXgMdJ9vDv2gIDMujn9MLhOEylODNxTjpuZ/6yct5p 4TOhh898p7uQ== X-IronPort-AV: E=McAfee;i="6000,8403,9952"; a="258163411" X-IronPort-AV: E=Sophos;i="5.82,216,1613462400"; d="scan'208";a="258163411" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2021 06:18:12 -0700 IronPort-SDR: KcqL35a5k8WpW69eO2AkZTn2C0Df6VNN1VaxmBsLhJSqTKkh9RvwIMizUrFgIv2S/Kc6771uSX 5pnH8SWVkymg== X-IronPort-AV: E=Sophos;i="5.82,216,1613462400"; d="scan'208";a="449981633" Received: from sarveshw-mobl.gar.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.205]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2021 06:18:10 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: dri-devel@lists.freedesktop.org Subject: [RFC PATCH] drm/ttm: Simplify the delayed destroy locking Date: Mon, 12 Apr 2021 15:17:40 +0200 Message-Id: <20210412131740.10257-1-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.30.2 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?= , =?UTF-8?q?Christian=20K=C3=B6nig?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBSRkMgbmVlZHMgc29tZSBkZWNlbnQgdGVzdGluZyBvbiBhIGRyaXZlciB3aXRoIGJvcyB0 aGF0IHNoYXJlCnJlc2VydmF0aW9uIG9iamVjdHMsIGFuZCBvZiBjb3Vyc2UgYSBjaGVjayBmb3Ig d2hldGhlciBJIG1pc3NlZApzb21ldGhpbmcgb2J2aW91cy4KClRoZSBsb2NraW5nIGFyb3VuZCBk ZWxheWVkIGRlc3Ryb3kgaXMgcmF0aGVyIGNvbXBsZXggZHVlIHRvIHRoZSBmYWN0CnRoYXQgd2Ug d2FudCB0byBpbmRpdmlkdWFsaXplIGRtYV9yZXN2IHBvaW50ZXJzIGJlZm9yZSBwdXR0aW5nIHRo ZSBvYmplY3QKb24gdGhlIGRlbGF5ZWQtZGVzdHJveSBsaXN0LiBUaGF0IGluZGl2aWR1YWxpemF0 aW9uIGlzIGN1cnJlbnRseSBwcm90ZWN0ZWQKYnkgdGhlIGxydSBsb2NrIGZvcmNpbmcgdXMgdG8g ZG8gdHJ5LXJlc2VydmF0aW9ucyB1bmRlciB0aGUgbHJ1IGxvY2sgd2hlbgpyZXNlcnZpbmcgYW4g b2JqZWN0IGZyb20gdGhlIGxydS0gb3IgZGRlc3Ryb3kgbGlzdHMsIHdoaWNoIGNvbXBsaWNhdGVz Cm1vdmluZyBvdmVyIHRvIHBlci1tYW5hZ2VyIGxydSBsb2Nrcy4KCkluc3RlYWQgcHJvdGVjdCB0 aGUgaW5kaXZpZHVhbGl6YXRpb24gd2l0aCB0aGUgb2JqZWN0IGtyZWYgPT0gMCwKYW5kIGVuc3Vy ZSBrcmVmICE9IDAgYmVmb3JlIHRyeWluZyB0byByZXNlcnZlIGFuIG9iamVjdCBmcm9tIHRoZSBs aXN0LgpSZW1vdmUgdGhlIGxydSBsb2NrIGFyb3VuZCBpbmRpdmlkdWFsaXphdGlvbiBhbmQgcHJv dGVjdCB0aGUgZGVsYXllZApkZXN0cm95IGxpc3Qgd2l0aCBhIHNlcGFyYXRlIHNwaW5sb2NrLiBJ c29sYXRlIHRoZSBkZWxheWVkIGRlc3Ryb3kgbGlzdApzaW1pbGFybHkgdG8gYSBsb2NrbGVzcyBs aXN0IGJlZm9yZSB0cmF2ZXJzaW5nIGl0LiBBbHNvIGRvbid0IHRyeSB0byBkcm9wCnJlc291cmNl IHJlZmVyZW5jZXMgZnJvbSB0aGUgZGVsYXllZCBkZXN0cm95IGxpc3QgdHJhdmVyc2FsLCBidXQg bGVhdmUKdGhhdCB0byB0aGUgZmluYWwgb2JqZWN0IHJlbGVhc2UuIFRoZSByb2xlIG9mIHRoZSBk ZWxheWVkIGRlc3Ryb3kgdGhyZWFkCndpbGwgbm93IHNpbXBseSBiZSB0byB0cnkgdG8gaWRsZSB0 aGUgb2JqZWN0IGFuZCB3aGVuIGlkbGUsIGRyb3AKdGhlIGRlbGF5ZWQgZGVzdG95IHJlZmVyZW5j ZS4KClRoaXMgc2hvdWxkIHBhdmUgdGhlIHdheSBmb3IgcGVyLW1hbmFnZXIgbHJ1IGxpc3RzLCBz bGVlcGluZyBldmljdGlvbiBsb2Nrcwp0aGF0IGFyZSBrZXB0LCBvcHRpb25hbCBkcm1fbW0gZXZp Y3Rpb24gcm9zdGVyIHVzYWdlIGFuZCBtb3Zpbmcgb3ZlciB0byBhCmNvbXBsZXRlbHkgbG9ja2xl c3MgZGVsYXllZCBkZXN0cm95IGxpc3QgZXZlbiBpZiB0aGUgdHJhdmVyc2FsIG9yZGVyCndpbGwg dGhlbiBjaGFuZ2UgYmVjYXVzZSB0aGVyZSBpcyBubyBsbGlzdF9hZGRfdGFpbCgpLgoKQ2M6IENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRo b21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMgICAgIHwgMTkzICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jIHwgICAxICsKIGluY2x1ZGUvZHJtL3R0bS90dG1f ZGV2aWNlLmggICAgIHwgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwg MTEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IDZhYjdiNjZjZTM2ZC4uZmQ1 NzI1MmJjOGZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTIxNyw2ICsyMTcsOSBAQCBzdGF0aWMg aW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK IAogc3RhdGljIHZvaWQgdHRtX2JvX2NsZWFudXBfbWVtdHlwZV91c2Uoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibykKIHsKKwlpZiAoa3JlZl9yZWFkKCZiby0+a3JlZikpCisJCWRtYV9yZXN2 X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOworCiAJaWYgKGJvLT5iZGV2LT5mdW5jcy0+ZGVs ZXRlX21lbV9ub3RpZnkpCiAJCWJvLT5iZGV2LT5mdW5jcy0+ZGVsZXRlX21lbV9ub3RpZnkoYm8p OwogCkBAIC0yMzksMTMgKzI0MiwxOCBAQCBzdGF0aWMgaW50IHR0bV9ib19pbmRpdmlkdWFsaXpl X3Jlc3Yoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAkJcmV0dXJuIHI7CiAKIAlpZiAo Ym8tPnR5cGUgIT0gdHRtX2JvX3R5cGVfc2cpIHsKLQkJLyogVGhpcyB3b3JrcyBiZWNhdXNlIHRo ZSBCTyBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQgYW5kIG5vYm9keQotCQkgKiByZWZlcmVuY2Ug aXQgYW55IG1vcmUuIFRoZSBvbmx5IHRyaWNreSBjYXNlIGlzIHRoZSB0cnlsb2NrIG9uCi0JCSAq IHRoZSByZXN2IG9iamVjdCB3aGlsZSBob2xkaW5nIHRoZSBscnVfbG9jay4KKwkJLyoKKwkJICog VGhpcyB3b3JrcyBiZWNhdXNlIG5vYm9keSBiZXNpZGVzIHVzIGNhbiBsb2NrIHRoZSBibyBvcgor CQkgKiBhc3N1bWUgaXQgaXMgbG9ja2VkIHdoaWxlIGl0cyByZWZjb3VudCBpcyB6ZXJvLgogCQkg Ki8KLQkJc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOworCQlXQVJOX09OX09OQ0Uoa3Jl Zl9yZWFkKCZiby0+a3JlZikpOwogCQliby0+YmFzZS5yZXN2ID0gJmJvLT5iYXNlLl9yZXN2Owot CQlzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKKwkJLyoKKwkJICogRG9uJ3QgcmVv cmRlciBhZ2FpbnN0IGtyZWZfaW5pdCgpLgorCQkgKiBNYXRjaGVzIHRoZSBpbXBsaWNpdCBmdWxs IGJhcnJpZXIgb2YgYSBzdWNjZXNzZnVsCisJCSAqIGtyZWZfZ2V0X3VubGVzc196ZXJvKCkgYWZ0 ZXIgYSBscnVfbGlzdF9sb29rdXAuCisJCSAqLworCQlzbXBfbWIoKTsKIAl9CiAKIAlyZXR1cm4g cjsKQEAgLTI3NCwxMjIgKzI4Miw2NiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fZmx1c2hfYWxsX2Zl bmNlcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogfQogCiAvKioKLSAqIGZ1bmN0aW9u IHR0bV9ib19jbGVhbnVwX3JlZnMKLSAqIElmIGJvIGlkbGUsIHJlbW92ZSBmcm9tIGxydSBsaXN0 cywgYW5kIHVucmVmLgotICogSWYgbm90IGlkbGUsIGJsb2NrIGlmIHBvc3NpYmxlLgotICoKLSAq IE11c3QgYmUgY2FsbGVkIHdpdGggbHJ1X2xvY2sgYW5kIHJlc2VydmF0aW9uIGhlbGQsIHRoaXMg ZnVuY3Rpb24KLSAqIHdpbGwgZHJvcCB0aGUgbHJ1IGxvY2sgYW5kIG9wdGlvbmFsbHkgdGhlIHJl c2VydmF0aW9uIGxvY2sgYmVmb3JlIHJldHVybmluZy4KKyAqIHR0bV9ib19jbGVhbnVwX3JlZnMg LSBpZGxlIGFuZCByZW1vdmUgcGFnZXMgYW5kIGdwdS1iaW5kaW5ncyBhbmQgcmVtb3ZlCisgKiBm cm9tIGxydV9saXN0cy4KICAqCiAgKiBAYm86ICAgICAgICAgICAgICAgICAgICBUaGUgYnVmZmVy IG9iamVjdCB0byBjbGVhbi11cAogICogQGludGVycnVwdGlibGU6ICAgICAgICAgQW55IHNsZWVw cyBzaG91bGQgb2NjdXIgaW50ZXJydXB0aWJseS4KLSAqIEBub193YWl0X2dwdTogICAgICAgICAg IE5ldmVyIHdhaXQgZm9yIGdwdS4gUmV0dXJuIC1FQlVTWSBpbnN0ZWFkLgotICogQHVubG9ja19y ZXN2OiAgICAgICAgICAgVW5sb2NrIHRoZSByZXNlcnZhdGlvbiBsb2NrIGFzIHdlbGwuCisgKiBA bm9fd2FpdF9ncHU6ICAgICAgICAgICBOZXZlciB3YWl0IGZvciBncHUuIFJldHVybiAtRUJVU1kg aWYgbm90IGlkbGUuCiAgKi8KLQogc3RhdGljIGludCB0dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkgICAgICAgYm9vbCBpbnRlcnJ1cHRpYmxlLCBi b29sIG5vX3dhaXRfZ3B1LAotCQkJICAgICAgIGJvb2wgdW5sb2NrX3Jlc3YpCisJCQkgICAgICAg Ym9vbCBpbnRlcnJ1cHRpYmxlLCBib29sIG5vX3dhaXRfZ3B1KQogewotCXN0cnVjdCBkbWFfcmVz diAqcmVzdiA9ICZiby0+YmFzZS5fcmVzdjsKIAlpbnQgcmV0OwogCi0JaWYgKGRtYV9yZXN2X3Rl c3Rfc2lnbmFsZWRfcmN1KHJlc3YsIHRydWUpKQotCQlyZXQgPSAwOwotCWVsc2UKLQkJcmV0ID0g LUVCVVNZOwotCi0JaWYgKHJldCAmJiAhbm9fd2FpdF9ncHUpIHsKLQkJbG9uZyBscmV0OwotCi0J CWlmICh1bmxvY2tfcmVzdikKLQkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKLQkJ c3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Ci0KLQkJbHJldCA9IGRtYV9yZXN2X3dh aXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgaW50ZXJydXB0aWJsZSwKLQkJCQkJCSAzMCAqIEha KTsKLQotCQlpZiAobHJldCA8IDApCi0JCQlyZXR1cm4gbHJldDsKLQkJZWxzZSBpZiAobHJldCA9 PSAwKQotCQkJcmV0dXJuIC1FQlVTWTsKLQotCQlzcGluX2xvY2soJmJvLT5iZGV2LT5scnVfbG9j ayk7Ci0JCWlmICh1bmxvY2tfcmVzdiAmJiAhZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2 KSkgewotCQkJLyoKLQkJCSAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29tZW9uZSBlbHNlIGhvbGRz IHRoZSByZXNlcnZhdGlvbiBub3csCi0JCQkgKiBhbmQgaXMgcHJvYmFibHkgYnVzeSBpbiB0dG1f Ym9fY2xlYW51cF9tZW10eXBlX3VzZS4KLQkJCSAqCi0JCQkgKiBFdmVuIGlmIGl0J3Mgbm90IHRo ZSBjYXNlLCBiZWNhdXNlIHdlIGZpbmlzaGVkIHdhaXRpbmcgYW55Ci0JCQkgKiBkZWxheWVkIGRl c3RydWN0aW9uIHdvdWxkIHN1Y2NlZWQsIHNvIGp1c3QgcmV0dXJuIHN1Y2Nlc3MKLQkJCSAqIGhl cmUuCi0JCQkgKi8KLQkJCXNwaW5fdW5sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwotCQkJcmV0 dXJuIDA7Ci0JCX0KLQkJcmV0ID0gMDsKLQl9Ci0KLQlpZiAocmV0IHx8IHVubGlrZWx5KGxpc3Rf ZW1wdHkoJmJvLT5kZGVzdHJveSkpKSB7Ci0JCWlmICh1bmxvY2tfcmVzdikKLQkJCWRtYV9yZXN2 X3VubG9jayhiby0+YmFzZS5yZXN2KTsKLQkJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9j ayk7CisJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7CisJV0FSTl9PTl9PTkNF KCFiby0+ZGVsZXRlZCk7CisJcmV0ID0gdHRtX2JvX3dhaXQoYm8sIGludGVycnVwdGlibGUsIG5v X3dhaXRfZ3B1KTsKKwlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwotCX0KIAorCXR0bV9ib19jbGVh bnVwX21lbXR5cGVfdXNlKGJvKTsKKwlzcGluX2xvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7CiAJ dHRtX2JvX2RlbF9mcm9tX2xydShibyk7Ci0JbGlzdF9kZWxfaW5pdCgmYm8tPmRkZXN0cm95KTsK IAlzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKLQl0dG1fYm9fY2xlYW51cF9tZW10 eXBlX3VzZShibyk7Ci0KLQlpZiAodW5sb2NrX3Jlc3YpCi0JCWRtYV9yZXN2X3VubG9jayhiby0+ YmFzZS5yZXN2KTsKLQotCXR0bV9ib19wdXQoYm8pOwogCiAJcmV0dXJuIDA7CiB9CiAKIC8qCi0g KiBUcmF2ZXJzZSB0aGUgZGVsYXllZCBsaXN0LCBhbmQgY2FsbCB0dG1fYm9fY2xlYW51cF9yZWZz IG9uIGFsbAotICogZW5jb3VudGVyZWQgYnVmZmVycy4KKyAqIElzb2xhdGUgYSBwYXJ0IG9mIHRo ZSBkZWxheWVkIGRlc3Ryb3kgbGlzdCBhbmQgY2hlY2sgZm9yIGlkbGUgb24gYWxsCisgKiBidWZm ZXIgb2JqZWN0cyBvbiBpdC4gSWYgaWRsZSwgcmVtb3ZlIGZyb20gdGhlIGxpc3QgYW5kIGRyb3Ag dGhlCisgKiBkZWxheWVkIGRlc3Ryb3kgcmVmY291bnQuIFJldHVybiBhbGwgYnVzeSBidWZmZXJz IHRvIHRoZSBkZWxheWVkCisgKiBkZXN0cm95IGxpc3QuCiAgKi8KIGJvb2wgdHRtX2JvX2RlbGF5 ZWRfZGVsZXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBib29sIHJlbW92ZV9hbGwpCiB7Ci0J c3RydWN0IGxpc3RfaGVhZCByZW1vdmVkOwotCWJvb2wgZW1wdHk7Ci0KLQlJTklUX0xJU1RfSEVB RCgmcmVtb3ZlZCk7Ci0KLQlzcGluX2xvY2soJmJkZXYtPmxydV9sb2NrKTsKLQl3aGlsZSAoIWxp c3RfZW1wdHkoJmJkZXYtPmRkZXN0cm95KSkgewotCQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvOwotCi0JCWJvID0gbGlzdF9maXJzdF9lbnRyeSgmYmRldi0+ZGRlc3Ryb3ksIHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCwKLQkJCQkgICAgICBkZGVzdHJveSk7Ci0JCWxpc3RfbW92ZV90YWls KCZiby0+ZGRlc3Ryb3ksICZyZW1vdmVkKTsKLQkJaWYgKCF0dG1fYm9fZ2V0X3VubGVzc196ZXJv KGJvKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChyZW1vdmVfYWxsIHx8IGJvLT5iYXNlLnJlc3Yg IT0gJmJvLT5iYXNlLl9yZXN2KSB7Ci0JCQlzcGluX3VubG9jaygmYmRldi0+bHJ1X2xvY2spOwot CQkJZG1hX3Jlc3ZfbG9jayhiby0+YmFzZS5yZXN2LCBOVUxMKTsKLQotCQkJc3Bpbl9sb2NrKCZi ZGV2LT5scnVfbG9jayk7Ci0JCQl0dG1fYm9fY2xlYW51cF9yZWZzKGJvLCBmYWxzZSwgIXJlbW92 ZV9hbGwsIHRydWUpOwotCi0JCX0gZWxzZSBpZiAoZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5y ZXN2KSkgewotCQkJdHRtX2JvX2NsZWFudXBfcmVmcyhibywgZmFsc2UsICFyZW1vdmVfYWxsLCB0 cnVlKTsKLQkJfSBlbHNlIHsKLQkJCXNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9jayk7CisJc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgKm5leHQ7CisJc3RydWN0IGxpc3RfaGVhZCBpc29s YXRlZDsKKwlib29sIGVtcHR5LCBpZGxlOworCisJSU5JVF9MSVNUX0hFQUQoJmlzb2xhdGVkKTsK KworCXNwaW5fbG9jaygmYmRldi0+ZGRlc3Ryb3lfbG9jayk7CisJbGlzdF9zcGxpY2VfaW5pdCgm YmRldi0+ZGRlc3Ryb3ksICZpc29sYXRlZCk7CisJc3Bpbl91bmxvY2soJmJkZXYtPmRkZXN0cm95 X2xvY2spOworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibywgbmV4dCwgJmlzb2xhdGVkLCBk ZGVzdHJveSkgeworCQlXQVJOX09OX09OQ0UoIWtyZWZfcmVhZCgmYm8tPmtyZWYpIHx8CisJCQkg ICAgIGJvLT5iYXNlLnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KTsKKwkJaWYgKCFyZW1vdmVfYWxs KQorCQkJaWRsZSA9IGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1KGJvLT5iYXNlLnJlc3YsIHRy dWUpOworCQllbHNlCisJCQlpZGxlID0gKGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3UoYm8tPmJh c2UucmVzdiwgdHJ1ZSwKKwkJCQkJCQkgIGZhbHNlLCAzMCAqIEhaKSA+IDApOworCQlpZiAoaWRs ZSkgeworCQkJbGlzdF9kZWxfaW5pdCgmYm8tPmRkZXN0cm95KTsKKwkJCXR0bV9ib19wdXQoYm8p OwogCQl9Ci0KLQkJdHRtX2JvX3B1dChibyk7Ci0JCXNwaW5fbG9jaygmYmRldi0+bHJ1X2xvY2sp OwogCX0KLQlsaXN0X3NwbGljZV90YWlsKCZyZW1vdmVkLCAmYmRldi0+ZGRlc3Ryb3kpOworCXNw aW5fbG9jaygmYmRldi0+ZGRlc3Ryb3lfbG9jayk7CisJbGlzdF9zcGxpY2UoJmlzb2xhdGVkLCAm YmRldi0+ZGRlc3Ryb3kpOwogCWVtcHR5ID0gbGlzdF9lbXB0eSgmYmRldi0+ZGRlc3Ryb3kpOwot CXNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9jayk7CisJc3Bpbl91bmxvY2soJmJkZXYtPmRkZXN0 cm95X2xvY2spOwogCiAJcmV0dXJuIGVtcHR5OwogfQpAQCAtNDA1LDEwICszNTcsMTYgQEAgc3Rh dGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJCXJldCA9IHR0bV9i b19pbmRpdmlkdWFsaXplX3Jlc3YoYm8pOwogCQlpZiAocmV0KSB7CiAJCQkvKiBMYXN0IHJlc29y dCwgaWYgd2UgZmFpbCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZQotCQkJICogZmVuY2VzIGJs b2NrIGZvciB0aGUgQk8gdG8gYmVjb21lIGlkbGUKKwkJCSAqIGZlbmNlcyBibG9jayBmb3IgdGhl IEJPIHRvIGJlY29tZSBpZGxlLCBhbmQgdGhlbgorCQkJICogd2UgYXJlIGZyZWUgdG8gdXBkYXRl IHRoZSByZXN2IHBvaW50ZXIuCiAJCQkgKi8KIAkJCWRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uo Ym8tPmJhc2UucmVzdiwgdHJ1ZSwgZmFsc2UsCiAJCQkJCQkgIDMwICogSFopOworCQkJaWYgKGJv LT50eXBlICE9IHR0bV9ib190eXBlX3NnKSB7CisJCQkJYm8tPmJhc2UucmVzdiA9ICZiby0+YmFz ZS5fcmVzdjsKKwkJCQkvKiBQbGVhc2Ugc2VlIHR0bV9ib19pbmRpdmlkdWFsaXplX3Jlc3YoKSAq LworCQkJCXNtcF9tYigpOworCQkJfQogCQl9CiAKIAkJaWYgKGJvLT5iZGV2LT5mdW5jcy0+cmVs ZWFzZV9ub3RpZnkpCkBAIC00MjIsOSArMzgwLDggQEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVh c2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJICAgICFkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJl c3YpKSB7CiAJCS8qIFRoZSBCTyBpcyBub3QgaWRsZSwgcmVzdXJyZWN0IGl0IGZvciBkZWxheWVk IGRlc3Ryb3kgKi8KIAkJdHRtX2JvX2ZsdXNoX2FsbF9mZW5jZXMoYm8pOwotCQliby0+ZGVsZXRl ZCA9IHRydWU7Ci0KIAkJc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOworCQliby0+ZGVs ZXRlZCA9IHRydWU7CiAKIAkJLyoKIAkJICogTWFrZSBwaW5uZWQgYm9zIGltbWVkaWF0ZWx5IGF2 YWlsYWJsZSB0bwpAQCAtNDM5LDggKzM5NiwxMCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFz ZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8t Pm1lbSwgTlVMTCk7CiAJCX0KIAorCQlzcGluX2xvY2soJmJvLT5iZGV2LT5kZGVzdHJveV9sb2Nr KTsKIAkJa3JlZl9pbml0KCZiby0+a3JlZik7CiAJCWxpc3RfYWRkX3RhaWwoJmJvLT5kZGVzdHJv eSwgJmJkZXYtPmRkZXN0cm95KTsKKwkJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5kZGVzdHJveV9s b2NrKTsKIAkJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7CiAKIAkJc2NoZWR1bGVf ZGVsYXllZF93b3JrKCZiZGV2LT53cSwKQEAgLTQ1MCw5ICs0MDksMTEgQEAgc3RhdGljIHZvaWQg dHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAKIAlzcGluX2xvY2soJmJvLT5iZGV2 LT5scnVfbG9jayk7CiAJdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Ci0JbGlzdF9kZWwoJmJvLT5k ZGVzdHJveSk7CiAJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7CiAKKwlwcl9pbmZv KCJEZWxldGluZy5cbiIpOworCVdBUk5fT05fT05DRSghbGlzdF9lbXB0eV9jYXJlZnVsKCZiby0+ ZGRlc3Ryb3kpKTsKKwogCXR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKGJvKTsKIAlkbWFfcmVz dl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAKQEAgLTYzMCwyNSArNTkxLDI2IEBAIGludCB0dG1f bWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAogCQlsaXN0X2Zvcl9lYWNo X2VudHJ5KGJvLCAmbWFuLT5scnVbaV0sIGxydSkgewogCQkJYm9vbCBidXN5OwogCisJCQlpZiAo IXR0bV9ib19nZXRfdW5sZXNzX3plcm8oYm8pKQorCQkJCWNvbnRpbnVlOworCiAJCQlpZiAoIXR0 bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAmbG9ja2VkLAogCQkJCQkJCSAg ICAmYnVzeSkpIHsKIAkJCQlpZiAoYnVzeSAmJiAhYnVzeV9ibyAmJiB0aWNrZXQgIT0KIAkJCQkg ICAgZG1hX3Jlc3ZfbG9ja2luZ19jdHgoYm8tPmJhc2UucmVzdikpCiAJCQkJCWJ1c3lfYm8gPSBi bzsKKwkJCQl0dG1fYm9fcHV0KGJvKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAogCQkJaWYgKHBs YWNlICYmICFiZGV2LT5mdW5jcy0+ZXZpY3Rpb25fdmFsdWFibGUoYm8sCiAJCQkJCQkJCSAgICAg IHBsYWNlKSkgeworCQkJCXR0bV9ib19wdXQoYm8pOwogCQkJCWlmIChsb2NrZWQpCiAJCQkJCWRt YV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlm ICghdHRtX2JvX2dldF91bmxlc3NfemVybyhibykpIHsKLQkJCQlpZiAobG9ja2VkKQotCQkJCQlk bWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7Ci0JCQkJY29udGludWU7Ci0JCQl9CisKIAkJ CWJyZWFrOwogCQl9CiAKQEAgLTY3MCw4ICs2MzIsMTEgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmly c3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCiAJfQogCiAJaWYgKGJvLT5kZWxldGVkKSB7CisJ CXNwaW5fdW5sb2NrKCZiZGV2LT5scnVfbG9jayk7CiAJCXJldCA9IHR0bV9ib19jbGVhbnVwX3Jl ZnMoYm8sIGN0eC0+aW50ZXJydXB0aWJsZSwKLQkJCQkJICBjdHgtPm5vX3dhaXRfZ3B1LCBsb2Nr ZWQpOworCQkJCQkgIGN0eC0+bm9fd2FpdF9ncHUpOworCQlpZiAobG9ja2VkKQorCQkJZG1hX3Jl c3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCQl0dG1fYm9fcHV0KGJvKTsKIAkJcmV0dXJuIHJl dDsKIAl9CkBAIC0xMTY4LDE3ICsxMTMzLDE5IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKIAli b29sIGxvY2tlZDsKIAlpbnQgcmV0OwogCi0JaWYgKCF0dG1fYm9fZXZpY3Rfc3dhcG91dF9hbGxv d2FibGUoYm8sIGN0eCwgJmxvY2tlZCwgTlVMTCkpCisJaWYgKCF0dG1fYm9fZ2V0X3VubGVzc196 ZXJvKGJvKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlmICghdHRtX2JvX2dldF91bmxlc3NfemVy byhibykpIHsKLQkJaWYgKGxvY2tlZCkKLQkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2 KTsKKwlpZiAoIXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAmbG9ja2Vk LCBOVUxMKSkgeworCQl0dG1fYm9fcHV0KGJvKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKIAlp ZiAoYm8tPmRlbGV0ZWQpIHsKLQkJdHRtX2JvX2NsZWFudXBfcmVmcyhibywgZmFsc2UsIGZhbHNl LCBsb2NrZWQpOworCQlzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKKwkJdHRtX2Jv X2NsZWFudXBfcmVmcyhibywgZmFsc2UsIGZhbHNlKTsKKwkJaWYgKGxvY2tlZCkKKwkJCWRtYV9y ZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAkJdHRtX2JvX3B1dChibyk7CiAJCXJldHVybiAw OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKaW5kZXggOWI3ODdiM2NhZWI1Li5iOTQxOTg5 ODg1ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCkBAIC0yMjgsNiArMjI4LDcgQEAgaW50 IHR0bV9kZXZpY2VfaW5pdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9kZXZp Y2VfZnVuY3MgKmZ1bmNzLAogCWJkZXYtPnZtYV9tYW5hZ2VyID0gdm1hX21hbmFnZXI7CiAJSU5J VF9ERUxBWUVEX1dPUksoJmJkZXYtPndxLCB0dG1fZGV2aWNlX2RlbGF5ZWRfd29ya3F1ZXVlKTsK IAlzcGluX2xvY2tfaW5pdCgmYmRldi0+bHJ1X2xvY2spOworCXNwaW5fbG9ja19pbml0KCZiZGV2 LT5kZGVzdHJveV9sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmYmRldi0+ZGRlc3Ryb3kpOwogCWJk ZXYtPmRldl9tYXBwaW5nID0gbWFwcGluZzsKIAltdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4 KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmggYi9pbmNsdWRlL2Ry bS90dG0vdHRtX2RldmljZS5oCmluZGV4IDdjOGY4N2JkNTJkMy4uZmE4YzRmNmExNjllIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCisrKyBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fZGV2aWNlLmgKQEAgLTI3OSw2ICsyNzksNyBAQCBzdHJ1Y3QgdHRtX2RldmljZSB7CiAJ ICogUHJvdGVjdGlvbiBmb3IgdGhlIHBlciBtYW5hZ2VyIExSVSBhbmQgZGRlc3Ryb3kgbGlzdHMu CiAJICovCiAJc3BpbmxvY2tfdCBscnVfbG9jazsKKwlzcGlubG9ja190IGRkZXN0cm95X2xvY2s7 CiAJc3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKIAogCS8qCi0tIAoyLjMwLjIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=