From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1E7DC3F68F for ; Thu, 13 Feb 2020 18:48: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 9B329217F4 for ; Thu, 13 Feb 2020 18:48:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9B329217F4 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 185AA6F61A; Thu, 13 Feb 2020 18:48:08 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 080EF6F617 for ; Thu, 13 Feb 2020 18:48:06 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2020 10:48:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,437,1574150400"; d="scan'208";a="227165919" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga007.fm.intel.com with SMTP; 13 Feb 2020 10:48:04 -0800 Received: by stinkbox (sSMTP sendmail emulation); Thu, 13 Feb 2020 20:48:03 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Thu, 13 Feb 2020 20:47:55 +0200 Message-Id: <20200213184800.14147-2-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200213184800.14147-1-ville.syrjala@linux.intel.com> References: <20200213184800.14147-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/6] drm/i915: Introduce proper dbuf 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" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBhIGdsb2JhbCBzdGF0ZSB0byB0cmFjayB0aGUgZGJ1ZiBzbGljZXMuIEdldHMgcmlkIG9mIGFs bCB0aGUgbmFzdHkKY291cGxpbmcgYmV0d2VlbiBzdGF0ZS0+bW9kZXNldCBhbmQgZGJ1ZiByZWNv bXB1bGF0aW9uLiBBbHNvIHdlIGNhbiBub3cKdG90YWxseSBudWtlIHN0YXRlLT5hY3RpdmVfcGlw ZV9jaGFuZ2VzLgoKZGV2X3ByaXYtPndtLmRpc3RydXN0X2Jpb3Nfd20gc3RpbGwgcmVtYWlucywg YnV0IHNob3VsZCBwcm9iYWJseSBhbHNvCmdldCBudWtlZCBmcm9tIG9yYml0IGxhdGVyLiBKdXN0 IGRpZG4ndCBzcGVuZCBhbnkgc2lnbmlmaWNhbnQgdGltZQpwb25kZXJpbmcgaG93IHRvIGdvIGFi b3V0LiBUaGUgb2J2aW91cyB0aGluZyB3b3VsZCBiZSB0byBqdXN0IHJlY29tcHV0ZQp0aGUgdGhp bmcgZXZlcnkgdGltZS4KCkNjOiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zz a2l5QGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyAgfCAgNjkgKysrKy0tLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5jICAgIHwgICA0ICstCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X3R5cGVzLmggICAgfCAgMTMgLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgICAgICAgICB8ICAxMSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyAgICAgICAgICAgICAgIHwgMTg1ICsrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uaCAgICAgICAgICAgICAgIHwgIDIyICsrKwogNiBmaWxlcyBjaGFuZ2Vk LCAyMDUgaW5zZXJ0aW9ucygrKSwgOTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCBlMDlkM2M5M2M1MmIuLmUzMzFhYjkw MDMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMK QEAgLTc1NTgsNiArNzU1OCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9ub2F0 b21pYyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJdG9faW50ZWxfYndfc3RhdGUoZGV2X3By aXYtPmJ3X29iai5zdGF0ZSk7CiAJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0 ZSA9CiAJCXRvX2ludGVsX2NkY2xrX3N0YXRlKGRldl9wcml2LT5jZGNsay5vYmouc3RhdGUpOwor CXN0cnVjdCBpbnRlbF9kYnVmX3N0YXRlICpkYnVmX3N0YXRlID0KKwkJdG9faW50ZWxfZGJ1Zl9z dGF0ZShkZXZfcHJpdi0+ZGJ1Zi5vYmouc3RhdGUpOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlID0KIAkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsK IAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKQEAgLTc2MzAsNiArNzYz Miw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAljZGNsa19zdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWxbcGlwZV0gPSAw OwogCWNkY2xrX3N0YXRlLT5hY3RpdmVfcGlwZXMgJj0gfkJJVChwaXBlKTsKIAorCWRidWZfc3Rh dGUtPmFjdGl2ZV9waXBlcyAmPSB+QklUKHBpcGUpOworCiAJYndfc3RhdGUtPmRhdGFfcmF0ZVtw aXBlXSA9IDA7CiAJYndfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzW3BpcGVdID0gMDsKIH0KQEAg LTE0MDg5LDEwICsxNDA5MywxMCBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfd21fc3RhdGUoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJaHdfZW5hYmxlZF9zbGljZXMgPSBpbnRlbF9lbmFibGVkX2Ri dWZfc2xpY2VzX21hc2soZGV2X3ByaXYpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTEgJiYKLQkgICAgaHdfZW5hYmxlZF9zbGljZXMgIT0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9z bGljZXNfbWFzaykKKwkgICAgaHdfZW5hYmxlZF9zbGljZXMgIT0gZGV2X3ByaXYtPmRidWYuZW5h YmxlZF9zbGljZXMpCiAJCWRybV9lcnIoJmRldl9wcml2LT5kcm0sCiAJCQkibWlzbWF0Y2ggaW4g REJVRiBTbGljZXMgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KVxuIiwKLQkJCWRldl9wcml2LT5l bmFibGVkX2RidWZfc2xpY2VzX21hc2ssCisJCQlkZXZfcHJpdi0+ZGJ1Zi5lbmFibGVkX3NsaWNl cywKIAkJCWh3X2VuYWJsZWRfc2xpY2VzKTsKIAogCS8qIHBsYW5lcyAqLwpAQCAtMTQ2MjcsOSAr MTQ2MzEsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQogCXN0YXRlLT5tb2Rlc2V0ID0gdHJ1ZTsKIAlzdGF0ZS0+YWN0 aXZlX3BpcGVzID0gaW50ZWxfY2FsY19hY3RpdmVfcGlwZXMoc3RhdGUsIGRldl9wcml2LT5hY3Rp dmVfcGlwZXMpOwogCi0Jc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMgPSBzdGF0ZS0+YWN0aXZl X3BpcGVzIF4gZGV2X3ByaXYtPmFjdGl2ZV9waXBlczsKLQotCWlmIChzdGF0ZS0+YWN0aXZlX3Bp cGVfY2hhbmdlcykgeworCWlmIChzdGF0ZS0+YWN0aXZlX3BpcGVzICE9IGRldl9wcml2LT5hY3Rp dmVfcGlwZXMpIHsKIAkJcmV0ID0gX2ludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZShzdGF0 ZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMTU0NTAsMjQgKzE1NDUyLDM4IEBA IHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV90cmFuc19wb3J0X3N5bmNfY3J0Y3Moc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBpY2xfZGJ1Zl9zbGljZV9wcmVfdXBkYXRlKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKLQl1OCBod19lbmFibGVk X3NsaWNlcyA9IGRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX21hc2s7Ci0JdTggcmVxdWly ZWRfc2xpY2VzID0gc3RhdGUtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsKLQl1OCBzbGljZXNf dW5pb24gPSBod19lbmFibGVkX3NsaWNlcyB8IHJlcXVpcmVkX3NsaWNlczsKKwljb25zdCBzdHJ1 Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAqbmV3X2RidWZfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0 X25ld19kYnVmX3N0YXRlKHN0YXRlKTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAq b2xkX2RidWZfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9kYnVmX3N0YXRlKHN0YXRl KTsKKworCWlmICghbmV3X2RidWZfc3RhdGUgfHwKKwkgICAgbmV3X2RidWZfc3RhdGUtPmVuYWJs ZWRfc2xpY2VzID09IG9sZF9kYnVmX3N0YXRlLT5lbmFibGVkX3NsaWNlcykKKwkJcmV0dXJuOwog Ci0JLyogSWYgMm5kIERCdWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBpdCBoZXJlICovCi0JaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgc2xpY2VzX3VuaW9uICE9IGh3X2VuYWJsZWRf c2xpY2VzKQotCQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCBzbGljZXNfdW5pb24p OworCVdBUk5fT04oIW5ld19kYnVmX3N0YXRlLT5iYXNlLmNoYW5nZWQpOworCisJaWNsX2RidWZf c2xpY2VzX3VwZGF0ZShkZXZfcHJpdiwKKwkJCSAgICAgICBvbGRfZGJ1Zl9zdGF0ZS0+ZW5hYmxl ZF9zbGljZXMgfAorCQkJICAgICAgIG5ld19kYnVmX3N0YXRlLT5lbmFibGVkX3NsaWNlcyk7CiB9 CiAKIHN0YXRpYyB2b2lkIGljbF9kYnVmX3NsaWNlX3Bvc3RfdXBkYXRlKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKLQl1OCBod19lbmFibGVkX3NsaWNlcyA9IGRl dl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX21hc2s7Ci0JdTggcmVxdWlyZWRfc2xpY2VzID0g c3RhdGUtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGJ1 Zl9zdGF0ZSAqbmV3X2RidWZfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19kYnVmX3N0 YXRlKHN0YXRlKTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAqb2xkX2RidWZfc3Rh dGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9kYnVmX3N0YXRlKHN0YXRlKTsKKworCWlmICgh bmV3X2RidWZfc3RhdGUgfHwKKwkgICAgbmV3X2RidWZfc3RhdGUtPmVuYWJsZWRfc2xpY2VzID09 IG9sZF9kYnVmX3N0YXRlLT5lbmFibGVkX3NsaWNlcykKKwkJcmV0dXJuOwogCi0JLyogSWYgMm5k IERCdWYgc2xpY2UgaXMgbm8gbW9yZSByZXF1aXJlZCBkaXNhYmxlIGl0ICovCi0JaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTEgJiYgcmVxdWlyZWRfc2xpY2VzICE9IGh3X2VuYWJsZWRfc2xp Y2VzKQotCQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCByZXF1aXJlZF9zbGljZXMp OworCVdBUk5fT04oIW5ld19kYnVmX3N0YXRlLT5iYXNlLmNoYW5nZWQpOworCisJaWNsX2RidWZf c2xpY2VzX3VwZGF0ZShkZXZfcHJpdiwKKwkJCSAgICAgICBuZXdfZGJ1Zl9zdGF0ZS0+ZW5hYmxl ZF9zbGljZXMpOwogfQogCiBzdGF0aWMgdm9pZCBza2xfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKQEAgLTE1NzIyLDkgKzE1NzM4LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCWlmIChzdGF0ZS0+bW9kZXNldCkKIAkJaW50ZWxfZW5jb2RlcnNfdXBk YXRlX3ByZXBhcmUoc3RhdGUpOwogCi0JLyogRW5hYmxlIGFsbCBuZXcgc2xpY2VzLCB3ZSBtaWdo dCBuZWVkICovCi0JaWYgKHN0YXRlLT5tb2Rlc2V0KQotCQlpY2xfZGJ1Zl9zbGljZV9wcmVfdXBk YXRlKHN0YXRlKTsKKwlpY2xfZGJ1Zl9zbGljZV9wcmVfdXBkYXRlKHN0YXRlKTsKIAogCS8qIE5v dyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRoYXQgd2Ug c2V0IHVwLiAqLwogCWRldl9wcml2LT5kaXNwbGF5LmNvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoc3Rh dGUpOwpAQCAtMTU3NzksOSArMTU3OTMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29t bWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQlkZXZfcHJpdi0+ ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKHN0YXRlLCBjcnRjKTsKIAl9CiAKLQkvKiBEaXNh YmxlIGFsbCBzbGljZXMsIHdlIGRvbid0IG5lZWQgKi8KLQlpZiAoc3RhdGUtPm1vZGVzZXQpCi0J CWljbF9kYnVmX3NsaWNlX3Bvc3RfdXBkYXRlKHN0YXRlKTsKKwlpY2xfZGJ1Zl9zbGljZV9wb3N0 X3VwZGF0ZShzdGF0ZSk7CiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCWludGVs X3Bvc3RfcGxhbmVfdXBkYXRlKHN0YXRlLCBjcnRjKTsKQEAgLTE3NjY3LDEwICsxNzY3OSwxNCBA QCB2b2lkIGludGVsX21vZGVzZXRfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlID0KIAkJdG9faW50 ZWxfY2RjbGtfc3RhdGUoaTkxNS0+Y2RjbGsub2JqLnN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfZGJ1 Zl9zdGF0ZSAqZGJ1Zl9zdGF0ZSA9CisJCXRvX2ludGVsX2RidWZfc3RhdGUoaTkxNS0+ZGJ1Zi5v Ymouc3RhdGUpOwogCiAJaW50ZWxfdXBkYXRlX2NkY2xrKGk5MTUpOwogCWludGVsX2R1bXBfY2Rj bGtfY29uZmlnKCZpOTE1LT5jZGNsay5odywgIkN1cnJlbnQgQ0RDTEsiKTsKIAljZGNsa19zdGF0 ZS0+bG9naWNhbCA9IGNkY2xrX3N0YXRlLT5hY3R1YWwgPSBpOTE1LT5jZGNsay5odzsKKworCWRi dWZfc3RhdGUtPmVuYWJsZWRfc2xpY2VzID0gaTkxNS0+ZGJ1Zi5lbmFibGVkX3NsaWNlczsKIH0K IAogc3RhdGljIGludCBzYW5pdGl6ZV93YXRlcm1hcmtzX2FkZF9hZmZlY3RlZChzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCkBAIC0xNzk0MSw2ICsxNzk1NywxMCBAQCBpbnQgaW50ZWxf bW9kZXNldF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmIChyZXQpCiAJ CXJldHVybiByZXQ7CiAKKwlyZXQgPSBpbnRlbF9kYnVmX2luaXQoaTkxNSk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKwogCXJldCA9IGludGVsX2J3X2luaXQoaTkxNSk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKQEAgLTE4NDM1LDYgKzE4NDU1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxf bW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPQogCQl0b19pbnRlbF9jZGNsa19zdGF0ZShkZXZf cHJpdi0+Y2RjbGsub2JqLnN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAqZGJ1Zl9z dGF0ZSA9CisJCXRvX2ludGVsX2RidWZfc3RhdGUoZGV2X3ByaXYtPmRidWYub2JqLnN0YXRlKTsK IAllbnVtIHBpcGUgcGlwZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcjsKQEAgLTE4NDY2LDcgKzE4NDg4LDggQEAgc3RhdGljIHZvaWQg aW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CQkgICAgZW5hYmxlZGRpc2FibGVkKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkpOwogCX0KIAotCWRl dl9wcml2LT5hY3RpdmVfcGlwZXMgPSBjZGNsa19zdGF0ZS0+YWN0aXZlX3BpcGVzID0gYWN0aXZl X3BpcGVzOworCWRldl9wcml2LT5hY3RpdmVfcGlwZXMgPSBjZGNsa19zdGF0ZS0+YWN0aXZlX3Bp cGVzID0KKwkJZGJ1Zl9zdGF0ZS0+YWN0aXZlX3BpcGVzID0gYWN0aXZlX3BpcGVzOwogCiAJcmVh ZG91dF9wbGFuZV9zdGF0ZShkZXZfcHJpdik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKaW5kZXggNTMwNTZkZWY1NDE0Li5jMjRl MWRlNzhiOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5jCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0aWMgYm9vbCBnZW45X2Rj X29mZl9wb3dlcl93ZWxsX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogc3RhdGljIHZvaWQgZ2VuOV9hc3NlcnRfZGJ1Zl9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKIAl1OCBod19lbmFibGVkX2RidWZfc2xpY2VzID0gaW50ZWxf ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrKGRldl9wcml2KTsKLQl1OCBlbmFibGVkX2RidWZfc2xp Y2VzID0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsKKwl1OCBlbmFibGVkX2Ri dWZfc2xpY2VzID0gZGV2X3ByaXYtPmRidWYuZW5hYmxlZF9zbGljZXM7CiAKIAlXQVJOKGh3X2Vu YWJsZWRfZGJ1Zl9zbGljZXMgIT0gZW5hYmxlZF9kYnVmX3NsaWNlcywKIAkgICAgICJVbmV4cGVj dGVkIERCdWYgcG93ZXIgcG93ZXIgc3RhdGUgKDB4JTA4eCwgZXhwZWN0ZWQgMHglMDh4KVxuIiwK QEAgLTQ0NjMsNyArNDQ2Myw3IEBAIHZvaWQgaWNsX2RidWZfc2xpY2VzX3VwZGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAocmVxX3NsaWNlcyAmIEJJVChp KSkgIT0gMCk7CiAJfQogCi0JZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzayA9IHJl cV9zbGljZXM7CisJZGV2X3ByaXYtPmRidWYuZW5hYmxlZF9zbGljZXMgPSByZXFfc2xpY2VzOwog CiAJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKaW5kZXggMjgzYzYy MmY4YmExLi4xMmFjNDdjMzMxNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC00NjgsMTYgKzQ2OCw2IEBAIHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgewogCiAJYm9vbCBkcGxsX3NldCwgbW9kZXNldDsKIAotCS8qCi0J ICogRG9lcyB0aGlzIHRyYW5zYWN0aW9uIGNoYW5nZSB0aGUgcGlwZXMgdGhhdCBhcmUgYWN0aXZl PyAgVGhpcyBtYXNrCi0JICogdHJhY2tzIHdoaWNoIENSVEMncyBoYXZlIGNoYW5nZWQgdGhlaXIg YWN0aXZlIHN0YXRlIGF0IHRoZSBlbmQgb2YKLQkgKiB0aGUgdHJhbnNhY3Rpb24gKG5vdCBjb3Vu dGluZyB0aGUgdGVtcG9yYXJ5IGRpc2FibGUgZHVyaW5nIG1vZGVzZXRzKS4KLQkgKiBUaGlzIG1h c2sgc2hvdWxkIG9ubHkgYmUgbm9uLXplcm8gd2hlbiBpbnRlbF9zdGF0ZS0+bW9kZXNldCBpcyB0 cnVlLAotCSAqIGJ1dCB0aGUgY29udmVyc2UgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWU7IHNpbXBs eSBjaGFuZ2luZyBhIG1vZGUgbWF5Ci0JICogbm90IGZsaXAgdGhlIGZpbmFsIGFjdGl2ZSBzdGF0 dXMgb2YgYW55IENSVEMncwotCSAqLwotCXU4IGFjdGl2ZV9waXBlX2NoYW5nZXM7Ci0KIAl1OCBh Y3RpdmVfcGlwZXM7CiAKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgc2hhcmVkX2Rw bGxbSTkxNV9OVU1fUExMU107CkBAIC00OTUsOSArNDg1LDYgQEAgc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSB7CiAJICovCiAJYm9vbCBnbG9iYWxfc3RhdGVfY2hhbmdlZDsKIAotCS8qIE51bWJl ciBvZiBlbmFibGVkIERCdWYgc2xpY2VzICovCi0JdTggZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNr OwotCiAJc3RydWN0IGk5MTVfc3dfZmVuY2UgY29tbWl0X3JlYWR5OwogCiAJc3RydWN0IGxsaXN0 X25vZGUgZnJlZWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBkYTUwOWQ5Yjg4OTUuLjI2 MzhmM2ZjZDFhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xMDA3LDYgKzEwMDcsMTMg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQlzdHJ1Y3QgaW50ZWxfZ2xvYmFsX29iaiBv Ymo7CiAJfSBjZGNsazsKIAorCXN0cnVjdCB7CisJCS8qIFRoZSBjdXJyZW50IGhhcmR3YXJlIGRi dWYgY29uZmlndXJhdGlvbiAqLworCQl1OCBlbmFibGVkX3NsaWNlczsKKworCQlzdHJ1Y3QgaW50 ZWxfZ2xvYmFsX29iaiBvYmo7CisJfSBkYnVmOworCiAJLyoqCiAJICogd3EgLSBEcml2ZXIgd29y a3F1ZXVlIGZvciBHRU0uCiAJICoKQEAgLTExODIsMTIgKzExODksMTIgQEAgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgewogCQkgKiBTZXQgZHVyaW5nIEhXIHJlYWRvdXQgb2Ygd2F0ZXJtYXJrcy9E REIuICBTb21lIHBsYXRmb3JtcwogCQkgKiBuZWVkIHRvIGtub3cgd2hlbiB3ZSdyZSBzdGlsbCB1 c2luZyBCSU9TLXByb3ZpZGVkIHZhbHVlcwogCQkgKiAod2hpY2ggd2UgZG9uJ3QgZnVsbHkgdHJ1 c3QpLgorCQkgKgorCQkgKiBGSVhNRSBnZXQgcmlkIG9mIHRoaXMuCiAJCSAqLwogCQlib29sIGRp c3RydXN0X2Jpb3Nfd207CiAJfSB3bTsKIAotCXU4IGVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsg LyogR0VOMTEgaGFzIGNvbmZpZ3VyYWJsZSAyIHNsaWNlcyAqLwotCiAJc3RydWN0IGRyYW1faW5m byB7CiAJCWJvb2wgdmFsaWQ7CiAJCWJvb2wgaXNfMTZnYl9kaW1tOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKaW5kZXggZmZhYzBiODYyY2E1Li4zMTE3OWUzMGJmZTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwpAQCAtMzg0NSw3ICszODQ1LDcgQEAgc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3Np emUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHU4IHNrbF9jb21w dXRlX2RidWZfc2xpY2VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkJCSAgdTMyIGFjdGl2ZV9waXBlcyk7CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW50CiBz a2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCQkgICBjb25zdCB1NjQgdG90YWxfZGF0YV9yYXRlLApAQCAtMzg1OCwzMCArMzg1 OCwyOSBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAl1 MzIgcGlwZV93aWR0aCA9IDAsIHRvdGFsX3dpZHRoX2luX3JhbmdlID0gMCwgd2lkdGhfYmVmb3Jl X3BpcGVfaW5fcmFuZ2UgPSAwOwogCWVudW0gcGlwZSBmb3JfcGlwZSA9IHRvX2ludGVsX2NydGMo Zm9yX2NydGMpLT5waXBlOworCXN0cnVjdCBpbnRlbF9kYnVmX3N0YXRlICpuZXdfZGJ1Zl9zdGF0 ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2RidWZfc3RhdGUoaW50ZWxfc3RhdGUpOworCWNv bnN0IHN0cnVjdCBpbnRlbF9kYnVmX3N0YXRlICpvbGRfZGJ1Zl9zdGF0ZSA9CisJCWludGVsX2F0 b21pY19nZXRfb2xkX2RidWZfc3RhdGUoaW50ZWxfc3RhdGUpOworCXU4IGFjdGl2ZV9waXBlcyA9 IG5ld19kYnVmX3N0YXRlLT5hY3RpdmVfcGlwZXM7CiAJdTE2IGRkYl9zaXplOwogCXUzMiBkZGJf cmFuZ2Vfc2l6ZTsKIAl1MzIgaTsKIAl1MzIgZGJ1Zl9zbGljZV9tYXNrOwotCXUzMiBhY3RpdmVf cGlwZXM7CiAJdTMyIG9mZnNldDsKIAl1MzIgc2xpY2Vfc2l6ZTsKIAl1MzIgdG90YWxfc2xpY2Vf bWFzazsKIAl1MzIgc3RhcnQsIGVuZDsKKwlpbnQgcmV0OworCisJKm51bV9hY3RpdmUgPSBod2Vp Z2h0OChhY3RpdmVfcGlwZXMpOwogCi0JaWYgKGRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLCAh c3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKKwlpZiAoIWNydGNfc3RhdGUtPmh3 LmFjdGl2ZSkgewogCQlhbGxvYy0+c3RhcnQgPSAwOwogCQlhbGxvYy0+ZW5kID0gMDsKLQkJKm51 bV9hY3RpdmUgPSBod2VpZ2h0OChkZXZfcHJpdi0+YWN0aXZlX3BpcGVzKTsKLQkJcmV0dXJuOwor CQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoaW50ZWxfc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMp Ci0JCWFjdGl2ZV9waXBlcyA9IGludGVsX3N0YXRlLT5hY3RpdmVfcGlwZXM7Ci0JZWxzZQotCQlh Y3RpdmVfcGlwZXMgPSBkZXZfcHJpdi0+YWN0aXZlX3BpcGVzOwotCi0JKm51bV9hY3RpdmUgPSBo d2VpZ2h0OChhY3RpdmVfcGlwZXMpOwotCiAJZGRiX3NpemUgPSBpbnRlbF9nZXRfZGRiX3NpemUo ZGV2X3ByaXYpOwogCiAJc2xpY2Vfc2l6ZSA9IGRkYl9zaXplIC8gSU5URUxfSU5GTyhkZXZfcHJp diktPm51bV9zdXBwb3J0ZWRfZGJ1Zl9zbGljZXM7CkBAIC0zODk0LDEzICszODkzLDE2IEBAIHNr bF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCSAqIHRoYXQgY2hhbmdlcyB0aGUgYWN0aXZlIENSVEMgbGlzdCBvciBkbyBt b2Rlc2V0IHdvdWxkIG5lZWQgdG8KIAkgKiBncmFiIF9hbGxfIGNydGMgbG9ja3MsIGluY2x1ZGlu ZyB0aGUgb25lIHdlIGN1cnJlbnRseSBob2xkLgogCSAqLwotCWlmICghaW50ZWxfc3RhdGUtPmFj dGl2ZV9waXBlX2NoYW5nZXMgJiYgIWludGVsX3N0YXRlLT5tb2Rlc2V0KSB7CisJaWYgKG9sZF9k YnVmX3N0YXRlLT5hY3RpdmVfcGlwZXMgPT0gbmV3X2RidWZfc3RhdGUtPmFjdGl2ZV9waXBlcyAm JgorCSAgICAhZGV2X3ByaXYtPndtLmRpc3RydXN0X2Jpb3Nfd20pIHsKIAkJLyoKIAkJICogYWxs b2MgbWF5IGJlIGNsZWFyZWQgYnkgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZSwKIAkJICogY29weSBm cm9tIG9sZCBzdGF0ZSB0byBiZSBzdXJlCisJCSAqCisJCSAqIEZJWE1FIGdldCByaWQgb2YgdGhp cyBtZXNzCiAJCSAqLwogCQkqYWxsb2MgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGZvcl9jcnRjLT5z dGF0ZSktPndtLnNrbC5kZGI7Ci0JCXJldHVybjsKKwkJcmV0dXJuIDA7CiAJfQogCiAJLyoKQEAg LTM5NzksNyArMzk4MSwxMyBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiBGSVhNRTogRm9yIG5vdyB3ZSBh bHdheXMgZW5hYmxlIHNsaWNlIFMxIGFzIHBlcgogCSAqIHRoZSBCc3BlYyBkaXNwbGF5IGluaXRp YWxpemF0aW9uIHNlcXVlbmNlLgogCSAqLwotCWludGVsX3N0YXRlLT5lbmFibGVkX2RidWZfc2xp Y2VzX21hc2sgPSB0b3RhbF9zbGljZV9tYXNrIHwgQklUKERCVUZfUzEpOworCW5ld19kYnVmX3N0 YXRlLT5lbmFibGVkX3NsaWNlcyA9IHRvdGFsX3NsaWNlX21hc2sgfCBCSVQoREJVRl9TMSk7CisK KwlpZiAob2xkX2RidWZfc3RhdGUtPmVuYWJsZWRfc2xpY2VzICE9IG5ld19kYnVmX3N0YXRlLT5l bmFibGVkX3NsaWNlcykgeworCQlyZXQgPSBpbnRlbF9hdG9taWNfc2VyaWFsaXplX2dsb2JhbF9z dGF0ZSgmbmV3X2RidWZfc3RhdGUtPmJhc2UpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK Kwl9CiAKIAlzdGFydCA9IGRkYl9yYW5nZV9zaXplICogd2lkdGhfYmVmb3JlX3BpcGVfaW5fcmFu Z2UgLyB0b3RhbF93aWR0aF9pbl9yYW5nZTsKIAllbmQgPSBkZGJfcmFuZ2Vfc2l6ZSAqCkBAIC0z OTkwLDkgKzM5OTgsOCBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCURSTV9ERUJVR19LTVMoIlBpcGUgJWQg ZGRiICVkLSVkXG4iLCBmb3JfcGlwZSwKIAkJICAgICAgYWxsb2MtPnN0YXJ0LCBhbGxvYy0+ZW5k KTsKLQlEUk1fREVCVUdfS01TKCJFbmFibGVkIGRkYiBzbGljZXMgbWFzayAleCBudW0gc3VwcG9y dGVkICVkXG4iLAotCQkgICAgICBpbnRlbF9zdGF0ZS0+ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNr LAotCQkgICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3N1cHBvcnRlZF9kYnVmX3NsaWNl cyk7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBza2xfY29tcHV0ZV93bV9wYXJhbXMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCkBAIC00MTEyLDggKzQx MTksOCBAQCB2b2lkIHNrbF9waXBlX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2NydGMg KmNydGMsCiAKIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewotCWRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX21hc2sgPQot CQkJCWludGVsX2VuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzayhkZXZfcHJpdik7CisJZGV2X3ByaXYt PmRidWYuZW5hYmxlZF9zbGljZXMgPQorCQlpbnRlbF9lbmFibGVkX2RidWZfc2xpY2VzX21hc2so ZGV2X3ByaXYpOwogfQogCiAvKgpAQCAtNDU2Myw2ICs0NTcwLDcgQEAgc2tsX2FsbG9jYXRlX3Bp cGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXU2NCB1dl9wbGFu ZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9OwogCXUzMiBibG9ja3M7CiAJaW50IGxl dmVsOworCWludCByZXQ7CiAKIAkvKiBDbGVhciB0aGUgcGFydGl0aW9uaW5nIGZvciBkaXNhYmxl ZCBwbGFuZXMuICovCiAJbWVtc2V0KGNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeSwgMCwg c2l6ZW9mKGNydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfeSkpOwpAQCAtNDU4Nyw4ICs0NTk1 LDEyIEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAkJCQkJCQkgdXZfcGxhbmVfZGF0YV9yYXRlKTsKIAogCi0Jc2tsX2RkYl9nZXRf cGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXZfcHJpdiwgY3J0Y19zdGF0ZSwgdG90YWxfZGF0YV9y YXRlLAotCQkJCQkgICBhbGxvYywgJm51bV9hY3RpdmUpOworCXJldCA9IHNrbF9kZGJfZ2V0X3Bp cGVfYWxsb2NhdGlvbl9saW1pdHMoZGV2X3ByaXYsIGNydGNfc3RhdGUsCisJCQkJCQkgdG90YWxf ZGF0YV9yYXRlLAorCQkJCQkJIGFsbG9jLCAmbnVtX2FjdGl2ZSk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKwogCWFsbG9jX3NpemUgPSBza2xfZGRiX2VudHJ5X3NpemUoYWxsb2MpOwogCWlm IChhbGxvY19zaXplID09IDApCiAJCXJldHVybiAwOwpAQCAtNTQ3MSwxNCArNTQ4MywxMSBAQCBz a2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlLAogc3RhdGljIGludAogc2tsX2NvbXB1dGVfZGRiKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCWludCByZXQsIGk7CiAKLQlzdGF0ZS0+ ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrID0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNf bWFzazsKLQogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRj LCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCXJldCA9 IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihuZXdfY3J0Y19zdGF0ZSk7CkBAIC01NjE4LDcgKzU2Mjcs OCBAQCBza2xfcHJpbnRfd21fY2hhbmdlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSkKIAl9CiB9CiAKLXN0YXRpYyBpbnQgaW50ZWxfYWRkX2FsbF9waXBlcyhzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBpbnQgaW50ZWxfYWRkX2FmZmVjdGVkX3BpcGVz KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgICB1OCBwaXBlX21hc2sp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwpAQCAtNTYyNiw2ICs1NjM2LDkg QEAgc3RhdGljIGludCBpbnRlbF9hZGRfYWxsX3BpcGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQogCWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsK IAkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAKKwkJaWYgKChwaXBlX21h c2sgJiBCSVQoY3J0Yy0+cGlwZSkpID09IDApCisJCQljb250aW51ZTsKKwogCQljcnRjX3N0YXRl ID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY3J0Yyk7CiAJCWlm IChJU19FUlIoY3J0Y19zdGF0ZSkpCiAJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKQEAg LTU2MzgsNDkgKzU2NTEsNTQgQEAgc3RhdGljIGludAogc2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGlw ZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwotCWludCByZXQ7 CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGM7CisJaW50IGksIHJldDsKIAotCS8qCi0JICogSWYgdGhpcyBpcyBvdXIgZmlyc3Qg YXRvbWljIHVwZGF0ZSBmb2xsb3dpbmcgaGFyZHdhcmUgcmVhZG91dCwKLQkgKiB3ZSBjYW4ndCB0 cnVzdCB0aGUgRERCIHRoYXQgdGhlIEJJT1MgcHJvZ3JhbW1lZCBmb3IgdXMuICBMZXQncwotCSAq IHByZXRlbmQgdGhhdCBhbGwgcGlwZXMgc3dpdGNoZWQgYWN0aXZlIHN0YXR1cyBzbyB0aGF0IHdl J2xsCi0JICogZW5zdXJlIGEgZnVsbCBEREIgcmVjb21wdXRlLgotCSAqLwogCWlmIChkZXZfcHJp di0+d20uZGlzdHJ1c3RfYmlvc193bSkgewotCQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXZf cHJpdi0+ZHJtLm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsCi0JCQkJICAgICAgIHN0YXRl LT5iYXNlLmFjcXVpcmVfY3R4KTsKKwkJLyoKKwkJICogc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0 aW9uX2xpbWl0cygpIGN1cnJlbnRseSByZXF1aXJlcworCQkgKiBhbGwgYWN0aXZlIHBpcGVzIHRv IGJlIGluY2x1ZGVkIGluIHRoZSBzdGF0ZSBzbyB0aGF0CisJCSAqIGl0IGNhbiByZWRpc3RyaWJ1 dGUgdGhlIGRidWYgYW1vbmcgdGhlbSwgYW5kIGl0IHJlYWxseQorCQkgKiB3YW50cyB0byByZWNv bXB1dGUgdGhpbmdzIHdoZW4gZGlzdHJ1c3RfYmlvc193bSBpcyBzZXQKKwkJICogc28gd2UgYWRk IGFsbCB0aGUgcGlwZXMgdG8gdGhlIHN0YXRlLgorCQkgKi8KKwkJcmV0ID0gaW50ZWxfYWRkX2Fm ZmVjdGVkX3BpcGVzKHN0YXRlLCB+MCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OworCX0K IAotCQlzdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcyA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5w aXBlX21hc2s7CisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2RidWZfc3RhdGUgKm5ld19kYnVmX3N0 YXRlOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAqb2xkX2RidWZfc3RhdGU7CisK KwkJbmV3X2RidWZfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2RidWZfc3RhdGUoc3RhdGUpOwor CQlpZiAoSVNfRVJSKG5ld19kYnVmX3N0YXRlKSkKKwkJCXJldHVybiByZXQ7CisKKwkJb2xkX2Ri dWZfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X29sZF9kYnVmX3N0YXRlKHN0YXRlKTsKKworCQlu ZXdfZGJ1Zl9zdGF0ZS0+YWN0aXZlX3BpcGVzID0KKwkJCWludGVsX2NhbGNfYWN0aXZlX3BpcGVz KHN0YXRlLCBvbGRfZGJ1Zl9zdGF0ZS0+YWN0aXZlX3BpcGVzKTsKKworCQlpZiAob2xkX2RidWZf c3RhdGUtPmFjdGl2ZV9waXBlcyA9PSBuZXdfZGJ1Zl9zdGF0ZS0+YWN0aXZlX3BpcGVzKQorCQkJ YnJlYWs7CisKKwkJcmV0ID0gaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKCZuZXdfZGJ1 Zl9zdGF0ZS0+YmFzZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OwogCiAJCS8qCi0JCSAq IFdlIHVzdWFsbHkgb25seSBpbml0aWFsaXplIHN0YXRlLT5hY3RpdmVfcGlwZXMgaWYgd2UKLQkJ ICogd2UncmUgZG9pbmcgYSBtb2Rlc2V0OyBtYWtlIHN1cmUgdGhpcyBmaWVsZCBpcyBhbHdheXMK LQkJICogaW5pdGlhbGl6ZWQgZHVyaW5nIHRoZSBzYW5pdGl6YXRpb24gcHJvY2VzcyB0aGF0IGhh cHBlbnMKLQkJICogb24gdGhlIGZpcnN0IGNvbW1pdCB0b28uCisJCSAqIHNrbF9kZGJfZ2V0X3Bp cGVfYWxsb2NhdGlvbl9saW1pdHMoKSBjdXJyZW50bHkgcmVxdWlyZXMKKwkJICogYWxsIGFjdGl2 ZSBwaXBlcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3RhdGUgc28gdGhhdAorCQkgKiBpdCBjYW4g cmVkaXN0cmlidXRlIHRoZSBkYnVmIGFtb25nIHRoZW0uCiAJCSAqLwotCQlpZiAoIXN0YXRlLT5t b2Rlc2V0KQotCQkJc3RhdGUtPmFjdGl2ZV9waXBlcyA9IGRldl9wcml2LT5hY3RpdmVfcGlwZXM7 Ci0JfQotCi0JLyoKLQkgKiBJZiB0aGUgbW9kZXNldCBjaGFuZ2VzIHdoaWNoIENSVEMncyBhcmUg YWN0aXZlLCB3ZSBuZWVkIHRvCi0JICogcmVjb21wdXRlIHRoZSBEREIgYWxsb2NhdGlvbiBmb3Ig KmFsbCogYWN0aXZlIHBpcGVzLCBldmVuCi0JICogdGhvc2UgdGhhdCB3ZXJlbid0IG90aGVyd2lz ZSBiZWluZyBtb2RpZmllZCBpbiBhbnkgd2F5IGJ5IHRoaXMKLQkgKiBhdG9taWMgY29tbWl0LiAg RHVlIHRvIHRoZSBzaHJpbmtpbmcgb2YgdGhlIHBlci1waXBlIGFsbG9jYXRpb25zCi0JICogd2hl biBuZXcgYWN0aXZlIENSVEMncyBhcmUgYWRkZWQsIGl0J3MgcG9zc2libGUgZm9yIGEgcGlwZSB0 aGF0Ci0JICogd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIGFuZCBhcmVuJ3QgY2hhbmdpbmcgYXQgYWxs IGhlcmUgdG8gc3VkZGVubHkKLQkgKiBiZWNvbWUgaW52YWxpZCBpZiBpdHMgRERCIG5lZWRzIGV4 Y2VlZHMgaXRzIG5ldyBhbGxvY2F0aW9uLgotCSAqCi0JICogTm90ZSB0aGF0IGlmIHdlIHdpbmQg dXAgZG9pbmcgYSBmdWxsIEREQiByZWNvbXB1dGUsIHdlIGNhbid0IGxldAotCSAqIGFueSBvdGhl ciBkaXNwbGF5IHVwZGF0ZXMgcmFjZSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24sIHNvIHdlIG5lZWQK LQkgKiB0byBncmFiIHRoZSBsb2NrIG9uICphbGwqIENSVEMncy4KLQkgKi8KLQlpZiAoc3RhdGUt PmFjdGl2ZV9waXBlX2NoYW5nZXMgfHwgc3RhdGUtPm1vZGVzZXQpIHsKLQkJcmV0ID0gaW50ZWxf YWRkX2FsbF9waXBlcyhzdGF0ZSk7CisJCXJldCA9IGludGVsX2FkZF9hZmZlY3RlZF9waXBlcyhz dGF0ZSwKKwkJCQkJICAgICAgIG5ld19kYnVmX3N0YXRlLT5hY3RpdmVfcGlwZXMpOwogCQlpZiAo cmV0KQogCQkJcmV0dXJuIHJldDsKKworCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTc1 MTMsMyArNzUzMSw1MiBAQCB2b2lkIGludGVsX3BtX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlkZXZfcHJpdi0+cnVudGltZV9wbS5zdXNwZW5kZWQgPSBmYWxzZTsK IAlhdG9taWNfc2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50LCAwKTsKIH0K Kworc3RhdGljIHN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGUgKmludGVsX2RidWZfZHVwbGljYXRl X3N0YXRlKHN0cnVjdCBpbnRlbF9nbG9iYWxfb2JqICpvYmopCit7CisJc3RydWN0IGludGVsX2Ri dWZfc3RhdGUgKmRidWZfc3RhdGU7CisKKwlkYnVmX3N0YXRlID0ga21lbWR1cChvYmotPnN0YXRl LCBzaXplb2YoKmRidWZfc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRidWZfc3RhdGUpCisJ CXJldHVybiBOVUxMOworCisJcmV0dXJuICZkYnVmX3N0YXRlLT5iYXNlOworfQorCitzdGF0aWMg dm9pZCBpbnRlbF9kYnVmX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9i aiwKKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGUgKnN0YXRlKQoreworCWtmcmVl KHN0YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9nbG9iYWxfc3RhdGVfZnVu Y3MgaW50ZWxfZGJ1Zl9mdW5jcyA9IHsKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVs X2RidWZfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX2Ri dWZfZGVzdHJveV9zdGF0ZSwKK307CisKK3N0cnVjdCBpbnRlbF9kYnVmX3N0YXRlICoKK2ludGVs X2F0b21pY19nZXRfZGJ1Zl9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkK K3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5i YXNlLmRldik7CisJc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqZGJ1Zl9zdGF0ZTsKKworCWRi dWZfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2dsb2JhbF9vYmpfc3RhdGUoc3RhdGUsICZkZXZf cHJpdi0+ZGJ1Zi5vYmopOworCWlmIChJU19FUlIoZGJ1Zl9zdGF0ZSkpCisJCXJldHVybiBFUlJf Q0FTVChkYnVmX3N0YXRlKTsKKworCXJldHVybiB0b19pbnRlbF9kYnVmX3N0YXRlKGRidWZfc3Rh dGUpOworfQorCitpbnQgaW50ZWxfZGJ1Zl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGJ1Zl9zdGF0ZSAqZGJ1Zl9zdGF0ZTsKKworCWRi dWZfc3RhdGUgPSBremFsbG9jKHNpemVvZigqZGJ1Zl9zdGF0ZSksIEdGUF9LRVJORUwpOworCWlm ICghZGJ1Zl9zdGF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpbnRlbF9hdG9taWNfZ2xvYmFs X29ial9pbml0KGRldl9wcml2LCAmZGV2X3ByaXYtPmRidWYub2JqLAorCQkJCSAgICAgJmRidWZf c3RhdGUtPmJhc2UsICZpbnRlbF9kYnVmX2Z1bmNzKTsKKworCXJldHVybiAwOworfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmgKaW5kZXggZDYwYTg1NDIxYzVhLi5mYWRmN2NiYzQ0YzQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uaApAQCAtOCw2ICs4LDggQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CiAKKyNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2dsb2JhbF9zdGF0ZS5oIgorCiAjaW5jbHVk ZSAiaTkxNV9yZWcuaCIKIAogc3RydWN0IGRybV9kZXZpY2U7CkBAIC01OSw0ICs2MSwyNCBAQCB2 b2lkIGludGVsX2VuYWJsZV9pcGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IAogYm9vbCBpbnRlbF9zZXRfbWVtb3J5X2N4c3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBib29sIGVuYWJsZSk7CiAKK3N0cnVjdCBpbnRlbF9kYnVmX3N0YXRlIHsKKwlzdHJ1 Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlIGJhc2U7CisKKwl1OCBlbmFibGVkX3NsaWNlczsKKwl1OCBh Y3RpdmVfcGlwZXM7Cit9OworCitpbnQgaW50ZWxfZGJ1Zl9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7CisKK3N0cnVjdCBpbnRlbF9kYnVmX3N0YXRlICoKK2ludGVsX2F0 b21pY19nZXRfZGJ1Zl9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7CisK KyNkZWZpbmUgdG9faW50ZWxfZGJ1Zl9zdGF0ZSh4KSBjb250YWluZXJfb2YoKHgpLCBzdHJ1Y3Qg aW50ZWxfZGJ1Zl9zdGF0ZSwgYmFzZSkKKyNkZWZpbmUgaW50ZWxfYXRvbWljX2dldF9vbGRfZGJ1 Zl9zdGF0ZShzdGF0ZSkgXAorCXRvX2ludGVsX2RidWZfc3RhdGUoaW50ZWxfYXRvbWljX2dldF9v bGRfZ2xvYmFsX29ial9zdGF0ZShzdGF0ZSwgJnRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KS0+ZGJ1 Zi5vYmopKQorI2RlZmluZSBpbnRlbF9hdG9taWNfZ2V0X25ld19kYnVmX3N0YXRlKHN0YXRlKSBc CisJdG9faW50ZWxfZGJ1Zl9zdGF0ZShpbnRlbF9hdG9taWNfZ2V0X25ld19nbG9iYWxfb2JqX3N0 YXRlKHN0YXRlLCAmdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpLT5kYnVmLm9iaikpCisKK2ludCBp bnRlbF9kYnVmX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKwogI2Vu ZGlmIC8qIF9fSU5URUxfUE1fSF9fICovCi0tIAoyLjI0LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=