From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/2] drm/amdgpu: start using engine_id for encoders. Date: Thu, 14 Apr 2016 14:41:19 +1000 Message-ID: <1460608879-30510-2-git-send-email-airlied@gmail.com> References: <1460608879-30510-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 108DC6E1A5 for ; Thu, 14 Apr 2016 04:41:23 +0000 (UTC) Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (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 AE33C81F07 for ; Thu, 14 Apr 2016 04:41:22 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-179.bne.redhat.com [10.64.40.179]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3E4fKN8026683 for ; Thu, 14 Apr 2016 00:41:21 -0400 In-Reply-To: <1460608879-30510-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 RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgbW92ZXMgZGlnX2Vu Y29kZXIgdXAgYSBsZXZlbCBhbmQgc3RhcnRzIGNvbnNpc3RlbnRseSB1c2luZwplbmdpbmVfaWQg aW4gaXRzIHBsYWNlIGZvciBhbGwgdGhlIGRpZ2l0YWwgYW5kIGRhYyBlbmdpbmVzLgoKU2lnbmVk LW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KLS0tCiAuLi4vZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2dycGhfb2JqZWN0X2lkX2hlbHBlcnMuYyB8ICAzNyArKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oICAgICAgICAgICB8ICAgMyAr LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRvbWJpb3NfZW5jb2RlcnMuYyAgICAgfCAx MDggKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djEwXzAuYyAgICAgICAgICAgICB8ICAzMCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTFfMC5jICAgICAgICAgICAgIHwgIDMwICsrKy0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgICAgICAgICAgfCAgMzEgKysrLS0tCiA2IGZpbGVz IGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dycGhfb2JqZWN0X2lkX2hlbHBl cnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ncnBoX29iamVjdF9pZF9o ZWxwZXJzLmMKaW5kZXggMTIyZGZkYi4uMzJmMGUzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dycGhfb2JqZWN0X2lkX2hlbHBlcnMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3JwaF9vYmplY3RfaWRfaGVscGVycy5jCkBA IC0zMTAsMyArMzEwLDQwIEBAIHVpbnQ4X3QgYW1kZ3B1X2VuY29kZXJfb2JqZWN0X3RvX2F0b20o c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBvYmplY3RfaWQpCiAJZW51bSBlbmNvZGVyX2lkIGVu Y19pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9lbmNvZGVyX2lkKG9iamVjdF9p ZCk7CiAJcmV0dXJuIGFtZGdwdV9lbmNvZGVyX2lkX3RvX2F0b20oZW5jX2lkKTsKIH0KKworYm9v bCBhbWRncHVfZW5naW5lX2lkX3RvX2F0b21fZW5jb2RlcihlbnVtIGVuZ2luZV9pZCBlbmdpbmUs IHVpbnQ4X3QgKmF0b21fZW5jb2Rlcl9pZCkKK3sKKwl1aW50OF90IGVuY29kZXJfaWQgPSAwOwor CXN3aXRjaCAoZW5naW5lKSB7CisJY2FzZSBFTkdJTkVfSURfRElHQToKKwkJZW5jb2Rlcl9pZCA9 IEFTSUNfSU5UX0RJRzFfRU5DT0RFUl9JRDsKKwkJYnJlYWs7CisJY2FzZSBFTkdJTkVfSURfRElH QjoKKwkJZW5jb2Rlcl9pZCA9IEFTSUNfSU5UX0RJRzJfRU5DT0RFUl9JRDsKKwkJYnJlYWs7CisJ Y2FzZSBFTkdJTkVfSURfRElHQzoKKwkJZW5jb2Rlcl9pZCA9IEFTSUNfSU5UX0RJRzNfRU5DT0RF Ul9JRDsKKwkJYnJlYWs7CisJY2FzZSBFTkdJTkVfSURfRElHRDoKKwkJZW5jb2Rlcl9pZCA9IEFT SUNfSU5UX0RJRzRfRU5DT0RFUl9JRDsKKwkJYnJlYWs7CisJY2FzZSBFTkdJTkVfSURfRElHRToK KwkJZW5jb2Rlcl9pZCA9IEFTSUNfSU5UX0RJRzVfRU5DT0RFUl9JRDsKKwkJYnJlYWs7CisJY2Fz ZSBFTkdJTkVfSURfRElHRjoKKwkJZW5jb2Rlcl9pZCA9IEFTSUNfSU5UX0RJRzZfRU5DT0RFUl9J RDsKKwkJYnJlYWs7CisJY2FzZSBFTkdJTkVfSURfRElHRzoKKwkJZW5jb2Rlcl9pZCA9IEFTSUNf SU5UX0RJRzdfRU5DT0RFUl9JRDsKKwkJYnJlYWs7CisJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFM X0tMRFNDUF9EQUMxOgorCQllbmNvZGVyX2lkID0gQVNJQ19JTlRfREFDMV9FTkNPREVSX0lEOwor CQlicmVhazsKKwljYXNlIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX0RBQzI6CisJCWVuY29k ZXJfaWQgPSBBU0lDX0lOVF9EQUMyX0VOQ09ERVJfSUQ7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGZh bHNlOworCX0KKwkqYXRvbV9lbmNvZGVyX2lkID0gZW5jb2Rlcl9pZDsKKwlyZXR1cm4gdHJ1ZTsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCmluZGV4IDU2MjRjODEu LmNiN2E0ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9t b2RlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaApAQCAt NDE2LDcgKzQxNiw2IEBAIHN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyB7CiAJYm9vbCBs aW5rYjsKIAkvKiBhdG9tIGRpZyAqLwogCWJvb2wgY29oZXJlbnRfbW9kZTsKLQlpbnQgZGlnX2Vu Y29kZXI7IC8qIC0xIGRpc2FibGVkLCAwIERJR0EsIDEgRElHQiwgZXRjLiAqLwogCS8qIGF0b20g bHZkcy9lZHAgKi8KIAl1aW50MzJfdCBsY2RfbWlzYzsKIAl1aW50MTZfdCBwYW5lbF9wd3JfZGVs YXk7CkBAIC00NDYsNiArNDQ1LDcgQEAgc3RydWN0IGFtZGdwdV9lbmNvZGVyIHsKIAlpbnQgYXVk aW9fcG9sbGluZ19hY3RpdmU7CiAJYm9vbCBpc19leHRfZW5jb2RlcjsKIAl1MTYgY2FwczsKKwll bnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7IC8qIC0xIGRpc2FibGVkLCAwIERJR0EsIDEgRElHQiwg ZXRjLiAqLwogfTsKIAogc3RydWN0IGFtZGdwdV9jb25uZWN0b3JfYXRvbV9kaWcgewpAQCAtNTk2 LDQgKzU5Niw1IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGFt ZGdwdV9tb2RlX2Z1bmNzOwogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBhbWRncHVfb2JqZWN0 X2lkX2Zyb21fYmlvc19vYmplY3RfaWQodWludDMyX3QgYmlvc19vYmplY3RfaWQpOwogdWludDhf dCBhbWRncHVfZW5jb2Rlcl9vYmplY3RfdG9fYXRvbShzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lk IG9iamVjdF9pZCk7CiB1aW50OF90IGFtZGdwdV9lbmNvZGVyX2lkX3RvX2F0b20oZW51bSBlbmNv ZGVyX2lkIGlkKTsKK2Jvb2wgYW1kZ3B1X2VuZ2luZV9pZF90b19hdG9tX2VuY29kZXIoZW51bSBl bmdpbmVfaWQgZW5naW5lLCB1aW50OF90ICphdG9tX2VuY29kZXJfaWQpOwogI2VuZGlmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdG9tYmlvc19lbmNvZGVycy5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRvbWJpb3NfZW5jb2RlcnMuYwppbmRleCAzN2M0 OThiLi5mZjI0ODI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hdG9t Ymlvc19lbmNvZGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21iaW9z X2VuY29kZXJzLmMKQEAgLTUyMCw3ICs1MjAsNyBAQCBhbWRncHVfYXRvbWJpb3NfZW5jb2Rlcl9z ZXR1cF9kaWdfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJfQogCiAJLyog bm8gZGlnIGVuY29kZXIgYXNzaWduZWQgKi8KLQlpZiAoZGlnLT5kaWdfZW5jb2RlciA9PSAtMSkK KwlpZiAoYW1kZ3B1X2VuY29kZXItPmVuZ2luZV9pZCA9PSBFTkdJTkVfSURfVU5LTk9XTikKIAkJ cmV0dXJuOwogCiAJbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwpAQCAtNTg1LDcgKzU4 NSw3IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX3NldHVwX2RpZ19lbmNvZGVyKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKIAogCQkJaWYgKEVOQ09ERVJfTU9ERV9JU19EUChhcmdzLnYz LnVjRW5jb2Rlck1vZGUpICYmIChkcF9jbG9jayA9PSAyNzAwMDApKQogCQkJCWFyZ3MudjEudWND b25maWcgfD0gQVRPTV9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzJfNzBHSFo7Ci0JCQlh cmdzLnYzLmFjQ29uZmlnLnVjRGlnU2VsID0gZGlnLT5kaWdfZW5jb2RlcjsKKwkJCWFyZ3MudjMu YWNDb25maWcudWNEaWdTZWwgPSBhbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkOwogCQkJYXJncy52 My51Y0JpdFBlckNvbG9yID0gYW1kZ3B1X2F0b21iaW9zX2VuY29kZXJfZ2V0X2JwYyhlbmNvZGVy KTsKIAkJCWJyZWFrOwogCQljYXNlIDQ6CkBAIC02MTMsNyArNjEzLDcgQEAgYW1kZ3B1X2F0b21i aW9zX2VuY29kZXJfc2V0dXBfZGlnX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAogCQkJCWVsc2UKIAkJCQkJYXJncy52MS51Y0NvbmZpZyB8PSBBVE9NX0VOQ09ERVJfQ09ORklH X1Y0X0RQTElOS1JBVEVfMV82MkdIWjsKIAkJCX0KLQkJCWFyZ3MudjQuYWNDb25maWcudWNEaWdT ZWwgPSBkaWctPmRpZ19lbmNvZGVyOworCQkJYXJncy52NC5hY0NvbmZpZy51Y0RpZ1NlbCA9IGFt ZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQ7CiAJCQlhcmdzLnY0LnVjQml0UGVyQ29sb3IgPSBhbWRn cHVfYXRvbWJpb3NfZW5jb2Rlcl9nZXRfYnBjKGVuY29kZXIpOwogCQkJaWYgKGhwZF9pZCA9PSBB TURHUFVfSFBEX05PTkUpCiAJCQkJYXJncy52NC51Y0hQRF9JRCA9IDA7CkBAIC02NjAsNyArNjYw LDcgQEAgYW1kZ3B1X2F0b21iaW9zX2VuY29kZXJfc2V0dXBfZGlnX3RyYW5zbWl0dGVyKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwgaW50IGEKIAlpbnQgZHBfbGFuZV9jb3VudCA9IDA7CiAJ aW50IGNvbm5lY3Rvcl9vYmplY3RfaWQgPSAwOwogCWludCBpZ3BfbGFuZV9pbmZvID0gMDsKLQlp bnQgZGlnX2VuY29kZXIgPSBkaWctPmRpZ19lbmNvZGVyOworCWVudW0gZW5naW5lX2lkIGVuZ2lu ZSA9IGFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQ7CiAJaW50IGhwZF9pZCA9IEFNREdQVV9IUERf Tk9ORTsKIAllbnVtIGVuY29kZXJfaWQgZW5jX2lkID0gZGlzcGxheV9ncmFwaGljc19vYmplY3Rf aWRfZ2V0X2VuY29kZXJfaWQoYW1kZ3B1X2VuY29kZXItPmVuY29kZXJfb2JqZWN0X2lkKTsKIApA QCAtNjY5LDcgKzY2OSw3IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX3NldHVwX2RpZ190cmFu c21pdHRlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBhCiAJCS8qIGp1c3QgbmVl ZGVkIHRvIGF2b2lkIGJhaWxpbmcgaW4gdGhlIGVuY29kZXIgY2hlY2suICB0aGUgZW5jb2Rlcgog CQkgKiBpc24ndCB1c2VkIGZvciBpbml0CiAJCSAqLwotCQlkaWdfZW5jb2RlciA9IDA7CisJCWVu Z2luZSA9IEVOR0lORV9JRF9ESUdBOwogCX0gZWxzZQogCQljb25uZWN0b3IgPSBhbWRncHVfZ2V0 X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcihlbmNvZGVyKTsKIApAQCAtNjkwLDcgKzY5MCw3IEBAIGFt ZGdwdV9hdG9tYmlvc19lbmNvZGVyX3NldHVwX2RpZ190cmFuc21pdHRlcihzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsIGludCBhCiAJfQogCiAJLyogbm8gZGlnIGVuY29kZXIgYXNzaWduZWQg Ki8KLQlpZiAoZGlnX2VuY29kZXIgPT0gLTEpCisJaWYgKGVuZ2luZSA9PSBFTkdJTkVfSURfVU5L Tk9XTikKIAkJcmV0dXJuOwogCiAJaWYgKEVOQ09ERVJfTU9ERV9JU19EUChhbWRncHVfYXRvbWJp b3NfZW5jb2Rlcl9nZXRfZW5jb2Rlcl9tb2RlKGVuY29kZXIpKSkKQEAgLTczNiw3ICs3MzYsNyBA QCBhbWRncHVfYXRvbWJpb3NfZW5jb2Rlcl9zZXR1cF9kaWdfdHJhbnNtaXR0ZXIoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLCBpbnQgYQogCiAJCQlhcmdzLnYxLnVjQ29uZmlnID0gQVRPTV9U UkFOU01JVFRFUl9DT05GSUdfQ0xLU1JDX1BQTEw7CiAKLQkJCWlmIChkaWdfZW5jb2RlcikKKwkJ CWlmIChlbmdpbmUpCiAJCQkJYXJncy52MS51Y0NvbmZpZyB8PSBBVE9NX1RSQU5TTUlUVEVSX0NP TkZJR19ESUcyX0VOQ09ERVI7CiAJCQllbHNlCiAJCQkJYXJncy52MS51Y0NvbmZpZyB8PSBBVE9N X1RSQU5TTUlUVEVSX0NPTkZJR19ESUcxX0VOQ09ERVI7CkBAIC03OTEsNyArNzkxLDcgQEAgYW1k Z3B1X2F0b21iaW9zX2VuY29kZXJfc2V0dXBfZGlnX3RyYW5zbWl0dGVyKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwgaW50IGEKIAkJCQkJYXJncy52Mi51c1BpeGVsQ2xvY2sgPSBjcHVfdG9f bGUxNihhbWRncHVfZW5jb2Rlci0+cGl4ZWxfY2xvY2sgLyAxMCk7CiAJCQl9CiAKLQkJCWFyZ3Mu djIuYWNDb25maWcudWNFbmNvZGVyU2VsID0gZGlnX2VuY29kZXI7CisJCQlhcmdzLnYyLmFjQ29u ZmlnLnVjRW5jb2RlclNlbCA9IGVuZ2luZTsKIAkJCWlmIChkaWctPmxpbmtiKQogCQkJCWFyZ3Mu djIuYWNDb25maWcudWNMaW5rU2VsID0gMTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGFtZGdwdV9h dG9tYmlvc19lbmNvZGVyX3NldHVwX2RpZ190cmFuc21pdHRlcihzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsIGludCBhCiAKIAkJCWlmIChkaWctPmxpbmtiKQogCQkJCWFyZ3MudjMuYWNDb25m aWcudWNMaW5rU2VsID0gMTsKLQkJCWlmIChkaWdfZW5jb2RlciAmIDEpCisJCQlpZiAoZW5naW5l ICYgMSkKIAkJCQlhcmdzLnYzLmFjQ29uZmlnLnVjRW5jb2RlclNlbCA9IDE7CiAKIAkJCS8qIFNl bGVjdCB0aGUgUExMIGZvciB0aGUgUEhZCkBAIC05MDUsNyArOTA1LDcgQEAgYW1kZ3B1X2F0b21i aW9zX2VuY29kZXJfc2V0dXBfZGlnX3RyYW5zbWl0dGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwgaW50IGEKIAogCQkJaWYgKGRpZy0+bGlua2IpCiAJCQkJYXJncy52NC5hY0NvbmZpZy51 Y0xpbmtTZWwgPSAxOwotCQkJaWYgKGRpZ19lbmNvZGVyICYgMSkKKwkJCWlmIChlbmdpbmUgJiAx KQogCQkJCWFyZ3MudjQuYWNDb25maWcudWNFbmNvZGVyU2VsID0gMTsKIAogCQkJLyogU2VsZWN0 IHRoZSBQTEwgZm9yIHRoZSBQSFkKQEAgLTEwMDAsNyArMTAwMCw3IEBAIGFtZGdwdV9hdG9tYmlv c19lbmNvZGVyX3NldHVwX2RpZ190cmFuc21pdHRlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsIGludCBhCiAJCQkJYXJncy52NS5hc0NvbmZpZy51Y0hQRFNlbCA9IDA7CiAJCQllbHNlCiAJ CQkJYXJncy52NS5hc0NvbmZpZy51Y0hQRFNlbCA9IGhwZF9pZCArIDE7Ci0JCQlhcmdzLnY1LnVj RGlnRW5jb2RlclNlbCA9IDEgPDwgZGlnX2VuY29kZXI7CisJCQlhcmdzLnY1LnVjRGlnRW5jb2Rl clNlbCA9IDEgPDwgZW5naW5lOwogCQkJYXJncy52NS51Y0RQTGFuZVNldCA9IGxhbmVfc2V0Owog CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0xMzA1LDcgKzEzMDUsNiBAQCBhbWRncHVfYXRvbWJp b3NfZW5jb2Rlcl9zZXRfY3J0Y19zb3VyY2Uoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQog CXVuaW9uIGNydGNfc291cmNlX3BhcmFtIGFyZ3M7CiAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRv TWFzdGVyVGFibGUoQ09NTUFORCwgU2VsZWN0Q1JUQ19Tb3VyY2UpOwogCXVpbnQ4X3QgZnJldiwg Y3JldjsKLQlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZzsKIAllbnVtIGVuY29k ZXJfaWQgZW5jX2lkID0gZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2VuY29kZXJfaWQo YW1kZ3B1X2VuY29kZXItPmVuY29kZXJfb2JqZWN0X2lkKTsKIAllbnVtIGNvbnRyb2xsZXJfaWQg Y29udHJvbGxlcl9pZCA9IGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVy X2lkKGFtZGdwdV9jcnRjLT5jcnRjX29iamVjdF9pZCk7CiAJbWVtc2V0KCZhcmdzLCAwLCBzaXpl b2YoYXJncykpOwpAQCAtMTM2Miw0NiArMTM2MSw5IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNvZGVy X3NldF9jcnRjX3NvdXJjZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJCQl9IGVsc2Ug ewogCQkJCWFyZ3MudjIudWNFbmNvZGVNb2RlID0gYW1kZ3B1X2F0b21iaW9zX2VuY29kZXJfZ2V0 X2VuY29kZXJfbW9kZShlbmNvZGVyKTsKIAkJCX0KLQkJCXN3aXRjaCAoZW5jX2lkKSB7Ci0JCQlj YXNlIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZOgotCQkJY2FzZSBFTkNPREVSX0lEX0lOVEVS TkFMX1VOSVBIWTE6Ci0JCQljYXNlIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMjoKLQkJCWNh c2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFkzOgotCQkJY2FzZSBFTkNPREVSX0lEX0lOVEVS TkFMX0tMRFNDUF9MVlRNQToKLQkJCQlkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7Ci0J CQkJc3dpdGNoIChkaWctPmRpZ19lbmNvZGVyKSB7Ci0JCQkJY2FzZSAwOgotCQkJCQlhcmdzLnYy LnVjRW5jb2RlcklEID0gQVNJQ19JTlRfRElHMV9FTkNPREVSX0lEOwotCQkJCQlicmVhazsKLQkJ CQljYXNlIDE6Ci0JCQkJCWFyZ3MudjIudWNFbmNvZGVySUQgPSBBU0lDX0lOVF9ESUcyX0VOQ09E RVJfSUQ7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgMjoKLQkJCQkJYXJncy52Mi51Y0VuY29kZXJJ RCA9IEFTSUNfSU5UX0RJRzNfRU5DT0RFUl9JRDsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSAzOgot CQkJCQlhcmdzLnYyLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfRElHNF9FTkNPREVSX0lEOwotCQkJ CQlicmVhazsKLQkJCQljYXNlIDQ6Ci0JCQkJCWFyZ3MudjIudWNFbmNvZGVySUQgPSBBU0lDX0lO VF9ESUc1X0VOQ09ERVJfSUQ7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgNToKLQkJCQkJYXJncy52 Mi51Y0VuY29kZXJJRCA9IEFTSUNfSU5UX0RJRzZfRU5DT0RFUl9JRDsKLQkJCQkJYnJlYWs7Ci0J CQkJY2FzZSA2OgotCQkJCQlhcmdzLnYyLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfRElHN19FTkNP REVSX0lEOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIEVOQ09ERVJf SURfSU5URVJOQUxfS0xEU0NQX0RBQzE6Ci0JCQkJYXJncy52Mi51Y0VuY29kZXJJRCA9IEFTSUNf SU5UX0RBQzFfRU5DT0RFUl9JRDsKLQkJCQlicmVhazsKLQkJCWNhc2UgRU5DT0RFUl9JRF9JTlRF Uk5BTF9LTERTQ1BfREFDMjoKLQkJCQlhcmdzLnYyLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfREFD Ml9FTkNPREVSX0lEOwotCQkJCWJyZWFrOwotCQkJZGVmYXVsdDoKKworCQkJaWYgKCFhbWRncHVf ZW5naW5lX2lkX3RvX2F0b21fZW5jb2RlcihhbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkLCAmYXJn cy52Mi51Y0VuY29kZXJJRCkpCiAJCQkJcmV0dXJuOwotCQkJfQogCQkJYnJlYWs7CiAJCWNhc2Ug MzoKIAkJCWFyZ3MudjMudWNDUlRDID0gY29udHJvbGxlcl9pZDsKQEAgLTE0MjAsNDYgKzEzODIs OSBAQCBhbWRncHVfYXRvbWJpb3NfZW5jb2Rlcl9zZXRfY3J0Y19zb3VyY2Uoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQogCQkJCWFyZ3MudjIudWNFbmNvZGVNb2RlID0gYW1kZ3B1X2F0b21i aW9zX2VuY29kZXJfZ2V0X2VuY29kZXJfbW9kZShlbmNvZGVyKTsKIAkJCX0KIAkJCWFyZ3MudjMu dWNEc3RCcGMgPSBhbWRncHVfYXRvbWJpb3NfZW5jb2Rlcl9nZXRfYnBjKGVuY29kZXIpOwotCQkJ c3dpdGNoIChlbmNfaWQpIHsKLQkJCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFk6Ci0J CQljYXNlIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMToKLQkJCWNhc2UgRU5DT0RFUl9JRF9J TlRFUk5BTF9VTklQSFkyOgotCQkJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VOSVBIWTM6Ci0J CQljYXNlIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX0xWVE1BOgotCQkJCWRpZyA9IGFtZGdw dV9lbmNvZGVyLT5lbmNfcHJpdjsKLQkJCQlzd2l0Y2ggKGRpZy0+ZGlnX2VuY29kZXIpIHsKLQkJ CQljYXNlIDA6Ci0JCQkJCWFyZ3MudjMudWNFbmNvZGVySUQgPSBBU0lDX0lOVF9ESUcxX0VOQ09E RVJfSUQ7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgMToKLQkJCQkJYXJncy52My51Y0VuY29kZXJJ RCA9IEFTSUNfSU5UX0RJRzJfRU5DT0RFUl9JRDsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSAyOgot CQkJCQlhcmdzLnYzLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfRElHM19FTkNPREVSX0lEOwotCQkJ CQlicmVhazsKLQkJCQljYXNlIDM6Ci0JCQkJCWFyZ3MudjMudWNFbmNvZGVySUQgPSBBU0lDX0lO VF9ESUc0X0VOQ09ERVJfSUQ7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgNDoKLQkJCQkJYXJncy52 My51Y0VuY29kZXJJRCA9IEFTSUNfSU5UX0RJRzVfRU5DT0RFUl9JRDsKLQkJCQkJYnJlYWs7Ci0J CQkJY2FzZSA1OgotCQkJCQlhcmdzLnYzLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfRElHNl9FTkNP REVSX0lEOwotCQkJCQlicmVhazsKLQkJCQljYXNlIDY6Ci0JCQkJCWFyZ3MudjMudWNFbmNvZGVy SUQgPSBBU0lDX0lOVF9ESUc3X0VOQ09ERVJfSUQ7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQli cmVhazsKLQkJCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9LTERTQ1BfREFDMToKLQkJCQlhcmdz LnYzLnVjRW5jb2RlcklEID0gQVNJQ19JTlRfREFDMV9FTkNPREVSX0lEOwotCQkJCWJyZWFrOwot CQkJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMyOgotCQkJCWFyZ3MudjMudWNF bmNvZGVySUQgPSBBU0lDX0lOVF9EQUMyX0VOQ09ERVJfSUQ7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZh dWx0OgotCQkJCWJyZWFrOwotCQkJfQorCisJCQlpZiAoIWFtZGdwdV9lbmdpbmVfaWRfdG9fYXRv bV9lbmNvZGVyKGFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQsICZhcmdzLnYzLnVjRW5jb2RlcklE KSkKKwkJCQlyZXR1cm47CiAJCQlicmVhazsKIAkJfQogCQlicmVhazsKQEAgLTE5NTEsNyArMTg3 Niw2IEBAIGFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX2dldF9kaWdfaW5mbyhzdHJ1Y3QgYW1kZ3B1 X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyKQogCiAJLyogY29oZXJlbnQgbW9kZSBieSBkZWZhdWx0 ICovCiAJZGlnLT5jb2hlcmVudF9tb2RlID0gdHJ1ZTsKLQlkaWctPmRpZ19lbmNvZGVyID0gLTE7 CiAKIAlpZiAoZW5jb2Rlcl9lbnVtID09IEVOVU1fSURfMikKIAkJZGlnLT5saW5rYiA9IHRydWU7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCmluZGV4IGUyYjIyYmYuLjcxYjMw YjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCkBAIC0yMzg1LDcgKzIz ODUsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjEwXzBfY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCiAJV1JFRzMyKG1tQUxQSEFfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29m ZnNldCwgdG1wKTsKIH0KIAotc3RhdGljIGludCBkY2VfdjEwXzBfcGlja19kaWdfZW5jb2Rlcihz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgZW51bSBlbmdpbmVfaWQgZGNlX3Yx MF8wX3BpY2tfZW5naW5lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rl cik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rl ci0+ZW5jX3ByaXY7CkBAIC0yMzk0LDI0ICsyMzk0LDI5IEBAIHN0YXRpYyBpbnQgZGNlX3YxMF8w X3BpY2tfZGlnX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXN3aXRjaCAo ZW5jX2lkKSB7CiAJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VOSVBIWToKIAkJaWYgKGRpZy0+ bGlua2IpCi0JCQlyZXR1cm4gMTsKKwkJCXJldHVybiBFTkdJTkVfSURfRElHQjsKIAkJZWxzZQot CQkJcmV0dXJuIDA7CisJCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0E7CiAJCWJyZWFrOwogCWNhc2Ug RU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFkxOgogCQlpZiAoZGlnLT5saW5rYikKLQkJCXJldHVy biAzOworCQkJcmV0dXJuIEVOR0lORV9JRF9ESUdEOwogCQllbHNlCi0JCQlyZXR1cm4gMjsgYnJl YWs7CisJCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0M7CisJCWJyZWFrOwogCWNhc2UgRU5DT0RFUl9J RF9JTlRFUk5BTF9VTklQSFkyOgogCQlpZiAoZGlnLT5saW5rYikKLQkJCXJldHVybiA1OworCQkJ cmV0dXJuIEVOR0lORV9JRF9ESUdGOwogCQllbHNlCi0JCQlyZXR1cm4gNDsKKwkJCXJldHVybiBF TkdJTkVfSURfRElHRTsKIAkJYnJlYWs7CiAJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VOSVBI WTM6Ci0JCXJldHVybiA2OworCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0c7CiAJCWJyZWFrOworCWNh c2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9LTERTQ1BfREFDMToKKwkJcmV0dXJuIEVOR0lORV9JRF9E QUNBOworCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9LTERTQ1BfREFDMjoKKwkJcmV0dXJuIEVO R0lORV9JRF9EQUNCOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiaW52YWxpZCBlbmNvZGVyX2lk OiAweCV4XG4iLCBhbWRncHVfZW5jb2Rlci0+ZW5jb2Rlcl9vYmplY3RfaWQuaWQpOwogCQlyZXR1 cm4gMDsKQEAgLTM1NDYsMTUgKzM1NTEsMTUgQEAgc3RhdGljIHZvaWQgZGNlX3YxMF8wX2VuY29k ZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGFtZGdwdV9l bmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIpOwogCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBhbWRncHVfZ2V0X2Nvbm5lY3Rvcl9mb3Jf ZW5jb2RlcihlbmNvZGVyKTsKIAorCWFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQgPSBkY2VfdjEw XzBfcGlja19lbmdpbmUoZW5jb2Rlcik7CiAJaWYgKChhbWRncHVfZW5jb2Rlci0+YWN0aXZlX2Rl dmljZSAmCiAJICAgICAoQVRPTV9ERVZJQ0VfREZQX1NVUFBPUlQgfCBBVE9NX0RFVklDRV9MQ0Rf U1VQUE9SVCkpIHx8CiAJICAgIChhbWRncHVfZW5jb2Rlcl9nZXRfZHBfYnJpZGdlX2VuY29kZXJf aWQoZW5jb2RlcikgIT0KIAkgICAgIEVOQ09ERVJfSURfVU5LTk9XTikpIHsKIAkJc3RydWN0IGFt ZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CiAJ CWlmIChkaWcpIHsKLQkJCWRpZy0+ZGlnX2VuY29kZXIgPSBkY2VfdjEwXzBfcGlja19kaWdfZW5j b2RlcihlbmNvZGVyKTsKIAkJCWlmIChhbWRncHVfZW5jb2Rlci0+YWN0aXZlX2RldmljZSAmIEFU T01fREVWSUNFX0RGUF9TVVBQT1JUKQotCQkJCWRpZy0+YWZtdCA9IGFkZXYtPm1vZGVfaW5mby5h Zm10W2RpZy0+ZGlnX2VuY29kZXJdOworCQkJCWRpZy0+YWZtdCA9IGFkZXYtPm1vZGVfaW5mby5h Zm10W2FtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWRdOwogCQl9CiAJfQogCkBAIC0zNTkyLDE2ICsz NTk3LDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9lbmNvZGVyX2NvbW1pdChzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCiBzdGF0aWMgdm9pZCBkY2VfdjEwXzBfZW5jb2Rlcl9kaXNhYmxl KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIg KmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5jb2Rlcik7Ci0Jc3RydWN0IGFt ZGdwdV9lbmNvZGVyX2F0b21fZGlnICpkaWc7CiAKIAlhbWRncHVfYXRvbWJpb3NfZW5jb2Rlcl9k cG1zKGVuY29kZXIsIERSTV9NT0RFX0RQTVNfT0ZGKTsKIAogCWlmIChhbWRncHVfYXRvbWJpb3Nf ZW5jb2Rlcl9pc19kaWdpdGFsKGVuY29kZXIpKSB7CiAJCWlmIChhbWRncHVfYXRvbWJpb3NfZW5j b2Rlcl9nZXRfZW5jb2Rlcl9tb2RlKGVuY29kZXIpID09IEFUT01fRU5DT0RFUl9NT0RFX0hETUkp CiAJCQlkY2VfdjEwXzBfYWZtdF9lbmFibGUoZW5jb2RlciwgZmFsc2UpOwotCQlkaWcgPSBhbWRn cHVfZW5jb2Rlci0+ZW5jX3ByaXY7Ci0JCWRpZy0+ZGlnX2VuY29kZXIgPSAtMTsKIAl9CisJYW1k Z3B1X2VuY29kZXItPmVuZ2luZV9pZCA9IEVOR0lORV9JRF9VTktOT1dOOwogCWFtZGdwdV9lbmNv ZGVyLT5hY3RpdmVfZGV2aWNlID0gMDsKIH0KIApAQCAtMzcyNyw2ICszNzMwLDcgQEAgc3RhdGlj IHZvaWQgZGNlX3YxMF8wX2VuY29kZXJfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CWFtZGdwdV9lbmNvZGVyLT51bmRlcnNjYW5fdHlwZSA9IFVOREVSU0NBTl9PRkY7CiAJYW1kZ3B1 X2VuY29kZXItPmlzX2V4dF9lbmNvZGVyID0gZmFsc2U7CiAJYW1kZ3B1X2VuY29kZXItPmNhcHMg PSBjYXBzOworCWFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQgPSBFTkdJTkVfSURfVU5LTk9XTjsK IAogCXN3aXRjaCAoZW5jb2Rlcl9vYmplY3RfaWQuaWQpIHsKIAljYXNlIEVOQ09ERVJfSURfSU5U RVJOQUxfS0xEU0NQX0RBQzE6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjExXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCmlu ZGV4IGEyMzE2NzkuLjIwZGI3YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTFfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFf MC5jCkBAIC0yMzExLDcgKzIzMTEsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfY3J0Y19sb2Fk X2x1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJV1JFRzMyKG1tQUxQSEFfQ09OVFJPTCArIGFt ZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgdG1wKTsKIH0KIAotc3RhdGljIGludCBkY2VfdjExXzBf cGlja19kaWdfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgZW51 bSBlbmdpbmVfaWQgZGNlX3YxMV8wX3BpY2tfZW5naW5lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlcikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1k Z3B1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnICpk aWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7CkBAIC0yMzIwLDI1ICsyMzIwLDI5IEBAIHN0 YXRpYyBpbnQgZGNlX3YxMV8wX3BpY2tfZGlnX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogCXN3aXRjaCAoZW5jX2lkKSB7CiAJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VO SVBIWToKIAkJaWYgKGRpZy0+bGlua2IpCi0JCQlyZXR1cm4gMTsKKwkJCXJldHVybiBFTkdJTkVf SURfRElHQjsKIAkJZWxzZQotCQkJcmV0dXJuIDA7CisJCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0E7 CiAJCWJyZWFrOwogCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFkxOgogCQlpZiAoZGln LT5saW5rYikKLQkJCXJldHVybiAzOworCQkJcmV0dXJuIEVOR0lORV9JRF9ESUdEOwogCQllbHNl Ci0JCQlyZXR1cm4gMjsKKwkJCXJldHVybiBFTkdJTkVfSURfRElHQzsKIAkJYnJlYWs7CiAJY2Fz ZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VOSVBIWTI6CiAJCWlmIChkaWctPmxpbmtiKQotCQkJcmV0 dXJuIDU7CisJCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0Y7CiAJCWVsc2UKLQkJCXJldHVybiA0Owor CQkJcmV0dXJuIEVOR0lORV9JRF9ESUdFOwogCQlicmVhazsKIAljYXNlIEVOQ09ERVJfSURfSU5U RVJOQUxfVU5JUEhZMzoKLQkJcmV0dXJuIDY7CisJCXJldHVybiBFTkdJTkVfSURfRElHRzsKIAkJ YnJlYWs7CisJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMxOgorCQlyZXR1cm4g RU5HSU5FX0lEX0RBQ0E7CisJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMyOgor CQlyZXR1cm4gRU5HSU5FX0lEX0RBQ0I7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJpbnZhbGlk IGVuY29kZXJfaWQ6IDB4JXhcbiIsIGFtZGdwdV9lbmNvZGVyLT5lbmNvZGVyX29iamVjdF9pZC5p ZCk7CiAJCXJldHVybiAwOwpAQCAtMzQ4OCwxNSArMzQ5MiwxNiBAQCBzdGF0aWMgdm9pZCBkY2Vf djExXzBfZW5jb2Rlcl9wcmVwYXJlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlzdHJ1 Y3QgYW1kZ3B1X2VuY29kZXIgKmFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoZW5j b2Rlcik7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGFtZGdwdV9nZXRfY29u bmVjdG9yX2Zvcl9lbmNvZGVyKGVuY29kZXIpOwogCisJYW1kZ3B1X2VuY29kZXItPmVuZ2luZV9p ZCA9IGRjZV92MTFfMF9waWNrX2VuZ2luZShlbmNvZGVyKTsKKwogCWlmICgoYW1kZ3B1X2VuY29k ZXItPmFjdGl2ZV9kZXZpY2UgJgogCSAgICAgKEFUT01fREVWSUNFX0RGUF9TVVBQT1JUIHwgQVRP TV9ERVZJQ0VfTENEX1NVUFBPUlQpKSB8fAogCSAgICAoYW1kZ3B1X2VuY29kZXJfZ2V0X2RwX2Jy aWRnZV9lbmNvZGVyX2lkKGVuY29kZXIpICE9CiAJICAgICBFTkNPREVSX0lEX1VOS05PV04pKSB7 CiAJCXN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29kZXIt PmVuY19wcml2OwogCQlpZiAoZGlnKSB7Ci0JCQlkaWctPmRpZ19lbmNvZGVyID0gZGNlX3YxMV8w X3BpY2tfZGlnX2VuY29kZXIoZW5jb2Rlcik7CiAJCQlpZiAoYW1kZ3B1X2VuY29kZXItPmFjdGl2 ZV9kZXZpY2UgJiBBVE9NX0RFVklDRV9ERlBfU1VQUE9SVCkKLQkJCQlkaWctPmFmbXQgPSBhZGV2 LT5tb2RlX2luZm8uYWZtdFtkaWctPmRpZ19lbmNvZGVyXTsKKwkJCQlkaWctPmFmbXQgPSBhZGV2 LT5tb2RlX2luZm8uYWZtdFthbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkXTsKIAkJfQogCX0KIApA QCAtMzUzNCwxNiArMzUzOSwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjExXzBfZW5jb2Rlcl9jb21t aXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGljIHZvaWQgZGNlX3YxMV8wX2Vu Y29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGFt ZGdwdV9lbmNvZGVyICphbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGVuY29kZXIp OwotCXN0cnVjdCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnOwogCiAJYW1kZ3B1X2F0b21i aW9zX2VuY29kZXJfZHBtcyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7CiAKIAlpZiAoYW1k Z3B1X2F0b21iaW9zX2VuY29kZXJfaXNfZGlnaXRhbChlbmNvZGVyKSkgewogCQlpZiAoYW1kZ3B1 X2F0b21iaW9zX2VuY29kZXJfZ2V0X2VuY29kZXJfbW9kZShlbmNvZGVyKSA9PSBBVE9NX0VOQ09E RVJfTU9ERV9IRE1JKQogCQkJZGNlX3YxMV8wX2FmbXRfZW5hYmxlKGVuY29kZXIsIGZhbHNlKTsK LQkJZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19wcml2OwotCQlkaWctPmRpZ19lbmNvZGVyID0g LTE7CiAJfQorCWFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQgPSBFTkdJTkVfSURfVU5LTk9XTjsK IAlhbWRncHVfZW5jb2Rlci0+YWN0aXZlX2RldmljZSA9IDA7CiB9CiAKQEAgLTM2NjksNiArMzY3 Miw3IEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9lbmNvZGVyX2FkZChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKIAlhbWRncHVfZW5jb2Rlci0+dW5kZXJzY2FuX3R5cGUgPSBVTkRFUlNDQU5f T0ZGOwogCWFtZGdwdV9lbmNvZGVyLT5pc19leHRfZW5jb2RlciA9IGZhbHNlOwogCWFtZGdwdV9l bmNvZGVyLT5jYXBzID0gY2FwczsKKwlhbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkID0gRU5HSU5F X0lEX1VOS05PV047CiAKIAlzd2l0Y2ggKGVuY29kZXJfb2JqZWN0X2lkLmlkKSB7CiAJY2FzZSBF TkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMxOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92OF8wLmMKaW5kZXggNmE1M2NkZS4uOWU0OGE3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjhfMC5jCkBAIC0yMjg2LDMzICsyMjg2LDM4IEBAIHN0YXRpYyB2b2lkIGRjZV92OF8w X2NydGNfbG9hZF9sdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCSAgICAgICBBTFBIQV9DT05U Uk9MX19DVVJTT1JfQUxQSEFfQkxORF9FTkFfTUFTSyk7CiB9CiAKLXN0YXRpYyBpbnQgZGNlX3Y4 XzBfcGlja19kaWdfZW5jb2RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMg ZW51bSBlbmdpbmVfaWQgZGNlX3Y4XzBfcGlja19lbmdpbmUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogewogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19h bWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgYW1kZ3B1X2VuY29kZXJfYXRvbV9kaWcg KmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAllbnVtIGVuY29kZXJfaWQgZW5jX2lk ID0gZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2VuY29kZXJfaWQoYW1kZ3B1X2VuY29k ZXItPmVuY29kZXJfb2JqZWN0X2lkKTsKKwogCXN3aXRjaCAoZW5jX2lkKSB7CiAJY2FzZSBFTkNP REVSX0lEX0lOVEVSTkFMX1VOSVBIWToKIAkJaWYgKGRpZy0+bGlua2IpCi0JCQlyZXR1cm4gMTsK KwkJCXJldHVybiBFTkdJTkVfSURfRElHQjsKIAkJZWxzZQotCQkJcmV0dXJuIDA7CisJCQlyZXR1 cm4gRU5HSU5FX0lEX0RJR0E7CiAJCWJyZWFrOwogCWNhc2UgRU5DT0RFUl9JRF9JTlRFUk5BTF9V TklQSFkxOgogCQlpZiAoZGlnLT5saW5rYikKLQkJCXJldHVybiAzOworCQkJcmV0dXJuIEVOR0lO RV9JRF9ESUdEOwogCQllbHNlCi0JCQlyZXR1cm4gMjsKKwkJCXJldHVybiBFTkdJTkVfSURfRElH QzsKIAkJYnJlYWs7CiAJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX1VOSVBIWTI6CiAJCWlmIChk aWctPmxpbmtiKQotCQkJcmV0dXJuIDU7CisJCQlyZXR1cm4gRU5HSU5FX0lEX0RJR0Y7CiAJCWVs c2UKLQkJCXJldHVybiA0OworCQkJcmV0dXJuIEVOR0lORV9JRF9ESUdFOwogCQlicmVhazsKIAlj YXNlIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMzoKLQkJcmV0dXJuIDY7CisJCXJldHVybiBF TkdJTkVfSURfRElHRzsKIAkJYnJlYWs7CisJY2FzZSBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFND UF9EQUMxOgorCQlyZXR1cm4gRU5HSU5FX0lEX0RBQ0E7CisJY2FzZSBFTkNPREVSX0lEX0lOVEVS TkFMX0tMRFNDUF9EQUMyOgorCQlyZXR1cm4gRU5HSU5FX0lEX0RBQ0I7CiAJZGVmYXVsdDoKIAkJ RFJNX0VSUk9SKCJpbnZhbGlkIGVuY29kZXJfaWQ6IDB4JXhcbiIsIGVuY19pZCk7CiAJCXJldHVy biAwOwpAQCAtMzQ3NiwxNSArMzQ4MSwxNiBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9lbmNvZGVy X3ByZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBhbWRncHVfZW5j b2RlciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gYW1kZ3B1X2dldF9jb25uZWN0b3JfZm9yX2Vu Y29kZXIoZW5jb2Rlcik7CiAKKwlhbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkID0gZGNlX3Y4XzBf cGlja19lbmdpbmUoZW5jb2Rlcik7CisKIAlpZiAoKGFtZGdwdV9lbmNvZGVyLT5hY3RpdmVfZGV2 aWNlICYKIAkgICAgIChBVE9NX0RFVklDRV9ERlBfU1VQUE9SVCB8IEFUT01fREVWSUNFX0xDRF9T VVBQT1JUKSkgfHwKIAkgICAgKGFtZGdwdV9lbmNvZGVyX2dldF9kcF9icmlkZ2VfZW5jb2Rlcl9p ZChlbmNvZGVyKSAhPQogCSAgICAgRU5DT0RFUl9JRF9VTktOT1dOKSkgewogCQlzdHJ1Y3QgYW1k Z3B1X2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IGFtZGdwdV9lbmNvZGVyLT5lbmNfcHJpdjsKIAkJ aWYgKGRpZykgewotCQkJZGlnLT5kaWdfZW5jb2RlciA9IGRjZV92OF8wX3BpY2tfZGlnX2VuY29k ZXIoZW5jb2Rlcik7CiAJCQlpZiAoYW1kZ3B1X2VuY29kZXItPmFjdGl2ZV9kZXZpY2UgJiBBVE9N X0RFVklDRV9ERlBfU1VQUE9SVCkKLQkJCQlkaWctPmFmbXQgPSBhZGV2LT5tb2RlX2luZm8uYWZt dFtkaWctPmRpZ19lbmNvZGVyXTsKKwkJCQlkaWctPmFmbXQgPSBhZGV2LT5tb2RlX2luZm8uYWZt dFthbWRncHVfZW5jb2Rlci0+ZW5naW5lX2lkXTsKIAkJfQogCX0KIApAQCAtMzUyMiwxNiArMzUy OCwxNCBAQCBzdGF0aWMgdm9pZCBkY2VfdjhfMF9lbmNvZGVyX2NvbW1pdChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiBzdGF0aWMgdm9pZCBkY2VfdjhfMF9lbmNvZGVyX2Rpc2FibGUoc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1k Z3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKLQlzdHJ1Y3QgYW1kZ3B1 X2VuY29kZXJfYXRvbV9kaWcgKmRpZzsKIAogCWFtZGdwdV9hdG9tYmlvc19lbmNvZGVyX2RwbXMo ZW5jb2RlciwgRFJNX01PREVfRFBNU19PRkYpOwogCiAJaWYgKGFtZGdwdV9hdG9tYmlvc19lbmNv ZGVyX2lzX2RpZ2l0YWwoZW5jb2RlcikpIHsKIAkJaWYgKGFtZGdwdV9hdG9tYmlvc19lbmNvZGVy X2dldF9lbmNvZGVyX21vZGUoZW5jb2RlcikgPT0gQVRPTV9FTkNPREVSX01PREVfSERNSSkKIAkJ CWRjZV92OF8wX2FmbXRfZW5hYmxlKGVuY29kZXIsIGZhbHNlKTsKLQkJZGlnID0gYW1kZ3B1X2Vu Y29kZXItPmVuY19wcml2OwotCQlkaWctPmRpZ19lbmNvZGVyID0gLTE7CiAJfQorCWFtZGdwdV9l bmNvZGVyLT5lbmdpbmVfaWQgPSBFTkdJTkVfSURfVU5LTk9XTjsKIAlhbWRncHVfZW5jb2Rlci0+ YWN0aXZlX2RldmljZSA9IDA7CiB9CiAKQEAgLTM2NTYsNiArMzY2MCw3IEBAIHN0YXRpYyB2b2lk IGRjZV92OF8wX2VuY29kZXJfYWRkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWFtZGdw dV9lbmNvZGVyLT51bmRlcnNjYW5fdHlwZSA9IFVOREVSU0NBTl9PRkY7CiAJYW1kZ3B1X2VuY29k ZXItPmlzX2V4dF9lbmNvZGVyID0gZmFsc2U7CiAJYW1kZ3B1X2VuY29kZXItPmNhcHMgPSBjYXBz OworCWFtZGdwdV9lbmNvZGVyLT5lbmdpbmVfaWQgPSBFTkdJTkVfSURfVU5LTk9XTjsKIAogCXN3 aXRjaCAoZW5jb2Rlcl9vYmplY3RfaWQuaWQpIHsKIAljYXNlIEVOQ09ERVJfSURfSU5URVJOQUxf S0xEU0NQX0RBQzE6Ci0tIAoyLjUuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==