From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger He Subject: [PATCH 2/5] drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver Date: Thu, 21 Dec 2017 17:42:50 +0800 Message-ID: <1513849373-7970-2-git-send-email-Hongbo.He@amd.com> References: <1513849373-7970-1-git-send-email-Hongbo.He@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0070.outbound.protection.outlook.com [104.47.40.70]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9667D89F27 for ; Thu, 21 Dec 2017 09:43:33 +0000 (UTC) In-Reply-To: <1513849373-7970-1-git-send-email-Hongbo.He@amd.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 Cc: Roger He List-Id: dri-devel@lists.freedesktop.org Zm9yd2FyZCB0aGUgb3BlcmF0aW9uIGNvbnRleHQgdG8gdHRtX3R0X3BvcHVsYXRlIGFzIHdlbGws CmFuZCB0aGUgdWx0aW1hdGUgZ29hbCBpcyBzd2Fwb3V0IGVuYWJsZW1lbnQgZm9yIHBlciB2bSBC T3MuCgpDaGFuZ2UtSWQ6IElmOGRmYTBmNTAwNDI5ZDE0MjBlMGRhNjdlYjY5MDFmMGJmYmNhNTdi ClJldmlld2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ ClNpZ25lZC1vZmYtYnk6IFJvZ2VyIEhlIDxIb25nYm8uSGVAYW1kLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgIHwgIDcgKysrKy0tLQogZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgICAgICAgICAgICAgICB8ICA1ICsrKy0tCiBkcml2ZXJz L2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYyAgICAgICAgIHwgIDUgKysrLS0KIGRyaXZlcnMv Z3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMgfCAgNSArKystLQogZHJpdmVycy9n cHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYyAgICAgICB8ICA1ICsrKy0tCiBkcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX3R0bS5jICAgICAgICAgICAgICAgfCAgNSArKystLQogZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMgICAgICAgICB8ICA5ICsrKysrLS0tLQogZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYyAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyAgICAgICAgICAgfCAxMSArKysrKysrKy0tLQogZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICAgICB8ICA3ICsrKysrKy0KIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYyAgICAgICAgfCAxMyArKysrKy0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jX2RtYS5jICAgIHwgMTEgKysr Ky0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMgICAgICAgICAgICAgICAgfCAg NiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9vYmplY3QuYyAgICAgfCAg NiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYyAgICAgICAgfCAg NSArKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMgICAgICB8IDEz ICsrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jICAgICAg ICAgfCAxMyArKysrKysrKysrKy0tCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oICAg ICAgICAgICAgIHwgIDUgKysrLS0KIGluY2x1ZGUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5oICAg ICAgICAgICAgfCAxMSArKysrKysrLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9u cygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCmluZGV4IGYxYjdkOTguLjA0NGY1YjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmMKQEAgLTk5MCw3ICs5OTAsOCBAQCBzdGF0aWMgc3RydWN0IHR0bV90dCAqYW1k Z3B1X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJcmV0dXJuICZn dHQtPnR0bS50dG07CiB9CiAKLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1 Y3QgdHRtX3R0ICp0dG0pCitzdGF0aWMgaW50IGFtZGdwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0 IHR0bV90dCAqdHRtLAorCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7CiAJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYodHRtLT5iZGV2KTsKIAlz dHJ1Y3QgYW1kZ3B1X3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07CkBAIC0xMDE4LDExICsxMDE5 LDExIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0 dG0pCiAKICNpZmRlZiBDT05GSUdfU1dJT1RMQgogCWlmIChzd2lvdGxiX25yX3RibCgpKSB7Ci0J CXJldHVybiB0dG1fZG1hX3BvcHVsYXRlKCZndHQtPnR0bSwgYWRldi0+ZGV2KTsKKwkJcmV0dXJu IHR0bV9kbWFfcG9wdWxhdGUoJmd0dC0+dHRtLCBhZGV2LT5kZXYsIGN0eCk7CiAJfQogI2VuZGlm CiAKLQlyZXR1cm4gdHRtX3BvcHVsYXRlX2FuZF9tYXBfcGFnZXMoYWRldi0+ZGV2LCAmZ3R0LT50 dG0pOworCXJldHVybiB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhhZGV2LT5kZXYsICZndHQt PnR0bSwgY3R4KTsKIH0KIAogc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV90dF91bnBvcHVsYXRlKHN0 cnVjdCB0dG1fdHQgKnR0bSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKaW5kZXggMjhkYTdjMi4uMTQxM2U5 NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKQEAgLTIxNiw5ICsyMTYsMTAgQEAgc3RhdGljIHN0cnVj dCB0dG1fdHQgKmFzdF90dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAog CXJldHVybiB0dDsKIH0KIAotc3RhdGljIGludCBhc3RfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0 dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQgYXN0X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0sCisJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIHsKLQlyZXR1cm4gdHRt X3Bvb2xfcG9wdWxhdGUodHRtKTsKKwlyZXR1cm4gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBjdHgp OwogfQogCiBzdGF0aWMgdm9pZCBhc3RfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAq dHRtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMgYi9k cml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYwppbmRleCAyYTViNTRkLi42NWFlOTYw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYwpAQCAtMjE2LDkgKzIxNiwxMCBAQCBz dGF0aWMgc3RydWN0IHR0bV90dCAqY2lycnVzX3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCiAJcmV0dXJuIHR0OwogfQogCi1zdGF0aWMgaW50IGNpcnJ1c190dG1fdHRf cG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQorc3RhdGljIGludCBjaXJydXNfdHRtX3R0X3Bv cHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwKKwkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpj dHgpCiB7Ci0JcmV0dXJuIHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7CisJcmV0dXJuIHR0bV9wb29s X3BvcHVsYXRlKHR0bSwgY3R4KTsKIH0KIAogc3RhdGljIHZvaWQgY2lycnVzX3R0bV90dF91bnBv cHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hp Ym1jL2hpYm1jX3R0bS5jCmluZGV4IGFiNGVlNTkuLjg1MTZlMDAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY190dG0uYwpAQCAtMjIzLDkgKzIyMywxMCBAQCBzdGF0 aWMgc3RydWN0IHR0bV90dCAqaGlibWNfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKIAlyZXR1cm4gdHQ7CiB9CiAKLXN0YXRpYyBpbnQgaGlibWNfdHRtX3R0X3BvcHVs YXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQgaGlibWNfdHRtX3R0X3BvcHVsYXRl KHN0cnVjdCB0dG1fdHQgKnR0bSwKKwkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7 Ci0JcmV0dXJuIHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7CisJcmV0dXJuIHR0bV9wb29sX3BvcHVs YXRlKHR0bSwgY3R4KTsKIH0KIAogc3RhdGljIHZvaWQgaGlibWNfdHRtX3R0X3VucG9wdWxhdGUo c3RydWN0IHR0bV90dCAqdHRtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRtLmMKaW5k ZXggZjAzZGE2My4uNmZhODA3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5j CkBAIC0yMTYsOSArMjE2LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICptZ2FnMjAwX3R0bV90 dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJcmV0dXJuIHR0OwogfQogCi1z dGF0aWMgaW50IG1nYWcyMDBfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0 YXRpYyBpbnQgbWdhZzIwMF90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLAorCQkJ c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7Ci0JcmV0dXJuIHR0bV9wb29sX3BvcHVs YXRlKHR0bSk7CisJcmV0dXJuIHR0bV9wb29sX3BvcHVsYXRlKHR0bSwgY3R4KTsKIH0KIAogc3Rh dGljIHZvaWQgbWdhZzIwMF90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKaW5kZXggNmI2ZmIyMC4uYjE0MWMyNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwpAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAgbm91 dmVhdV90dG1fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bykKIH0KIAogc3RhdGljIGludAotbm91dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90 dCAqdHRtKQorbm91dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2Rt YSA9ICh2b2lkICopdHRtOwogCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtOwpAQCAtMTU3MiwxNyAr MTU3MiwxNyBAQCBub3V2ZWF1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAK ICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCiAJaWYgKGRybS0+YWdwLmJyaWRnZSkgewotCQly ZXR1cm4gdHRtX2FncF90dF9wb3B1bGF0ZSh0dG0pOworCQlyZXR1cm4gdHRtX2FncF90dF9wb3B1 bGF0ZSh0dG0sIGN0eCk7CiAJfQogI2VuZGlmCiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19TV0lP VExCKSAmJiBJU19FTkFCTEVEKENPTkZJR19YODYpCiAJaWYgKHN3aW90bGJfbnJfdGJsKCkpIHsK LQkJcmV0dXJuIHR0bV9kbWFfcG9wdWxhdGUoKHZvaWQgKil0dG0sIGRldik7CisJCXJldHVybiB0 dG1fZG1hX3BvcHVsYXRlKCh2b2lkICopdHRtLCBkZXYsIGN0eCk7CiAJfQogI2VuZGlmCiAKLQly ID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtKTsKKwlyID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBj dHgpOwogCWlmIChyKSB7CiAJCXJldHVybiByOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9xeGwvcXhsX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKaW5kZXgg NzhjZTExOC4uZjcyY2UzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKQEAgLTI5MSwxNCArMjkxLDE1 IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyBxeGxfYmFja2VuZF9mdW5jID0gewog CS5kZXN0cm95ID0gJnF4bF90dG1fYmFja2VuZF9kZXN0cm95LAogfTsKIAotc3RhdGljIGludCBx eGxfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQgcXhsX3R0 bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sCisJCQlzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggKmN0eCkKIHsKIAlpbnQgcjsKIAogCWlmICh0dG0tPnN0YXRlICE9IHR0X3VucG9wdWxh dGVkKQogCQlyZXR1cm4gMDsKIAotCXIgPSB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOworCXIgPSB0 dG1fcG9vbF9wb3B1bGF0ZSh0dG0sIGN0eCk7CiAJaWYgKHIpCiAJCXJldHVybiByOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCmluZGV4IDU1N2ZkNzkuLjk0MjRiODEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCkBAIC03MjEsNyArNzIxLDggQEAgc3RhdGljIHN0cnVj dCByYWRlb25fdHRtX3R0ICpyYWRlb25fdHRtX3R0X3RvX2d0dChzdHJ1Y3QgdHRtX3R0ICp0dG0p CiAJcmV0dXJuIChzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqKXR0bTsKIH0KIAotc3RhdGljIGludCBy YWRlb25fdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQgcmFk ZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sCisJCQlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqZ3R0ID0gcmFkZW9u X3R0bV90dF90b19ndHQodHRtKTsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldjsKQEAgLTc1 MCwxNyArNzUxLDE3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3Qg dHRtX3R0ICp0dG0pCiAJcmRldiA9IHJhZGVvbl9nZXRfcmRldih0dG0tPmJkZXYpOwogI2lmIElT X0VOQUJMRUQoQ09ORklHX0FHUCkKIAlpZiAocmRldi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7 Ci0JCXJldHVybiB0dG1fYWdwX3R0X3BvcHVsYXRlKHR0bSk7CisJCXJldHVybiB0dG1fYWdwX3R0 X3BvcHVsYXRlKHR0bSwgY3R4KTsKIAl9CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19TV0lPVExC CiAJaWYgKHN3aW90bGJfbnJfdGJsKCkpIHsKLQkJcmV0dXJuIHR0bV9kbWFfcG9wdWxhdGUoJmd0 dC0+dHRtLCByZGV2LT5kZXYpOworCQlyZXR1cm4gdHRtX2RtYV9wb3B1bGF0ZSgmZ3R0LT50dG0s IHJkZXYtPmRldiwgY3R4KTsKIAl9CiAjZW5kaWYKIAotCXJldHVybiB0dG1fcG9wdWxhdGVfYW5k X21hcF9wYWdlcyhyZGV2LT5kZXYsICZndHQtPnR0bSk7CisJcmV0dXJuIHR0bV9wb3B1bGF0ZV9h bmRfbWFwX3BhZ2VzKHJkZXYtPmRldiwgJmd0dC0+dHRtLCBjdHgpOwogfQogCiBzdGF0aWMgdm9p ZCByYWRlb25fdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2FncF9iYWNrZW5kLmMKaW5kZXggMDI4YWI2MC4uM2U3OTVhMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jCkBAIC0xMzMsMTIgKzEzMywxMiBAQCBzdHJ1Y3Qg dHRtX3R0ICp0dG1fYWdwX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIH0K IEVYUE9SVF9TWU1CT0wodHRtX2FncF90dF9jcmVhdGUpOwogCi1pbnQgdHRtX2FncF90dF9wb3B1 bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCitpbnQgdHRtX2FncF90dF9wb3B1bGF0ZShzdHJ1Y3Qg dHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewogCWlmICh0dG0t PnN0YXRlICE9IHR0X3VucG9wdWxhdGVkKQogCQlyZXR1cm4gMDsKIAotCXJldHVybiB0dG1fcG9v bF9wb3B1bGF0ZSh0dG0pOworCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0sIGN0eCk7CiB9 CiBFWFBPUlRfU1lNQk9MKHR0bV9hZ3BfdHRfcG9wdWxhdGUpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i b191dGlsLmMKaW5kZXggNmUzNTNkZi4uYjdlYjUwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0 aWwuYwpAQCAtMzc2LDcgKzM3Niw3IEBAIGludCB0dG1fYm9fbW92ZV9tZW1jcHkoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKIAkgKiBUVE0gbWlnaHQgYmUgbnVsbCBmb3IgbW92ZXMgd2l0 aGluIHRoZSBzYW1lIHJlZ2lvbi4KIAkgKi8KIAlpZiAodHRtICYmIHR0bS0+c3RhdGUgPT0gdHRf dW5wb3B1bGF0ZWQpIHsKLQkJcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0 ZSh0dG0pOworCQlyZXQgPSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKHR0bSwg Y3R4KTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0MTsKIAl9CkBAIC01NDUsMTQgKzU0NSwxOSBA QCBzdGF0aWMgaW50IHR0bV9ib19rbWFwX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCQkJICAgdW5zaWduZWQgbG9uZyBudW1fcGFnZXMsCiAJCQkgICBzdHJ1Y3QgdHRtX2JvX2tt YXBfb2JqICptYXApCiB7Ci0Jc3RydWN0IHR0bV9tZW1fcmVnICptZW0gPSAmYm8tPm1lbTsgcGdw cm90X3QgcHJvdDsKKwlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSA9ICZiby0+bWVtOworCXN0cnVj dCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7CisJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCisJ CS5ub193YWl0X2dwdSA9IGZhbHNlCisJfTsKIAlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRt OworCXBncHJvdF90IHByb3Q7CiAJaW50IHJldDsKIAogCUJVR19PTighdHRtKTsKIAogCWlmICh0 dG0tPnN0YXRlID09IHR0X3VucG9wdWxhdGVkKSB7Ci0JCXJldCA9IHR0bS0+YmRldi0+ZHJpdmVy LT50dG1fdHRfcG9wdWxhdGUodHRtKTsKKwkJcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90 dF9wb3B1bGF0ZSh0dG0sICZjdHgpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdm0uYwppbmRleCBjOGViYjc1Li42NWRmY2RkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvX3ZtLmMKQEAgLTIxNSwxMiArMjE1LDE3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX3ZtX2Zh dWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQljdm1hLnZtX3BhZ2VfcHJvdCA9IHR0bV9pb19w cm90KGJvLT5tZW0ucGxhY2VtZW50LAogCQkJCQkJY3ZtYS52bV9wYWdlX3Byb3QpOwogCX0gZWxz ZSB7CisJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7CisJCQkuaW50ZXJydXB0aWJs ZSA9IGZhbHNlLAorCQkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKKwkJfTsKKwogCQl0dG0gPSBiby0+ dHRtOwogCQljdm1hLnZtX3BhZ2VfcHJvdCA9IHR0bV9pb19wcm90KGJvLT5tZW0ucGxhY2VtZW50 LAogCQkJCQkJY3ZtYS52bV9wYWdlX3Byb3QpOwogCiAJCS8qIEFsbG9jYXRlIGFsbCBwYWdlIGF0 IG9uY2UsIG1vc3QgY29tbW9uIHVzYWdlICovCi0JCWlmICh0dG0tPmJkZXYtPmRyaXZlci0+dHRt X3R0X3BvcHVsYXRlKHR0bSkpIHsKKwkJaWYgKHR0bS0+YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9w dWxhdGUodHRtLCAmY3R4KSkgewogCQkJcmV0dmFsID0gVk1fRkFVTFRfT09NOwogCQkJZ290byBv dXRfaW9fdW5sb2NrOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9w YWdlX2FsbG9jLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMKaW5kZXgg OGY5M2ZmMy4uZjFhM2Q1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFn ZV9hbGxvYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYwpAQCAt MTA1OCwxMyArMTA1OCw5IEBAIHZvaWQgdHRtX3BhZ2VfYWxsb2NfZmluaSh2b2lkKQogCV9tYW5h Z2VyID0gTlVMTDsKIH0KIAotaW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0 bSkKK2ludCB0dG1fcG9vbF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4KQogewogCXN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqbWVtX2dsb2Ig PSB0dG0tPmdsb2ItPm1lbV9nbG9iOwotCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7 Ci0JCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCi0JCS5ub193YWl0X2dwdSA9IGZhbHNlCi0JfTsK IAl1bnNpZ25lZCBpOwogCWludCByZXQ7CiAKQEAgLTEwODAsNyArMTA3Niw3IEBAIGludCB0dG1f cG9vbF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAKIAlmb3IgKGkgPSAwOyBpIDwgdHRt LT5udW1fcGFnZXM7ICsraSkgewogCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdlKG1l bV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAotCQkJCQkJUEFHRV9TSVpFLCAmY3R4KTsKKwkJCQkJCVBB R0VfU0laRSwgY3R4KTsKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewogCQkJdHRtX3Bvb2xf dW5wb3B1bGF0ZSh0dG0pOwogCQkJcmV0dXJuIC1FTk9NRU07CkBAIC0xMTE3LDEyICsxMTEzLDEz IEBAIHZvaWQgdHRtX3Bvb2xfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiB9CiBFWFBP UlRfU1lNQk9MKHR0bV9wb29sX3VucG9wdWxhdGUpOwogCi1pbnQgdHRtX3BvcHVsYXRlX2FuZF9t YXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHRtX2RtYV90dCAqdHQpCitpbnQg dHRtX3BvcHVsYXRlX2FuZF9tYXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHRt X2RtYV90dCAqdHQsCisJCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewogCXVu c2lnbmVkIGksIGo7CiAJaW50IHI7CiAKLQlyID0gdHRtX3Bvb2xfcG9wdWxhdGUoJnR0LT50dG0p OworCXIgPSB0dG1fcG9vbF9wb3B1bGF0ZSgmdHQtPnR0bSwgY3R4KTsKIAlpZiAocikKIAkJcmV0 dXJuIHI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2Nf ZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jX2RtYS5jCmluZGV4IDhh YWM4NmEuLjNhYzUzOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2Vf YWxsb2NfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvY19kbWEu YwpAQCAtOTIzLDE0ICs5MjMsMTEgQEAgc3RhdGljIGdmcF90IHR0bV9kbWFfcG9vbF9nZnBfZmxh Z3Moc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIGJvb2wgaHVnZSkKICAqIE9uIHN1Y2Nlc3Mg cGFnZXMgbGlzdCB3aWxsIGhvbGQgY291bnQgbnVtYmVyIG9mIGNvcnJlY3RseQogICogY2FjaGVk IHBhZ2VzLiBPbiBmYWlsdXJlIHdpbGwgaG9sZCB0aGUgbmVnYXRpdmUgcmV0dXJuIHZhbHVlICgt RU5PTUVNLCBldGMpLgogICovCi1pbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90 dCAqdHRtX2RtYSwgc3RydWN0IGRldmljZSAqZGV2KQoraW50IHR0bV9kbWFfcG9wdWxhdGUoc3Ry dWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCXN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewogCXN0cnVjdCB0dG1fdHQgKnR0bSA9ICZ0dG1fZG1h LT50dG07CiAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9IHR0bS0+Z2xvYi0+bWVt X2dsb2I7Ci0Jc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKLQkJLmludGVycnVwdGli bGUgPSBmYWxzZSwKLQkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKLQl9OwogCXVuc2lnbmVkIGxvbmcg bnVtX3BhZ2VzID0gdHRtLT5udW1fcGFnZXM7CiAJc3RydWN0IGRtYV9wb29sICpwb29sOwogCWVu dW0gcG9vbF90eXBlIHR5cGU7CkBAIC05NjYsNyArOTYzLDcgQEAgaW50IHR0bV9kbWFfcG9wdWxh dGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldikKIAkJCWJy ZWFrOwogCiAJCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UobWVtX2dsb2IsIHR0bS0+ cGFnZXNbaV0sCi0JCQkJCQlwb29sLT5zaXplLCAmY3R4KTsKKwkJCQkJCXBvb2wtPnNpemUsIGN0 eCk7CiAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJCXR0bV9kbWFfdW5wb3B1bGF0ZSh0 dG1fZG1hLCBkZXYpOwogCQkJcmV0dXJuIC1FTk9NRU07CkBAIC0xMDAyLDcgKzk5OSw3IEBAIGlu dCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hLCBzdHJ1Y3QgZGV2 aWNlICpkZXYpCiAJCX0KIAogCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdlKG1lbV9n bG9iLCB0dG0tPnBhZ2VzW2ldLAotCQkJCQkJcG9vbC0+c2l6ZSwgJmN0eCk7CisJCQkJCQlwb29s LT5zaXplLCBjdHgpOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7CiAJCQl0dG1fZG1hX3Vu cG9wdWxhdGUodHRtX2RtYSwgZGV2KTsKIAkJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0 LmMKaW5kZXggOGViYzhkMy4uYjQ4ZDdhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fdHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCkBAIC0yNjMsNiAr MjYzLDEwIEBAIHZvaWQgdHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAKIGludCB0 dG1fdHRfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVt KQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7CisJCS5pbnRlcnJ1cHRpYmxl ID0gZmFsc2UsCisJCS5ub193YWl0X2dwdSA9IGZhbHNlCisJfTsKIAlpbnQgcmV0ID0gMDsKIAog CWlmICghdHRtKQpAQCAtMjcxLDcgKzI3NSw3IEBAIGludCB0dG1fdHRfYmluZChzdHJ1Y3QgdHRt X3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtKQogCWlmICh0dG0tPnN0YXRlID09 IHR0X2JvdW5kKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IHR0bS0+YmRldi0+ZHJpdmVyLT50dG1f dHRfcG9wdWxhdGUodHRtKTsKKwlyZXQgPSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVs YXRlKHR0bSwgJmN0eCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X29iamVjdC5jCmluZGV4IDZmNjZiNzMuLjBiOTBjZGIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9vYmplY3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfb2JqZWN0LmMKQEAgLTEyNCwxMyArMTI0LDE3IEBAIGlu dCB2aXJ0aW9fZ3B1X29iamVjdF9nZXRfc2dfdGFibGUoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNl ICpxZGV2LAogCWludCByZXQ7CiAJc3RydWN0IHBhZ2UgKipwYWdlcyA9IGJvLT50Ym8udHRtLT5w YWdlczsKIAlpbnQgbnJfcGFnZXMgPSBiby0+dGJvLm51bV9wYWdlczsKKwlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggY3R4ID0geworCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNlLAorCQkubm9fd2Fp dF9ncHUgPSBmYWxzZQorCX07CiAKIAkvKiB3dGYgc3dhcHBpbmcgKi8KIAlpZiAoYm8tPnBhZ2Vz KQogCQlyZXR1cm4gMDsKIAogCWlmIChiby0+dGJvLnR0bS0+c3RhdGUgPT0gdHRfdW5wb3B1bGF0 ZWQpCi0JCWJvLT50Ym8udHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShiby0+dGJv LnR0bSk7CisJCWJvLT50Ym8udHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShiby0+ dGJvLnR0bSwgJmN0eCk7CiAJYm8tPnBhZ2VzID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHNnX3Rh YmxlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFiby0+cGFnZXMpCiAJCWdvdG8gb3V0OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jIGIvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCmluZGV4IDQ4OGM2YmQuLmY2MTE4ZjUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdmlydGlvL3ZpcnRncHVfdHRtLmMKQEAgLTMyNCwxMiArMzI0LDEzIEBAIHN0YXRpYyBz dHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyB2aXJ0aW9fZ3B1X2JhY2tlbmRfZnVuYyA9IHsKIAkuZGVz dHJveSA9ICZ2aXJ0aW9fZ3B1X3R0bV9iYWNrZW5kX2Rlc3Ryb3ksCiB9OwogCi1zdGF0aWMgaW50 IHZpcnRpb19ncHVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBp bnQgdmlydGlvX2dwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLAorCQlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlpZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBv cHVsYXRlZCkKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gdHRtX3Bvb2xfcG9wdWxhdGUodHRtKTsK KwlyZXR1cm4gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBjdHgpOwogfQogCiBzdGF0aWMgdm9pZCB2 aXJ0aW9fZ3B1X3R0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKaW5kZXggZWY5NzU0Mi4uOTBiMGQ2YiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKQEAgLTYzNSwxNiArNjM1LDEyIEBAIHN0 YXRpYyB2b2lkIHZtd190dG1fZGVzdHJveShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiB9CiAKIAotc3Rh dGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQg dm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCAqY3R4KQogewogCXN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQgPQogCQljb250YWluZXJf b2YodHRtLCBzdHJ1Y3Qgdm13X3R0bV90dCwgZG1hX3R0bS50dG0pOwogCXN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYgPSB2bXdfdHQtPmRldl9wcml2OwogCXN0cnVjdCB0dG1fbWVtX2dsb2Jh bCAqZ2xvYiA9IHZtd19tZW1fZ2xvYihkZXZfcHJpdik7Ci0Jc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4IGN0eCA9IHsKLQkJLmludGVycnVwdGlibGUgPSB0cnVlLAotCQkubm9fd2FpdF9ncHUgPSBm YWxzZQotCX07CiAJaW50IHJldDsKIAogCWlmICh0dG0tPnN0YXRlICE9IHR0X3VucG9wdWxhdGVk KQpAQCAtNjUzLDE1ICs2NDksMTYgQEAgc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVj dCB0dG1fdHQgKnR0bSkKIAlpZiAoZGV2X3ByaXYtPm1hcF9tb2RlID09IHZtd19kbWFfYWxsb2Nf Y29oZXJlbnQpIHsKIAkJc2l6ZV90IHNpemUgPQogCQkJdHRtX3JvdW5kX3BvdCh0dG0tPm51bV9w YWdlcyAqIHNpemVvZihkbWFfYWRkcl90KSk7Ci0JCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9j KGdsb2IsIHNpemUsICZjdHgpOworCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhnbG9iLCBz aXplLCBjdHgpOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQkJcmV0dXJuIHJldDsKIAot CQlyZXQgPSB0dG1fZG1hX3BvcHVsYXRlKCZ2bXdfdHQtPmRtYV90dG0sIGRldl9wcml2LT5kZXYt PmRldik7CisJCXJldCA9IHR0bV9kbWFfcG9wdWxhdGUoJnZtd190dC0+ZG1hX3R0bSwgZGV2X3By aXYtPmRldi0+ZGV2LAorCQkJCQljdHgpOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQkJ dHRtX21lbV9nbG9iYWxfZnJlZShnbG9iLCBzaXplKTsKIAl9IGVsc2UKLQkJcmV0ID0gdHRtX3Bv b2xfcG9wdWxhdGUodHRtKTsKKwkJcmV0ID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBjdHgpOwog CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X21vYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMKaW5kZXggYjE3 ZjA4Zi4uNzM2Y2E0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf bW9iLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMKQEAgLTI0MCw2 ICsyNDAsMTAgQEAgc3RhdGljIGludCB2bXdfb3RhYmxlX2JhdGNoX3NldHVwKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJdW5zaWduZWQgbG9u ZyBib19zaXplOwogCXN0cnVjdCB2bXdfb3RhYmxlICpvdGFibGVzID0gYmF0Y2gtPm90YWJsZXM7 CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSBm YWxzZSwKKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKKwl9OwogCVNWR0FPVGFibGVUeXBlIGk7CiAJ aW50IHJldDsKIApAQCAtMjY0LDcgKzI2OCw3IEBAIHN0YXRpYyBpbnQgdm13X290YWJsZV9iYXRj aF9zZXR1cChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCiAJcmV0ID0gdHRtX2JvX3Jl c2VydmUoYmF0Y2gtPm90YWJsZV9ibywgZmFsc2UsIHRydWUsIE5VTEwpOwogCUJVR19PTihyZXQg IT0gMCk7Ci0JcmV0ID0gdm13X2JvX2RyaXZlci50dG1fdHRfcG9wdWxhdGUoYmF0Y2gtPm90YWJs ZV9iby0+dHRtKTsKKwlyZXQgPSB2bXdfYm9fZHJpdmVyLnR0bV90dF9wb3B1bGF0ZShiYXRjaC0+ b3RhYmxlX2JvLT50dG0sICZjdHgpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8g b3V0X3VucmVzZXJ2ZTsKIAlyZXQgPSB2bXdfYm9fbWFwX2RtYShiYXRjaC0+b3RhYmxlX2JvKTsK QEAgLTQzMCw2ICs0MzQsMTEgQEAgc3RhdGljIGludCB2bXdfbW9iX3B0X3BvcHVsYXRlKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgc3RydWN0IHZtd19tb2IgKm1vYikK IHsKIAlpbnQgcmV0OworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7CisJCS5pbnRl cnJ1cHRpYmxlID0gZmFsc2UsCisJCS5ub193YWl0X2dwdSA9IGZhbHNlCisJfTsKKwogCUJVR19P Tihtb2ItPnB0X2JvICE9IE5VTEwpOwogCiAJcmV0ID0gdHRtX2JvX2NyZWF0ZSgmZGV2X3ByaXYt PmJkZXYsIG1vYi0+bnVtX3BhZ2VzICogUEFHRV9TSVpFLApAQCAtNDQyLDcgKzQ1MSw3IEBAIHN0 YXRpYyBpbnQgdm13X21vYl9wdF9wb3B1bGF0ZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LAogCXJldCA9IHR0bV9ib19yZXNlcnZlKG1vYi0+cHRfYm8sIGZhbHNlLCB0cnVlLCBOVUxMKTsK IAogCUJVR19PTihyZXQgIT0gMCk7Ci0JcmV0ID0gdm13X2JvX2RyaXZlci50dG1fdHRfcG9wdWxh dGUobW9iLT5wdF9iby0+dHRtKTsKKwlyZXQgPSB2bXdfYm9fZHJpdmVyLnR0bV90dF9wb3B1bGF0 ZShtb2ItPnB0X2JvLT50dG0sICZjdHgpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdv dG8gb3V0X3VucmVzZXJ2ZTsKIAlyZXQgPSB2bXdfYm9fbWFwX2RtYShtb2ItPnB0X2JvKTsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90 dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDkzNGZlY2YuLjg0ODYwZWMgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaApAQCAtMzUyLDcgKzM1Miw4IEBAIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHsKIAkg KiBSZXR1cm5zOgogCSAqIC1FTk9NRU06IE91dCBvZiBtZW1vcnkuCiAJICovCi0JaW50ICgqdHRt X3R0X3BvcHVsYXRlKShzdHJ1Y3QgdHRtX3R0ICp0dG0pOworCWludCAoKnR0bV90dF9wb3B1bGF0 ZSkoc3RydWN0IHR0bV90dCAqdHRtLAorCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgp OwogCiAJLyoqCiAJICogdHRtX3R0X3VucG9wdWxhdGUKQEAgLTEwNzcsNyArMTA3OCw3IEBAIHN0 cnVjdCB0dG1fdHQgKnR0bV9hZ3BfdHRfY3JlYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LAogCQkJCSBzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2UsCiAJCQkJIHVuc2lnbmVkIGxv bmcgc2l6ZSwgdWludDMyX3QgcGFnZV9mbGFncywKIAkJCQkgc3RydWN0IHBhZ2UgKmR1bW15X3Jl YWRfcGFnZSk7Ci1pbnQgdHRtX2FncF90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pOwor aW50IHR0bV9hZ3BfdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggKmN0eCk7CiB2b2lkIHR0bV9hZ3BfdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRt X3R0ICp0dG0pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcGFn ZV9hbGxvYy5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmgKaW5kZXggNTkzODEx My4uNGQ5YjAxOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmgK KysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg dm9pZCB0dG1fcGFnZV9hbGxvY19maW5pKHZvaWQpOwogICoKICAqIEFkZCBiYWNraW5nIHBhZ2Vz IHRvIGFsbCBvZiBAdHRtCiAgKi8KLWludCB0dG1fcG9vbF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0pOworaW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwogCiAvKioKICAqIHR0bV9wb29sX3VucG9wdWxhdGU6 CkBAIC02MSw3ICs2MSw4IEBAIHZvaWQgdHRtX3Bvb2xfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0pOwogLyoqCiAgKiBQb3B1bGF0ZXMgYW5kIERNQSBtYXBzIHBhZ2VzIHRvIGZ1bGxmaWwg YSB0dG1fZG1hX3BvcHVsYXRlKCkgcmVxdWVzdAogICovCi1pbnQgdHRtX3BvcHVsYXRlX2FuZF9t YXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHRtX2RtYV90dCAqdHQpOworaW50 IHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0 bV9kbWFfdHQgKnR0LAorCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKIAogLyoq CiAgKiBVbnBvcHVsYXRlcyBhbmQgRE1BIHVubWFwcyBwYWdlcyBhcyBwYXJ0IG9mIGEKQEAgLTg5 LDcgKzkwLDggQEAgdm9pZCB0dG1fZG1hX3BhZ2VfYWxsb2NfZmluaSh2b2lkKTsKICAqLwogaW50 IHR0bV9kbWFfcGFnZV9hbGxvY19kZWJ1Z2ZzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0 YSk7CiAKLWludCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hLCBz dHJ1Y3QgZGV2aWNlICpkZXYpOworaW50IHR0bV9kbWFfcG9wdWxhdGUoc3RydWN0IHR0bV9kbWFf dHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCAqY3R4KTsKIHZvaWQgdHRtX2RtYV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0 dG1fZG1hLCBzdHJ1Y3QgZGV2aWNlICpkZXYpOwogCiAjZWxzZQpAQCAtMTA2LDcgKzEwOCw4IEBA IHN0YXRpYyBpbmxpbmUgaW50IHR0bV9kbWFfcGFnZV9hbGxvY19kZWJ1Z2ZzKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgaW50IHR0 bV9kbWFfcG9wdWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsCi0JCQkJICAgc3RydWN0 IGRldmljZSAqZGV2KQorCQkJCXN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlyZXR1cm4gLUVOT01FTTsKIH0KLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK