From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 17/19] drm/vboxvideo: Convert vboxvideo driver to VRAM MM Date: Mon, 6 May 2019 10:26:47 +0200 Message-ID: <20190506082649.942-18-tzimmermann@suse.de> References: <20190506082649.942-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id CBF4C896DD for ; Mon, 6 May 2019 08:27:02 +0000 (UTC) In-Reply-To: <20190506082649.942-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, airlied@linux.ie, kraxel@redhat.com, christian.koenig@amd.com, ray.huang@amd.com, hdegoede@redhat.com, noralf@tronnes.org, sam@ravnborg.org, z.liuxinliang@hisilicon.com, zourongrong@gmail.com, kong.kongxinwei@hisilicon.com, puck.chen@hisilicon.com Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org List-Id: dri-devel@lists.freedesktop.org VGhlIGRhdGEgc3RydWN0dXJlIHxzdHJ1Y3QgZHJtX3ZyYW1fbW18IGFuZCBpdHMgaGVscGVycyBy ZXBsYWNlIHZib3h2aWRlbydzClRUTS1iYXNlZCBtZW1vcnkgbWFuYWdlci4gSXQncyB0aGUgc2Ft ZSBpbXBsZW1lbnRhdGlvbjsgZXhjZXB0IGZvciB0aGUgdHlwZQpuYW1lcy4KCnY0OgoJKiBkb24n dCBzZWxlY3QgRFJNX1RUTSBvciBEUk1fVlJBTV9NTV9IRUxQRVIKdjM6CgkqIHVzZSBkcm1fZ2Vt X3ZyYW1fbW1fZnVuY3MKCSogY29udmVydCBkcml2ZXIgdG8gZHJtX2RldmljZS1iYXNlZCBpbnN0 YW5jZQp2MjoKCSogaW1wbGVtZW50IHZib3hfbW1hcCgpIHdpdGggZHJtX3ZyYW1fbW1fbW1hcCgp CgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4K UmV2aWV3ZWQtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9k cm0vdmJveHZpZGVvL3Zib3hfZHJ2LmMgIHwgIDEzICstLQogZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby92Ym94X2Rydi5oICB8ICAxNSArLS0KIGRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJv eF9tYWluLmMgfCAgMTMgKy0tCiBkcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfdHRtLmMg IHwgMTM2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKyksIDE2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmJveHZpZGVvL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWcK aW5kZXggZjhmNjg5YzU1ZTk0Li5mYzE2YTU1ODkzNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92Ym94dmlkZW8vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tj b25maWcKQEAgLTIsNyArMiw2IEBAIGNvbmZpZyBEUk1fVkJPWFZJREVPCiAJdHJpc3RhdGUgIlZp cnR1YWwgQm94IEdyYXBoaWNzIENhcmQiCiAJZGVwZW5kcyBvbiBEUk0gJiYgWDg2ICYmIFBDSQog CXNlbGVjdCBEUk1fS01TX0hFTFBFUgotCXNlbGVjdCBEUk1fVFRNCiAJc2VsZWN0IERSTV9WUkFN X0hFTFBFUgogCXNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUgogCWhlbHAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94 dmlkZW8vdmJveF9kcnYuYwppbmRleCAzMzZhOGUwM2UxNTEuLjAyNTM3YWI5Y2MwOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92Ym94dmlkZW8vdmJveF9kcnYuYwpAQCAtMTkxLDEzICsxOTEsNyBAQCBzdGF0aWMg c3RydWN0IHBjaV9kcml2ZXIgdmJveF9wY2lfZHJpdmVyID0gewogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyB2Ym94X2ZvcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUs Ci0JLm9wZW4gPSBkcm1fb3BlbiwKLQkucmVsZWFzZSA9IGRybV9yZWxlYXNlLAotCS51bmxvY2tl ZF9pb2N0bCA9IGRybV9pb2N0bCwKLQkuY29tcGF0X2lvY3RsID0gZHJtX2NvbXBhdF9pb2N0bCwK LQkubW1hcCA9IHZib3hfbW1hcCwKLQkucG9sbCA9IGRybV9wb2xsLAotCS5yZWFkID0gZHJtX3Jl YWQsCisJRFJNX1ZSQU1fTU1fRklMRV9PUEVSQVRJT05TCiB9OwogCiBzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIgZHJpdmVyID0gewpAQCAtMjE1LDEwICsyMDksNyBAQCBzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIgZHJpdmVyID0gewogCS5taW5vciA9IERSSVZFUl9NSU5PUiwKIAkucGF0Y2hsZXZl bCA9IERSSVZFUl9QQVRDSExFVkVMLAogCi0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9Ci0J CWRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkLAotCS5kdW1iX2Ny ZWF0ZSA9IHZib3hfZHVtYl9jcmVhdGUsCi0JLmR1bWJfbWFwX29mZnNldCA9IGRybV9nZW1fdnJh bV9kcml2ZXJfZHVtYl9tbWFwX29mZnNldCwKKwlEUk1fR0VNX1ZSQU1fRFJJVkVSLAogCS5wcmlt ZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRf dG9faGFuZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCiAJLmdlbV9wcmltZV9leHBv cnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 Ym94dmlkZW8vdmJveF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9kcnYu aAppbmRleCAxMmU0NzM5MmIyZjkuLjkwMjhmOTQ2YmMwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlk ZW8vdmJveF9kcnYuaApAQCAtMjAsMTEgKzIwLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5o PgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmg+CiAKLSNpbmNsdWRlIDxkcm0v dHRtL3R0bV9ib19hcGkuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KLSNp bmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9t ZW1vcnkuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tb2R1bGUuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX3ZyYW1fbW1faGVscGVyLmg+CiAKICNpbmNsdWRlICJ2Ym94dmlkZW9fZ3Vlc3QuaCIKICNp bmNsdWRlICJ2Ym94dmlkZW9fdmJlLmgiCkBAIC03OCwxMCArNzQsNiBAQCBzdHJ1Y3QgdmJveF9w cml2YXRlIHsKIAogCWludCBmYl9tdHJyOwogCi0Jc3RydWN0IHsKLQkJc3RydWN0IHR0bV9ib19k ZXZpY2UgYmRldjsKLQl9IHR0bTsKLQogCXN0cnVjdCBtdXRleCBod19tdXRleDsgLyogcHJvdGVj dHMgbW9kZXNldCBhbmQgYWNjZWwvdmJ2YSBhY2Nlc3NlcyAqLwogCXN0cnVjdCB3b3JrX3N0cnVj dCBob3RwbHVnX3dvcms7CiAJdTMyIGlucHV0X21hcHBpbmdfd2lkdGg7CkBAIC0xNjksMTYgKzE2 MSwxMSBAQCBpbnQgdmJveGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAog CQkgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpOwogdm9pZCB2Ym94 X2ZiZGV2X2Zpbmkoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCk7CiAKLWludCB2Ym94X2R1bWJf Y3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKLQkJICAgICBzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAotCQkgICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Ci0KIGludCB2 Ym94X21tX2luaXQoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCk7CiB2b2lkIHZib3hfbW1fZmlu aShzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94KTsKIAogaW50IHZib3hfZ2VtX2NyZWF0ZShzdHJ1 Y3QgdmJveF9wcml2YXRlICp2Ym94LAogCQkgICAgdTMyIHNpemUsIGJvb2wgaXNrZXJuZWwsIHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaik7Ci1pbnQgdmJveF9tbWFwKHN0cnVjdCBmaWxlICpm aWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiAKIC8qIHZib3hfcHJpbWUuYyAqLwog aW50IHZib3hfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfbWFpbi5jIGIvZHJpdmVycy9n cHUvZHJtL3Zib3h2aWRlby92Ym94X21haW4uYwppbmRleCA1MjVlOWZkNjNmNGQuLjE4NjkzZTJi ZjcyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X21haW4uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfbWFpbi5jCkBAIC0yODMsNyArMjgz LDggQEAgaW50IHZib3hfZ2VtX2NyZWF0ZShzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94LAogCWlm IChzaXplID09IDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZ2JvID0gZHJtX2dlbV92cmFtX2Ny ZWF0ZSgmdmJveC0+ZGRldiwgJnZib3gtPnR0bS5iZGV2LCBzaXplLCAwLCBmYWxzZSk7CisJZ2Jv ID0gZHJtX2dlbV92cmFtX2NyZWF0ZSgmdmJveC0+ZGRldiwgJnZib3gtPmRkZXYudnJhbV9tbS0+ YmRldiwKKwkJCQkgIHNpemUsIDAsIGZhbHNlKTsKIAlpZiAoSVNfRVJSKGdibykpIHsKIAkJcmV0 ID0gUFRSX0VSUihnYm8pOwogCQlpZiAocmV0ICE9IC1FUkVTVEFSVFNZUykKQEAgLTI5NSwxMyAr Mjk2LDMgQEAgaW50IHZib3hfZ2VtX2NyZWF0ZShzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94LAog CiAJcmV0dXJuIDA7CiB9Ci0KLWludCB2Ym94X2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSwKLQkJICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfY3Jl YXRlX2R1bWIgKmFyZ3MpCi17Ci0Jc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCA9IGRldi0+ZGV2 X3ByaXZhdGU7Ci0KLQlyZXR1cm4gZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIoZmlsZSwg ZGV2LCAmdmJveC0+dHRtLmJkZXYsIDAsCi0JCQkJCSAgICBmYWxzZSwgYXJncyk7Ci0KLX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF90dG0uYyBiL2RyaXZlcnMv Z3B1L2RybS92Ym94dmlkZW8vdmJveF90dG0uYwppbmRleCAwOTg5ZDY1NmVlZDYuLmI4MjU5NWE5 ZWQwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X3R0bS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF90dG0uYwpAQCAtOCwxMzEgKzgsMjMg QEAKICAqLwogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5o PgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KICNpbmNsdWRlICJ2Ym94X2Ry di5oIgogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3hfYmRldihzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmQpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwgc3RydWN0 IHZib3hfcHJpdmF0ZSwgdHRtLmJkZXYpOwotfQotCi1zdGF0aWMgaW50Ci12Ym94X2JvX2luaXRf bWVtX3R5cGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHUzMiB0eXBlLAotCQkgICAgICBz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKLXsKLQlzd2l0Y2ggKHR5cGUpIHsKLQlj YXNlIFRUTV9QTF9TWVNURU06Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9GTEFHX01BUFBB QkxFOwotCQltYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRNX1BMX01BU0tfQ0FDSElORzsKLQkJ bWFuLT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNIRUQ7Ci0JCWJyZWFrOwotCWNh c2UgVFRNX1BMX1ZSQU06Ci0JCW1hbi0+ZnVuYyA9ICZ0dG1fYm9fbWFuYWdlcl9mdW5jOwotCQlt YW4tPmZsYWdzID0gVFRNX01FTVRZUEVfRkxBR19GSVhFRCB8IFRUTV9NRU1UWVBFX0ZMQUdfTUFQ UEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfRkxBR19VTkNBQ0hFRCB8 IFRUTV9QTF9GTEFHX1dDOwotCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX1dD OwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIG1lbW9yeSB0 eXBlICV1XG4iLCAodW5zaWduZWQgaW50KXR5cGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0K LQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB2Ym94X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKLQkJCQkgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkK LXsKLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVtLT5t ZW1fdHlwZV07Ci0Jc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCA9IHZib3hfYmRldihiZGV2KTsK LQotCW1lbS0+YnVzLmFkZHIgPSBOVUxMOwotCW1lbS0+YnVzLm9mZnNldCA9IDA7Ci0JbWVtLT5i dXMuc2l6ZSA9IG1lbS0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7Ci0JbWVtLT5idXMuYmFzZSA9 IDA7Ci0JbWVtLT5idXMuaXNfaW9tZW0gPSBmYWxzZTsKLQlpZiAoIShtYW4tPmZsYWdzICYgVFRN X01FTVRZUEVfRkxBR19NQVBQQUJMRSkpCi0JCXJldHVybiAtRUlOVkFMOwotCXN3aXRjaCAobWVt LT5tZW1fdHlwZSkgewotCWNhc2UgVFRNX1BMX1NZU1RFTToKLQkJLyogc3lzdGVtIG1lbW9yeSAq LwotCQlyZXR1cm4gMDsKLQljYXNlIFRUTV9QTF9WUkFNOgotCQltZW0tPmJ1cy5vZmZzZXQgPSBt ZW0tPnN0YXJ0IDw8IFBBR0VfU0hJRlQ7Ci0JCW1lbS0+YnVzLmJhc2UgPSBwY2lfcmVzb3VyY2Vf c3RhcnQodmJveC0+ZGRldi5wZGV2LCAwKTsKLQkJbWVtLT5idXMuaXNfaW9tZW0gPSB0cnVlOwot CQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JcmV0dXJuIDA7Ci19 Ci0KLXN0YXRpYyB2b2lkIHZib3hfdHRtX2lvX21lbV9mcmVlKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAotCQkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKLXsKLX0KLQotc3RhdGljIHZv aWQgdmJveF90dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fdHQgKnR0KQotewotCXR0bV90 dF9maW5pKHR0KTsKLQlrZnJlZSh0dCk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgdHRtX2JhY2tlbmRf ZnVuYyB2Ym94X3R0X2JhY2tlbmRfZnVuYyA9IHsKLQkuZGVzdHJveSA9ICZ2Ym94X3R0bV9iYWNr ZW5kX2Rlc3Ryb3ksCi19OwotCi1zdGF0aWMgc3RydWN0IHR0bV90dCAqdmJveF90dG1fdHRfY3Jl YXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkJCSB1MzIgcGFnZV9mbGFncykK LXsKLQlzdHJ1Y3QgdHRtX3R0ICp0dDsKLQotCXR0ID0ga3phbGxvYyhzaXplb2YoKnR0KSwgR0ZQ X0tFUk5FTCk7Ci0JaWYgKCF0dCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQl0dC0+ZnVuYyA9ICZ2Ym94 X3R0X2JhY2tlbmRfZnVuYzsKLQlpZiAodHRtX3R0X2luaXQodHQsIGJvLCBwYWdlX2ZsYWdzKSkg ewotCQlrZnJlZSh0dCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCXJldHVybiB0dDsKLX0KLQot c3RhdGljIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHZib3hfYm9fZHJpdmVyID0gewotCS50dG1fdHRf Y3JlYXRlID0gdmJveF90dG1fdHRfY3JlYXRlLAotCS5pbml0X21lbV90eXBlID0gdmJveF9ib19p bml0X21lbV90eXBlLAotCS5ldmljdGlvbl92YWx1YWJsZSA9IHR0bV9ib19ldmljdGlvbl92YWx1 YWJsZSwKLQkuZXZpY3RfZmxhZ3MgPSBkcm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX2V2aWN0X2ZsYWdz LAotCS52ZXJpZnlfYWNjZXNzID0gZHJtX2dlbV92cmFtX2JvX2RyaXZlcl92ZXJpZnlfYWNjZXNz LAotCS5pb19tZW1fcmVzZXJ2ZSA9ICZ2Ym94X3R0bV9pb19tZW1fcmVzZXJ2ZSwKLQkuaW9fbWVt X2ZyZWUgPSAmdmJveF90dG1faW9fbWVtX2ZyZWUsCi19OwotCiBpbnQgdmJveF9tbV9pbml0KHN0 cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpCiB7CisJc3RydWN0IGRybV92cmFtX21tICp2bW07CiAJ aW50IHJldDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJnZib3gtPmRkZXY7Ci0Jc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmdmJveC0+dHRtLmJkZXY7CiAKLQlyZXQgPSB0dG1fYm9f ZGV2aWNlX2luaXQoJnZib3gtPnR0bS5iZGV2LAotCQkJCSAmdmJveF9ib19kcml2ZXIsCi0JCQkJ IGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAotCQkJCSB0cnVlKTsKLQlpZiAocmV0KSB7Ci0J CURSTV9FUlJPUigiRXJyb3IgaW5pdGlhbGlzaW5nIGJvIGRyaXZlcjsgJWRcbiIsIHJldCk7CisJ dm1tID0gZHJtX3ZyYW1faGVscGVyX2FsbG9jX21tKGRldiwgcGNpX3Jlc291cmNlX3N0YXJ0KGRl di0+cGRldiwgMCksCisJCQkJICAgICAgIHZib3gtPmF2YWlsYWJsZV92cmFtX3NpemUsCisJCQkJ ICAgICAgICZkcm1fZ2VtX3ZyYW1fbW1fZnVuY3MpOworCWlmIChJU19FUlIodm1tKSkgeworCQly ZXQgPSBQVFJfRVJSKHZtbSk7CisJCURSTV9FUlJPUigiRXJyb3IgaW5pdGlhbGl6aW5nIFZSQU0g TU07ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IHR0bV9ib19pbml0 X21tKGJkZXYsIFRUTV9QTF9WUkFNLAotCQkJICAgICB2Ym94LT5hdmFpbGFibGVfdnJhbV9zaXpl ID4+IFBBR0VfU0hJRlQpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdHRtIFZS QU0gaW5pdDogJWRcbiIsIHJldCk7Ci0JCWdvdG8gZXJyX2RldmljZV9yZWxlYXNlOwotCX0KLQog I2lmZGVmIERSTV9NVFJSX1dDCiAJdmJveC0+ZmJfbXRyciA9IGRybV9tdHJyX2FkZChwY2lfcmVz b3VyY2Vfc3RhcnQoZGV2LT5wZGV2LCAwKSwKIAkJCQkgICAgIHBjaV9yZXNvdXJjZV9sZW4oZGV2 LT5wZGV2LCAwKSwKQEAgLTE0MiwxMCArMzQsNiBAQCBpbnQgdmJveF9tbV9pbml0KHN0cnVjdCB2 Ym94X3ByaXZhdGUgKnZib3gpCiAJCQkJCSBwY2lfcmVzb3VyY2VfbGVuKGRldi0+cGRldiwgMCkp OwogI2VuZGlmCiAJcmV0dXJuIDA7Ci0KLWVycl9kZXZpY2VfcmVsZWFzZToKLQl0dG1fYm9fZGV2 aWNlX3JlbGVhc2UoJnZib3gtPnR0bS5iZGV2KTsKLQlyZXR1cm4gcmV0OwogfQogCiB2b2lkIHZi b3hfbW1fZmluaShzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94KQpAQCAtMTU3LDEzICs0NSw1IEBA IHZvaWQgdmJveF9tbV9maW5pKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpCiAjZWxzZQogCWFy Y2hfcGh5c193Y19kZWwodmJveC0+ZmJfbXRycik7CiAjZW5kaWYKLQl0dG1fYm9fZGV2aWNlX3Jl bGVhc2UoJnZib3gtPnR0bS5iZGV2KTsKLX0KLQotaW50IHZib3hfbW1hcChzdHJ1Y3QgZmlsZSAq ZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCi17Ci0Jc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJv eCA9IGZpbGVfcHJpdi0+bWlub3ItPmRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlyZXR1cm4gdHRtX2Jv X21tYXAoZmlscCwgdm1hLCAmdmJveC0+dHRtLmJkZXYpOworCWRybV92cmFtX2hlbHBlcl9yZWxl YXNlX21tKCZ2Ym94LT5kZGV2KTsKIH0KLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVs