From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 11/19] drm/bochs: Convert bochs driver to |struct drm_gem_vram_object| Date: Mon, 29 Apr 2019 16:43:33 +0200 Message-ID: <20190429144341.12615-12-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 A83288925D 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 VGhlIGRhdGEgc3RydWN0dXJlIHxzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdHwgYW5kIGl0cyBo ZWxwZXJzIHJlcGxhY2UKfHN0cnVjdCBib2Noc19ib3wuIEl0J3MgdGhlIHNhbWUgaW1wbGVtZW50 YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMg WmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYm9j aHMvS2NvbmZpZyAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzLmggICAg IHwgIDM0ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYyB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jIHwgIDE4ICstCiBkcml2ZXJzL2dwdS9k cm0vYm9jaHMvYm9jaHNfbW0uYyAgfCAyNzAgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiA1IGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDI5MyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2Ry bS9ib2Nocy9LY29uZmlnCmluZGV4IGJkMjcxODAxNWNkYi4uYzA0ZjgwNDFhMmI5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvS2NvbmZpZwpAQCAtMyw2ICszLDcgQEAgY29uZmlnIERSTV9CT0NIUwogCWRlcGVuZHMg b24gRFJNICYmIFBDSSAmJiBNTVUKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlzZWxlY3QgRFJN X1RUTQorCXNlbGVjdCBEUk1fR0VNX1ZSQU1fSEVMUEVSCiAJaGVscAogCSAgQ2hvb3NlIHRoaXMg b3B0aW9uIGZvciBxZW11LgogCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUg Y2FsbGVkIGJvY2hzLWRybS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2No cy5oIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzLmgKaW5kZXggMzQxY2M5ZDFiYWI0Li40 Y2NmODJlMWNhNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5j bHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybV9n ZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgogCiAjaW5jbHVkZSA8 ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGFnZV9hbGxv Yy5oPgpAQCAtODEsMzAgKzgyLDYgQEAgc3RydWN0IGJvY2hzX2RldmljZSB7CiAJfSB0dG07CiB9 OwogCi1zdHJ1Y3QgYm9jaHNfYm8gewotCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBibzsKLQlz dHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Ci0Jc3RydWN0IHR0bV9ib19rbWFwX29iaiBr bWFwOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBnZW07Ci0Jc3RydWN0IHR0bV9wbGFjZSBwbGFj ZW1lbnRzWzNdOwotCWludCBwaW5fY291bnQ7Ci19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBi b2Noc19ibyAqYm9jaHNfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKLXsKLQlyZXR1 cm4gY29udGFpbmVyX29mKGJvLCBzdHJ1Y3QgYm9jaHNfYm8sIGJvKTsKLX0KLQotc3RhdGljIGlu bGluZSBzdHJ1Y3QgYm9jaHNfYm8gKmdlbV90b19ib2Noc19ibyhzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbSkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGdlbSwgc3RydWN0IGJvY2hzX2JvLCBn ZW0pOwotfQotCi1zdGF0aWMgaW5saW5lIHU2NCBib2Noc19ib19tbWFwX29mZnNldChzdHJ1Y3Qg Ym9jaHNfYm8gKmJvKQotewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJmJvLT5i by52bWFfbm9kZSk7Ci19Ci0KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyogYm9jaHNfaHcuYyAq LwpAQCAtMTI0LDE3ICsxMDEsOCBAQCBpbnQgYm9jaHNfbW1faW5pdChzdHJ1Y3QgYm9jaHNfZGV2 aWNlICpib2Nocyk7CiB2b2lkIGJvY2hzX21tX2Zpbmkoc3RydWN0IGJvY2hzX2RldmljZSAqYm9j aHMpOwogaW50IGJvY2hzX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKTsKIAotaW50IGJvY2hzX2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdTMyIHNpemUsIGJvb2wgaXNrZXJuZWwsCi0JCSAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0 ICoqb2JqKTsKLWludCBib2Noc19nZW1faW5pdF9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwotdm9pZCBib2Noc19nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwogaW50IGJvY2hzX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1i ICphcmdzKTsKLWludCBib2Noc19kdW1iX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmls ZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgIHVpbnQzMl90IGhhbmRsZSwgdWludDY0 X3QgKm9mZnNldCk7Ci0KLWludCBib2Noc19ib19waW4oc3RydWN0IGJvY2hzX2JvICpibywgdTMy IHBsX2ZsYWcpOwotaW50IGJvY2hzX2JvX3VucGluKHN0cnVjdCBib2Noc19ibyAqYm8pOwogCiBp bnQgYm9jaHNfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiB2b2lk IGJvY2hzX2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9k cm0vYm9jaHMvYm9jaHNfZHJ2LmMKaW5kZXggNmI2ZTAzNzI1OGMzLi40ZjI2OWY0NjRlNmQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKQEAgLTgyLDkgKzgyLDkgQEAgc3RhdGljIHN0cnVj dCBkcm1fZHJpdmVyIGJvY2hzX2RyaXZlciA9IHsKIAkuZGF0ZQkJCT0gIjIwMTMwOTI1IiwKIAku bWFqb3IJCQk9IDEsCiAJLm1pbm9yCQkJPSAwLAotCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQg PSBib2Noc19nZW1fZnJlZV9vYmplY3QsCisJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGRy bV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkLAogCS5kdW1iX2NyZWF0 ZSAgICAgICAgICAgID0gYm9jaHNfZHVtYl9jcmVhdGUsCi0JLmR1bWJfbWFwX29mZnNldCAgICAg ICAgPSBib2Noc19kdW1iX21tYXBfb2Zmc2V0LAorCS5kdW1iX21hcF9vZmZzZXQgICAgICAgID0g ZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0LAogCiAJLmdlbV9wcmltZV9leHBv cnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKIAkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1f cHJpbWVfaW1wb3J0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2tt cy5jIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jCmluZGV4IDVlOTA1ZjUwNDQ5 ZC4uOWUzZWU3YjUxMWZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNf a21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jCkBAIC0zMCwxNiAr MzAsMTYgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGJvY2hzX2Zvcm1hdHNbXSA9IHsKIHN0YXRp YyB2b2lkIGJvY2hzX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocywKIAkJ CSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgYm9jaHNf Ym8gKmJvOworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87CiAKIAlpZiAoIXN0YXRl LT5mYiB8fCAhYm9jaHMtPnN0cmlkZSkKIAkJcmV0dXJuOwogCi0JYm8gPSBnZW1fdG9fYm9jaHNf Ym8oc3RhdGUtPmZiLT5vYmpbMF0pOworCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oc3RhdGUt PmZiLT5vYmpbMF0pOwogCWJvY2hzX2h3X3NldGJhc2UoYm9jaHMsCiAJCQkgc3RhdGUtPmNydGNf eCwKIAkJCSBzdGF0ZS0+Y3J0Y195LAotCQkJIGJvLT5iby5vZmZzZXQpOworCQkJIGdiby0+Ym8u b2Zmc2V0KTsKIAlib2Noc19od19zZXRmb3JtYXQoYm9jaHMsIHN0YXRlLT5mYi0+Zm9ybWF0KTsK IH0KIApAQCAtNzIsMjMgKzcyLDIzIEBAIHN0YXRpYyB2b2lkIGJvY2hzX3BpcGVfdXBkYXRlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIHN0YXRpYyBpbnQgYm9jaHNfcGlw ZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCQkg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRlKQogewotCXN0cnVjdCBib2Noc19ibyAq Ym87CisJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibzsKIAogCWlmICghbmV3X3N0YXRl LT5mYikKIAkJcmV0dXJuIDA7Ci0JYm8gPSBnZW1fdG9fYm9jaHNfYm8obmV3X3N0YXRlLT5mYi0+ b2JqWzBdKTsKLQlyZXR1cm4gYm9jaHNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFNKTsKKwln Ym8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG5ld19zdGF0ZS0+ZmItPm9ialswXSk7CisJcmV0dXJu IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKIH0KIAog c3RhdGljIHZvaWQgYm9jaHNfcGlwZV9jbGVhbnVwX2ZiKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3Bs YXlfcGlwZSAqcGlwZSwKIAkJCQkgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkK IHsKLQlzdHJ1Y3QgYm9jaHNfYm8gKmJvOworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpn Ym87CiAKIAlpZiAoIW9sZF9zdGF0ZS0+ZmIpCiAJCXJldHVybjsKLQlibyA9IGdlbV90b19ib2No c19ibyhvbGRfc3RhdGUtPmZiLT5vYmpbMF0pOwotCWJvY2hzX2JvX3VucGluKGJvKTsKKwlnYm8g PSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9sZF9zdGF0ZS0+ZmItPm9ialswXSk7CisJZHJtX2dlbV92 cmFtX3VucGluKGdibyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGVfZnVuY3MgYm9jaHNfcGlwZV9mdW5jcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ib2Nocy9ib2Noc19tbS5jIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX21t LmMKaW5kZXggNGE0MDMwODE2OWM0Li41ODM3YWRjNmFlMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2No c19tbS5jCkBAIC03LDggKzcsNiBAQAogCiAjaW5jbHVkZSAiYm9jaHMuaCIKIAotc3RhdGljIHZv aWQgYm9jaHNfdHRtX3BsYWNlbWVudChzdHJ1Y3QgYm9jaHNfYm8gKmJvLCBpbnQgZG9tYWluKTsK LQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBib2Noc19kZXZp Y2UgKmJvY2hzX2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQpAQCAtMTYsMjIgKzE0LDYg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2Noc19iZGV2KHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZCkKIAlyZXR1cm4gY29udGFpbmVyX29mKGJkLCBzdHJ1Y3QgYm9jaHNf ZGV2aWNlLCB0dG0uYmRldik7CiB9CiAKLXN0YXRpYyB2b2lkIGJvY2hzX2JvX3R0bV9kZXN0cm95 KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKQotewotCXN0cnVjdCBib2Noc19ibyAqYm87 Ci0KLQlibyA9IGNvbnRhaW5lcl9vZih0Ym8sIHN0cnVjdCBib2Noc19ibywgYm8pOwotCWRybV9n ZW1fb2JqZWN0X3JlbGVhc2UoJmJvLT5nZW0pOwotCWtmcmVlKGJvKTsKLX0KLQotc3RhdGljIGJv b2wgYm9jaHNfdHRtX2JvX2lzX2JvY2hzX2JvKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8p Ci17Ci0JaWYgKGJvLT5kZXN0cm95ID09ICZib2Noc19ib190dG1fZGVzdHJveSkKLQkJcmV0dXJu IHRydWU7Ci0JcmV0dXJuIGZhbHNlOwotfQotCiBzdGF0aWMgaW50IGJvY2hzX2JvX2luaXRfbWVt X3R5cGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVpbnQzMl90IHR5cGUsCiAJCQkJICBz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKIHsKQEAgLTU2LDI3ICszOCw2IEBAIHN0 YXRpYyBpbnQgYm9jaHNfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgdWludDMyX3QgdHlwZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLWJvY2hzX2Jv X2V2aWN0X2ZsYWdzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCB0dG1fcGxh Y2VtZW50ICpwbCkKLXsKLQlzdHJ1Y3QgYm9jaHNfYm8gKmJvY2hzYm8gPSBib2Noc19ibyhibyk7 Ci0KLQlpZiAoIWJvY2hzX3R0bV9ib19pc19ib2Noc19ibyhibykpCi0JCXJldHVybjsKLQotCWJv Y2hzX3R0bV9wbGFjZW1lbnQoYm9jaHNibywgVFRNX1BMX0ZMQUdfU1lTVEVNKTsKLQkqcGwgPSBi b2Noc2JvLT5wbGFjZW1lbnQ7Ci19Ci0KLXN0YXRpYyBpbnQgYm9jaHNfYm9fdmVyaWZ5X2FjY2Vz cyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJCSAgc3RydWN0IGZpbGUgKmZpbHAp Ci17Ci0Jc3RydWN0IGJvY2hzX2JvICpib2Noc2JvID0gYm9jaHNfYm8oYm8pOwotCi0JcmV0dXJu IGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZib2Noc2JvLT5nZW0udm1hX25vZGUsCi0JCQkJ CSAgZmlscC0+cHJpdmF0ZV9kYXRhKTsKLX0KLQogc3RhdGljIGludCBib2Noc190dG1faW9fbWVt X3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkJICAgIHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKQogewpAQCAtMTQxLDkgKzEwMiw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX2Jv X2RyaXZlciBib2Noc19ib19kcml2ZXIgPSB7CiAJLnR0bV90dF9jcmVhdGUgPSBib2Noc190dG1f dHRfY3JlYXRlLAogCS5pbml0X21lbV90eXBlID0gYm9jaHNfYm9faW5pdF9tZW1fdHlwZSwKIAku ZXZpY3Rpb25fdmFsdWFibGUgPSB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUsCi0JLmV2aWN0X2Zs YWdzID0gYm9jaHNfYm9fZXZpY3RfZmxhZ3MsCisJLmV2aWN0X2ZsYWdzID0gZHJtX2dlbV92cmFt X2JvX2RyaXZlcl9ldmljdF9mbGFncywKIAkubW92ZSA9IE5VTEwsCi0JLnZlcmlmeV9hY2Nlc3Mg PSBib2Noc19ib192ZXJpZnlfYWNjZXNzLAorCS52ZXJpZnlfYWNjZXNzID0gZHJtX2dlbV92cmFt X2JvX2RyaXZlcl92ZXJpZnlfYWNjZXNzLAogCS5pb19tZW1fcmVzZXJ2ZSA9ICZib2Noc190dG1f aW9fbWVtX3Jlc2VydmUsCiAJLmlvX21lbV9mcmVlID0gJmJvY2hzX3R0bV9pb19tZW1fZnJlZSwK IH07CkBAIC0xODIsODUgKzE0Myw2IEBAIHZvaWQgYm9jaHNfbW1fZmluaShzdHJ1Y3QgYm9jaHNf ZGV2aWNlICpib2NocykKIAlib2Nocy0+dHRtLmluaXRpYWxpemVkID0gZmFsc2U7CiB9CiAKLXN0 YXRpYyB2b2lkIGJvY2hzX3R0bV9wbGFjZW1lbnQoc3RydWN0IGJvY2hzX2JvICpibywgaW50IGRv bWFpbikKLXsKLQl1bnNpZ25lZCBpOwotCXUzMiBjID0gMDsKLQliby0+cGxhY2VtZW50LnBsYWNl bWVudCA9IGJvLT5wbGFjZW1lbnRzOwotCWJvLT5wbGFjZW1lbnQuYnVzeV9wbGFjZW1lbnQgPSBi by0+cGxhY2VtZW50czsKLQlpZiAoZG9tYWluICYgVFRNX1BMX0ZMQUdfVlJBTSkgewotCQliby0+ cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfV0MKLQkJCXwgVFRNX1BMX0ZMQUdf VU5DQUNIRUQKLQkJCXwgVFRNX1BMX0ZMQUdfVlJBTTsKLQl9Ci0JaWYgKGRvbWFpbiAmIFRUTV9Q TF9GTEFHX1NZU1RFTSkgewotCQliby0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX01B U0tfQ0FDSElORwotCQkJfCBUVE1fUExfRkxBR19TWVNURU07Ci0JfQotCWlmICghYykgewotCQli by0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX01BU0tfQ0FDSElORwotCQkJfCBUVE1f UExfRkxBR19TWVNURU07Ci0JfQotCWZvciAoaSA9IDA7IGkgPCBjOyArK2kpIHsKLQkJYm8tPnBs YWNlbWVudHNbaV0uZnBmbiA9IDA7Ci0JCWJvLT5wbGFjZW1lbnRzW2ldLmxwZm4gPSAwOwotCX0K LQliby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBjOwotCWJvLT5wbGFjZW1lbnQubnVtX2J1 c3lfcGxhY2VtZW50ID0gYzsKLX0KLQotaW50IGJvY2hzX2JvX3BpbihzdHJ1Y3QgYm9jaHNfYm8g KmJvLCB1MzIgcGxfZmxhZykKLXsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBm YWxzZSwgZmFsc2UgfTsKLQlpbnQgaSwgcmV0OwotCi0JaWYgKGJvLT5waW5fY291bnQpIHsKLQkJ Ym8tPnBpbl9jb3VudCsrOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlib2Noc190dG1fcGxhY2VtZW50 KGJvLCBwbF9mbGFnKTsKLQlmb3IgKGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2Vt ZW50OyBpKyspCi0JCWJvLT5wbGFjZW1lbnRzW2ldLmZsYWdzIHw9IFRUTV9QTF9GTEFHX05PX0VW SUNUOwotCXJldCA9IHR0bV9ib19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsK LQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPmJv LCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7Ci0JdHRtX2JvX3VucmVzZXJ2ZSgmYm8tPmJvKTsKLQlp ZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JYm8tPnBpbl9jb3VudCA9IDE7Ci0JcmV0dXJuIDA7 Ci19Ci0KLWludCBib2Noc19ib191bnBpbihzdHJ1Y3QgYm9jaHNfYm8gKmJvKQotewotCXN0cnVj dCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwotCWludCBpLCByZXQ7 Ci0KLQlpZiAoIWJvLT5waW5fY291bnQpIHsKLQkJRFJNX0VSUk9SKCJ1bnBpbiBiYWQgJXBcbiIs IGJvKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWJvLT5waW5fY291bnQtLTsKLQotCWlmIChiby0+cGlu X2NvdW50KQotCQlyZXR1cm4gMDsKLQotCWZvciAoaSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51 bV9wbGFjZW1lbnQ7IGkrKykKLQkJYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgJj0gflRUTV9QTF9G TEFHX05PX0VWSUNUOwotCXJldCA9IHR0bV9ib19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZhbHNl LCBOVUxMKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCXJldCA9IHR0bV9ib192YWxpZGF0 ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7Ci0JdHRtX2JvX3VucmVzZXJ2ZSgmYm8t PmJvKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIDA7Ci19Ci0KIGludCBi b2Noc19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkK IHsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKQEAg LTI3MSwxNzEgKzE1Myw2MSBAQCBpbnQgYm9jaHNfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotc3RhdGlj IGludCBib2Noc19ib19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGlu dCBhbGlnbiwKLQkJCSAgIHVpbnQzMl90IGZsYWdzLCBzdHJ1Y3QgYm9jaHNfYm8gKipwYm9jaHNi bykKLXsKLQlzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocyA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0J c3RydWN0IGJvY2hzX2JvICpib2Noc2JvOwotCXNpemVfdCBhY2Nfc2l6ZTsKLQlpbnQgcmV0Owot Ci0JYm9jaHNibyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBib2Noc19ibyksIEdGUF9LRVJORUwp OwotCWlmICghYm9jaHNibykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXQgPSBkcm1fZ2VtX29i amVjdF9pbml0KGRldiwgJmJvY2hzYm8tPmdlbSwgc2l6ZSk7Ci0JaWYgKHJldCkgewotCQlrZnJl ZShib2Noc2JvKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlib2Noc2JvLT5iby5iZGV2ID0gJmJv Y2hzLT50dG0uYmRldjsKLQlib2Noc2JvLT5iby5iZGV2LT5kZXZfbWFwcGluZyA9IGRldi0+YW5v bl9pbm9kZS0+aV9tYXBwaW5nOwotCi0JYm9jaHNfdHRtX3BsYWNlbWVudChib2Noc2JvLCBUVE1f UExfRkxBR19WUkFNIHwgVFRNX1BMX0ZMQUdfU1lTVEVNKTsKLQotCWFjY19zaXplID0gdHRtX2Jv X2RtYV9hY2Nfc2l6ZSgmYm9jaHMtPnR0bS5iZGV2LCBzaXplLAotCQkJCSAgICAgICBzaXplb2Yo c3RydWN0IGJvY2hzX2JvKSk7Ci0KLQlyZXQgPSB0dG1fYm9faW5pdCgmYm9jaHMtPnR0bS5iZGV2 LCAmYm9jaHNiby0+Ym8sIHNpemUsCi0JCQkgIHR0bV9ib190eXBlX2RldmljZSwgJmJvY2hzYm8t PnBsYWNlbWVudCwKLQkJCSAgYWxpZ24gPj4gUEFHRV9TSElGVCwgZmFsc2UsIGFjY19zaXplLAot CQkJICBOVUxMLCBOVUxMLCBib2Noc19ib190dG1fZGVzdHJveSk7Ci0JaWYgKHJldCkKLQkJcmV0 dXJuIHJldDsKLQotCSpwYm9jaHNibyA9IGJvY2hzYm87Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBi b2Noc19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplLCBib29sIGlz a2VybmVsLAotCQkgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaikKLXsKLQlzdHJ1Y3Qg Ym9jaHNfYm8gKmJvY2hzYm87Ci0JaW50IHJldDsKLQotCSpvYmogPSBOVUxMOwotCi0Jc2l6ZSA9 IFBBR0VfQUxJR04oc2l6ZSk7Ci0JaWYgKHNpemUgPT0gMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0K LQlyZXQgPSBib2Noc19ib19jcmVhdGUoZGV2LCBzaXplLCAwLCAwLCAmYm9jaHNibyk7Ci0JaWYg KHJldCkgewotCQlpZiAocmV0ICE9IC1FUkVTVEFSVFNZUykKLQkJCURSTV9FUlJPUigiZmFpbGVk IHRvIGFsbG9jYXRlIEdFTSBvYmplY3RcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQkqb2JqID0g JmJvY2hzYm8tPmdlbTsKLQlyZXR1cm4gMDsKLX0KLQogaW50IGJvY2hzX2R1bWJfY3JlYXRlKHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgc3Ry dWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQogewotCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqZ29iajsKLQl1MzIgaGFuZGxlOwotCWludCByZXQ7Ci0KLQlhcmdzLT5waXRjaCA9IGFyZ3Mt PndpZHRoICogKChhcmdzLT5icHAgKyA3KSAvIDgpOwotCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRj aCAqIGFyZ3MtPmhlaWdodDsKLQotCXJldCA9IGJvY2hzX2dlbV9jcmVhdGUoZGV2LCBhcmdzLT5z aXplLCBmYWxzZSwKLQkJCSAgICAgICAmZ29iaik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsK LQotCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlLCBnb2JqLCAmaGFuZGxlKTsKLQlk cm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZ29iaik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJl dDsKLQotCWFyZ3MtPmhhbmRsZSA9IGhhbmRsZTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZv aWQgYm9jaHNfYm9fdW5yZWYoc3RydWN0IGJvY2hzX2JvICoqYm8pCi17Ci0Jc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICp0Ym87Ci0KLQlpZiAoKCpibykgPT0gTlVMTCkKLQkJcmV0dXJuOwotCi0J dGJvID0gJigoKmJvKS0+Ym8pOwotCXR0bV9ib19wdXQodGJvKTsKLQkqYm8gPSBOVUxMOwotfQot Ci12b2lkIGJvY2hzX2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikK LXsKLQlzdHJ1Y3QgYm9jaHNfYm8gKmJvY2hzX2JvID0gZ2VtX3RvX2JvY2hzX2JvKG9iaik7Ci0K LQlib2Noc19ib191bnJlZigmYm9jaHNfYm8pOwotfQotCi1pbnQgYm9jaHNfZHVtYl9tbWFwX29m ZnNldChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkg ICB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90ICpvZmZzZXQpCi17Ci0Jc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGJvY2hzX2JvICpibzsKLQotCW9iaiA9IGRybV9nZW1fb2Jq ZWN0X2xvb2t1cChmaWxlLCBoYW5kbGUpOwotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1F Tk9FTlQ7Ci0KLQlibyA9IGdlbV90b19ib2Noc19ibyhvYmopOwotCSpvZmZzZXQgPSBib2Noc19i b19tbWFwX29mZnNldChibyk7CisJc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMgPSBkZXYtPmRl dl9wcml2YXRlOwogCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7Ci0JcmV0dXJu IDA7CisJcmV0dXJuIGRybV9nZW1fdnJhbV9maWxsX2NyZWF0ZV9kdW1iKGZpbGUsIGRldiwgJmJv Y2hzLT50dG0uYmRldiwgMCwKKwkJCQkJICAgICBmYWxzZSwgYXJncyk7CiB9CiAKIC8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KIAogaW50IGJvY2hzX2dlbV9wcmltZV9waW4oc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGJvY2hzX2JvICpibyA9IGdlbV90b19ib2Noc19ibyhvYmop OworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2Vt KG9iaik7CiAKLQlyZXR1cm4gYm9jaHNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFNKTsKKwly ZXR1cm4gZHJtX2dlbV92cmFtX3BpbihnYm8sIERSTV9HRU1fVlJBTV9QTF9GTEFHX1ZSQU0pOwog fQogCiB2b2lkIGJvY2hzX2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aikKIHsKLQlzdHJ1Y3QgYm9jaHNfYm8gKmJvID0gZ2VtX3RvX2JvY2hzX2JvKG9iaik7CisJc3Ry dWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsK IAotCWJvY2hzX2JvX3VucGluKGJvKTsKKwlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIH0KIAog dm9pZCAqYm9jaHNfZ2VtX3ByaW1lX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7 Ci0Jc3RydWN0IGJvY2hzX2JvICpibyA9IGdlbV90b19ib2Noc19ibyhvYmopOwotCWJvb2wgaXNf aW9tZW07CisJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IGRybV9nZW1fdnJhbV9v Zl9nZW0ob2JqKTsKIAlpbnQgcmV0OworCXZvaWQqIGJhc2U7CiAKLQlyZXQgPSBib2Noc19ib19w aW4oYm8sIFRUTV9QTF9GTEFHX1ZSQU0pOworCXJldCA9IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBE Uk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gTlVMTDsKLQly ZXQgPSB0dG1fYm9fa21hcCgmYm8tPmJvLCAwLCBiby0+Ym8ubnVtX3BhZ2VzLCAmYm8tPmttYXAp OwotCWlmIChyZXQpIHsKLQkJYm9jaHNfYm9fdW5waW4oYm8pOworCWJhc2UgPSBkcm1fZ2VtX3Zy YW1fa21hcChnYm8sIHRydWUsIE5VTEwpOworCWlmIChJU19FUlIoYmFzZSkpIHsKKwkJZHJtX2dl bV92cmFtX3VucGluKGdibyk7CiAJCXJldHVybiBOVUxMOwogCX0KLQlyZXR1cm4gdHRtX2ttYXBf b2JqX3ZpcnR1YWwoJmJvLT5rbWFwLCAmaXNfaW9tZW0pOworCXJldHVybiBiYXNlOwogfQogCiB2 b2lkIGJvY2hzX2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZv aWQgKnZhZGRyKQogewotCXN0cnVjdCBib2Noc19ibyAqYm8gPSBnZW1fdG9fYm9jaHNfYm8ob2Jq KTsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJtX2dlbV92cmFtX29mX2dl bShvYmopOwogCi0JdHRtX2JvX2t1bm1hcCgmYm8tPmttYXApOwotCWJvY2hzX2JvX3VucGluKGJv KTsKKwlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CisJZHJtX2dlbV92cmFtX3VucGluKGdibyk7 CiB9CiAKIGludCBib2Noc19nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwKIAkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKLQlzdHJ1Y3QgYm9jaHNfYm8g KmJvID0gZ2VtX3RvX2JvY2hzX2JvKG9iaik7CisJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3Qg KmdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKIAotCWJvLT5nZW0udm1hX25vZGUudm1f bm9kZS5zdGFydCA9IGJvLT5iby52bWFfbm9kZS52bV9ub2RlLnN0YXJ0OworCWdiby0+Z2VtLnZt YV9ub2RlLnZtX25vZGUuc3RhcnQgPSBnYm8tPmJvLnZtYV9ub2RlLnZtX25vZGUuc3RhcnQ7CiAJ cmV0dXJuIGRybV9nZW1fcHJpbWVfbW1hcChvYmosIHZtYSk7CiB9Ci0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==