From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 18/18] drm/radeon: make the ib an inline object Date: Fri, 4 May 2012 18:43:59 -0400 Message-ID: <1336171439-7672-19-git-send-email-j.glisse@gmail.com> References: <1336171439-7672-1-git-send-email-j.glisse@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f48.google.com (mail-qa0-f48.google.com [209.85.216.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 24E2D9EB03 for ; Fri, 4 May 2012 15:44:40 -0700 (PDT) Received: by mail-qa0-f48.google.com with SMTP id y23so1751834qad.14 for ; Fri, 04 May 2012 15:44:40 -0700 (PDT) In-Reply-To: <1336171439-7672-1-git-send-email-j.glisse@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: Jerome Glisse , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgoKTm8gbmVlZCB0byBtYWxs b2MgaXQgYW55IG1vcmUuCgpTaWduZWQtb2ZmLWJ5OiBKZXJvbWUgR2xpc3NlIDxqZ2xpc3NlQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGRlYXRoc2ltcGxlQHZv ZGFmb25lLmRlPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2NzLmMgfCAg IDEwICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMgICAgICAgICB8ICAgMzgg KysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjIwMC5jICAgICAg ICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDAuYyAgICAgICAgIHwgICAg NCArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgICAgICAgICB8ICAgMTYgKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9jcy5jICAgICAgfCAgIDIyICsrKysrLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICAgIHwgICAgOCArKy0tCiBk cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jICAgIHwgICA2MSArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Jpbmcu YyAgfCAgIDQxICsrKysrKystLS0tLS0tLS0tLS0tLS0KIDkgZmlsZXMgY2hhbmdlZCwgOTIgaW5z ZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vZXZlcmdyZWVuX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bl9jcy5jCmluZGV4IDcwMDg5ZDMuLjRlN2RkMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vZXZlcmdyZWVuX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVy Z3JlZW5fY3MuYwpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgc3RhdGljIGludCBldmVyZ3JlZW5fY3Nf cGFja2V0X3BhcnNlX3ZsaW5lKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCXVpbnQzMl90 IGhlYWRlciwgaF9pZHgsIHJlZywgd2FpdF9yZWdfbWVtX2luZm87CiAJdm9sYXRpbGUgdWludDMy X3QgKmliOwogCi0JaWIgPSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCiAJLyogcGFy c2UgdGhlIFdBSVRfUkVHX01FTSAqLwogCXIgPSBldmVyZ3JlZW5fY3NfcGFja2V0X3BhcnNlKHAs ICZ3YWl0X3JlZ19tZW0sIHAtPmlkeCk7CkBAIC0xMjE1LDcgKzEyMTUsNyBAQCBzdGF0aWMgaW50 IGV2ZXJncmVlbl9jc19jaGVja19yZWcoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIHUzMiBy ZWcsIHUzMiBpZHgpCiAJCWlmICghKGV2ZXJncmVlbl9yZWdfc2FmZV9ibVtpXSAmIG0pKQogCQkJ cmV0dXJuIDA7CiAJfQotCWliID0gcC0+aWItPnB0cjsKKwlpYiA9IHAtPmliLnB0cjsKIAlzd2l0 Y2ggKHJlZykgewogCS8qIGZvcmNlIGZvbGxvd2luZyByZWcgdG8gMCBpbiBhbiBhdHRlbXB0IHRv IGRpc2FibGUgb3V0IGJ1ZmZlcgogCSAqIHdoaWNoIHdpbGwgbmVlZCB1cyB0byBiZXR0ZXIgdW5k ZXJzdGFuZCBob3cgaXQgd29ya3MgdG8gcGVyZm9ybQpAQCAtMTg5Niw3ICsxODk2LDcgQEAgc3Rh dGljIGludCBldmVyZ3JlZW5fcGFja2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAq cCwKIAl1MzIgaWR4X3ZhbHVlOwogCiAJdHJhY2sgPSAoc3RydWN0IGV2ZXJncmVlbl9jc190cmFj ayAqKXAtPnRyYWNrOwotCWliID0gcC0+aWItPnB0cjsKKwlpYiA9IHAtPmliLnB0cjsKIAlpZHgg PSBwa3QtPmlkeCArIDE7CiAJaWR4X3ZhbHVlID0gcmFkZW9uX2dldF9pYl92YWx1ZShwLCBpZHgp OwogCkBAIC0yNjEwLDggKzI2MTAsOCBAQCBpbnQgZXZlcmdyZWVuX2NzX3BhcnNlKHN0cnVjdCBy YWRlb25fY3NfcGFyc2VyICpwKQogCQl9CiAJfSB3aGlsZSAocC0+aWR4IDwgcC0+Y2h1bmtzW3At PmNodW5rX2liX2lkeF0ubGVuZ3RoX2R3KTsKICNpZiAwCi0JZm9yIChyID0gMDsgciA8IHAtPmli LT5sZW5ndGhfZHc7IHIrKykgewotCQlwcmludGsoS0VSTl9JTkZPICIlMDVkICAweCUwOFhcbiIs IHIsIHAtPmliLT5wdHJbcl0pOworCWZvciAociA9IDA7IHIgPCBwLT5pYi5sZW5ndGhfZHc7IHIr KykgeworCQlwcmludGsoS0VSTl9JTkZPICIlMDVkICAweCUwOFhcbiIsIHIsIHAtPmliLnB0clty XSk7CiAJCW1kZWxheSgxKTsKIAl9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggZWUw MTAzYy4uYThlMDBlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKQEAgLTEzOSw5ICsxMzksOSBAQCBp bnQgcjEwMF9yZWxvY19waXRjaF9vZmZzZXQoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJ CX0KIAogCQl0bXAgfD0gdGlsZV9mbGFnczsKLQkJcC0+aWItPnB0cltpZHhdID0gKHZhbHVlICYg MHgzZmMwMDAwMCkgfCB0bXA7CisJCXAtPmliLnB0cltpZHhdID0gKHZhbHVlICYgMHgzZmMwMDAw MCkgfCB0bXA7CiAJfSBlbHNlCi0JCXAtPmliLT5wdHJbaWR4XSA9ICh2YWx1ZSAmIDB4ZmZjMDAw MDApIHwgdG1wOworCQlwLT5pYi5wdHJbaWR4XSA9ICh2YWx1ZSAmIDB4ZmZjMDAwMDApIHwgdG1w OwogCXJldHVybiAwOwogfQogCkBAIC0xNTYsNyArMTU2LDcgQEAgaW50IHIxMDBfcGFja2V0M19s b2FkX3ZicG50cihzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAl2b2xhdGlsZSB1aW50MzJf dCAqaWI7CiAJdTMyIGlkeF92YWx1ZTsKIAotCWliID0gcC0+aWItPnB0cjsKKwlpYiA9IHAtPmli LnB0cjsKIAl0cmFjayA9IChzdHJ1Y3QgcjEwMF9jc190cmFjayAqKXAtPnRyYWNrOwogCWMgPSBy YWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsrKSAmIDB4MUY7CiAJaWYgKGMgPiAxNikgewpAQCAt MTI3MSw3ICsxMjcxLDcgQEAgdm9pZCByMTAwX2NzX2R1bXBfcGFja2V0KHN0cnVjdCByYWRlb25f Y3NfcGFyc2VyICpwLAogCXVuc2lnbmVkIGk7CiAJdW5zaWduZWQgaWR4OwogCi0JaWIgPSBwLT5p Yi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCWlkeCA9IHBrdC0+aWR4OwogCWZvciAoaSA9IDA7 IGkgPD0gKHBrdC0+Y291bnQgKyAxKTsgaSsrLCBpZHgrKykgewogCQlEUk1fSU5GTygiaWJbJWRd PTB4JTA4WFxuIiwgaWR4LCBpYltpZHhdKTsKQEAgLTEzNTAsNyArMTM1MCw3IEBAIGludCByMTAw X2NzX3BhY2tldF9wYXJzZV92bGluZShzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAl1aW50 MzJfdCBoZWFkZXIsIGhfaWR4LCByZWc7CiAJdm9sYXRpbGUgdWludDMyX3QgKmliOwogCi0JaWIg PSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCiAJLyogcGFyc2UgdGhlIHdhaXQgdW50 aWwgKi8KIAlyID0gcjEwMF9jc19wYWNrZXRfcGFyc2UocCwgJndhaXRyZWxvYywgcC0+aWR4KTsK QEAgLTE1MjksNyArMTUyOSw3IEBAIHN0YXRpYyBpbnQgcjEwMF9wYWNrZXQwX2NoZWNrKHN0cnVj dCByYWRlb25fY3NfcGFyc2VyICpwLAogCXUzMiB0aWxlX2ZsYWdzID0gMDsKIAl1MzIgaWR4X3Zh bHVlOwogCi0JaWIgPSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCXRyYWNrID0gKHN0 cnVjdCByMTAwX2NzX3RyYWNrICopcC0+dHJhY2s7CiAKIAlpZHhfdmFsdWUgPSByYWRlb25fZ2V0 X2liX3ZhbHVlKHAsIGlkeCk7CkBAIC0xODg1LDcgKzE4ODUsNyBAQCBzdGF0aWMgaW50IHIxMDBf cGFja2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAl2b2xhdGlsZSB1aW50 MzJfdCAqaWI7CiAJaW50IHI7CiAKLQlpYiA9IHAtPmliLT5wdHI7CisJaWIgPSBwLT5pYi5wdHI7 CiAJaWR4ID0gcGt0LT5pZHggKyAxOwogCXRyYWNrID0gKHN0cnVjdCByMTAwX2NzX3RyYWNrICop cC0+dHJhY2s7CiAJc3dpdGNoIChwa3QtPm9wY29kZSkgewpAQCAtMzY4MCw3ICszNjgwLDcgQEAg dm9pZCByMTAwX3JpbmdfaWJfZXhlY3V0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHJhZGVvbl9pYiAqaWIpCiAKIGludCByMTAwX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIHsKLQlzdHJ1Y3QgcmFkZW9uX2li ICppYjsKKwlzdHJ1Y3QgcmFkZW9uX2liIGliOwogCXVpbnQzMl90IHNjcmF0Y2g7CiAJdWludDMy X3QgdG1wID0gMDsKIAl1bnNpZ25lZCBpOwpAQCAtMzY5NiwyMiArMzY5NiwyMiBAQCBpbnQgcjEw MF9pYl90ZXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3Jpbmcg KnJpbmcpCiAJaWYgKHIpIHsKIAkJcmV0dXJuIHI7CiAJfQotCWliLT5wdHJbMF0gPSBQQUNLRVQw KHNjcmF0Y2gsIDApOwotCWliLT5wdHJbMV0gPSAweERFQURCRUVGOwotCWliLT5wdHJbMl0gPSBQ QUNLRVQyKDApOwotCWliLT5wdHJbM10gPSBQQUNLRVQyKDApOwotCWliLT5wdHJbNF0gPSBQQUNL RVQyKDApOwotCWliLT5wdHJbNV0gPSBQQUNLRVQyKDApOwotCWliLT5wdHJbNl0gPSBQQUNLRVQy KDApOwotCWliLT5wdHJbN10gPSBQQUNLRVQyKDApOwotCWliLT5sZW5ndGhfZHcgPSA4OwotCXIg PSByYWRlb25faWJfc2NoZWR1bGUocmRldiwgaWIpOworCWliLnB0clswXSA9IFBBQ0tFVDAoc2Ny YXRjaCwgMCk7CisJaWIucHRyWzFdID0gMHhERUFEQkVFRjsKKwlpYi5wdHJbMl0gPSBQQUNLRVQy KDApOworCWliLnB0clszXSA9IFBBQ0tFVDIoMCk7CisJaWIucHRyWzRdID0gUEFDS0VUMigwKTsK KwlpYi5wdHJbNV0gPSBQQUNLRVQyKDApOworCWliLnB0cls2XSA9IFBBQ0tFVDIoMCk7CisJaWIu cHRyWzddID0gUEFDS0VUMigwKTsKKwlpYi5sZW5ndGhfZHcgPSA4OworCXIgPSByYWRlb25faWJf c2NoZWR1bGUocmRldiwgJmliKTsKIAlpZiAocikgewogCQlyYWRlb25fc2NyYXRjaF9mcmVlKHJk ZXYsIHNjcmF0Y2gpOwogCQlyYWRlb25faWJfZnJlZShyZGV2LCAmaWIpOwogCQlyZXR1cm4gcjsK IAl9Ci0JciA9IHJhZGVvbl9mZW5jZV93YWl0KGliLT5mZW5jZSwgZmFsc2UpOworCXIgPSByYWRl b25fZmVuY2Vfd2FpdChpYi5mZW5jZSwgZmFsc2UpOwogCWlmIChyKSB7CiAJCXJldHVybiByOwog CX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjIwMC5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMjAwLmMKaW5kZXggYTU5Y2M0Ny4uYTI2MTQ0ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yMjAwLmMKQEAgLTE1NCw3ICsxNTQsNyBAQCBpbnQgcjIwMF9wYWNrZXQwX2NoZWNrKHN0cnVj dCByYWRlb25fY3NfcGFyc2VyICpwLAogCXUzMiB0aWxlX2ZsYWdzID0gMDsKIAl1MzIgaWR4X3Zh bHVlOwogCi0JaWIgPSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCXRyYWNrID0gKHN0 cnVjdCByMTAwX2NzX3RyYWNrICopcC0+dHJhY2s7CiAJaWR4X3ZhbHVlID0gcmFkZW9uX2dldF9p Yl92YWx1ZShwLCBpZHgpOwogCXN3aXRjaCAocmVnKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3IzMDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMC5jCmluZGV4 IDY0MTlhNTkuLjk3NzIyYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMw MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMC5jCkBAIC02MDQsNyArNjA0LDcg QEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIg KnAsCiAJaW50IHI7CiAJdTMyIGlkeF92YWx1ZTsKIAotCWliID0gcC0+aWItPnB0cjsKKwlpYiA9 IHAtPmliLnB0cjsKIAl0cmFjayA9IChzdHJ1Y3QgcjEwMF9jc190cmFjayAqKXAtPnRyYWNrOwog CWlkeF92YWx1ZSA9IHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KTsKIApAQCAtMTE0Niw3ICsx MTQ2LDcgQEAgc3RhdGljIGludCByMzAwX3BhY2tldDNfY2hlY2soc3RydWN0IHJhZGVvbl9jc19w YXJzZXIgKnAsCiAJdW5zaWduZWQgaWR4OwogCWludCByOwogCi0JaWIgPSBwLT5pYi0+cHRyOwor CWliID0gcC0+aWIucHRyOwogCWlkeCA9IHBrdC0+aWR4ICsgMTsKIAl0cmFjayA9IChzdHJ1Y3Qg cjEwMF9jc190cmFjayAqKXAtPnRyYWNrOwogCXN3aXRjaChwa3QtPm9wY29kZSkgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3I2MDAuYwppbmRleCBkOTYzZmQ4Li41OTE2ZDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3I2MDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwpA QCAtMjY4MSw3ICsyNjgxLDcgQEAgdm9pZCByNjAwX3JpbmdfaWJfZXhlY3V0ZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9pYiAqaWIpCiAKIGludCByNjAwX2liX3Rl c3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykK IHsKLQlzdHJ1Y3QgcmFkZW9uX2liICppYjsKKwlzdHJ1Y3QgcmFkZW9uX2liIGliOwogCXVpbnQz Ml90IHNjcmF0Y2g7CiAJdWludDMyX3QgdG1wID0gMDsKIAl1bnNpZ25lZCBpOwpAQCAtMjY5OSwx OCArMjY5OSwxOCBAQCBpbnQgcjYwMF9pYl90ZXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJCURSTV9FUlJPUigicmFkZW9uOiBmYWlsZWQg dG8gZ2V0IGliICglZCkuXG4iLCByKTsKIAkJcmV0dXJuIHI7CiAJfQotCWliLT5wdHJbMF0gPSBQ QUNLRVQzKFBBQ0tFVDNfU0VUX0NPTkZJR19SRUcsIDEpOwotCWliLT5wdHJbMV0gPSAoKHNjcmF0 Y2ggLSBQQUNLRVQzX1NFVF9DT05GSUdfUkVHX09GRlNFVCkgPj4gMik7Ci0JaWItPnB0clsyXSA9 IDB4REVBREJFRUY7Ci0JaWItPmxlbmd0aF9kdyA9IDM7Ci0JciA9IHJhZGVvbl9pYl9zY2hlZHVs ZShyZGV2LCBpYik7CisJaWIucHRyWzBdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9DT05GSUdfUkVH LCAxKTsKKwlpYi5wdHJbMV0gPSAoKHNjcmF0Y2ggLSBQQUNLRVQzX1NFVF9DT05GSUdfUkVHX09G RlNFVCkgPj4gMik7CisJaWIucHRyWzJdID0gMHhERUFEQkVFRjsKKwlpYi5sZW5ndGhfZHcgPSAz OworCXIgPSByYWRlb25faWJfc2NoZWR1bGUocmRldiwgJmliKTsKIAlpZiAocikgewogCQlyYWRl b25fc2NyYXRjaF9mcmVlKHJkZXYsIHNjcmF0Y2gpOwogCQlyYWRlb25faWJfZnJlZShyZGV2LCAm aWIpOwogCQlEUk1fRVJST1IoInJhZGVvbjogZmFpbGVkIHRvIHNjaGVkdWxlIGliICglZCkuXG4i LCByKTsKIAkJcmV0dXJuIHI7CiAJfQotCXIgPSByYWRlb25fZmVuY2Vfd2FpdChpYi0+ZmVuY2Us IGZhbHNlKTsKKwlyID0gcmFkZW9uX2ZlbmNlX3dhaXQoaWIuZmVuY2UsIGZhbHNlKTsKIAlpZiAo cikgewogCQlEUk1fRVJST1IoInJhZGVvbjogZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5cbiIsIHIp OwogCQlyZXR1cm4gcjsKQEAgLTI3MjIsNyArMjcyMiw3IEBAIGludCByNjAwX2liX3Rlc3Qoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25fcmluZyAqcmluZykKIAkJRFJN X1VERUxBWSgxKTsKIAl9CiAJaWYgKGkgPCByZGV2LT51c2VjX3RpbWVvdXQpIHsKLQkJRFJNX0lO Rk8oImliIHRlc3Qgb24gcmluZyAlZCBzdWNjZWVkZWQgaW4gJXUgdXNlY3NcbiIsIGliLT5mZW5j ZS0+cmluZywgaSk7CisJCURSTV9JTkZPKCJpYiB0ZXN0IG9uIHJpbmcgJWQgc3VjY2VlZGVkIGlu ICV1IHVzZWNzXG4iLCBpYi5mZW5jZS0+cmluZywgaSk7CiAJfSBlbHNlIHsKIAkJRFJNX0VSUk9S KCJyYWRlb246IGliIHRlc3QgZmFpbGVkIChzY3JhdGNoKDB4JTA0WCk9MHglMDhYKVxuIiwKIAkJ CSAgc2NyYXRjaCwgdG1wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYw MF9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2NzLmMKaW5kZXggYjhlMTJhZi4u MDEzM2Y1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2NzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2NzLmMKQEAgLTM0NSw3ICszNDUsNyBAQCBz dGF0aWMgaW50IHI2MDBfY3NfdHJhY2tfdmFsaWRhdGVfY2Ioc3RydWN0IHJhZGVvbl9jc19wYXJz ZXIgKnAsIGludCBpKQogCXUzMiBoZWlnaHQsIGhlaWdodF9hbGlnbiwgcGl0Y2gsIHBpdGNoX2Fs aWduLCBkZXB0aF9hbGlnbjsKIAl1NjQgYmFzZV9vZmZzZXQsIGJhc2VfYWxpZ247CiAJc3RydWN0 IGFycmF5X21vZGVfY2hlY2tlciBhcnJheV9jaGVjazsKLQl2b2xhdGlsZSB1MzIgKmliID0gcC0+ aWItPnB0cjsKKwl2b2xhdGlsZSB1MzIgKmliID0gcC0+aWIucHRyOwogCXVuc2lnbmVkIGFycmF5 X21vZGU7CiAJdTMyIGZvcm1hdDsKIApAQCAtNDcxLDcgKzQ3MSw3IEBAIHN0YXRpYyBpbnQgcjYw MF9jc190cmFja192YWxpZGF0ZV9kYihzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAl1NjQg YmFzZV9vZmZzZXQsIGJhc2VfYWxpZ247CiAJc3RydWN0IGFycmF5X21vZGVfY2hlY2tlciBhcnJh eV9jaGVjazsKIAlpbnQgYXJyYXlfbW9kZTsKLQl2b2xhdGlsZSB1MzIgKmliID0gcC0+aWItPnB0 cjsKKwl2b2xhdGlsZSB1MzIgKmliID0gcC0+aWIucHRyOwogCiAKIAlpZiAodHJhY2stPmRiX2Jv ID09IE5VTEwpIHsKQEAgLTk2MSw3ICs5NjEsNyBAQCBzdGF0aWMgaW50IHI2MDBfY3NfcGFja2V0 X3BhcnNlX3ZsaW5lKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCXVpbnQzMl90IGhlYWRl ciwgaF9pZHgsIHJlZywgd2FpdF9yZWdfbWVtX2luZm87CiAJdm9sYXRpbGUgdWludDMyX3QgKmli OwogCi0JaWIgPSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCiAJLyogcGFyc2UgdGhl IFdBSVRfUkVHX01FTSAqLwogCXIgPSByNjAwX2NzX3BhY2tldF9wYXJzZShwLCAmd2FpdF9yZWdf bWVtLCBwLT5pZHgpOwpAQCAtMTExMCw3ICsxMTEwLDcgQEAgc3RhdGljIGludCByNjAwX2NzX2No ZWNrX3JlZyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgdTMyIHJlZywgdTMyIGlkeCkKIAlt ID0gMSA8PCAoKHJlZyA+PiAyKSAmIDMxKTsKIAlpZiAoIShyNjAwX3JlZ19zYWZlX2JtW2ldICYg bSkpCiAJCXJldHVybiAwOwotCWliID0gcC0+aWItPnB0cjsKKwlpYiA9IHAtPmliLnB0cjsKIAlz d2l0Y2ggKHJlZykgewogCS8qIGZvcmNlIGZvbGxvd2luZyByZWcgdG8gMCBpbiBhbiBhdHRlbXB0 IHRvIGRpc2FibGUgb3V0IGJ1ZmZlcgogCSAqIHdoaWNoIHdpbGwgbmVlZCB1cyB0byBiZXR0ZXIg dW5kZXJzdGFuZCBob3cgaXQgd29ya3MgdG8gcGVyZm9ybQpAQCAtMTcxNCw3ICsxNzE0LDcgQEAg c3RhdGljIGludCByNjAwX3BhY2tldDNfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAs CiAJdTMyIGlkeF92YWx1ZTsKIAogCXRyYWNrID0gKHN0cnVjdCByNjAwX2NzX3RyYWNrICopcC0+ dHJhY2s7Ci0JaWIgPSBwLT5pYi0+cHRyOworCWliID0gcC0+aWIucHRyOwogCWlkeCA9IHBrdC0+ aWR4ICsgMTsKIAlpZHhfdmFsdWUgPSByYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCk7CiAKQEAg LTIyNDksOCArMjI0OSw4IEBAIGludCByNjAwX2NzX3BhcnNlKHN0cnVjdCByYWRlb25fY3NfcGFy c2VyICpwKQogCQl9CiAJfSB3aGlsZSAocC0+aWR4IDwgcC0+Y2h1bmtzW3AtPmNodW5rX2liX2lk eF0ubGVuZ3RoX2R3KTsKICNpZiAwCi0JZm9yIChyID0gMDsgciA8IHAtPmliLT5sZW5ndGhfZHc7 IHIrKykgewotCQlwcmludGsoS0VSTl9JTkZPICIlMDVkICAweCUwOFhcbiIsIHIsIHAtPmliLT5w dHJbcl0pOworCWZvciAociA9IDA7IHIgPCBwLT5pYi5sZW5ndGhfZHc7IHIrKykgeworCQlwcmlu dGsoS0VSTl9JTkZPICIlMDVkICAweCUwOFhcbiIsIHIsIHAtPmliLnB0cltyXSk7CiAJCW1kZWxh eSgxKTsKIAl9CiAjZW5kaWYKQEAgLTIyOTgsNyArMjI5OCw2IEBAIGludCByNjAwX2NzX2xlZ2Fj eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bHAsCiB7CiAJc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgcGFyc2VyOwogCXN0cnVjdCByYWRlb25f Y3NfY2h1bmsgKmliX2NodW5rOwotCXN0cnVjdCByYWRlb25faWIgZmFrZV9pYjsKIAlzdHJ1Y3Qg cjYwMF9jc190cmFjayAqdHJhY2s7CiAJaW50IHI7CiAKQEAgLTIzMTQsOSArMjMxMyw4IEBAIGlu dCByNjAwX2NzX2xlZ2FjeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbHAsCiAJcGFyc2VyLmRldiA9ICZkZXYtPnBkZXYtPmRldjsKIAlwYXJz ZXIucmRldiA9IE5VTEw7CiAJcGFyc2VyLmZhbWlseSA9IGZhbWlseTsKLQlwYXJzZXIuaWIgPSAm ZmFrZV9pYjsKIAlwYXJzZXIudHJhY2sgPSB0cmFjazsKLQlmYWtlX2liLnB0ciA9IGliOworCXBh cnNlci5pYi5wdHIgPSBpYjsKIAlyID0gcmFkZW9uX2NzX3BhcnNlcl9pbml0KCZwYXJzZXIsIGRh dGEpOwogCWlmIChyKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgcGFyc2Vy ICFcbiIpOwpAQCAtMjMzMyw4ICsyMzMxLDggQEAgaW50IHI2MDBfY3NfbGVnYWN5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKIAkgKiBp bnB1dCBtZW1vcnkgKGNhY2hlZCkgYW5kIHdyaXRlIHRvIHRoZSBJQiAod2hpY2ggY2FuIGJlCiAJ ICogdW5jYWNoZWQpLiAqLwogCWliX2NodW5rID0gJnBhcnNlci5jaHVua3NbcGFyc2VyLmNodW5r X2liX2lkeF07Ci0JcGFyc2VyLmliLT5sZW5ndGhfZHcgPSBpYl9jaHVuay0+bGVuZ3RoX2R3Owot CSpsID0gcGFyc2VyLmliLT5sZW5ndGhfZHc7CisJcGFyc2VyLmliLmxlbmd0aF9kdyA9IGliX2No dW5rLT5sZW5ndGhfZHc7CisJKmwgPSBwYXJzZXIuaWIubGVuZ3RoX2R3OwogCXIgPSByNjAwX2Nz X3BhcnNlKCZwYXJzZXIpOwogCWlmIChyKSB7CiAJCURSTV9FUlJPUigiSW52YWxpZCBjb21tYW5k IHN0cmVhbSAhXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCmluZGV4IGM0M2M4NTYuLjlmMjlk NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaApAQCAtNzYwLDggKzc2MCw4IEBAIHN0cnVjdCBz aV9ybGMgewogfTsKIAogaW50IHJhZGVvbl9pYl9nZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIGludCByaW5nLAotCQkgIHN0cnVjdCByYWRlb25faWIgKippYiwgdW5zaWduZWQgc2l6ZSk7 Ci12b2lkIHJhZGVvbl9pYl9mcmVlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3Qg cmFkZW9uX2liICoqaWIpOworCQkgIHN0cnVjdCByYWRlb25faWIgKmliLCB1bnNpZ25lZCBzaXpl KTsKK3ZvaWQgcmFkZW9uX2liX2ZyZWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25faWIgKmliKTsKIGludCByYWRlb25faWJfc2NoZWR1bGUoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKmliKTsKIGludCByYWRlb25faWJfcG9vbF9p bml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgcmFkZW9uX2liX3Bvb2xfZmlu aShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CkBAIC04MjksOCArODI5LDggQEAgc3RydWN0 IHJhZGVvbl9jc19wYXJzZXIgewogCWludAkJCWNodW5rX3JlbG9jc19pZHg7CiAJaW50CQkJY2h1 bmtfZmxhZ3NfaWR4OwogCWludAkJCWNodW5rX2NvbnN0X2liX2lkeDsKLQlzdHJ1Y3QgcmFkZW9u X2liCSppYjsKLQlzdHJ1Y3QgcmFkZW9uX2liCSpjb25zdF9pYjsKKwlzdHJ1Y3QgcmFkZW9uX2li CWliOworCXN0cnVjdCByYWRlb25faWIJY29uc3RfaWI7CiAJdm9pZAkJCSp0cmFjazsKIAl1bnNp Z25lZAkJZmFtaWx5OwogCWludAkJCXBhcnNlcl9lcnJvcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9jcy5jCmluZGV4IDdkYmY2MzIuLmI5ZDlhOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Y3MuYwpAQCAtMTM4LDEyICsxMzgsMTIgQEAgc3RhdGljIGludCByYWRlb25fY3Nfc3luY19yaW5n cyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAkJcmV0dXJuIDA7CiAJfQogCi0JciA9IHJh ZGVvbl9zZW1hcGhvcmVfY3JlYXRlKHAtPnJkZXYsICZwLT5pYi0+c2VtYXBob3JlKTsKKwlyID0g cmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUocC0+cmRldiwgJnAtPmliLnNlbWFwaG9yZSk7CiAJaWYg KHIpIHsKIAkJcmV0dXJuIHI7CiAJfQogCi0JcmV0dXJuIHJhZGVvbl9zZW1hcGhvcmVfc3luY19y aW5ncyhwLT5yZGV2LCBwLT5pYi0+c2VtYXBob3JlLAorCXJldHVybiByYWRlb25fc2VtYXBob3Jl X3N5bmNfcmluZ3MocC0+cmRldiwgcC0+aWIuc2VtYXBob3JlLAogCQkJCQkgICBzeW5jX3RvX3Jp bmcsIHAtPnJpbmcpOwogfQogCkBAIC0xNjEsOCArMTYxLDEwIEBAIGludCByYWRlb25fY3NfcGFy c2VyX2luaXQoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIHZvaWQgKmRhdGEpCiAJLyogZ2V0 IGNodW5rcyAqLwogCUlOSVRfTElTVF9IRUFEKCZwLT52YWxpZGF0ZWQpOwogCXAtPmlkeCA9IDA7 Ci0JcC0+aWIgPSBOVUxMOwotCXAtPmNvbnN0X2liID0gTlVMTDsKKwlwLT5pYi5zYV9ibyA9IE5V TEw7CisJcC0+aWIuc2VtYXBob3JlID0gTlVMTDsKKwlwLT5jb25zdF9pYi5zYV9ibyA9IE5VTEw7 CisJcC0+Y29uc3RfaWIuc2VtYXBob3JlID0gTlVMTDsKIAlwLT5jaHVua19pYl9pZHggPSAtMTsK IAlwLT5jaHVua19yZWxvY3NfaWR4ID0gLTE7CiAJcC0+Y2h1bmtfZmxhZ3NfaWR4ID0gLTE7CkBA IC0yOTYsMTAgKzI5OCw5IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9jc19wYXJzZXJfZmluaShzdHJ1 Y3QgcmFkZW9uX2NzX3BhcnNlciAqcGFyc2VyLCBpbnQgZXJyb3IpCiB7CiAJdW5zaWduZWQgaTsK IAotCi0JaWYgKCFlcnJvciAmJiBwYXJzZXItPmliKQorCWlmICghZXJyb3IpCiAJCXR0bV9ldV9m ZW5jZV9idWZmZXJfb2JqZWN0cygmcGFyc2VyLT52YWxpZGF0ZWQsCi0JCQkJCSAgICBwYXJzZXIt PmliLT5mZW5jZSk7CisJCQkJCSAgICBwYXJzZXItPmliLmZlbmNlKTsKIAllbHNlCiAJCXR0bV9l dV9iYWNrb2ZmX3Jlc2VydmF0aW9uKCZwYXJzZXItPnZhbGlkYXRlZCk7CiAKQEAgLTMyMCw5ICsz MjEsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fY3NfcGFyc2VyX2Zpbmkoc3RydWN0IHJhZGVvbl9j c19wYXJzZXIgKnBhcnNlciwgaW50IGVycm9yKQogCWtmcmVlKHBhcnNlci0+Y2h1bmtzKTsKIAlr ZnJlZShwYXJzZXItPmNodW5rc19hcnJheSk7CiAJcmFkZW9uX2liX2ZyZWUocGFyc2VyLT5yZGV2 LCAmcGFyc2VyLT5pYik7Ci0JaWYgKHBhcnNlci0+Y29uc3RfaWIpIHsKLQkJcmFkZW9uX2liX2Zy ZWUocGFyc2VyLT5yZGV2LCAmcGFyc2VyLT5jb25zdF9pYik7Ci0JfQorCXJhZGVvbl9pYl9mcmVl KHBhcnNlci0+cmRldiwgJnBhcnNlci0+Y29uc3RfaWIpOwogfQogCiBzdGF0aWMgaW50IHJhZGVv bl9jc19pYl9jaHVuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKQEAgLTM0OCw3ICszNDcs NyBAQCBzdGF0aWMgaW50IHJhZGVvbl9jc19pYl9jaHVuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGliICFcbiIpOwogCQlyZXR1cm4gcjsK IAl9Ci0JcGFyc2VyLT5pYi0+bGVuZ3RoX2R3ID0gaWJfY2h1bmstPmxlbmd0aF9kdzsKKwlwYXJz ZXItPmliLmxlbmd0aF9kdyA9IGliX2NodW5rLT5sZW5ndGhfZHc7CiAJciA9IHJhZGVvbl9jc19w YXJzZShyZGV2LCBwYXJzZXItPnJpbmcsIHBhcnNlcik7CiAJaWYgKHIgfHwgcGFyc2VyLT5wYXJz ZXJfZXJyb3IpIHsKIAkJRFJNX0VSUk9SKCJJbnZhbGlkIGNvbW1hbmQgc3RyZWFtICFcbiIpOwpA QCAtMzYzLDggKzM2Miw4IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NzX2liX2NodW5rKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAogCWlmIChyKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHN5 bmNocm9uaXplIHJpbmdzICFcbiIpOwogCX0KLQlwYXJzZXItPmliLT52bV9pZCA9IDA7Ci0JciA9 IHJhZGVvbl9pYl9zY2hlZHVsZShyZGV2LCBwYXJzZXItPmliKTsKKwlwYXJzZXItPmliLnZtX2lk ID0gMDsKKwlyID0gcmFkZW9uX2liX3NjaGVkdWxlKHJkZXYsICZwYXJzZXItPmliKTsKIAlpZiAo cikgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBzY2hlZHVsZSBJQiAhXG4iKTsKIAl9CkBAIC00 MTUsMTQgKzQxNCwxNCBAQCBzdGF0aWMgaW50IHJhZGVvbl9jc19pYl92bV9jaHVuayhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBjb25zdCBp YiAhXG4iKTsKIAkJCXJldHVybiByOwogCQl9Ci0JCXBhcnNlci0+Y29uc3RfaWItPmlzX2NvbnN0 X2liID0gdHJ1ZTsKLQkJcGFyc2VyLT5jb25zdF9pYi0+bGVuZ3RoX2R3ID0gaWJfY2h1bmstPmxl bmd0aF9kdzsKKwkJcGFyc2VyLT5jb25zdF9pYi5pc19jb25zdF9pYiA9IHRydWU7CisJCXBhcnNl ci0+Y29uc3RfaWIubGVuZ3RoX2R3ID0gaWJfY2h1bmstPmxlbmd0aF9kdzsKIAkJLyogQ29weSB0 aGUgcGFja2V0IGludG8gdGhlIElCICovCi0JCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIocGFyc2Vy LT5jb25zdF9pYi0+cHRyLCBpYl9jaHVuay0+dXNlcl9wdHIsCisJCWlmIChEUk1fQ09QWV9GUk9N X1VTRVIocGFyc2VyLT5jb25zdF9pYi5wdHIsIGliX2NodW5rLT51c2VyX3B0ciwKIAkJCQkgICAg ICAgaWJfY2h1bmstPmxlbmd0aF9kdyAqIDQpKSB7CiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQot CQlyID0gcmFkZW9uX3JpbmdfaWJfcGFyc2UocmRldiwgcGFyc2VyLT5yaW5nLCBwYXJzZXItPmNv bnN0X2liKTsKKwkJciA9IHJhZGVvbl9yaW5nX2liX3BhcnNlKHJkZXYsIHBhcnNlci0+cmluZywg JnBhcnNlci0+Y29uc3RfaWIpOwogCQlpZiAocikgewogCQkJcmV0dXJuIHI7CiAJCX0KQEAgLTQz OSwxMyArNDM4LDEzIEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NzX2liX3ZtX2NodW5rKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgaWIgIVxuIik7 CiAJCXJldHVybiByOwogCX0KLQlwYXJzZXItPmliLT5sZW5ndGhfZHcgPSBpYl9jaHVuay0+bGVu Z3RoX2R3OworCXBhcnNlci0+aWIubGVuZ3RoX2R3ID0gaWJfY2h1bmstPmxlbmd0aF9kdzsKIAkv KiBDb3B5IHRoZSBwYWNrZXQgaW50byB0aGUgSUIgKi8KLQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VS KHBhcnNlci0+aWItPnB0ciwgaWJfY2h1bmstPnVzZXJfcHRyLAorCWlmIChEUk1fQ09QWV9GUk9N X1VTRVIocGFyc2VyLT5pYi5wdHIsIGliX2NodW5rLT51c2VyX3B0ciwKIAkJCSAgICAgICBpYl9j aHVuay0+bGVuZ3RoX2R3ICogNCkpIHsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQotCXIgPSByYWRl b25fcmluZ19pYl9wYXJzZShyZGV2LCBwYXJzZXItPnJpbmcsIHBhcnNlci0+aWIpOworCXIgPSBy YWRlb25fcmluZ19pYl9wYXJzZShyZGV2LCBwYXJzZXItPnJpbmcsICZwYXJzZXItPmliKTsKIAlp ZiAocikgewogCQlyZXR1cm4gcjsKIAl9CkBAIC00NjYsMjkgKzQ2NSwyOSBAQCBzdGF0aWMgaW50 IHJhZGVvbl9jc19pYl92bV9jaHVuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAogCWlm ICgocmRldi0+ZmFtaWx5ID49IENISVBfVEFISVRJKSAmJgogCSAgICAocGFyc2VyLT5jaHVua19j b25zdF9pYl9pZHggIT0gLTEpKSB7Ci0JCXBhcnNlci0+Y29uc3RfaWItPnZtX2lkID0gdm0tPmlk OworCQlwYXJzZXItPmNvbnN0X2liLnZtX2lkID0gdm0tPmlkOwogCQkvKiBpYiBwb29sIGlzIGJp bmQgYXQgMCBpbiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgdG8gZ3B1X2FkZHIgaXMgdGhlCiAJCSAq IG9mZnNldCBpbnNpZGUgdGhlIHBvb2wgYm8KIAkJICovCi0JCXBhcnNlci0+Y29uc3RfaWItPmdw dV9hZGRyID0gcGFyc2VyLT5jb25zdF9pYi0+c2FfYm8tPnNvZmZzZXQ7Ci0JCXIgPSByYWRlb25f aWJfc2NoZWR1bGUocmRldiwgcGFyc2VyLT5jb25zdF9pYik7CisJCXBhcnNlci0+Y29uc3RfaWIu Z3B1X2FkZHIgPSBwYXJzZXItPmNvbnN0X2liLnNhX2JvLT5zb2Zmc2V0OworCQlyID0gcmFkZW9u X2liX3NjaGVkdWxlKHJkZXYsICZwYXJzZXItPmNvbnN0X2liKTsKIAkJaWYgKHIpCiAJCQlnb3Rv IG91dDsKIAl9CiAKLQlwYXJzZXItPmliLT52bV9pZCA9IHZtLT5pZDsKKwlwYXJzZXItPmliLnZt X2lkID0gdm0tPmlkOwogCS8qIGliIHBvb2wgaXMgYmluZCBhdCAwIGluIHZpcnR1YWwgYWRkcmVz cyBzcGFjZSB0byBncHVfYWRkciBpcyB0aGUKIAkgKiBvZmZzZXQgaW5zaWRlIHRoZSBwb29sIGJv CiAJICovCi0JcGFyc2VyLT5pYi0+Z3B1X2FkZHIgPSBwYXJzZXItPmliLT5zYV9iby0+c29mZnNl dDsKLQlwYXJzZXItPmliLT5pc19jb25zdF9pYiA9IGZhbHNlOwotCXIgPSByYWRlb25faWJfc2No ZWR1bGUocmRldiwgcGFyc2VyLT5pYik7CisJcGFyc2VyLT5pYi5ncHVfYWRkciA9IHBhcnNlci0+ aWIuc2FfYm8tPnNvZmZzZXQ7CisJcGFyc2VyLT5pYi5pc19jb25zdF9pYiA9IGZhbHNlOworCXIg PSByYWRlb25faWJfc2NoZWR1bGUocmRldiwgJnBhcnNlci0+aWIpOwogb3V0OgogCWlmICghcikg ewogCQlpZiAodm0tPmZlbmNlKSB7CiAJCQlyYWRlb25fZmVuY2VfdW5yZWYoJnZtLT5mZW5jZSk7 CiAJCX0KLQkJdm0tPmZlbmNlID0gcmFkZW9uX2ZlbmNlX3JlZihwYXJzZXItPmliLT5mZW5jZSk7 CisJCXZtLT5mZW5jZSA9IHJhZGVvbl9mZW5jZV9yZWYocGFyc2VyLT5pYi5mZW5jZSk7CiAJfQog CW11dGV4X3VubG9jaygmZnByaXYtPnZtLm11dGV4KTsKIAlyZXR1cm4gcjsKQEAgLTU2Niw3ICs1 NjUsNyBAQCBpbnQgcmFkZW9uX2NzX2ZpbmlzaF9wYWdlcyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNl ciAqcCkKIAkJCQlzaXplID0gUEFHRV9TSVpFOwogCQl9CiAJCQotCQlpZiAoRFJNX0NPUFlfRlJP TV9VU0VSKHAtPmliLT5wdHIgKyAoaSAqIChQQUdFX1NJWkUvNCkpLAorCQlpZiAoRFJNX0NPUFlf RlJPTV9VU0VSKHAtPmliLnB0ciArIChpICogKFBBR0VfU0laRS80KSksCiAJCQkJICAgICAgIGli Yy0+dXNlcl9wdHIgKyAoaSAqIFBBR0VfU0laRSksCiAJCQkJICAgICAgIHNpemUpKQogCQkJcmV0 dXJuIC1FRkFVTFQ7CkBAIC01ODIsNyArNTgxLDcgQEAgaW50IHJhZGVvbl9jc191cGRhdGVfcGFn ZXMoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIGludCBwZ19pZHgpCiAJaW50IHNpemUgPSBQ QUdFX1NJWkU7CiAKIAlmb3IgKGkgPSBpYmMtPmxhc3RfY29waWVkX3BhZ2UgKyAxOyBpIDwgcGdf aWR4OyBpKyspIHsKLQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihwLT5pYi0+cHRyICsgKGkgKiAo UEFHRV9TSVpFLzQpKSwKKwkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihwLT5pYi5wdHIgKyAoaSAq IChQQUdFX1NJWkUvNCkpLAogCQkJCSAgICAgICBpYmMtPnVzZXJfcHRyICsgKGkgKiBQQUdFX1NJ WkUpLAogCQkJCSAgICAgICBQQUdFX1NJWkUpKSB7CiAJCQlwLT5wYXJzZXJfZXJyb3IgPSAtRUZB VUxUOwpAQCAtNjA2LDcgKzYwNSw3IEBAIGludCByYWRlb25fY3NfdXBkYXRlX3BhZ2VzKHN0cnVj dCByYWRlb25fY3NfcGFyc2VyICpwLCBpbnQgcGdfaWR4KQogCX0KIAogCS8qIGNvcHkgdG8gSUIg aGVyZSAqLwotCW1lbWNweSgodm9pZCAqKShwLT5pYi0+cHRyKyhwZ19pZHgqKFBBR0VfU0laRS80 KSkpLCBpYmMtPmtwYWdlW25ld19wYWdlXSwgc2l6ZSk7CisJbWVtY3B5KCh2b2lkICopKHAtPmli LnB0cisocGdfaWR4KihQQUdFX1NJWkUvNCkpKSwgaWJjLT5rcGFnZVtuZXdfcGFnZV0sIHNpemUp OwogCiAJaWJjLT5sYXN0X2NvcGllZF9wYWdlID0gcGdfaWR4OwogCWliYy0+a3BhZ2VfaWR4W25l d19wYWdlXSA9IHBnX2lkeDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX3JpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3JpbmcuYwppbmRleCBi NDFhYTgyLi5kNjQwZTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9yaW5nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcmluZy5jCkBAIC02 NSw1MSArNjUsMzYgQEAgdTMyIHJhZGVvbl9nZXRfaWJfdmFsdWUoc3RydWN0IHJhZGVvbl9jc19w YXJzZXIgKnAsIGludCBpZHgpCiB9CiAKIGludCByYWRlb25faWJfZ2V0KHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBpbnQgcmluZywKLQkJICBzdHJ1Y3QgcmFkZW9uX2liICoqaWIsIHVuc2ln bmVkIHNpemUpCisJCSAgc3RydWN0IHJhZGVvbl9pYiAqaWIsIHVuc2lnbmVkIHNpemUpCiB7CiAJ aW50IHI7CiAKLQkqaWIgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9uX2liKSwgR0ZQX0tF Uk5FTCk7Ci0JaWYgKCppYiA9PSBOVUxMKSB7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQlyID0g cmFkZW9uX3NhX2JvX25ldyhyZGV2LCAmcmRldi0+cmluZ190bXBfYm8sICYoKmliKS0+c2FfYm8s IHNpemUsIDI1NiwgdHJ1ZSk7CisJciA9IHJhZGVvbl9zYV9ib19uZXcocmRldiwgJnJkZXYtPnJp bmdfdG1wX2JvLCAmaWItPnNhX2JvLCBzaXplLCAyNTYsIHRydWUpOwogCWlmIChyKSB7CiAJCWRl dl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBhIG5ldyBJQiAoJWQpXG4iLCByKTsKLQkJ a2ZyZWUoKmliKTsKLQkJKmliID0gTlVMTDsKIAkJcmV0dXJuIHI7CiAJfQotCXIgPSByYWRlb25f ZmVuY2VfY3JlYXRlKHJkZXYsICYoKmliKS0+ZmVuY2UsIHJpbmcpOworCXIgPSByYWRlb25fZmVu Y2VfY3JlYXRlKHJkZXYsICZpYi0+ZmVuY2UsIHJpbmcpOwogCWlmIChyKSB7CiAJCWRldl9lcnIo cmRldi0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBmZW5jZSBmb3IgbmV3IElCICglZClcbiIsIHIp OwotCQlyYWRlb25fc2FfYm9fZnJlZShyZGV2LCAmKCppYiktPnNhX2JvLCBOVUxMKTsKLQkJa2Zy ZWUoKmliKTsKLQkJKmliID0gTlVMTDsKKwkJcmFkZW9uX3NhX2JvX2ZyZWUocmRldiwgJmliLT5z YV9ibywgTlVMTCk7CiAJCXJldHVybiByOwogCX0KIAotCSgqaWIpLT5wdHIgPSByYWRlb25fc2Ff Ym9fY3B1X2FkZHIoKCppYiktPnNhX2JvKTsKLQkoKmliKS0+Z3B1X2FkZHIgPSByYWRlb25fc2Ff Ym9fZ3B1X2FkZHIoKCppYiktPnNhX2JvKTsKLQkoKmliKS0+dm1faWQgPSAwOwotCSgqaWIpLT5p c19jb25zdF9pYiA9IGZhbHNlOwotCSgqaWIpLT5zZW1hcGhvcmUgPSBOVUxMOworCWliLT5wdHIg PSByYWRlb25fc2FfYm9fY3B1X2FkZHIoaWItPnNhX2JvKTsKKwlpYi0+Z3B1X2FkZHIgPSByYWRl b25fc2FfYm9fZ3B1X2FkZHIoaWItPnNhX2JvKTsKKwlpYi0+dm1faWQgPSAwOworCWliLT5pc19j b25zdF9pYiA9IGZhbHNlOworCWliLT5zZW1hcGhvcmUgPSBOVUxMOwogCiAJcmV0dXJuIDA7CiB9 CiAKLXZvaWQgcmFkZW9uX2liX2ZyZWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25faWIgKippYikKK3ZvaWQgcmFkZW9uX2liX2ZyZWUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsIHN0cnVjdCByYWRlb25faWIgKmliKQogewotCXN0cnVjdCByYWRlb25faWIgKnRt cCA9ICppYjsKLQotCSppYiA9IE5VTEw7Ci0JaWYgKHRtcCA9PSBOVUxMKSB7Ci0JCXJldHVybjsK LQl9Ci0JcmFkZW9uX3NlbWFwaG9yZV9mcmVlKHJkZXYsIHRtcC0+c2VtYXBob3JlLCB0bXAtPmZl bmNlKTsKLQlyYWRlb25fc2FfYm9fZnJlZShyZGV2LCAmdG1wLT5zYV9ibywgdG1wLT5mZW5jZSk7 Ci0JcmFkZW9uX2ZlbmNlX3VucmVmKCZ0bXAtPmZlbmNlKTsKLQlrZnJlZSh0bXApOworCXJhZGVv bl9zZW1hcGhvcmVfZnJlZShyZGV2LCBpYi0+c2VtYXBob3JlLCBpYi0+ZmVuY2UpOworCXJhZGVv bl9zYV9ib19mcmVlKHJkZXYsICZpYi0+c2FfYm8sIGliLT5mZW5jZSk7CisJcmFkZW9uX2ZlbmNl X3VucmVmKCZpYi0+ZmVuY2UpOwogfQogCiBpbnQgcmFkZW9uX2liX3NjaGVkdWxlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX2liICppYikKLS0gCjEuNy43LjYKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==