From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 7/7] drm/amdgpu: convert crtc to using graphics object ids. Date: Thu, 14 Apr 2016 12:56:10 +1000 Message-ID: <1460602570-20641-8-git-send-email-airlied@gmail.com> References: <1460602570-20641-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EB866E17B for ; Thu, 14 Apr 2016 02:56:21 +0000 (UTC) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1F3A680B20 for ; Thu, 14 Apr 2016 02:56:21 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-179.bne.redhat.com [10.64.40.179]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3E2uCTQ027239 for ; Wed, 13 Apr 2016 22:56:20 -0400 In-Reply-To: <1460602570-20641-1-git-send-email-airlied@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCkFzIGJlZm9yZSwgY29udmVy dCB0aGUgY3J0Y19pZCB0byBhIGdyYXBoaWNzIG9iamVjdCBpZC4KClNpZ25lZC1vZmYtYnk6IERh dmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2Nncy5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZGlzcGxheS5jICAgIHwgMTAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9rbXMuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X21vZGUuaCAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcG0uYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2F0b21iaW9zX2NydGMuYyAgICAgfCA1NSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRvbWJpb3NfY3J0Yy5oICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdG9tYmlvc19lbmNvZGVycy5jIHwgIDggKystLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgICAgICAgICB8IDMxICsrKysr KysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMgICAgICAg ICB8IDMxICsrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4 XzAuYyAgICAgICAgICB8IDMzICsrKysrKysrLS0tLS0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDkz IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jZ3MuYwppbmRleCA4YjY1M2YyLi4xMWFhNzA0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Nncy5jCkBAIC04MjgsNyArODI4LDcgQEAgc3RhdGljIGludCBhbWRn cHVfY2dzX2dldF9hY3RpdmVfZGlzcGxheXNfaW5mbyhzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2Rl dmljZSwKIAkJCQkmZGRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CiAJCQlhbWRn cHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwogCQkJaWYgKGNydGMtPmVuYWJsZWQpIHsK LQkJCQlpbmZvLT5hY3RpdmVfZGlzcGxheV9tYXNrIHw9ICgxIDw8IGFtZGdwdV9jcnRjLT5jcnRj X2lkKTsKKwkJCQlpbmZvLT5hY3RpdmVfZGlzcGxheV9tYXNrIHw9ICgxIDw8IGFtZGdwdV9jcnRj LT5jcnRjX29iamVjdF9pZC5pZCk7CiAJCQkJaW5mby0+ZGlzcGxheV9jb3VudCsrOwogCQkJfQog CQkJaWYgKG1vZGVfaW5mbyAhPSBOVUxMICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rpc3BsYXkuYwppbmRleCA0NDhiMjExLi5kODBkMmRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0 aWMgdm9pZCBhbWRncHVfZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmsp CiAKIAogCURSTV9ERUJVR19EUklWRVIoImNydGM6JWRbJXBdLCBwZmxpcF9zdGF0OkFNREdQVV9G TElQX1NVQk1JVFRFRCwgd29yazogJXAsXG4iLAotCQkJCQkgYW1kZ3B1Q3J0Yy0+Y3J0Y19pZCwg YW1kZ3B1Q3J0Yywgd29yayk7CisJCQkJCSBhbWRncHVDcnRjLT5jcnRjX29iamVjdF9pZC5pZCwg YW1kZ3B1Q3J0Yywgd29yayk7CiAKIH0KIApAQCAtMTk2LDcgKzE5Niw3IEBAIGludCBhbWRncHVf Y3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJd29yay0+ZXZlbnQgPSBl dmVudDsKIAl3b3JrLT5hZGV2ID0gYWRldjsKLQl3b3JrLT5jcnRjX2lkID0gYW1kZ3B1X2NydGMt PmNydGNfaWQ7CisJd29yay0+Y3J0Y19pZCA9IGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5p ZDsKIAogCS8qIHNjaGVkdWxlIHVucGluIG9mIHRoZSBvbGQgYnVmZmVyICovCiAJb2xkX2FtZGdw dV9mYiA9IHRvX2FtZGdwdV9mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5LT5mYik7CkBAIC0yMzks NyArMjM5LDcgQEAgaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAKIAl3b3JrLT5iYXNlID0gYmFzZTsKIAotCXIgPSBkcm1fdmJsYW5rX2dldChjcnRjLT5k ZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwlyID0gZHJtX3ZibGFua19nZXQoY3J0Yy0+ZGV2 LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQpOwogCWlmIChyKSB7CiAJCURSTV9FUlJP UigiZmFpbGVkIHRvIGdldCB2YmxhbmsgYmVmb3JlIGZsaXBcbiIpOwogCQlnb3RvIHBmbGlwX2Ns ZWFudXA7CkBAIC0yNTksNyArMjU5LDcgQEAgaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAKIAogCURSTV9ERUJVR19EUklWRVIoImNydGM6JWRbJXBdLCBw ZmxpcF9zdGF0OkFNREdQVV9GTElQX1BFTkRJTkcsIHdvcms6ICVwLFxuIiwKLQkJCQkJIGFtZGdw dV9jcnRjLT5jcnRjX2lkLCBhbWRncHVfY3J0Yywgd29yayk7CisJCQkJCSBhbWRncHVfY3J0Yy0+ Y3J0Y19vYmplY3RfaWQuaWQsIGFtZGdwdV9jcnRjLCB3b3JrKTsKIAkvKiB1cGRhdGUgY3J0YyBm YiAqLwogCWNydGMtPnByaW1hcnktPmZiID0gZmI7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm Y3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CkBAIC0yNjcsNyArMjY3LDcgQEAgaW50IGFt ZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcmV0dXJuIDA7CiAK IHZibGFua19jbGVhbnVwOgotCWRybV92YmxhbmtfcHV0KGNydGMtPmRldiwgYW1kZ3B1X2NydGMt PmNydGNfaWQpOworCWRybV92YmxhbmtfcHV0KGNydGMtPmRldiwgYW1kZ3B1X2NydGMtPmNydGNf b2JqZWN0X2lkLmlkKTsKIAogcGZsaXBfY2xlYW51cDoKIAlpZiAodW5saWtlbHkoYW1kZ3B1X2Jv X3Jlc2VydmUobmV3X3JibywgZmFsc2UpICE9IDApKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfa21zLmMKaW5kZXggMWY5ZDMxOC4uODQ0OWY0NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2luZm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0 IGRybV9maWxlCiAJCQljcnRjID0gKHN0cnVjdCBkcm1fY3J0YyAqKW1pbmZvLT5jcnRjc1tpXTsK IAkJCWlmIChjcnRjICYmIGNydGMtPmJhc2UuaWQgPT0gaW5mby0+bW9kZV9jcnRjLmlkKSB7CiAJ CQkJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMp OwotCQkJCXVpMzIgPSBhbWRncHVfY3J0Yy0+Y3J0Y19pZDsKKwkJCQl1aTMyID0gZGlzcGxheV9n cmFwaGljc19vYmplY3RfaWRfZ2V0X2NvbnRyb2xsZXJfaWQoYW1kZ3B1X2NydGMtPmNydGNfb2Jq ZWN0X2lkKTsKIAkJCQlmb3VuZCA9IDE7CiAJCQkJYnJlYWs7CiAJCQl9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaAppbmRleCA5NmUxZGU4Li41NjI0YzgxIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKQEAgLTM2OCw3ICszNjgsNyBAQCBz dHJ1Y3QgYW1kZ3B1X2F0b21fc3MgewogCiBzdHJ1Y3QgYW1kZ3B1X2NydGMgewogCXN0cnVjdCBk cm1fY3J0YyBiYXNlOwotCWludCBjcnRjX2lkOworCXN0cnVjdCBncmFwaGljc19vYmplY3RfaWQg Y3J0Y19vYmplY3RfaWQ7CiAJdTE2IGx1dF9yWzI1Nl0sIGx1dF9nWzI1Nl0sIGx1dF9iWzI1Nl07 CiAJYm9vbCBlbmFibGVkOwogCWJvb2wgY2FuX3RpbGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9wbS5jCmluZGV4IDZkNDRkNGEuLjhiYjNjZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0xMTYyLDcgKzExNjIsNyBAQCB2b2lkIGFtZGdwdV9wbV9j b21wdXRlX2Nsb2NrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkJICAgICZkZGV2 LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKIAkJCQlhbWRncHVfY3J0YyA9IHRvX2Ft ZGdwdV9jcnRjKGNydGMpOwogCQkJCWlmIChjcnRjLT5lbmFibGVkKSB7Ci0JCQkJCWFkZXYtPnBt LmRwbS5uZXdfYWN0aXZlX2NydGNzIHw9ICgxIDw8IGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJ CQkJYWRldi0+cG0uZHBtLm5ld19hY3RpdmVfY3J0Y3MgfD0gKDEgPDwgYW1kZ3B1X2NydGMtPmNy dGNfb2JqZWN0X2lkLmlkKTsKIAkJCQkJYWRldi0+cG0uZHBtLm5ld19hY3RpdmVfY3J0Y19jb3Vu dCsrOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2F0b21iaW9zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21iaW9zX2Ny dGMuYwppbmRleCA1YjhkM2M2Li44NzMxNzczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hdG9tYmlvc19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYXRvbWJpb3NfY3J0Yy5jCkBAIC00NSwxMCArNDUsMTAgQEAgdm9pZCBhbWRncHVfYXRvbWJp b3NfY3J0Y19vdmVyc2Nhbl9zZXR1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJU0VUX0NSVENf T1ZFUlNDQU5fUFNfQUxMT0NBVElPTiBhcmdzOwogCWludCBpbmRleCA9IEdldEluZGV4SW50b01h c3RlclRhYmxlKENPTU1BTkQsIFNldENSVENfT3ZlclNjYW4pOwogCWludCBhMSwgYTI7Ci0KKwll bnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0 X2lkX2dldF9jb250cm9sbGVyX2lkKGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCk7CiAJbWVt c2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwogCi0JYXJncy51Y0NSVEMgPSBhbWRncHVfY3J0 Yy0+Y3J0Y19pZDsKKwlhcmdzLnVjQ1JUQyA9IGNvbnRyb2xsZXJfaWQ7CiAKIAlzd2l0Y2ggKGFt ZGdwdV9jcnRjLT5ybXhfdHlwZSkgewogCWNhc2UgUk1YX0NFTlRFUjoKQEAgLTg3LDEwICs4Nywx MCBAQCB2b2lkIGFtZGdwdV9hdG9tYmlvc19jcnRjX3NjYWxlcl9zZXR1cChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IHRvX2FtZGdwdV9j cnRjKGNydGMpOwogCUVOQUJMRV9TQ0FMRVJfUFNfQUxMT0NBVElPTiBhcmdzOwogCWludCBpbmRl eCA9IEdldEluZGV4SW50b01hc3RlclRhYmxlKENPTU1BTkQsIEVuYWJsZVNjYWxlcik7Ci0KKwll bnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0 X2lkX2dldF9jb250cm9sbGVyX2lkKGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCk7CiAJbWVt c2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwogCi0JYXJncy51Y1NjYWxlciA9IGFtZGdwdV9j cnRjLT5jcnRjX2lkOworCWFyZ3MudWNTY2FsZXIgPSBjb250cm9sbGVyX2lkOwogCiAJc3dpdGNo IChhbWRncHVfY3J0Yy0+cm14X3R5cGUpIHsKIAljYXNlIFJNWF9GVUxMOgpAQCAtMTE3LDEwICsx MTcsMTAgQEAgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19sb2NrKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgaW50IGxvY2spCiAJaW50IGluZGV4ID0KIAkgICAgR2V0SW5kZXhJbnRvTWFzdGVyVGFi bGUoQ09NTUFORCwgVXBkYXRlQ1JUQ19Eb3VibGVCdWZmZXJSZWdpc3RlcnMpOwogCUVOQUJMRV9D UlRDX1BTX0FMTE9DQVRJT04gYXJnczsKLQorCWVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVy X2lkID0gZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2NvbnRyb2xsZXJfaWQoYW1kZ3B1 X2NydGMtPmNydGNfb2JqZWN0X2lkKTsKIAltZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihhcmdzKSk7 CiAKLQlhcmdzLnVjQ1JUQyA9IGFtZGdwdV9jcnRjLT5jcnRjX2lkOworCWFyZ3MudWNDUlRDID0g Y29udHJvbGxlcl9pZDsKIAlhcmdzLnVjRW5hYmxlID0gbG9jazsKIAogCWFtZGdwdV9hdG9tX2V4 ZWN1dGVfdGFibGUoYWRldi0+bW9kZV9pbmZvLmF0b21fY29udGV4dCwgaW5kZXgsICh1aW50MzJf dCAqKSZhcmdzKTsKQEAgLTEzMywxMCArMTMzLDEwIEBAIHZvaWQgYW1kZ3B1X2F0b21iaW9zX2Ny dGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHN0YXRlKQogCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgaW5kZXggPSBHZXRJbmRl eEludG9NYXN0ZXJUYWJsZShDT01NQU5ELCBFbmFibGVDUlRDKTsKIAlFTkFCTEVfQ1JUQ19QU19B TExPQ0FUSU9OIGFyZ3M7Ci0KKwllbnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZCA9IGRp c3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lkKGFtZGdwdV9jcnRjLT5j cnRjX29iamVjdF9pZCk7CiAJbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwogCi0JYXJn cy51Y0NSVEMgPSBhbWRncHVfY3J0Yy0+Y3J0Y19pZDsKKwlhcmdzLnVjQ1JUQyA9IGNvbnRyb2xs ZXJfaWQ7CiAJYXJncy51Y0VuYWJsZSA9IHN0YXRlOwogCiAJYW1kZ3B1X2F0b21fZXhlY3V0ZV90 YWJsZShhZGV2LT5tb2RlX2luZm8uYXRvbV9jb250ZXh0LCBpbmRleCwgKHVpbnQzMl90ICopJmFy Z3MpOwpAQCAtMTQ5LDEwICsxNDksMTEgQEAgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19ibGFu ayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCBzdGF0ZSkKIAlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRvTWFz dGVyVGFibGUoQ09NTUFORCwgQmxhbmtDUlRDKTsKIAlCTEFOS19DUlRDX1BTX0FMTE9DQVRJT04g YXJnczsKKwllbnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhp Y3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lkKGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9p ZCk7CiAKIAltZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihhcmdzKSk7CiAKLQlhcmdzLnVjQ1JUQyA9 IGFtZGdwdV9jcnRjLT5jcnRjX2lkOworCWFyZ3MudWNDUlRDID0gY29udHJvbGxlcl9pZDsKIAlh cmdzLnVjQmxhbmtpbmcgPSBzdGF0ZTsKIAogCWFtZGdwdV9hdG9tX2V4ZWN1dGVfdGFibGUoYWRl di0+bW9kZV9pbmZvLmF0b21fY29udGV4dCwgaW5kZXgsICh1aW50MzJfdCAqKSZhcmdzKTsKQEAg LTE2NSwxMCArMTY2LDExIEBAIHZvaWQgYW1kZ3B1X2F0b21iaW9zX2NydGNfcG93ZXJnYXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHN0YXRlKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgaW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJU YWJsZShDT01NQU5ELCBFbmFibGVEaXNwUG93ZXJHYXRpbmcpOwogCUVOQUJMRV9ESVNQX1BPV0VS X0dBVElOR19QQVJBTUVURVJTX1YyXzEgYXJnczsKKwllbnVtIGNvbnRyb2xsZXJfaWQgY29udHJv bGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lkKGFt ZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCk7CiAKIAltZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihh cmdzKSk7CiAKLQlhcmdzLnVjRGlzcFBpcGVJZCA9IGFtZGdwdV9jcnRjLT5jcnRjX2lkOworCWFy Z3MudWNEaXNwUGlwZUlkID0gY29udHJvbGxlcl9pZDsKIAlhcmdzLnVjRW5hYmxlID0gc3RhdGU7 CiAKIAlhbWRncHVfYXRvbV9leGVjdXRlX3RhYmxlKGFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRl eHQsIGluZGV4LCAodWludDMyX3QgKikmYXJncyk7CkBAIC0xOTUsNiArMTk3LDcgQEAgdm9pZCBh bWRncHVfYXRvbWJpb3NfY3J0Y19zZXRfZHRkX3RpbWluZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJU0VUX0NSVENfVVNJTkdfRFREX1RJTUlOR19QQVJBTUVURVJTIGFyZ3M7CiAJaW50IGluZGV4 ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoQ09NTUFORCwgU2V0Q1JUQ19Vc2luZ0RURFRpbWlu Zyk7CiAJdTE2IG1pc2MgPSAwOworCWVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkID0g ZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2NvbnRyb2xsZXJfaWQoYW1kZ3B1X2NydGMt PmNydGNfb2JqZWN0X2lkKTsKIAogCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKIAlh cmdzLnVzSF9TaXplID0gY3B1X3RvX2xlMTYobW9kZS0+Y3J0Y19oZGlzcGxheSAtIChhbWRncHVf Y3J0Yy0+aF9ib3JkZXIgKiAyKSk7CkBAIC0yMjYsNyArMjI5LDcgQEAgdm9pZCBhbWRncHVfYXRv bWJpb3NfY3J0Y19zZXRfZHRkX3RpbWluZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCW1pc2Mg fD0gQVRPTV9ET1VCTEVfQ0xPQ0tfTU9ERTsKIAogCWFyZ3Muc3VzTW9kZU1pc2NJbmZvLnVzQWNj ZXNzID0gY3B1X3RvX2xlMTYobWlzYyk7Ci0JYXJncy51Y0NSVEMgPSBhbWRncHVfY3J0Yy0+Y3J0 Y19pZDsKKwlhcmdzLnVjQ1JUQyA9IGNvbnRyb2xsZXJfaWQ7CiAKIAlhbWRncHVfYXRvbV9leGVj dXRlX3RhYmxlKGFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRleHQsIGluZGV4LCAodWludDMyX3Qg KikmYXJncyk7CiB9CkBAIC0yMzgsMTQgKzI0MSwxNSBAQCB1bmlvbiBhdG9tX2VuYWJsZV9zcyB7 CiB9OwogCiBzdGF0aWMgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3NzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgaW50IGVuYWJsZSwKLQkJCQkgICAgIGlu dCBwbGxfaWQsCi0JCQkJICAgICBpbnQgY3J0Y19pZCwKLQkJCQkgICAgIHN0cnVjdCBhbWRncHVf YXRvbV9zcyAqc3MpCisJCQkJCSAgICBpbnQgZW5hYmxlLAorCQkJCQkgICAgaW50IHBsbF9pZCwK KwkJCQkJICAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY3J0Y19vYmplY3RfaWQsCisJCQkJ CSAgICBzdHJ1Y3QgYW1kZ3B1X2F0b21fc3MgKnNzKQogewogCXVuc2lnbmVkIGk7CiAJaW50IGlu ZGV4ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoQ09NTUFORCwgRW5hYmxlU3ByZWFkU3BlY3Ry dW1PblBQTEwpOwogCXVuaW9uIGF0b21fZW5hYmxlX3NzIGFyZ3M7CisJZW51bSBjb250cm9sbGVy X2lkIGNvbnRyb2xsZXJfaWQgPSBkaXNwbGF5X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY29udHJv bGxlcl9pZChjcnRjX29iamVjdF9pZCk7CiAKIAlpZiAoZW5hYmxlKSB7CiAJCS8qIERvbid0IG1l c3Mgd2l0aCBTUyBpZiBwZXJjZW50YWdlIGlzIDAgb3IgZXh0ZXJuYWwgc3MuCkBAIC0yNjEsNyAr MjY1LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2F0b21iaW9zX2NydGNfcHJvZ3JhbV9zcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJZm9yIChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5m by5udW1fY3J0YzsgaSsrKSB7CiAJCQlpZiAoYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldICYmCiAJ CQkgICAgYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5lbmFibGVkICYmCi0JCQkgICAgaSAhPSBj cnRjX2lkICYmCisJCQkgICAgaSAhPSBjb250cm9sbGVyX2lkICYmCiAJCQkgICAgcGxsX2lkID09 IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+cGxsX2lkKSB7CiAJCQkJLyogb25lIG90aGVyIGNy dGMgaXMgdXNpbmcgdGhpcyBwbGwgZG9uJ3QgdHVybgogCQkJCSAqIG9mZiBzcHJlYWQgc3BlY3Ry dW0gYXMgaXQgbWlnaHQgdHVybiBvZmYKQEAgLTUyMSw3ICs1MjUsNyBAQCBzdGF0aWMgYm9vbCBp c19waXhlbF9jbG9ja19zb3VyY2VfZnJvbV9wbGwodTMyIGVuY29kZXJfbW9kZSwgaW50IHBsbF9p ZCkKIH0KIAogdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCi0JCQkgICAgICAgdTMyIGNydGNfaWQsCisJCQkgICAgICAgc3RydWN0IGdy YXBoaWNzX29iamVjdF9pZCBjcnRjX29iamVjdF9pZCwKIAkJCSAgICAgICBpbnQgcGxsX2lkLAog CQkJICAgICAgIHUzMiBlbmNvZGVyX21vZGUsCiAJCQkgICAgICAgc3RydWN0IGdyYXBoaWNzX29i amVjdF9pZCBlbmNvZGVyX29iamVjdF9pZCwKQEAgLTU0MCw2ICs1NDQsNyBAQCB2b2lkIGFtZGdw dV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fcGxsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpbnQg aW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJUYWJsZShDT01NQU5ELCBTZXRQaXhlbENsb2NrKTsK IAl1bmlvbiBzZXRfcGl4ZWxfY2xvY2sgYXJnczsKIAl1aW50OF90IGF0b21fZW5jX2lkID0gYW1k Z3B1X2VuY29kZXJfb2JqZWN0X3RvX2F0b20oZW5jb2Rlcl9vYmplY3RfaWQpOworCWVudW0gY29u dHJvbGxlcl9pZCBjb250cm9sbGVyX2lkID0gZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0 X2NvbnRyb2xsZXJfaWQoY3J0Y19vYmplY3RfaWQpOwogCiAJbWVtc2V0KCZhcmdzLCAwLCBzaXpl b2YoYXJncykpOwogCkBAIC01NTksNyArNTY0LDcgQEAgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0 Y19wcm9ncmFtX3BsbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlhcmdzLnYxLnVjRnJhY0Zi RGl2ID0gZnJhY19mYl9kaXY7CiAJCQlhcmdzLnYxLnVjUG9zdERpdiA9IHBvc3RfZGl2OwogCQkJ YXJncy52MS51Y1BwbGwgPSBwbGxfaWQ7Ci0JCQlhcmdzLnYxLnVjQ1JUQyA9IGNydGNfaWQ7CisJ CQlhcmdzLnYxLnVjQ1JUQyA9IGNvbnRyb2xsZXJfaWQ7CiAJCQlhcmdzLnYxLnVjUmVmRGl2U3Jj ID0gMTsKIAkJCWJyZWFrOwogCQljYXNlIDI6CkBAIC01NjksNyArNTc0LDcgQEAgdm9pZCBhbWRn cHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlh cmdzLnYyLnVjRnJhY0ZiRGl2ID0gZnJhY19mYl9kaXY7CiAJCQlhcmdzLnYyLnVjUG9zdERpdiA9 IHBvc3RfZGl2OwogCQkJYXJncy52Mi51Y1BwbGwgPSBwbGxfaWQ7Ci0JCQlhcmdzLnYyLnVjQ1JU QyA9IGNydGNfaWQ7CisJCQlhcmdzLnYyLnVjQ1JUQyA9IGNvbnRyb2xsZXJfaWQ7CiAJCQlhcmdz LnYyLnVjUmVmRGl2U3JjID0gMTsKIAkJCWJyZWFrOwogCQljYXNlIDM6CkBAIC01NzksNyArNTg0 LDcgQEAgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCQlhcmdzLnYzLnVjRnJhY0ZiRGl2ID0gZnJhY19mYl9kaXY7CiAJCQlhcmdz LnYzLnVjUG9zdERpdiA9IHBvc3RfZGl2OwogCQkJYXJncy52My51Y1BwbGwgPSBwbGxfaWQ7Ci0J CQlpZiAoY3J0Y19pZCA9PSBBVE9NX0NSVEMyKQorCQkJaWYgKGNvbnRyb2xsZXJfaWQgPT0gQVRP TV9DUlRDMikKIAkJCQlhcmdzLnYzLnVjTWlzY0luZm8gPSBQSVhFTF9DTE9DS19NSVNDX0NSVENf U0VMX0NSVEMyOwogCQkJZWxzZQogCQkJCWFyZ3MudjMudWNNaXNjSW5mbyA9IFBJWEVMX0NMT0NL X01JU0NfQ1JUQ19TRUxfQ1JUQzE7CkBAIC01ODksNyArNTk0LDcgQEAgdm9pZCBhbWRncHVfYXRv bWJpb3NfY3J0Y19wcm9ncmFtX3BsbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlhcmdzLnYz LnVjRW5jb2Rlck1vZGUgPSBlbmNvZGVyX21vZGU7CiAJCQlicmVhazsKIAkJY2FzZSA1OgotCQkJ YXJncy52NS51Y0NSVEMgPSBjcnRjX2lkOworCQkJYXJncy52NS51Y0NSVEMgPSBjb250cm9sbGVy X2lkOwogCQkJYXJncy52NS51c1BpeGVsQ2xvY2sgPSBjcHVfdG9fbGUxNihjbG9jayAvIDEwKTsK IAkJCWFyZ3MudjUudWNSZWZEaXYgPSByZWZfZGl2OwogCQkJYXJncy52NS51c0ZiRGl2ID0gY3B1 X3RvX2xlMTYoZmJfZGl2KTsKQEAgLTYyMCw3ICs2MjUsNyBAQCB2b2lkIGFtZGdwdV9hdG9tYmlv c19jcnRjX3Byb2dyYW1fcGxsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCWFyZ3MudjUudWNQ cGxsID0gcGxsX2lkOwogCQkJYnJlYWs7CiAJCWNhc2UgNjoKLQkJCWFyZ3MudjYudWxEaXNwRW5n Q2xrRnJlcSA9IGNwdV90b19sZTMyKGNydGNfaWQgPDwgMjQgfCBjbG9jayAvIDEwKTsKKwkJCWFy Z3MudjYudWxEaXNwRW5nQ2xrRnJlcSA9IGNwdV90b19sZTMyKGNvbnRyb2xsZXJfaWQgPDwgMjQg fCBjbG9jayAvIDEwKTsKIAkJCWFyZ3MudjYudWNSZWZEaXYgPSByZWZfZGl2OwogCQkJYXJncy52 Ni51c0ZiRGl2ID0gY3B1X3RvX2xlMTYoZmJfZGl2KTsKIAkJCWFyZ3MudjYudWxGYkRpdkRlY0Zy YWMgPSBjcHVfdG9fbGUzMihmcmFjX2ZiX2RpdiAqIDEwMDAwMCk7CkBAIC03NzUsOSArNzgwLDkg QEAgdm9pZCBhbWRncHVfYXRvbWJpb3NfY3J0Y19zZXRfcGxsKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUKIAkJCSAgICAmZmJfZGl2LCAmZnJhY19mYl9kaXYs ICZyZWZfZGl2LCAmcG9zdF9kaXYpOwogCiAJYW1kZ3B1X2F0b21iaW9zX2NydGNfcHJvZ3JhbV9z cyhhZGV2LCBBVE9NX0RJU0FCTEUsIGFtZGdwdV9jcnRjLT5wbGxfaWQsCi0JCQkJIGFtZGdwdV9j cnRjLT5jcnRjX2lkLCAmYW1kZ3B1X2NydGMtPnNzKTsKKwkJCQkgYW1kZ3B1X2NydGMtPmNydGNf b2JqZWN0X2lkLCAmYW1kZ3B1X2NydGMtPnNzKTsKIAotCWFtZGdwdV9hdG9tYmlvc19jcnRjX3By b2dyYW1fcGxsKGNydGMsIGFtZGdwdV9jcnRjLT5jcnRjX2lkLCBhbWRncHVfY3J0Yy0+cGxsX2lk LAorCWFtZGdwdV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fcGxsKGNydGMsIGFtZGdwdV9jcnRjLT5j cnRjX29iamVjdF9pZCwgYW1kZ3B1X2NydGMtPnBsbF9pZCwKIAkJCQkgIGVuY29kZXJfbW9kZSwg YW1kZ3B1X2VuY29kZXItPmVuY29kZXJfb2JqZWN0X2lkLCBjbG9jaywKIAkJCQkgIHJlZl9kaXYs IGZiX2RpdiwgZnJhY19mYl9kaXYsIHBvc3RfZGl2LAogCQkJCSAgYW1kZ3B1X2NydGMtPmJwYywg YW1kZ3B1X2NydGMtPnNzX2VuYWJsZWQsICZhbWRncHVfY3J0Yy0+c3MpOwpAQCAtODAwLDcgKzgw NSw3IEBAIHZvaWQgYW1kZ3B1X2F0b21iaW9zX2NydGNfc2V0X3BsbChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlCiAJCWFtZGdwdV9jcnRjLT5zcy5zdGVwID0g c3RlcF9zaXplOwogCiAJCWFtZGdwdV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fc3MoYWRldiwgQVRP TV9FTkFCTEUsIGFtZGdwdV9jcnRjLT5wbGxfaWQsCi0JCQkJCSBhbWRncHVfY3J0Yy0+Y3J0Y19p ZCwgJmFtZGdwdV9jcnRjLT5zcyk7CisJCQkJCSBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQs ICZhbWRncHVfY3J0Yy0+c3MpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYXRvbWJpb3NfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YXRvbWJpb3NfY3J0Yy5oCmluZGV4IDQ1MjI0NWYuLmMxMGE1NzAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21iaW9zX2NydGMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hdG9tYmlvc19jcnRjLmgKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBhbWRn cHVfYXRvbWJpb3NfY3J0Y19zZXRfZHRkX3RpbWluZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB2 b2lkIGFtZGdwdV9hdG9tYmlvc19jcnRjX3NldF9kaXNwX2VuZ19wbGwoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCiAJCQkJICAgIHUzMiBkaXNwY2xrKTsKIHZvaWQgYW1kZ3B1X2F0b21iaW9z X2NydGNfcHJvZ3JhbV9wbGwoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJICAgICAgIHUzMiBj cnRjX2lkLAorCQkJICAgICAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY3J0Y19vYmplY3Rf aWQsCiAJCQkgICAgICAgaW50IHBsbF9pZCwKIAkJCSAgICAgICB1MzIgZW5jb2Rlcl9tb2RlLAog CQkJICAgICAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZW5jb2Rlcl9vYmplY3RfaWQsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdG9tYmlvc19lbmNvZGVycy5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRvbWJpb3NfZW5jb2RlcnMuYwppbmRleCAy OGQzMDZhLi45ZjdmM2ZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h dG9tYmlvc19lbmNvZGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21i aW9zX2VuY29kZXJzLmMKQEAgLTEzMDcsNyArMTMwNyw3IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNv ZGVyX3NldF9jcnRjX3NvdXJjZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJdWludDhf dCBmcmV2LCBjcmV2OwogCXN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnOwogCWVu dW0gZW5jb2Rlcl9pZCBlbmNfaWQgPSBkaXNwbGF5X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfZW5j b2Rlcl9pZChhbWRncHVfZW5jb2Rlci0+ZW5jb2Rlcl9vYmplY3RfaWQpOwotCisJZW51bSBjb250 cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQgPSBkaXNwbGF5X2dyYXBoaWNzX29iamVjdF9pZF9nZXRf Y29udHJvbGxlcl9pZChhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQpOwogCW1lbXNldCgmYXJn cywgMCwgc2l6ZW9mKGFyZ3MpKTsKIAogCWlmICghYW1kZ3B1X2F0b21fcGFyc2VfY21kX2hlYWRl cihhZGV2LT5tb2RlX2luZm8uYXRvbV9jb250ZXh0LCBpbmRleCwgJmZyZXYsICZjcmV2KSkKQEAg LTEzMTgsNyArMTMxOCw3IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX3NldF9jcnRjX3NvdXJj ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJCXN3aXRjaCAoY3JldikgewogCQljYXNl IDE6CiAJCWRlZmF1bHQ6Ci0JCQlhcmdzLnYxLnVjQ1JUQyA9IGFtZGdwdV9jcnRjLT5jcnRjX2lk OworCQkJYXJncy52MS51Y0NSVEMgPSBjb250cm9sbGVyX2lkOwogCQkJc3dpdGNoIChlbmNfaWQp IHsKIAkJCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9UTURTMToKIAkJCWNhc2UgRU5DT0RFUl9J RF9JTlRFUk5BTF9LTERTQ1BfVE1EUzE6CkBAIC0xMzU3LDcgKzEzNTcsNyBAQCBhbWRncHVfYXRv bWJpb3NfZW5jb2Rlcl9zZXRfY3J0Y19zb3VyY2Uoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgMjoKLQkJCWFyZ3MudjIudWNDUlRDID0gYW1kZ3B1 X2NydGMtPmNydGNfaWQ7CisJCQlhcmdzLnYyLnVjQ1JUQyA9IGNvbnRyb2xsZXJfaWQ7CiAJCQlp ZiAoYW1kZ3B1X2VuY29kZXJfZ2V0X2RwX2JyaWRnZV9lbmNvZGVyX2lkKGVuY29kZXIpICE9IEVO Q09ERVJfSURfVU5LTk9XTikgewogCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PSBhbWRncHVfZ2V0X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcihlbmNvZGVyKTsKIApAQCAtMTQyNCw3 ICsxNDI0LDcgQEAgYW1kZ3B1X2F0b21iaW9zX2VuY29kZXJfc2V0X2NydGNfc291cmNlKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIDM6Ci0JCQlh cmdzLnYzLnVjQ1JUQyA9IGFtZGdwdV9jcnRjLT5jcnRjX2lkOworCQkJYXJncy52My51Y0NSVEMg PSBjb250cm9sbGVyX2lkOwogCQkJaWYgKGFtZGdwdV9lbmNvZGVyX2dldF9kcF9icmlkZ2VfZW5j b2Rlcl9pZChlbmNvZGVyKSAhPSBFTkNPREVSX0lEX1VOS05PV04pIHsKIAkJCQlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gYW1kZ3B1X2dldF9jb25uZWN0b3JfZm9yX2VuY29kZXIo ZW5jb2Rlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKaW5kZXggOTkz ZGUwZi4uZTJiMjJiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKQEAg LTgwMiw3ICs4MDIsNyBAQCBzdGF0aWMgdTMyIGRjZV92MTBfMF9saW5lX2J1ZmZlcl9hZGp1c3Qo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKQogewogCXUzMiB0bXAsIGJ1ZmZlcl9hbGxvYywgaSwgbWVtX2NmZzsKLQl1 MzIgcGlwZV9vZmZzZXQgPSBhbWRncHVfY3J0Yy0+Y3J0Y19pZDsKKwl1MzIgcGlwZV9vZmZzZXQg PSBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQ7CiAJLyoKIAkgKiBMaW5lIEJ1ZmZlciBT ZXR1cAogCSAqIFRoZXJlIGFyZSA2IGxpbmUgYnVmZmVycywgb25lIGZvciBlYWNoIGRpc3BsYXkg Y29udHJvbGxlcnMuCkBAIC0xNzYwLDcgKzE3NjAsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjEwXzBf YXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBjbG9jaykKIAkg Ki8KIAl0bXAgPSBSUkVHMzIobW1EQ0NHX0FVRElPX0RUT19TT1VSQ0UpOwogCXRtcCA9IFJFR19T RVRfRklFTEQodG1wLCBEQ0NHX0FVRElPX0RUT19TT1VSQ0UsIERDQ0dfQVVESU9fRFRPMF9TT1VS Q0VfU0VMLAotCQkJICAgIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJCSAgICBhbWRncHVfY3J0 Yy0+Y3J0Y19vYmplY3RfaWQuaWQpOwogCVdSRUczMihtbURDQ0dfQVVESU9fRFRPX1NPVVJDRSwg dG1wKTsKIAlXUkVHMzIobW1EQ0NHX0FVRElPX0RUTzBfUEhBU0UsIGR0b19waGFzZSk7CiAJV1JF RzMyKG1tRENDR19BVURJT19EVE8wX01PRFVMRSwgZHRvX21vZHVsbyk7CkBAIC0yMDI4LDEyICsy MDI4LDEzIEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF92Z2FfZW5hYmxlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgYm9vbCBlbmFibGUpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRl djsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJdTMy IHZnYV9jb250cm9sOworCWVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkID0gZGlzcGxh eV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2NvbnRyb2xsZXJfaWQoYW1kZ3B1X2NydGMtPmNydGNf b2JqZWN0X2lkKTsKIAotCXZnYV9jb250cm9sID0gUlJFRzMyKHZnYV9jb250cm9sX3JlZ3NbYW1k Z3B1X2NydGMtPmNydGNfaWRdKSAmIH4xOworCXZnYV9jb250cm9sID0gUlJFRzMyKHZnYV9jb250 cm9sX3JlZ3NbY29udHJvbGxlcl9pZF0pICYgfjE7CiAJaWYgKGVuYWJsZSkKLQkJV1JFRzMyKHZn YV9jb250cm9sX3JlZ3NbYW1kZ3B1X2NydGMtPmNydGNfaWRdLCB2Z2FfY29udHJvbCB8IDEpOwor CQlXUkVHMzIodmdhX2NvbnRyb2xfcmVnc1tjb250cm9sbGVyX2lkXSwgdmdhX2NvbnRyb2wgfCAx KTsKIAllbHNlCi0JCVdSRUczMih2Z2FfY29udHJvbF9yZWdzW2FtZGdwdV9jcnRjLT5jcnRjX2lk XSwgdmdhX2NvbnRyb2wpOworCQlXUkVHMzIodmdhX2NvbnRyb2xfcmVnc1tjb250cm9sbGVyX2lk XSwgdmdhX2NvbnRyb2wpOwogfQogCiBzdGF0aWMgdm9pZCBkY2VfdjEwXzBfZ3JwaF9lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVuYWJsZSkKQEAgLTIzMTIsNyArMjMxMyw3IEBA IHN0YXRpYyB2b2lkIGRjZV92MTBfMF9jcnRjX2xvYWRfbHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIAlpbnQgaTsKIAl1MzIgdG1wOwogCi0JRFJNX0RFQlVHX0tNUygiJWRcbiIsIGFtZGdwdV9j cnRjLT5jcnRjX2lkKTsKKwlEUk1fREVCVUdfS01TKCIlZFxuIiwgYW1kZ3B1X2NydGMtPmNydGNf b2JqZWN0X2lkLmlkKTsKIAogCXRtcCA9IFJSRUczMihtbUlOUFVUX0NTQ19DT05UUk9MICsgYW1k Z3B1X2NydGMtPmNydGNfb2Zmc2V0KTsKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgSU5QVVRf Q1NDX0NPTlRST0wsIElOUFVUX0NTQ19HUlBIX01PREUsIDApOwpAQCAtMjU5MCw3ICsyNTkxLDcg QEAgc3RhdGljIGludCBkY2VfdjEwXzBfY3J0Y19jdXJzb3Jfc2V0MihzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAKIAlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoY3J0Yy0+ZGV2LCBmaWxlX3By aXYsIGhhbmRsZSk7CiAJaWYgKCFvYmopIHsKLQkJRFJNX0VSUk9SKCJDYW5ub3QgZmluZCBjdXJz b3Igb2JqZWN0ICV4IGZvciBjcnRjICVkXG4iLCBoYW5kbGUsIGFtZGdwdV9jcnRjLT5jcnRjX2lk KTsKKwkJRFJNX0VSUk9SKCJDYW5ub3QgZmluZCBjdXJzb3Igb2JqZWN0ICV4IGZvciBjcnRjICVk XG4iLCBoYW5kbGUsIGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5pZCk7CiAJCXJldHVybiAt RU5PRU5UOwogCX0KIApAQCAtMjcwOCwxNiArMjcwOSwxNiBAQCBzdGF0aWMgdm9pZCBkY2VfdjEw XzBfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IG1vZGUpCiAJCWFtZGdwdV9h dG9tYmlvc19jcnRjX2JsYW5rKGNydGMsIEFUT01fRElTQUJMRSk7CiAJCWRjZV92MTBfMF92Z2Ff ZW5hYmxlKGNydGMsIGZhbHNlKTsKIAkJLyogTWFrZSBzdXJlIFZCTEFOSyBhbmQgUEZMSVAgaW50 ZXJydXB0cyBhcmUgc3RpbGwgZW5hYmxlZCAqLwotCQl0eXBlID0gYW1kZ3B1X2NydGNfaWR4X3Rv X2lycV90eXBlKGFkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJdHlwZSA9IGFtZGdwdV9j cnRjX2lkeF90b19pcnFfdHlwZShhZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQp OwogCQlhbWRncHVfaXJxX3VwZGF0ZShhZGV2LCAmYWRldi0+Y3J0Y19pcnEsIHR5cGUpOwogCQlh bWRncHVfaXJxX3VwZGF0ZShhZGV2LCAmYWRldi0+cGFnZWZsaXBfaXJxLCB0eXBlKTsKLQkJZHJt X3ZibGFua19vbihkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJZHJtX3ZibGFua19vbihk ZXYsIGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5pZCk7CiAJCWRjZV92MTBfMF9jcnRjX2xv YWRfbHV0KGNydGMpOwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0RQTVNfU1RBTkRCWToKIAlj YXNlIERSTV9NT0RFX0RQTVNfU1VTUEVORDoKIAljYXNlIERSTV9NT0RFX0RQTVNfT0ZGOgotCQlk cm1fdmJsYW5rX29mZihkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJZHJtX3ZibGFua19v ZmYoZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQpOwogCQlpZiAoYW1kZ3B1X2Ny dGMtPmVuYWJsZWQpIHsKIAkJCWRjZV92MTBfMF92Z2FfZW5hYmxlKGNydGMsIHRydWUpOwogCQkJ YW1kZ3B1X2F0b21iaW9zX2NydGNfYmxhbmsoY3J0YywgQVRPTV9FTkFCTEUpOwpAQCAtMjc3Nyw3 ICsyNzc4LDcgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0Yzsg aSsrKSB7CiAJCWlmIChhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0gJiYKIAkJICAgIGFkZXYtPm1v ZGVfaW5mby5jcnRjc1tpXS0+ZW5hYmxlZCAmJgotCQkgICAgaSAhPSBhbWRncHVfY3J0Yy0+Y3J0 Y19pZCAmJgorCQkgICAgaSAhPSBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQgJiYKIAkJ ICAgIGFtZGdwdV9jcnRjLT5wbGxfaWQgPT0gYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5wbGxf aWQpIHsKIAkJCS8qIG9uZSBvdGhlciBjcnRjIGlzIHVzaW5nIHRoaXMgcGxsIGRvbid0IHR1cm4K IAkJCSAqIG9mZiB0aGUgcGxsCkBAIC0yNzkxLDcgKzI3OTIsNyBAQCBzdGF0aWMgdm9pZCBkY2Vf djEwXzBfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAljYXNlIEFUT01fUFBM TDE6CiAJY2FzZSBBVE9NX1BQTEwyOgogCQkvKiBkaXNhYmxlIHRoZSBwcGxsICovCi0JCWFtZGdw dV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fcGxsKGNydGMsIGFtZGdwdV9jcnRjLT5jcnRjX2lkLCBh bWRncHVfY3J0Yy0+cGxsX2lkLAorCQlhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChj cnRjLCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQsIGFtZGdwdV9jcnRjLT5wbGxfaWQsCiAJ CQkJCSAgMCwgRElTUExBWV9OT19PQkpFQ1QsIEFUT01fRElTQUJMRSwgMCwgMCwgMCwgMCwgMCwg ZmFsc2UsICZzcyk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0yODk5LDcgKzI5MDAsNyBAQCBz dGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IGludCBpbmRleCkKIAlkcm1fY3J0Y19pbml0KGFkZXYtPmRkZXYsICZhbWRncHVfY3J0Yy0+YmFz ZSwgJmRjZV92MTBfMF9jcnRjX2Z1bmNzKTsKIAogCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3Np emUoJmFtZGdwdV9jcnRjLT5iYXNlLCAyNTYpOwotCWFtZGdwdV9jcnRjLT5jcnRjX2lkID0gaW5k ZXg7CisJYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkID0gZGlzcGxheV9ncmFwaGljc19vYmpl Y3RfaWRfaW5pdChpbmRleCwgRU5VTV9JRF9VTktOT1dOLCBPQkpFQ1RfVFlQRV9DT05UUk9MTEVS KTsKIAlhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaW5kZXhdID0gYW1kZ3B1X2NydGM7CiAKIAlhbWRn cHVfY3J0Yy0+bWF4X2N1cnNvcl93aWR0aCA9IDEyODsKQEAgLTI5MTMsNyArMjkxNCw3IEBAIHN0 YXRpYyBpbnQgZGNlX3YxMF8wX2NydGNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg aW50IGluZGV4KQogCQlhbWRncHVfY3J0Yy0+bHV0X2JbaV0gPSBpIDw8IDI7CiAJfQogCi0Jc3dp dGNoIChhbWRncHVfY3J0Yy0+Y3J0Y19pZCkgeworCXN3aXRjaCAoaW5kZXgpIHsKIAljYXNlIDA6 CiAJZGVmYXVsdDoKIAkJYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0ID0gQ1JUQzBfUkVHSVNURVJf T0ZGU0VUOwpAQCAtMzM3NSw3ICszMzc2LDcgQEAgc3RhdGljIGludCBkY2VfdjEwXzBfcGFnZWZs aXBfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmYWRldi0+ZGRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwogCi0JZHJtX3ZibGFua19wdXQo YWRldi0+ZGRldiwgYW1kZ3B1X2NydGMtPmNydGNfaWQpOworCWRybV92YmxhbmtfcHV0KGFkZXYt PmRkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5pZCk7CiAJc2NoZWR1bGVfd29yaygm d29ya3MtPnVucGluX3dvcmspOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92MTFfMC5jCmluZGV4IGI3ZWRiYTkuLmEyMzE2NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92MTFfMC5jCkBAIC03MzcsNyArNzM3LDcgQEAgc3RhdGljIHUzMiBkY2VfdjEx XzBfbGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCSAg ICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKIAl1MzIgdG1wLCBidWZmZXJf YWxsb2MsIGksIG1lbV9jZmc7Ci0JdTMyIHBpcGVfb2Zmc2V0ID0gYW1kZ3B1X2NydGMtPmNydGNf aWQ7CisJdTMyIHBpcGVfb2Zmc2V0ID0gYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkLmlkOwog CS8qCiAJICogTGluZSBCdWZmZXIgU2V0dXAKIAkgKiBUaGVyZSBhcmUgNiBsaW5lIGJ1ZmZlcnMs IG9uZSBmb3IgZWFjaCBkaXNwbGF5IGNvbnRyb2xsZXJzLgpAQCAtMTY5NSw3ICsxNjk1LDcgQEAg c3RhdGljIHZvaWQgZGNlX3YxMV8wX2F1ZGlvX3NldF9kdG8oc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLCB1MzIgY2xvY2spCiAJICovCiAJdG1wID0gUlJFRzMyKG1tRENDR19BVURJT19EVE9f U09VUkNFKTsKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgRENDR19BVURJT19EVE9fU09VUkNF LCBEQ0NHX0FVRElPX0RUTzBfU09VUkNFX1NFTCwKLQkJCSAgICBhbWRncHVfY3J0Yy0+Y3J0Y19p ZCk7CisJCQkgICAgYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkLmlkKTsKIAlXUkVHMzIobW1E Q0NHX0FVRElPX0RUT19TT1VSQ0UsIHRtcCk7CiAJV1JFRzMyKG1tRENDR19BVURJT19EVE8wX1BI QVNFLCBkdG9fcGhhc2UpOwogCVdSRUczMihtbURDQ0dfQVVESU9fRFRPMF9NT0RVTEUsIGR0b19t b2R1bG8pOwpAQCAtMTk2MywxMiArMTk2MywxMyBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfdmdh X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXUzMiB2Z2FfY29udHJvbDsKKwllbnVtIGNvbnRyb2xsZXJfaWQg Y29udHJvbGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVy X2lkKGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCk7CiAKLQl2Z2FfY29udHJvbCA9IFJSRUcz Mih2Z2FfY29udHJvbF9yZWdzW2FtZGdwdV9jcnRjLT5jcnRjX2lkXSkgJiB+MTsKKwl2Z2FfY29u dHJvbCA9IFJSRUczMih2Z2FfY29udHJvbF9yZWdzW2NvbnRyb2xsZXJfaWRdKSAmIH4xOwogCWlm IChlbmFibGUpCi0JCVdSRUczMih2Z2FfY29udHJvbF9yZWdzW2FtZGdwdV9jcnRjLT5jcnRjX2lk XSwgdmdhX2NvbnRyb2wgfCAxKTsKKwkJV1JFRzMyKHZnYV9jb250cm9sX3JlZ3NbY29udHJvbGxl cl9pZF0sIHZnYV9jb250cm9sIHwgMSk7CiAJZWxzZQotCQlXUkVHMzIodmdhX2NvbnRyb2xfcmVn c1thbWRncHVfY3J0Yy0+Y3J0Y19pZF0sIHZnYV9jb250cm9sKTsKKwkJV1JFRzMyKHZnYV9jb250 cm9sX3JlZ3NbY29udHJvbGxlcl9pZF0sIHZnYV9jb250cm9sKTsKIH0KIAogc3RhdGljIHZvaWQg ZGNlX3YxMV8wX2dycGhfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFibGUp CkBAIC0yMjQ3LDcgKzIyNDgsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfY3J0Y19sb2FkX2x1 dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaW50IGk7CiAJdTMyIHRtcDsKIAotCURSTV9ERUJV R19LTVMoIiVkXG4iLCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCk7CisJRFJNX0RFQlVHX0tNUygiJWRc biIsIGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5pZCk7CiAKIAl0bXAgPSBSUkVHMzIobW1J TlBVVF9DU0NfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCk7CiAJdG1wID0gUkVH X1NFVF9GSUVMRCh0bXAsIElOUFVUX0NTQ19DT05UUk9MLCBJTlBVVF9DU0NfR1JQSF9NT0RFLCAw KTsKQEAgLTI1MjcsNyArMjUyOCw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfY3Vyc29y X3NldDIoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJb2JqID0gZHJtX2dlbV9vYmplY3RfbG9v a3VwKGNydGMtPmRldiwgZmlsZV9wcml2LCBoYW5kbGUpOwogCWlmICghb2JqKSB7Ci0JCURSTV9F UlJPUigiQ2Fubm90IGZpbmQgY3Vyc29yIG9iamVjdCAleCBmb3IgY3J0YyAlZFxuIiwgaGFuZGxl LCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCk7CisJCURSTV9FUlJPUigiQ2Fubm90IGZpbmQgY3Vyc29y IG9iamVjdCAleCBmb3IgY3J0YyAlZFxuIiwgaGFuZGxlLCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmpl Y3RfaWQuaWQpOwogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAKQEAgLTI2NDUsMTYgKzI2NDYsMTYg QEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2NydGNfZHBtcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCBtb2RlKQogCQlhbWRncHVfYXRvbWJpb3NfY3J0Y19ibGFuayhjcnRjLCBBVE9NX0RJU0FC TEUpOwogCQlkY2VfdjExXzBfdmdhX2VuYWJsZShjcnRjLCBmYWxzZSk7CiAJCS8qIE1ha2Ugc3Vy ZSBWQkxBTksgYW5kIFBGTElQIGludGVycnVwdHMgYXJlIHN0aWxsIGVuYWJsZWQgKi8KLQkJdHlw ZSA9IGFtZGdwdV9jcnRjX2lkeF90b19pcnFfdHlwZShhZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19p ZCk7CisJCXR5cGUgPSBhbWRncHVfY3J0Y19pZHhfdG9faXJxX3R5cGUoYWRldiwgYW1kZ3B1X2Ny dGMtPmNydGNfb2JqZWN0X2lkLmlkKTsKIAkJYW1kZ3B1X2lycV91cGRhdGUoYWRldiwgJmFkZXYt PmNydGNfaXJxLCB0eXBlKTsKIAkJYW1kZ3B1X2lycV91cGRhdGUoYWRldiwgJmFkZXYtPnBhZ2Vm bGlwX2lycSwgdHlwZSk7Ci0JCWRybV92Ymxhbmtfb24oZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19p ZCk7CisJCWRybV92Ymxhbmtfb24oZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQp OwogCQlkY2VfdjExXzBfY3J0Y19sb2FkX2x1dChjcnRjKTsKIAkJYnJlYWs7CiAJY2FzZSBEUk1f TU9ERV9EUE1TX1NUQU5EQlk6CiAJY2FzZSBEUk1fTU9ERV9EUE1TX1NVU1BFTkQ6CiAJY2FzZSBE Uk1fTU9ERV9EUE1TX09GRjoKLQkJZHJtX3ZibGFua19vZmYoZGV2LCBhbWRncHVfY3J0Yy0+Y3J0 Y19pZCk7CisJCWRybV92Ymxhbmtfb2ZmKGRldiwgYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lk LmlkKTsKIAkJaWYgKGFtZGdwdV9jcnRjLT5lbmFibGVkKSB7CiAJCQlkY2VfdjExXzBfdmdhX2Vu YWJsZShjcnRjLCB0cnVlKTsKIAkJCWFtZGdwdV9hdG9tYmlvc19jcnRjX2JsYW5rKGNydGMsIEFU T01fRU5BQkxFKTsKQEAgLTI3MTQsNyArMjcxNSw3IEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9j cnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWZvciAoaSA9IDA7IGkgPCBhZGV2 LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgewogCQlpZiAoYWRldi0+bW9kZV9pbmZvLmNydGNz W2ldICYmCiAJCSAgICBhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmVuYWJsZWQgJiYKLQkJICAg IGkgIT0gYW1kZ3B1X2NydGMtPmNydGNfaWQgJiYKKwkJICAgIGkgIT0gYW1kZ3B1X2NydGMtPmNy dGNfb2JqZWN0X2lkLmlkICYmCiAJCSAgICBhbWRncHVfY3J0Yy0+cGxsX2lkID09IGFkZXYtPm1v ZGVfaW5mby5jcnRjc1tpXS0+cGxsX2lkKSB7CiAJCQkvKiBvbmUgb3RoZXIgY3J0YyBpcyB1c2lu ZyB0aGlzIHBsbCBkb24ndCB0dXJuCiAJCQkgKiBvZmYgdGhlIHBsbApAQCAtMjcyOCw3ICsyNzI5 LDcgQEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJY2FzZSBBVE9NX1BQTEwxOgogCWNhc2UgQVRPTV9QUExMMjoKIAkJLyogZGlzYWJs ZSB0aGUgcHBsbCAqLwotCQlhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChjcnRjLCBh bWRncHVfY3J0Yy0+Y3J0Y19pZCwgYW1kZ3B1X2NydGMtPnBsbF9pZCwKKwkJYW1kZ3B1X2F0b21i aW9zX2NydGNfcHJvZ3JhbV9wbGwoY3J0YywgYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkLCBh bWRncHVfY3J0Yy0+cGxsX2lkLAogCQkJCQkgIDAsIERJU1BMQVlfTk9fT0JKRUNULCBBVE9NX0RJ U0FCTEUsIDAsIDAsIDAsIDAsIDAsIGZhbHNlLCAmc3MpOwogCQlicmVhazsKIAlkZWZhdWx0OgpA QCAtMjgzNiw3ICsyODM3LDcgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0Y19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgaW5kZXgpCiAJZHJtX2NydGNfaW5pdChhZGV2LT5k ZGV2LCAmYW1kZ3B1X2NydGMtPmJhc2UsICZkY2VfdjExXzBfY3J0Y19mdW5jcyk7CiAKIAlkcm1f bW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCZhbWRncHVfY3J0Yy0+YmFzZSwgMjU2KTsKLQlhbWRn cHVfY3J0Yy0+Y3J0Y19pZCA9IGluZGV4OworCWFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCA9 IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2luaXQoaW5kZXgsIEVOVU1fSURfVU5LTk9XTiwg T0JKRUNUX1RZUEVfQ09OVFJPTExFUik7CiAJYWRldi0+bW9kZV9pbmZvLmNydGNzW2luZGV4XSA9 IGFtZGdwdV9jcnRjOwogCiAJYW1kZ3B1X2NydGMtPm1heF9jdXJzb3Jfd2lkdGggPSAxMjg7CkBA IC0yODUwLDcgKzI4NTEsNyBAQCBzdGF0aWMgaW50IGRjZV92MTFfMF9jcnRjX2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBpbmRleCkKIAkJYW1kZ3B1X2NydGMtPmx1dF9iW2ld ID0gaSA8PCAyOwogCX0KIAotCXN3aXRjaCAoYW1kZ3B1X2NydGMtPmNydGNfaWQpIHsKKwlzd2l0 Y2ggKGluZGV4KSB7CiAJY2FzZSAwOgogCWRlZmF1bHQ6CiAJCWFtZGdwdV9jcnRjLT5jcnRjX29m ZnNldCA9IENSVEMwX1JFR0lTVEVSX09GRlNFVDsKQEAgLTMzMTcsNyArMzMxOCw3IEBAIHN0YXRp YyBpbnQgZGNlX3YxMV8wX3BhZ2VmbGlwX2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK IAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZsYWdz KTsKIAotCWRybV92YmxhbmtfcHV0KGFkZXYtPmRkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsK Kwlkcm1fdmJsYW5rX3B1dChhZGV2LT5kZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQu aWQpOwogCXNjaGVkdWxlX3dvcmsoJndvcmtzLT51bnBpbl93b3JrKTsKIAogCXJldHVybiAwOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKaW5kZXggZjQ2OTkxYi4uNmE1M2NkZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCkBAIC03NDcsNyArNzQ3LDcgQEAg c3RhdGljIHUzMiBkY2VfdjhfMF9saW5lX2J1ZmZlcl9hZGp1c3Qoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewog CXUzMiB0bXAsIGJ1ZmZlcl9hbGxvYywgaTsKLQl1MzIgcGlwZV9vZmZzZXQgPSBhbWRncHVfY3J0 Yy0+Y3J0Y19pZCAqIDB4ODsKKwl1MzIgcGlwZV9vZmZzZXQgPSBhbWRncHVfY3J0Yy0+Y3J0Y19v YmplY3RfaWQuaWQgKiAweDg7CiAJLyoKIAkgKiBMaW5lIEJ1ZmZlciBTZXR1cAogCSAqIFRoZXJl IGFyZSA2IGxpbmUgYnVmZmVycywgb25lIGZvciBlYWNoIGRpc3BsYXkgY29udHJvbGxlcnMuCkBA IC0xNzE2LDcgKzE3MTYsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9hdWRpb19zZXRfZHRvKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIGNsb2NrKQogCSAqIG51bWJlciAoY29lZmZp Y2llbnQgb2YgdHdvIGludGVnZXIgbnVtYmVycy4gIERDQ0dfQVVESU9fRFRPeF9QSEFTRQogCSAq IGlzIHRoZSBudW1lcmF0b3IsIERDQ0dfQVVESU9fRFRPeF9NT0RVTEUgaXMgdGhlIGRlbm9taW5h dG9yCiAJICovCi0JV1JFRzMyKG1tRENDR19BVURJT19EVE9fU09VUkNFLCAoYW1kZ3B1X2NydGMt PmNydGNfaWQgPDwgRENDR19BVURJT19EVE9fU09VUkNFX19EQ0NHX0FVRElPX0RUTzBfU09VUkNF X1NFTF9fU0hJRlQpKTsKKwlXUkVHMzIobW1EQ0NHX0FVRElPX0RUT19TT1VSQ0UsIChhbWRncHVf Y3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQgPDwgRENDR19BVURJT19EVE9fU09VUkNFX19EQ0NHX0FV RElPX0RUTzBfU09VUkNFX1NFTF9fU0hJRlQpKTsKIAlXUkVHMzIobW1EQ0NHX0FVRElPX0RUTzBf UEhBU0UsIGR0b19waGFzZSk7CiAJV1JFRzMyKG1tRENDR19BVURJT19EVE8wX01PRFVMRSwgZHRv X21vZHVsbyk7CiB9CkBAIC0xOTY1LDEyICsxOTY1LDEzIEBAIHN0YXRpYyB2b2lkIGRjZV92OF8w X3ZnYV9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVuYWJsZSkKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MzIgdmdhX2NvbnRyb2w7CisJZW51bSBjb250cm9sbGVy X2lkIGNvbnRyb2xsZXJfaWQgPSBkaXNwbGF5X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY29udHJv bGxlcl9pZChhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQpOwogCi0JdmdhX2NvbnRyb2wgPSBS UkVHMzIodmdhX2NvbnRyb2xfcmVnc1thbWRncHVfY3J0Yy0+Y3J0Y19pZF0pICYgfjE7CisJdmdh X2NvbnRyb2wgPSBSUkVHMzIodmdhX2NvbnRyb2xfcmVnc1tjb250cm9sbGVyX2lkXSkgJiB+MTsK IAlpZiAoZW5hYmxlKQotCQlXUkVHMzIodmdhX2NvbnRyb2xfcmVnc1thbWRncHVfY3J0Yy0+Y3J0 Y19pZF0sIHZnYV9jb250cm9sIHwgMSk7CisJCVdSRUczMih2Z2FfY29udHJvbF9yZWdzW2NvbnRy b2xsZXJfaWRdLCB2Z2FfY29udHJvbCB8IDEpOwogCWVsc2UKLQkJV1JFRzMyKHZnYV9jb250cm9s X3JlZ3NbYW1kZ3B1X2NydGMtPmNydGNfaWRdLCB2Z2FfY29udHJvbCk7CisJCVdSRUczMih2Z2Ff Y29udHJvbF9yZWdzW2NvbnRyb2xsZXJfaWRdLCB2Z2FfY29udHJvbCk7CiB9CiAKIHN0YXRpYyB2 b2lkIGRjZV92OF8wX2dycGhfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFi bGUpCkBAIC0yMjI5LDcgKzIyMzAsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9jcnRjX2xvYWRf bHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IGk7CiAKLQlEUk1fREVCVUdfS01TKCIlZFxuIiwgYW1k Z3B1X2NydGMtPmNydGNfaWQpOworCURSTV9ERUJVR19LTVMoIiVkXG4iLCBhbWRncHVfY3J0Yy0+ Y3J0Y19vYmplY3RfaWQuaWQpOwogCiAJV1JFRzMyKG1tSU5QVVRfQ1NDX0NPTlRST0wgKyBhbWRn cHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgICgoSU5QVVRfQ1NDX0JZUEFTUyA8PCBJTlBV VF9DU0NfQ09OVFJPTF9fSU5QVVRfQ1NDX0dSUEhfTU9ERV9fU0hJRlQpIHwKQEAgLTI1MDIsNyAr MjUwMyw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19jdXJzb3Jfc2V0MihzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAKIAlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoY3J0Yy0+ZGV2LCBm aWxlX3ByaXYsIGhhbmRsZSk7CiAJaWYgKCFvYmopIHsKLQkJRFJNX0VSUk9SKCJDYW5ub3QgZmlu ZCBjdXJzb3Igb2JqZWN0ICV4IGZvciBjcnRjICVkXG4iLCBoYW5kbGUsIGFtZGdwdV9jcnRjLT5j cnRjX2lkKTsKKwkJRFJNX0VSUk9SKCJDYW5ub3QgZmluZCBjdXJzb3Igb2JqZWN0ICV4IGZvciBj cnRjICVkXG4iLCBoYW5kbGUsIGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZC5pZCk7CiAJCXJl dHVybiAtRU5PRU5UOwogCX0KIApAQCAtMjYyMCwxNiArMjYyMSwxNiBAQCBzdGF0aWMgdm9pZCBk Y2VfdjhfMF9jcnRjX2RwbXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkKIAkJYW1k Z3B1X2F0b21iaW9zX2NydGNfYmxhbmsoY3J0YywgQVRPTV9ESVNBQkxFKTsKIAkJZGNlX3Y4XzBf dmdhX2VuYWJsZShjcnRjLCBmYWxzZSk7CiAJCS8qIE1ha2Ugc3VyZSBWQkxBTksgYW5kIFBGTElQ IGludGVycnVwdHMgYXJlIHN0aWxsIGVuYWJsZWQgKi8KLQkJdHlwZSA9IGFtZGdwdV9jcnRjX2lk eF90b19pcnFfdHlwZShhZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCk7CisJCXR5cGUgPSBhbWRn cHVfY3J0Y19pZHhfdG9faXJxX3R5cGUoYWRldiwgYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lk LmlkKTsKIAkJYW1kZ3B1X2lycV91cGRhdGUoYWRldiwgJmFkZXYtPmNydGNfaXJxLCB0eXBlKTsK IAkJYW1kZ3B1X2lycV91cGRhdGUoYWRldiwgJmFkZXYtPnBhZ2VmbGlwX2lycSwgdHlwZSk7Ci0J CWRybV92Ymxhbmtfb24oZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCk7CisJCWRybV92Ymxhbmtf b24oZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQpOwogCQlkY2VfdjhfMF9jcnRj X2xvYWRfbHV0KGNydGMpOwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0RQTVNfU1RBTkRCWToK IAljYXNlIERSTV9NT0RFX0RQTVNfU1VTUEVORDoKIAljYXNlIERSTV9NT0RFX0RQTVNfT0ZGOgot CQlkcm1fdmJsYW5rX29mZihkZXYsIGFtZGdwdV9jcnRjLT5jcnRjX2lkKTsKKwkJZHJtX3ZibGFu a19vZmYoZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQuaWQpOwogCQlpZiAoYW1kZ3B1 X2NydGMtPmVuYWJsZWQpIHsKIAkJCWRjZV92OF8wX3ZnYV9lbmFibGUoY3J0YywgdHJ1ZSk7CiAJ CQlhbWRncHVfYXRvbWJpb3NfY3J0Y19ibGFuayhjcnRjLCBBVE9NX0VOQUJMRSk7CkBAIC0yNjg5 LDcgKzI2OTAsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9jcnRjX2Rpc2FibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7 IGkrKykgewogCQlpZiAoYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldICYmCiAJCSAgICBhZGV2LT5t b2RlX2luZm8uY3J0Y3NbaV0tPmVuYWJsZWQgJiYKLQkJICAgIGkgIT0gYW1kZ3B1X2NydGMtPmNy dGNfaWQgJiYKKwkJICAgIGkgIT0gYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkLmlkICYmCiAJ CSAgICBhbWRncHVfY3J0Yy0+cGxsX2lkID09IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+cGxs X2lkKSB7CiAJCQkvKiBvbmUgb3RoZXIgY3J0YyBpcyB1c2luZyB0aGlzIHBsbCBkb24ndCB0dXJu CiAJCQkgKiBvZmYgdGhlIHBsbApAQCAtMjcwMiw3ICsyNzAzLDcgQEAgc3RhdGljIHZvaWQgZGNl X3Y4XzBfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAljYXNlIEFUT01fUFBM TDE6CiAJY2FzZSBBVE9NX1BQTEwyOgogCQkvKiBkaXNhYmxlIHRoZSBwcGxsICovCi0JCWFtZGdw dV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fcGxsKGNydGMsIGFtZGdwdV9jcnRjLT5jcnRjX2lkLCBh bWRncHVfY3J0Yy0+cGxsX2lkLAorCQlhbWRncHVfYXRvbWJpb3NfY3J0Y19wcm9ncmFtX3BsbChj cnRjLCBhbWRncHVfY3J0Yy0+Y3J0Y19vYmplY3RfaWQsIGFtZGdwdV9jcnRjLT5wbGxfaWQsCiAJ CQkJCQkgMCwgRElTUExBWV9OT19PQkpFQ1QsIEFUT01fRElTQUJMRSwgMCwgMCwgMCwgMCwgMCwg ZmFsc2UsICZzcyk7CiAJCWJyZWFrOwogCWNhc2UgQVRPTV9QUExMMDoKQEAgLTI3MTAsNyArMjcx MSw3IEBAIHN0YXRpYyB2b2lkIGRjZV92OF8wX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJCWlmICgoYWRldi0+YXNpY190eXBlID09IENISVBfS0FWRVJJKSB8fAogCQkgICAg KGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX0JPTkFJUkUpIHx8CiAJCSAgICAoYWRldi0+YXNpY190 eXBlID09IENISVBfSEFXQUlJKSkKLQkJCWFtZGdwdV9hdG9tYmlvc19jcnRjX3Byb2dyYW1fcGxs KGNydGMsIGFtZGdwdV9jcnRjLT5jcnRjX2lkLCBhbWRncHVfY3J0Yy0+cGxsX2lkLAorCQkJYW1k Z3B1X2F0b21iaW9zX2NydGNfcHJvZ3JhbV9wbGwoY3J0YywgYW1kZ3B1X2NydGMtPmNydGNfb2Jq ZWN0X2lkLCBhbWRncHVfY3J0Yy0+cGxsX2lkLAogCQkJCQkJCSAwLCBESVNQTEFZX05PX09CSkVD VCwgQVRPTV9ESVNBQkxFLCAwLCAwLCAwLCAwLCAwLCBmYWxzZSwgJnNzKTsKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKQEAgLTI4MTgsNyArMjgxOSw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgaW5kZXgpCiAJZHJtX2NydGNfaW5p dChhZGV2LT5kZGV2LCAmYW1kZ3B1X2NydGMtPmJhc2UsICZkY2VfdjhfMF9jcnRjX2Z1bmNzKTsK IAogCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoJmFtZGdwdV9jcnRjLT5iYXNlLCAyNTYp OwotCWFtZGdwdV9jcnRjLT5jcnRjX2lkID0gaW5kZXg7CisJYW1kZ3B1X2NydGMtPmNydGNfb2Jq ZWN0X2lkID0gZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfaW5pdChpbmRleCwgRU5VTV9JRF9V TktOT1dOLCBPQkpFQ1RfVFlQRV9DT05UUk9MTEVSKTsKIAlhZGV2LT5tb2RlX2luZm8uY3J0Y3Nb aW5kZXhdID0gYW1kZ3B1X2NydGM7CiAKIAlhbWRncHVfY3J0Yy0+bWF4X2N1cnNvcl93aWR0aCA9 IENJS19DVVJTT1JfV0lEVEg7CkBAIC0yODMyLDcgKzI4MzMsNyBAQCBzdGF0aWMgaW50IGRjZV92 OF8wX2NydGNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGluZGV4KQogCQlh bWRncHVfY3J0Yy0+bHV0X2JbaV0gPSBpIDw8IDI7CiAJfQogCi0JYW1kZ3B1X2NydGMtPmNydGNf b2Zmc2V0ID0gY3J0Y19vZmZzZXRzW2FtZGdwdV9jcnRjLT5jcnRjX2lkXTsKKwlhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQgPSBjcnRjX29mZnNldHNbYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lk LmlkXTsKIAogCWFtZGdwdV9jcnRjLT5wbGxfaWQgPSBBVE9NX1BQTExfSU5WQUxJRDsKIAlhbWRn cHVfY3J0Yy0+YWRqdXN0ZWRfY2xvY2sgPSAwOwpAQCAtMzM4NCw3ICszMzg1LDcgQEAgc3RhdGlj IGludCBkY2VfdjhfMF9wYWdlZmxpcF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAK IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7 CiAKLQlkcm1fdmJsYW5rX3B1dChhZGV2LT5kZGV2LCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCk7CisJ ZHJtX3ZibGFua19wdXQoYWRldi0+ZGRldiwgYW1kZ3B1X2NydGMtPmNydGNfb2JqZWN0X2lkLmlk KTsKIAlzY2hlZHVsZV93b3JrKCZ3b3Jrcy0+dW5waW5fd29yayk7CiAKIAlyZXR1cm4gMDsKLS0g CjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK