From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 3/3] drm/ttm: remove pointers to globals Date: Wed, 25 Sep 2019 12:55:30 +0200 Message-ID: <20190925105530.2261-3-christian.koenig@amd.com> References: <20190925105530.2261-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 34A3E6E073 for ; Wed, 25 Sep 2019 10:55:36 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id p7so4808637wmp.4 for ; Wed, 25 Sep 2019 03:55:36 -0700 (PDT) In-Reply-To: <20190925105530.2261-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: kraxel@redhat.com, daniel@ffwll.ch, thomas_os@shipmail.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QXMgdGhlIG5hbWUgc2F5cyBnbG9iYWwgbWVtb3J5IGFuZCBibyBhY2NvdW50aW5nIGlzIGdsb2Jh bC4gU28gaXQgZG9lc24ndAptYWtlIHRvIG11Y2ggc2Vuc2UgaGF2aW5nIHBvaW50ZXJzIHRvIGds b2JhbCBzdHJ1Y3R1cmVzIGFsbCBhcm91bmQgdGhlIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBDaHJp c3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYyAgIHwgIDkgKystLQogZHJpdmVycy9ncHUvZHJtL2RybV9nZW1f dnJhbV9oZWxwZXIuYyAgICB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMgICAgICAgIHwgIDcgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYyAgICAgICAg ICAgIHwgIDcgKy0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgfCA2NSArKysr KysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyAg ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICB8 ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyAgIHwgMjUgKysr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYyAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYyAgICAgfCAgNCArLQogZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvY19kbWEuYyB8ICA0ICstCiBpbmNsdWRlL2RybS90 dG0vdHRtX2JvX2RyaXZlci5oICAgICAgICAgIHwgIDYgKy0tCiBpbmNsdWRlL2RybS90dG0vdHRt X21lbW9yeS5oICAgICAgICAgICAgIHwgIDEgLQogMTUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0 aW9ucygrKSwgODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9nYXJ0LmMKaW5kZXggZDc5YWIxZGE5ZTA3Li5jMzkyZjc2NzJlMDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYwpAQCAtNzEsNyArNzEsNyBAQAogICovCiBzdGF0 aWMgaW50IGFtZGdwdV9nYXJ0X2R1bW15X3BhZ2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIHsKLQlzdHJ1Y3QgcGFnZSAqZHVtbXlfcGFnZSA9IGFkZXYtPm1tYW4uYmRldi5nbG9i LT5kdW1teV9yZWFkX3BhZ2U7CisJc3RydWN0IHBhZ2UgKmR1bW15X3BhZ2UgPSB0dG1fYm9fZ2xv Yi5kdW1teV9yZWFkX3BhZ2U7CiAKIAlpZiAoYWRldi0+ZHVtbXlfcGFnZV9hZGRyKQogCQlyZXR1 cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKaW5kZXggZjU1NTg0M2Rh ZWYwLi5jY2ExODg3NDY1YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5j CkBAIC02MDAsMjEgKzYwMCwyMCBAQCB2b2lkIGFtZGdwdV92bV9kZWxfZnJvbV9scnVfbm90aWZ5 KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB2b2lkIGFtZGdwdV92bV9tb3ZlX3RvX2xy dV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCXN0cnVjdCBhbWRncHVfdm0g KnZtKQogewotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYWRldi0+bW1hbi5iZGV2Lmds b2I7CiAJc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlOwogCiAjaWYgMAogCWlmICh2 bS0+YnVsa19tb3ZlYWJsZSkgewotCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwkJc3Bp bl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCXR0bV9ib19idWxrX21vdmVfbHJ1X3Rh aWwoJnZtLT5scnVfYnVsa19tb3ZlKTsKLQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsK KwkJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAkJcmV0dXJuOwogCX0KICNl bmRpZgogCiAJbWVtc2V0KCZ2bS0+bHJ1X2J1bGtfbW92ZSwgMCwgc2l6ZW9mKHZtLT5scnVfYnVs a19tb3ZlKSk7CiAKLQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwlzcGluX2xvY2soJnR0 bV9ib19nbG9iLmxydV9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2bS0+ aWRsZSwgdm1fc3RhdHVzKSB7CiAJCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87 CiAKQEAgLTYyNiw3ICs2MjUsNyBAQCB2b2lkIGFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJv LT5zaGFkb3ctPnRibywKIAkJCQkJCSZ2bS0+bHJ1X2J1bGtfbW92ZSk7CiAJfQotCXNwaW5fdW5s b2NrKCZnbG9iLT5scnVfbG9jayk7CisJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2Nr KTsKIAogCXZtLT5idWxrX21vdmVhYmxlID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92 cmFtX2hlbHBlci5jCmluZGV4IDQ5NTg4ZGU4ODk1OS4uMzY5NTE2ODIwNmI1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKQEAgLTg5NiwxMiArODk2LDExIEBAIHN0YXRpYyBp bnQgZHJtX3ZyYW1fbW1fZGVidWdmcyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJ c3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKikgbS0+ cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IG5vZGUtPm1pbm9yLT5kZXYtPnZy YW1fbW07CiAJc3RydWN0IGRybV9tbSAqbW0gPSB2bW0tPmJkZXYubWFuW1RUTV9QTF9WUkFNXS5w cml2OwotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gdm1tLT5iZGV2Lmdsb2I7CiAJc3Ry dWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKIAotCXNwaW5fbG9j aygmZ2xvYi0+bHJ1X2xvY2spOworCXNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwog CWRybV9tbV9wcmludChtbSwgJnApOwotCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJ c3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jIGIvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfcmVsZWFzZS5jCmluZGV4IDcxZjFiNTFhMTM1MC4uYTBkMzg4YjdiNTNiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC00MjksNyArNDI5LDYgQEAgdm9pZCBxeGxf cmVsZWFzZV91bm1hcChzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKIHZvaWQgcXhsX3JlbGVhc2Vf ZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNlKQogewogCXN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm87Ci0Jc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2I7 CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXY7CiAJc3RydWN0IHR0bV92YWxpZGF0ZV9idWZm ZXIgKmVudHJ5OwogCXN0cnVjdCBxeGxfZGV2aWNlICpxZGV2OwpAQCAtNDUxLDkgKzQ1MCw3IEBA IHZvaWQgcXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9yZWxlYXNl ICpyZWxlYXNlKQogCQkgICAgICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCByZWxlYXNlLT5i YXNlLnNlcW5vKTsKIAl0cmFjZV9kbWFfZmVuY2VfZW1pdCgmcmVsZWFzZS0+YmFzZSk7CiAKLQln bG9iID0gYmRldi0+Z2xvYjsKLQotCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOworCXNwaW5f bG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRy eSwgJnJlbGVhc2UtPmJvcywgaGVhZCkgewogCQlibyA9IGVudHJ5LT5ibzsKQEAgLTQ2Miw3ICs0 NTksNyBAQCB2b2lkIHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxf cmVsZWFzZSAqcmVsZWFzZSkKIAkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwog CQlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiAJfQotCXNwaW5fdW5sb2NrKCZnbG9i LT5scnVfbG9jayk7CisJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAlkbWFf cmVzdl9jdHhfZmluaSgmcmVsZWFzZS0+dGlja2V0KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYwpp bmRleCBjYmM2YzJiYTg2MzAuLjhkNzc5Y2EyNjgyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKQEAg LTM2OSwxNCArMzY5LDExIEBAIHN0YXRpYyBpbnQgcXhsX21tX2R1bXBfdGFibGUoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0g KHN0cnVjdCBkcm1faW5mb19ub2RlICopbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX21tICptbSA9 IChzdHJ1Y3QgZHJtX21tICopbm9kZS0+aW5mb19lbnQtPmRhdGE7Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Ci0Jc3RydWN0IHF4bF9kZXZpY2UgKnJkZXYgPSBk ZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gcmRldi0+bW1h bi5iZGV2Lmdsb2I7CiAJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRl cihtKTsKIAotCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOworCXNwaW5fbG9jaygmdHRtX2Jv X2dsb2IubHJ1X2xvY2spOwogCWRybV9tbV9wcmludChtbSwgJnApOwotCXNwaW5fdW5sb2NrKCZn bG9iLT5scnVfbG9jayk7CisJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAly ZXR1cm4gMDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f YWdwX2JhY2tlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMKaW5k ZXggZWE0ZDU5ZWI4OTY2Li42MDUwZGM4NDY4OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2FncF9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdw X2JhY2tlbmQuYwpAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgdHRtX2FncF9iYWNrZW5kIHsKIHN0 YXRpYyBpbnQgdHRtX2FncF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1f cmVnICpib19tZW0pCiB7CiAJc3RydWN0IHR0bV9hZ3BfYmFja2VuZCAqYWdwX2JlID0gY29udGFp bmVyX29mKHR0bSwgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCwgdHRtKTsKLQlzdHJ1Y3QgcGFnZSAq ZHVtbXlfcmVhZF9wYWdlID0gdHRtLT5iZGV2LT5nbG9iLT5kdW1teV9yZWFkX3BhZ2U7CisJc3Ry dWN0IHBhZ2UgKmR1bW15X3JlYWRfcGFnZSA9IHR0bV9ib19nbG9iLmR1bW15X3JlYWRfcGFnZTsK IAlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUgPSBib19tZW0tPm1tX25vZGU7CiAJc3RydWN0IGFn cF9tZW1vcnkgKm1lbTsKIAlpbnQgcmV0LCBjYWNoZWQgPSAoYm9fbWVtLT5wbGFjZW1lbnQgJiBU VE1fUExfRkxBR19DQUNIRUQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKaW5kZXggYWI5OTY3Yjg0ZTBiLi41 N2NiNzc4MTFkZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwpAQCAtNTEsNiArNTEsNyBAQCBzdGF0aWMg dm9pZCB0dG1fYm9fZ2xvYmFsX2tvYmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaik7CiBE RUZJTkVfTVVURVgodHRtX2dsb2JhbF9tdXRleCk7CiB1bnNpZ25lZCB0dG1fYm9fZ2xvYl91c2Vf Y291bnQ7CiBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCB0dG1fYm9fZ2xvYjsKK0VYUE9SVF9TWU1CT0wo dHRtX2JvX2dsb2IpOwogCiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSB0dG1fYm9fY291bnQgPSB7 CiAJLm5hbWUgPSAiYm9fY291bnQiLApAQCAtMTQ4LDcgKzE0OSw2IEBAIHN0YXRpYyB2b2lkIHR0 bV9ib19yZWxlYXNlX2xpc3Qoc3RydWN0IGtyZWYgKmxpc3Rfa3JlZikKIHsKIAlzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvID0KIAkgICAgY29udGFpbmVyX29mKGxpc3Rfa3JlZiwgc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0LCBsaXN0X2tyZWYpOwotCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2ID0gYm8tPmJkZXY7CiAJc2l6ZV90IGFjY19zaXplID0gYm8tPmFjY19zaXplOwogCiAJQlVH X09OKGtyZWZfcmVhZCgmYm8tPmxpc3Rfa3JlZikpOwpAQCAtMTU4LDEzICsxNTgsMTMgQEAgc3Rh dGljIHZvaWQgdHRtX2JvX3JlbGVhc2VfbGlzdChzdHJ1Y3Qga3JlZiAqbGlzdF9rcmVmKQogCUJV R19PTighbGlzdF9lbXB0eSgmYm8tPmxydSkpOwogCUJVR19PTighbGlzdF9lbXB0eSgmYm8tPmRk ZXN0cm95KSk7CiAJdHRtX3R0X2Rlc3Ryb3koYm8tPnR0bSk7Ci0JYXRvbWljX2RlYygmYm8tPmJk ZXYtPmdsb2ItPmJvX2NvdW50KTsKKwlhdG9taWNfZGVjKCZ0dG1fYm9fZ2xvYi5ib19jb3VudCk7 CiAJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsKIAlpZiAoIXR0bV9ib191c2VzX2VtYmVkZGVk X2dlbV9vYmplY3QoYm8pKQogCQlkbWFfcmVzdl9maW5pKCZiby0+YmFzZS5fcmVzdik7CiAJbXV0 ZXhfZGVzdHJveSgmYm8tPnd1X211dGV4KTsKIAliby0+ZGVzdHJveShibyk7Ci0JdHRtX21lbV9n bG9iYWxfZnJlZShiZGV2LT5nbG9iLT5tZW1fZ2xvYiwgYWNjX3NpemUpOworCXR0bV9tZW1fZ2xv YmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUpOwogfQogCiBzdGF0aWMgdm9pZCB0dG1f Ym9fYWRkX21lbV90b19scnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKQEAgLTE4Nyw3 ICsxODcsNyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fYWRkX21lbV90b19scnUoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKIAogCWlmIChiby0+dHRtICYmICEoYm8tPnR0bS0+cGFnZV9mbGFn cyAmCiAJCQkgKFRUTV9QQUdFX0ZMQUdfU0cgfCBUVE1fUEFHRV9GTEFHX1NXQVBQRUQpKSkgewot CQlsaXN0X2FkZF90YWlsKCZiby0+c3dhcCwgJmJkZXYtPmdsb2ItPnN3YXBfbHJ1W2JvLT5wcmlv cml0eV0pOworCQlsaXN0X2FkZF90YWlsKCZiby0+c3dhcCwgJnR0bV9ib19nbG9iLnN3YXBfbHJ1 W2JvLT5wcmlvcml0eV0pOwogCQlrcmVmX2dldCgmYm8tPmxpc3Rfa3JlZik7CiAJfQogfQpAQCAt Mjk0LDcgKzI5NCw3IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRt X2xydV9idWxrX21vdmUgKmJ1bGspCiAJCWRtYV9yZXN2X2Fzc2VydF9oZWxkKHBvcy0+Zmlyc3Qt PmJhc2UucmVzdik7CiAJCWRtYV9yZXN2X2Fzc2VydF9oZWxkKHBvcy0+bGFzdC0+YmFzZS5yZXN2 KTsKIAotCQlscnUgPSAmcG9zLT5maXJzdC0+YmRldi0+Z2xvYi0+c3dhcF9scnVbaV07CisJCWxy dSA9ICZ0dG1fYm9fZ2xvYi5zd2FwX2xydVtpXTsKIAkJbGlzdF9idWxrX21vdmVfdGFpbChscnUs ICZwb3MtPmZpcnN0LT5zd2FwLCAmcG9zLT5sYXN0LT5zd2FwKTsKIAl9CiB9CkBAIC00NTgsNyAr NDU4LDYgQEAgc3RhdGljIHZvaWQgdHRtX2JvX2ZsdXNoX2FsbF9mZW5jZXMoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibykKIHN0YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVwX3JlZnNfb3JfcXVl dWUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIHsKIAlzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiA9IGJvLT5iZGV2OwotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYmRldi0+ Z2xvYjsKIAlpbnQgcmV0OwogCiAJcmV0ID0gdHRtX2JvX2luZGl2aWR1YWxpemVfcmVzdihibyk7 CkBAIC00NjgsMTYgKzQ2NywxNiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9yZWZzX29y X3F1ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJCSAqLwogCQlkbWFfcmVzdl93 YWl0X3RpbWVvdXRfcmN1KGJvLT5iYXNlLnJlc3YsIHRydWUsIGZhbHNlLAogCQkJCQkJICAgIDMw ICogSFopOwotCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwkJc3Bpbl9sb2NrKCZ0dG1f Ym9fZ2xvYi5scnVfbG9jayk7CiAJCWdvdG8gZXJyb3I7CiAJfQogCi0Jc3Bpbl9sb2NrKCZnbG9i LT5scnVfbG9jayk7CisJc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJcmV0ID0g ZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSA/IDAgOiAtRUJVU1k7CiAJaWYgKCFyZXQp IHsKIAkJaWYgKGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1KCZiby0+YmFzZS5fcmVzdiwgdHJ1 ZSkpIHsKIAkJCXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwotCQkJc3Bpbl91bmxvY2soJmdsb2It PmxydV9sb2NrKTsKKwkJCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCQlp ZiAoYm8tPmJhc2UucmVzdiAhPSAmYm8tPmJhc2UuX3Jlc3YpCiAJCQkJZG1hX3Jlc3ZfdW5sb2Nr KCZiby0+YmFzZS5fcmVzdik7CiAKQEAgLTUwNiw3ICs1MDUsNyBAQCBzdGF0aWMgdm9pZCB0dG1f Ym9fY2xlYW51cF9yZWZzX29yX3F1ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiBl cnJvcjoKIAlrcmVmX2dldCgmYm8tPmxpc3Rfa3JlZik7CiAJbGlzdF9hZGRfdGFpbCgmYm8tPmRk ZXN0cm95LCAmYmRldi0+ZGRlc3Ryb3kpOwotCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7 CisJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAogCXNjaGVkdWxlX2RlbGF5 ZWRfd29yaygmYmRldi0+d3EsCiAJCQkgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6IEhaIC8g MTAwKTsKQEAgLTUyOSw3ICs1MjgsNiBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCSAgICAgICBib29sIGludGVycnVwdGli bGUsIGJvb2wgbm9fd2FpdF9ncHUsCiAJCQkgICAgICAgYm9vbCB1bmxvY2tfcmVzdikKIHsKLQlz dHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJvLT5iZGV2LT5nbG9iOwogCXN0cnVjdCBkbWFf cmVzdiAqcmVzdjsKIAlpbnQgcmV0OwogCkBAIC01NDgsNyArNTQ2LDcgQEAgc3RhdGljIGludCB0 dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAKIAkJaWYg KHVubG9ja19yZXN2KQogCQkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwotCQlzcGlu X3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOworCQlzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1 X2xvY2spOwogCiAJCWxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJlc3YsIHRydWUs CiAJCQkJCQkJICAgaW50ZXJydXB0aWJsZSwKQEAgLTU1OSw3ICs1NTcsNyBAQCBzdGF0aWMgaW50 IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJZWxz ZSBpZiAobHJldCA9PSAwKQogCQkJcmV0dXJuIC1FQlVTWTsKIAotCQlzcGluX2xvY2soJmdsb2It PmxydV9sb2NrKTsKKwkJc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCWlmICh1 bmxvY2tfcmVzdiAmJiAhZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkgewogCQkJLyoK IAkJCSAqIFdlIHJhY2VkLCBhbmQgbG9zdCwgc29tZW9uZSBlbHNlIGhvbGRzIHRoZSByZXNlcnZh dGlvbiBub3csCkBAIC01NjksNyArNTY3LDcgQEAgc3RhdGljIGludCB0dG1fYm9fY2xlYW51cF9y ZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCQkgKiBkZWxheWVkIGRlc3RydWN0 aW9uIHdvdWxkIHN1Y2NlZWQsIHNvIGp1c3QgcmV0dXJuIHN1Y2Nlc3MKIAkJCSAqIGhlcmUuCiAJ CQkgKi8KLQkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJCQlzcGluX3VubG9jaygm dHRtX2JvX2dsb2IubHJ1X2xvY2spOwogCQkJcmV0dXJuIDA7CiAJCX0KIAkJcmV0ID0gMDsKQEAg LTU3OCw3ICs1NzYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKIAlpZiAocmV0IHx8IHVubGlrZWx5KGxpc3RfZW1wdHkoJmJv LT5kZGVzdHJveSkpKSB7CiAJCWlmICh1bmxvY2tfcmVzdikKIAkJCWRtYV9yZXN2X3VubG9jayhi by0+YmFzZS5yZXN2KTsKLQkJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKKwkJc3Bpbl91 bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTU4 Niw3ICs1ODQsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKIAlsaXN0X2RlbF9pbml0KCZiby0+ZGRlc3Ryb3kpOwogCWtyZWZf cHV0KCZiby0+bGlzdF9rcmVmLCB0dG1fYm9fcmVmX2J1Zyk7CiAKLQlzcGluX3VubG9jaygmZ2xv Yi0+bHJ1X2xvY2spOworCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJdHRt X2JvX2NsZWFudXBfbWVtdHlwZV91c2UoYm8pOwogCiAJaWYgKHVubG9ja19yZXN2KQpAQCAtNjAx LDcgKzU5OSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogICovCiBzdGF0aWMgYm9vbCB0dG1fYm9fZGVsYXllZF9kZWxldGUo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKIHsKLQlzdHJ1Y3Qg dHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7CisJc3RydWN0IHR0bV9ib19nbG9iYWwg Kmdsb2IgPSAmdHRtX2JvX2dsb2I7CiAJc3RydWN0IGxpc3RfaGVhZCByZW1vdmVkOwogCWJvb2wg ZW1wdHk7CiAKQEAgLTgyMiwxMyArODIwLDEyIEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9m aXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJCSAgICAgICBzdHJ1Y3Qgd3dfYWNx dWlyZV9jdHggKnRpY2tldCkKIHsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gTlVM TCwgKmJ1c3lfYm8gPSBOVUxMOwotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYmRldi0+ Z2xvYjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVt X3R5cGVdOwogCWJvb2wgbG9ja2VkID0gZmFsc2U7CiAJdW5zaWduZWQgaTsKIAlpbnQgcmV0Owog Ci0Jc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5s cnVfbG9jayk7CiAJZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9fUFJJT1JJVFk7ICsraSkgewog CQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbWFuLT5scnVbaV0sIGxydSkgewogCQkJYm9vbCBi dXN5OwpAQCAtODYwLDcgKzg1Nyw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAlpZiAoIWJvKSB7CiAJCWlmIChidXN5X2JvKQog CQkJa3JlZl9nZXQoJmJ1c3lfYm8tPmxpc3Rfa3JlZik7Ci0JCXNwaW5fdW5sb2NrKCZnbG9iLT5s cnVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCXJldCA9 IHR0bV9tZW1fZXZpY3Rfd2FpdF9idXN5KGJ1c3lfYm8sIGN0eCwgdGlja2V0KTsKIAkJaWYgKGJ1 c3lfYm8pCiAJCQlrcmVmX3B1dCgmYnVzeV9iby0+bGlzdF9rcmVmLCB0dG1fYm9fcmVsZWFzZV9s aXN0KTsKQEAgLTg3Niw3ICs4NzMsNyBAQCBzdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCXJldHVybiByZXQ7CiAJfQogCi0Jc3Bpbl91 bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKKwlzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xv Y2spOwogCiAJcmV0ID0gdHRtX2JvX2V2aWN0KGJvLCBjdHgpOwogCWlmIChsb2NrZWQpCkBAIC0x MDQyLDEwICsxMDM5LDEwIEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAltZW0tPm1lbV90eXBlID0gbWVtX3R5cGU7CiAJbWVt LT5wbGFjZW1lbnQgPSBjdXJfZmxhZ3M7CiAKLQlzcGluX2xvY2soJmJvLT5iZGV2LT5nbG9iLT5s cnVfbG9jayk7CisJc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJdHRtX2JvX2Rl bF9mcm9tX2xydShibyk7CiAJdHRtX2JvX2FkZF9tZW1fdG9fbHJ1KGJvLCBtZW0pOwotCXNwaW5f dW5sb2NrKCZiby0+YmRldi0+Z2xvYi0+bHJ1X2xvY2spOworCXNwaW5fdW5sb2NrKCZ0dG1fYm9f Z2xvYi5scnVfbG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTExMzIsOSArMTEyOSw5IEBAIGlu dCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAKIGVycm9y OgogCWlmIChiby0+bWVtLm1lbV90eXBlID09IFRUTV9QTF9TWVNURU0gJiYgIWxpc3RfZW1wdHko JmJvLT5scnUpKSB7Ci0JCXNwaW5fbG9jaygmYm8tPmJkZXYtPmdsb2ItPmxydV9sb2NrKTsKKwkJ c3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCXR0bV9ib19tb3ZlX3RvX2xydV90 YWlsKGJvLCBOVUxMKTsKLQkJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5nbG9iLT5scnVfbG9jayk7 CisJCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJfQogCiAJcmV0dXJuIHJl dDsKQEAgLTEyNTgsOSArMTI1NSw5IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKIAkJCSBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkgdm9p ZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpCiB7CisJc3RydWN0IHR0 bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7CiAJaW50IHJldCA9IDA7CiAJ dW5zaWduZWQgbG9uZyBudW1fcGFnZXM7Ci0Jc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xv YiA9IGJkZXYtPmdsb2ItPm1lbV9nbG9iOwogCWJvb2wgbG9ja2VkOwogCiAJcmV0ID0gdHRtX21l bV9nbG9iYWxfYWxsb2MobWVtX2dsb2IsIGFjY19zaXplLCBjdHgpOwpAQCAtMTMyMSw3ICsxMzE4 LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LAogCQlkbWFfcmVzdl9pbml0KCZiby0+YmFzZS5fcmVzdik7CiAJCWRybV92bWFfbm9kZV9yZXNl dCgmYm8tPmJhc2Uudm1hX25vZGUpOwogCX0KLQlhdG9taWNfaW5jKCZiby0+YmRldi0+Z2xvYi0+ Ym9fY291bnQpOworCWF0b21pY19pbmMoJnR0bV9ib19nbG9iLmJvX2NvdW50KTsKIAogCS8qCiAJ ICogRm9yIHR0bV9ib190eXBlX2RldmljZSBidWZmZXJzLCBhbGxvY2F0ZQpAQCAtMTM1MSw5ICsx MzQ4LDkgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LAogCQlyZXR1cm4gcmV0OwogCX0KIAotCXNwaW5fbG9jaygmYmRldi0+Z2xvYi0+bHJ1X2xv Y2spOworCXNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwogCXR0bV9ib19tb3ZlX3Rv X2xydV90YWlsKGJvLCBOVUxMKTsKLQlzcGluX3VubG9jaygmYmRldi0+Z2xvYi0+bHJ1X2xvY2sp OworCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAKIAlyZXR1cm4gcmV0Owog fQpAQCAtMTQ1MSw3ICsxNDQ4LDcgQEAgc3RhdGljIGludCB0dG1fYm9fZm9yY2VfbGlzdF9jbGVh bihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJLmZsYWdzID0gVFRNX09QVF9GTEFHX0ZP UkNFX0FMTE9DCiAJfTsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2 LT5tYW5bbWVtX3R5cGVdOwotCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYmRldi0+Z2xv YjsKKwlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKIAlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGk7CkBAIC0xNjIwLDggKzE2 MTcsNiBAQCBzdGF0aWMgaW50IHR0bV9ib19nbG9iYWxfaW5pdCh2b2lkKQogCQlnb3RvIG91dDsK IAogCXNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Ci0JZ2xvYi0+bWVtX2dsb2IgPSAm dHRtX21lbV9nbG9iOwotCWdsb2ItPm1lbV9nbG9iLT5ib19nbG9iID0gZ2xvYjsKIAlnbG9iLT5k dW1teV9yZWFkX3BhZ2UgPSBhbGxvY19wYWdlKF9fR0ZQX1pFUk8gfCBHRlBfRE1BMzIpOwogCiAJ aWYgKHVubGlrZWx5KGdsb2ItPmR1bW15X3JlYWRfcGFnZSA9PSBOVUxMKSkgewpAQCAtMTY0NSwx MCArMTY0MCwxMCBAQCBzdGF0aWMgaW50IHR0bV9ib19nbG9iYWxfaW5pdCh2b2lkKQogCiBpbnQg dHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQogeworCXN0 cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9ib19nbG9iOwogCWludCByZXQgPSAwOwog CXVuc2lnbmVkIGkgPSBUVE1fTlVNX01FTV9UWVBFUzsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbjsKLQlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7CiAK IAl3aGlsZSAoaS0tKSB7CiAJCW1hbiA9ICZiZGV2LT5tYW5baV07CkBAIC0xNzE3LDcgKzE3MTIs NiBAQCBpbnQgdHRtX2JvX2RldmljZV9pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAog CUlOSVRfREVMQVlFRF9XT1JLKCZiZGV2LT53cSwgdHRtX2JvX2RlbGF5ZWRfd29ya3F1ZXVlKTsK IAlJTklUX0xJU1RfSEVBRCgmYmRldi0+ZGRlc3Ryb3kpOwogCWJkZXYtPmRldl9tYXBwaW5nID0g bWFwcGluZzsKLQliZGV2LT5nbG9iID0gZ2xvYjsKIAliZGV2LT5uZWVkX2RtYTMyID0gbmVlZF9k bWEzMjsKIAltdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKIAlsaXN0X2FkZF90YWlsKCZi ZGV2LT5kZXZpY2VfbGlzdCwgJmdsb2ItPmRldmljZV9saXN0KTsKQEAgLTE5MjEsOCArMTkxNSw3 IEBAIHZvaWQgdHRtX2JvX3N3YXBvdXRfYWxsKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQog CQkubm9fd2FpdF9ncHUgPSBmYWxzZQogCX07CiAKLQl3aGlsZSAodHRtX2JvX3N3YXBvdXQoYmRl di0+Z2xvYiwgJmN0eCkgPT0gMCkKLQkJOworCXdoaWxlICh0dG1fYm9fc3dhcG91dCgmdHRtX2Jv X2dsb2IsICZjdHgpID09IDApOwogfQogRVhQT1JUX1NZTUJPTCh0dG1fYm9fc3dhcG91dF9hbGwp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKaW5kZXggZmU4MWM1NjVlN2VmLi4zOTQwYWZh NmYzYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKQEAgLTUwMyw3ICs1MDMsNyBAQCBz dGF0aWMgaW50IHR0bV9idWZmZXJfb2JqZWN0X3RyYW5zZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAJICogVE9ETzogRXhwbGljaXQgbWVtYmVyIGNvcHkgd291bGQgcHJvYmFibHkg YmUgYmV0dGVyIGhlcmUuCiAJICovCiAKLQlhdG9taWNfaW5jKCZiby0+YmRldi0+Z2xvYi0+Ym9f Y291bnQpOworCWF0b21pY19pbmMoJnR0bV9ib19nbG9iLmJvX2NvdW50KTsKIAlJTklUX0xJU1Rf SEVBRCgmZmJvLT5iYXNlLmRkZXN0cm95KTsKIAlJTklUX0xJU1RfSEVBRCgmZmJvLT5iYXNlLmxy dSk7CiAJSU5JVF9MSVNUX0hFQUQoJmZiby0+YmFzZS5zd2FwKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192 bS5jCmluZGV4IDRhYTAwN2VkZmZiMC4uMjYzZjRjMzMwNzlhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv X3ZtLmMKQEAgLTE3Nyw5ICsxNzcsOSBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1 bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCX0KIAogCQlpZiAoYm8tPm1vdmluZyAhPSBtb3Zp bmcpIHsKLQkJCXNwaW5fbG9jaygmYmRldi0+Z2xvYi0+bHJ1X2xvY2spOworCQkJc3Bpbl9sb2Nr KCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7CiAJCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywg TlVMTCk7Ci0JCQlzcGluX3VubG9jaygmYmRldi0+Z2xvYi0+bHJ1X2xvY2spOworCQkJc3Bpbl91 bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAkJfQogCQlkbWFfZmVuY2VfcHV0KG1vdmlu Zyk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwppbmRleCBiMDljMmM4 Y2FmMTMuLjhmMWRjZGQwYzNmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f ZXhlY2J1Zl91dGlsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMKQEAgLTM3LDE1ICszNywxMSBAQCB2b2lkIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKHN0 cnVjdCBkbWFfcmVzdl9jdHggKnRpY2tldCwKIAkJCQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQog ewogCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyICplbnRyeTsKLQlzdHJ1Y3QgdHRtX2JvX2ds b2JhbCAqZ2xvYjsKIAogCWlmIChsaXN0X2VtcHR5KGxpc3QpKQogCQlyZXR1cm47CiAKLQllbnRy eSA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIsIGhl YWQpOwotCWdsb2IgPSBlbnRyeS0+Ym8tPmJkZXYtPmdsb2I7Ci0KLQlzcGluX2xvY2soJmdsb2It PmxydV9sb2NrKTsKKwlzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7CiAJCXN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8gPSBlbnRyeS0+Ym87CiAKQEAgLTUzLDcgKzQ5LDcgQEAgdm9pZCB0dG1fZXVfYmFj a29mZl9yZXNlcnZhdGlvbihzdHJ1Y3QgZG1hX3Jlc3ZfY3R4ICp0aWNrZXQsCiAJCWlmICghdGlj a2V0KQogCQkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KLQlzcGluX3VubG9j aygmZ2xvYi0+bHJ1X2xvY2spOworCXNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7 CiAKIAlpZiAodGlja2V0KSB7CiAJCWRtYV9yZXN2X2N0eF91bmxvY2tfYWxsKHRpY2tldCk7CkBA IC03OSwxNSArNzUsMTEgQEAgaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IGRtYV9y ZXN2X2N0eCAqdGlja2V0LAogCQkJICAgc3RydWN0IGxpc3RfaGVhZCAqZHVwcykKIHsKIAlzdHJ1 Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqZW50cnk7Ci0Jc3RydWN0IHR0bV9ib19nbG9iYWwgKmds b2I7CiAJaW50IHJldDsKIAogCWlmIChsaXN0X2VtcHR5KGxpc3QpKQogCQlyZXR1cm4gMDsKIAot CWVudHJ5ID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZl ciwgaGVhZCk7Ci0JZ2xvYiA9IGVudHJ5LT5iby0+YmRldi0+Z2xvYjsKLQogCWlmICh0aWNrZXQp CiAJCWRtYV9yZXN2X2N0eF9pbml0KHRpY2tldCk7CiAKQEAgLTE1MywxOSArMTQ1LDE0IEBAIHZv aWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBkbWFfcmVzdl9jdHggKnRpY2tl dCwKIAkJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHR0bV92YWxpZGF0 ZV9idWZmZXIgKmVudHJ5OwotCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm87Ci0Jc3RydWN0 IHR0bV9ib19nbG9iYWwgKmdsb2I7CiAKIAlpZiAobGlzdF9lbXB0eShsaXN0KSkKIAkJcmV0dXJu OwogCi0JYm8gPSBsaXN0X2ZpcnN0X2VudHJ5KGxpc3QsIHN0cnVjdCB0dG1fdmFsaWRhdGVfYnVm ZmVyLCBoZWFkKS0+Ym87Ci0JZ2xvYiA9IGJvLT5iZGV2LT5nbG9iOwotCi0Jc3Bpbl9sb2NrKCZn bG9iLT5scnVfbG9jayk7Ci0KKwlzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKIAls aXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7Ci0JCWJvID0gZW50cnktPmJv OworCQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOworCiAJCWlmIChl bnRyeS0+bnVtX3NoYXJlZCkKIAkJCWRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2Uu cmVzdiwgZmVuY2UpOwogCQllbHNlCkBAIC0xNzQsNyArMTYxLDcgQEAgdm9pZCB0dG1fZXVfZmVu Y2VfYnVmZmVyX29iamVjdHMoc3RydWN0IGRtYV9yZXN2X2N0eCAqdGlja2V0LAogCQlpZiAoIXRp Y2tldCkKIAkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKIAl9Ci0Jc3Bpbl91bmxv Y2soJmdsb2ItPmxydV9sb2NrKTsKKwlzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2sp OwogCWlmICh0aWNrZXQpIHsKIAkJZG1hX3Jlc3ZfY3R4X3VubG9ja19hbGwodGlja2V0KTsKIAkJ ZG1hX3Jlc3ZfY3R4X2ZpbmkodGlja2V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX21lbW9yeS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMKaW5kZXgg ODYxNzk1OGI3YWU2Li5hY2Q2M2I3MGQ4MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX21lbW9yeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jCkBA IC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgdHRtX3NocmluayhzdHJ1Y3QgdHRtX21lbV9n bG9iYWwgKmdsb2IsIGJvb2wgZnJvbV93cSwKIAogCXdoaWxlICh0dG1fem9uZXNfYWJvdmVfc3dh cF90YXJnZXQoZ2xvYiwgZnJvbV93cSwgZXh0cmEpKSB7CiAJCXNwaW5fdW5sb2NrKCZnbG9iLT5s b2NrKTsKLQkJcmV0ID0gdHRtX2JvX3N3YXBvdXQoZ2xvYi0+Ym9fZ2xvYiwgY3R4KTsKKwkJcmV0 ID0gdHRtX2JvX3N3YXBvdXQoJnR0bV9ib19nbG9iLCBjdHgpOwogCQlzcGluX2xvY2soJmdsb2It PmxvY2spOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9wYWdlX2FsbG9jLmMKaW5kZXggNjI3ZjhkYzkxZDBlLi5iNDBhNDY3OGMyOTYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHZv aWQgdHRtX3BhZ2VfYWxsb2NfZmluaSh2b2lkKQogc3RhdGljIHZvaWQKIHR0bV9wb29sX3VucG9w dWxhdGVfaGVscGVyKHN0cnVjdCB0dG1fdHQgKnR0bSwgdW5zaWduZWQgbWVtX2NvdW50X3VwZGF0 ZSkKIHsKLQlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0gdHRtLT5iZGV2LT5nbG9i LT5tZW1fZ2xvYjsKKwlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0gJnR0bV9tZW1f Z2xvYjsKIAl1bnNpZ25lZCBpOwogCiAJaWYgKG1lbV9jb3VudF91cGRhdGUgPT0gMCkKQEAgLTEw NDksNyArMTA0OSw3IEBAIHR0bV9wb29sX3VucG9wdWxhdGVfaGVscGVyKHN0cnVjdCB0dG1fdHQg KnR0bSwgdW5zaWduZWQgbWVtX2NvdW50X3VwZGF0ZSkKIAogaW50IHR0bV9wb29sX3BvcHVsYXRl KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7Ci0J c3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9IHR0bS0+YmRldi0+Z2xvYi0+bWVtX2ds b2I7CisJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7CiAJ dW5zaWduZWQgaTsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9wYWdlX2FsbG9jX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxv Y19kbWEuYwppbmRleCBkNTk0Zjc1MjBiN2IuLjljYjU4OGE5M2Q0MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvY19kbWEuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9wYWdlX2FsbG9jX2RtYS5jCkBAIC04ODIsOCArODgyLDggQEAgc3RhdGljIGdm cF90IHR0bV9kbWFfcG9vbF9nZnBfZmxhZ3Moc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIGJv b2wgaHVnZSkKIGludCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1h LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkK IHsKKwlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0gJnR0bV9tZW1fZ2xvYjsKIAlz dHJ1Y3QgdHRtX3R0ICp0dG0gPSAmdHRtX2RtYS0+dHRtOwotCXN0cnVjdCB0dG1fbWVtX2dsb2Jh bCAqbWVtX2dsb2IgPSB0dG0tPmJkZXYtPmdsb2ItPm1lbV9nbG9iOwogCXVuc2lnbmVkIGxvbmcg bnVtX3BhZ2VzID0gdHRtLT5udW1fcGFnZXM7CiAJc3RydWN0IGRtYV9wb29sICpwb29sOwogCXN0 cnVjdCBkbWFfcGFnZSAqZF9wYWdlOwpAQCAtOTg3LDggKzk4Nyw4IEBAIEVYUE9SVF9TWU1CT0xf R1BMKHR0bV9kbWFfcG9wdWxhdGUpOwogLyogUHV0IGFsbCBwYWdlcyBpbiBwYWdlcyBsaXN0IHRv IGNvcnJlY3QgcG9vbCB0byB3YWl0IGZvciByZXVzZSAqLwogdm9pZCB0dG1fZG1hX3VucG9wdWxh dGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldikKIHsKKwlz dHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0gJnR0bV9tZW1fZ2xvYjsKIAlzdHJ1Y3Qg dHRtX3R0ICp0dG0gPSAmdHRtX2RtYS0+dHRtOwotCXN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqbWVt X2dsb2IgPSB0dG0tPmJkZXYtPmdsb2ItPm1lbV9nbG9iOwogCXN0cnVjdCBkbWFfcG9vbCAqcG9v bDsKIAlzdHJ1Y3QgZG1hX3BhZ2UgKmRfcGFnZSwgKm5leHQ7CiAJZW51bSBwb29sX3R5cGUgdHlw ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDQzMzJjYzAzNjQ4My4uMzgxOTYxOTc5MzAy IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTQxMyw3ICs0MTMsNiBAQCBleHRlcm4gc3Ry dWN0IHR0bV9ib19nbG9iYWwgewogCSAqLwogCiAJc3RydWN0IGtvYmplY3Qga29iajsKLQlzdHJ1 Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iOwogCXN0cnVjdCBwYWdlICpkdW1teV9yZWFkX3Bh Z2U7CiAJc3BpbmxvY2tfdCBscnVfbG9jazsKIApAQCAtNDU3LDcgKzQ1Niw2IEBAIHN0cnVjdCB0 dG1fYm9fZGV2aWNlIHsKIAkgKiBDb25zdGFudCBhZnRlciBibyBkZXZpY2UgaW5pdCAvIGF0b21p Yy4KIAkgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0OwotCXN0cnVjdCB0dG1fYm9f Z2xvYmFsICpnbG9iOwogCXN0cnVjdCB0dG1fYm9fZHJpdmVyICpkcml2ZXI7CiAJc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyIG1hbltUVE1fTlVNX01FTV9UWVBFU107CiAKQEAgLTc1OCw5ICs3 NTYsOSBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1fYm9fcmVzZXJ2ZV9zbG93cGF0aChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX3Vu cmVzZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogewotCXNwaW5fbG9jaygmYm8t PmJkZXYtPmdsb2ItPmxydV9sb2NrKTsKKwlzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2Nr KTsKIAl0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgTlVMTCk7Ci0Jc3Bpbl91bmxvY2soJmJv LT5iZGV2LT5nbG9iLT5scnVfbG9jayk7CisJc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9s b2NrKTsKIAlkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7CiB9CiAKZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX21lbW9y eS5oCmluZGV4IDNmZjQ4YTBhMmQ3Yi4uYzc4ZWE5OWM0MmNmIDEwMDY0NAotLS0gYS9pbmNsdWRl L2RybS90dG0vdHRtX21lbW9yeS5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmgK QEAgLTY1LDcgKzY1LDYgQEAKIHN0cnVjdCB0dG1fbWVtX3pvbmU7CiBleHRlcm4gc3RydWN0IHR0 bV9tZW1fZ2xvYmFsIHsKIAlzdHJ1Y3Qga29iamVjdCBrb2JqOwotCXN0cnVjdCB0dG1fYm9fZ2xv YmFsICpib19nbG9iOwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzd2FwX3F1ZXVlOwogCXN0 cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogCXNwaW5sb2NrX3QgbG9jazsKLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs