From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915/gem: Safely acquire the ctx->vm when copying Date: Wed, 6 Nov 2019 09:13:12 +0000 Message-ID: <20191106091312.12921-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8C376E1F9 for ; Wed, 6 Nov 2019 09:13:18 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QXMgd2UgcmVhZCB0aGUgY3R4LT52bSB1bmxvY2tlZCBiZWZvcmUgY2xvbmluZy9leHBvcnRpbmcs IHdlIHNob3VsZAp2YWxpZGF0ZSBvdXIgcmVmZXJlbmNlIGlzIGNvcnJlY3QgYmVmb3JlIHJldHVy bmluZyBpdC4gV2UgYWxyZWFkeSBkbyBmb3IKY2xvbmVfdm0oKSBidXQgd2VyZSBub3Qgc28gc3Ry aWN0IGFyb3VuZCBnZXRfcHBndHQoKS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmMgfCA4MCArKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0MyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBkZTZlNTVhZjgyY2YuLmEwNmNjOGU2MzI4 MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCkBAIC05 OTUsNiArOTk1LDM4IEBAIHN0YXRpYyBpbnQgY29udGV4dF9iYXJyaWVyX3Rhc2soc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqCitjb250ZXh0X2dldF92bV9yY3Uoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCkKK3sKKwlkbyB7CisJCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwor CisJCXZtID0gcmN1X2RlcmVmZXJlbmNlKGN0eC0+dm0pOworCQlpZiAoIWtyZWZfZ2V0X3VubGVz c196ZXJvKCZ2bS0+cmVmKSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFRoaXMgcHBndHQg bWF5IGhhdmUgYmUgcmVhbGxvY2F0ZWQgYmV0d2VlbgorCQkgKiB0aGUgcmVhZCBhbmQgdGhlIGty ZWYsIGFuZCByZWFzc2lnbmVkIHRvIGEgdGhpcmQKKwkJICogY29udGV4dC4gSW4gb3JkZXIgdG8g YXZvaWQgaW5hZHZlcnRlbnQgc2hhcmluZworCQkgKiBvZiB0aGlzIHBwZ3R0IHdpdGggdGhhdCB0 aGlyZCBjb250ZXh0IChhbmQgbm90CisJCSAqIHNyYyksIHdlIGhhdmUgdG8gY29uZmlybSB0aGF0 IHdlIGhhdmUgdGhlIHNhbWUKKwkJICogcHBndHQgYWZ0ZXIgcGFzc2luZyB0aHJvdWdoIHRoZSBz dHJvbmcgbWVtb3J5CisJCSAqIGJhcnJpZXIgaW1wbGllZCBieSBhIHN1Y2Nlc3NmdWwKKwkJICog a3JlZl9nZXRfdW5sZXNzX3plcm8oKS4KKwkJICoKKwkJICogT25jZSB3ZSBoYXZlIGFjcXVpcmVk IHRoZSBjdXJyZW50IHBwZ3R0IG9mIHNyYywKKwkJICogd2Ugbm8gbG9uZ2VyIGNhcmUgaWYgaXQg aXMgcmVsZWFzZWQgZnJvbSBzcmMsIGFzCisJCSAqIGl0IGNhbm5vdCBiZSByZWFsbG9jYXRlZCBl bHNld2hlcmUuCisJCSAqLworCisJCWlmICh2bSA9PSByY3VfYWNjZXNzX3BvaW50ZXIoY3R4LT52 bSkpCisJCQlyZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZih2bSk7CisKKwkJaTkxNV92bV9wdXQo dm0pOworCX0gd2hpbGUgKDEpOworfQorCiBzdGF0aWMgaW50IGdldF9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsCiAJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwKIAkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFy Z3MpCkBAIC0xMDA2LDcgKzEwMzgsNyBAQCBzdGF0aWMgaW50IGdldF9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsCiAJCXJldHVybiAtRU5PREVWOwogCiAJcmN1 X3JlYWRfbG9jaygpOwotCXZtID0gaTkxNV92bV9nZXQoY3R4LT52bSk7CisJdm0gPSBjb250ZXh0 X2dldF92bV9yY3UoY3R4KTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCXJldCA9IG11dGV4X2xv Y2tfaW50ZXJydXB0aWJsZSgmZmlsZV9wcml2LT52bV9pZHJfbG9jayk7CkBAIC0yMDM1LDQ3ICsy MDY3LDIxIEBAIHN0YXRpYyBpbnQgY2xvbmVfdm0oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmRz dCwKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAlpbnQgZXJyID0gMDsKIAotCXJj dV9yZWFkX2xvY2soKTsKLQlkbyB7Ci0JCXZtID0gcmN1X2RlcmVmZXJlbmNlKHNyYy0+dm0pOwot CQlpZiAoIXZtKQotCQkJYnJlYWs7Ci0KLQkJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmdm0t PnJlZikpCi0JCQljb250aW51ZTsKLQotCQkvKgotCQkgKiBUaGlzIHBwZ3R0IG1heSBoYXZlIGJl IHJlYWxsb2NhdGVkIGJldHdlZW4KLQkJICogdGhlIHJlYWQgYW5kIHRoZSBrcmVmLCBhbmQgcmVh c3NpZ25lZCB0byBhIHRoaXJkCi0JCSAqIGNvbnRleHQuIEluIG9yZGVyIHRvIGF2b2lkIGluYWR2 ZXJ0ZW50IHNoYXJpbmcKLQkJICogb2YgdGhpcyBwcGd0dCB3aXRoIHRoYXQgdGhpcmQgY29udGV4 dCAoYW5kIG5vdAotCQkgKiBzcmMpLCB3ZSBoYXZlIHRvIGNvbmZpcm0gdGhhdCB3ZSBoYXZlIHRo ZSBzYW1lCi0JCSAqIHBwZ3R0IGFmdGVyIHBhc3NpbmcgdGhyb3VnaCB0aGUgc3Ryb25nIG1lbW9y eQotCQkgKiBiYXJyaWVyIGltcGxpZWQgYnkgYSBzdWNjZXNzZnVsCi0JCSAqIGtyZWZfZ2V0X3Vu bGVzc196ZXJvKCkuCi0JCSAqCi0JCSAqIE9uY2Ugd2UgaGF2ZSBhY3F1aXJlZCB0aGUgY3VycmVu dCBwcGd0dCBvZiBzcmMsCi0JCSAqIHdlIG5vIGxvbmdlciBjYXJlIGlmIGl0IGlzIHJlbGVhc2Vk IGZyb20gc3JjLCBhcwotCQkgKiBpdCBjYW5ub3QgYmUgcmVhbGxvY2F0ZWQgZWxzZXdoZXJlLgot CQkgKi8KLQotCQlpZiAodm0gPT0gcmN1X2FjY2Vzc19wb2ludGVyKHNyYy0+dm0pKQotCQkJYnJl YWs7CisJaWYgKCFyY3VfYWNjZXNzX3BvaW50ZXIoc3JjLT52bSkpCisJCXJldHVybiAwOwogCi0J CWk5MTVfdm1fcHV0KHZtKTsKLQl9IHdoaWxlICgxKTsKKwlyY3VfcmVhZF9sb2NrKCk7CisJdm0g PSBjb250ZXh0X2dldF92bV9yY3Uoc3JjKTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAotCWlmICh2 bSkgewotCQlpZiAoIW11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZHN0LT5tdXRleCkpIHsKLQkJ CV9fYXNzaWduX3BwZ3R0KGRzdCwgdm0pOwotCQkJbXV0ZXhfdW5sb2NrKCZkc3QtPm11dGV4KTsK LQkJfSBlbHNlIHsKLQkJCWVyciA9IC1FSU5UUjsKLQkJfQotCQlpOTE1X3ZtX3B1dCh2bSk7CisJ aWYgKCFtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRzdC0+bXV0ZXgpKSB7CisJCV9fYXNzaWdu X3BwZ3R0KGRzdCwgdm0pOworCQltdXRleF91bmxvY2soJmRzdC0+bXV0ZXgpOworCX0gZWxzZSB7 CisJCWVyciA9IC1FSU5UUjsKIAl9CiAKKwlpOTE1X3ZtX3B1dCh2bSk7CiAJcmV0dXJuIGVycjsK IH0KIAotLSAKMi4yNC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng= 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=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 BD3CEC5DF62 for ; Wed, 6 Nov 2019 09:13:20 +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 97D672178F for ; Wed, 6 Nov 2019 09:13:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97D672178F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk 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 3B5E06E1F9; Wed, 6 Nov 2019 09:13:20 +0000 (UTC) Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8C376E1F9 for ; Wed, 6 Nov 2019 09:13:18 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 19098517-1500050 for multiple; Wed, 06 Nov 2019 09:13:14 +0000 From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Wed, 6 Nov 2019 09:13:12 +0000 Message-Id: <20191106091312.12921-1-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH] drm/i915/gem: Safely acquire the ctx->vm when copying X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191106091312.435fiUY3emWIid9p5H09jcl63tut6Ar_7TbkO8J6nWc@z> QXMgd2UgcmVhZCB0aGUgY3R4LT52bSB1bmxvY2tlZCBiZWZvcmUgY2xvbmluZy9leHBvcnRpbmcs IHdlIHNob3VsZAp2YWxpZGF0ZSBvdXIgcmVmZXJlbmNlIGlzIGNvcnJlY3QgYmVmb3JlIHJldHVy bmluZyBpdC4gV2UgYWxyZWFkeSBkbyBmb3IKY2xvbmVfdm0oKSBidXQgd2VyZSBub3Qgc28gc3Ry aWN0IGFyb3VuZCBnZXRfcHBndHQoKS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmMgfCA4MCArKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0MyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBkZTZlNTVhZjgyY2YuLmEwNmNjOGU2MzI4 MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCkBAIC05 OTUsNiArOTk1LDM4IEBAIHN0YXRpYyBpbnQgY29udGV4dF9iYXJyaWVyX3Rhc2soc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqCitjb250ZXh0X2dldF92bV9yY3Uoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCkKK3sKKwlkbyB7CisJCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwor CisJCXZtID0gcmN1X2RlcmVmZXJlbmNlKGN0eC0+dm0pOworCQlpZiAoIWtyZWZfZ2V0X3VubGVz c196ZXJvKCZ2bS0+cmVmKSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFRoaXMgcHBndHQg bWF5IGhhdmUgYmUgcmVhbGxvY2F0ZWQgYmV0d2VlbgorCQkgKiB0aGUgcmVhZCBhbmQgdGhlIGty ZWYsIGFuZCByZWFzc2lnbmVkIHRvIGEgdGhpcmQKKwkJICogY29udGV4dC4gSW4gb3JkZXIgdG8g YXZvaWQgaW5hZHZlcnRlbnQgc2hhcmluZworCQkgKiBvZiB0aGlzIHBwZ3R0IHdpdGggdGhhdCB0 aGlyZCBjb250ZXh0IChhbmQgbm90CisJCSAqIHNyYyksIHdlIGhhdmUgdG8gY29uZmlybSB0aGF0 IHdlIGhhdmUgdGhlIHNhbWUKKwkJICogcHBndHQgYWZ0ZXIgcGFzc2luZyB0aHJvdWdoIHRoZSBz dHJvbmcgbWVtb3J5CisJCSAqIGJhcnJpZXIgaW1wbGllZCBieSBhIHN1Y2Nlc3NmdWwKKwkJICog a3JlZl9nZXRfdW5sZXNzX3plcm8oKS4KKwkJICoKKwkJICogT25jZSB3ZSBoYXZlIGFjcXVpcmVk IHRoZSBjdXJyZW50IHBwZ3R0IG9mIHNyYywKKwkJICogd2Ugbm8gbG9uZ2VyIGNhcmUgaWYgaXQg aXMgcmVsZWFzZWQgZnJvbSBzcmMsIGFzCisJCSAqIGl0IGNhbm5vdCBiZSByZWFsbG9jYXRlZCBl bHNld2hlcmUuCisJCSAqLworCisJCWlmICh2bSA9PSByY3VfYWNjZXNzX3BvaW50ZXIoY3R4LT52 bSkpCisJCQlyZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZih2bSk7CisKKwkJaTkxNV92bV9wdXQo dm0pOworCX0gd2hpbGUgKDEpOworfQorCiBzdGF0aWMgaW50IGdldF9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsCiAJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwKIAkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFy Z3MpCkBAIC0xMDA2LDcgKzEwMzgsNyBAQCBzdGF0aWMgaW50IGdldF9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsCiAJCXJldHVybiAtRU5PREVWOwogCiAJcmN1 X3JlYWRfbG9jaygpOwotCXZtID0gaTkxNV92bV9nZXQoY3R4LT52bSk7CisJdm0gPSBjb250ZXh0 X2dldF92bV9yY3UoY3R4KTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCXJldCA9IG11dGV4X2xv Y2tfaW50ZXJydXB0aWJsZSgmZmlsZV9wcml2LT52bV9pZHJfbG9jayk7CkBAIC0yMDM1LDQ3ICsy MDY3LDIxIEBAIHN0YXRpYyBpbnQgY2xvbmVfdm0oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmRz dCwKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAlpbnQgZXJyID0gMDsKIAotCXJj dV9yZWFkX2xvY2soKTsKLQlkbyB7Ci0JCXZtID0gcmN1X2RlcmVmZXJlbmNlKHNyYy0+dm0pOwot CQlpZiAoIXZtKQotCQkJYnJlYWs7Ci0KLQkJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmdm0t PnJlZikpCi0JCQljb250aW51ZTsKLQotCQkvKgotCQkgKiBUaGlzIHBwZ3R0IG1heSBoYXZlIGJl IHJlYWxsb2NhdGVkIGJldHdlZW4KLQkJICogdGhlIHJlYWQgYW5kIHRoZSBrcmVmLCBhbmQgcmVh c3NpZ25lZCB0byBhIHRoaXJkCi0JCSAqIGNvbnRleHQuIEluIG9yZGVyIHRvIGF2b2lkIGluYWR2 ZXJ0ZW50IHNoYXJpbmcKLQkJICogb2YgdGhpcyBwcGd0dCB3aXRoIHRoYXQgdGhpcmQgY29udGV4 dCAoYW5kIG5vdAotCQkgKiBzcmMpLCB3ZSBoYXZlIHRvIGNvbmZpcm0gdGhhdCB3ZSBoYXZlIHRo ZSBzYW1lCi0JCSAqIHBwZ3R0IGFmdGVyIHBhc3NpbmcgdGhyb3VnaCB0aGUgc3Ryb25nIG1lbW9y eQotCQkgKiBiYXJyaWVyIGltcGxpZWQgYnkgYSBzdWNjZXNzZnVsCi0JCSAqIGtyZWZfZ2V0X3Vu bGVzc196ZXJvKCkuCi0JCSAqCi0JCSAqIE9uY2Ugd2UgaGF2ZSBhY3F1aXJlZCB0aGUgY3VycmVu dCBwcGd0dCBvZiBzcmMsCi0JCSAqIHdlIG5vIGxvbmdlciBjYXJlIGlmIGl0IGlzIHJlbGVhc2Vk IGZyb20gc3JjLCBhcwotCQkgKiBpdCBjYW5ub3QgYmUgcmVhbGxvY2F0ZWQgZWxzZXdoZXJlLgot CQkgKi8KLQotCQlpZiAodm0gPT0gcmN1X2FjY2Vzc19wb2ludGVyKHNyYy0+dm0pKQotCQkJYnJl YWs7CisJaWYgKCFyY3VfYWNjZXNzX3BvaW50ZXIoc3JjLT52bSkpCisJCXJldHVybiAwOwogCi0J CWk5MTVfdm1fcHV0KHZtKTsKLQl9IHdoaWxlICgxKTsKKwlyY3VfcmVhZF9sb2NrKCk7CisJdm0g PSBjb250ZXh0X2dldF92bV9yY3Uoc3JjKTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAotCWlmICh2 bSkgewotCQlpZiAoIW11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZHN0LT5tdXRleCkpIHsKLQkJ CV9fYXNzaWduX3BwZ3R0KGRzdCwgdm0pOwotCQkJbXV0ZXhfdW5sb2NrKCZkc3QtPm11dGV4KTsK LQkJfSBlbHNlIHsKLQkJCWVyciA9IC1FSU5UUjsKLQkJfQotCQlpOTE1X3ZtX3B1dCh2bSk7CisJ aWYgKCFtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRzdC0+bXV0ZXgpKSB7CisJCV9fYXNzaWdu X3BwZ3R0KGRzdCwgdm0pOworCQltdXRleF91bmxvY2soJmRzdC0+bXV0ZXgpOworCX0gZWxzZSB7 CisJCWVyciA9IC1FSU5UUjsKIAl9CiAKKwlpOTE1X3ZtX3B1dCh2bSk7CiAJcmV0dXJuIGVycjsK IH0KIAotLSAKMi4yNC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=