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,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 973F3C11F65 for ; Wed, 30 Jun 2021 13:07:26 +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 55C6A61468 for ; Wed, 30 Jun 2021 13:07:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 55C6A61468 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=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C1DCB6E147; Wed, 30 Jun 2021 13:07:20 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B6FC6E105; Wed, 30 Jun 2021 13:07:19 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10030"; a="195634525" X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="195634525" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2021 06:07:19 -0700 X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="558290333" Received: from vanderss-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.133]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2021 06:07:17 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Wed, 30 Jun 2021 15:07:00 +0200 Message-Id: <20210630130701.349458-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210630130701.349458-1-thomas.hellstrom@linux.intel.com> References: <20210630130701.349458-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/2] drm/i915/gem: Make our dma-buf exporter dynamic X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SWYgb3VyIGV4cG9ydGVkIGRtYS1idWZzIGFyZSBpbXBvcnRlZCBieSBhbm90aGVyIGluc3RhbmNl IG9mIG91ciBkcml2ZXIsCnRoYXQgaW5zdGFuY2Ugd2lsbCB0eXBpY2FsbHkgaGF2ZSB0aGUgaW1w b3J0ZWQgZG1hLWJ1ZnMgbG9ja2VkIGR1cmluZwpkbWFfYnVmX21hcF9hdHRhY2htZW50KCkuIEJ1 dCB0aGUgZXhwb3J0ZXIgYWxzbyBsb2NrcyB0aGUgc2FtZSByZXNlcnZhdGlvbgpvYmplY3QgaW4g dGhlIG1hcF9kbWFfYnVmKCkgY2FsbGJhY2ssIHdoaWNoIGxlYWRzIHRvIHJlY3Vyc2l2ZSBsb2Nr aW5nLgoKQWRkIGEgbGl2ZSBzZWxmdGVzdCB0byBleGVyY2lzZSBib3RoIGR5bmFtaWMgYW5kIG5v bi1keW5hbWljIGV4cG9ydHMsCmFuZCBhcyBhIHdvcmthcm91bmQgdW50aWwgd2UgZnVsbHkgc3Vw cG9ydCBkeW5hbWljIGltcG9ydCBhbmQgZXhwb3J0LApkZWNsYXJlIHRoZSBleHBvcnRlciBkeW5h bWljIGJ5IHByb3ZpZGluZyBwaW4oKSBhbmQgdW5waW4oKSBpbXBsZW1lbnRhdGlvbnMuCkZvciBk eW5hbWljIGltcG9ydGVycywgbWFrZSBzdXJlIHdlIGtlZXAgdGhlIHBpbm5pbmcgYWxzbyBpbiBt YXBfZG1hX2J1ZigpLAp0byBlbnN1cmUgd2UgbmV2ZXIgbmVlZCB0byBjYWxsIGRtYV9idWZfbW92 ZV9ub3RpZnkoKS4KQ2FsbGluZyBkbWFfYnVmX21vdmVfbm90aWZ5KCkgaXMgYXQgdGhlIGRpc2Ny ZXRpb24gb2YgdGhlIGV4cG9ydGVyLgoKdjI6Ci0gRXh0ZW5kIHRoZSBzZWxmdGVzdCB3aXRoIGEg ZmFrZSBkeW5hbWljIGltcG9ydGVyLgotIFByb3ZpZGUgcmVhbCBwaW4gYW5kIHVucGluIGNhbGxi YWNrcyB0byBub3QgYWJ1c2UgdGhlIGludGVyZmFjZS4KClJlcG9ydGVkLWJ5OiBNaWNoYWVsIEou IFJ1aGwgPG1pY2hhZWwuai5ydWhsQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhl bGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kbWFidWYuYyAgICB8ICAzMSArKysrLQogLi4uL2Ry bS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fZG1hYnVmLmMgIHwgMTE2ICsrKysrKysrKysr KysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG1hYnVm LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG1hYnVmLmMKaW5kZXggNjE2 YzNhMmYxYmFmLi45MThjMTlkZjdiNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9kbWFidWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fZG1hYnVmLmMKQEAgLTEyLDYgKzEyLDggQEAKICNpbmNsdWRlICJpOTE1X2dlbV9vYmpl Y3QuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCiAKK0k5MTVfU0VMRlRFU1RfREVD TEFSRShzdGF0aWMgYm9vbCBmb3JjZV9kaWZmZXJlbnRfZGV2aWNlczspCisKIHN0YXRpYyBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZG1hX2J1Zl90b19vYmooc3RydWN0IGRtYV9idWYgKmJ1 ZikKIHsKIAlyZXR1cm4gdG9faW50ZWxfYm8oYnVmLT5wcml2KTsKQEAgLTI1LDcgKzI3LDE0IEBA IHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKmk5MTVfZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFf YnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lCiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzcmMsICpkc3Q7 CiAJaW50IHJldCwgaTsKIAotCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXNfdW5sb2Nr ZWQob2JqKTsKKwlhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKKworCS8qCisJICogTm90ZS4gSW4g dGhlIGR5bmFtaWMgaW1wb3J0ZXIgY2FzZSwgdGhlIG9iamVjdCBpcyBub3QgeWV0IHBpbm5lZC4K KwkgKiBMZXQncyBwaW4gaXQgaGVyZSB0byBhdm9pZCBoYXZpbmcgdG8gY2FsbCB0aGUgbW92ZV9u b3RpZnkKKwkgKiBjYWxsYmFjaywgVGhlIGNhbGwgb2Ygd2hpY2ggaXMgbm90IHlldCBpbXBsZW1l bnRlZC4KKwkgKi8KKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CiAJaWYg KHJldCkKIAkJZ290byBlcnI7CiAKQEAgLTE2OCw2ICsxNzcsMjEgQEAgc3RhdGljIGludCBpOTE1 X2dlbV9lbmRfY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwgZW51bSBkbWFfZGF0 YV9kaXJlY3QKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50IGk5MTVfZ2VtX2RtYWJ1Zl9w aW4oc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQoreworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihhdHRhY2gtPmRtYWJ1Zik7CisKKwlh c3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKKwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdl cyhvYmopOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9kbWFidWZfdW5waW4oc3RydWN0IGRt YV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBkbWFfYnVmX3RvX29iaihhdHRhY2gtPmRtYWJ1Zik7CisKKwlpOTE1X2dlbV9vYmpl Y3RfdW5waW5fcGFnZXMob2JqKTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29w cyBpOTE1X2RtYWJ1Zl9vcHMgPSAgewogCS5tYXBfZG1hX2J1ZiA9IGk5MTVfZ2VtX21hcF9kbWFf YnVmLAogCS51bm1hcF9kbWFfYnVmID0gaTkxNV9nZW1fdW5tYXBfZG1hX2J1ZiwKQEAgLTE3Nyw2 ICsyMDEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGk5MTVfZG1hYnVmX29w cyA9ICB7CiAJLnZ1bm1hcCA9IGk5MTVfZ2VtX2RtYWJ1Zl92dW5tYXAsCiAJLmJlZ2luX2NwdV9h Y2Nlc3MgPSBpOTE1X2dlbV9iZWdpbl9jcHVfYWNjZXNzLAogCS5lbmRfY3B1X2FjY2VzcyA9IGk5 MTVfZ2VtX2VuZF9jcHVfYWNjZXNzLAorCS5waW4gPSBpOTE1X2dlbV9kbWFidWZfcGluLAorCS51 bnBpbiA9IGk5MTVfZ2VtX2RtYWJ1Zl91bnBpbiwKIH07CiAKIHN0cnVjdCBkbWFfYnVmICppOTE1 X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqLCBpbnQgZmxh Z3MpCkBAIC0yNDEsNyArMjY3LDggQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICppOTE1X2dlbV9w cmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoZG1hX2J1Zi0+b3BzID09 ICZpOTE1X2RtYWJ1Zl9vcHMpIHsKIAkJb2JqID0gZG1hX2J1Zl90b19vYmooZG1hX2J1Zik7CiAJ CS8qIGlzIGl0IGZyb20gb3VyIGRldmljZT8gKi8KLQkJaWYgKG9iai0+YmFzZS5kZXYgPT0gZGV2 KSB7CisJCWlmIChvYmotPmJhc2UuZGV2ID09IGRldiAmJgorCQkgICAgIUk5MTVfU0VMRlRFU1Rf T05MWShmb3JjZV9kaWZmZXJlbnRfZGV2aWNlcykpIHsKIAkJCS8qCiAJCQkgKiBJbXBvcnRpbmcg ZG1hYnVmIGV4cG9ydGVkIGZyb20gb3V0IG93biBnZW0gaW5jcmVhc2VzCiAJCQkgKiByZWZjb3Vu dCBvbiBnZW0gaXRzZWxmIGluc3RlYWQgb2YgZl9jb3VudCBvZiBkbWFidWYuCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2RtYWJ1Zi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9kbWFidWYuYwppbmRl eCBkZDc0YmMwOWVjODguLjg2OGIzNDY5ZWNiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9kbWFidWYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2RtYWJ1Zi5jCkBAIC0zNSw3ICszNSw3IEBA IHN0YXRpYyBpbnQgaWd0X2RtYWJ1Zl9leHBvcnQodm9pZCAqYXJnKQogc3RhdGljIGludCBpZ3Rf ZG1hYnVmX2ltcG9ydF9zZWxmKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGFyZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosICppbXBvcnRfb2JqOwogCXN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqaW1wb3J0OwogCXN0cnVjdCBkbWFfYnVmICpkbWFidWY7CiAJaW50IGVycjsKQEAg LTY1LDE0ICs2NSwxMjUgQEAgc3RhdGljIGludCBpZ3RfZG1hYnVmX2ltcG9ydF9zZWxmKHZvaWQg KmFyZykKIAkJZXJyID0gLUVJTlZBTDsKIAkJZ290byBvdXRfaW1wb3J0OwogCX0KKwlpbXBvcnRf b2JqID0gdG9faW50ZWxfYm8oaW1wb3J0KTsKKworCWk5MTVfZ2VtX29iamVjdF9sb2NrKGltcG9y dF9vYmosIE5VTEwpOworCWVyciA9IF9fX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKGltcG9y dF9vYmopOworCWk5MTVfZ2VtX29iamVjdF91bmxvY2soaW1wb3J0X29iaik7CisJaWYgKGVycikg eworCQlwcl9lcnIoIlNhbWUgb2JqZWN0IGRtYS1idWYgZ2V0X3BhZ2VzIGZhaWxlZCFcbiIpOwor CQlnb3RvIG91dF9pbXBvcnQ7CisJfQogCiAJZXJyID0gMDsKIG91dF9pbXBvcnQ6Ci0JaTkxNV9n ZW1fb2JqZWN0X3B1dCh0b19pbnRlbF9ibyhpbXBvcnQpKTsKKwlpOTE1X2dlbV9vYmplY3RfcHV0 KGltcG9ydF9vYmopOworb3V0X2RtYWJ1ZjoKKwlkbWFfYnVmX3B1dChkbWFidWYpOworb3V0Ogor CWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9p ZCBpZ3RfZG1hYnVmX21vdmVfbm90aWZ5KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFj aCkKK3sKKwlHRU1fV0FSTl9PTigxKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVm X2F0dGFjaF9vcHMgaWd0X2RtYWJ1Zl9hdHRhY2hfb3BzID0geworCS5tb3ZlX25vdGlmeSA9IGln dF9kbWFidWZfbW92ZV9ub3RpZnksCit9OworCitzdGF0aWMgaW50IGlndF9kbWFidWZfaW1wb3J0 X3NhbWVfZHJpdmVyKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IGFyZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCAqaW1wb3J0X29iajsK KwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmltcG9ydDsKKwlzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVm OworCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmltcG9ydF9hdHRhY2g7CisJc3RydWN0IHNn X3RhYmxlICpzdDsKKwlsb25nIHRpbWVvdXQ7CisJaW50IGVycjsKKworCWZvcmNlX2RpZmZlcmVu dF9kZXZpY2VzID0gdHJ1ZTsKKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3NobWVtKGk5 MTUsIFBBR0VfU0laRSk7CisJaWYgKElTX0VSUihvYmopKQorCQlnb3RvIG91dF9yZXQ7CisKKwlk bWFidWYgPSBpOTE1X2dlbV9wcmltZV9leHBvcnQoJm9iai0+YmFzZSwgMCk7CisJaWYgKElTX0VS UihkbWFidWYpKSB7CisJCXByX2VycigiaTkxNV9nZW1fcHJpbWVfZXhwb3J0IGZhaWxlZCB3aXRo IGVycj0lZFxuIiwKKwkJICAgICAgIChpbnQpUFRSX0VSUihkbWFidWYpKTsKKwkJZXJyID0gUFRS X0VSUihkbWFidWYpOworCQlnb3RvIG91dDsKKwl9CisKKwlpbXBvcnQgPSBpOTE1X2dlbV9wcmlt ZV9pbXBvcnQoJmk5MTUtPmRybSwgZG1hYnVmKTsKKwlpZiAoSVNfRVJSKGltcG9ydCkpIHsKKwkJ cHJfZXJyKCJpOTE1X2dlbV9wcmltZV9pbXBvcnQgZmFpbGVkIHdpdGggZXJyPSVkXG4iLAorCQkg ICAgICAgKGludClQVFJfRVJSKGltcG9ydCkpOworCQllcnIgPSBQVFJfRVJSKGltcG9ydCk7CisJ CWdvdG8gb3V0X2RtYWJ1ZjsKKwl9CisKKwlpZiAoaW1wb3J0ID09ICZvYmotPmJhc2UpIHsKKwkJ cHJfZXJyKCJpOTE1X2dlbV9wcmltZV9pbXBvcnQgcmV1c2VkIGdlbSBvYmplY3QhXG4iKTsKKwkJ ZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXRfaW1wb3J0OworCX0KKworCWltcG9ydF9vYmogPSB0 b19pbnRlbF9ibyhpbXBvcnQpOworCisJaTkxNV9nZW1fb2JqZWN0X2xvY2soaW1wb3J0X29iaiwg TlVMTCk7CisJZXJyID0gX19fX2k5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMoaW1wb3J0X29iaik7 CisJaWYgKGVycikgeworCQlwcl9lcnIoIkRpZmZlcmVudCBvYmplY3RzIGRtYS1idWYgZ2V0X3Bh Z2VzIGZhaWxlZCFcbiIpOworCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKGltcG9ydF9vYmopOwor CQlnb3RvIG91dF9pbXBvcnQ7CisJfQorCisJLyoKKwkgKiBJZiB0aGUgZXhwb3J0ZWQgb2JqZWN0 IGlzIG5vdCBpbiBzeXN0ZW0gbWVtb3J5LCBzb21ldGhpbmcKKwkgKiB3ZWlyZCBpcyBnb2luZyBv bi4gVE9ETzogV2hlbiBwMnAgaXMgc3VwcG9ydGVkLCB0aGlzIGlzIG5vCisJICogbG9uZ2VyIGNv bnNpZGVyZWQgd2VpcmQuCisJICovCisJaWYgKG9iai0+bW0ucmVnaW9uICE9IGk5MTUtPm1tLnJl Z2lvbnNbSU5URUxfUkVHSU9OX1NNRU1dKSB7CisJCXByX2VycigiRXhwb3J0ZWQgZG1hLWJ1ZiBp cyBub3QgaW4gc3lzdGVtIG1lbW9yeVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJfQorCisJaTkx NV9nZW1fb2JqZWN0X3VubG9jayhpbXBvcnRfb2JqKTsKKworCS8qIE5vdyB0cnkgYSBmYWtlIGR5 bmFtaWMgaW1wb3J0ZXIgKi8KKwlpbXBvcnRfYXR0YWNoID0gZG1hX2J1Zl9keW5hbWljX2F0dGFj aChkbWFidWYsIG9iai0+YmFzZS5kZXYtPmRldiwKKwkJCQkJICAgICAgICZpZ3RfZG1hYnVmX2F0 dGFjaF9vcHMsCisJCQkJCSAgICAgICBOVUxMKTsKKwlpZiAoSVNfRVJSKGltcG9ydF9hdHRhY2gp KQorCQlnb3RvIG91dF9pbXBvcnQ7CisKKwlkbWFfcmVzdl9sb2NrKGRtYWJ1Zi0+cmVzdiwgTlVM TCk7CisJc3QgPSBkbWFfYnVmX21hcF9hdHRhY2htZW50KGltcG9ydF9hdHRhY2gsIERNQV9CSURJ UkVDVElPTkFMKTsKKwlkbWFfcmVzdl91bmxvY2soZG1hYnVmLT5yZXN2KTsKKwlpZiAoSVNfRVJS KHN0KSkKKwkJZ290byBvdXRfZGV0YWNoOworCisJdGltZW91dCA9IGRtYV9yZXN2X3dhaXRfdGlt ZW91dChkbWFidWYtPnJlc3YsIGZhbHNlLCB0cnVlLCA1ICogSFopOworCWlmICghdGltZW91dCkg eworCQlwcl9lcnIoImRtYWJ1ZiB3YWl0IGZvciBleGNsdXNpdmUgZmVuY2UgdGltZWQgb3V0Llxu Iik7CisJCXRpbWVvdXQgPSAtRVRJTUU7CisJfQorCWVyciA9IHRpbWVvdXQgPiAwID8gMCA6IHRp bWVvdXQ7CisJZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KGltcG9ydF9hdHRhY2gsIHN0LCBETUFf QklESVJFQ1RJT05BTCk7CitvdXRfZGV0YWNoOgorCWRtYV9idWZfZGV0YWNoKGRtYWJ1ZiwgaW1w b3J0X2F0dGFjaCk7CitvdXRfaW1wb3J0OgorCWk5MTVfZ2VtX29iamVjdF9wdXQoaW1wb3J0X29i aik7CiBvdXRfZG1hYnVmOgogCWRtYV9idWZfcHV0KGRtYWJ1Zik7CiBvdXQ6CiAJaTkxNV9nZW1f b2JqZWN0X3B1dChvYmopOworb3V0X3JldDoKKwlmb3JjZV9kaWZmZXJlbnRfZGV2aWNlcyA9IGZh bHNlOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTI4Niw2ICszOTcsNyBAQCBpbnQgaTkxNV9nZW1f ZG1hYnVmX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewog CXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1Qo aWd0X2RtYWJ1Zl9leHBvcnQpLAorCQlTVUJURVNUKGlndF9kbWFidWZfaW1wb3J0X3NhbWVfZHJp dmVyKSwKIAl9OwogCiAJcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOwotLSAKMi4z MS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK