From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 07/19] drm: Integrate VRAM MM into struct drm_device Date: Mon, 29 Apr 2019 16:43:29 +0200 Message-ID: <20190429144341.12615-8-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 4434089264 for ; Mon, 29 Apr 2019 14:43:51 +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 VGhlcmUncyBubyBhIHBvaW50ZXIgdG8gc3RydWN0IGRybV92cmFtX21tIHN0b3JlZCBpbiBzdHJ1 Y3QgZHJtX2RldmljZS4KRFJNIGRyaXZlcnMgdGhhdCB1c2UgVlJBTSBNTSBzaG91bGQgdXNlIHRo aXMgZmllbGQgdG8gcmVmZXIgdG8gdGhlaXIKaW5zdGFuY2Ugb2YgdGhlIGRhdGEgc3RydWN0dXJl LiBBcHByb3ByaWF0ZSBoZWxwZXJzIGFyZSBub3cgcHJvdmlkZWQgYXMKd2VsbC4KCkFkZGluZyBz dHJ1Y3QgZHJtX3ZyYW1fbW0gdG8gc3RydWN0IGRybV9kZXZpY2UgZnVydGhlciBhdm9pZHMgd3Jh cHBlcnMKYW5kIGJvaWxlcnBsYXRlIGNvZGUgaW4gZHJpdmVycy4gVGhpcyBwYXRjaCBpbXBsZW1l bnRzIGRlZmF1bHQgZnVuY3Rpb25zCmZvciBjYWxsYmFja3MgaW4gc3RydWN0IGRybV9kcml2ZXIg YW5kIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdGhhdCB1c2UKdGhlIHN0cnVjdCBkcm1fdnJhbV9t bSBzdG9yZWQgaW4gc3RydWN0IGRybV9kZXZpY2UuIERyaXZlcnMgdGhhdCBuZWVkIHRvCnByb3Zp ZGUgdGhlaXIgb3duIGltcGxlbWVudGF0aW9ucyBjYW4gc3RpbGwgZG8gc28uCgpTaWduZWQtb2Zm LWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jIHwgMjggKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9kcm1fdnJhbV9tbV9oZWxwZXIuYyAgfCA2OCArKysrKysrKysrKysrKysrKysrKysr KysrKysKIGluY2x1ZGUvZHJtL2RybV9kZXZpY2UuaCAgICAgICAgICAgICAgfCAgNCArKwogaW5j bHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oICAgICB8IDE4ICsrKysrKy0KIGluY2x1ZGUv ZHJtL2RybV92cmFtX21tX2hlbHBlci5oICAgICAgfCAzMiArKysrKysrKysrKysrCiA1IGZpbGVz IGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX3ZyYW1faGVscGVyLmMKaW5kZXggMzc5NzlmYjMwNjJiLi4wMDFlZDhlN2JmYWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwpAQCAtMSw2ICsxLDcgQEAKIC8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCiAKICNpbmNsdWRlIDxk cm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9tb2RlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBl ci5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KQEAgLTU1MSw2ICs1NTIs MzMgQEAgdm9pZCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFt X2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpOwogCisvKioKKyAqIGRybV9nZW1fdnJh bV9kcml2ZXJfY3JlYXRlX2R1bWIoKSAtIFwKKwlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZl ci5kdW1iX2NyZWF0ZQorICogQGZpbGU6CQl0aGUgRFJNIGZpbGUKKyAqIEBkZXY6CQl0aGUgRFJN IGRldmljZQorICogQGFyZ3M6CQl0aGUgYXJndW1lbnRzIGFzIHByb3ZpZGVkIHRvIFwKKwkJCQkm c3RydWN0IGRybV9kcml2ZXIuZHVtYl9jcmVhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlcXVp cmVzIHRoZSBkcml2ZXIgdG8gdXNlIEBkcm1fZGV2aWNlLnZyYW1fbW0gZm9yIGl0cworICogaW5z dGFuY2Ugb2YgVlJBTSBNTS4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzLCBvcgor ICogYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAqLworaW50IGRybV9nZW1fdnJh bV9kcml2ZXJfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAorCQkJCSAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIg KmFyZ3MpCit7CisJaWYgKFdBUk5fT05DRSghZGV2LT52cmFtX21tLCAiVlJBTSBNTSBub3QgaW5p dGlhbGl6ZWQiKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gZHJtX2dlbV92cmFtX2Zp bGxfY3JlYXRlX2R1bWIoZmlsZSwgZGV2LCAmZGV2LT52cmFtX21tLT5iZGV2LCAwLAorCQkJCQkg ICAgIGZhbHNlLCBhcmdzKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9k dW1iX2NyZWF0ZSk7CisKIC8qKgogICogZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zm c2V0KCkgLSBcCiAJSW1wbGVtZW50cyAmc3RydWN0IGRybV9kcml2ZXIuZHVtYl9tbWFwX29mZnNl dApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX21tX2hlbHBlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV92cmFtX21tX2hlbHBlci5jCmluZGV4IGQxOWY0NmQ3YTRlNy4uNjJj ZThkMmNkNGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZyYW1fbW1faGVscGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX21tX2hlbHBlci5jCkBAIC0yMDgsMyAr MjA4LDcxIEBAIGludCBkcm1fdnJhbV9tbV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAlyZXR1cm4gdHRtX2JvX21tYXAoZmlscCwgdm1hLCAmdm1t LT5iZGV2KTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3ZyYW1fbW1fbW1hcCk7CisKKy8qCisgKiBI ZWxwZXJzIGZvciBpbnRlZ3JhdGlvbiB3aXRoIHN0cnVjdCBkcm1fZGV2aWNlCisgKi8KKworc3Ry dWN0IGRybV92cmFtX21tKiBkcm1fdnJhbV9oZWxwZXJfYWxsb2NfbW0oCisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTY0IHZyYW1fYmFzZSwgdW5zaWduZWQgbG9uZyB2cmFtX3NpemUsCisJY29u c3Qgc3RydWN0IGRybV92cmFtX21tX2Z1bmNzKiBmdW5jcykKK3sKKwlpbnQgcmV0OworCisJaWYg KFdBUk5fT04oZGV2LT52cmFtX21tKSkKKwkJcmV0dXJuIGRldi0+dnJhbV9tbTsKKworCWRldi0+ dnJhbV9tbSA9IGt6YWxsb2Moc2l6ZW9mKCpkZXYtPnZyYW1fbW0pLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIWRldi0+dnJhbV9tbSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlyZXQgPSBk cm1fdnJhbV9tbV9pbml0KGRldi0+dnJhbV9tbSwgZGV2LCB2cmFtX2Jhc2UsIHZyYW1fc2l6ZSwg ZnVuY3MpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2tmcmVlOworCisJcmV0dXJuIGRldi0+dnJh bV9tbTsKKworZXJyX2tmcmVlOgorCWtmcmVlKGRldi0+dnJhbV9tbSk7CisJZGV2LT52cmFtX21t ID0gTlVMTDsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQorRVhQT1JUX1NZTUJPTChkcm1fdnJh bV9oZWxwZXJfYWxsb2NfbW0pOworCit2b2lkIGRybV92cmFtX2hlbHBlcl9yZWxlYXNlX21tKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKCFkZXYtPnZyYW1fbW0pCisJCXJldHVybjsK KworCWRybV92cmFtX21tX2NsZWFudXAoZGV2LT52cmFtX21tKTsKKwlrZnJlZShkZXYtPnZyYW1f bW0pOworCWRldi0+dnJhbV9tbSA9IE5VTEw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV92cmFtX2hl bHBlcl9yZWxlYXNlX21tKTsKKworLyoKKyAqIEhlbHBlcnMgZm9yICZzdHJ1Y3QgZmlsZV9vcGVy YXRpb25zCisgKi8KKworLyoqCisgKiBkcm1fdnJhbV9tbV9maWxlX29wZXJhdGlvbnNfbW1hcCgp IC0gXAorCUltcGxlbWVudHMgJnN0cnVjdCBmaWxlX29wZXJhdGlvbnMubW1hcCgpCisgKiBAZmls cDoJdGhlIG1hcHBpbmcncyBmaWxlIHN0cnVjdHVyZQorICogQHZtYToJdGhlIG1hcHBpbmcncyBt ZW1vcnkgYXJlYQorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3MsIG9yCisgKiBhIG5l Z2F0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICovCitpbnQgZHJtX3ZyYW1fbW1fZmlsZV9v cGVyYXRpb25zX21tYXAoCisJc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKQoreworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9k YXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7CisK KwlpZiAoV0FSTl9PTkNFKCFkZXYtPnZyYW1fbW0sICJWUkFNIE1NIG5vdCBpbml0aWFsaXplZCIp KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBkcm1fdnJhbV9tbV9tbWFwKGZpbHAsIHZt YSwgZGV2LT52cmFtX21tKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3ZyYW1fbW1fZmlsZV9vcGVy YXRpb25zX21tYXApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oIGIvaW5j bHVkZS9kcm0vZHJtX2RldmljZS5oCmluZGV4IDdmOWVmNzA5YjJiNi4uMWFjZmMzYmJkM2ZiIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJt X2RldmljZS5oCkBAIC0xNyw2ICsxNyw3IEBAIHN0cnVjdCBkcm1fdmJsYW5rX2NydGM7CiBzdHJ1 Y3QgZHJtX3NnX21lbTsKIHN0cnVjdCBkcm1fbG9jYWxfbWFwOwogc3RydWN0IGRybV92bWFfb2Zm c2V0X21hbmFnZXI7CitzdHJ1Y3QgZHJtX3ZyYW1fbW07CiBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcjsK IAogc3RydWN0IGlub2RlOwpAQCAtMjg2LDYgKzI4Nyw5IEBAIHN0cnVjdCBkcm1fZGV2aWNlIHsK IAkvKiogQHZtYV9vZmZzZXRfbWFuYWdlcjogR0VNIGluZm9ybWF0aW9uICovCiAJc3RydWN0IGRy bV92bWFfb2Zmc2V0X21hbmFnZXIgKnZtYV9vZmZzZXRfbWFuYWdlcjsKIAorCS8qKiBAdnJhbV9t bTogVlJBTSBNTSBtZW1vcnkgbWFuYWdlciAqLworCXN0cnVjdCBkcm1fdnJhbV9tbSAqdnJhbV9t bTsKKwogCS8qKgogCSAqIEBzd2l0Y2hfcG93ZXJfc3RhdGU6CiAJICoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJh bV9oZWxwZXIuaAppbmRleCAzZjI1MGY1OWVhYTUuLjBlMzczOTk0M2ExNiAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9n ZW1fdnJhbV9oZWxwZXIuaApAQCAtMTEsNiArMTEsNyBAQAogc3RydWN0IGRybV9tb2RlX2NyZWF0 ZV9kdW1iOwogc3RydWN0IGRybV92cmFtX21tX2Z1bmNzOwogc3RydWN0IGZpbHA7CitzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3Q7CiAKICNkZWZpbmUgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTQlUVE1f UExfRkxBR19WUkFNCiAjZGVmaW5lIERSTV9HRU1fVlJBTV9QTF9GTEFHX1NZU1RFTQlUVE1fUExf RkxBR19TWVNURU0KQEAgLTExNSw5ICsxMTYsMjQgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1f dnJhbV9tbV9mdW5jcyBkcm1fZ2VtX3ZyYW1fbW1fZnVuY3M7CiAgKi8KIAogdm9pZCBkcm1fZ2Vt X3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbSk7Ci0KK2ludCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2R1bWJfY3JlYXRlKHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwKKwkJCQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAg c3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKIGludCBkcm1fZ2VtX3ZyYW1fZHJp dmVyX2R1bWJfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLAogCQkJCQkgc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3QgKm9mZnNl dCk7CiAKKy8qKgorICogZGVmaW5lIERSTV9HRU1fVlJBTV9EUklWRVIgLSBkZWZhdWx0IGNhbGxi YWNrIGZ1bmN0aW9ucyBmb3IgXAorCSZzdHJ1Y3QgZHJtX2RyaXZlcgorICoKKyAqIERyaXZlcnMg dGhhdCB1c2UgVlJBTSBNTSBhbmQgR0VNIFZSQU0gY2FuIHVzZSB0aGlzIG1hY3JvIHRvIGluaXRp YWxpemUKKyAqICZzdHJ1Y3QgZHJtX2RyaXZlciB3aXRoIGRlZmF1bHQgZnVuY3Rpb25zLgorICov CisjZGVmaW5lIERSTV9HRU1fVlJBTV9EUklWRVIgXAorCS5nZW1fZnJlZV9vYmplY3RfdW5sb2Nr ZWQgPSBcCisJCWRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkLCBc CisJLmR1bWJfY3JlYXRlCQkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX2NyZWF0ZSwgXAor CS5kdW1iX21hcF9vZmZzZXQJICA9IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVtYl9tbWFwX29mZnNl dAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5o IGIvaW5jbHVkZS9kcm0vZHJtX3ZyYW1fbW1faGVscGVyLmgKaW5kZXggMGVlMDYwZDI3MWJkLi4z YzU5NjFiNjA2ZmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV92cmFtX21tX2hlbHBlci5oCkBAIC02NCw0ICs2NCwzNiBA QCB2b2lkIGRybV92cmFtX21tX2NsZWFudXAoc3RydWN0IGRybV92cmFtX21tICp2bW0pOwogaW50 IGRybV92cmFtX21tX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLAogCQkgICAgIHN0cnVjdCBkcm1fdnJhbV9tbSAqdm1tKTsKIAorLyoKKyAqIEhlbHBl cnMgZm9yIGludGVncmF0aW9uIHdpdGggc3RydWN0IGRybV9kZXZpY2UKKyAqLworCitzdHJ1Y3Qg ZHJtX3ZyYW1fbW0qIGRybV92cmFtX2hlbHBlcl9hbGxvY19tbSgKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1NjQgdnJhbV9iYXNlLCB1bnNpZ25lZCBsb25nIHZyYW1fc2l6ZSwKKwljb25zdCBz dHJ1Y3QgZHJtX3ZyYW1fbW1fZnVuY3MqIGZ1bmNzKTsKK3ZvaWQgZHJtX3ZyYW1faGVscGVyX3Jl bGVhc2VfbW0oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKy8qCisgKiBIZWxwZXJzIGZvciAm c3RydWN0IGZpbGVfb3BlcmF0aW9ucworICovCisKK2ludCBkcm1fdnJhbV9tbV9maWxlX29wZXJh dGlvbnNfbW1hcCgKKwlzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpOworCisvKioKKyAqIGRlZmluZSBEUk1fVlJBTV9NTV9GSUxFX09QRVJBVElPTlMgLSBkZWZh dWx0IGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgXAorCSZzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zCisg KgorICogRHJpdmVycyB0aGF0IHVzZSBWUkFNIE1NIGNhbiB1c2UgdGhpcyBtYWNybyB0byBpbml0 aWFsaXplCisgKiAmc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB3aXRoIGRlZmF1bHQgZnVuY3Rpb25z LgorICovCisjZGVmaW5lIERSTV9WUkFNX01NX0ZJTEVfT1BFUkFUSU9OUyBcCisJLm9wZW4JCT0g ZHJtX29wZW4sIFwKKwkucmVsZWFzZQk9IGRybV9yZWxlYXNlLCBcCisJLnVubG9ja2VkX2lvY3Rs ID0gZHJtX2lvY3RsLCBcCisJLm1tYXAJCT0gZHJtX3ZyYW1fbW1fZmlsZV9vcGVyYXRpb25zX21t YXAsIFwKKwkucG9sbAkJPSBkcm1fcG9sbCwgXAorCS5jb21wYXRfaW9jdGwJPSBkcm1fY29tcGF0 X2lvY3RsLCBcCisJLnJlYWQJCT0gZHJtX3JlYWQKKwogI2VuZGlmCi0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==