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=-6.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,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 BB7BDC2D0DB for ; Mon, 20 Jan 2020 17:48:00 +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 9DA8C22525 for ; Mon, 20 Jan 2020 17:48:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DA8C22525 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 495BD6EAA7; Mon, 20 Jan 2020 17:48:00 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E09B96EAA7 for ; Mon, 20 Jan 2020 17:47:58 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 09:47:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,342,1574150400"; d="scan'208";a="228475498" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga006.jf.intel.com with SMTP; 20 Jan 2020 09:47:55 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 20 Jan 2020 19:47:55 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Mon, 20 Jan 2020 19:47:19 +0200 Message-Id: <20200120174728.21095-10-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 09/17] drm/i915: Extract intel_cdclk_state 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" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClVz ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIGNkY2xrIHN0YXRlIGluIGJvdGgKaW50 ZWxfYXRvbWljX3N0YXRlIGFuZCBkZXZfcHJpdi4gRmlyc3Qgc3RlcCB0b3dhcmRzIHByb3Blcgpv bGQgdnMuIG5ldyBjZGNsayBzdGF0ZXMuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIC4uLi9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9hdWRpby5jICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2NkY2xrLmMgICAgfCAxNjggKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAgMjkgKystCiAuLi4vZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMzAgKy0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgIDUxICsrKystLQogNiBm aWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMTM3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCmluZGV4 IDNlOTdhZjY4MmIxYi4uNTYzY2FlYzFkMjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTE1OSw2ICsxNTksOCBAQCBib29s IGludGVsX3BsYW5lX2NhbGNfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOworCWNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPQorCQkmZGV2X3ByaXYtPmNkY2xr X3N0YXRlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQog CQlpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwogCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+aHcuY3J0Yyk7 CkBAIC0xODIsMTEgKzE4NCwxMSBAQCBib29sIGludGVsX3BsYW5lX2NhbGNfbWluX2NkY2xrKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCSAqIHNhZmUgYXMgbG9uZyB3ZSBob2xk IGF0IGxlYXN0IG9uZSBjcnRjIG11dGV4ICh3aGljaAogCSAqIG11c3QgYmUgdHJ1ZSBzaW5jZSB3 ZSBoYXZlIGNydGNfc3RhdGUpLgogCSAqLwotCWlmIChjcnRjX3N0YXRlLT5taW5fY2RjbGtbcGxh bmUtPmlkXSA+IGRldl9wcml2LT5jZGNsay5sb2dpY2FsLmNkY2xrKSB7CisJaWYgKGNydGNfc3Rh dGUtPm1pbl9jZGNsa1twbGFuZS0+aWRdID4gY2RjbGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGspIHsK IAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXSBtaW5fY2RjbGsgKCVkIGtIeikgPiBsb2dp Y2FsIGNkY2xrICglZCBrSHopXG4iLAogCQkJICAgICAgcGxhbmUtPmJhc2UuYmFzZS5pZCwgcGxh bmUtPmJhc2UubmFtZSwKIAkJCSAgICAgIGNydGNfc3RhdGUtPm1pbl9jZGNsa1twbGFuZS0+aWRd LAotCQkJICAgICAgZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwuY2RjbGspOworCQkJICAgICAgY2Rj bGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGspOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwppbmRleCBiMTgwNDA3OTNkOWUuLjMy ZTcyMjEyODYzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8u YwpAQCAtODE1LDggKzgxNSw4IEBAIHN0YXRpYyB2b2lkIGdsa19mb3JjZV9hdWRpb19jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3RhdGUtPmFjcXVpcmVfY3R4ID0g JmN0eDsKIAogcmV0cnk6Ci0JdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGsuZm9y Y2VfbWluX2NkY2xrX2NoYW5nZWQgPSB0cnVlOwotCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0 ZSktPmNkY2xrLmZvcmNlX21pbl9jZGNsayA9CisJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KS0+Y2RjbGtfc3RhdGUuZm9yY2VfbWluX2NkY2xrX2NoYW5nZWQgPSB0cnVlOworCXRvX2ludGVs X2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrX3N0YXRlLmZvcmNlX21pbl9jZGNsayA9CiAJCWVu YWJsZSA/IDIgKiA5NjAwMCA6IDA7CiAKIAkvKiBQcm90ZWN0cyBkZXZfcHJpdi0+Y2RjbGsuZm9y Y2VfbWluX2NkY2xrICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xr LmMKaW5kZXggYTJiMTQwMWRjZmJiLi5mOGU3MGE2NjhiNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKQEAgLTE4MTUsOCArMTgxNSw4IEBAIHN0YXRpYyBi b29sIGludGVsX2NkY2xrX2NoYW5nZWQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyAq YSwKICAqLwogdm9pZCBpbnRlbF9jZGNsa19jbGVhcl9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIHsKLQltZW1zZXQoJnN0YXRlLT5jZGNsaywgMCwgc2l6ZW9mKHN0YXRl LT5jZGNsaykpOwotCXN0YXRlLT5jZGNsay5waXBlID0gSU5WQUxJRF9QSVBFOworCW1lbXNldCgm c3RhdGUtPmNkY2xrX3N0YXRlLCAwLCBzaXplb2Yoc3RhdGUtPmNkY2xrX3N0YXRlKSk7CisJc3Rh dGUtPmNkY2xrX3N0YXRlLnBpcGUgPSBJTlZBTElEX1BJUEU7CiB9CiAKIC8qKgpAQCAtMTgzNiwx NSArMTgzNiwxOCBAQCB2b2lkIGludGVsX2NkY2xrX3N3YXBfc3RhdGUoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwogCiAJLyogRklYTUUgbWF5YmUgc3dhcCgpIHRoZXNl IHRvbyAqLwotCW1lbWNweShkZXZfcHJpdi0+Y2RjbGsubWluX2NkY2xrLCBzdGF0ZS0+Y2RjbGsu bWluX2NkY2xrLAotCSAgICAgICBzaXplb2Yoc3RhdGUtPmNkY2xrLm1pbl9jZGNsaykpOwotCW1l bWNweShkZXZfcHJpdi0+Y2RjbGsubWluX3ZvbHRhZ2VfbGV2ZWwsIHN0YXRlLT5jZGNsay5taW5f dm9sdGFnZV9sZXZlbCwKLQkgICAgICAgc2l6ZW9mKHN0YXRlLT5jZGNsay5taW5fdm9sdGFnZV9s ZXZlbCkpOworCW1lbWNweShkZXZfcHJpdi0+Y2RjbGtfc3RhdGUubWluX2NkY2xrLAorCSAgICAg ICBzdGF0ZS0+Y2RjbGtfc3RhdGUubWluX2NkY2xrLAorCSAgICAgICBzaXplb2Yoc3RhdGUtPmNk Y2xrX3N0YXRlLm1pbl9jZGNsaykpOworCW1lbWNweShkZXZfcHJpdi0+Y2RjbGtfc3RhdGUubWlu X3ZvbHRhZ2VfbGV2ZWwsCisJICAgICAgIHN0YXRlLT5jZGNsa19zdGF0ZS5taW5fdm9sdGFnZV9s ZXZlbCwKKwkgICAgICAgc2l6ZW9mKHN0YXRlLT5jZGNsa19zdGF0ZS5taW5fdm9sdGFnZV9sZXZl bCkpOwogCi0JZGV2X3ByaXYtPmNkY2xrLmZvcmNlX21pbl9jZGNsayA9IHN0YXRlLT5jZGNsay5m b3JjZV9taW5fY2RjbGs7CisJZGV2X3ByaXYtPmNkY2xrX3N0YXRlLmZvcmNlX21pbl9jZGNsayA9 CisJCXN0YXRlLT5jZGNsa19zdGF0ZS5mb3JjZV9taW5fY2RjbGs7CiAKLQlzd2FwKHN0YXRlLT5j ZGNsay5sb2dpY2FsLCBkZXZfcHJpdi0+Y2RjbGsubG9naWNhbCk7Ci0Jc3dhcChzdGF0ZS0+Y2Rj bGsuYWN0dWFsLCBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsKTsKKwlzd2FwKHN0YXRlLT5jZGNsa19z dGF0ZS5sb2dpY2FsLCBkZXZfcHJpdi0+Y2RjbGtfc3RhdGUubG9naWNhbCk7CisJc3dhcChzdGF0 ZS0+Y2RjbGtfc3RhdGUuYWN0dWFsLCBkZXZfcHJpdi0+Y2RjbGtfc3RhdGUuYWN0dWFsKTsKIH0K IAogdm9pZCBpbnRlbF9kdW1wX2NkY2xrX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtf Y29uZmlnICpjZGNsa19jb25maWcsCkBAIC0xODk4LDEyICsxOTAxLDEzIEBAIGludGVsX3NldF9j ZGNsa19wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJh c2UuZGV2KTsKIAkvKiBjYWxsZWQgYWZ0ZXIgaW50ZWxfY2RjbGtfc3dhcF9zdGF0ZSgpISAqLwot CWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19jb25maWcgKm9sZF9zdGF0ZSA9ICZzdGF0ZS0+Y2Rj bGsuYWN0dWFsOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19jb25maWcgKm5ld19zdGF0ZSA9 ICZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsOwotCWVudW0gcGlwZSBwaXBlID0gc3RhdGUtPmNkY2xr LnBpcGU7CisJY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfY2RjbGtfc3RhdGUg PSAmc3RhdGUtPmNkY2xrX3N0YXRlOworCWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq bmV3X2NkY2xrX3N0YXRlID0gJmRldl9wcml2LT5jZGNsa19zdGF0ZTsKKwllbnVtIHBpcGUgcGlw ZSA9IG9sZF9jZGNsa19zdGF0ZS0+cGlwZTsgLyogbm90IHN3YXBwZWQgKi8KIAotCWlmIChwaXBl ID09IElOVkFMSURfUElQRSB8fCBvbGRfc3RhdGUtPmNkY2xrIDw9IG5ld19zdGF0ZS0+Y2RjbGsp Ci0JCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgbmV3X3N0YXRlLCBwaXBlKTsKKwlpZiAocGlw ZSA9PSBJTlZBTElEX1BJUEUgfHwKKwkgICAgb2xkX2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsg PD0gbmV3X2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGspCisJCWludGVsX3NldF9jZGNsayhkZXZf cHJpdiwgJm5ld19jZGNsa19zdGF0ZS0+YWN0dWFsLCBwaXBlKTsKIH0KIAogLyoqCkBAIC0xOTE4 LDEyICsxOTIyLDEzIEBAIGludGVsX3NldF9jZGNsa19wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CiAJLyogY2FsbGVkIGFmdGVyIGlu dGVsX2NkY2xrX3N3YXBfc3RhdGUoKSEgKi8KLQljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfY29u ZmlnICpvbGRfc3RhdGUgPSAmc3RhdGUtPmNkY2xrLmFjdHVhbDsKLQljb25zdCBzdHJ1Y3QgaW50 ZWxfY2RjbGtfY29uZmlnICpuZXdfc3RhdGUgPSAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbDsKLQll bnVtIHBpcGUgcGlwZSA9IHN0YXRlLT5jZGNsay5waXBlOworCWNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqb2xkX2NkY2xrX3N0YXRlID0gJnN0YXRlLT5jZGNsa19zdGF0ZTsKKwljb25z dCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19jZGNsa19zdGF0ZSA9ICZkZXZfcHJpdi0+ Y2RjbGtfc3RhdGU7CisJZW51bSBwaXBlIHBpcGUgPSBvbGRfY2RjbGtfc3RhdGUtPnBpcGU7IC8q IG5vdCBzd2FwcGVkICovCiAKLQlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYgb2xkX3N0YXRl LT5jZGNsayA+IG5ld19zdGF0ZS0+Y2RjbGspCi0JCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwg bmV3X3N0YXRlLCBwaXBlKTsKKwlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYKKwkgICAgb2xk X2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsgPiBuZXdfY2RjbGtfc3RhdGUtPmFjdHVhbC5jZGNs aykKKwkJaW50ZWxfc2V0X2NkY2xrKGRldl9wcml2LCAmbmV3X2NkY2xrX3N0YXRlLT5hY3R1YWws IHBpcGUpOwogfQogCiBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCkBAIC0yMDUyLDYgKzIwNTcsNyBA QCBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX21pbl9jZGNsayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyBpbnQgaW50ZWxfY29tcHV0ZV9taW5fY2RjbGso c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAmc3RhdGUtPmNkY2xrX3N0YXRlOwogCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl OwogCWludCBtaW5fY2RjbGssIGk7CkBAIC0yMDY0LDE5ICsyMDcwLDE5IEBAIHN0YXRpYyBpbnQg aW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUp CiAJCWlmIChtaW5fY2RjbGsgPCAwKQogCQkJcmV0dXJuIG1pbl9jZGNsazsKIAotCQlpZiAoc3Rh dGUtPmNkY2xrLm1pbl9jZGNsa1tpXSA9PSBtaW5fY2RjbGspCisJCWlmIChjZGNsa19zdGF0ZS0+ bWluX2NkY2xrW2ldID09IG1pbl9jZGNsaykKIAkJCWNvbnRpbnVlOwogCi0JCXN0YXRlLT5jZGNs ay5taW5fY2RjbGtbaV0gPSBtaW5fY2RjbGs7CisJCWNkY2xrX3N0YXRlLT5taW5fY2RjbGtbaV0g PSBtaW5fY2RjbGs7CiAKIAkJcmV0ID0gaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0 YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JbWluX2NkY2xrID0gc3Rh dGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsazsKKwltaW5fY2RjbGsgPSBjZGNsa19zdGF0ZS0+Zm9y Y2VfbWluX2NkY2xrOwogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCi0JCW1pbl9jZGNs ayA9IG1heChzdGF0ZS0+Y2RjbGsubWluX2NkY2xrW3BpcGVdLCBtaW5fY2RjbGspOworCQltaW5f Y2RjbGsgPSBtYXgoY2RjbGtfc3RhdGUtPm1pbl9jZGNsa1twaXBlXSwgbWluX2NkY2xrKTsKIAog CXJldHVybiBtaW5fY2RjbGs7CiB9CkBAIC0yMDk3LDYgKzIxMDMsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog c3RhdGljIGludCBieHRfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpj ZGNsa19zdGF0ZSA9ICZzdGF0ZS0+Y2RjbGtfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNy dGM7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJdTggbWluX3ZvbHRh Z2VfbGV2ZWw7CkBAIC0yMTExLDEwICsyMTE4LDEwIEBAIHN0YXRpYyBpbnQgYnh0X2NvbXB1dGVf bWluX3ZvbHRhZ2VfbGV2ZWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCWVs c2UKIAkJCW1pbl92b2x0YWdlX2xldmVsID0gMDsKIAotCQlpZiAoc3RhdGUtPmNkY2xrLm1pbl92 b2x0YWdlX2xldmVsW2ldID09IG1pbl92b2x0YWdlX2xldmVsKQorCQlpZiAoY2RjbGtfc3RhdGUt Pm1pbl92b2x0YWdlX2xldmVsW2ldID09IG1pbl92b2x0YWdlX2xldmVsKQogCQkJY29udGludWU7 CiAKLQkJc3RhdGUtPmNkY2xrLm1pbl92b2x0YWdlX2xldmVsW2ldID0gbWluX3ZvbHRhZ2VfbGV2 ZWw7CisJCWNkY2xrX3N0YXRlLT5taW5fdm9sdGFnZV9sZXZlbFtpXSA9IG1pbl92b2x0YWdlX2xl dmVsOwogCiAJCXJldCA9IGludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZShzdGF0ZSk7CiAJ CWlmIChyZXQpCkBAIC0yMTIzLDcgKzIxMzAsNyBAQCBzdGF0aWMgaW50IGJ4dF9jb21wdXRlX21p bl92b2x0YWdlX2xldmVsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJbWlu X3ZvbHRhZ2VfbGV2ZWwgPSAwOwogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCi0JCW1p bl92b2x0YWdlX2xldmVsID0gbWF4KHN0YXRlLT5jZGNsay5taW5fdm9sdGFnZV9sZXZlbFtwaXBl XSwKKwkJbWluX3ZvbHRhZ2VfbGV2ZWwgPSBtYXgoY2RjbGtfc3RhdGUtPm1pbl92b2x0YWdlX2xl dmVsW3BpcGVdLAogCQkJCQltaW5fdm9sdGFnZV9sZXZlbCk7CiAKIAlyZXR1cm4gbWluX3ZvbHRh Z2VfbGV2ZWw7CkBAIC0yMTMyLDYgKzIxMzksNyBAQCBzdGF0aWMgaW50IGJ4dF9jb21wdXRlX21p bl92b2x0YWdlX2xldmVsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGlj IGludCB2bHZfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3Rh dGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlID0g JnN0YXRlLT5jZGNsa19zdGF0ZTsKIAlpbnQgbWluX2NkY2xrLCBjZGNsazsKIAogCW1pbl9jZGNs ayA9IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0YXRlKTsKQEAgLTIxNDAsMTggKzIxNDgsMTgg QEAgc3RhdGljIGludCB2bHZfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCiAJY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJpdiwgbWluX2Nk Y2xrKTsKIAotCXN0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Ci0Jc3RhdGUtPmNk Y2xrLmxvZ2ljYWwudm9sdGFnZV9sZXZlbCA9CisJY2RjbGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGsg PSBjZGNsazsKKwljZGNsa19zdGF0ZS0+bG9naWNhbC52b2x0YWdlX2xldmVsID0KIAkJdmx2X2Nh bGNfdm9sdGFnZV9sZXZlbChkZXZfcHJpdiwgY2RjbGspOwogCiAJaWYgKCFzdGF0ZS0+YWN0aXZl X3BpcGVzKSB7Ci0JCWNkY2xrID0gdmx2X2NhbGNfY2RjbGsoZGV2X3ByaXYsIHN0YXRlLT5jZGNs ay5mb3JjZV9taW5fY2RjbGspOworCQljZGNsayA9IHZsdl9jYWxjX2NkY2xrKGRldl9wcml2LCBj ZGNsa19zdGF0ZS0+Zm9yY2VfbWluX2NkY2xrKTsKIAotCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsLmNk Y2xrID0gY2RjbGs7Ci0JCXN0YXRlLT5jZGNsay5hY3R1YWwudm9sdGFnZV9sZXZlbCA9CisJCWNk Y2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsgPSBjZGNsazsKKwkJY2RjbGtfc3RhdGUtPmFjdHVhbC52 b2x0YWdlX2xldmVsID0KIAkJCXZsdl9jYWxjX3ZvbHRhZ2VfbGV2ZWwoZGV2X3ByaXYsIGNkY2xr KTsKIAl9IGVsc2UgewotCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsID0gc3RhdGUtPmNkY2xrLmxvZ2lj YWw7CisJCWNkY2xrX3N0YXRlLT5hY3R1YWwgPSBjZGNsa19zdGF0ZS0+bG9naWNhbDsKIAl9CiAK IAlyZXR1cm4gMDsKQEAgLTIxNTksNiArMjE2Nyw3IEBAIHN0YXRpYyBpbnQgdmx2X21vZGVzZXRf Y2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogc3RhdGljIGlu dCBiZHdfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogeworCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAmc3RhdGUtPmNk Y2xrX3N0YXRlOwogCWludCBtaW5fY2RjbGssIGNkY2xrOwogCiAJbWluX2NkY2xrID0gaW50ZWxf Y29tcHV0ZV9taW5fY2RjbGsoc3RhdGUpOwpAQCAtMjE3MSwxOCArMjE4MCwxOCBAQCBzdGF0aWMg aW50IGJkd19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJICovCiAJY2RjbGsgPSBiZHdfY2FsY19jZGNsayhtaW5fY2RjbGspOwogCi0Jc3RhdGUt PmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKLQlzdGF0ZS0+Y2RjbGsubG9naWNhbC52b2x0 YWdlX2xldmVsID0KKwljZGNsa19zdGF0ZS0+bG9naWNhbC5jZGNsayA9IGNkY2xrOworCWNkY2xr X3N0YXRlLT5sb2dpY2FsLnZvbHRhZ2VfbGV2ZWwgPQogCQliZHdfY2FsY192b2x0YWdlX2xldmVs KGNkY2xrKTsKIAogCWlmICghc3RhdGUtPmFjdGl2ZV9waXBlcykgewotCQljZGNsayA9IGJkd19j YWxjX2NkY2xrKHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOworCQljZGNsayA9IGJkd19j YWxjX2NkY2xrKGNkY2xrX3N0YXRlLT5mb3JjZV9taW5fY2RjbGspOwogCi0JCXN0YXRlLT5jZGNs ay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKLQkJc3RhdGUtPmNkY2xrLmFjdHVhbC52b2x0YWdlX2xl dmVsID0KKwkJY2RjbGtfc3RhdGUtPmFjdHVhbC5jZGNsayA9IGNkY2xrOworCQljZGNsa19zdGF0 ZS0+YWN0dWFsLnZvbHRhZ2VfbGV2ZWwgPQogCQkJYmR3X2NhbGNfdm9sdGFnZV9sZXZlbChjZGNs ayk7CiAJfSBlbHNlIHsKLQkJc3RhdGUtPmNkY2xrLmFjdHVhbCA9IHN0YXRlLT5jZGNsay5sb2dp Y2FsOworCQljZGNsa19zdGF0ZS0+YWN0dWFsID0gY2RjbGtfc3RhdGUtPmxvZ2ljYWw7CiAJfQog CiAJcmV0dXJuIDA7CkBAIC0yMTkxLDExICsyMjAwLDEyIEBAIHN0YXRpYyBpbnQgYmR3X21vZGVz ZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHN0YXRpYyBp bnQgc2tsX2RwbGwwX3ZjbyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRl dik7CisJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSA9ICZzdGF0ZS0+Y2Rj bGtfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IHZjbywgaTsKIAotCXZjbyA9IHN0YXRlLT5jZGNsay5s b2dpY2FsLnZjbzsKKwl2Y28gPSBjZGNsa19zdGF0ZS0+bG9naWNhbC52Y287CiAJaWYgKCF2Y28p CiAJCXZjbyA9IGRldl9wcml2LT5za2xfcHJlZmVycmVkX3Zjb19mcmVxOwogCkBAIC0yMjI2LDYg KzIyMzYsNyBAQCBzdGF0aWMgaW50IHNrbF9kcGxsMF92Y28oc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUpCiAKIHN0YXRpYyBpbnQgc2tsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUg KmNkY2xrX3N0YXRlID0gJnN0YXRlLT5jZGNsa19zdGF0ZTsKIAlpbnQgbWluX2NkY2xrLCBjZGNs aywgdmNvOwogCiAJbWluX2NkY2xrID0gaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RhdGUpOwpA QCAtMjI0MCwyMCArMjI1MSwyMCBAQCBzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGso c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJICovCiAJY2RjbGsgPSBza2xfY2Fs Y19jZGNsayhtaW5fY2RjbGssIHZjbyk7CiAKLQlzdGF0ZS0+Y2RjbGsubG9naWNhbC52Y28gPSB2 Y287Ci0Jc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKLQlzdGF0ZS0+Y2RjbGsu bG9naWNhbC52b2x0YWdlX2xldmVsID0KKwljZGNsa19zdGF0ZS0+bG9naWNhbC52Y28gPSB2Y287 CisJY2RjbGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKKwljZGNsa19zdGF0ZS0+bG9n aWNhbC52b2x0YWdlX2xldmVsID0KIAkJc2tsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsayk7CiAK IAlpZiAoIXN0YXRlLT5hY3RpdmVfcGlwZXMpIHsKLQkJY2RjbGsgPSBza2xfY2FsY19jZGNsayhz dGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrLCB2Y28pOworCQljZGNsayA9IHNrbF9jYWxjX2Nk Y2xrKGNkY2xrX3N0YXRlLT5mb3JjZV9taW5fY2RjbGssIHZjbyk7CiAKLQkJc3RhdGUtPmNkY2xr LmFjdHVhbC52Y28gPSB2Y287Ci0JCXN0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsK LQkJc3RhdGUtPmNkY2xrLmFjdHVhbC52b2x0YWdlX2xldmVsID0KKwkJY2RjbGtfc3RhdGUtPmFj dHVhbC52Y28gPSB2Y287CisJCWNkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsgPSBjZGNsazsKKwkJ Y2RjbGtfc3RhdGUtPmFjdHVhbC52b2x0YWdlX2xldmVsID0KIAkJCXNrbF9jYWxjX3ZvbHRhZ2Vf bGV2ZWwoY2RjbGspOwogCX0gZWxzZSB7Ci0JCXN0YXRlLT5jZGNsay5hY3R1YWwgPSBzdGF0ZS0+ Y2RjbGsubG9naWNhbDsKKwkJY2RjbGtfc3RhdGUtPmFjdHVhbCA9IGNkY2xrX3N0YXRlLT5sb2dp Y2FsOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjI2Miw2ICsyMjczLDcgQEAgc3RhdGljIGludCBz a2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog c3RhdGljIGludCBieHRfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0 YXRlID0gJnN0YXRlLT5jZGNsa19zdGF0ZTsKIAlpbnQgbWluX2NkY2xrLCBtaW5fdm9sdGFnZV9s ZXZlbCwgY2RjbGssIHZjbzsKIAogCW1pbl9jZGNsayA9IGludGVsX2NvbXB1dGVfbWluX2NkY2xr KHN0YXRlKTsKQEAgLTIyNzUsMjIgKzIyODcsMjIgQEAgc3RhdGljIGludCBieHRfbW9kZXNldF9j YWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWNkY2xrID0gYnh0 X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1pbl9jZGNsayk7CiAJdmNvID0gYnh0X2NhbGNfY2RjbGtf cGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwogCi0Jc3RhdGUtPmNkY2xrLmxvZ2ljYWwudmNvID0g dmNvOwotCXN0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Ci0Jc3RhdGUtPmNkY2xr LmxvZ2ljYWwudm9sdGFnZV9sZXZlbCA9CisJY2RjbGtfc3RhdGUtPmxvZ2ljYWwudmNvID0gdmNv OworCWNkY2xrX3N0YXRlLT5sb2dpY2FsLmNkY2xrID0gY2RjbGs7CisJY2RjbGtfc3RhdGUtPmxv Z2ljYWwudm9sdGFnZV9sZXZlbCA9CiAJCW1heF90KGludCwgbWluX3ZvbHRhZ2VfbGV2ZWwsCiAJ CSAgICAgIGRldl9wcml2LT5kaXNwbGF5LmNhbGNfdm9sdGFnZV9sZXZlbChjZGNsaykpOwogCiAJ aWYgKCFzdGF0ZS0+YWN0aXZlX3BpcGVzKSB7Ci0JCWNkY2xrID0gYnh0X2NhbGNfY2RjbGsoZGV2 X3ByaXYsIHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOworCQljZGNsayA9IGJ4dF9jYWxj X2NkY2xrKGRldl9wcml2LCBjZGNsa19zdGF0ZS0+Zm9yY2VfbWluX2NkY2xrKTsKIAkJdmNvID0g Ynh0X2NhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwogCi0JCXN0YXRlLT5jZGNs ay5hY3R1YWwudmNvID0gdmNvOwotCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7 Ci0JCXN0YXRlLT5jZGNsay5hY3R1YWwudm9sdGFnZV9sZXZlbCA9CisJCWNkY2xrX3N0YXRlLT5h Y3R1YWwudmNvID0gdmNvOworCQljZGNsa19zdGF0ZS0+YWN0dWFsLmNkY2xrID0gY2RjbGs7CisJ CWNkY2xrX3N0YXRlLT5hY3R1YWwudm9sdGFnZV9sZXZlbCA9CiAJCQlkZXZfcHJpdi0+ZGlzcGxh eS5jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGspOwogCX0gZWxzZSB7Ci0JCXN0YXRlLT5jZGNsay5h Y3R1YWwgPSBzdGF0ZS0+Y2RjbGsubG9naWNhbDsKKwkJY2RjbGtfc3RhdGUtPmFjdHVhbCA9IGNk Y2xrX3N0YXRlLT5sb2dpY2FsOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjM1NCwyMCArMjM2Niwy MiBAQCBzdGF0aWMgaW50IGZpeGVkX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIGludCBpbnRlbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqb2xkX2NkY2xrX3N0YXRlID0gJmRldl9wcml2LT5jZGNsa19zdGF0ZTsKKwlz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19jZGNsa19zdGF0ZSA9ICZzdGF0ZS0+Y2RjbGtf c3RhdGU7CiAJZW51bSBwaXBlIHBpcGU7CiAJaW50IHJldDsKIAotCW1lbWNweShzdGF0ZS0+Y2Rj bGsubWluX2NkY2xrLCBkZXZfcHJpdi0+Y2RjbGsubWluX2NkY2xrLAotCSAgICAgICBzaXplb2Yo c3RhdGUtPmNkY2xrLm1pbl9jZGNsaykpOwotCW1lbWNweShzdGF0ZS0+Y2RjbGsubWluX3ZvbHRh Z2VfbGV2ZWwsIGRldl9wcml2LT5jZGNsay5taW5fdm9sdGFnZV9sZXZlbCwKLQkgICAgICAgc2l6 ZW9mKHN0YXRlLT5jZGNsay5taW5fdm9sdGFnZV9sZXZlbCkpOworCW1lbWNweShuZXdfY2RjbGtf c3RhdGUtPm1pbl9jZGNsaywgb2xkX2NkY2xrX3N0YXRlLT5taW5fY2RjbGssCisJICAgICAgIHNp emVvZihuZXdfY2RjbGtfc3RhdGUtPm1pbl9jZGNsaykpOworCW1lbWNweShuZXdfY2RjbGtfc3Rh dGUtPm1pbl92b2x0YWdlX2xldmVsLCBvbGRfY2RjbGtfc3RhdGUtPm1pbl92b2x0YWdlX2xldmVs LAorCSAgICAgICBzaXplb2YobmV3X2NkY2xrX3N0YXRlLT5taW5fdm9sdGFnZV9sZXZlbCkpOwog CiAJLyoga2VlcCB0aGUgY3VycmVudCBzZXR0aW5nICovCi0JaWYgKCFzdGF0ZS0+Y2RjbGsuZm9y Y2VfbWluX2NkY2xrX2NoYW5nZWQpCi0JCXN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGsgPSBk ZXZfcHJpdi0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrOworCWlmICghbmV3X2NkY2xrX3N0YXRlLT5m b3JjZV9taW5fY2RjbGtfY2hhbmdlZCkKKwkJbmV3X2NkY2xrX3N0YXRlLT5mb3JjZV9taW5fY2Rj bGsgPSBvbGRfY2RjbGtfc3RhdGUtPmZvcmNlX21pbl9jZGNsazsKIAotCXN0YXRlLT5jZGNsay5s b2dpY2FsID0gZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWw7Ci0Jc3RhdGUtPmNkY2xrLmFjdHVhbCA9 IGRldl9wcml2LT5jZGNsay5hY3R1YWw7CisJbmV3X2NkY2xrX3N0YXRlLT5sb2dpY2FsID0gb2xk X2NkY2xrX3N0YXRlLT5sb2dpY2FsOworCW5ld19jZGNsa19zdGF0ZS0+YWN0dWFsID0gb2xkX2Nk Y2xrX3N0YXRlLT5hY3R1YWw7CiAKIAlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RhdGUpOwogCWlmIChyZXQpCkBAIC0yMzc4LDggKzIzOTIsOCBAQCBpbnQgaW50 ZWxfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CSAqIGJ5IGhvbGRpbmcgYWxsIHRoZSBjcnRjIG11dGV4ZXMgZXZlbiBpZiB3ZSBkb24ndCBlbmQg dXAKIAkgKiB0b3VjaGluZyB0aGUgaGFyZHdhcmUKIAkgKi8KLQlpZiAoaW50ZWxfY2RjbGtfY2hh bmdlZCgmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKLQkJCQkmc3RhdGUtPmNkY2xrLmFjdHVhbCkp IHsKKwlpZiAoaW50ZWxfY2RjbGtfY2hhbmdlZCgmb2xkX2NkY2xrX3N0YXRlLT5hY3R1YWwsCisJ CQkJJm5ld19jZGNsa19zdGF0ZS0+YWN0dWFsKSkgewogCQkvKgogCQkgKiBBbHNvIHNlcmlhbGl6 ZSBjb21taXRzIGFjcm9zcyBhbGwgY3J0Y3MKIAkJICogaWYgdGhlIGFjdHVhbCBodyBuZWVkcyB0 byBiZSBwb2tlZC4KQEAgLTIzODcsOCArMjQwMSw4IEBAIGludCBpbnRlbF9tb2Rlc2V0X2NhbGNf Y2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCXJldCA9IGludGVsX2F0 b21pY19zZXJpYWxpemVfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVy biByZXQ7Ci0JfSBlbHNlIGlmIChpbnRlbF9jZGNsa19jaGFuZ2VkKCZkZXZfcHJpdi0+Y2RjbGsu bG9naWNhbCwKLQkJCQkgICAgICAgJnN0YXRlLT5jZGNsay5sb2dpY2FsKSkgeworCX0gZWxzZSBp ZiAoaW50ZWxfY2RjbGtfY2hhbmdlZCgmb2xkX2NkY2xrX3N0YXRlLT5sb2dpY2FsLAorCQkJCSAg ICAgICAmbmV3X2NkY2xrX3N0YXRlLT5sb2dpY2FsKSkgewogCQlyZXQgPSBpbnRlbF9hdG9taWNf bG9ja19nbG9iYWxfc3RhdGUoc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAg LTIzOTgsOCArMjQxMiw4IEBAIGludCBpbnRlbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAlpZiAoaXNfcG93ZXJfb2ZfMihzdGF0ZS0+YWN0 aXZlX3BpcGVzKSAmJgogCSAgICBpbnRlbF9jZGNsa19jYW5fY2QyeF91cGRhdGUoZGV2X3ByaXYs Ci0JCQkJCSZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLAotCQkJCQkmc3RhdGUtPmNkY2xrLmFjdHVh bCkpIHsKKwkJCQkJJm9sZF9jZGNsa19zdGF0ZS0+YWN0dWFsLAorCQkJCQkmbmV3X2NkY2xrX3N0 YXRlLT5hY3R1YWwpKSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIApAQCAtMjQxNywyOCArMjQzMSwyOCBAQCBpbnQg aW50ZWxfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogCX0KIAogCWlmIChwaXBlICE9IElOVkFMSURfUElQRSkgewotCQlzdGF0ZS0+Y2RjbGsucGlw ZSA9IHBpcGU7CisJCW5ld19jZGNsa19zdGF0ZS0+cGlwZSA9IHBpcGU7CiAKIAkJRFJNX0RFQlVH X0tNUygiQ2FuIGNoYW5nZSBjZGNsayB3aXRoIHBpcGUgJWMgYWN0aXZlXG4iLAogCQkJICAgICAg cGlwZV9uYW1lKHBpcGUpKTsKLQl9IGVsc2UgaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQo JmRldl9wcml2LT5jZGNsay5hY3R1YWwsCi0JCQkJCSAgICAgJnN0YXRlLT5jZGNsay5hY3R1YWwp KSB7CisJfSBlbHNlIGlmIChpbnRlbF9jZGNsa19uZWVkc19tb2Rlc2V0KCZvbGRfY2RjbGtfc3Rh dGUtPmFjdHVhbCwKKwkJCQkJICAgICAmbmV3X2NkY2xrX3N0YXRlLT5hY3R1YWwpKSB7CiAJCS8q IEFsbCBwaXBlcyBtdXN0IGJlIHN3aXRjaGVkIG9mZiB3aGlsZSB3ZSBjaGFuZ2UgdGhlIGNkY2xr LiAqLwogCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7CiAJCWlmIChyZXQp CiAJCQlyZXR1cm4gcmV0OwogCi0JCXN0YXRlLT5jZGNsay5waXBlID0gSU5WQUxJRF9QSVBFOwor CQluZXdfY2RjbGtfc3RhdGUtPnBpcGUgPSBJTlZBTElEX1BJUEU7CiAKIAkJRFJNX0RFQlVHX0tN UygiTW9kZXNldCByZXF1aXJlZCBmb3IgY2RjbGsgY2hhbmdlXG4iKTsKIAl9CiAKIAlEUk1fREVC VUdfS01TKCJOZXcgY2RjbGsgY2FsY3VsYXRlZCB0byBiZSBsb2dpY2FsICV1IGtIeiwgYWN0dWFs ICV1IGtIelxuIiwKLQkJICAgICAgc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGssCi0JCSAgICAg IHN0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGspOworCQkgICAgICBuZXdfY2RjbGtfc3RhdGUtPmxv Z2ljYWwuY2RjbGssCisJCSAgICAgIG5ld19jZGNsa19zdGF0ZS0+YWN0dWFsLmNkY2xrKTsKIAlE Uk1fREVCVUdfS01TKCJOZXcgdm9sdGFnZSBsZXZlbCBjYWxjdWxhdGVkIHRvIGJlIGxvZ2ljYWwg JXUsIGFjdHVhbCAldVxuIiwKLQkJICAgICAgc3RhdGUtPmNkY2xrLmxvZ2ljYWwudm9sdGFnZV9s ZXZlbCwKLQkJICAgICAgc3RhdGUtPmNkY2xrLmFjdHVhbC52b2x0YWdlX2xldmVsKTsKKwkJICAg ICAgbmV3X2NkY2xrX3N0YXRlLT5sb2dpY2FsLnZvbHRhZ2VfbGV2ZWwsCisJCSAgICAgIG5ld19j ZGNsa19zdGF0ZS0+YWN0dWFsLnZvbHRhZ2VfbGV2ZWwpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IDI1YjBlYWIw MTljYi4uNjNlZmI4ZjljNjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYwpAQCAtNzQ4MSw2ICs3NDgxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0 Y19kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVj dCBpbnRlbF9id19zdGF0ZSAqYndfc3RhdGUgPQogCQl0b19pbnRlbF9id19zdGF0ZShkZXZfcHJp di0+Yndfb2JqLnN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRl ID0KKwkJJmRldl9wcml2LT5jZGNsa19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSA9CiAJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAJ ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47CkBAIC03NTQ3LDggKzc1NDks OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJY3J0Yy0+ZW5hYmxlZF9wb3dlcl9kb21haW5zID0gMDsKIAogCWRldl9w cml2LT5hY3RpdmVfcGlwZXMgJj0gfkJJVChwaXBlKTsKLQlkZXZfcHJpdi0+Y2RjbGsubWluX2Nk Y2xrW3BpcGVdID0gMDsKLQlkZXZfcHJpdi0+Y2RjbGsubWluX3ZvbHRhZ2VfbGV2ZWxbcGlwZV0g PSAwOworCWNkY2xrX3N0YXRlLT5taW5fY2RjbGtbcGlwZV0gPSAwOworCWNkY2xrX3N0YXRlLT5t aW5fdm9sdGFnZV9sZXZlbFtwaXBlXSA9IDA7CiAKIAlid19zdGF0ZS0+ZGF0YV9yYXRlW3BpcGVd ID0gMDsKIAlid19zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXNbcGlwZV0gPSAwOwpAQCAtNzc4NCw2 ICs3Nzg2LDggQEAgc3RhdGljIGJvb2wgaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQogCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CisJY29uc3Qgc3Ry dWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSA9CisJCSZpbnRlbF9zdGF0ZS0+Y2Rj bGtfc3RhdGU7CiAKIAlpZiAoIWhzd19jcnRjX3N0YXRlX2lwc19jYXBhYmxlKGNydGNfc3RhdGUp KQogCQlyZXR1cm4gZmFsc2U7CkBAIC03ODAzLDcgKzc4MDcsNyBAQCBzdGF0aWMgYm9vbCBoc3df Y29tcHV0ZV9pcHNfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CiAJLyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24g QkRXICovCiAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYKLQkgICAgY3J0Y19zdGF0ZS0+ cGl4ZWxfcmF0ZSA+IGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrICogOTUgLyAxMDAp CisJICAgIGNydGNfc3RhdGUtPnBpeGVsX3JhdGUgPiBjZGNsa19zdGF0ZS0+bG9naWNhbC5jZGNs ayAqIDk1IC8gMTAwKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTEyNTQ1 LDEyICsxMjU0OSwxNCBAQCBzdGF0aWMgdTE2IGhzd19pcHNfbGluZXRpbWVfd20oY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXRvX2ludGVsX2F0b21pY19zdGF0 ZShjcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9CiAJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCWNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPQorCQkmc3RhdGUtPmNk Y2xrX3N0YXRlOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiAwOwog CiAJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsICog MTAwMCAqIDgsCi0JCQkJIHN0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrKTsKKwkJCQkgY2RjbGtf c3RhdGUtPmxvZ2ljYWwuY2RjbGspOwogfQogCiBzdGF0aWMgdTE2IHNrbF9saW5ldGltZV93bShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKQEAgLTE0NzU0LDcgKzE0 NzYwLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKLQlhbnlfbXMgfD0gc3RhdGUtPmNkY2xr LmZvcmNlX21pbl9jZGNsa19jaGFuZ2VkOworCWFueV9tcyB8PSBzdGF0ZS0+Y2RjbGtfc3RhdGUu Zm9yY2VfbWluX2NkY2xrX2NoYW5nZWQ7CiAKIAlyZXQgPSBpbnRlbF9hdG9taWNfY2hlY2tfcGxh bmVzKHN0YXRlLCAmYW55X21zKTsKIAlpZiAocmV0KQpAQCAtMTQ3NjUsNyArMTQ3NzEsNyBAQCBz dGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlp ZiAocmV0KQogCQkJZ290byBmYWlsOwogCX0gZWxzZSB7Ci0JCXN0YXRlLT5jZGNsay5sb2dpY2Fs ID0gZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWw7CisJCXN0YXRlLT5jZGNsa19zdGF0ZS5sb2dpY2Fs ID0gZGV2X3ByaXYtPmNkY2xrX3N0YXRlLmxvZ2ljYWw7CiAJfQogCiAJcmV0ID0gaW50ZWxfYXRv bWljX2NoZWNrX2NydGNzKHN0YXRlKTsKQEAgLTE3MzUyLDkgKzE3MzU4LDEyIEBAIHZvaWQgaW50 ZWxfaW5pdF9kaXNwbGF5X2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAogdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiB7CisJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSA9CisJCSZpOTE1 LT5jZGNsa19zdGF0ZTsKKwogCWludGVsX3VwZGF0ZV9jZGNsayhpOTE1KTsKIAlpbnRlbF9kdW1w X2NkY2xrX2NvbmZpZygmaTkxNS0+Y2RjbGsuaHcsICJDdXJyZW50IENEQ0xLIik7Ci0JaTkxNS0+ Y2RjbGsubG9naWNhbCA9IGk5MTUtPmNkY2xrLmFjdHVhbCA9IGk5MTUtPmNkY2xrLmh3OworCWNk Y2xrX3N0YXRlLT5sb2dpY2FsID0gY2RjbGtfc3RhdGUtPmFjdHVhbCA9IGk5MTUtPmNkY2xrLmh3 OwogfQogCiAvKgpAQCAtMTgxNzcsNiArMTgxODYsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rl c2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlmb3JfZWFjaF9p bnRlbF9jcnRjKGRldiwgY3J0YykgewogCQlzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKmJ3X3N0YXRl ID0KIAkJCXRvX2ludGVsX2J3X3N0YXRlKGRldl9wcml2LT5id19vYmouc3RhdGUpOworCQlzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlID0KKwkJCSZkZXZfcHJpdi0+Y2RjbGtf c3RhdGU7CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCXRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAJCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmU7CkBAIC0xODI0NSw4ICsxODI1Niw4IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRf cmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJCW1pbl9jZGNsayA9 IDA7CiAJCX0KIAotCQlkZXZfcHJpdi0+Y2RjbGsubWluX2NkY2xrW2NydGMtPnBpcGVdID0gbWlu X2NkY2xrOwotCQlkZXZfcHJpdi0+Y2RjbGsubWluX3ZvbHRhZ2VfbGV2ZWxbY3J0Yy0+cGlwZV0g PQorCQljZGNsa19zdGF0ZS0+bWluX2NkY2xrW2NydGMtPnBpcGVdID0gbWluX2NkY2xrOworCQlj ZGNsa19zdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWxbY3J0Yy0+cGlwZV0gPQogCQkJY3J0Y19zdGF0 ZS0+bWluX3ZvbHRhZ2VfbGV2ZWw7CiAKIAkJaW50ZWxfYndfY3J0Y191cGRhdGUoYndfc3RhdGUs IGNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaAppbmRleCA0ODViMjZkMDVlOTAuLmIzMWVkODI4ZmE4ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgK QEAgLTQ2MSwzMSArNDYxLDcgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7CiAKIAlpbnRl bF93YWtlcmVmX3Qgd2FrZXJlZjsKIAotCXN0cnVjdCB7Ci0JCS8qCi0JCSAqIExvZ2ljYWwgY29u ZmlndXJhdGlvbiBvZiBjZGNsayAodXNlZCBmb3IgYWxsIHNjYWxpbmcsCi0JCSAqIHdhdGVybWFy aywgZXRjLiBjYWxjdWxhdGlvbnMgYW5kIGNoZWNrcykuIFRoaXMgaXMKLQkJICogY29tcHV0ZWQg YXMgaWYgYWxsIGVuYWJsZWQgY3J0Y3Mgd2VyZSBhY3RpdmUuCi0JCSAqLwotCQlzdHJ1Y3QgaW50 ZWxfY2RjbGtfY29uZmlnIGxvZ2ljYWw7Ci0KLQkJLyoKLQkJICogQWN0dWFsIGNvbmZpZ3VyYXRp b24gb2YgY2RjbGssIGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB0aGUKLQkJICogbG9naWNhbCBjb25m aWd1cmF0aW9uIG9ubHkgd2hlbiBhbGwgY3J0YydzIGFyZSBEUE1TIG9mZi4KLQkJICovCi0JCXN0 cnVjdCBpbnRlbF9jZGNsa19jb25maWcgYWN0dWFsOwotCi0JCWludCBmb3JjZV9taW5fY2RjbGs7 Ci0JCWJvb2wgZm9yY2VfbWluX2NkY2xrX2NoYW5nZWQ7Ci0KLQkJLyogbWluaW11bSBhY2NlcHRh YmxlIGNkY2xrIGZvciBlYWNoIHBpcGUgKi8KLQkJaW50IG1pbl9jZGNsa1tJOTE1X01BWF9QSVBF U107Ci0JCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsIGZvciBlYWNoIHBpcGUg Ki8KLQkJdTggbWluX3ZvbHRhZ2VfbGV2ZWxbSTkxNV9NQVhfUElQRVNdOwotCi0JCS8qIHBpcGUg dG8gd2hpY2ggY2QyeCB1cGRhdGUgaXMgc3luY2hyb25pemVkICovCi0JCWVudW0gcGlwZSBwaXBl OwotCX0gY2RjbGs7CisJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGNkY2xrX3N0YXRlOwogCiAJ Ym9vbCBkcGxsX3NldCwgbW9kZXNldDsKIApAQCAtNTEzLDkgKzQ4OSw3IEBAIHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgewogCiAJLyoKIAkgKiBhY3RpdmVfcGlwZXMKLQkgKiBtaW5fY2RjbGtb XQotCSAqIG1pbl92b2x0YWdlX2xldmVsW10KLQkgKiBjZGNsay4qCisJICogY2RjbGtfc3RhdGUK IAkgKi8KIAlib29sIGdsb2JhbF9zdGF0ZV9jaGFuZ2VkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCA0OTI3NmNlMjgxOWYuLjE3ODdiZmRkMDU3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiaTkxNV91dGlscy5oIgogCiAjaW5jbHVk ZSAiZGlzcGxheS9pbnRlbF9iaW9zLmgiCisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9jZGNsay5o IgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheS5oIgogI2luY2x1ZGUgImRpc3BsYXkv aW50ZWxfZGlzcGxheV9wb3dlci5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHBsbF9tZ3Iu aCIKQEAgLTg4OSw2ICs4OTAsMzMgQEAgc3RydWN0IGk5MTVfc2VsZnRlc3Rfc3Rhc2ggewogCWF0 b21pY190IGNvdW50ZXI7CiB9OwogCitzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgeworCS8qCisJ ICogTG9naWNhbCBjb25maWd1cmF0aW9uIG9mIGNkY2xrICh1c2VkIGZvciBhbGwgc2NhbGluZywK KwkgKiB3YXRlcm1hcmssIGV0Yy4gY2FsY3VsYXRpb25zIGFuZCBjaGVja3MpLiBUaGlzIGlzCisJ ICogY29tcHV0ZWQgYXMgaWYgYWxsIGVuYWJsZWQgY3J0Y3Mgd2VyZSBhY3RpdmUuCisJICovCisJ c3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBsb2dpY2FsOworCisJLyoKKwkgKiBBY3R1YWwgY29u ZmlndXJhdGlvbiBvZiBjZGNsaywgY2FuIGJlIGRpZmZlcmVudCBmcm9tIHRoZQorCSAqIGxvZ2lj YWwgY29uZmlndXJhdGlvbiBvbmx5IHdoZW4gYWxsIGNydGMncyBhcmUgRFBNUyBvZmYuCisJICov CisJc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBhY3R1YWw7CisKKwkvKiBtaW5pbXVtIGFjY2Vw dGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLworCWludCBtaW5fY2RjbGtbSTkxNV9NQVhfUElQ RVNdOworCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxldmVsIGZvciBlYWNoIHBpcGUg Ki8KKwl1OCBtaW5fdm9sdGFnZV9sZXZlbFtJOTE1X01BWF9QSVBFU107CisKKwkvKiBwaXBlIHRv IHdoaWNoIGNkMnggdXBkYXRlIGlzIHN5bmNocm9uaXplZCAqLworCWVudW0gcGlwZSBwaXBlOwor CisJLyogZm9yY2VkIG1pbmltdW0gY2RjbGsgZm9yIGdsaysgYXVkaW8gdy9hICovCisJaW50IGZv cmNlX21pbl9jZGNsazsKKwlib29sIGZvcmNlX21pbl9jZGNsa19jaGFuZ2VkOworfTsKKwogc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBkcm1fZGV2aWNlIGRybTsKIApAQCAtMTAw OSwyOSArMTAzNywxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJICogRm9yIHJlYWRp bmcgaG9sZGluZyBhbnkgY3J0YyBsb2NrIGlzIHN1ZmZpY2llbnQsCiAJICogZm9yIHdyaXRpbmcg bXVzdCBob2xkIGFsbCBvZiB0aGVtLgogCSAqLworCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBj ZGNsa19zdGF0ZTsKKwogCXN0cnVjdCB7Ci0JCS8qCi0JCSAqIFRoZSBjdXJyZW50IGxvZ2ljYWwg Y2RjbGsgY29uZmlndXJhdGlvbi4KLQkJICogU2VlIGludGVsX2F0b21pY19zdGF0ZS5jZGNsay5s b2dpY2FsCi0JCSAqLwotCQlzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnIGxvZ2ljYWw7Ci0JCS8q Ci0JCSAqIFRoZSBjdXJyZW50IGFjdHVhbCBjZGNsayBjb25maWd1cmF0aW9uLgotCQkgKiBTZWUg aW50ZWxfYXRvbWljX3N0YXRlLmNkY2xrLmFjdHVhbAotCQkgKi8KLQkJc3RydWN0IGludGVsX2Nk Y2xrX2NvbmZpZyBhY3R1YWw7CiAJCS8qIFRoZSBjdXJyZW50IGhhcmR3YXJlIGNkY2xrIGNvbmZp Z3VyYXRpb24gKi8KIAkJc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBodzsKIAogCQkvKiBjZGNs aywgZGl2aWRlciwgYW5kIHJhdGlvIHRhYmxlIGZyb20gYnNwZWMgKi8KIAkJY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX3ZhbHMgKnRhYmxlOwotCi0JCWludCBmb3JjZV9taW5fY2RjbGs7Ci0KLQkJ LyogbWluaW11bSBhY2NlcHRhYmxlIGNkY2xrIGZvciBlYWNoIHBpcGUgKi8KLQkJaW50IG1pbl9j ZGNsa1tJOTE1X01BWF9QSVBFU107Ci0JCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxl dmVsIGZvciBlYWNoIHBpcGUgKi8KLQkJdTggbWluX3ZvbHRhZ2VfbGV2ZWxbSTkxNV9NQVhfUElQ RVNdOwogCX0gY2RjbGs7CiAKIAkvKioKQEAgLTEwODgsOCArMTEwMSw4IEBAIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3QgbXV0ZXggZHBsbF9sb2NrOwogCiAJLyoKLQkgKiBGb3Ig cmVhZGluZyBhY3RpdmVfcGlwZXMsIG1pbl9jZGNsaywgbWluX3ZvbHRhZ2VfbGV2ZWwgaG9sZGlu ZwotCSAqIGFueSBjcnRjIGxvY2sgaXMgc3VmZmljaWVudCwgZm9yIHdyaXRpbmcgbXVzdCBob2xk IGFsbCBvZiB0aGVtLgorCSAqIEZvciByZWFkaW5nIGFjdGl2ZV9waXBlcywgY2RjbGtfc3RhdGUg aG9sZGluZyBhbnkgY3J0YworCSAqIGxvY2sgaXMgc3VmZmljaWVudCwgZm9yIHdyaXRpbmcgbXVz dCBob2xkIGFsbCBvZiB0aGVtLgogCSAqLwogCXU4IGFjdGl2ZV9waXBlczsKIAotLSAKMi4yNC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK