From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 18/19] drm/hisilicon: Convert hibmc-drm driver to |struct drm_gem_vram_object| Date: Mon, 29 Apr 2019 16:43:40 +0200 Message-ID: <20190429144341.12615-19-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 B0928892A7 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 VGhlIGRhdGEgc3RydWN0dXJlIHxzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdHwgYW5kIGl0cyBo ZWxwZXJzIHJlcGxhY2UKfHN0cnVjdCBoaWJtY19ib3wuIEl0J3MgdGhlIHNhbWUgaW1wbGVtZW50 YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMg WmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaGlz aWxpY29uL2hpYm1jL0tjb25maWcgICAgICAgfCAgIDEgKwogLi4uL2dwdS9kcm0vaGlzaWxpY29u L2hpYm1jL2hpYm1jX2RybV9kZS5jICAgIHwgIDIxICstCiAuLi4vZ3B1L2RybS9oaXNpbGljb24v aGlibWMvaGlibWNfZHJtX2Rydi5jICAgfCAgIDUgKy0KIC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9o aWJtYy9oaWJtY19kcm1fZHJ2LmggICB8ICAyNSArLS0KIC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9o aWJtYy9oaWJtY19kcm1fZmJkZXYuYyB8ICAzMCArLS0KIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGlj b24vaGlibWMvaGlibWNfdHRtLmMgICB8IDIxMCArLS0tLS0tLS0tLS0tLS0tLS0KIDYgZmlsZXMg Y2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwppbmRleCBjNzEyOWRjM2JkZmMuLjExNzIwMzAzY2E0 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwpAQCAtMyw2ICszLDcg QEAgY29uZmlnIERSTV9ISVNJX0hJQk1DCiAJZGVwZW5kcyBvbiBEUk0gJiYgUENJICYmIE1NVQog CXNlbGVjdCBEUk1fS01TX0hFTFBFUgogCXNlbGVjdCBEUk1fVFRNCisJc2VsZWN0IERSTV9HRU1f VlJBTV9IRUxQRVIKIAogCWhlbHAKIAkgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBh IEhpc2lsaWNvbiBIaWJtYyBzb2MgY2hpcHNldC4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxp Y29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCmluZGV4IDkzMTZiNzI0ZTdhMi4uZGIwZGZhNTc4NDRl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9k ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMK QEAgLTk2LDI3ICs5NiwzMiBAQCBzdGF0aWMgdm9pZCBoaWJtY19wbGFuZV9hdG9taWNfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUJKnN0YXRl CT0gcGxhbmUtPnN0YXRlOwogCXUzMiByZWc7CiAJaW50IHJldDsKLQl1NjQgZ3B1X2FkZHIgPSAw OworCXM2NCBncHVfYWRkciA9IDA7CiAJdW5zaWduZWQgaW50IGxpbmVfbDsKIAlzdHJ1Y3QgaGli bWNfZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qg aGlibWNfZnJhbWVidWZmZXIgKmhpYm1jX2ZiOwotCXN0cnVjdCBoaWJtY19ibyAqYm87CisJc3Ry dWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibzsKIAogCWlmICghc3RhdGUtPmZiKQogCQlyZXR1 cm47CiAKIAloaWJtY19mYiA9IHRvX2hpYm1jX2ZyYW1lYnVmZmVyKHN0YXRlLT5mYik7Ci0JYm8g PSBnZW1fdG9faGlibWNfYm8oaGlibWNfZmItPm9iaik7Ci0JcmV0ID0gdHRtX2JvX3Jlc2VydmUo JmJvLT5ibywgdHJ1ZSwgZmFsc2UsIE5VTEwpOworCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0o aGlibWNfZmItPm9iaik7CisJcmV0ID0gZHJtX2dlbV92cmFtX3Jlc2VydmUoZ2JvLCBmYWxzZSk7 CiAJaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIHR0bV9ibzogJWQi LCByZXQpOworCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIEJPOiAlZCIsIHJldCk7CiAJ CXJldHVybjsKIAl9CiAKLQlyZXQgPSBoaWJtY19ib19waW4oYm8sIFRUTV9QTF9GTEFHX1ZSQU0s ICZncHVfYWRkcik7Ci0JdHRtX2JvX3VucmVzZXJ2ZSgmYm8tPmJvKTsKKwlyZXQgPSBkcm1fZ2Vt X3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7CisJZHJtX2dlbV92cmFt X3VucmVzZXJ2ZShnYm8pOwogCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcGlu IGhpYm1jX2JvOiAlZCIsIHJldCk7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBibzogJWQi LCByZXQpOworCQlyZXR1cm47CisJfQorCWdwdV9hZGRyID0gZHJtX2dlbV92cmFtX29mZnNldChn Ym8pOworCWlmIChncHVfYWRkciA8IDApIHsKKwkJZHJtX2dlbV92cmFtX3VucGluKGdibyk7CiAJ CXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGli bWMvaGlibWNfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y19kcm1fZHJ2LmMKaW5kZXggOGVkOTRmY2Q0MmE3Li43MDI3YTFhMDU3NjggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jCkBAIC02Myw5ICs2 MywxMCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgaGlibWNfZHJpdmVyID0gewogCS5kZXNj CQkJPSAiaGlibWMgZHJtIGRyaXZlciIsCiAJLm1ham9yCQkJPSAxLAogCS5taW5vcgkJCT0gMCwK LQkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gaGlibWNfZ2VtX2ZyZWVfb2JqZWN0LAorCS5n ZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPQorCQlkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVl X29iamVjdF91bmxvY2tlZCwKIAkuZHVtYl9jcmVhdGUgICAgICAgICAgICA9IGhpYm1jX2R1bWJf Y3JlYXRlLAotCS5kdW1iX21hcF9vZmZzZXQgICAgICAgID0gaGlibWNfZHVtYl9tbWFwX29mZnNl dCwKKwkuZHVtYl9tYXBfb2Zmc2V0ICAgICAgICA9IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVtYl9t bWFwX29mZnNldCwKIAkuaXJxX2hhbmRsZXIJCT0gaGlibWNfZHJtX2ludGVycnVwdCwKIH07CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKaW5k ZXggMGEzODFjMjJkZTI2Li42YjM0MzBmYzUxNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVk ZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIu aD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KIAogc3RydWN0IGhpYm1jX2Zy YW1lYnVmZmVyIHsKQEAgLTU5LDI1ICs2MCw2IEBAIHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSB7 CiAKICNkZWZpbmUgdG9faGlibWNfZnJhbWVidWZmZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCBoaWJtY19mcmFtZWJ1ZmZlciwgZmIpCiAKLXN0cnVjdCBoaWJtY19ibyB7Ci0Jc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0IGJvOwotCXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKLQlz dHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIGttYXA7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0IGdlbTsK LQlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVudHNbM107Ci0JaW50IHBpbl9jb3VudDsKLX07Ci0K LXN0YXRpYyBpbmxpbmUgc3RydWN0IGhpYm1jX2JvICpoaWJtY19ibyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvKQotewotCXJldHVybiBjb250YWluZXJfb2YoYm8sIHN0cnVjdCBoaWJtY19i bywgYm8pOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBoaWJtY19ibyAqZ2VtX3RvX2hpYm1j X2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKQotewotCXJldHVybiBjb250YWluZXJfb2Yo Z2VtLCBzdHJ1Y3QgaGlibWNfYm8sIGdlbSk7Ci19Ci0KIHZvaWQgaGlibWNfc2V0X3Bvd2VyX21v ZGUoc3RydWN0IGhpYm1jX2RybV9wcml2YXRlICpwcml2LAogCQkJICB1bnNpZ25lZCBpbnQgcG93 ZXJfbW9kZSk7CiB2b2lkIGhpYm1jX3NldF9jdXJyZW50X2dhdGUoc3RydWN0IGhpYm1jX2RybV9w cml2YXRlICpwcml2LApAQCAtOTcsMTMgKzc5LDggQEAgaGlibWNfZnJhbWVidWZmZXJfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiBpbnQgaGlibWNfbW1faW5pdChzdHJ1Y3QgaGlibWNf ZHJtX3ByaXZhdGUgKmhpYm1jKTsKIHZvaWQgaGlibWNfbW1fZmluaShzdHJ1Y3QgaGlibWNfZHJt X3ByaXZhdGUgKmhpYm1jKTsKLWludCBoaWJtY19ib19waW4oc3RydWN0IGhpYm1jX2JvICpibywg dTMyIHBsX2ZsYWcsIHU2NCAqZ3B1X2FkZHIpOwotaW50IGhpYm1jX2JvX3VucGluKHN0cnVjdCBo aWJtY19ibyAqYm8pOwotdm9pZCBoaWJtY19nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopOwogaW50IGhpYm1jX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmls ZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0 ZV9kdW1iICphcmdzKTsKLWludCBoaWJtY19kdW1iX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmls ZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgIHUzMiBoYW5kbGUsIHU2NCAq b2Zmc2V0KTsKIGludCBoaWJtY19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSk7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1 bmNzIGhpYm1jX21vZGVfZnVuY3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxp Y29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9o aWJtYy9oaWJtY19kcm1fZmJkZXYuYwppbmRleCA4MDI2ODU5YWEwN2QuLjlkMjAyNWZhMTZmOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZmJk ZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRl di5jCkBAIC02Niw3ICs2Niw4IEBAIHN0YXRpYyBpbnQgaGlibWNfZHJtX2ZiX2NyZWF0ZShzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCWludCByZXQxOwogCXNpemVfdCBzaXplOwogCXVu c2lnbmVkIGludCBieXRlc19wZXJfcGl4ZWw7Ci0Jc3RydWN0IGhpYm1jX2JvICpibyA9IE5VTEw7 CisJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IE5VTEw7CisJdm9pZCAqYmFzZTsK IAogCURSTV9ERUJVR19EUklWRVIoInN1cmZhY2Ugd2lkdGgoJWQpLCBoZWlnaHQoJWQpIGFuZCBi cHAoJWQpXG4iLAogCQkJIHNpemVzLT5zdXJmYWNlX3dpZHRoLCBzaXplcy0+c3VyZmFjZV9oZWln aHQsCkBAIC04OCwyNiArODksMjcgQEAgc3RhdGljIGludCBoaWJtY19kcm1fZmJfY3JlYXRlKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCWJv ID0gZ2VtX3RvX2hpYm1jX2JvKGdvYmopOworCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oZ29i aik7CiAKLQlyZXQgPSB0dG1fYm9fcmVzZXJ2ZSgmYm8tPmJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7 CisJcmV0ID0gZHJtX2dlbV92cmFtX3Jlc2VydmUoZ2JvLCBmYWxzZSk7CiAJaWYgKHJldCkgewot CQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIHR0bV9ibzogJWRcbiIsIHJldCk7CisJCURS TV9FUlJPUigiZmFpbGVkIHRvIHJlc2VydmUgYm86ICVkXG4iLCByZXQpOwogCQlnb3RvIG91dF91 bnJlZl9nZW07CiAJfQogCi0JcmV0ID0gaGlibWNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFN LCBOVUxMKTsKKwlyZXQgPSBkcm1fZ2VtX3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZM QUdfVlJBTSk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBwaW4gZmJjb246 ICVkXG4iLCByZXQpOwogCQlnb3RvIG91dF91bnJlc2VydmVfdHRtX2JvOwogCX0KIAotCXJldCA9 IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1fcGFnZXMsICZiby0+a21hcCk7Ci0J aWYgKHJldCkgeworCWJhc2UgPSBkcm1fZ2VtX3ZyYW1fa21hcChnYm8sIHRydWUsIE5VTEwpOwor CWlmIChJU19FUlIoYmFzZSkpIHsKKwkJcmV0ID0gUFRSX0VSUihiYXNlKTsKIAkJRFJNX0VSUk9S KCJmYWlsZWQgdG8ga21hcCBmYmNvbjogJWRcbiIsIHJldCk7CiAJCWdvdG8gb3V0X3VucGluX2Jv OwogCX0KLQl0dG1fYm9fdW5yZXNlcnZlKCZiby0+Ym8pOworCWRybV9nZW1fdnJhbV91bnJlc2Vy dmUoZ2JvKTsKIAogCWluZm8gPSBkcm1fZmJfaGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwogCWlm IChJU19FUlIoaW5mbykpIHsKQEAgLTEzMSwyNCArMTMzLDI0IEBAIHN0YXRpYyBpbnQgaGlibWNf ZHJtX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCiAJZHJtX2ZiX2hl bHBlcl9maWxsX2luZm8oaW5mbywgJnByaXYtPmZiZGV2LT5oZWxwZXIsIHNpemVzKTsKIAotCWlu Zm8tPnNjcmVlbl9iYXNlID0gYm8tPmttYXAudmlydHVhbDsKKwlpbmZvLT5zY3JlZW5fYmFzZSA9 IGJhc2U7CiAJaW5mby0+c2NyZWVuX3NpemUgPSBzaXplOwogCi0JaW5mby0+Zml4LnNtZW1fc3Rh cnQgPSBiby0+Ym8ubWVtLmJ1cy5vZmZzZXQgKyBiby0+Ym8ubWVtLmJ1cy5iYXNlOworCWluZm8t PmZpeC5zbWVtX3N0YXJ0ID0gZ2JvLT5iby5tZW0uYnVzLm9mZnNldCArIGdiby0+Ym8ubWVtLmJ1 cy5iYXNlOwogCWluZm8tPmZpeC5zbWVtX2xlbiA9IHNpemU7CiAJcmV0dXJuIDA7CiAKIG91dF9y ZWxlYXNlX2ZiaToKLQlyZXQxID0gdHRtX2JvX3Jlc2VydmUoJmJvLT5ibywgdHJ1ZSwgZmFsc2Us IE5VTEwpOworCXJldDEgPSBkcm1fZ2VtX3ZyYW1fcmVzZXJ2ZShnYm8sIGZhbHNlKTsKIAlpZiAo cmV0MSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byByc3YgdHRtX2JvIHdoZW4gcmVsZWFzZSBm Ymk6ICVkXG4iLCByZXQxKTsKIAkJZ290byBvdXRfdW5yZWZfZ2VtOwogCX0KLQl0dG1fYm9fa3Vu bWFwKCZiby0+a21hcCk7CisJZHJtX2dlbV92cmFtX2t1bm1hcChnYm8pOwogb3V0X3VucGluX2Jv OgotCWhpYm1jX2JvX3VucGluKGJvKTsKKwlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIG91dF91 bnJlc2VydmVfdHRtX2JvOgotCXR0bV9ib191bnJlc2VydmUoJmJvLT5ibyk7CisJZHJtX2dlbV92 cmFtX3VucmVzZXJ2ZShnYm8pOwogb3V0X3VucmVmX2dlbToKIAlkcm1fZ2VtX29iamVjdF9wdXRf dW5sb2NrZWQoZ29iaik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v aGlibWMvaGlibWNfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1j X3R0bS5jCmluZGV4IDYwOTNjNDIxZGFmZi4uZmJmOGViMDQ4ZWJjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMKQEAgLTI3LDE5ICsyNyw2IEBAIGhpYm1j X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQogCXJldHVybiBjb250YWluZXJfb2YoYmQs IHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSwgYmRldik7CiB9CiAKLXN0YXRpYyB2b2lkIGhpYm1j X2JvX3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKQotewotCXN0cnVj dCBoaWJtY19ibyAqYm8gPSBjb250YWluZXJfb2YodGJvLCBzdHJ1Y3QgaGlibWNfYm8sIGJvKTsK LQotCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmJvLT5nZW0pOwotCWtmcmVlKGJvKTsKLX0KLQot c3RhdGljIGJvb2wgaGlibWNfdHRtX2JvX2lzX2hpYm1jX2JvKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pCi17Ci0JcmV0dXJuIGJvLT5kZXN0cm95ID09ICZoaWJtY19ib190dG1fZGVzdHJv eTsKLX0KLQogc3RhdGljIGludAogaGlibWNfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwgdTMyIHR5cGUsCiAJCSAgICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbikKQEAgLTY1LDUyICs1Miw2IEBAIGhpYm1jX2JvX2luaXRfbWVtX3R5cGUoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHUzMiB0eXBlLAogCXJldHVybiAwOwogfQogCi12b2lk IGhpYm1jX3R0bV9wbGFjZW1lbnQoc3RydWN0IGhpYm1jX2JvICpibywgaW50IGRvbWFpbikKLXsK LQl1MzIgY291bnQgPSAwOwotCXUzMiBpOwotCi0JYm8tPnBsYWNlbWVudC5wbGFjZW1lbnQgPSBi by0+cGxhY2VtZW50czsKLQliby0+cGxhY2VtZW50LmJ1c3lfcGxhY2VtZW50ID0gYm8tPnBsYWNl bWVudHM7Ci0JaWYgKGRvbWFpbiAmIFRUTV9QTF9GTEFHX1ZSQU0pCi0JCWJvLT5wbGFjZW1lbnRz W2NvdW50KytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfV0MgfAotCQkJVFRNX1BMX0ZMQUdfVU5DQUNI RUQgfCBUVE1fUExfRkxBR19WUkFNOwotCWlmIChkb21haW4gJiBUVE1fUExfRkxBR19TWVNURU0p Ci0JCWJvLT5wbGFjZW1lbnRzW2NvdW50KytdLmZsYWdzID0gVFRNX1BMX01BU0tfQ0FDSElORyB8 Ci0JCQlUVE1fUExfRkxBR19TWVNURU07Ci0JaWYgKCFjb3VudCkKLQkJYm8tPnBsYWNlbWVudHNb Y291bnQrK10uZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HIHwKLQkJCVRUTV9QTF9GTEFHX1NZ U1RFTTsKLQotCWJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IGNvdW50OwotCWJvLT5wbGFj ZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gY291bnQ7Ci0JZm9yIChpID0gMDsgaSA8IGNvdW50 OyBpKyspIHsKLQkJYm8tPnBsYWNlbWVudHNbaV0uZnBmbiA9IDA7Ci0JCWJvLT5wbGFjZW1lbnRz W2ldLmxwZm4gPSAwOwotCX0KLX0KLQotc3RhdGljIHZvaWQKLWhpYm1jX2JvX2V2aWN0X2ZsYWdz KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbCkK LXsKLQlzdHJ1Y3QgaGlibWNfYm8gKmhpYm1jYm8gPSBoaWJtY19ibyhibyk7Ci0KLQlpZiAoIWhp Ym1jX3R0bV9ib19pc19oaWJtY19ibyhibykpCi0JCXJldHVybjsKLQotCWhpYm1jX3R0bV9wbGFj ZW1lbnQoaGlibWNibywgVFRNX1BMX0ZMQUdfU1lTVEVNKTsKLQkqcGwgPSBoaWJtY2JvLT5wbGFj ZW1lbnQ7Ci19Ci0KLXN0YXRpYyBpbnQgaGlibWNfYm9fdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJCSAgc3RydWN0IGZpbGUgKmZpbHApCi17Ci0Jc3RydWN0 IGhpYm1jX2JvICpoaWJtY2JvID0gaGlibWNfYm8oYm8pOwotCi0JcmV0dXJuIGRybV92bWFfbm9k ZV92ZXJpZnlfYWNjZXNzKCZoaWJtY2JvLT5nZW0udm1hX25vZGUsCi0JCQkJCSAgZmlscC0+cHJp dmF0ZV9kYXRhKTsKLX0KLQogc3RhdGljIGludCBoaWJtY190dG1faW9fbWVtX3Jlc2VydmUoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVt KQogewpAQCAtMTczLDkgKzExNCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICpoaWJtY190dG1f dHRfY3JlYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiBzdHJ1Y3QgdHRtX2JvX2Ry aXZlciBoaWJtY19ib19kcml2ZXIgPSB7CiAJLnR0bV90dF9jcmVhdGUJCT0gaGlibWNfdHRtX3R0 X2NyZWF0ZSwKIAkuaW5pdF9tZW1fdHlwZQkJPSBoaWJtY19ib19pbml0X21lbV90eXBlLAotCS5l dmljdF9mbGFncwkJPSBoaWJtY19ib19ldmljdF9mbGFncywKKwkuZXZpY3RfZmxhZ3MJCT0gZHJt X2dlbV92cmFtX2JvX2RyaXZlcl9ldmljdF9mbGFncywKIAkubW92ZQkJCT0gTlVMTCwKLQkudmVy aWZ5X2FjY2VzcwkJPSBoaWJtY19ib192ZXJpZnlfYWNjZXNzLAorCS52ZXJpZnlfYWNjZXNzCQk9 IGRybV9nZW1fdnJhbV9ib19kcml2ZXJfdmVyaWZ5X2FjY2VzcywKIAkuaW9fbWVtX3Jlc2VydmUJ CT0gJmhpYm1jX3R0bV9pb19tZW1fcmVzZXJ2ZSwKIAkuaW9fbWVtX2ZyZWUJCT0gTlVMTCwKIH07 CkBAIC0yMTUsMTA4ICsxNTYsNiBAQCB2b2lkIGhpYm1jX21tX2Zpbmkoc3RydWN0IGhpYm1jX2Ry bV9wcml2YXRlICpoaWJtYykKIAloaWJtYy0+bW1faW5pdGVkID0gZmFsc2U7CiB9CiAKLXN0YXRp YyB2b2lkIGhpYm1jX2JvX3VucmVmKHN0cnVjdCBoaWJtY19ibyAqKmJvKQotewotCXN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqdGJvOwotCi0JaWYgKCgqYm8pID09IE5VTEwpCi0JCXJldHVybjsK LQotCXRibyA9ICYoKCpibyktPmJvKTsKLQl0dG1fYm9fcHV0KHRibyk7Ci0JKmJvID0gTlVMTDsK LX0KLQotaW50IGhpYm1jX2JvX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6 ZSwgaW50IGFsaWduLAotCQkgICAgdTMyIGZsYWdzLCBzdHJ1Y3QgaGlibWNfYm8gKipwaGlibWNi bykKLXsKLQlzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1jID0gZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgaGlibWNfYm8gKmhpYm1jYm87Ci0Jc2l6ZV90IGFjY19zaXplOwotCWludCBy ZXQ7Ci0KLQloaWJtY2JvID0ga3phbGxvYyhzaXplb2YoKmhpYm1jYm8pLCBHRlBfS0VSTkVMKTsK LQlpZiAoIWhpYm1jYm8pIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgaGlibWNi b1xuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0 KGRldiwgJmhpYm1jYm8tPmdlbSwgc2l6ZSk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZh aWxlZCB0byBpbml0aWFsaXplIGRybSBnZW0gb2JqZWN0OiAlZFxuIiwgcmV0KTsKLQkJa2ZyZWUo aGlibWNibyk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JaGlibWNiby0+Ym8uYmRldiA9ICZoaWJt Yy0+YmRldjsKLQotCWhpYm1jX3R0bV9wbGFjZW1lbnQoaGlibWNibywgVFRNX1BMX0ZMQUdfVlJB TSB8IFRUTV9QTF9GTEFHX1NZU1RFTSk7Ci0KLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3Np emUoJmhpYm1jLT5iZGV2LCBzaXplLAotCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGhpYm1jX2Jv KSk7Ci0KLQlyZXQgPSB0dG1fYm9faW5pdCgmaGlibWMtPmJkZXYsICZoaWJtY2JvLT5ibywgc2l6 ZSwKLQkJCSAgdHRtX2JvX3R5cGVfZGV2aWNlLCAmaGlibWNiby0+cGxhY2VtZW50LAotCQkJICBh bGlnbiA+PiBQQUdFX1NISUZULCBmYWxzZSwgYWNjX3NpemUsCi0JCQkgIE5VTEwsIE5VTEwsIGhp Ym1jX2JvX3R0bV9kZXN0cm95KTsKLQlpZiAocmV0KSB7Ci0JCWhpYm1jX2JvX3VucmVmKCZoaWJt Y2JvKTsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB0dG1fYm86ICVkXG4iLCBy ZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCSpwaGlibWNibyA9IGhpYm1jYm87Ci0JcmV0dXJu IDA7Ci19Ci0KLWludCBoaWJtY19ib19waW4oc3RydWN0IGhpYm1jX2JvICpibywgdTMyIHBsX2Zs YWcsIHU2NCAqZ3B1X2FkZHIpCi17Ci0Jc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsg ZmFsc2UsIGZhbHNlIH07Ci0JaW50IGksIHJldDsKLQotCWlmIChiby0+cGluX2NvdW50KSB7Ci0J CWJvLT5waW5fY291bnQrKzsKLQkJaWYgKGdwdV9hZGRyKQotCQkJKmdwdV9hZGRyID0gYm8tPmJv Lm9mZnNldDsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JaGlibWNfdHRtX3BsYWNlbWVudChibywgcGxf ZmxhZyk7Ci0JZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsr KQotCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKLQly ZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwotCWlm IChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQliby0+cGluX2NvdW50ID0gMTsKLQlpZiAoZ3B1X2Fk ZHIpCi0JCSpncHVfYWRkciA9IGJvLT5iby5vZmZzZXQ7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCBo aWJtY19ib191bnBpbihzdHJ1Y3QgaGlibWNfYm8gKmJvKQotewotCXN0cnVjdCB0dG1fb3BlcmF0 aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwotCWludCBpLCByZXQ7Ci0KLQlpZiAoIWJv LT5waW5fY291bnQpIHsKLQkJRFJNX0VSUk9SKCJ1bnBpbiBiYWQgJXBcbiIsIGJvKTsKLQkJcmV0 dXJuIDA7Ci0JfQotCWJvLT5waW5fY291bnQtLTsKLQlpZiAoYm8tPnBpbl9jb3VudCkKLQkJcmV0 dXJuIDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50IDsg aSsrKQotCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7 Ci0JcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsK LQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigidmFsaWRhdGUgZmFpbGVkIGZvciB1bnBpbjogJWRc biIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIGludCBoaWJt Y19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsK IAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKQEAgLTMy OCwyNCArMTY3LDI0IEBAIGludCBoaWJtY19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIGludCBoaWJtY19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHUzMiBzaXplLCBib29sIGlza2VybmVsLAogCQkgICAgIHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqKm9iaikKIHsKLQlzdHJ1Y3QgaGlibWNfYm8gKmhpYm1jYm87CisJc3RydWN0IGhp Ym1jX2RybV9wcml2YXRlICpoaWJtYyA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9n ZW1fdnJhbV9vYmplY3QgKmdibzsKIAlpbnQgcmV0OwogCiAJKm9iaiA9IE5VTEw7CiAKLQlzaXpl ID0gUEFHRV9BTElHTihzaXplKTsKLQlpZiAoc2l6ZSA9PSAwKSB7Ci0JCURSTV9FUlJPUigiZXJy b3I6IHplcm8gc2l6ZVxuIik7CisJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwgUEFHRV9TSVpFKTsKKwlp ZiAoc2l6ZSA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKLQlyZXQgPSBoaWJtY19ib19j cmVhdGUoZGV2LCBzaXplLCAwLCAwLCAmaGlibWNibyk7Ci0JaWYgKHJldCkgeworCWdibyA9IGRy bV9nZW1fdnJhbV9jcmVhdGUoZGV2LCAmaGlibWMtPmJkZXYsIHNpemUsIDAsIGZhbHNlKTsKKwlp ZiAoSVNfRVJSKGdibykpIHsKKwkJcmV0ID0gUFRSX0VSUihnYm8pOwogCQlpZiAocmV0ICE9IC1F UkVTVEFSVFNZUykKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIEdFTSBvYmplY3Q6 ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KLQkqb2JqID0gJmhpYm1jYm8tPmdlbTsK Kwkqb2JqID0gJmdiby0+Z2VtOwogCXJldHVybiAwOwogfQogCkBAIC0zNzcsMzUgKzIxNiw2IEBA IGludCBoaWJtY19kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaGlibWNfZ2VtX2ZyZWVfb2JqZWN0 KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQotewotCXN0cnVjdCBoaWJtY19ibyAqaGlibWNi byA9IGdlbV90b19oaWJtY19ibyhvYmopOwotCi0JaGlibWNfYm9fdW5yZWYoJmhpYm1jYm8pOwot fQotCi1zdGF0aWMgdTY0IGhpYm1jX2JvX21tYXBfb2Zmc2V0KHN0cnVjdCBoaWJtY19ibyAqYm8p Ci17Ci0JcmV0dXJuIGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmYm8tPmJvLnZtYV9ub2RlKTsK LX0KLQotaW50IGhpYm1jX2R1bWJfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLCBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgdTMyIGhhbmRsZSwgdTY0ICpvZmZzZXQpCi17 Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGhpYm1jX2JvICpibzsKLQot CW9iaiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlLCBoYW5kbGUpOwotCWlmICghb2JqKQot CQlyZXR1cm4gLUVOT0VOVDsKLQotCWJvID0gZ2VtX3RvX2hpYm1jX2JvKG9iaik7Ci0JKm9mZnNl dCA9IGhpYm1jX2JvX21tYXBfb2Zmc2V0KGJvKTsKLQotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZChvYmopOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBoaWJtY191c2VyX2ZyYW1l YnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiB7CiAJc3RydWN0IGhp Ym1jX2ZyYW1lYnVmZmVyICpoaWJtY19mYiA9IHRvX2hpYm1jX2ZyYW1lYnVmZmVyKGZiKTsKLS0g CjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs