From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Kazlauskas Subject: [PATCH v4 4/4] drm/amd/display: Set FreeSync state using drm VRR properties Date: Thu, 11 Oct 2018 12:39:42 -0400 Message-ID: <20181011163942.28267-5-nicholas.kazlauskas@amd.com> References: <20181011163942.28267-1-nicholas.kazlauskas@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181011163942.28267-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: daniel.vetter-/w4YWyX8dFk@public.gmane.org, michel-otUistvHUpPR7s880joybQ@public.gmane.org, Nicholas Kazlauskas , manasi.d.navare-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, Alexander.Deucher-5C7GfCeVMHo@public.gmane.org, harry.wentland-5C7GfCeVMHo@public.gmane.org, Marek.Olsak-5C7GfCeVMHo@public.gmane.org, ville.syrjala-VuQAYsv1563Yd54FQh9/CA@public.gmane.org List-Id: dri-devel@lists.freedesktop.org U3VwcG9ydCBmb3IgQU1ER1BVIHNwZWNpZmljIEZyZWVTeW5jIHByb3BlcnRpZXMgYW5kIGlvY3Rs cyBhcmUgZHJvcHBlZApmcm9tIGFtZGdwdV9kbSBpbiBmYXZvciBvZiBzdXBwb3J0aW5nIGRybSB2 YXJpYWJsZSByZWZyZXNoIHJhdGUKcHJvcGVydGllcy4KClRoZSBkcm0gdnJyX2NhcGFibGUgcHJv cGVydHkgaXMgbm93IGF0dGFjaGVkIHRvIGFueSBEUC9IRE1JIGNvbm5lY3Rvci4KSXRzIHZhbHVl IGlzIHVwZGF0ZWQgYWNjb3JkaW5nbHkgdG8gdGhlIGNvbm5lY3RvcidzIEZyZWVTeW5jIGNhcGFi aWx0aXkuCgpUaGUgZnJlZXN5bmNfZW5hYmxlIGxvZ2ljIGFuZCBpb2N0bCBjb250cm9sIGhhcyBo YXMgYmVlbiBkcm9wcGVkIGluCmZhdm9yIG9mIHV0aWxpemluZyB0aGUgdnJyX2VuYWJsZWQgb24g dGhlIGRybSBDUlRDLiBUaGlzIGFsbG93cyBmb3IgbW9yZQpmaW5lIGdyYWluZWQgYXRvbWljIGNv bnRyb2wgb3ZlciB3aGljaCBDUlRDcyBzaG91bGQgc3VwcG9ydCB2YXJpYWJsZQpyZWZyZXNoIHJh dGUuCgpUbyBoYW5kbGUgc3RhdGUgY2hhbmdlcyBmb3IgdnJyX2VuYWJsZWQgaXQgd2FzIGVhc2ll c3QgdG8gZHJvcCB0aGUKZm9yY2VkIG1vZGVzZXQgb24gZnJlZXN5bmNfZW5hYmxlZCBjaGFuZ2Uu IFRoaXMgcGF0Y2ggbm93IHBlcmZvcm1zIHRoZQpyZXF1aXJlZCBzdHJlYW0gdXBkYXRlcyB3aGVu IHBsYW5lcyBhcmUgZmxpcHBlZC4KClRoaXMgaXMgZG9uZSBmb3IgYSBmZXcgcmVhc29uczoKCigx KSBWUlIgc3RyZWFtIHVwZGF0ZXMgY2FuIGJlIGRvbmUgaW4gdGhlIGZhc3QgdXBkYXRlIHBhdGgK CigyKSBhbWRncHVfZG1fYXRvbWljX2NoZWNrIHdvdWxkIG5lZWQgdG8gYmUgaGFja2VkIGFwYXJ0 IHRvIGNoZWNrCiAgICBkZXNpcmVkIHZhcmlhYmxlIHJlZnJlc2ggc3RhdGUgYW5kIGNhcGFiaWxp dHkgYmVmb3JlIHRoZSBDUlRDCiAgICBkaXNhYmxlIHBhc3MuCgooMykgUGVyZm9ybWluZyBWUlIg c3RyZWFtIHVwZGF0ZXMgb24tZmxpcCBpcyBuZWVkZWQgZm9yIGVuYWJsaW5nIEJUUgogICAgc3Vw cG9ydC4KClZSUiBwYWNrZXRzIGFuZCB0aW1pbmcgYWRqdXN0bWVudHMgYXJlIG5vdyB0cmFja2Vk IGFuZCBjb21wYXJlZCB0bwpwcmV2aW91cyB2YWx1ZXMgc2VudCB0byB0aGUgaGFyZHdhcmUuCgpT aWduZWQtb2ZmLWJ5OiBOaWNob2xhcyBLYXpsYXVza2FzIDxuaWNob2xhcy5rYXpsYXVza2FzQGFt ZC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5j IHwgMjU1ICsrKysrKysrKy0tLS0tLS0tLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbS5oIHwgICA3ICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspLCAxMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKaW5kZXggNmEyMzQyZDcyNzQyLi5kNWRlNGI5MWUxNDQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1 X2RtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf ZG0uYwpAQCAtMTgwMiw3MiArMTgwMiw2IEBAIHN0YXRpYyB2b2lkIGRtX2JhbmR3aWR0aF91cGRh dGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJLyogVE9ETzogaW1wbGVtZW50IGxhdGVy ICovCiB9CiAKLXN0YXRpYyBpbnQgYW1kZ3B1X25vdGlmeV9mcmVlc3luYyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlscCkKLXsKLQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Ci0Jc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVp cmVfY3R4IGN0eDsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbl9zdGF0 ZSwgKm5ld19jb25fc3RhdGU7Ci0JaW50IHJldCA9IDA7Ci0JdWludDhfdCBpOwotCWJvb2wgZW5h YmxlID0gZmFsc2U7Ci0KLQlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7Ci0KLQlz dGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJl dCA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0OwotCX0KLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4 OwotCi1yZXRyeToKLQlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYpIHsKLQkJcmV0ID0gZHJt X2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwgY3J0Yyk7Ci0JCWlmIChyZXQp Ci0JCQlnb3RvIGZhaWw7Ci0KLQkJLyogVE9ETyByZXdvcmsgYW1kZ3B1X2RtX2NvbW1pdF9wbGFu ZXMgc28gd2UgZG9uJ3QgbmVlZCB0aGlzICovCi0JCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVj dGVkX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGZhaWw7Ci0JfQot Ci0JZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBv bGRfY29uX3N0YXRlLCBuZXdfY29uX3N0YXRlLCBpKSB7Ci0JCXN0cnVjdCBkbV9jb25uZWN0b3Jf c3RhdGUgKmRtX25ld19jb25fc3RhdGUgPSB0b19kbV9jb25uZWN0b3Jfc3RhdGUobmV3X2Nvbl9z dGF0ZSk7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Ci0JCXN0cnVj dCBhbWRncHVfY3J0YyAqYWNydGMgPSB0b19hbWRncHVfY3J0YyhkbV9uZXdfY29uX3N0YXRlLT5i YXNlLmNydGMpOwotCQlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAqZG1fbmV3X2NydGNfc3RhdGU7Ci0K LQkJaWYgKCFhY3J0YykgewotCQkJQVNTRVJUKDApOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlu ZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCAmYWNy dGMtPmJhc2UpOwotCQlkbV9uZXdfY3J0Y19zdGF0ZSA9IHRvX2RtX2NydGNfc3RhdGUobmV3X2Ny dGNfc3RhdGUpOwotCi0JCWRtX25ld19jcnRjX3N0YXRlLT5mcmVlc3luY19lbmFibGVkID0gZW5h YmxlOwotCX0KLQotCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKLQotZmFpbDoKLQlp ZiAocmV0ID09IC1FREVBRExLKSB7Ci0JCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOwot CQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwotCQlnb3RvIHJldHJ5OwotCX0KLQotCWRybV9h dG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKLQotb3V0OgotCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3Mo JmN0eCk7Ci0JZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwotCXJldHVybiByZXQ7Ci19 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfZnVuY3MgZG1fZGlzcGxheV9m dW5jcyA9IHsKIAkuYmFuZHdpZHRoX3VwZGF0ZSA9IGRtX2JhbmR3aWR0aF91cGRhdGUsIC8qIGNh bGxlZCB1bmNvbmRpdGlvbmFsbHkgKi8KQEAgLTE4ODEsNyArMTgxNSw2IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfZnVuY3MgZG1fZGlzcGxheV9mdW5jcyA9IHsKIAkJZG1f Y3J0Y19nZXRfc2Nhbm91dHBvcywvKiBjYWxsZWQgdW5jb25kaXRpb25hbGx5ICovCiAJLmFkZF9l bmNvZGVyID0gTlVMTCwgLyogVkJJT1MgcGFyc2luZy4gREFMIGRvZXMgaXQuICovCiAJLmFkZF9j b25uZWN0b3IgPSBOVUxMLCAvKiBWQklPUyBwYXJzaW5nLiBEQUwgZG9lcyBpdC4gKi8KLQkubm90 aWZ5X2ZyZWVzeW5jID0gYW1kZ3B1X25vdGlmeV9mcmVlc3luYywKIAogfTsKIApAQCAtMjgzNCw3 ICsyNzY3LDggQEAgZG1fY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRj KQogCiAJc3RhdGUtPmFkanVzdCA9IGN1ci0+YWRqdXN0OwogCXN0YXRlLT52cnJfaW5mb3BhY2tl dCA9IGN1ci0+dnJyX2luZm9wYWNrZXQ7Ci0Jc3RhdGUtPmZyZWVzeW5jX2VuYWJsZWQgPSBjdXIt PmZyZWVzeW5jX2VuYWJsZWQ7CisJc3RhdGUtPnZycl9zdXBwb3J0ZWQgPSBjdXItPnZycl9zdXBw b3J0ZWQ7CisJc3RhdGUtPmZyZWVzeW5jX2NvbmZpZyA9IGN1ci0+ZnJlZXN5bmNfY29uZmlnOwog CiAJLyogVE9ETyBEdXBsaWNhdGUgZGNfc3RyZWFtIGFmdGVyIG9iamVjdHMgYXJlIHN0cmVhbSBv YmplY3QgaXMgZmxhdHRlbmVkICovCiAKQEAgLTMwNTMsOCArMjk4Nyw2IEBAIGFtZGdwdV9kbV9j b25uZWN0b3JfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogCV9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZShj b25uZWN0b3IsICZuZXdfc3RhdGUtPmJhc2UpOwogCiAJbmV3X3N0YXRlLT5mcmVlc3luY19jYXBh YmxlID0gc3RhdGUtPmZyZWVzeW5jX2NhcGFibGU7Ci0JbmV3X3N0YXRlLT5mcmVlc3luY19lbmFi bGUgPSBzdGF0ZS0+ZnJlZXN5bmNfZW5hYmxlOwotCiAJcmV0dXJuICZuZXdfc3RhdGUtPmJhc2U7 CiB9CiAKQEAgLTM4MDAsNiArMzczMiwxMSBAQCB2b2lkIGFtZGdwdV9kbV9jb25uZWN0b3JfaW5p dF9oZWxwZXIoc3RydWN0IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAogCQkJCWFkZXYtPm1v ZGVfaW5mby51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSwKIAkJCQkwKTsKIAorCWlmIChjb25u ZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEgfHwKKwkgICAgY29ubmVjdG9y X3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSB7CisJCWRybV9jb25uZWN0 b3JfYXR0YWNoX3Zycl9jYXBhYmxlX3Byb3BlcnR5KAorCQkJJmFjb25uZWN0b3ItPmJhc2UpOwor CX0KIH0KIAogc3RhdGljIGludCBhbWRncHVfZG1faTJjX3hmZXIoc3RydWN0IGkyY19hZGFwdGVy ICppMmNfYWRhcCwKQEAgLTQxNzYsNiArNDExMyw3NyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX2Zs aXBfaXNyKHN0cnVjdCBhbWRncHVfY3J0YyAqYWNydGMpCiAJCQkJCQkgYWNydGMtPmNydGNfaWQp OwogfQogCitzdGF0aWMgdm9pZCB1cGRhdGVfZnJlZXN5bmNfc3RhdGVfb25fc3RyZWFtKAorCXN0 cnVjdCBhbWRncHVfZGlzcGxheV9tYW5hZ2VyICpkbSwKKwlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAq bmV3X2NydGNfc3RhdGUsCisJc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqbmV3X3N0cmVhbSkKK3sK KwlzdHJ1Y3QgbW9kX3Zycl9wYXJhbXMgdnJyID0gezB9OworCXN0cnVjdCBkY19pbmZvX3BhY2tl dCB2cnJfaW5mb3BhY2tldCA9IHswfTsKKwlzdHJ1Y3QgbW9kX2ZyZWVzeW5jX2NvbmZpZyBjb25m aWcgPSBuZXdfY3J0Y19zdGF0ZS0+ZnJlZXN5bmNfY29uZmlnOworCisJaWYgKCFuZXdfc3RyZWFt KQorCQlyZXR1cm47CisKKwkvKgorCSAqIFRPRE86IERldGVybWluZSB3aHkgbWluL21heCB0b3Rh bHMgYW5kIHZyZWZyZXNoIGNhbiBiZSAwIGhlcmUuCisJICogRm9yIG5vdyBpdCdzIHN1ZmZpY2ll bnQgdG8ganVzdCBndWFyZCBhZ2FpbnN0IHRoZXNlIGNvbmRpdGlvbnMuCisJICovCisKKwlpZiAo IW5ld19zdHJlYW0tPnRpbWluZy5oX3RvdGFsIHx8ICFuZXdfc3RyZWFtLT50aW1pbmcudl90b3Rh bCkKKwkJcmV0dXJuOworCisJaWYgKG5ld19jcnRjX3N0YXRlLT52cnJfc3VwcG9ydGVkICYmCisJ ICAgIGNvbmZpZy5taW5fcmVmcmVzaF9pbl91aHogJiYKKwkgICAgY29uZmlnLm1heF9yZWZyZXNo X2luX3VoeikgeworCQljb25maWcuc3RhdGUgPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS52cnJfZW5h YmxlZCA/CisJCQlWUlJfU1RBVEVfQUNUSVZFX1ZBUklBQkxFIDoKKwkJCVZSUl9TVEFURV9JTkFD VElWRTsKKwl9IGVsc2UgeworCQljb25maWcuc3RhdGUgPSBWUlJfU1RBVEVfVU5TVVBQT1JURUQ7 CisJfQorCisJbW9kX2ZyZWVzeW5jX2J1aWxkX3Zycl9wYXJhbXMoZG0tPmZyZWVzeW5jX21vZHVs ZSwKKwkJCQkgICAgICBuZXdfc3RyZWFtLAorCQkJCSAgICAgICZjb25maWcsICZ2cnIpOworCisJ bW9kX2ZyZWVzeW5jX2J1aWxkX3Zycl9pbmZvcGFja2V0KAorCQlkbS0+ZnJlZXN5bmNfbW9kdWxl LAorCQluZXdfc3RyZWFtLAorCQkmdnJyLAorCQlwYWNrZXRfdHlwZV92cnIsCisJCXRyYW5zZmVy X2Z1bmNfdW5rbm93biwKKwkJJnZycl9pbmZvcGFja2V0KTsKKworCW5ld19jcnRjX3N0YXRlLT5m cmVlc3luY190aW1pbmdfY2hhbmdlZCA9CisJCShtZW1jbXAoJm5ld19jcnRjX3N0YXRlLT5hZGp1 c3QsCisJCQkmdnJyLmFkanVzdCwKKwkJCXNpemVvZih2cnIuYWRqdXN0KSkgIT0gMCk7CisKKwlu ZXdfY3J0Y19zdGF0ZS0+ZnJlZXN5bmNfdnJyX2luZm9fY2hhbmdlZCA9CisJCShtZW1jbXAoJm5l d19jcnRjX3N0YXRlLT52cnJfaW5mb3BhY2tldCwKKwkJCSZ2cnJfaW5mb3BhY2tldCwKKwkJCXNp emVvZih2cnJfaW5mb3BhY2tldCkpICE9IDApOworCisJbmV3X2NydGNfc3RhdGUtPmFkanVzdCA9 IHZyci5hZGp1c3Q7CisJbmV3X2NydGNfc3RhdGUtPnZycl9pbmZvcGFja2V0ID0gdnJyX2luZm9w YWNrZXQ7CisKKwluZXdfc3RyZWFtLT5hZGp1c3QgPSBuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0Owor CW5ld19zdHJlYW0tPnZycl9pbmZvcGFja2V0ID0gdnJyX2luZm9wYWNrZXQ7CisKKwlpZiAobmV3 X2NydGNfc3RhdGUtPmZyZWVzeW5jX3Zycl9pbmZvX2NoYW5nZWQpCisJCURSTV9ERUJVR19LTVMo IlZSUiBwYWNrZXQgdXBkYXRlOiBjcnRjPSV1IGVuYWJsZWQ9JWQgc3RhdGU9JWQiLAorCQkJICAg ICAgbmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yy0+YmFzZS5pZCwKKwkJCSAgICAgIChpbnQpbmV3 X2NydGNfc3RhdGUtPmJhc2UudnJyX2VuYWJsZWQsCisJCQkgICAgICAoaW50KXZyci5zdGF0ZSk7 CisKKwlpZiAobmV3X2NydGNfc3RhdGUtPmZyZWVzeW5jX3RpbWluZ19jaGFuZ2VkKQorCQlEUk1f REVCVUdfS01TKCJWUlIgdGltaW5nIHVwZGF0ZTogY3J0Yz0ldSBtaW49JXUgbWF4PSV1XG4iLAor CQkJICAgICAgbmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yy0+YmFzZS5pZCwKKwkJCSAgICAgIHZy ci5hZGp1c3Qudl90b3RhbF9taW4sCisJCQkgICAgICB2cnIuYWRqdXN0LnZfdG90YWxfbWF4KTsK K30KKwogLyoKICAqIEV4ZWN1dGVzIGZsaXAKICAqCkBAIC00MTk3LDYgKzQyMDUsNyBAQCBzdGF0 aWMgdm9pZCBhbWRncHVfZG1fZG9fZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0 IGRjX2ZsaXBfYWRkcnMgYWRkciA9IHsgezB9IH07CiAJLyogVE9ETyBlbGltaW5hdGUgb3IgcmVu YW1lIHN1cmZhY2VfdXBkYXRlICovCiAJc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlIHN1cmZhY2Vf dXBkYXRlc1sxXSA9IHsgezB9IH07CisJc3RydWN0IGRjX3N0cmVhbV91cGRhdGUgc3RyZWFtX3Vw ZGF0ZSA9IHswfTsKIAlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAqYWNydGNfc3RhdGUgPSB0b19kbV9j cnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyAqc3RyZWFt X3N0YXR1czsKIApAQCAtNDI2OSwxMSArNDI3OCwyNiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG1f ZG9fZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfQogCXN1cmZhY2VfdXBkYXRlcy0+Zmxp cF9hZGRyID0gJmFkZHI7CiAKKwlpZiAoYWNydGNfc3RhdGUtPnN0cmVhbSkgeworCQl1cGRhdGVf ZnJlZXN5bmNfc3RhdGVfb25fc3RyZWFtKAorCQkJJmFkZXYtPmRtLAorCQkJYWNydGNfc3RhdGUs CisJCQlhY3J0Y19zdGF0ZS0+c3RyZWFtKTsKKworCQlpZiAoYWNydGNfc3RhdGUtPmZyZWVzeW5j X3RpbWluZ19jaGFuZ2VkKQorCQkJc3RyZWFtX3VwZGF0ZS5hZGp1c3QgPQorCQkJCSZhY3J0Y19z dGF0ZS0+c3RyZWFtLT5hZGp1c3Q7CisKKwkJaWYgKGFjcnRjX3N0YXRlLT5mcmVlc3luY192cnJf aW5mb19jaGFuZ2VkKQorCQkJc3RyZWFtX3VwZGF0ZS52cnJfaW5mb3BhY2tldCA9CisJCQkJJmFj cnRjX3N0YXRlLT5zdHJlYW0tPnZycl9pbmZvcGFja2V0OworCX0KKwogCWRjX2NvbW1pdF91cGRh dGVzX2Zvcl9zdHJlYW0oYWRldi0+ZG0uZGMsCiAJCQkJCSAgICAgc3VyZmFjZV91cGRhdGVzLAog CQkJCQkgICAgIDEsCiAJCQkJCSAgICAgYWNydGNfc3RhdGUtPnN0cmVhbSwKLQkJCQkJICAgICBO VUxMLAorCQkJCQkgICAgICZzdHJlYW1fdXBkYXRlLAogCQkJCQkgICAgICZzdXJmYWNlX3VwZGF0 ZXMtPnN1cmZhY2UsCiAJCQkJCSAgICAgc3RhdGUpOwogCkBAIC00MzMzLDExICs0MzU3LDYgQEAg c3RhdGljIGJvb2wgY29tbWl0X3BsYW5lc190b19zdHJlYW0oCiAJc3RyZWFtX3VwZGF0ZS0+ZHN0 ID0gZGNfc3RyZWFtLT5kc3Q7CiAJc3RyZWFtX3VwZGF0ZS0+b3V0X3RyYW5zZmVyX2Z1bmMgPSBk Y19zdHJlYW0tPm91dF90cmFuc2Zlcl9mdW5jOwogCi0JaWYgKGRtX25ld19jcnRjX3N0YXRlLT5m cmVlc3luY19lbmFibGVkICE9IGRtX29sZF9jcnRjX3N0YXRlLT5mcmVlc3luY19lbmFibGVkKSB7 Ci0JCXN0cmVhbV91cGRhdGUtPnZycl9pbmZvcGFja2V0ID0gJmRjX3N0cmVhbS0+dnJyX2luZm9w YWNrZXQ7Ci0JCXN0cmVhbV91cGRhdGUtPmFkanVzdCA9ICZkY19zdHJlYW0tPmFkanVzdDsKLQl9 Ci0KIAlmb3IgKGkgPSAwOyBpIDwgbmV3X3BsYW5lX2NvdW50OyBpKyspIHsKIAkJdXBkYXRlc1tp XS5zdXJmYWNlID0gcGxhbmVfc3RhdGVzW2ldOwogCQl1cGRhdGVzW2ldLmdhbW1hID0KQEAgLTQ0 NzMsOSArNDQ5Miw2IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9jb21taXRfcGxhbmVzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBj cnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIAkJfQogCi0JCWRjX3N0cmVhbV9hdHRhY2gt PmFkanVzdCA9IGFjcnRjX3N0YXRlLT5hZGp1c3Q7Ci0JCWRjX3N0cmVhbV9hdHRhY2gtPnZycl9p bmZvcGFja2V0ID0gYWNydGNfc3RhdGUtPnZycl9pbmZvcGFja2V0OwotCiAJCWlmIChmYWxzZSA9 PSBjb21taXRfcGxhbmVzX3RvX3N0cmVhbShkbS0+ZGMsCiAJCQkJCQkJcGxhbmVfc3RhdGVzX2Nv bnN0cnVjdGVkLAogCQkJCQkJCXBsYW5lc19jb3VudCwKQEAgLTQ2NzksOSArNDY5NSw2IEBAIHN0 YXRpYyB2b2lkIGFtZGdwdV9kbV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQogCQlXQVJOX09OKCFzdGF0dXMpOwogCQlXQVJOX09OKCFzdGF0dXMtPnBs YW5lX2NvdW50KTsKIAotCQlkbV9uZXdfY3J0Y19zdGF0ZS0+c3RyZWFtLT5hZGp1c3QgPSBkbV9u ZXdfY3J0Y19zdGF0ZS0+YWRqdXN0OwotCQlkbV9uZXdfY3J0Y19zdGF0ZS0+c3RyZWFtLT52cnJf aW5mb3BhY2tldCA9IGRtX25ld19jcnRjX3N0YXRlLT52cnJfaW5mb3BhY2tldDsKLQogCQkvKlRP RE8gSG93IGl0IHdvcmtzIHdpdGggTVBPID8qLwogCQlpZiAoIWNvbW1pdF9wbGFuZXNfdG9fc3Ry ZWFtKAogCQkJCWRtLT5kYywKQEAgLTQ4OTksMjAgKzQ5MTIsMTggQEAgc3RhdGljIGludCBkb19h cXVpcmVfZ2xvYmFsX2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gcmV0IDwg MCA/IHJldCA6IDA7CiB9CiAKLXZvaWQgc2V0X2ZyZWVzeW5jX29uX3N0cmVhbShzdHJ1Y3QgYW1k Z3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCi0JCQkgICAgc3RydWN0IGRtX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlLAotCQkJICAgIHN0cnVjdCBkbV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25f c3RhdGUsCi0JCQkgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqbmV3X3N0cmVhbSkKK3N0YXRp YyB2b2lkIGdldF9mcmVlc3luY19jb25maWdfZm9yX2NydGMoCisJc3RydWN0IGRtX2NydGNfc3Rh dGUgKm5ld19jcnRjX3N0YXRlLAorCXN0cnVjdCBkbV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25f c3RhdGUpCiB7CiAJc3RydWN0IG1vZF9mcmVlc3luY19jb25maWcgY29uZmlnID0gezB9OwotCXN0 cnVjdCBtb2RfdnJyX3BhcmFtcyB2cnIgPSB7MH07Ci0Jc3RydWN0IGRjX2luZm9fcGFja2V0IHZy cl9pbmZvcGFja2V0ID0gezB9OwogCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVj dG9yID0KIAkJCXRvX2FtZGdwdV9kbV9jb25uZWN0b3IobmV3X2Nvbl9zdGF0ZS0+YmFzZS5jb25u ZWN0b3IpOwogCi0JaWYgKG5ld19jb25fc3RhdGUtPmZyZWVzeW5jX2NhcGFibGUgJiYKLQkgICAg bmV3X2Nvbl9zdGF0ZS0+ZnJlZXN5bmNfZW5hYmxlKSB7Ci0JCWNvbmZpZy5zdGF0ZSA9IG5ld19j cnRjX3N0YXRlLT5mcmVlc3luY19lbmFibGVkID8KKwluZXdfY3J0Y19zdGF0ZS0+dnJyX3N1cHBv cnRlZCA9IG5ld19jb25fc3RhdGUtPmZyZWVzeW5jX2NhcGFibGU7CisKKwlpZiAobmV3X2Nvbl9z dGF0ZS0+ZnJlZXN5bmNfY2FwYWJsZSkgeworCQljb25maWcuc3RhdGUgPSBuZXdfY3J0Y19zdGF0 ZS0+YmFzZS52cnJfZW5hYmxlZCA/CiAJCQkJVlJSX1NUQVRFX0FDVElWRV9WQVJJQUJMRSA6CiAJ CQkJVlJSX1NUQVRFX0lOQUNUSVZFOwogCQljb25maWcubWluX3JlZnJlc2hfaW5fdWh6ID0KQEAg LTQ5MjIsMTkgKzQ5MzMsMTggQEAgdm9pZCBzZXRfZnJlZXN5bmNfb25fc3RyZWFtKHN0cnVjdCBh bWRncHVfZGlzcGxheV9tYW5hZ2VyICpkbSwKIAkJY29uZmlnLnZzaWZfc3VwcG9ydGVkID0gdHJ1 ZTsKIAl9CiAKLQltb2RfZnJlZXN5bmNfYnVpbGRfdnJyX3BhcmFtcyhkbS0+ZnJlZXN5bmNfbW9k dWxlLAotCQkJCSAgICAgIG5ld19zdHJlYW0sCi0JCQkJICAgICAgJmNvbmZpZywgJnZycik7CisJ bmV3X2NydGNfc3RhdGUtPmZyZWVzeW5jX2NvbmZpZyA9IGNvbmZpZzsKK30KIAotCW1vZF9mcmVl c3luY19idWlsZF92cnJfaW5mb3BhY2tldChkbS0+ZnJlZXN5bmNfbW9kdWxlLAotCQkJCQkgIG5l d19zdHJlYW0sCi0JCQkJCSAgJnZyciwKLQkJCQkJICBwYWNrZXRfdHlwZV9mczEsCi0JCQkJCSAg TlVMTCwKLQkJCQkJICAmdnJyX2luZm9wYWNrZXQpOworc3RhdGljIHZvaWQgcmVzZXRfZnJlZXN5 bmNfY29uZmlnX2Zvcl9jcnRjKAorCXN0cnVjdCBkbV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0 ZSkKK3sKKwluZXdfY3J0Y19zdGF0ZS0+dnJyX3N1cHBvcnRlZCA9IGZhbHNlOwogCi0JbmV3X2Ny dGNfc3RhdGUtPmFkanVzdCA9IHZyci5hZGp1c3Q7Ci0JbmV3X2NydGNfc3RhdGUtPnZycl9pbmZv cGFja2V0ID0gdnJyX2luZm9wYWNrZXQ7CisJbWVtc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0 LCAwLAorCSAgICAgICBzaXplb2YobmV3X2NydGNfc3RhdGUtPmFkanVzdCkpOworCW1lbXNldCgm bmV3X2NydGNfc3RhdGUtPnZycl9pbmZvcGFja2V0LCAwLAorCSAgICAgICBzaXplb2YobmV3X2Ny dGNfc3RhdGUtPnZycl9pbmZvcGFja2V0KSk7CiB9CiAKIHN0YXRpYyBpbnQgZG1fdXBkYXRlX2Ny dGNzX3N0YXRlKHN0cnVjdCBhbWRncHVfZGlzcGxheV9tYW5hZ2VyICpkbSwKQEAgLTUwMDksOSAr NTAxOSw2IEBAIHN0YXRpYyBpbnQgZG1fdXBkYXRlX2NydGNzX3N0YXRlKHN0cnVjdCBhbWRncHVf ZGlzcGxheV9tYW5hZ2VyICpkbSwKIAkJCQlicmVhazsKIAkJCX0KIAotCQkJc2V0X2ZyZWVzeW5j X29uX3N0cmVhbShkbSwgZG1fbmV3X2NydGNfc3RhdGUsCi0JCQkJCSAgICAgICBkbV9uZXdfY29u bl9zdGF0ZSwgbmV3X3N0cmVhbSk7Ci0KIAkJCWlmIChkY19pc19zdHJlYW1fdW5jaGFuZ2VkKG5l d19zdHJlYW0sIGRtX29sZF9jcnRjX3N0YXRlLT5zdHJlYW0pICYmCiAJCQkgICAgZGNfaXNfc3Ry ZWFtX3NjYWxpbmdfdW5jaGFuZ2VkKG5ld19zdHJlYW0sIGRtX29sZF9jcnRjX3N0YXRlLT5zdHJl YW0pKSB7CiAJCQkJbmV3X2NydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IGZhbHNlOwpAQCAtNTAy MCw5ICs1MDI3LDYgQEAgc3RhdGljIGludCBkbV91cGRhdGVfY3J0Y3Nfc3RhdGUoc3RydWN0IGFt ZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAogCQkJfQogCQl9CiAKLQkJaWYgKGRtX29sZF9jcnRj X3N0YXRlLT5mcmVlc3luY19lbmFibGVkICE9IGRtX25ld19jcnRjX3N0YXRlLT5mcmVlc3luY19l bmFibGVkKQotCQkJbmV3X2NydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Ci0KIAkJaWYg KCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCQlnb3Rv IG5leHRfY3J0YzsKIApAQCAtNTA1OSw2ICs1MDYzLDggQEAgc3RhdGljIGludCBkbV91cGRhdGVf Y3J0Y3Nfc3RhdGUoc3RydWN0IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAogCQkJZGNfc3Ry ZWFtX3JlbGVhc2UoZG1fb2xkX2NydGNfc3RhdGUtPnN0cmVhbSk7CiAJCQlkbV9uZXdfY3J0Y19z dGF0ZS0+c3RyZWFtID0gTlVMTDsKIAorCQkJcmVzZXRfZnJlZXN5bmNfY29uZmlnX2Zvcl9jcnRj KGRtX25ld19jcnRjX3N0YXRlKTsKKwogCQkJKmxvY2tfYW5kX3ZhbGlkYXRpb25fbmVlZGVkID0g dHJ1ZTsKIAogCQl9IGVsc2Ugey8qIEFkZCBzdHJlYW0gZm9yIGFueSB1cGRhdGVkL2VuYWJsZWQg Q1JUQyAqLwpAQCAtNTEzNiw3ICs1MTQyLDkgQEAgc3RhdGljIGludCBkbV91cGRhdGVfY3J0Y3Nf c3RhdGUoc3RydWN0IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAogCQkJYW1kZ3B1X2RtX3Nl dF9jdG0oZG1fbmV3X2NydGNfc3RhdGUpOwogCQl9CiAKLQorCQkvKiBVcGRhdGUgRnJlZXN5bmMg c2V0dGluZ3MuICovCisJCWdldF9mcmVlc3luY19jb25maWdfZm9yX2NydGMoZG1fbmV3X2NydGNf c3RhdGUsCisJCQkJCSAgICAgZG1fbmV3X2Nvbm5fc3RhdGUpOwogCX0KIAogCXJldHVybiByZXQ7 CkBAIC01NDAxLDEyICs1NDA5LDkgQEAgc3RhdGljIGludCBhbWRncHVfZG1fYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWdvdG8gZmFpbDsKIAogCWZvcl9lYWNoX29sZG5l d19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3Rh dGUsIGkpIHsKLQkJc3RydWN0IGRtX2NydGNfc3RhdGUgKmRtX25ld19jcnRjX3N0YXRlID0gdG9f ZG1fY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Ci0JCXN0cnVjdCBkbV9jcnRjX3N0YXRlICpk bV9vbGRfY3J0Y19zdGF0ZSAgPSB0b19kbV9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKLQog CQlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJgog CQkgICAgIW5ld19jcnRjX3N0YXRlLT5jb2xvcl9tZ210X2NoYW5nZWQgJiYKLQkJICAgIChkbV9v bGRfY3J0Y19zdGF0ZS0+ZnJlZXN5bmNfZW5hYmxlZCA9PSBkbV9uZXdfY3J0Y19zdGF0ZS0+ZnJl ZXN5bmNfZW5hYmxlZCkpCisJCSAgICAhbmV3X2NydGNfc3RhdGUtPnZycl9lbmFibGVkKQogCQkJ Y29udGludWU7CiAKIAkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+ZW5hYmxlKQpAQCAtNTU1OCwxNCAr NTU2MywxNSBAQCB2b2lkIGFtZGdwdV9kbV91cGRhdGVfZnJlZXN5bmNfY2FwcyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXN0cnVjdCBkZXRhaWxlZF9kYXRhX21vbml0b3JfcmFu Z2UgKnJhbmdlOwogCXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphbWRncHVfZG1fY29ubmVj dG9yID0KIAkJCXRvX2FtZGdwdV9kbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQlzdHJ1Y3QgZG1f Y29ubmVjdG9yX3N0YXRlICpkbV9jb25fc3RhdGU7CisJc3RydWN0IGRtX2Nvbm5lY3Rvcl9zdGF0 ZSAqZG1fY29uX3N0YXRlID0gTlVMTDsKIAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25u ZWN0b3ItPmRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJYm9vbCBmcmVlc3luY19jYXBhYmxlID0gZmFsc2U7CiAKIAlpZiAoIWNvbm5lY3Rvci0+ c3RhdGUpIHsKIAkJRFJNX0VSUk9SKCIlcyAtIENvbm5lY3RvciBoYXMgbm8gc3RhdGUiLCBfX2Z1 bmNfXyk7Ci0JCXJldHVybjsKKwkJZ290byB1cGRhdGU7CiAJfQogCiAJaWYgKCFlZGlkKSB7CkBA IC01NTc1LDkgKzU1ODEsNyBAQCB2b2lkIGFtZGdwdV9kbV91cGRhdGVfZnJlZXN5bmNfY2Fwcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQlhbWRncHVfZG1fY29ubmVjdG9yLT5t YXhfdmZyZXEgPSAwOwogCQlhbWRncHVfZG1fY29ubmVjdG9yLT5waXhlbF9jbG9ja19taHogPSAw OwogCi0JCWRtX2Nvbl9zdGF0ZS0+ZnJlZXN5bmNfY2FwYWJsZSA9IGZhbHNlOwotCQlkbV9jb25f c3RhdGUtPmZyZWVzeW5jX2VuYWJsZSA9IGZhbHNlOwotCQlyZXR1cm47CisJCWdvdG8gdXBkYXRl OwogCX0KIAogCWRtX2Nvbl9zdGF0ZSA9IHRvX2RtX2Nvbm5lY3Rvcl9zdGF0ZShjb25uZWN0b3It PnN0YXRlKTsKQEAgLTU1ODUsMTAgKzU1ODksMTAgQEAgdm9pZCBhbWRncHVfZG1fdXBkYXRlX2Zy ZWVzeW5jX2NhcHMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAllZGlkX2NoZWNr X3JlcXVpcmVkID0gZmFsc2U7CiAJaWYgKCFhbWRncHVfZG1fY29ubmVjdG9yLT5kY19zaW5rKSB7 CiAJCURSTV9FUlJPUigiZGNfc2luayBOVUxMLCBjb3VsZCBub3QgYWRkIGZyZWVfc3luYyBtb2R1 bGUuXG4iKTsKLQkJcmV0dXJuOworCQlnb3RvIHVwZGF0ZTsKIAl9CiAJaWYgKCFhZGV2LT5kbS5m cmVlc3luY19tb2R1bGUpCi0JCXJldHVybjsKKwkJZ290byB1cGRhdGU7CiAJLyoKIAkgKiBpZiBl ZGlkIG5vbiB6ZXJvIHJlc3RyaWN0IGZyZWVzeW5jIG9ubHkgZm9yIGRwIGFuZCBlZHAKIAkgKi8K QEAgLTU2MDAsNyArNTYwNCw2IEBAIHZvaWQgYW1kZ3B1X2RtX3VwZGF0ZV9mcmVlc3luY19jYXBz KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJCQlhbWRncHVfZG1fY29ubmVj dG9yKTsKIAkJfQogCX0KLQlkbV9jb25fc3RhdGUtPmZyZWVzeW5jX2NhcGFibGUgPSBmYWxzZTsK IAlpZiAoZWRpZF9jaGVja19yZXF1aXJlZCA9PSB0cnVlICYmIChlZGlkLT52ZXJzaW9uID4gMSB8 fAogCSAgIChlZGlkLT52ZXJzaW9uID09IDEgJiYgZWRpZC0+cmV2aXNpb24gPiAxKSkpIHsKIAkJ Zm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewpAQCAtNTYzMiw4ICs1NjM1LDE2IEBAIHZvaWQgYW1k Z3B1X2RtX3VwZGF0ZV9mcmVlc3luY19jYXBzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCiAJCWlmIChhbWRncHVfZG1fY29ubmVjdG9yLT5tYXhfdmZyZXEgLQogCQkgICAgYW1kZ3B1 X2RtX2Nvbm5lY3Rvci0+bWluX3ZmcmVxID4gMTApIHsKIAotCQkJZG1fY29uX3N0YXRlLT5mcmVl c3luY19jYXBhYmxlID0gdHJ1ZTsKKwkJCWZyZWVzeW5jX2NhcGFibGUgPSB0cnVlOwogCQl9CiAJ fQorCit1cGRhdGU6CisJaWYgKGRtX2Nvbl9zdGF0ZSkKKwkJZG1fY29uX3N0YXRlLT5mcmVlc3lu Y19jYXBhYmxlID0gZnJlZXN5bmNfY2FwYWJsZTsKKworCWlmIChjb25uZWN0b3ItPnZycl9jYXBh YmxlX3Byb3BlcnR5KQorCQlkcm1fY29ubmVjdG9yX3NldF92cnJfY2FwYWJsZV9wcm9wZXJ0eShj b25uZWN0b3IsCisJCQkJCQkgICAgICAgZnJlZXN5bmNfY2FwYWJsZSk7CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCmluZGV4IDk3 OGIzNGE1MDExYy4uYTVhYWY4YjA4OTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmgKQEAgLTE4NSw3ICsxODUsMTEgQEAgc3RydWN0 IGRtX2NydGNfc3RhdGUgewogCWludCBjcmNfc2tpcF9jb3VudDsKIAlib29sIGNyY19lbmFibGVk OwogCi0JYm9vbCBmcmVlc3luY19lbmFibGVkOworCWJvb2wgZnJlZXN5bmNfdGltaW5nX2NoYW5n ZWQ7CisJYm9vbCBmcmVlc3luY192cnJfaW5mb19jaGFuZ2VkOworCisJYm9vbCB2cnJfc3VwcG9y dGVkOworCXN0cnVjdCBtb2RfZnJlZXN5bmNfY29uZmlnIGZyZWVzeW5jX2NvbmZpZzsKIAlzdHJ1 Y3QgZGNfY3J0Y190aW1pbmdfYWRqdXN0IGFkanVzdDsKIAlzdHJ1Y3QgZGNfaW5mb19wYWNrZXQg dnJyX2luZm9wYWNrZXQ7CiB9OwpAQCAtMjA3LDcgKzIxMSw2IEBAIHN0cnVjdCBkbV9jb25uZWN0 b3Jfc3RhdGUgewogCXVpbnQ4X3QgdW5kZXJzY2FuX3Zib3JkZXI7CiAJdWludDhfdCB1bmRlcnNj YW5faGJvcmRlcjsKIAlib29sIHVuZGVyc2Nhbl9lbmFibGU7Ci0JYm9vbCBmcmVlc3luY19lbmFi bGU7CiAJYm9vbCBmcmVlc3luY19jYXBhYmxlOwogfTsKIAotLSAKMi4xOS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK