From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 17/19] drm/vboxvideo: Convert vboxvideo driver to VRAM MM Date: Mon, 29 Apr 2019 16:43:39 +0200 Message-ID: <20190429144341.12615-18-tzimmermann@suse.de> References: <20190429144341.12615-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 759EB89293 for ; Mon, 29 Apr 2019 14:43:54 +0000 (UTC) In-Reply-To: <20190429144341.12615-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, Jerry.Zhang@amd.com, hdegoede@redhat.com, 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 ZSBpbXBsZW1lbnRhdGlvbjsgZXhjZXB0IGZvciB0aGUgdHlwZQpuYW1lcy4KCnYzOgoJKiB1c2Ug ZHJtX2dlbV92cmFtX21tX2Z1bmNzCgkqIGNvbnZlcnQgZHJpdmVyIHRvIGRybV9kZXZpY2UtYmFz ZWQgaW5zdGFuY2UKdjI6CgkqIGltcGxlbWVudCB2Ym94X21tYXAoKSB3aXRoIGRybV92cmFtX21t X21tYXAoKQoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1 c2UuZGU+ClJldmlld2VkLWJ5OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZyAgICAgfCAgIDEgKwogZHJpdmVy cy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5jICB8ICAxMyArLS0KIGRyaXZlcnMvZ3B1L2Ry bS92Ym94dmlkZW8vdmJveF9kcnYuaCAgfCAgMTUgKy0tCiBkcml2ZXJzL2dwdS9kcm0vdmJveHZp ZGVvL3Zib3hfbWFpbi5jIHwgIDEzICstLQogZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94 X3R0bS5jICB8IDEzNiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAxNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9L Y29uZmlnCmluZGV4IDk2Yzc5NGEzOWM1Ni4uNDg1YjY2NWE5ZmE0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby9LY29uZmlnCkBAIC00LDYgKzQsNyBAQCBjb25maWcgRFJNX1ZCT1hWSURFTwogCXNlbGVj dCBEUk1fS01TX0hFTFBFUgogCXNlbGVjdCBEUk1fVFRNCiAJc2VsZWN0IERSTV9HRU1fVlJBTV9I RUxQRVIKKwlzZWxlY3QgRFJNX1ZSQU1fTU1fSEVMUEVSCiAJc2VsZWN0IEdFTkVSSUNfQUxMT0NB VE9SCiAJaGVscAogCSAgVGhpcyBpcyBhIEtNUyBkcml2ZXIgZm9yIHRoZSB2aXJ0dWFsIEdyYXBo aWNzIENhcmQgdXNlZCBpbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92 Ym94X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5jCmluZGV4IDMz NmE4ZTAzZTE1MS4uMDI1MzdhYjljYzA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmJv eHZpZGVvL3Zib3hfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Ry di5jCkBAIC0xOTEsMTMgKzE5MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciB2Ym94X3Bj aV9kcml2ZXIgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHZib3hf Zm9wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKLQkub3BlbiA9IGRybV9vcGVuLAotCS5y ZWxlYXNlID0gZHJtX3JlbGVhc2UsCi0JLnVubG9ja2VkX2lvY3RsID0gZHJtX2lvY3RsLAotCS5j b21wYXRfaW9jdGwgPSBkcm1fY29tcGF0X2lvY3RsLAotCS5tbWFwID0gdmJveF9tbWFwLAotCS5w b2xsID0gZHJtX3BvbGwsCi0JLnJlYWQgPSBkcm1fcmVhZCwKKwlEUk1fVlJBTV9NTV9GSUxFX09Q RVJBVElPTlMKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CkBAIC0y MTUsMTAgKzIwOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CiAJLm1p bm9yID0gRFJJVkVSX01JTk9SLAogCS5wYXRjaGxldmVsID0gRFJJVkVSX1BBVENITEVWRUwsCiAK LQkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0KLQkJZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1f ZnJlZV9vYmplY3RfdW5sb2NrZWQsCi0JLmR1bWJfY3JlYXRlID0gdmJveF9kdW1iX2NyZWF0ZSwK LQkuZHVtYl9tYXBfb2Zmc2V0ID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0 LAorCURSTV9HRU1fVlJBTV9EUklWRVIsCiAJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1f cHJpbWVfaGFuZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1l X2ZkX3RvX2hhbmRsZSwKIAkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0 LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oCmluZGV4IDEyZTQ3MzkyYjJmOS4uOTAy OGY5NDZiYzA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oCkBAIC0yMCwxMSAr MjAsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1f dnJhbV9oZWxwZXIuaD4KIAotI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgotI2luY2x1 ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNl bWVudC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgotI2luY2x1ZGUgPGRybS90 dG0vdHRtX21vZHVsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fdnJhbV9tbV9oZWxwZXIuaD4KIAog I2luY2x1ZGUgInZib3h2aWRlb19ndWVzdC5oIgogI2luY2x1ZGUgInZib3h2aWRlb192YmUuaCIK QEAgLTc4LDEwICs3NCw2IEBAIHN0cnVjdCB2Ym94X3ByaXZhdGUgewogCiAJaW50IGZiX210cnI7 CiAKLQlzdHJ1Y3QgewotCQlzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2OwotCX0gdHRtOwotCiAJ c3RydWN0IG11dGV4IGh3X211dGV4OyAvKiBwcm90ZWN0cyBtb2Rlc2V0IGFuZCBhY2NlbC92YnZh IGFjY2Vzc2VzICovCiAJc3RydWN0IHdvcmtfc3RydWN0IGhvdHBsdWdfd29yazsKIAl1MzIgaW5w dXRfbWFwcGluZ193aWR0aDsKQEAgLTE2OSwxNiArMTYxLDExIEBAIGludCB2Ym94ZmJfY3JlYXRl KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJCSAgc3RydWN0IGRybV9mYl9oZWxwZXJf c3VyZmFjZV9zaXplICpzaXplcyk7CiB2b2lkIHZib3hfZmJkZXZfZmluaShzdHJ1Y3QgdmJveF9w cml2YXRlICp2Ym94KTsKIAotaW50IHZib3hfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpm aWxlLAotCQkgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAgc3RydWN0IGRybV9t b2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKLQogaW50IHZib3hfbW1faW5pdChzdHJ1Y3QgdmJveF9w cml2YXRlICp2Ym94KTsKIHZvaWQgdmJveF9tbV9maW5pKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZi b3gpOwogCiBpbnQgdmJveF9nZW1fY3JlYXRlKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gsCiAJ CSAgICB1MzIgc2l6ZSwgYm9vbCBpc2tlcm5lbCwgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2Jq KTsKLWludCB2Ym94X21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKTsKIAogLyogdmJveF9wcmltZS5jICovCiBpbnQgdmJveF9nZW1fcHJpbWVfcGluKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 Ym94dmlkZW8vdmJveF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfbWFp bi5jCmluZGV4IDUyNWU5ZmQ2M2Y0ZC4uMTg2OTNlMmJmNzJhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfbWFpbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94 dmlkZW8vdmJveF9tYWluLmMKQEAgLTI4Myw3ICsyODMsOCBAQCBpbnQgdmJveF9nZW1fY3JlYXRl KHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gsCiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJuIC1F SU5WQUw7CiAKLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKCZ2Ym94LT5kZGV2LCAmdmJveC0+ dHRtLmJkZXYsIHNpemUsIDAsIGZhbHNlKTsKKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKCZ2 Ym94LT5kZGV2LCAmdmJveC0+ZGRldi52cmFtX21tLT5iZGV2LAorCQkJCSAgc2l6ZSwgMCwgZmFs c2UpOwogCWlmIChJU19FUlIoZ2JvKSkgewogCQlyZXQgPSBQVFJfRVJSKGdibyk7CiAJCWlmIChy ZXQgIT0gLUVSRVNUQVJUU1lTKQpAQCAtMjk1LDEzICsyOTYsMyBAQCBpbnQgdmJveF9nZW1fY3Jl YXRlKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gsCiAKIAlyZXR1cm4gMDsKIH0KLQotaW50IHZi b3hfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkgICAgIHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykKLXsKLQlzdHJ1 Y3QgdmJveF9wcml2YXRlICp2Ym94ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCXJldHVybiBkcm1f Z2VtX3ZyYW1fZmlsbF9jcmVhdGVfZHVtYihmaWxlLCBkZXYsICZ2Ym94LT50dG0uYmRldiwgMCwK LQkJCQkJICAgIGZhbHNlLCBhcmdzKTsKLQotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Zib3h2aWRlby92Ym94X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X3R0 bS5jCmluZGV4IDA5ODlkNjU2ZWVkNi4uYjgyNTk1YTllZDBmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby92Ym94X3R0bS5jCkBAIC04LDEzMSArOCwyMyBAQAogICovCiAjaW5jbHVkZSA8bGludXgv cGNpLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1f cGFnZV9hbGxvYy5oPgogI2luY2x1ZGUgInZib3hfZHJ2LmgiCiAKLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IHZib3hfcHJpdmF0ZSAqdmJveF9iZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZCkKLXsK LQlyZXR1cm4gY29udGFpbmVyX29mKGJkLCBzdHJ1Y3QgdmJveF9wcml2YXRlLCB0dG0uYmRldik7 Ci19Ci0KLXN0YXRpYyBpbnQKLXZib3hfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwgdTMyIHR5cGUsCi0JCSAgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl ciAqbWFuKQotewotCXN3aXRjaCAodHlwZSkgewotCWNhc2UgVFRNX1BMX1NZU1RFTToKLQkJbWFu LT5mbGFncyA9IFRUTV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2Nh Y2hpbmcgPSBUVE1fUExfTUFTS19DQUNISU5HOwotCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRU TV9QTF9GTEFHX0NBQ0hFRDsKLQkJYnJlYWs7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWFuLT5m dW5jID0gJnR0bV9ib19tYW5hZ2VyX2Z1bmM7Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9G TEFHX0ZJWEVEIHwgVFRNX01FTVRZUEVfRkxBR19NQVBQQUJMRTsKLQkJbWFuLT5hdmFpbGFibGVf Y2FjaGluZyA9IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfV0M7Ci0JCW1hbi0+ ZGVmYXVsdF9jYWNoaW5nID0gVFRNX1BMX0ZMQUdfV0M7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0J CURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgbWVtb3J5IHR5cGUgJXVcbiIsICh1bnNpZ25lZCBpbnQp dHlwZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMg aW50IHZib3hfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAot CQkJCSAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQotewotCXN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuID0gJmJkZXYtPm1hblttZW0tPm1lbV90eXBlXTsKLQlzdHJ1Y3QgdmJveF9w cml2YXRlICp2Ym94ID0gdmJveF9iZGV2KGJkZXYpOwotCi0JbWVtLT5idXMuYWRkciA9IE5VTEw7 Ci0JbWVtLT5idXMub2Zmc2V0ID0gMDsKLQltZW0tPmJ1cy5zaXplID0gbWVtLT5udW1fcGFnZXMg PDwgUEFHRV9TSElGVDsKLQltZW0tPmJ1cy5iYXNlID0gMDsKLQltZW0tPmJ1cy5pc19pb21lbSA9 IGZhbHNlOwotCWlmICghKG1hbi0+ZmxhZ3MgJiBUVE1fTUVNVFlQRV9GTEFHX01BUFBBQkxFKSkK LQkJcmV0dXJuIC1FSU5WQUw7Ci0Jc3dpdGNoIChtZW0tPm1lbV90eXBlKSB7Ci0JY2FzZSBUVE1f UExfU1lTVEVNOgotCQkvKiBzeXN0ZW0gbWVtb3J5ICovCi0JCXJldHVybiAwOwotCWNhc2UgVFRN X1BMX1ZSQU06Ci0JCW1lbS0+YnVzLm9mZnNldCA9IG1lbS0+c3RhcnQgPDwgUEFHRV9TSElGVDsK LQkJbWVtLT5idXMuYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydCh2Ym94LT5kZGV2LnBkZXYsIDAp OwotCQltZW0tPmJ1cy5pc19pb21lbSA9IHRydWU7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJl dHVybiAtRUlOVkFMOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdmJveF90dG1f aW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJIHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKQotewotfQotCi1zdGF0aWMgdm9pZCB2Ym94X3R0bV9iYWNrZW5kX2Rlc3Ry b3koc3RydWN0IHR0bV90dCAqdHQpCi17Ci0JdHRtX3R0X2ZpbmkodHQpOwotCWtmcmVlKHR0KTsK LX0KLQotc3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIHZib3hfdHRfYmFja2VuZF9mdW5j ID0gewotCS5kZXN0cm95ID0gJnZib3hfdHRtX2JhY2tlbmRfZGVzdHJveSwKLX07Ci0KLXN0YXRp YyBzdHJ1Y3QgdHRtX3R0ICp2Ym94X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKLQkJCQkJIHUzMiBwYWdlX2ZsYWdzKQotewotCXN0cnVjdCB0dG1fdHQgKnR0Owot Ci0JdHQgPSBremFsbG9jKHNpemVvZigqdHQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXR0KQotCQly ZXR1cm4gTlVMTDsKLQotCXR0LT5mdW5jID0gJnZib3hfdHRfYmFja2VuZF9mdW5jOwotCWlmICh0 dG1fdHRfaW5pdCh0dCwgYm8sIHBhZ2VfZmxhZ3MpKSB7Ci0JCWtmcmVlKHR0KTsKLQkJcmV0dXJu IE5VTEw7Ci0JfQotCi0JcmV0dXJuIHR0OwotfQotCi1zdGF0aWMgc3RydWN0IHR0bV9ib19kcml2 ZXIgdmJveF9ib19kcml2ZXIgPSB7Ci0JLnR0bV90dF9jcmVhdGUgPSB2Ym94X3R0bV90dF9jcmVh dGUsCi0JLmluaXRfbWVtX3R5cGUgPSB2Ym94X2JvX2luaXRfbWVtX3R5cGUsCi0JLmV2aWN0aW9u X3ZhbHVhYmxlID0gdHRtX2JvX2V2aWN0aW9uX3ZhbHVhYmxlLAotCS5ldmljdF9mbGFncyA9IGRy bV9nZW1fdnJhbV9ib19kcml2ZXJfZXZpY3RfZmxhZ3MsCi0JLnZlcmlmeV9hY2Nlc3MgPSBkcm1f Z2VtX3ZyYW1fYm9fZHJpdmVyX3ZlcmlmeV9hY2Nlc3MsCi0JLmlvX21lbV9yZXNlcnZlID0gJnZi b3hfdHRtX2lvX21lbV9yZXNlcnZlLAotCS5pb19tZW1fZnJlZSA9ICZ2Ym94X3R0bV9pb19tZW1f ZnJlZSwKLX07Ci0KIGludCB2Ym94X21tX2luaXQoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCkK IHsKKwlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbTsKIAlpbnQgcmV0OwogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSAmdmJveC0+ZGRldjsKLQlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9ICZ2 Ym94LT50dG0uYmRldjsKIAotCXJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmdmJveC0+dHRtLmJk ZXYsCi0JCQkJICZ2Ym94X2JvX2RyaXZlciwKLQkJCQkgZGV2LT5hbm9uX2lub2RlLT5pX21hcHBp bmcsCi0JCQkJIHRydWUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJFcnJvciBpbml0aWFs aXNpbmcgYm8gZHJpdmVyOyAlZFxuIiwgcmV0KTsKKwl2bW0gPSBkcm1fdnJhbV9oZWxwZXJfYWxs b2NfbW0oZGV2LCBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5wZGV2LCAwKSwKKwkJCQkgICAgICAg dmJveC0+YXZhaWxhYmxlX3ZyYW1fc2l6ZSwKKwkJCQkgICAgICAgJmRybV9nZW1fdnJhbV9tbV9m dW5jcyk7CisJaWYgKElTX0VSUih2bW0pKSB7CisJCXJldCA9IFBUUl9FUlIodm1tKTsKKwkJRFJN X0VSUk9SKCJFcnJvciBpbml0aWFsaXppbmcgVlJBTSBNTTsgJWRcbiIsIHJldCk7CiAJCXJldHVy biByZXQ7CiAJfQogCi0JcmV0ID0gdHRtX2JvX2luaXRfbW0oYmRldiwgVFRNX1BMX1ZSQU0sCi0J CQkgICAgIHZib3gtPmF2YWlsYWJsZV92cmFtX3NpemUgPj4gUEFHRV9TSElGVCk7Ci0JaWYgKHJl dCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0dG0gVlJBTSBpbml0OiAlZFxuIiwgcmV0KTsKLQkJ Z290byBlcnJfZGV2aWNlX3JlbGVhc2U7Ci0JfQotCiAjaWZkZWYgRFJNX01UUlJfV0MKIAl2Ym94 LT5mYl9tdHJyID0gZHJtX210cnJfYWRkKHBjaV9yZXNvdXJjZV9zdGFydChkZXYtPnBkZXYsIDAp LAogCQkJCSAgICAgcGNpX3Jlc291cmNlX2xlbihkZXYtPnBkZXYsIDApLApAQCAtMTQyLDEwICsz NCw2IEBAIGludCB2Ym94X21tX2luaXQoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCkKIAkJCQkJ IHBjaV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAwKSk7CiAjZW5kaWYKIAlyZXR1cm4gMDsKLQot ZXJyX2RldmljZV9yZWxlYXNlOgotCXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmdmJveC0+dHRtLmJk ZXYpOwotCXJldHVybiByZXQ7CiB9CiAKIHZvaWQgdmJveF9tbV9maW5pKHN0cnVjdCB2Ym94X3By aXZhdGUgKnZib3gpCkBAIC0xNTcsMTMgKzQ1LDUgQEAgdm9pZCB2Ym94X21tX2Zpbmkoc3RydWN0 IHZib3hfcHJpdmF0ZSAqdmJveCkKICNlbHNlCiAJYXJjaF9waHlzX3djX2RlbCh2Ym94LT5mYl9t dHJyKTsKICNlbmRpZgotCXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmdmJveC0+dHRtLmJkZXYpOwot fQotCi1pbnQgdmJveF9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSkKLXsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVf ZGF0YTsKLQlzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2 LT5kZXZfcHJpdmF0ZTsKLQotCXJldHVybiB0dG1fYm9fbW1hcChmaWxwLCB2bWEsICZ2Ym94LT50 dG0uYmRldik7CisJZHJtX3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oJnZib3gtPmRkZXYpOwogfQot LSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=