From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 12/19] drm/bochs: Convert bochs driver to VRAM MM Date: Mon, 29 Apr 2019 16:43:34 +0200 Message-ID: <20190429144341.12615-13-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 3562D89272 for ; Mon, 29 Apr 2019 14:43:52 +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 ZXBsYWNlIGJvY2hzJwpUVE0tYmFzZWQgbWVtb3J5IG1hbmFnZXIuIEl0J3MgdGhlIHNhbWUgaW1w bGVtZW50YXRpb247IGV4Y2VwdCBmb3IgdGhlCnR5cGUgbmFtZXMuCgp2MzoKCSogdXNlIGRybV9n ZW1fdnJhbV9tbV9mdW5jcwoJKiBjb252ZXJ0IGRyaXZlciB0byBkcm1fZGV2aWNlLWJhc2VkIGlu c3RhbmNlCnYyOgoJKiBpbXBsZW1lbnQgYm9jaHNfbW1hcCgpIHdpdGggZHJtX3ZyYW1fbW1fbW1h cCgpCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5k ZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYm9jaHMvS2NvbmZpZyAgICAgfCAgIDEgKwogZHJpdmVy cy9ncHUvZHJtL2JvY2hzL2JvY2hzLmggICAgIHwgIDEzICstLQogZHJpdmVycy9ncHUvZHJtL2Jv Y2hzL2JvY2hzX2Rydi5jIHwgIDEzICstLQogZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX21t LmMgIHwgMTQ4ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2Vk LCAxMyBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JvY2hzL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvS2NvbmZpZwpp bmRleCBjMDRmODA0MWEyYjkuLjdhZDFjZmU0N2IzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JvY2hzL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL0tjb25maWcKQEAg LTQsNiArNCw3IEBAIGNvbmZpZyBEUk1fQk9DSFMKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlz ZWxlY3QgRFJNX1RUTQogCXNlbGVjdCBEUk1fR0VNX1ZSQU1fSEVMUEVSCisJc2VsZWN0IERSTV9W UkFNX01NX0hFTFBFUgogCWhlbHAKIAkgIENob29zZSB0aGlzIG9wdGlvbiBmb3IgcWVtdS4KIAkg IElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBib2Nocy1kcm0uCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9ib2Nocy9ib2Nocy5oCmluZGV4IDRjY2Y4MmUxY2E2OC4uMzIzZGNjYTI1NmEzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvYm9jaHMuaApAQCAtMTIsOCArMTIsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+ CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaD4KIAotI2luY2x1ZGUgPGRybS90 dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX3ZyYW1fbW1faGVscGVyLmg+CiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Ki8KIApAQCAtNzQsMTIgKzczLDYgQEAgc3RydWN0IGJvY2hzX2RldmljZSB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKIAlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Ci0KLQkvKiB0dG0gKi8KLQlzdHJ1Y3Qgewot CQlzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2OwotCQlib29sIGluaXRpYWxpemVkOwotCX0gdHRt OwogfTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtOTksMTAgKzkyLDYgQEAgaW50IGJvY2hz X2h3X2xvYWRfZWRpZChzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2Nocyk7CiAvKiBib2Noc19tbS5j ICovCiBpbnQgYm9jaHNfbW1faW5pdChzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2Nocyk7CiB2b2lk IGJvY2hzX21tX2Zpbmkoc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMpOwotaW50IGJvY2hzX21t YXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKLQotaW50 IGJvY2hzX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKLQkJICAgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKIAog aW50IGJvY2hzX2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogdm9p ZCBib2Noc19nZW1fcHJpbWVfdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2JvY2hzL2JvY2hzX2Rydi5jCmluZGV4IDRmMjY5ZjQ2NGU2ZC4uZjNiYjVmYmEzMGJmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JvY2hzL2JvY2hzX2Rydi5jCkBAIC02MywxNCArNjMsOCBAQCBzdGF0aWMgaW50 IGJvY2hzX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgYm9jaHNfZm9wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUs Ci0JLm9wZW4JCT0gZHJtX29wZW4sCi0JLnJlbGVhc2UJPSBkcm1fcmVsZWFzZSwKLQkudW5sb2Nr ZWRfaW9jdGwJPSBkcm1faW9jdGwsCi0JLmNvbXBhdF9pb2N0bAk9IGRybV9jb21wYXRfaW9jdGws Ci0JLnBvbGwJCT0gZHJtX3BvbGwsCi0JLnJlYWQJCT0gZHJtX3JlYWQsCiAJLmxsc2VlawkJPSBu b19sbHNlZWssCi0JLm1tYXAgICAgICAgICAgID0gYm9jaHNfbW1hcCwKKwlEUk1fVlJBTV9NTV9G SUxFX09QRVJBVElPTlMKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBib2Noc19kcml2 ZXIgPSB7CkBAIC04Miw5ICs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBib2Noc19k cml2ZXIgPSB7CiAJLmRhdGUJCQk9ICIyMDEzMDkyNSIsCiAJLm1ham9yCQkJPSAxLAogCS5taW5v cgkJCT0gMCwKLQkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gZHJtX2dlbV92cmFtX2RyaXZl cl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQsCi0JLmR1bWJfY3JlYXRlICAgICAgICAgICAgPSBi b2Noc19kdW1iX2NyZWF0ZSwKLQkuZHVtYl9tYXBfb2Zmc2V0ICAgICAgICA9IGRybV9nZW1fdnJh bV9kcml2ZXJfZHVtYl9tbWFwX29mZnNldCwKKworCURSTV9HRU1fVlJBTV9EUklWRVIsCiAKIAku Z2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfaW1w b3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvYm9jaHNfbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCmluZGV4 IDU4MzdhZGM2YWUxNy4uOTY3NWQ4M2ZkZTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvYm9jaHNfbW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfbW0uYwpA QCAtOSwxNTcgKzksMjUgQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgaW5saW5l IHN0cnVjdCBib2Noc19kZXZpY2UgKmJvY2hzX2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk KQotewotCXJldHVybiBjb250YWluZXJfb2YoYmQsIHN0cnVjdCBib2Noc19kZXZpY2UsIHR0bS5i ZGV2KTsKLX0KLQotc3RhdGljIGludCBib2Noc19ib19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCB1aW50MzJfdCB0eXBlLAotCQkJCSAgc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4pCi17Ci0Jc3dpdGNoICh0eXBlKSB7Ci0JY2FzZSBUVE1fUExfU1lTVEVN OgotCQltYW4tPmZsYWdzID0gVFRNX01FTVRZUEVfRkxBR19NQVBQQUJMRTsKLQkJbWFuLT5hdmFp bGFibGVfY2FjaGluZyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkc7Ci0JCW1hbi0+ZGVmYXVsdF9jYWNo aW5nID0gVFRNX1BMX0ZMQUdfQ0FDSEVEOwotCQlicmVhazsKLQljYXNlIFRUTV9QTF9WUkFNOgot CQltYW4tPmZ1bmMgPSAmdHRtX2JvX21hbmFnZXJfZnVuYzsKLQkJbWFuLT5mbGFncyA9IFRUTV9N RU1UWVBFX0ZMQUdfRklYRUQgfAotCQkJVFRNX01FTVRZUEVfRkxBR19NQVBQQUJMRTsKLQkJbWFu LT5hdmFpbGFibGVfY2FjaGluZyA9IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwKLQkJCVRUTV9QTF9G TEFHX1dDOwotCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX1dDOwotCQlicmVh azsKLQlkZWZhdWx0OgotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIG1lbW9yeSB0eXBlICV1XG4i LCAodW5zaWduZWQpdHlwZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlyZXR1cm4gMDsKLX0K LQotc3RhdGljIGludCBib2Noc190dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsCi0JCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQotewotCXN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gJmJkZXYtPm1hblttZW0tPm1lbV90eXBlXTsKLQlz dHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocyA9IGJvY2hzX2JkZXYoYmRldik7Ci0KLQltZW0tPmJ1 cy5hZGRyID0gTlVMTDsKLQltZW0tPmJ1cy5vZmZzZXQgPSAwOwotCW1lbS0+YnVzLnNpemUgPSBt ZW0tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwotCW1lbS0+YnVzLmJhc2UgPSAwOwotCW1lbS0+ YnVzLmlzX2lvbWVtID0gZmFsc2U7Ci0JaWYgKCEobWFuLT5mbGFncyAmIFRUTV9NRU1UWVBFX0ZM QUdfTUFQUEFCTEUpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlzd2l0Y2ggKG1lbS0+bWVtX3R5cGUp IHsKLQljYXNlIFRUTV9QTF9TWVNURU06Ci0JCS8qIHN5c3RlbSBtZW1vcnkgKi8KLQkJcmV0dXJu IDA7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWVtLT5idXMub2Zmc2V0ID0gbWVtLT5zdGFydCA8 PCBQQUdFX1NISUZUOwotCQltZW0tPmJ1cy5iYXNlID0gYm9jaHMtPmZiX2Jhc2U7Ci0JCW1lbS0+ YnVzLmlzX2lvbWVtID0gdHJ1ZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5W QUw7Ci0JCWJyZWFrOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgYm9jaHNfdHRt X2lvX21lbV9mcmVlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAotCQkJCSAgc3RydWN0IHR0 bV9tZW1fcmVnICptZW0pCi17Ci19Ci0KLXN0YXRpYyB2b2lkIGJvY2hzX3R0bV9iYWNrZW5kX2Rl c3Ryb3koc3RydWN0IHR0bV90dCAqdHQpCi17Ci0JdHRtX3R0X2ZpbmkodHQpOwotCWtmcmVlKHR0 KTsKLX0KLQotc3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIGJvY2hzX3R0X2JhY2tlbmRf ZnVuYyA9IHsKLQkuZGVzdHJveSA9ICZib2Noc190dG1fYmFja2VuZF9kZXN0cm95LAotfTsKLQot c3RhdGljIHN0cnVjdCB0dG1fdHQgKmJvY2hzX3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKLQkJCQkJICB1aW50MzJfdCBwYWdlX2ZsYWdzKQotewotCXN0cnVjdCB0 dG1fdHQgKnR0OwotCi0JdHQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdHRtX3R0KSwgR0ZQX0tF Uk5FTCk7Ci0JaWYgKHR0ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwotCXR0LT5mdW5jID0gJmJv Y2hzX3R0X2JhY2tlbmRfZnVuYzsKLQlpZiAodHRtX3R0X2luaXQodHQsIGJvLCBwYWdlX2ZsYWdz KSkgewotCQlrZnJlZSh0dCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQlyZXR1cm4gdHQ7Ci19Ci0K LXN0YXRpYyBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBib2Noc19ib19kcml2ZXIgPSB7Ci0JLnR0bV90 dF9jcmVhdGUgPSBib2Noc190dG1fdHRfY3JlYXRlLAotCS5pbml0X21lbV90eXBlID0gYm9jaHNf Ym9faW5pdF9tZW1fdHlwZSwKLQkuZXZpY3Rpb25fdmFsdWFibGUgPSB0dG1fYm9fZXZpY3Rpb25f dmFsdWFibGUsCi0JLmV2aWN0X2ZsYWdzID0gZHJtX2dlbV92cmFtX2JvX2RyaXZlcl9ldmljdF9m bGFncywKLQkubW92ZSA9IE5VTEwsCi0JLnZlcmlmeV9hY2Nlc3MgPSBkcm1fZ2VtX3ZyYW1fYm9f ZHJpdmVyX3ZlcmlmeV9hY2Nlc3MsCi0JLmlvX21lbV9yZXNlcnZlID0gJmJvY2hzX3R0bV9pb19t ZW1fcmVzZXJ2ZSwKLQkuaW9fbWVtX2ZyZWUgPSAmYm9jaHNfdHRtX2lvX21lbV9mcmVlLAotfTsK LQogaW50IGJvY2hzX21tX2luaXQoc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMpCiB7Ci0Jc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmYm9jaHMtPnR0bS5iZGV2OwotCWludCByZXQ7CisJ c3RydWN0IGRybV92cmFtX21tICp2bW07CiAKLQlyZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJmJv Y2hzLT50dG0uYmRldiwKLQkJCQkgJmJvY2hzX2JvX2RyaXZlciwKLQkJCQkgYm9jaHMtPmRldi0+ YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAotCQkJCSB0cnVlKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9F UlJPUigiRXJyb3IgaW5pdGlhbGlzaW5nIGJvIGRyaXZlcjsgJWRcbiIsIHJldCk7Ci0JCXJldHVy biByZXQ7Ci0JfQotCi0JcmV0ID0gdHRtX2JvX2luaXRfbW0oYmRldiwgVFRNX1BMX1ZSQU0sCi0J CQkgICAgIGJvY2hzLT5mYl9zaXplID4+IFBBR0VfU0hJRlQpOwotCWlmIChyZXQpIHsKLQkJRFJN X0VSUk9SKCJGYWlsZWQgdHRtIFZSQU0gaW5pdDogJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7 Ci0JfQorCXZtbSA9IGRybV92cmFtX2hlbHBlcl9hbGxvY19tbShib2Nocy0+ZGV2LCBib2Nocy0+ ZmJfYmFzZSwKKwkJCQkgICAgICAgYm9jaHMtPmZiX3NpemUsCisJCQkJICAgICAgICZkcm1fZ2Vt X3ZyYW1fbW1fZnVuY3MpOworCWlmIChJU19FUlIodm1tKSkKKwkJcmV0dXJuIFBUUl9FUlIodm1t KTsKIAotCWJvY2hzLT50dG0uaW5pdGlhbGl6ZWQgPSB0cnVlOwogCXJldHVybiAwOwogfQogCiB2 b2lkIGJvY2hzX21tX2Zpbmkoc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMpCiB7Ci0JaWYgKCFi b2Nocy0+dHRtLmluaXRpYWxpemVkKQorCWlmICghYm9jaHMtPmRldi0+dnJhbV9tbSkKIAkJcmV0 dXJuOwogCi0JdHRtX2JvX2RldmljZV9yZWxlYXNlKCZib2Nocy0+dHRtLmJkZXYpOwotCWJvY2hz LT50dG0uaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLX0KLQotaW50IGJvY2hzX21tYXAoc3RydWN0IGZp bGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQotewotCXN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBib2Noc19kZXZpY2Ug KmJvY2hzID0gZmlsZV9wcml2LT5taW5vci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQotCXJldHVybiB0 dG1fYm9fbW1hcChmaWxwLCB2bWEsICZib2Nocy0+dHRtLmJkZXYpOwotfQotCi0vKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCi0KLWludCBib2Noc19kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUs IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVf ZHVtYiAqYXJncykKLXsKLQlzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocyA9IGRldi0+ZGV2X3By aXZhdGU7Ci0KLQlyZXR1cm4gZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIoZmlsZSwgZGV2 LCAmYm9jaHMtPnR0bS5iZGV2LCAwLAotCQkJCQkgICAgIGZhbHNlLCBhcmdzKTsKKwlkcm1fdnJh bV9oZWxwZXJfcmVsZWFzZV9tbShib2Nocy0+ZGV2KTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq LwotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=