From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger He Subject: [PATCH 4/7] drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver Date: Wed, 20 Dec 2017 18:34:58 +0800 Message-ID: <1513766101-15993-4-git-send-email-Hongbo.He@amd.com> References: <1513766101-15993-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: In-Reply-To: <1513766101-15993-1-git-send-email-Hongbo.He-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Roger He List-Id: dri-devel@lists.freedesktop.org Q2hhbmdlLUlkOiBJODAzZWE1MmQxMWU1YzA2YWRkMGRmZmFiODM2YzNhZWNjMDBiNTZkZApTaWdu ZWQtb2ZmLWJ5OiBSb2dlciBIZSA8SG9uZ2JvLkhlQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICB8ICA3ICsrKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hc3QvYXN0X3R0bS5jICAgICAgICAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJtL2Np cnJ1cy9jaXJydXNfdHRtLmMgICAgICB8ICA1ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2JvLmMgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X3R0bS5jICAgICAgICAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdHRtLmMgICAgICB8ICA5ICsrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdw X2JhY2tlbmQuYyAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwu YyAgICAgICAgfCAxMSArKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0u YyAgICAgICAgICB8ICA3ICsrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxs b2MuYyAgICAgfCAxMyArKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdl X2FsbG9jX2RtYS5jIHwgMTEgKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0 LmMgICAgICAgICAgICAgfCAgNiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdw dV9vYmplY3QuYyAgfCAgNiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90 dG0uYyAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVy LmMgICB8IDEzICsrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21v Yi5jICAgICAgfCAxMyArKysrKysrKysrKy0tCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZl ci5oICAgICAgICAgIHwgIDUgKysrLS0KIGluY2x1ZGUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5o ICAgICAgICAgfCAxMSArKysrKysrLS0tLQogMTggZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9u cygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCmluZGV4IGYxYjdkOTguLjUyYWFiOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmMKQEAgLTk5MCw3ICs5OTAsOCBAQCBzdGF0aWMgc3RydWN0IHR0bV90dCAqYW1k Z3B1X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJcmV0dXJuICZn dHQtPnR0bS50dG07CiB9CiAKLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1 Y3QgdHRtX3R0ICp0dG0pCitzdGF0aWMgaW50IGFtZGdwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0 IHR0bV90dCAqdHRtLAorCQkJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldih0dG0tPmJkZXYpOwog CXN0cnVjdCBhbWRncHVfdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKQEAgLTEwMTgsMTEgKzEw MTksMTEgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQg KnR0bSkKIAogI2lmZGVmIENPTkZJR19TV0lPVExCCiAJaWYgKHN3aW90bGJfbnJfdGJsKCkpIHsK LQkJcmV0dXJuIHR0bV9kbWFfcG9wdWxhdGUoJmd0dC0+dHRtLCBhZGV2LT5kZXYpOworCQlyZXR1 cm4gdHRtX2RtYV9wb3B1bGF0ZSgmZ3R0LT50dG0sIGFkZXYtPmRldiwgY3R4KTsKIAl9CiAjZW5k aWYKIAotCXJldHVybiB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhhZGV2LT5kZXYsICZndHQt PnR0bSk7CisJcmV0dXJuIHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKGFkZXYtPmRldiwgJmd0 dC0+dHRtLCBjdHgpOwogfQogCiBzdGF0aWMgdm9pZCBhbWRncHVfdHRtX3R0X3VucG9wdWxhdGUo c3RydWN0IHR0bV90dCAqdHRtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3Rf dHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwppbmRleCAyOGRhN2MyLi4xNDEz ZTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwpAQCAtMjE2LDkgKzIxNiwxMCBAQCBzdGF0aWMgc3Ry dWN0IHR0bV90dCAqYXN0X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs CiAJcmV0dXJuIHR0OwogfQogCi1zdGF0aWMgaW50IGFzdF90dG1fdHRfcG9wdWxhdGUoc3RydWN0 IHR0bV90dCAqdHRtKQorc3RhdGljIGludCBhc3RfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1f dHQgKnR0bSwKKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewotCXJldHVybiB0 dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOworCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0sIGN0 eCk7CiB9CiAKIHN0YXRpYyB2b2lkIGFzdF90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCmluZGV4IDJhNWI1NGQuLjk1ZTJk NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCkBAIC0yMTYsOSArMjE2LDEwIEBA IHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICpjaXJydXNfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKIAlyZXR1cm4gdHQ7CiB9CiAKLXN0YXRpYyBpbnQgY2lycnVzX3R0bV90 dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCitzdGF0aWMgaW50IGNpcnJ1c190dG1fdHRf cG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLAorCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0 eCAqY3R4KQogewotCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOworCXJldHVybiB0dG1f cG9vbF9wb3B1bGF0ZSh0dG0sIGN0eCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNpcnJ1c190dG1fdHRf dW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2JvLmMKaW5kZXggNmI2ZmIyMC4uYjE0MWMyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfYm8uYwpAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAgbm91dmVhdV90dG1fZmF1bHRfcmVzZXJ2ZV9u b3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIH0KIAogc3RhdGljIGludAotbm91 dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQorbm91dmVhdV90dG1fdHRf cG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0 eCkKIHsKIAlzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSA9ICh2b2lkICopdHRtOwogCXN0cnVj dCBub3V2ZWF1X2RybSAqZHJtOwpAQCAtMTU3MiwxNyArMTU3MiwxNyBAQCBub3V2ZWF1X3R0bV90 dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19B R1ApCiAJaWYgKGRybS0+YWdwLmJyaWRnZSkgewotCQlyZXR1cm4gdHRtX2FncF90dF9wb3B1bGF0 ZSh0dG0pOworCQlyZXR1cm4gdHRtX2FncF90dF9wb3B1bGF0ZSh0dG0sIGN0eCk7CiAJfQogI2Vu ZGlmCiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19TV0lPVExCKSAmJiBJU19FTkFCTEVEKENPTkZJ R19YODYpCiAJaWYgKHN3aW90bGJfbnJfdGJsKCkpIHsKLQkJcmV0dXJuIHR0bV9kbWFfcG9wdWxh dGUoKHZvaWQgKil0dG0sIGRldik7CisJCXJldHVybiB0dG1fZG1hX3BvcHVsYXRlKCh2b2lkICop dHRtLCBkZXYsIGN0eCk7CiAJfQogI2VuZGlmCiAKLQlyID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRt KTsKKwlyID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBjdHgpOwogCWlmIChyKSB7CiAJCXJldHVy biByOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jIGIvZHJp dmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKaW5kZXggNzhjZTExOC4uOTg5NjQ1YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfdHRtLmMKQEAgLTI5MSwxNCArMjkxLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX2Jh Y2tlbmRfZnVuYyBxeGxfYmFja2VuZF9mdW5jID0gewogCS5kZXN0cm95ID0gJnF4bF90dG1fYmFj a2VuZF9kZXN0cm95LAogfTsKIAotc3RhdGljIGludCBxeGxfdHRtX3R0X3BvcHVsYXRlKHN0cnVj dCB0dG1fdHQgKnR0bSkKK3N0YXRpYyBpbnQgcXhsX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRt X3R0ICp0dG0sCisJCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7CiAJaW50IHI7 CiAKIAlpZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBvcHVsYXRlZCkKIAkJcmV0dXJuIDA7CiAKLQly ID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtKTsKKwlyID0gdHRtX3Bvb2xfcG9wdWxhdGUodHRtLCBj dHgpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0u YwppbmRleCA1NTdmZDc5Li42MzRmYzZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0u YwpAQCAtNzIxLDcgKzcyMSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqcmFkZW9u X3R0bV90dF90b19ndHQoc3RydWN0IHR0bV90dCAqdHRtKQogCXJldHVybiAoc3RydWN0IHJhZGVv bl90dG1fdHQgKil0dG07CiB9CiAKLXN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShz dHJ1Y3QgdHRtX3R0ICp0dG0pCitzdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfcG9wdWxhdGUoc3Ry dWN0IHR0bV90dCAqdHRtLAorCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewog CXN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSByYWRlb25fdHRtX3R0X3RvX2d0dCh0dG0pOwog CXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2OwpAQCAtNzUwLDE3ICs3NTEsMTcgQEAgc3RhdGlj IGludCByYWRlb25fdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKIAlyZGV2ID0g cmFkZW9uX2dldF9yZGV2KHR0bS0+YmRldik7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQKQog CWlmIChyZGV2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKLQkJcmV0dXJuIHR0bV9hZ3BfdHRf cG9wdWxhdGUodHRtKTsKKwkJcmV0dXJuIHR0bV9hZ3BfdHRfcG9wdWxhdGUodHRtLCBjdHgpOwog CX0KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1NXSU9UTEIKIAlpZiAoc3dpb3RsYl9ucl90Ymwo KSkgewotCQlyZXR1cm4gdHRtX2RtYV9wb3B1bGF0ZSgmZ3R0LT50dG0sIHJkZXYtPmRldik7CisJ CXJldHVybiB0dG1fZG1hX3BvcHVsYXRlKCZndHQtPnR0bSwgcmRldi0+ZGV2LCBjdHgpOwogCX0K ICNlbmRpZgogCi0JcmV0dXJuIHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKHJkZXYtPmRldiwg Jmd0dC0+dHRtKTsKKwlyZXR1cm4gdHRtX3BvcHVsYXRlX2FuZF9tYXBfcGFnZXMocmRldi0+ZGV2 LCAmZ3R0LT50dG0sIGN0eCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5wb3B1 bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9hZ3BfYmFja2VuZC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQu YwppbmRleCAwMjhhYjYwLi4zZTc5NWEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9hZ3BfYmFja2VuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNr ZW5kLmMKQEAgLTEzMywxMiArMTMzLDEyIEBAIHN0cnVjdCB0dG1fdHQgKnR0bV9hZ3BfdHRfY3Jl YXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogfQogRVhQT1JUX1NZTUJPTCh0dG1fYWdw X3R0X2NyZWF0ZSk7CiAKLWludCB0dG1fYWdwX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0 bSkKK2ludCB0dG1fYWdwX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7CiAJaWYgKHR0bS0+c3RhdGUgIT0gdHRfdW5wb3B1bGF0 ZWQpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7CisJcmV0 dXJuIHR0bV9wb29sX3BvcHVsYXRlKHR0bSwgY3R4KTsKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2Fn cF90dF9wb3B1bGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv X3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwppbmRleCA2ZTM1M2Rm Li5iN2ViNTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCkBAIC0zNzYsNyArMzc2LDcg QEAgaW50IHR0bV9ib19tb3ZlX21lbWNweShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAog CSAqIFRUTSBtaWdodCBiZSBudWxsIGZvciBtb3ZlcyB3aXRoaW4gdGhlIHNhbWUgcmVnaW9uLgog CSAqLwogCWlmICh0dG0gJiYgdHRtLT5zdGF0ZSA9PSB0dF91bnBvcHVsYXRlZCkgewotCQlyZXQg PSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKHR0bSk7CisJCXJldCA9IHR0bS0+ YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUodHRtLCBjdHgpOwogCQlpZiAocmV0KQogCQkJ Z290byBvdXQxOwogCX0KQEAgLTU0NSwxNCArNTQ1LDE5IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2tt YXBfdHRtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCQkgICB1bnNpZ25lZCBsb25n IG51bV9wYWdlcywKIAkJCSAgIHN0cnVjdCB0dG1fYm9fa21hcF9vYmogKm1hcCkKIHsKLQlzdHJ1 Y3QgdHRtX21lbV9yZWcgKm1lbSA9ICZiby0+bWVtOyBwZ3Byb3RfdCBwcm90OworCXN0cnVjdCB0 dG1fbWVtX3JlZyAqbWVtID0gJmJvLT5tZW07CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0 eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSBmYWxzZSwKKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UK Kwl9OwogCXN0cnVjdCB0dG1fdHQgKnR0bSA9IGJvLT50dG07CisJcGdwcm90X3QgcHJvdDsKIAlp bnQgcmV0OwogCiAJQlVHX09OKCF0dG0pOwogCiAJaWYgKHR0bS0+c3RhdGUgPT0gdHRfdW5wb3B1 bGF0ZWQpIHsKLQkJcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0p OworCQlyZXQgPSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKHR0bSwgJmN0eCk7 CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCmlu ZGV4IGM4ZWJiNzUuLjY1ZGZjZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwpAQCAtMjE1LDEy ICsyMTUsMTcgQEAgc3RhdGljIGludCB0dG1fYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2 bWYpCiAJCWN2bWEudm1fcGFnZV9wcm90ID0gdHRtX2lvX3Byb3QoYm8tPm1lbS5wbGFjZW1lbnQs CiAJCQkJCQljdm1hLnZtX3BhZ2VfcHJvdCk7CiAJfSBlbHNlIHsKKwkJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IGN0eCA9IHsKKwkJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCisJCQkubm9fd2Fp dF9ncHUgPSBmYWxzZQorCQl9OworCiAJCXR0bSA9IGJvLT50dG07CiAJCWN2bWEudm1fcGFnZV9w cm90ID0gdHRtX2lvX3Byb3QoYm8tPm1lbS5wbGFjZW1lbnQsCiAJCQkJCQljdm1hLnZtX3BhZ2Vf cHJvdCk7CiAKIAkJLyogQWxsb2NhdGUgYWxsIHBhZ2UgYXQgb25jZSwgbW9zdCBjb21tb24gdXNh Z2UgKi8KLQkJaWYgKHR0bS0+YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUodHRtKSkgewor CQlpZiAodHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0sICZjdHgpKSB7CiAJ CQlyZXR2YWwgPSBWTV9GQVVMVF9PT007CiAJCQlnb3RvIG91dF9pb191bmxvY2s7CiAJCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYwppbmRleCA4ZjkzZmYzLi5mMWEzZDU1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5jCkBAIC0xMDU4LDEzICsxMDU4LDkgQEAgdm9p ZCB0dG1fcGFnZV9hbGxvY19maW5pKHZvaWQpCiAJX21hbmFnZXIgPSBOVUxMOwogfQogCi1pbnQg dHRtX3Bvb2xfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQoraW50IHR0bV9wb29sX3BvcHVs YXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7 CiAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9IHR0bS0+Z2xvYi0+bWVtX2dsb2I7 Ci0Jc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKLQkJLmludGVycnVwdGlibGUgPSBm YWxzZSwKLQkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKLQl9OwogCXVuc2lnbmVkIGk7CiAJaW50IHJl dDsKIApAQCAtMTA4MCw3ICsxMDc2LDcgQEAgaW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVjdCB0 dG1fdHQgKnR0bSkKIAogCWZvciAoaSA9IDA7IGkgPCB0dG0tPm51bV9wYWdlczsgKytpKSB7CiAJ CXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UobWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0s Ci0JCQkJCQlQQUdFX1NJWkUsICZjdHgpOworCQkJCQkJUEFHRV9TSVpFLCBjdHgpOwogCQlpZiAo dW5saWtlbHkocmV0ICE9IDApKSB7CiAJCQl0dG1fcG9vbF91bnBvcHVsYXRlKHR0bSk7CiAJCQly ZXR1cm4gLUVOT01FTTsKQEAgLTExMTcsMTIgKzExMTMsMTMgQEAgdm9pZCB0dG1fcG9vbF91bnBv cHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKIH0KIEVYUE9SVF9TWU1CT0wodHRtX3Bvb2xfdW5w b3B1bGF0ZSk7CiAKLWludCB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCB0dG1fZG1hX3R0ICp0dCkKK2ludCB0dG1fcG9wdWxhdGVfYW5kX21hcF9w YWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0dG1fZG1hX3R0ICp0dCwKKwkJCQkJc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7CiAJdW5zaWduZWQgaSwgajsKIAlpbnQgcjsK IAotCXIgPSB0dG1fcG9vbF9wb3B1bGF0ZSgmdHQtPnR0bSk7CisJciA9IHR0bV9wb29sX3BvcHVs YXRlKCZ0dC0+dHRtLCBjdHgpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvY19kbWEuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX3BhZ2VfYWxsb2NfZG1hLmMKaW5kZXggOGFhYzg2YS4uM2FjNTM5MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvY19kbWEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jX2RtYS5jCkBAIC05MjMsMTQgKzkyMywxMSBA QCBzdGF0aWMgZ2ZwX3QgdHRtX2RtYV9wb29sX2dmcF9mbGFncyhzdHJ1Y3QgdHRtX2RtYV90dCAq dHRtX2RtYSwgYm9vbCBodWdlKQogICogT24gc3VjY2VzcyBwYWdlcyBsaXN0IHdpbGwgaG9sZCBj b3VudCBudW1iZXIgb2YgY29ycmVjdGx5CiAgKiBjYWNoZWQgcGFnZXMuIE9uIGZhaWx1cmUgd2ls bCBob2xkIHRoZSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgKC1FTk9NRU0sIGV0YykuCiAgKi8KLWlu dCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hLCBzdHJ1Y3QgZGV2 aWNlICpkZXYpCitpbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2Rt YSwgc3RydWN0IGRldmljZSAqZGV2LAorCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgp CiB7CiAJc3RydWN0IHR0bV90dCAqdHRtID0gJnR0bV9kbWEtPnR0bTsKIAlzdHJ1Y3QgdHRtX21l bV9nbG9iYWwgKm1lbV9nbG9iID0gdHRtLT5nbG9iLT5tZW1fZ2xvYjsKLQlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggY3R4ID0gewotCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNlLAotCQkubm9fd2Fp dF9ncHUgPSBmYWxzZQotCX07CiAJdW5zaWduZWQgbG9uZyBudW1fcGFnZXMgPSB0dG0tPm51bV9w YWdlczsKIAlzdHJ1Y3QgZG1hX3Bvb2wgKnBvb2w7CiAJZW51bSBwb29sX3R5cGUgdHlwZTsKQEAg LTk2Niw3ICs5NjMsNyBAQCBpbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90dCAq dHRtX2RtYSwgc3RydWN0IGRldmljZSAqZGV2KQogCQkJYnJlYWs7CiAKIAkJcmV0ID0gdHRtX21l bV9nbG9iYWxfYWxsb2NfcGFnZShtZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwKLQkJCQkJCXBvb2wt PnNpemUsICZjdHgpOworCQkJCQkJcG9vbC0+c2l6ZSwgY3R4KTsKIAkJaWYgKHVubGlrZWx5KHJl dCAhPSAwKSkgewogCQkJdHRtX2RtYV91bnBvcHVsYXRlKHR0bV9kbWEsIGRldik7CiAJCQlyZXR1 cm4gLUVOT01FTTsKQEAgLTEwMDIsNyArOTk5LDcgQEAgaW50IHR0bV9kbWFfcG9wdWxhdGUoc3Ry dWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldikKIAkJfQogCiAJCXJl dCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UobWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCi0J CQkJCQlwb29sLT5zaXplLCAmY3R4KTsKKwkJCQkJCXBvb2wtPnNpemUsIGN0eCk7CiAJCWlmICh1 bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJCXR0bV9kbWFfdW5wb3B1bGF0ZSh0dG1fZG1hLCBkZXYp OwogCQkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV90dC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwppbmRleCA4ZWJjOGQzLi5iNDhk N2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKQEAgLTI2Myw2ICsyNjMsMTAgQEAgdm9pZCB0dG1fdHRf dW5iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSkKIAogaW50IHR0bV90dF9iaW5kKHN0cnVjdCB0dG1f dHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICpib19tZW0pCiB7CisJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IGN0eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSBmYWxzZSwKKwkJLm5vX3dhaXRf Z3B1ID0gZmFsc2UKKwl9OwogCWludCByZXQgPSAwOwogCiAJaWYgKCF0dG0pCkBAIC0yNzEsNyAr Mjc1LDcgQEAgaW50IHR0bV90dF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9t ZW1fcmVnICpib19tZW0pCiAJaWYgKHR0bS0+c3RhdGUgPT0gdHRfYm91bmQpCiAJCXJldHVybiAw OwogCi0JcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0pOworCXJl dCA9IHR0bS0+YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUodHRtLCAmY3R4KTsKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlv L3ZpcnRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfb2JqZWN0 LmMKaW5kZXggNmY2NmI3My4uMGI5MGNkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zp cnRpby92aXJ0Z3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdw dV9vYmplY3QuYwpAQCAtMTI0LDEzICsxMjQsMTcgQEAgaW50IHZpcnRpb19ncHVfb2JqZWN0X2dl dF9zZ190YWJsZShzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnFkZXYsCiAJaW50IHJldDsKIAlz dHJ1Y3QgcGFnZSAqKnBhZ2VzID0gYm8tPnRiby50dG0tPnBhZ2VzOwogCWludCBucl9wYWdlcyA9 IGJvLT50Ym8ubnVtX3BhZ2VzOworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7CisJ CS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCisJCS5ub193YWl0X2dwdSA9IGZhbHNlCisJfTsKIAog CS8qIHd0ZiBzd2FwcGluZyAqLwogCWlmIChiby0+cGFnZXMpCiAJCXJldHVybiAwOwogCiAJaWYg KGJvLT50Ym8udHRtLT5zdGF0ZSA9PSB0dF91bnBvcHVsYXRlZCkKLQkJYm8tPnRiby50dG0tPmJk ZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKGJvLT50Ym8udHRtKTsKKwkJYm8tPnRiby50dG0t PmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKGJvLT50Ym8udHRtLCAmY3R4KTsKIAliby0+ cGFnZXMgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2dfdGFibGUpLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIWJvLT5wYWdlcykKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfdHRt LmMKaW5kZXggNDg4YzZiZC4uNzJlYjQxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zp cnRpby92aXJ0Z3B1X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90 dG0uYwpAQCAtMzI0LDEyICszMjQsMTMgQEAgc3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5j IHZpcnRpb19ncHVfYmFja2VuZF9mdW5jID0gewogCS5kZXN0cm95ID0gJnZpcnRpb19ncHVfdHRt X2JhY2tlbmRfZGVzdHJveSwKIH07CiAKLXN0YXRpYyBpbnQgdmlydGlvX2dwdV90dG1fdHRfcG9w dWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQorc3RhdGljIGludCB2aXJ0aW9fZ3B1X3R0bV90dF9w b3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sCisJCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0 eCAqY3R4KQogewogCWlmICh0dG0tPnN0YXRlICE9IHR0X3VucG9wdWxhdGVkKQogCQlyZXR1cm4g MDsKIAotCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOworCXJldHVybiB0dG1fcG9vbF9w b3B1bGF0ZSh0dG0sIGN0eCk7CiB9CiAKIHN0YXRpYyB2b2lkIHZpcnRpb19ncHVfdHRtX3R0X3Vu cG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9i dWZmZXIuYwppbmRleCBlZjk3NTQyLi45MGIwZDZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9idWZmZXIuYwpAQCAtNjM1LDE2ICs2MzUsMTIgQEAgc3RhdGljIHZvaWQgdm13X3R0bV9k ZXN0cm95KHN0cnVjdCB0dG1fdHQgKnR0bSkKIH0KIAogCi1zdGF0aWMgaW50IHZtd190dG1fcG9w dWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQorc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0 cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiB7CiAJc3Ry dWN0IHZtd190dG1fdHQgKnZtd190dCA9CiAJCWNvbnRhaW5lcl9vZih0dG0sIHN0cnVjdCB2bXdf dHRtX3R0LCBkbWFfdHRtLnR0bSk7CiAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZt d190dC0+ZGV2X3ByaXY7CiAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iID0gdm13X21lbV9n bG9iKGRldl9wcml2KTsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewotCQkuaW50 ZXJydXB0aWJsZSA9IHRydWUsCi0JCS5ub193YWl0X2dwdSA9IGZhbHNlCi0JfTsKIAlpbnQgcmV0 OwogCiAJaWYgKHR0bS0+c3RhdGUgIT0gdHRfdW5wb3B1bGF0ZWQpCkBAIC02NTMsMTUgKzY0OSwx NiBAQCBzdGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQogCWlm IChkZXZfcHJpdi0+bWFwX21vZGUgPT0gdm13X2RtYV9hbGxvY19jb2hlcmVudCkgewogCQlzaXpl X3Qgc2l6ZSA9CiAJCQl0dG1fcm91bmRfcG90KHR0bS0+bnVtX3BhZ2VzICogc2l6ZW9mKGRtYV9h ZGRyX3QpKTsKLQkJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2MoZ2xvYiwgc2l6ZSwgJmN0eCk7 CisJCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKGdsb2IsIHNpemUsIGN0eCk7CiAJCWlmICh1 bmxpa2VseShyZXQgIT0gMCkpCiAJCQlyZXR1cm4gcmV0OwogCi0JCXJldCA9IHR0bV9kbWFfcG9w dWxhdGUoJnZtd190dC0+ZG1hX3R0bSwgZGV2X3ByaXYtPmRldi0+ZGV2KTsKKwkJcmV0ID0gdHRt X2RtYV9wb3B1bGF0ZSgmdm13X3R0LT5kbWFfdHRtLCBkZXZfcHJpdi0+ZGV2LT5kZXYsCisJCQkJ CWN0eCk7CiAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCQl0dG1fbWVtX2dsb2JhbF9mcmVl KGdsb2IsIHNpemUpOwogCX0gZWxzZQotCQlyZXQgPSB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOwor CQlyZXQgPSB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0sIGN0eCk7CiAKIAlyZXR1cm4gcmV0OwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYwppbmRleCBiMTdmMDhmLi43MzZjYTQ3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYwpAQCAtMjQwLDYgKzI0MCwxMCBAQCBzdGF0aWMg aW50IHZtd19vdGFibGVfYmF0Y2hfc2V0dXAoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwK IAl1bnNpZ25lZCBsb25nIG9mZnNldDsKIAl1bnNpZ25lZCBsb25nIGJvX3NpemU7CiAJc3RydWN0 IHZtd19vdGFibGUgKm90YWJsZXMgPSBiYXRjaC0+b3RhYmxlczsKKwlzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggY3R4ID0geworCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNlLAorCQkubm9fd2FpdF9n cHUgPSBmYWxzZQorCX07CiAJU1ZHQU9UYWJsZVR5cGUgaTsKIAlpbnQgcmV0OwogCkBAIC0yNjQs NyArMjY4LDcgQEAgc3RhdGljIGludCB2bXdfb3RhYmxlX2JhdGNoX3NldHVwKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlyZXQgPSB0dG1fYm9fcmVzZXJ2ZShiYXRjaC0+b3RhYmxl X2JvLCBmYWxzZSwgdHJ1ZSwgTlVMTCk7CiAJQlVHX09OKHJldCAhPSAwKTsKLQlyZXQgPSB2bXdf Ym9fZHJpdmVyLnR0bV90dF9wb3B1bGF0ZShiYXRjaC0+b3RhYmxlX2JvLT50dG0pOworCXJldCA9 IHZtd19ib19kcml2ZXIudHRtX3R0X3BvcHVsYXRlKGJhdGNoLT5vdGFibGVfYm8tPnR0bSwgJmN0 eCk7CiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKIAkJZ290byBvdXRfdW5yZXNlcnZlOwogCXJl dCA9IHZtd19ib19tYXBfZG1hKGJhdGNoLT5vdGFibGVfYm8pOwpAQCAtNDMwLDYgKzQzNCwxMSBA QCBzdGF0aWMgaW50IHZtd19tb2JfcHRfcG9wdWxhdGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwKIAkJCSAgICAgICBzdHJ1Y3Qgdm13X21vYiAqbW9iKQogewogCWludCByZXQ7CisJc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSBmYWxzZSwK KwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKKwl9OworCiAJQlVHX09OKG1vYi0+cHRfYm8gIT0gTlVM TCk7CiAKIAlyZXQgPSB0dG1fYm9fY3JlYXRlKCZkZXZfcHJpdi0+YmRldiwgbW9iLT5udW1fcGFn ZXMgKiBQQUdFX1NJWkUsCkBAIC00NDIsNyArNDUxLDcgQEAgc3RhdGljIGludCB2bXdfbW9iX3B0 X3BvcHVsYXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0ID0gdHRtX2JvX3Jl c2VydmUobW9iLT5wdF9ibywgZmFsc2UsIHRydWUsIE5VTEwpOwogCiAJQlVHX09OKHJldCAhPSAw KTsKLQlyZXQgPSB2bXdfYm9fZHJpdmVyLnR0bV90dF9wb3B1bGF0ZShtb2ItPnB0X2JvLT50dG0p OworCXJldCA9IHZtd19ib19kcml2ZXIudHRtX3R0X3BvcHVsYXRlKG1vYi0+cHRfYm8tPnR0bSwg JmN0eCk7CiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKIAkJZ290byBvdXRfdW5yZXNlcnZlOwog CXJldCA9IHZtd19ib19tYXBfZG1hKG1vYi0+cHRfYm8pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgK aW5kZXggOTM0ZmVjZi4uODQ4NjBlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCkBAIC0zNTIs NyArMzUyLDggQEAgc3RydWN0IHR0bV9ib19kcml2ZXIgewogCSAqIFJldHVybnM6CiAJICogLUVO T01FTTogT3V0IG9mIG1lbW9yeS4KIAkgKi8KLQlpbnQgKCp0dG1fdHRfcG9wdWxhdGUpKHN0cnVj dCB0dG1fdHQgKnR0bSk7CisJaW50ICgqdHRtX3R0X3BvcHVsYXRlKShzdHJ1Y3QgdHRtX3R0ICp0 dG0sCisJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7CiAKIAkvKioKIAkgKiB0dG1f dHRfdW5wb3B1bGF0ZQpAQCAtMTA3Nyw3ICsxMDc4LDcgQEAgc3RydWN0IHR0bV90dCAqdHRtX2Fn cF90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkJIHN0cnVjdCBhZ3Bf YnJpZGdlX2RhdGEgKmJyaWRnZSwKIAkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCB1aW50MzJfdCBw YWdlX2ZsYWdzLAogCQkJCSBzdHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlKTsKLWludCB0dG1f YWdwX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSk7CitpbnQgdHRtX2FncF90dF9wb3B1 bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsK IHZvaWQgdHRtX2FncF90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSk7CiAjZW5kaWYK IApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmggYi9pbmNsdWRl L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuaAppbmRleCA1OTM4MTEzLi5mODM5NWRkIDEwMDY0NAot LS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuaAorKysgYi9pbmNsdWRlL2RybS90 dG0vdHRtX3BhZ2VfYWxsb2MuaApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIHR0bV9wYWdlX2FsbG9j X2Zpbmkodm9pZCk7CiAgKgogICogQWRkIGJhY2tpbmcgcGFnZXMgdG8gYWxsIG9mIEB0dG0KICAq LwotaW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSk7CitpbnQgdHRtX3Bv b2xfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHgg KmN0eCk7CiAKIC8qKgogICogdHRtX3Bvb2xfdW5wb3B1bGF0ZToKQEAgLTYxLDcgKzYxLDggQEAg dm9pZCB0dG1fcG9vbF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSk7CiAvKioKICAqIFBv cHVsYXRlcyBhbmQgRE1BIG1hcHMgcGFnZXMgdG8gZnVsbGZpbCBhIHR0bV9kbWFfcG9wdWxhdGUo KSByZXF1ZXN0CiAgKi8KLWludCB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCB0dG1fZG1hX3R0ICp0dCk7CitpbnQgdHRtX3BvcHVsYXRlX2FuZF9t YXBfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdHRtX2RtYV90dCAqdHQsCisJCQkJ c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwogCiAvKioKICAqIFVucG9wdWxhdGVzIGFu ZCBETUEgdW5tYXBzIHBhZ2VzIGFzIHBhcnQgb2YgYQpAQCAtODksNyArOTAsOCBAQCB2b2lkIHR0 bV9kbWFfcGFnZV9hbGxvY19maW5pKHZvaWQpOwogICovCiBpbnQgdHRtX2RtYV9wYWdlX2FsbG9j X2RlYnVnZnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKTsKIAotaW50IHR0bV9kbWFf cG9wdWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldik7 CitpbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSwgc3RydWN0 IGRldmljZSAqZGV2LAorCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwogdm9pZCB0 dG1fZG1hX3VucG9wdWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZp Y2UgKmRldik7CiAKICNlbHNlCkBAIC0xMDYsNyArMTA4LDggQEAgc3RhdGljIGlubGluZSBpbnQg dHRtX2RtYV9wYWdlX2FsbG9jX2RlYnVnZnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQogCXJldHVybiAwOwogfQogc3RhdGljIGlubGluZSBpbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1 Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSwKLQkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCisJCQkJ ICAgc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAq Y3R4KQogewogCXJldHVybiAtRU5PTUVNOwogfQotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=