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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,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 EFE9CC2D0DB for ; Mon, 20 Jan 2020 17:48:15 +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 CFC9722525 for ; Mon, 20 Jan 2020 17:48:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CFC9722525 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 865B26EAB0; Mon, 20 Jan 2020 17:48:15 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 018A86EAAB for ; Mon, 20 Jan 2020 17:48:11 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 09:48:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,342,1574150400"; d="scan'208";a="275093454" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by FMSMGA003.fm.intel.com with SMTP; 20 Jan 2020 09:48:10 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 20 Jan 2020 19:48:09 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Mon, 20 Jan 2020 19:47:24 +0200 Message-Id: <20200120174728.21095-15-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200120174728.21095-1-ville.syrjala@linux.intel.com> References: <20200120174728.21095-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 13/17] drm/i915: Introduce better global state handling 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk91 ciBjdXJyZW50IGdsb2JhbCBzdGF0ZSBoYW5kbGluZyBpcyBwcmV0dHkgYWQtaG9jLiBMZXQncyB0 cnkgdG8KbWFrZSBpdCBiZXR0ZXIgYnkgaW1pdGF0aW5nIHRoZSBzdGFuZGFyZCBkcm0gY29yZSBw cml2YXRlIG9iamVjdAphcHByb2FjaC4KClRoZSByZWFzb24gd2h5IHdlIGRvbid0IHdhbnQgdG8g ZGlyZWN0bHkgdXNlIHRoZSBwcml2YXRlIG9iamVjdHMKaXMgbG9ja2luZzsgRWFjaCBwcml2YXRl IG9iamVjdCBoYXMgaXRzIG93biBsb2NrIHNvIGlmIHdlCmludHJvZHVjZSBhbnkgZ2xvYmFsIHBy aXZhdGUgb2JqZWN0cyB3ZSBnZXQgc2VyaWFsaXplZCBieSB0aGF0CnNpbmdsZSBsb2NrIGFjcm9z cyBhbGwgcGlwZXMuIFRoZSBnbG9iYWwgc3RhdGUgYXBwb3JvYWNoIGluc3RlYWQKdXNlcyBhIHJl YWQvd3JpdGUgbG9jayB0eXBlIG9mIGFwcHJvYWNoIHdoZXJlIGVhY2ggaW5kaXZpZHVhbApjcnRj IGxvY2sgY291bnRzIGFzIGEgcmVhZCBsb2NrLCBhbmQgZ3JhYmJpbmcgYWxsIHRoZSBjcnRjIGxv Y2tzCmFsbG93cyBvbmUgd3JpdGUgYWNjZXNzLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyAgIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2F0b21pYy5oICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYyAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jZGNsay5jICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAgMTUgKy0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAgNCArCiAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZ2xvYmFsX3N0YXRlLmMgfCAyMjMgKysrKysrKysrKysrKysrKysrCiAuLi4vZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZ2xvYmFsX3N0YXRlLmggfCAgODcgKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICAzICsKIDEwIGZpbGVz IGNoYW5nZWQsIDM0MiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2dsb2JhbF9zdGF0ZS5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9n bG9iYWxfc3RhdGUuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggM2M4OGQ3ZDhjNzY0Li43ODdm ZmU2Njk4MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC0xOTAsNiArMTkwLDcgQEAgaTkxNS15 ICs9IFwKIAlkaXNwbGF5L2ludGVsX2ZiYy5vIFwKIAlkaXNwbGF5L2ludGVsX2ZpZm9fdW5kZXJy dW4ubyBcCiAJZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5vIFwKKwlkaXNwbGF5L2ludGVsX2ds b2JhbF9zdGF0ZS5vIFwKIAlkaXNwbGF5L2ludGVsX2hkY3AubyBcCiAJZGlzcGxheS9pbnRlbF9o b3RwbHVnLm8gXAogCWRpc3BsYXkvaW50ZWxfbHBlX2F1ZGlvLm8gXApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKaW5kZXggMWMxMzQyM2Q0OTQ1Li40NTg0MmVi Y2RlYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRv bWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwpA QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImludGVsX2F0b21pYy5oIgogI2luY2x1ZGUgImlu dGVsX2NkY2xrLmgiCiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgorI2luY2x1ZGUg ImludGVsX2dsb2JhbF9zdGF0ZS5oIgogI2luY2x1ZGUgImludGVsX2hkY3AuaCIKICNpbmNsdWRl ICJpbnRlbF9wc3IuaCIKICNpbmNsdWRlICJpbnRlbF9zcHJpdGUuaCIKQEAgLTUwMCw2ICs1MDEs NyBAQCB2b2lkIGludGVsX2F0b21pY19zdGF0ZV9mcmVlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpfc3RhdGUpCiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9h dG9taWNfc3RhdGUoX3N0YXRlKTsKIAogCWRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNl KCZzdGF0ZS0+YmFzZSk7CisJa2ZyZWUoc3RhdGUtPmdsb2JhbF9vYmpzKTsKIAogCWk5MTVfc3df ZmVuY2VfZmluaSgmc3RhdGUtPmNvbW1pdF9yZWFkeSk7CiAKQEAgLTUxMSw2ICs1MTMsNyBAQCB2 b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykK IAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0 ZShzKTsKIAogCWRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcigmc3RhdGUtPmJhc2UpOwor CWludGVsX2F0b21pY19jbGVhcl9nbG9iYWxfc3RhdGUoc3RhdGUpOwogCiAJc3RhdGUtPmRwbGxf c2V0ID0gc3RhdGUtPm1vZGVzZXQgPSBmYWxzZTsKIAlzdGF0ZS0+Z2xvYmFsX3N0YXRlX2NoYW5n ZWQgPSBmYWxzZTsKQEAgLTUzMCw3ICs1MzMsNyBAQCBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCXJldHVybiB0b19pbnRlbF9jcnRj X3N0YXRlKGNydGNfc3RhdGUpOwogfQogCi1pbnQgaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0 YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQoraW50IF9pbnRlbF9hdG9taWNf bG9ja19nbG9iYWxfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5k ZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwpAQCAtNTQ5LDcgKzU1Miw3IEBAIGludCBp bnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBpbnRlbF9hdG9taWNfc2VyaWFsaXplX2dsb2Jh bF9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK2ludCBfaW50ZWxfYXRv bWljX3NlcmlhbGl6ZV9nbG9iYWxfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0 ZS0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmgKaW5kZXggODgxMzNlZWEwYTE3Li4xMTE0NjI5 MmIwNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRv bWljLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuaApA QCAtNTYsOCArNTYsOCBAQCBpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjLAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KTsKIAotaW50IGludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSk7CitpbnQgX2ludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZShz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAKLWludCBpbnRlbF9hdG9taWNfc2Vy aWFsaXplX2dsb2JhbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7Citp bnQgX2ludGVsX2F0b21pY19zZXJpYWxpemVfZ2xvYmFsX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKTsKIAogI2VuZGlmIC8qIF9fSU5URUxfQVRPTUlDX0hfXyAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCmluZGV4IDMyZTcyMjEyODYz OC4uMTI2MjZmZDk0ZDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dWRpby5jCkBAIC04MjAsNyArODIwLDcgQEAgc3RhdGljIHZvaWQgZ2xrX2ZvcmNlX2F1ZGlvX2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZW5hYmxlID8gMiAqIDk2 MDAwIDogMDsKIAogCS8qIFByb3RlY3RzIGRldl9wcml2LT5jZGNsay5mb3JjZV9taW5fY2RjbGsg Ki8KLQlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUodG9faW50ZWxfYXRvbWlj X3N0YXRlKHN0YXRlKSk7CisJcmV0ID0gX2ludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZSh0 b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gZHJtX2F0 b21pY19jb21taXQoc3RhdGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2NkY2xrLmMKaW5kZXggNzAxYTYzYzNjYTM4Li4zYjc5MzJhZTJhNzcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKQEAgLTIwNjMsNyArMjA2Myw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAKIAkJY2RjbGtfc3RhdGUtPm1pbl9jZGNsa1tpXSA9IG1pbl9jZGNsazsKIAot CQlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoc3RhdGUpOworCQlyZXQgPSBf aW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJl dHVybiByZXQ7CiAJfQpAQCAtMjExMSw3ICsyMTExLDcgQEAgc3RhdGljIGludCBieHRfY29tcHV0 ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAog CQljZGNsa19zdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWxbaV0gPSBtaW5fdm9sdGFnZV9sZXZlbDsK IAotCQlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoc3RhdGUpOworCQlyZXQg PSBfaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKIAkJaWYgKHJldCkKIAkJ CXJldHVybiByZXQ7CiAJfQpAQCAtMjM4NiwxMiArMjM4NiwxMiBAQCBpbnQgaW50ZWxfbW9kZXNl dF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkgKiBBbHNv IHNlcmlhbGl6ZSBjb21taXRzIGFjcm9zcyBhbGwgY3J0Y3MKIAkJICogaWYgdGhlIGFjdHVhbCBo dyBuZWVkcyB0byBiZSBwb2tlZC4KIAkJICovCi0JCXJldCA9IGludGVsX2F0b21pY19zZXJpYWxp emVfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKKwkJcmV0ID0gX2ludGVsX2F0b21pY19zZXJpYWxpemVf Z2xvYmFsX3N0YXRlKHN0YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfSBlbHNl IGlmIChpbnRlbF9jZGNsa19jaGFuZ2VkKCZvbGRfY2RjbGtfc3RhdGUtPmxvZ2ljYWwsCiAJCQkJ ICAgICAgICZuZXdfY2RjbGtfc3RhdGUtPmxvZ2ljYWwpKSB7Ci0JCXJldCA9IGludGVsX2F0b21p Y19sb2NrX2dsb2JhbF9zdGF0ZShzdGF0ZSk7CisJCXJldCA9IF9pbnRlbF9hdG9taWNfbG9ja19n bG9iYWxfc3RhdGUoc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9IGVsc2Ug ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCAz YjcyNTc2NGJkY2QuLjcwZWI2ZWFhYjA5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0MzgxLDcgKzE0MzgxLDcgQEAgc3RhdGljIGludCBp bnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAl9 CiAKIAlpZiAoc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMpIHsKLQkJcmV0ID0gaW50ZWxfYXRv bWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKKwkJcmV0ID0gX2ludGVsX2F0b21pY19sb2Nr X2dsb2JhbF9zdGF0ZShzdGF0ZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAg LTE1NjUyLDYgKzE1NjUyLDggQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0 KCZzdGF0ZS0+YmFzZSwgbm9uYmxvY2spOwogCWlmICghcmV0KQogCQlyZXQgPSBkcm1fYXRvbWlj X2hlbHBlcl9zd2FwX3N0YXRlKCZzdGF0ZS0+YmFzZSwgdHJ1ZSk7CisJaWYgKCFyZXQpCisJCWlu dGVsX2F0b21pY19zd2FwX2dsb2JhbF9zdGF0ZShzdGF0ZSk7CiAKIAlpZiAocmV0KSB7CiAJCWk5 MTVfc3dfZmVuY2VfY29tbWl0KCZzdGF0ZS0+Y29tbWl0X3JlYWR5KTsKQEAgLTE3NTE4LDYgKzE3 NTIwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKIAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICptb2RlX2NvbmZpZyA9 ICZpOTE1LT5kcm0ubW9kZV9jb25maWc7CiAKIAlkcm1fbW9kZV9jb25maWdfaW5pdCgmaTkxNS0+ ZHJtKTsKKwlJTklUX0xJU1RfSEVBRCgmaTkxNS0+Z2xvYmFsX29ial9saXN0KTsKIAogCW1vZGVf Y29uZmlnLT5taW5fd2lkdGggPSAwOwogCW1vZGVfY29uZmlnLT5taW5faGVpZ2h0ID0gMDsKQEAg LTE3NTU5LDYgKzE3NTYyLDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVfY29uZmlnX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJfQogfQogCitzdGF0aWMgdm9pZCBpbnRl bF9tb2RlX2NvbmZpZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorewor CWludGVsX2F0b21pY19nbG9iYWxfb2JqX2NsZWFudXAoaTkxNSk7CisJZHJtX21vZGVfY29uZmln X2NsZWFudXAoJmk5MTUtPmRybSk7Cit9CisKIGludCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZp OTE1LT5kcm07CkBAIC0xNzU5OCw3ICsxNzYwNyw3IEBAIGludCBpbnRlbF9tb2Rlc2V0X2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWZvcl9lYWNoX3BpcGUoaTkxNSwgcGlw ZSkgewogCQkJcmV0ID0gaW50ZWxfY3J0Y19pbml0KGk5MTUsIHBpcGUpOwogCQkJaWYgKHJldCkg ewotCQkJCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRldik7CisJCQkJaW50ZWxfbW9kZV9jb25m aWdfY2xlYW51cChpOTE1KTsKIAkJCQlyZXR1cm4gcmV0OwogCQkJfQogCQl9CkBAIC0xODU1MSw3 ICsxODU2MCw3IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9kcml2ZXJfcmVtb3ZlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogCiAJaW50ZWxfaGRjcF9jb21wb25lbnRfZmluaShpOTE1KTsK IAotCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCZpOTE1LT5kcm0pOworCWludGVsX21vZGVfY29u ZmlnX2NsZWFudXAoaTkxNSk7CiAKIAlpbnRlbF9vdmVybGF5X2NsZWFudXAoaTkxNSk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBl cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgK aW5kZXggYjMxZWQ4MjhmYThmLi42MjhjNGE1NmE5ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC00Niw2ICs0Niw3IEBA CiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAogc3RydWN0IGRybV9wcmludGVyOworc3RydWN0IF9f aW50ZWxfZ2xvYmFsX29ianNfc3RhdGU7CiAKIC8qCiAgKiBEaXNwbGF5IHJlbGF0ZWQgc3R1ZmYK QEAgLTQ2MSw2ICs0NjIsOSBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAogCWludGVs X3dha2VyZWZfdCB3YWtlcmVmOwogCisJc3RydWN0IF9faW50ZWxfZ2xvYmFsX29ianNfc3RhdGUg Kmdsb2JhbF9vYmpzOworCWludCBudW1fZ2xvYmFsX29ianM7CisKIAlzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgY2RjbGtfc3RhdGU7CiAKIAlib29sIGRwbGxfc2V0LCBtb2Rlc2V0OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbG9iYWxfc3RhdGUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZ2xvYmFsX3N0YXRlLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMGNjODk0YzM4NjgKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2dsb2JhbF9zdGF0 ZS5jCkBAIC0wLDAgKzEsMjIzIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisv KgorICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVk ZSA8bGludXgvc3RyaW5nLmg+CisKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImlu dGVsX2F0b21pYy5oIgorI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKKyNpbmNsdWRl ICJpbnRlbF9nbG9iYWxfc3RhdGUuaCIKKwordm9pZCBpbnRlbF9hdG9taWNfZ2xvYmFsX29ial9p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIHN0cnVjdCBpbnRl bF9nbG9iYWxfb2JqICpvYmosCisJCQkJICBzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlICpzdGF0 ZSwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGVfZnVuY3MgKmZ1bmNzKQor eworCW1lbXNldChvYmosIDAsIHNpemVvZigqb2JqKSk7CisKKwlvYmotPnN0YXRlID0gc3RhdGU7 CisJb2JqLT5mdW5jcyA9IGZ1bmNzOworCWxpc3RfYWRkX3RhaWwoJm9iai0+aGVhZCwgJmRldl9w cml2LT5nbG9iYWxfb2JqX2xpc3QpOworfQorCit2b2lkIGludGVsX2F0b21pY19nbG9iYWxfb2Jq X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBp bnRlbF9nbG9iYWxfb2JqICpvYmosICpuZXh0OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KG9iaiwgbmV4dCwgJmRldl9wcml2LT5nbG9iYWxfb2JqX2xpc3QsIGhlYWQpIHsKKwkJbGlzdF9k ZWwoJm9iai0+aGVhZCk7CisJCW9iai0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRlKG9iaiwg b2JqLT5zdGF0ZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBhc3NlcnRfZ2xvYmFsX3N0YXRlX3dy aXRlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGM7CisKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJt LCBjcnRjKQorCQlkcm1fbW9kZXNldF9sb2NrX2Fzc2VydF9oZWxkKCZjcnRjLT5iYXNlLm11dGV4 KTsKK30KKworc3RhdGljIGJvb2wgbW9kZXNldF9sb2NrX2lzX2hlbGQoc3RydWN0IGRybV9tb2Rl c2V0X2FjcXVpcmVfY3R4ICpjdHgsCisJCQkJIHN0cnVjdCBkcm1fbW9kZXNldF9sb2NrICpsb2Nr KQoreworCXN0cnVjdCBkcm1fbW9kZXNldF9sb2NrICpsOworCisJbGlzdF9mb3JfZWFjaF9lbnRy eShsLCAmY3R4LT5sb2NrZWQsIGhlYWQpIHsKKwkJaWYgKGxvY2sgPT0gbCkKKwkJCXJldHVybiB0 cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgYXNzZXJ0X2dsb2Jh bF9zdGF0ZV9yZWFkX2xvY2tlZChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sK KwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCA9IHN0YXRlLT5iYXNlLmFjcXVp cmVfY3R4OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3Rh dGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKworCWZvcl9lYWNoX2lu dGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKKwkJaWYgKG1vZGVzZXRfbG9ja19pc19o ZWxkKGN0eCwgJmNydGMtPmJhc2UubXV0ZXgpKQorCQkJcmV0dXJuOworCX0KKworCVdBUk4oMSwg Ikdsb2JhbCBzdGF0ZSBub3QgcmVhZCBsb2NrZWRcbiIpOworfQorCitzdHJ1Y3QgaW50ZWxfZ2xv YmFsX3N0YXRlICoKK2ludGVsX2F0b21pY19nZXRfZ2xvYmFsX29ial9zdGF0ZShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgIHN0cnVjdCBpbnRlbF9nbG9iYWxfb2JqICpv YmopCit7CisJaW50IGluZGV4LCBudW1fb2JqcywgaTsKKwlzaXplX3Qgc2l6ZTsKKwlzdHJ1Y3Qg X19pbnRlbF9nbG9iYWxfb2Jqc19zdGF0ZSAqYXJyOworCXN0cnVjdCBpbnRlbF9nbG9iYWxfc3Rh dGUgKm9ial9zdGF0ZTsKKworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2dsb2JhbF9vYmpz OyBpKyspCisJCWlmIChvYmogPT0gc3RhdGUtPmdsb2JhbF9vYmpzW2ldLnB0cikKKwkJCXJldHVy biBzdGF0ZS0+Z2xvYmFsX29ianNbaV0uc3RhdGU7CisKKwlhc3NlcnRfZ2xvYmFsX3N0YXRlX3Jl YWRfbG9ja2VkKHN0YXRlKTsKKworCW51bV9vYmpzID0gc3RhdGUtPm51bV9nbG9iYWxfb2JqcyAr IDE7CisJc2l6ZSA9IHNpemVvZigqc3RhdGUtPmdsb2JhbF9vYmpzKSAqIG51bV9vYmpzOworCWFy ciA9IGtyZWFsbG9jKHN0YXRlLT5nbG9iYWxfb2Jqcywgc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYg KCFhcnIpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJc3RhdGUtPmdsb2JhbF9vYmpz ID0gYXJyOworCWluZGV4ID0gc3RhdGUtPm51bV9nbG9iYWxfb2JqczsKKwltZW1zZXQoJnN0YXRl LT5nbG9iYWxfb2Jqc1tpbmRleF0sIDAsIHNpemVvZigqc3RhdGUtPmdsb2JhbF9vYmpzKSk7CisK KwlvYmpfc3RhdGUgPSBvYmotPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKG9iaik7CisJ aWYgKCFvYmpfc3RhdGUpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJb2JqX3N0YXRl LT5jaGFuZ2VkID0gZmFsc2U7CisKKwlzdGF0ZS0+Z2xvYmFsX29ianNbaW5kZXhdLnN0YXRlID0g b2JqX3N0YXRlOworCXN0YXRlLT5nbG9iYWxfb2Jqc1tpbmRleF0ub2xkX3N0YXRlID0gb2JqLT5z dGF0ZTsKKwlzdGF0ZS0+Z2xvYmFsX29ianNbaW5kZXhdLm5ld19zdGF0ZSA9IG9ial9zdGF0ZTsK KwlzdGF0ZS0+Z2xvYmFsX29ianNbaW5kZXhdLnB0ciA9IG9iajsKKwlvYmpfc3RhdGUtPnN0YXRl ID0gc3RhdGU7CisKKwlzdGF0ZS0+bnVtX2dsb2JhbF9vYmpzID0gbnVtX29ianM7CisKKwlEUk1f REVCVUdfQVRPTUlDKCJBZGRlZCBuZXcgZ2xvYmFsIG9iamVjdCAlcCBzdGF0ZSAlcCB0byAlcFxu IiwKKwkJCSBvYmosIG9ial9zdGF0ZSwgc3RhdGUpOworCisJcmV0dXJuIG9ial9zdGF0ZTsKK30K Kworc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqCitpbnRlbF9hdG9taWNfZ2V0X29sZF9nbG9i YWxfb2JqX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgICAg IHN0cnVjdCBpbnRlbF9nbG9iYWxfb2JqICpvYmopCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAw OyBpIDwgc3RhdGUtPm51bV9nbG9iYWxfb2JqczsgaSsrKQorCQlpZiAob2JqID09IHN0YXRlLT5n bG9iYWxfb2Jqc1tpXS5wdHIpCisJCQlyZXR1cm4gc3RhdGUtPmdsb2JhbF9vYmpzW2ldLm9sZF9z dGF0ZTsKKworCXJldHVybiBOVUxMOworfQorCitzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlICoK K2ludGVsX2F0b21pY19nZXRfbmV3X2dsb2JhbF9vYmpfc3RhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCisJCQkJICAgICAgc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9iaikK K3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2dsb2JhbF9vYmpzOyBp KyspCisJCWlmIChvYmogPT0gc3RhdGUtPmdsb2JhbF9vYmpzW2ldLnB0cikKKwkJCXJldHVybiBz dGF0ZS0+Z2xvYmFsX29ianNbaV0ubmV3X3N0YXRlOworCisJcmV0dXJuIE5VTEw7Cit9CisKK3Zv aWQgaW50ZWxfYXRvbWljX3N3YXBfZ2xvYmFsX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlICpvbGRfb2Jq X3N0YXRlLCAqbmV3X29ial9zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZ2xvYmFsX29iaiAqb2JqOwor CWludCBpOworCisJZm9yX2VhY2hfb2xkbmV3X2dsb2JhbF9vYmpfaW5fc3RhdGUoc3RhdGUsIG9i aiwgb2xkX29ial9zdGF0ZSwKKwkJCQkJICAgIG5ld19vYmpfc3RhdGUsIGkpIHsKKwkJV0FSTl9P TihvYmotPnN0YXRlICE9IG9sZF9vYmpfc3RhdGUpOworCisJCS8qCisJCSAqIElmIHRoZSBuZXcg c3RhdGUgd2Fzbid0IG1vZGlmaWVkIChhbmQgcHJvcGVybHkKKwkJICogbG9ja2VkIGZvciB3cml0 ZSBhY2Nlc3MpIHdlIHRocm93IGl0IGF3YXkuCisJCSAqLworCQlpZiAoIW5ld19vYmpfc3RhdGUt PmNoYW5nZWQpCisJCQljb250aW51ZTsKKworCQlhc3NlcnRfZ2xvYmFsX3N0YXRlX3dyaXRlX2xv Y2tlZChkZXZfcHJpdik7CisKKwkJb2xkX29ial9zdGF0ZS0+c3RhdGUgPSBzdGF0ZTsKKwkJbmV3 X29ial9zdGF0ZS0+c3RhdGUgPSBOVUxMOworCisJCXN0YXRlLT5nbG9iYWxfb2Jqc1tpXS5zdGF0 ZSA9IG9sZF9vYmpfc3RhdGU7CisJCW9iai0+c3RhdGUgPSBuZXdfb2JqX3N0YXRlOworCX0KK30K Kwordm9pZCBpbnRlbF9hdG9taWNfY2xlYXJfZ2xvYmFsX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5u dW1fZ2xvYmFsX29ianM7IGkrKykgeworCQlzdHJ1Y3QgaW50ZWxfZ2xvYmFsX29iaiAqb2JqID0g c3RhdGUtPmdsb2JhbF9vYmpzW2ldLnB0cjsKKworCQlvYmotPmZ1bmNzLT5hdG9taWNfZGVzdHJv eV9zdGF0ZShvYmosCisJCQkJCQkgc3RhdGUtPmdsb2JhbF9vYmpzW2ldLnN0YXRlKTsKKwkJc3Rh dGUtPmdsb2JhbF9vYmpzW2ldLnB0ciA9IE5VTEw7CisJCXN0YXRlLT5nbG9iYWxfb2Jqc1tpXS5z dGF0ZSA9IE5VTEw7CisJCXN0YXRlLT5nbG9iYWxfb2Jqc1tpXS5vbGRfc3RhdGUgPSBOVUxMOwor CQlzdGF0ZS0+Z2xvYmFsX29ianNbaV0ubmV3X3N0YXRlID0gTlVMTDsKKwl9CisJc3RhdGUtPm51 bV9nbG9iYWxfb2JqcyA9IDA7Cit9CisKK2ludCBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3Rh dGUoc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqb2JqX3N0YXRlKQoreworCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2JqX3N0YXRlLT5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGM7CisKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJt LCBjcnRjKSB7CisJCWludCByZXQ7CisKKwkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+ YmFzZS5tdXRleCwKKwkJCQkgICAgICAgc3RhdGUtPmJhc2UuYWNxdWlyZV9jdHgpOworCQlpZiAo cmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlvYmpfc3RhdGUtPmNoYW5nZWQgPSB0cnVlOwor CisJcmV0dXJuIDA7Cit9CisKK2ludCBpbnRlbF9hdG9taWNfc2VyaWFsaXplX2dsb2JhbF9zdGF0 ZShzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlICpvYmpfc3RhdGUpCit7CisJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvYmpfc3RhdGUtPnN0YXRlOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YzsKKworCWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0s IGNydGMpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisKKwkJY3J0 Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsIGNydGMp OworCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQorCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0 ZSk7CisJfQorCisJb2JqX3N0YXRlLT5jaGFuZ2VkID0gdHJ1ZTsKKworCXJldHVybiAwOworfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9nbG9iYWxfc3Rh dGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZ2xvYmFsX3N0YXRlLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNjE2M2E0NjkwMjkKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2dsb2Jh bF9zdGF0ZS5oCkBAIC0wLDAgKzEsODcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBN SVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisK KyNpZm5kZWYgX19JTlRFTF9HTE9CQUxfU1RBVEVfSF9fCisjZGVmaW5lIF9fSU5URUxfR0xPQkFM X1NUQVRFX0hfXworCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCitzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZTsKK3N0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGU7CitzdHJ1Y3QgaW50ZWxfZ2xvYmFs X29iajsKK3N0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGU7CisKK3N0cnVjdCBpbnRlbF9nbG9iYWxf c3RhdGVfZnVuY3MgeworCXN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGUgKigqYXRvbWljX2R1cGxp Y2F0ZV9zdGF0ZSkoc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9iaik7CisJdm9pZCAoKmF0b21p Y19kZXN0cm95X3N0YXRlKShzdHJ1Y3QgaW50ZWxfZ2xvYmFsX29iaiAqb2JqLAorCQkJCSAgICAg c3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqc3RhdGUpOworfTsKKworc3RydWN0IGludGVsX2ds b2JhbF9vYmogeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwlzdHJ1Y3QgaW50ZWxfZ2xvYmFs X3N0YXRlICpzdGF0ZTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlX2Z1bmNzICpm dW5jczsKK307CisKKyNkZWZpbmUgaW50ZWxfZm9yX2VhY2hfZ2xvYmFsX29iaihvYmosIGRldl9w cml2KSBcCisJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICYoZGV2X3ByaXYpLT5nbG9iYWxfb2Jq X2xpc3QsIGhlYWQpCisKKyNkZWZpbmUgZm9yX2VhY2hfbmV3X2dsb2JhbF9vYmpfaW5fc3RhdGUo X19zdGF0ZSwgb2JqLCBuZXdfb2JqX3N0YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kpID0gMDsgXAor CSAgICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9nbG9iYWxfb2JqcyAmJiBcCisJCSAgICAgKChv YmopID0gKF9fc3RhdGUpLT5nbG9iYWxfb2Jqc1tfX2ldLnB0ciwgXAorCQkgICAgICAobmV3X29i al9zdGF0ZSkgPSAoX19zdGF0ZSktPmdsb2JhbF9vYmpzW19faV0ubmV3X3N0YXRlLCAxKTsgXAor CSAgICAgKF9faSkrKykgXAorCQlmb3JfZWFjaF9pZihvYmopCisKKyNkZWZpbmUgZm9yX2VhY2hf b2xkX2dsb2JhbF9vYmpfaW5fc3RhdGUoX19zdGF0ZSwgb2JqLCBuZXdfb2JqX3N0YXRlLCBfX2kp IFwKKwlmb3IgKChfX2kpID0gMDsgXAorCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9nbG9i YWxfb2JqcyAmJiBcCisJCSAgICAgKChvYmopID0gKF9fc3RhdGUpLT5nbG9iYWxfb2Jqc1tfX2ld LnB0ciwgXAorCQkgICAgICAobmV3X29ial9zdGF0ZSkgPSAoX19zdGF0ZSktPmdsb2JhbF9vYmpz W19faV0ub2xkX3N0YXRlLCAxKTsgXAorCSAgICAgKF9faSkrKykgXAorCQlmb3JfZWFjaF9pZihv YmopCisKKyNkZWZpbmUgZm9yX2VhY2hfb2xkbmV3X2dsb2JhbF9vYmpfaW5fc3RhdGUoX19zdGF0 ZSwgb2JqLCBvbGRfb2JqX3N0YXRlLCBuZXdfb2JqX3N0YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kp ID0gMDsgXAorCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9nbG9iYWxfb2JqcyAmJiBcCisJ CSAgICAgKChvYmopID0gKF9fc3RhdGUpLT5nbG9iYWxfb2Jqc1tfX2ldLnB0ciwgXAorCQkgICAg ICAob2xkX29ial9zdGF0ZSkgPSAoX19zdGF0ZSktPmdsb2JhbF9vYmpzW19faV0ub2xkX3N0YXRl LCBcCisJCSAgICAgIChuZXdfb2JqX3N0YXRlKSA9IChfX3N0YXRlKS0+Z2xvYmFsX29ianNbX19p XS5uZXdfc3RhdGUsIDEpOyBcCisJICAgICAoX19pKSsrKSBcCisJCWZvcl9lYWNoX2lmKG9iaikK Kworc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSB7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGU7CisJYm9vbCBjaGFuZ2VkOworfTsKKworc3RydWN0IF9faW50ZWxfZ2xvYmFsX29i anNfc3RhdGUgeworCXN0cnVjdCBpbnRlbF9nbG9iYWxfb2JqICpwdHI7CisJc3RydWN0IGludGVs X2dsb2JhbF9zdGF0ZSAqc3RhdGUsICpvbGRfc3RhdGUsICpuZXdfc3RhdGU7Cit9OworCit2b2lk IGludGVsX2F0b21pY19nbG9iYWxfb2JqX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAorCQkJCSAgc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9iaiwKKwkJCQkgIHN0cnVj dCBpbnRlbF9nbG9iYWxfc3RhdGUgKnN0YXRlLAorCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2ds b2JhbF9zdGF0ZV9mdW5jcyAqZnVuY3MpOwordm9pZCBpbnRlbF9hdG9taWNfZ2xvYmFsX29ial9j bGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKK3N0cnVjdCBpbnRl bF9nbG9iYWxfc3RhdGUgKgoraW50ZWxfYXRvbWljX2dldF9nbG9iYWxfb2JqX3N0YXRlKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgc3RydWN0IGludGVsX2dsb2JhbF9v YmogKm9iaik7CitzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlICoKK2ludGVsX2F0b21pY19nZXRf b2xkX2dsb2JhbF9vYmpfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJ CQkJICAgICAgc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9iaik7CitzdHJ1Y3QgaW50ZWxfZ2xv YmFsX3N0YXRlICoKK2ludGVsX2F0b21pY19nZXRfbmV3X2dsb2JhbF9vYmpfc3RhdGUoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICAgICAgc3RydWN0IGludGVsX2dsb2Jh bF9vYmogKm9iaik7CisKK3ZvaWQgaW50ZWxfYXRvbWljX3N3YXBfZ2xvYmFsX3N0YXRlKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKK3ZvaWQgaW50ZWxfYXRvbWljX2NsZWFyX2ds b2JhbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7CitpbnQgaW50ZWxf YXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGUgKm9ial9z dGF0ZSk7CitpbnQgaW50ZWxfYXRvbWljX3NlcmlhbGl6ZV9nbG9iYWxfc3RhdGUoc3RydWN0IGlu dGVsX2dsb2JhbF9zdGF0ZSAqb2JqX3N0YXRlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCAxNzg3YmZkZDA1N2YuLmI1NThlNjhiNGRiZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcGxsX21n ci5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHNiLmgiCiAjaW5jbHVkZSAiZGlzcGxheS9p bnRlbF9mcm9udGJ1ZmZlci5oIgorI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZ2xvYmFsX3N0YXRl LmgiCiAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgogI2luY2x1ZGUgImRpc3BsYXkv aW50ZWxfb3ByZWdpb24uaCIKIApAQCAtMTEwMCw2ICsxMTAxLDggQEAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgewogCSAqLwogCXN0cnVjdCBtdXRleCBkcGxsX2xvY2s7CiAKKwlzdHJ1Y3QgbGlz dF9oZWFkIGdsb2JhbF9vYmpfbGlzdDsKKwogCS8qCiAJICogRm9yIHJlYWRpbmcgYWN0aXZlX3Bp cGVzLCBjZGNsa19zdGF0ZSBob2xkaW5nIGFueSBjcnRjCiAJICogbG9jayBpcyBzdWZmaWNpZW50 LCBmb3Igd3JpdGluZyBtdXN0IGhvbGQgYWxsIG9mIHRoZW0uCi0tIAoyLjI0LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=