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.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable 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 012DEC432C0 for ; Mon, 18 Nov 2019 08:37:08 +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 D4640206A4 for ; Mon, 18 Nov 2019 08:37:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D4640206A4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=fredlawl.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 B186989FDB; Mon, 18 Nov 2019 08:36:59 +0000 (UTC) Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4DBB89FA5 for ; Mon, 18 Nov 2019 00:35:18 +0000 (UTC) Received: by mail-ot1-x344.google.com with SMTP id 19so3097807otz.1 for ; Sun, 17 Nov 2019 16:35:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=o9a/ARXqmXC+qrG3kibgjJ6rdbT5QPFVjCrcN6rdzu4=; b=pzPmefXljUJsE+hji67SW3unNviYuGX5aGdCi38K3CEvy/C/J/j9ubyvW/fq2WnxOk zQaKedurUxHmCs9pipugi1bKPsE28Rdw1nEWus2xl6rIDL2cE6g+30sEwIHkPxukjF4V oAe4ovJbjHF4emAeG+vYhIkZCg2phw3lRGuQ8jX13lDtDi5V2gop///q7+mQFl1ouf1A 8T+faPkP9SMGt1o4UOc2p+oTPbloZ+p9yA6q/WgcxiNt7vtz6WhhFhYPsL/qg6cdN6IJ CGNqWvnIipKef3NLaff9wp/0BZPA1KUe9rPysEimnSmkCgkXDcWGmn/W8oVlak8F+/wT /Usg== X-Gm-Message-State: APjAAAVR02yDVeoHZGf+DkZBsttyA2TmZ/freDJyIeUinAiIpQN3lx7c g7ag4pSTUXaoypJMgA1CcYH4sA== X-Google-Smtp-Source: APXvYqwvAxsPRnehA/6VGJOoX5IPO7afqVx9iGTMeKnmMS7MaDZ1CUsBmvJh8eBcJ3WmaWpYTxF3bw== X-Received: by 2002:a05:6830:1f4d:: with SMTP id u13mr21476002oth.77.1574037317618; Sun, 17 Nov 2019 16:35:17 -0800 (PST) Received: from com.attlocal.net ([2600:1700:4870:71e0::10]) by smtp.gmail.com with ESMTPSA id d132sm5543922oif.2.2019.11.17.16.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Nov 2019 16:35:16 -0800 (PST) From: Frederick Lawler To: alexander.deucher@amd.com, christian.koenig@amd.com, David1.Zhou@amd.com, airlied@linux.ie, daniel@ffwll.ch, bhelgaas@google.com Subject: [PATCH v2 1/1] drm: Prefer pcie_capability_read_word() Date: Sun, 17 Nov 2019 18:35:13 -0600 Message-Id: <20191118003513.10852-1-fred@fredlawl.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 18 Nov 2019 08:36:58 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fredlawl-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=o9a/ARXqmXC+qrG3kibgjJ6rdbT5QPFVjCrcN6rdzu4=; b=m5i1mxZLFXT5f+wHjLSAe+kiEyMEL6wxggU+FwsleR2Hpu1LO8AzY1Np5NACkqlZW7 4+yssz36f+iD0ptmZ87/oQqBlXyfhtII1f6sDGeLmPx99KealUe9tz/pSI2TuBOUc8z2 8mvgDYG6ar4d5/qnn0lcEeNAMCCYz13LqbJV2TDxsl63FsksY9RrhCASLuoFFsd49V6G kBJzu9SmmwsxY7EMuQty3QS4aZjeynx1UB2hIk09JTb7rmL+u1uR8QgCatr1sIMpU38t Zo/eo1KfszqJet2dVI0DBSWkCitRFe+l+ogivaELsHc7Kl7tLzUQVSX/CuKLhHfUlSor fjNQ== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Frederick Lawler , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191118003513.dsed6elxoAXOgZTBkV_TWCQhnYgpOWtA7PQfMubdRqY@z> Q29tbWl0IDhjMGQzYTAyYzEzMCAoIlBDSTogQWRkIGFjY2Vzc29ycyBmb3IgUENJIEV4cHJlc3Mg Q2FwYWJpbGl0eSIpCmFkZGVkIGFjY2Vzc29ycyBmb3IgdGhlIFBDSSBFeHByZXNzIENhcGFiaWxp dHkgc28gdGhhdCBkcml2ZXJzIGRpZG4ndApuZWVkIHRvIGJlIGF3YXJlIG9mIGRpZmZlcmVuY2Vz IGJldHdlZW4gdjEgYW5kIHYyIG9mIHRoZSBQQ0kKRXhwcmVzcyBDYXBhYmlsaXR5LgoKUmVwbGFj ZSBwY2lfcmVhZF9jb25maWdfd29yZCgpIGFuZCBwY2lfd3JpdGVfY29uZmlnX3dvcmQoKSBjYWxs cyB3aXRoCnBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQoKSBhbmQgcGNpZV9jYXBhYmlsaXR5X3dy aXRlX3dvcmQoKS4KClNpZ25lZC1vZmYtYnk6IEZyZWRlcmljayBMYXdsZXIgPGZyZWRAZnJlZGxh d2wuY29tPgoKLS0tClYyCi0gU3F1YXNoIGJvdGggZHJtIGNvbW1pdHMgaW50byBvbmUKLSBSZWJh c2Ugb250b3Agb2YgZDQ2ZWFjMWU2NThiCi0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Y2lrLmMgfCA2MyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NpLmMgIHwgNzEgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyAgICAgfCA3MCArKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYyAgICAgIHwgNzMgKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTc0IGluc2VydGlvbnMo KyksIDEwMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9jaWsuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npay5jCmluZGV4IDMwNjdi Yjg3NDAzMi4uZjM2OWUzNDA4ZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYwpAQCAtMTM4 NCw3ICsxMzg0LDYgQEAgc3RhdGljIGludCBjaWtfc2V0X3ZjZV9jbG9ja3Moc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHUzMiBldmNsaywgdTMyIGVjY2xrKQogc3RhdGljIHZvaWQgY2lrX3Bj aWVfZ2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0IHBj aV9kZXYgKnJvb3QgPSBhZGV2LT5wZGV2LT5idXMtPnNlbGY7Ci0JaW50IGJyaWRnZV9wb3MsIGdw dV9wb3M7CiAJdTMyIHNwZWVkX2NudGwsIGN1cnJlbnRfZGF0YV9yYXRlOwogCWludCBpOwogCXUx NiB0bXAxNjsKQEAgLTE0MTksMTIgKzE0MTgsNyBAQCBzdGF0aWMgdm9pZCBjaWtfcGNpZV9nZW4z X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJRFJNX0lORk8oImVuYWJsaW5n IFBDSUUgZ2VuIDIgbGluayBzcGVlZHMsIGRpc2FibGUgd2l0aCBhbWRncHUucGNpZV9nZW4yPTBc biIpOwogCX0KIAotCWJyaWRnZV9wb3MgPSBwY2lfcGNpZV9jYXAocm9vdCk7Ci0JaWYgKCFicmlk Z2VfcG9zKQotCQlyZXR1cm47Ci0KLQlncHVfcG9zID0gcGNpX3BjaWVfY2FwKGFkZXYtPnBkZXYp OwotCWlmICghZ3B1X3BvcykKKwlpZiAoIXBjaV9pc19wY2llKHJvb3QpIHx8ICFwY2lfaXNfcGNp ZShhZGV2LT5wZGV2KSkKIAkJcmV0dXJuOwogCiAJaWYgKGFkZXYtPnBtLnBjaWVfZ2VuX21hc2sg JiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjMpIHsKQEAgLTE0MzQsMTQgKzE0Mjgs MTcgQEAgc3RhdGljIHZvaWQgY2lrX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJCQl1MTYgYnJpZGdlX2NmZzIsIGdwdV9jZmcyOwogCQkJdTMyIG1heF9sdywg Y3VycmVudF9sdywgdG1wOwogCi0JCQlwY2lfcmVhZF9jb25maWdfd29yZChyb290LCBicmlkZ2Vf cG9zICsgUENJX0VYUF9MTktDVEwsICZicmlkZ2VfY2ZnKTsKLQkJCXBjaV9yZWFkX2NvbmZpZ193 b3JkKGFkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgJmdwdV9jZmcpOworCQkJ cGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyb290LCBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCSAg JmJyaWRnZV9jZmcpOworCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhZGV2LT5wZGV2LCBQ Q0lfRVhQX0xOS0NUTCwKKwkJCQkJCSAgJmdwdV9jZmcpOwogCiAJCQl0bXAxNiA9IGJyaWRnZV9j ZmcgfCBQQ0lfRVhQX0xOS0NUTF9IQVdEOwotCQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHJvb3Qs IGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgdG1wMTYpOworCQkJcGNpZV9jYXBhYmlsaXR5 X3dyaXRlX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsKIAogCQkJdG1wMTYgPSBn cHVfY2ZnIHwgUENJX0VYUF9MTktDVExfSEFXRDsKLQkJCXBjaV93cml0ZV9jb25maWdfd29yZChh ZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsKKwkJCXBjaWVfY2Fw YWJpbGl0eV93cml0ZV93b3JkKGFkZXYtPnBkZXYsIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJICAg dG1wMTYpOwogCiAJCQl0bXAgPSBSUkVHMzJfUENJRShpeFBDSUVfTENfU1RBVFVTMSk7CiAJCQlt YXhfbHcgPSAodG1wICYgUENJRV9MQ19TVEFUVVMxX19MQ19ERVRFQ1RFRF9MSU5LX1dJRFRIX01B U0spID4+CkBAIC0xNDY1LDE1ICsxNDYyLDIzIEBAIHN0YXRpYyB2b2lkIGNpa19wY2llX2dlbjNf ZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJCQlmb3IgKGkgPSAwOyBpIDwg MTA7IGkrKykgewogCQkJCS8qIGNoZWNrIHN0YXR1cyAqLwotCQkJCXBjaV9yZWFkX2NvbmZpZ193 b3JkKGFkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0RFVlNUQSwgJnRtcDE2KTsKKwkJCQlw Y2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKGFkZXYtPnBkZXYsCisJCQkJCQkJICBQQ0lfRVhQX0RF VlNUQSwKKwkJCQkJCQkgICZ0bXAxNik7CiAJCQkJaWYgKHRtcDE2ICYgUENJX0VYUF9ERVZTVEFf VFJQTkQpCiAJCQkJCWJyZWFrOwogCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocm9vdCwgYnJp ZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMLCAmYnJpZGdlX2NmZyk7Ci0JCQkJcGNpX3JlYWRfY29u ZmlnX3dvcmQoYWRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMLCAmZ3B1X2NmZyk7 CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyb290LCBQQ0lfRVhQX0xOS0NUTCwKKwkJ CQkJCQkgICZicmlkZ2VfY2ZnKTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKGFkZXYt PnBkZXYsCisJCQkJCQkJICBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCQkgICZncHVfY2ZnKTsKIAot CQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NU TDIsICZicmlkZ2VfY2ZnMik7Ci0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQoYWRldi0+cGRldiwg Z3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgJmdwdV9jZmcyKTsKKwkJCQlwY2llX2NhcGFiaWxp dHlfcmVhZF93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMMiwKKwkJCQkJCQkgICZicmlkZ2VfY2Zn Mik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhZGV2LT5wZGV2LAorCQkJCQkJCSAg UENJX0VYUF9MTktDVEwyLAorCQkJCQkJCSAgJmdwdV9jZmcyKTsKIAogCQkJCXRtcCA9IFJSRUcz Ml9QQ0lFKGl4UENJRV9MQ19DTlRMNCk7CiAJCQkJdG1wIHw9IFBDSUVfTENfQ05UTDRfX0xDX1NF VF9RVUlFU0NFX01BU0s7CkBAIC0xNDg2LDE4ICsxNDkxLDI1IEBAIHN0YXRpYyB2b2lkIGNpa19w Y2llX2dlbjNfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJCW1zbGVlcCgx MDApOwogCiAJCQkJLyogbGlua2N0bCAqLwotCQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJvb3Qs IGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgJnRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxp dHlfcmVhZF93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAgJnRtcDE2KTsKIAkJ CQl0bXAxNiAmPSB+UENJX0VYUF9MTktDVExfSEFXRDsKIAkJCQl0bXAxNiB8PSAoYnJpZGdlX2Nm ZyAmIFBDSV9FWFBfTE5LQ1RMX0hBV0QpOwotCQkJCXBjaV93cml0ZV9jb25maWdfd29yZChyb290 LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxp dHlfd3JpdGVfd29yZChyb290LCBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCQkgICB0bXAxNik7CiAK LQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9M TktDVEwsICZ0bXAxNik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhZGV2LT5wZGV2 LAorCQkJCQkJCSAgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAmdG1wMTYpOwogCQkJCXRtcDE2 ICY9IH5QQ0lfRVhQX0xOS0NUTF9IQVdEOwogCQkJCXRtcDE2IHw9IChncHVfY2ZnICYgUENJX0VY UF9MTktDVExfSEFXRCk7Ci0JCQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGFkZXYtPnBkZXYsIGdw dV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV93cml0 ZV93b3JkKGFkZXYtPnBkZXYsCisJCQkJCQkJICAgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAg dG1wMTYpOwogCiAJCQkJLyogbGlua2N0bDIgKi8KLQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChy b290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmdG1wMTYpOworCQkJCXBjaWVfY2Fw YWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwyLAorCQkJCQkJCSAgJnRtcDE2 KTsKIAkJCQl0bXAxNiAmPSB+KFBDSV9FWFBfTE5LQ1RMMl9FTlRFUl9DT01QIHwKIAkJCQkJICAg UENJX0VYUF9MTktDVEwyX1RYX01BUkdJTik7CiAJCQkJdG1wMTYgfD0gKGJyaWRnZV9jZmcyICYK QEAgLTE1MTEsNyArMTUyMyw5IEBAIHN0YXRpYyB2b2lkIGNpa19wY2llX2dlbjNfZW5hYmxlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJCXRtcDE2IHw9IChncHVfY2ZnMiAmCiAJCQkJ CSAgKFBDSV9FWFBfTE5LQ1RMMl9FTlRFUl9DT01QIHwKIAkJCQkJICAgUENJX0VYUF9MTktDVEwy X1RYX01BUkdJTikpOwotCQkJCXBjaV93cml0ZV9jb25maWdfd29yZChhZGV2LT5wZGV2LCBncHVf cG9zICsgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3dyaXRl X3dvcmQoYWRldi0+cGRldiwKKwkJCQkJCQkgICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJCQkJICAg dG1wMTYpOwogCiAJCQkJdG1wID0gUlJFRzMyX1BDSUUoaXhQQ0lFX0xDX0NOVEw0KTsKIAkJCQl0 bXAgJj0gflBDSUVfTENfQ05UTDRfX0xDX1NFVF9RVUlFU0NFX01BU0s7CkBAIC0xNTI2LDE1ICsx NTQwLDE2IEBAIHN0YXRpYyB2b2lkIGNpa19wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCXNwZWVkX2NudGwgJj0gflBDSUVfTENfU1BFRURfQ05UTF9fTENfRk9S Q0VfRElTX1NXX1NQRUVEX0NIQU5HRV9NQVNLOwogCVdSRUczMl9QQ0lFKGl4UENJRV9MQ19TUEVF RF9DTlRMLCBzcGVlZF9jbnRsKTsKIAotCXBjaV9yZWFkX2NvbmZpZ193b3JkKGFkZXYtPnBkZXYs IGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIsICZ0bXAxNik7CisJcGNpZV9jYXBhYmlsaXR5X3Jl YWRfd29yZChhZGV2LT5wZGV2LCBQQ0lfRVhQX0xOS0NUTDIsICZ0bXAxNik7CiAJdG1wMTYgJj0g flBDSV9FWFBfTE5LQ1RMMl9UTFM7CisKIAlpZiAoYWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENB SUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VOMykKIAkJdG1wMTYgfD0gUENJX0VYUF9MTktD VEwyX1RMU184XzBHVDsgLyogZ2VuMyAqLwogCWVsc2UgaWYgKGFkZXYtPnBtLnBjaWVfZ2VuX21h c2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjIpCiAJCXRtcDE2IHw9IFBDSV9F WFBfTE5LQ1RMMl9UTFNfNV8wR1Q7IC8qIGdlbjIgKi8KIAllbHNlCiAJCXRtcDE2IHw9IFBDSV9F WFBfTE5LQ1RMMl9UTFNfMl81R1Q7IC8qIGdlbjEgKi8KLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQo YWRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOworCXBjaWVfY2Fw YWJpbGl0eV93cml0ZV93b3JkKGFkZXYtPnBkZXYsIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOwog CiAJc3BlZWRfY250bCA9IFJSRUczMl9QQ0lFKGl4UENJRV9MQ19TUEVFRF9DTlRMKTsKIAlzcGVl ZF9jbnRsIHw9IFBDSUVfTENfU1BFRURfQ05UTF9fTENfSU5JVElBVEVfTElOS19TUEVFRF9DSEFO R0VfTUFTSzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaS5jCmluZGV4IGE3ZGNiMGQwZjAzOS4uOWY4MmJl ODc5MjI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpLmMKQEAgLTE2MzMsNyArMTYzMyw2IEBAIHN0 YXRpYyB2b2lkIHNpX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIHN0YXRpYyB2b2lkIHNpX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnJvb3QgPSBhZGV2LT5wZGV2LT5idXMtPnNl bGY7Ci0JaW50IGJyaWRnZV9wb3MsIGdwdV9wb3M7CiAJdTMyIHNwZWVkX2NudGwsIGN1cnJlbnRf ZGF0YV9yYXRlOwogCWludCBpOwogCXUxNiB0bXAxNjsKQEAgLTE2NjgsMTIgKzE2NjcsNyBAQCBz dGF0aWMgdm9pZCBzaV9wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCQlEUk1fSU5GTygiZW5hYmxpbmcgUENJRSBnZW4gMiBsaW5rIHNwZWVkcywgZGlzYWJsZSB3 aXRoIGFtZGdwdS5wY2llX2dlbjI9MFxuIik7CiAJfQogCi0JYnJpZGdlX3BvcyA9IHBjaV9wY2ll X2NhcChyb290KTsKLQlpZiAoIWJyaWRnZV9wb3MpCi0JCXJldHVybjsKLQotCWdwdV9wb3MgPSBw Y2lfcGNpZV9jYXAoYWRldi0+cGRldik7Ci0JaWYgKCFncHVfcG9zKQorCWlmICghcGNpX2lzX3Bj aWUocm9vdCkgfHwgIXBjaV9pc19wY2llKGFkZXYtPnBkZXYpKQogCQlyZXR1cm47CiAKIAlpZiAo YWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VO MykgewpAQCAtMTY4MiwxNCArMTY3NiwxNyBAQCBzdGF0aWMgdm9pZCBzaV9wY2llX2dlbjNfZW5h YmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJdTE2IGJyaWRnZV9jZmcyLCBncHVf Y2ZnMjsKIAkJCXUzMiBtYXhfbHcsIGN1cnJlbnRfbHcsIHRtcDsKIAotCQkJcGNpX3JlYWRfY29u ZmlnX3dvcmQocm9vdCwgYnJpZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMLCAmYnJpZGdlX2NmZyk7 Ci0JCQlwY2lfcmVhZF9jb25maWdfd29yZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9M TktDVEwsICZncHVfY2ZnKTsKKwkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJ X0VYUF9MTktDVEwsCisJCQkJCQkgICZicmlkZ2VfY2ZnKTsKKwkJCXBjaWVfY2FwYWJpbGl0eV9y ZWFkX3dvcmQoYWRldi0+cGRldiwgUENJX0VYUF9MTktDVEwsCisJCQkJCQkgICZncHVfY2ZnKTsK IAogCQkJdG1wMTYgPSBicmlkZ2VfY2ZnIHwgUENJX0VYUF9MTktDVExfSEFXRDsKLQkJCXBjaV93 cml0ZV9jb25maWdfd29yZChyb290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2 KTsKKwkJCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMLCB0 bXAxNik7CiAKIAkJCXRtcDE2ID0gZ3B1X2NmZyB8IFBDSV9FWFBfTE5LQ1RMX0hBV0Q7Ci0JCQlw Y2lfd3JpdGVfY29uZmlnX3dvcmQoYWRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RM LCB0bXAxNik7CisJCQlwY2llX2NhcGFiaWxpdHlfd3JpdGVfd29yZChhZGV2LT5wZGV2LCBQQ0lf RVhQX0xOS0NUTCwKKwkJCQkJCSAgIHRtcDE2KTsKIAogCQkJdG1wID0gUlJFRzMyX1BDSUUoUENJ RV9MQ19TVEFUVVMxKTsKIAkJCW1heF9sdyA9ICh0bXAgJiBMQ19ERVRFQ1RFRF9MSU5LX1dJRFRI X01BU0spID4+IExDX0RFVEVDVEVEX0xJTktfV0lEVEhfU0hJRlQ7CkBAIC0xNzA2LDE1ICsxNzAz LDIzIEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJCQl9CiAKIAkJCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0JCQkJcGNp X3JlYWRfY29uZmlnX3dvcmQoYWRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfREVWU1RBLCAm dG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQoYWRldi0+cGRldiwKKwkJCQkJ CQkgIFBDSV9FWFBfREVWU1RBLAorCQkJCQkJCSAgJnRtcDE2KTsKIAkJCQlpZiAodG1wMTYgJiBQ Q0lfRVhQX0RFVlNUQV9UUlBORCkKIAkJCQkJYnJlYWs7CiAKLQkJCQlwY2lfcmVhZF9jb25maWdf d29yZChyb290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsICZicmlkZ2VfY2ZnKTsKLQkJ CQlwY2lfcmVhZF9jb25maWdfd29yZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktD VEwsICZncHVfY2ZnKTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJvb3QsIFBDSV9F WFBfTE5LQ1RMLAorCQkJCQkJCSAgJmJyaWRnZV9jZmcpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9y ZWFkX3dvcmQoYWRldi0+cGRldiwKKwkJCQkJCQkgIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAg JmdwdV9jZmcpOwogCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocm9vdCwgYnJpZGdlX3BvcyAr IFBDSV9FWFBfTE5LQ1RMMiwgJmJyaWRnZV9jZmcyKTsKLQkJCQlwY2lfcmVhZF9jb25maWdfd29y ZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmZ3B1X2NmZzIpOworCQkJ CXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwyLAorCQkJCQkJ CSAgJmJyaWRnZV9jZmcyKTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKGFkZXYtPnBk ZXYsCisJCQkJCQkJICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJCQkJICAmZ3B1X2NmZzIpOwogCiAJ CQkJdG1wID0gUlJFRzMyX1BDSUVfUE9SVChQQ0lFX0xDX0NOVEw0KTsKIAkJCQl0bXAgfD0gTENf U0VUX1FVSUVTQ0U7CkBAIC0xNzI2LDMxICsxNzMxLDQ0IEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVf Z2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAkJCQltZGVsYXkoMTAw KTsKIAotCQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQ X0xOS0NUTCwgJnRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJvb3QsIFBD SV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAgJnRtcDE2KTsKIAkJCQl0bXAxNiAmPSB+UENJX0VYUF9M TktDVExfSEFXRDsKIAkJCQl0bXAxNiB8PSAoYnJpZGdlX2NmZyAmIFBDSV9FWFBfTE5LQ1RMX0hB V0QpOwotCQkJCXBjaV93cml0ZV9jb25maWdfd29yZChyb290LCBicmlkZ2VfcG9zICsgUENJX0VY UF9MTktDVEwsIHRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfd3JpdGVfd29yZChyb290LCBQ Q0lfRVhQX0xOS0NUTCwKKwkJCQkJCQkgICB0bXAxNik7CiAKLQkJCQlwY2lfcmVhZF9jb25maWdf d29yZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwsICZ0bXAxNik7CisJCQkJ cGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhZGV2LT5wZGV2LAorCQkJCQkJCSAgUENJX0VYUF9M TktDVEwsCisJCQkJCQkJICAmdG1wMTYpOwogCQkJCXRtcDE2ICY9IH5QQ0lfRVhQX0xOS0NUTF9I QVdEOwogCQkJCXRtcDE2IHw9IChncHVfY2ZnICYgUENJX0VYUF9MTktDVExfSEFXRCk7Ci0JCQkJ cGNpX3dyaXRlX2NvbmZpZ193b3JkKGFkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NU TCwgdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKGFkZXYtPnBkZXYsCisJ CQkJCQkJICAgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAgdG1wMTYpOwogCi0JCQkJcGNpX3Jl YWRfY29uZmlnX3dvcmQocm9vdCwgYnJpZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgJnRtcDE2 KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMMiwK KwkJCQkJCQkgICZ0bXAxNik7CiAJCQkJdG1wMTYgJj0gfihQQ0lfRVhQX0xOS0NUTDJfRU5URVJf Q09NUCB8CiAJCQkJCSAgIFBDSV9FWFBfTE5LQ1RMMl9UWF9NQVJHSU4pOwogCQkJCXRtcDE2IHw9 IChicmlkZ2VfY2ZnMiAmCiAJCQkJCSAgKFBDSV9FWFBfTE5LQ1RMMl9FTlRFUl9DT01QIHwKIAkJ CQkJICAgUENJX0VYUF9MTktDVEwyX1RYX01BUkdJTikpOwotCQkJCXBjaV93cml0ZV9jb25maWdf d29yZChyb290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CisJCQkJcGNp ZV9jYXBhYmlsaXR5X3dyaXRlX3dvcmQocm9vdCwKKwkJCQkJCQkgICBQQ0lfRVhQX0xOS0NUTDIs CisJCQkJCQkJICAgdG1wMTYpOwogCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQoYWRldi0+cGRl diwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgJnRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxp dHlfcmVhZF93b3JkKGFkZXYtPnBkZXYsCisJCQkJCQkJICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJ CQkJICAmdG1wMTYpOwogCQkJCXRtcDE2ICY9IH4oUENJX0VYUF9MTktDVEwyX0VOVEVSX0NPTVAg fAogCQkJCQkgICBQQ0lfRVhQX0xOS0NUTDJfVFhfTUFSR0lOKTsKIAkJCQl0bXAxNiB8PSAoZ3B1 X2NmZzIgJgogCQkJCQkgIChQQ0lfRVhQX0xOS0NUTDJfRU5URVJfQ09NUCB8CiAJCQkJCSAgIFBD SV9FWFBfTE5LQ1RMMl9UWF9NQVJHSU4pKTsKLQkJCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoYWRl di0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOworCQkJCXBjaWVfY2Fw YWJpbGl0eV93cml0ZV93b3JkKGFkZXYtPnBkZXYsCisJCQkJCQkJICAgUENJX0VYUF9MTktDVEwy LAorCQkJCQkJCSAgIHRtcDE2KTsKIAogCQkJCXRtcCA9IFJSRUczMl9QQ0lFX1BPUlQoUENJRV9M Q19DTlRMNCk7CiAJCQkJdG1wICY9IH5MQ19TRVRfUVVJRVNDRTsKQEAgLTE3NjMsMTUgKzE3ODEs MTYgQEAgc3RhdGljIHZvaWQgc2lfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKIAlzcGVlZF9jbnRsICY9IH5MQ19GT1JDRV9ESVNfU1dfU1BFRURfQ0hBTkdFOwog CVdSRUczMl9QQ0lFX1BPUlQoUENJRV9MQ19TUEVFRF9DTlRMLCBzcGVlZF9jbnRsKTsKIAotCXBj aV9yZWFkX2NvbmZpZ193b3JkKGFkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIs ICZ0bXAxNik7CisJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChhZGV2LT5wZGV2LCBQQ0lfRVhQ X0xOS0NUTDIsICZ0bXAxNik7CiAJdG1wMTYgJj0gflBDSV9FWFBfTE5LQ1RMMl9UTFM7CisKIAlp ZiAoYWRldi0+cG0ucGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRf R0VOMykKIAkJdG1wMTYgfD0gUENJX0VYUF9MTktDVEwyX1RMU184XzBHVDsgLyogZ2VuMyAqLwog CWVsc2UgaWYgKGFkZXYtPnBtLnBjaWVfZ2VuX21hc2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9T VVBQT1JUX0dFTjIpCiAJCXRtcDE2IHw9IFBDSV9FWFBfTE5LQ1RMMl9UTFNfNV8wR1Q7IC8qIGdl bjIgKi8KIAllbHNlCiAJCXRtcDE2IHw9IFBDSV9FWFBfTE5LQ1RMMl9UTFNfMl81R1Q7IC8qIGdl bjEgKi8KLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoYWRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9F WFBfTE5LQ1RMMiwgdG1wMTYpOworCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKGFkZXYtPnBk ZXYsIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOwogCiAJc3BlZWRfY250bCA9IFJSRUczMl9QQ0lF X1BPUlQoUENJRV9MQ19TUEVFRF9DTlRMKTsKIAlzcGVlZF9jbnRsIHw9IExDX0lOSVRJQVRFX0xJ TktfU1BFRURfQ0hBTkdFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMKaW5kZXggYTI4MDQ0MmM4MWFhLi4wOWE0 NzA5ZTY3ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwpAQCAtOTUwNCw3ICs5NTA0LDYgQEAgc3RhdGlj IHZvaWQgY2lrX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7 CiAJc3RydWN0IHBjaV9kZXYgKnJvb3QgPSByZGV2LT5wZGV2LT5idXMtPnNlbGY7CiAJZW51bSBw Y2lfYnVzX3NwZWVkIHNwZWVkX2NhcDsKLQlpbnQgYnJpZGdlX3BvcywgZ3B1X3BvczsKIAl1MzIg c3BlZWRfY250bCwgY3VycmVudF9kYXRhX3JhdGU7CiAJaW50IGk7CiAJdTE2IHRtcDE2OwpAQCAt OTU0NiwxMiArOTU0NSw3IEBAIHN0YXRpYyB2b2lkIGNpa19wY2llX2dlbjNfZW5hYmxlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQogCQlEUk1fSU5GTygiZW5hYmxpbmcgUENJRSBnZW4gMiBs aW5rIHNwZWVkcywgZGlzYWJsZSB3aXRoIHJhZGVvbi5wY2llX2dlbjI9MFxuIik7CiAJfQogCi0J YnJpZGdlX3BvcyA9IHBjaV9wY2llX2NhcChyb290KTsKLQlpZiAoIWJyaWRnZV9wb3MpCi0JCXJl dHVybjsKLQotCWdwdV9wb3MgPSBwY2lfcGNpZV9jYXAocmRldi0+cGRldik7Ci0JaWYgKCFncHVf cG9zKQorCWlmICghcGNpX2lzX3BjaWUocm9vdCkgfHwgIXBjaV9pc19wY2llKHJkZXYtPnBkZXYp KQogCQlyZXR1cm47CiAKIAlpZiAoc3BlZWRfY2FwID09IFBDSUVfU1BFRURfOF8wR1QpIHsKQEAg LTk1NjEsMTQgKzk1NTUsMTcgQEAgc3RhdGljIHZvaWQgY2lrX3BjaWVfZ2VuM19lbmFibGUoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCQl1MTYgYnJpZGdlX2NmZzIsIGdwdV9jZmcyOwog CQkJdTMyIG1heF9sdywgY3VycmVudF9sdywgdG1wOwogCi0JCQlwY2lfcmVhZF9jb25maWdfd29y ZChyb290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsICZicmlkZ2VfY2ZnKTsKLQkJCXBj aV9yZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwg JmdwdV9jZmcpOworCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyb290LCBQQ0lfRVhQX0xO S0NUTCwKKwkJCQkJCSAgJmJyaWRnZV9jZmcpOworCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29y ZChyZGV2LT5wZGV2LCBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCSAgJmdwdV9jZmcpOwogCiAJCQl0 bXAxNiA9IGJyaWRnZV9jZmcgfCBQQ0lfRVhQX0xOS0NUTF9IQVdEOwotCQkJcGNpX3dyaXRlX2Nv bmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgdG1wMTYpOworCQkJ cGNpZV9jYXBhYmlsaXR5X3dyaXRlX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsK IAogCQkJdG1wMTYgPSBncHVfY2ZnIHwgUENJX0VYUF9MTktDVExfSEFXRDsKLQkJCXBjaV93cml0 ZV9jb25maWdfd29yZChyZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2 KTsKKwkJCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKHJkZXYtPnBkZXYsIFBDSV9FWFBfTE5L Q1RMLAorCQkJCQkJICAgdG1wMTYpOwogCiAJCQl0bXAgPSBSUkVHMzJfUENJRV9QT1JUKFBDSUVf TENfU1RBVFVTMSk7CiAJCQltYXhfbHcgPSAodG1wICYgTENfREVURUNURURfTElOS19XSURUSF9N QVNLKSA+PiBMQ19ERVRFQ1RFRF9MSU5LX1dJRFRIX1NISUZUOwpAQCAtOTU4NiwxNSArOTU4Mywy MyBAQCBzdGF0aWMgdm9pZCBjaWtfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldikKIAogCQkJZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsKIAkJCQkvKiBjaGVjayBz dGF0dXMgKi8KLQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChyZGV2LT5wZGV2LCBncHVfcG9zICsg UENJX0VYUF9ERVZTVEEsICZ0bXAxNik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChy ZGV2LT5wZGV2LAorCQkJCQkJCSAgUENJX0VYUF9ERVZTVEEsCisJCQkJCQkJICAmdG1wMTYpOwog CQkJCWlmICh0bXAxNiAmIFBDSV9FWFBfREVWU1RBX1RSUE5EKQogCQkJCQlicmVhazsKIAotCQkJ CXBjaV9yZWFkX2NvbmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwg JmJyaWRnZV9jZmcpOwotCQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYsIGdwdV9w b3MgKyBQQ0lfRVhQX0xOS0NUTCwgJmdwdV9jZmcpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFk X3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAmYnJpZGdlX2NmZyk7CisJCQkJ cGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyZGV2LT5wZGV2LAorCQkJCQkJCSAgUENJX0VYUF9M TktDVEwsCisJCQkJCQkJICAmZ3B1X2NmZyk7CiAKLQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChy b290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmYnJpZGdlX2NmZzIpOwotCQkJCXBj aV9yZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIs ICZncHVfY2ZnMik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyb290LCBQQ0lfRVhQ X0xOS0NUTDIsCisJCQkJCQkJICAmYnJpZGdlX2NmZzIpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9y ZWFkX3dvcmQocmRldi0+cGRldiwKKwkJCQkJCQkgIFBDSV9FWFBfTE5LQ1RMMiwKKwkJCQkJCQkg ICZncHVfY2ZnMik7CiAKIAkJCQl0bXAgPSBSUkVHMzJfUENJRV9QT1JUKFBDSUVfTENfQ05UTDQp OwogCQkJCXRtcCB8PSBMQ19TRVRfUVVJRVNDRTsKQEAgLTk2MDcsMzIgKzk2MTIsNDUgQEAgc3Rh dGljIHZvaWQgY2lrX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp CiAJCQkJbXNsZWVwKDEwMCk7CiAKIAkJCQkvKiBsaW5rY3RsICovCi0JCQkJcGNpX3JlYWRfY29u ZmlnX3dvcmQocm9vdCwgYnJpZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMLCAmdG1wMTYpOworCQkJ CXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJ ICAmdG1wMTYpOwogCQkJCXRtcDE2ICY9IH5QQ0lfRVhQX0xOS0NUTF9IQVdEOwogCQkJCXRtcDE2 IHw9IChicmlkZ2VfY2ZnICYgUENJX0VYUF9MTktDVExfSEFXRCk7Ci0JCQkJcGNpX3dyaXRlX2Nv bmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTCwgdG1wMTYpOworCQkJ CXBjaWVfY2FwYWJpbGl0eV93cml0ZV93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJ CSAgIHRtcDE2KTsKIAotCQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYsIGdwdV9w b3MgKyBQQ0lfRVhQX0xOS0NUTCwgJnRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93 b3JkKHJkZXYtPnBkZXYsCisJCQkJCQkJICBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCQkgICZ0bXAx Nik7CiAJCQkJdG1wMTYgJj0gflBDSV9FWFBfTE5LQ1RMX0hBV0Q7CiAJCQkJdG1wMTYgfD0gKGdw dV9jZmcgJiBQQ0lfRVhQX0xOS0NUTF9IQVdEKTsKLQkJCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQo cmRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMLCB0bXAxNik7CisJCQkJcGNpZV9j YXBhYmlsaXR5X3dyaXRlX3dvcmQocmRldi0+cGRldiwKKwkJCQkJCQkgICBQQ0lfRVhQX0xOS0NU TCwKKwkJCQkJCQkgICB0bXAxNik7CiAKIAkJCQkvKiBsaW5rY3RsMiAqLwotCQkJCXBjaV9yZWFk X2NvbmZpZ193b3JkKHJvb3QsIGJyaWRnZV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIsICZ0bXAxNik7 CisJCQkJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyb290LCBQQ0lfRVhQX0xOS0NUTDIsCisJ CQkJCQkJICAmdG1wMTYpOwogCQkJCXRtcDE2ICY9IH4oUENJX0VYUF9MTktDVEwyX0VOVEVSX0NP TVAgfAogCQkJCQkgICBQQ0lfRVhQX0xOS0NUTDJfVFhfTUFSR0lOKTsKIAkJCQl0bXAxNiB8PSAo YnJpZGdlX2NmZzIgJgogCQkJCQkgIChQQ0lfRVhQX0xOS0NUTDJfRU5URVJfQ09NUCB8CiAJCQkJ CSAgIFBDSV9FWFBfTE5LQ1RMMl9UWF9NQVJHSU4pKTsKLQkJCQlwY2lfd3JpdGVfY29uZmlnX3dv cmQocm9vdCwgYnJpZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOworCQkJCXBjaWVf Y2FwYWJpbGl0eV93cml0ZV93b3JkKHJvb3QsCisJCQkJCQkJICAgUENJX0VYUF9MTktDVEwyLAor CQkJCQkJCSAgIHRtcDE2KTsKIAotCQkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYs IGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIsICZ0bXAxNik7CisJCQkJcGNpZV9jYXBhYmlsaXR5 X3JlYWRfd29yZChyZGV2LT5wZGV2LAorCQkJCQkJCSAgUENJX0VYUF9MTktDVEwyLAorCQkJCQkJ CSAgJnRtcDE2KTsKIAkJCQl0bXAxNiAmPSB+KFBDSV9FWFBfTE5LQ1RMMl9FTlRFUl9DT01QIHwK IAkJCQkJICAgUENJX0VYUF9MTktDVEwyX1RYX01BUkdJTik7CiAJCQkJdG1wMTYgfD0gKGdwdV9j ZmcyICYKIAkJCQkJICAoUENJX0VYUF9MTktDVEwyX0VOVEVSX0NPTVAgfAogCQkJCQkgICBQQ0lf RVhQX0xOS0NUTDJfVFhfTUFSR0lOKSk7Ci0JCQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHJkZXYt PnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIsIHRtcDE2KTsKKwkJCQlwY2llX2NhcGFi aWxpdHlfd3JpdGVfd29yZChyZGV2LT5wZGV2LAorCQkJCQkJCSAgIFBDSV9FWFBfTE5LQ1RMMiwK KwkJCQkJCQkgICB0bXAxNik7CiAKIAkJCQl0bXAgPSBSUkVHMzJfUENJRV9QT1JUKFBDSUVfTENf Q05UTDQpOwogCQkJCXRtcCAmPSB+TENfU0VUX1FVSUVTQ0U7CkBAIC05NjQ2LDcgKzk2NjQsNyBA QCBzdGF0aWMgdm9pZCBjaWtfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKIAlzcGVlZF9jbnRsICY9IH5MQ19GT1JDRV9ESVNfU1dfU1BFRURfQ0hBTkdFOwogCVdS RUczMl9QQ0lFX1BPUlQoUENJRV9MQ19TUEVFRF9DTlRMLCBzcGVlZF9jbnRsKTsKIAotCXBjaV9y ZWFkX2NvbmZpZ193b3JkKHJkZXYtPnBkZXYsIGdwdV9wb3MgKyBQQ0lfRVhQX0xOS0NUTDIsICZ0 bXAxNik7CisJcGNpZV9jYXBhYmlsaXR5X3JlYWRfd29yZChyZGV2LT5wZGV2LCBQQ0lfRVhQX0xO S0NUTDIsICZ0bXAxNik7CiAJdG1wMTYgJj0gflBDSV9FWFBfTE5LQ1RMMl9UTFM7CiAJaWYgKHNw ZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzhfMEdUKQogCQl0bXAxNiB8PSBQQ0lfRVhQX0xOS0NUTDJf VExTXzhfMEdUOyAvKiBnZW4zICovCkBAIC05NjU0LDcgKzk2NzIsNyBAQCBzdGF0aWMgdm9pZCBj aWtfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJdG1wMTYg fD0gUENJX0VYUF9MTktDVEwyX1RMU181XzBHVDsgLyogZ2VuMiAqLwogCWVsc2UKIAkJdG1wMTYg fD0gUENJX0VYUF9MTktDVEwyX1RMU18yXzVHVDsgLyogZ2VuMSAqLwotCXBjaV93cml0ZV9jb25m aWdfd29yZChyZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CisJ cGNpZV9jYXBhYmlsaXR5X3dyaXRlX3dvcmQocmRldi0+cGRldiwgUENJX0VYUF9MTktDVEwyLCB0 bXAxNik7CiAKIAlzcGVlZF9jbnRsID0gUlJFRzMyX1BDSUVfUE9SVChQQ0lFX0xDX1NQRUVEX0NO VEwpOwogCXNwZWVkX2NudGwgfD0gTENfSU5JVElBVEVfTElOS19TUEVFRF9DSEFOR0U7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3NpLmMKaW5kZXggNTI5ZTcwYTQyMDE5Li42N2E5OGIzMzcwZDEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Np LmMKQEAgLTMyNTcsNyArMzI1Nyw3IEBAIHN0YXRpYyB2b2lkIHNpX2dwdV9pbml0KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogCQkvKiBYWFggd2hhdCBhYm91dCAxMj8gKi8KIAkJcmRldi0+ Y29uZmlnLnNpLnRpbGVfY29uZmlnIHw9ICgzIDw8IDApOwogCQlicmVhazsKLQl9CQorCX0KIAlz d2l0Y2ggKChtY19hcmJfcmFtY2ZnICYgTk9PRkJBTktfTUFTSykgPj4gTk9PRkJBTktfU0hJRlQp IHsKIAljYXNlIDA6IC8qIGZvdXIgYmFua3MgKi8KIAkJcmRldi0+Y29uZmlnLnNpLnRpbGVfY29u ZmlnIHw9IDAgPDwgNDsKQEAgLTcwODcsNyArNzA4Nyw2IEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVf Z2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7CiAJc3RydWN0IHBjaV9k ZXYgKnJvb3QgPSByZGV2LT5wZGV2LT5idXMtPnNlbGY7CiAJZW51bSBwY2lfYnVzX3NwZWVkIHNw ZWVkX2NhcDsKLQlpbnQgYnJpZGdlX3BvcywgZ3B1X3BvczsKIAl1MzIgc3BlZWRfY250bCwgY3Vy cmVudF9kYXRhX3JhdGU7CiAJaW50IGk7CiAJdTE2IHRtcDE2OwpAQCAtNzEyOSwxMiArNzEyOCw3 IEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCiAJCURSTV9JTkZPKCJlbmFibGluZyBQQ0lFIGdlbiAyIGxpbmsgc3BlZWRzLCBkaXNh YmxlIHdpdGggcmFkZW9uLnBjaWVfZ2VuMj0wXG4iKTsKIAl9CiAKLQlicmlkZ2VfcG9zID0gcGNp X3BjaWVfY2FwKHJvb3QpOwotCWlmICghYnJpZGdlX3BvcykKLQkJcmV0dXJuOwotCi0JZ3B1X3Bv cyA9IHBjaV9wY2llX2NhcChyZGV2LT5wZGV2KTsKLQlpZiAoIWdwdV9wb3MpCisJaWYgKCFwY2lf aXNfcGNpZShyb290KSB8fCAhcGNpX2lzX3BjaWUocmRldi0+cGRldikpCiAJCXJldHVybjsKIAog CWlmIChzcGVlZF9jYXAgPT0gUENJRV9TUEVFRF84XzBHVCkgewpAQCAtNzE0NCwxNCArNzEzOCwx NyBAQCBzdGF0aWMgdm9pZCBzaV9wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQogCQkJdTE2IGJyaWRnZV9jZmcyLCBncHVfY2ZnMjsKIAkJCXUzMiBtYXhfbHcsIGN1 cnJlbnRfbHcsIHRtcDsKIAotCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocm9vdCwgYnJpZGdlX3Bv cyArIFBDSV9FWFBfTE5LQ1RMLCAmYnJpZGdlX2NmZyk7Ci0JCQlwY2lfcmVhZF9jb25maWdfd29y ZChyZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwsICZncHVfY2ZnKTsKKwkJCXBj aWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwsCisJCQkJCQkgICZi cmlkZ2VfY2ZnKTsKKwkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocmRldi0+cGRldiwgUENJ X0VYUF9MTktDVEwsCisJCQkJCQkgICZncHVfY2ZnKTsKIAogCQkJdG1wMTYgPSBicmlkZ2VfY2Zn IHwgUENJX0VYUF9MTktDVExfSEFXRDsKLQkJCXBjaV93cml0ZV9jb25maWdfd29yZChyb290LCBi cmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsKKwkJCXBjaWVfY2FwYWJpbGl0eV93 cml0ZV93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMLCB0bXAxNik7CiAKIAkJCXRtcDE2ID0gZ3B1 X2NmZyB8IFBDSV9FWFBfTE5LQ1RMX0hBV0Q7Ci0JCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQocmRl di0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RMLCB0bXAxNik7CisJCQlwY2llX2NhcGFi aWxpdHlfd3JpdGVfd29yZChyZGV2LT5wZGV2LCBQQ0lfRVhQX0xOS0NUTCwKKwkJCQkJCSAgIHRt cDE2KTsKIAogCQkJdG1wID0gUlJFRzMyX1BDSUUoUENJRV9MQ19TVEFUVVMxKTsKIAkJCW1heF9s dyA9ICh0bXAgJiBMQ19ERVRFQ1RFRF9MSU5LX1dJRFRIX01BU0spID4+IExDX0RFVEVDVEVEX0xJ TktfV0lEVEhfU0hJRlQ7CkBAIC03MTY5LDE1ICs3MTY2LDIzIEBAIHN0YXRpYyB2b2lkIHNpX3Bj aWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAKIAkJCWZvciAoaSA9 IDA7IGkgPCAxMDsgaSsrKSB7CiAJCQkJLyogY2hlY2sgc3RhdHVzICovCi0JCQkJcGNpX3JlYWRf Y29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfREVWU1RBLCAmdG1wMTYp OworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocmRldi0+cGRldiwKKwkJCQkJCQkgIFBD SV9FWFBfREVWU1RBLAorCQkJCQkJCSAgJnRtcDE2KTsKIAkJCQlpZiAodG1wMTYgJiBQQ0lfRVhQ X0RFVlNUQV9UUlBORCkKIAkJCQkJYnJlYWs7CiAKLQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChy b290LCBicmlkZ2VfcG9zICsgUENJX0VYUF9MTktDVEwsICZicmlkZ2VfY2ZnKTsKLQkJCQlwY2lf cmVhZF9jb25maWdfd29yZChyZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwsICZn cHVfY2ZnKTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJvb3QsIFBDSV9FWFBfTE5L Q1RMLAorCQkJCQkJCSAgJmJyaWRnZV9jZmcpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dv cmQocmRldi0+cGRldiwKKwkJCQkJCQkgIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAgJmdwdV9j ZmcpOwogCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocm9vdCwgYnJpZGdlX3BvcyArIFBDSV9F WFBfTE5LQ1RMMiwgJmJyaWRnZV9jZmcyKTsKLQkJCQlwY2lfcmVhZF9jb25maWdfd29yZChyZGV2 LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmZ3B1X2NmZzIpOworCQkJCXBjaWVf Y2FwYWJpbGl0eV9yZWFkX3dvcmQocm9vdCwgUENJX0VYUF9MTktDVEwyLAorCQkJCQkJCSAgJmJy aWRnZV9jZmcyKTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJkZXYtPnBkZXYsCisJ CQkJCQkJICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJCQkJICAmZ3B1X2NmZzIpOwogCiAJCQkJdG1w ID0gUlJFRzMyX1BDSUVfUE9SVChQQ0lFX0xDX0NOVEw0KTsKIAkJCQl0bXAgfD0gTENfU0VUX1FV SUVTQ0U7CkBAIC03MTkwLDMyICs3MTk1LDQ2IEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVfZ2VuM19l bmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCQkJbXNsZWVwKDEwMCk7CiAKIAkJ CQkvKiBsaW5rY3RsICovCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocm9vdCwgYnJpZGdlX3Bv cyArIFBDSV9FWFBfTE5LQ1RMLCAmdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dv cmQocm9vdCwgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAmdG1wMTYpOwogCQkJCXRtcDE2ICY9 IH5QQ0lfRVhQX0xOS0NUTF9IQVdEOwogCQkJCXRtcDE2IHw9IChicmlkZ2VfY2ZnICYgUENJX0VY UF9MTktDVExfSEFXRCk7Ci0JCQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHJvb3QsIGJyaWRnZV9w b3MgKyBQQ0lfRVhQX0xOS0NUTCwgdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93 b3JkKHJvb3QsCisJCQkJCQkJICAgUENJX0VYUF9MTktDVEwsCisJCQkJCQkJICAgdG1wMTYpOwog Ci0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBf TE5LQ1RMLCAmdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV9yZWFkX3dvcmQocmRldi0+cGRl diwKKwkJCQkJCQkgIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAgJnRtcDE2KTsKIAkJCQl0bXAx NiAmPSB+UENJX0VYUF9MTktDVExfSEFXRDsKIAkJCQl0bXAxNiB8PSAoZ3B1X2NmZyAmIFBDSV9F WFBfTE5LQ1RMX0hBV0QpOwotCQkJCXBjaV93cml0ZV9jb25maWdfd29yZChyZGV2LT5wZGV2LCBn cHVfcG9zICsgUENJX0VYUF9MTktDVEwsIHRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfd3Jp dGVfd29yZChyZGV2LT5wZGV2LAorCQkJCQkJCSAgIFBDSV9FWFBfTE5LQ1RMLAorCQkJCQkJCSAg IHRtcDE2KTsKIAogCQkJCS8qIGxpbmtjdGwyICovCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQo cm9vdCwgYnJpZGdlX3BvcyArIFBDSV9FWFBfTE5LQ1RMMiwgJnRtcDE2KTsKKwkJCQlwY2llX2Nh cGFiaWxpdHlfcmVhZF93b3JkKHJvb3QsIFBDSV9FWFBfTE5LQ1RMMiwKKwkJCQkJCQkgICZ0bXAx Nik7CiAJCQkJdG1wMTYgJj0gfihQQ0lfRVhQX0xOS0NUTDJfRU5URVJfQ09NUCB8CiAJCQkJCSAg IFBDSV9FWFBfTE5LQ1RMMl9UWF9NQVJHSU4pOwogCQkJCXRtcDE2IHw9IChicmlkZ2VfY2ZnMiAm CiAJCQkJCSAgKFBDSV9FWFBfTE5LQ1RMMl9FTlRFUl9DT01QIHwKIAkJCQkJICAgUENJX0VYUF9M TktDVEwyX1RYX01BUkdJTikpOwotCQkJCXBjaV93cml0ZV9jb25maWdfd29yZChyb290LCBicmlk Z2VfcG9zICsgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CisJCQkJcGNpZV9jYXBhYmlsaXR5X3dy aXRlX3dvcmQocm9vdCwKKwkJCQkJCQkgICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJCQkJICAgdG1w MTYpOwogCi0JCQkJcGNpX3JlYWRfY29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3BvcyArIFBD SV9FWFBfTE5LQ1RMMiwgJnRtcDE2KTsKKwkJCQlwY2llX2NhcGFiaWxpdHlfcmVhZF93b3JkKHJk ZXYtPnBkZXYsCisJCQkJCQkJICBQQ0lfRVhQX0xOS0NUTDIsCisJCQkJCQkJICAmdG1wMTYpOwog CQkJCXRtcDE2ICY9IH4oUENJX0VYUF9MTktDVEwyX0VOVEVSX0NPTVAgfAogCQkJCQkgICBQQ0lf RVhQX0xOS0NUTDJfVFhfTUFSR0lOKTsKIAkJCQl0bXAxNiB8PSAoZ3B1X2NmZzIgJgogCQkJCQkg IChQQ0lfRVhQX0xOS0NUTDJfRU5URVJfQ09NUCB8CiAJCQkJCSAgIFBDSV9FWFBfTE5LQ1RMMl9U WF9NQVJHSU4pKTsKLQkJCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3Bv cyArIFBDSV9FWFBfTE5LQ1RMMiwgdG1wMTYpOworCQkJCXBjaWVfY2FwYWJpbGl0eV93cml0ZV93 b3JkKHJkZXYtPnBkZXYsCisJCQkJCQkJICAgUENJX0VYUF9MTktDVEwyLAorCQkJCQkJCSAgIHRt cDE2KTsKIAogCQkJCXRtcCA9IFJSRUczMl9QQ0lFX1BPUlQoUENJRV9MQ19DTlRMNCk7CiAJCQkJ dG1wICY9IH5MQ19TRVRfUVVJRVNDRTsKQEAgLTcyMjksNyArNzI0OCw3IEBAIHN0YXRpYyB2b2lk IHNpX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJc3BlZWRf Y250bCAmPSB+TENfRk9SQ0VfRElTX1NXX1NQRUVEX0NIQU5HRTsKIAlXUkVHMzJfUENJRV9QT1JU KFBDSUVfTENfU1BFRURfQ05UTCwgc3BlZWRfY250bCk7CiAKLQlwY2lfcmVhZF9jb25maWdfd29y ZChyZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmdG1wMTYpOworCXBjaWVf Y2FwYWJpbGl0eV9yZWFkX3dvcmQocmRldi0+cGRldiwgUENJX0VYUF9MTktDVEwyLCAmdG1wMTYp OwogCXRtcDE2ICY9IH5QQ0lfRVhQX0xOS0NUTDJfVExTOwogCWlmIChzcGVlZF9jYXAgPT0gUENJ RV9TUEVFRF84XzBHVCkKIAkJdG1wMTYgfD0gUENJX0VYUF9MTktDVEwyX1RMU184XzBHVDsgLyog Z2VuMyAqLwpAQCAtNzIzNyw3ICs3MjU2LDcgQEAgc3RhdGljIHZvaWQgc2lfcGNpZV9nZW4zX2Vu YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJdG1wMTYgfD0gUENJX0VYUF9MTktD VEwyX1RMU181XzBHVDsgLyogZ2VuMiAqLwogCWVsc2UKIAkJdG1wMTYgfD0gUENJX0VYUF9MTktD VEwyX1RMU18yXzVHVDsgLyogZ2VuMSAqLwotCXBjaV93cml0ZV9jb25maWdfd29yZChyZGV2LT5w ZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CisJcGNpZV9jYXBhYmlsaXR5 X3dyaXRlX3dvcmQocmRldi0+cGRldiwgUENJX0VYUF9MTktDVEwyLCB0bXAxNik7CiAKIAlzcGVl ZF9jbnRsID0gUlJFRzMyX1BDSUVfUE9SVChQQ0lFX0xDX1NQRUVEX0NOVEwpOwogCXNwZWVkX2Nu dGwgfD0gTENfSU5JVElBVEVfTElOS19TUEVFRF9DSEFOR0U7Ci0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==