From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 14/15] drm/hisilicon: Convert hibmc-drm driver to |struct drm_gem_ttm_object| Date: Mon, 8 Apr 2019 11:21:43 +0200 Message-ID: <20190408092144.4548-15-tzimmermann@suse.de> References: <20190408092144.4548-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 F335A897E8 for ; Mon, 8 Apr 2019 09:21:56 +0000 (UTC) In-Reply-To: <20190408092144.4548-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 U2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnICAgICAgIHwgICAxICsK IC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYyAgICB8ICAxOSArLQog Li4uL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYyAgIHwgICA0ICstCiAu Li4vZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oICAgfCAgMjUgKy0tCiAu Li4vZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMgfCAgMzAgKy0tCiBk cml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jICAgfCAyMTAgKy0tLS0t LS0tLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDI0NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tj b25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWcKaW5kZXggYzcx MjlkYzNiZGZjLi45OGZjN2Q1NDZkMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vaGlibWMvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L0tjb25maWcKQEAgLTMsNiArMyw3IEBAIGNvbmZpZyBEUk1fSElTSV9ISUJNQwogCWRlcGVuZHMg b24gRFJNICYmIFBDSSAmJiBNTVUKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlzZWxlY3QgRFJN X1RUTQorCXNlbGVjdCBEUk1fR0VNX1RUTV9IRUxQRVIKIAogCWhlbHAKIAkgIENob29zZSB0aGlz IG9wdGlvbiBpZiB5b3UgaGF2ZSBhIEhpc2lsaWNvbiBIaWJtYyBzb2MgY2hpcHNldC4KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCmluZGV4IDkzMTZi NzI0ZTdhMi4uODY5NTFkZTRhYTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxp Y29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v aGlibWMvaGlibWNfZHJtX2RlLmMKQEAgLTk2LDI3ICs5NiwzMiBAQCBzdGF0aWMgdm9pZCBoaWJt Y19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUJKnN0YXRlCT0gcGxhbmUtPnN0YXRlOwogCXUzMiByZWc7CiAJaW50IHJl dDsKLQl1NjQgZ3B1X2FkZHIgPSAwOworCXM2NCBncHVfYWRkciA9IDA7CiAJdW5zaWduZWQgaW50 IGxpbmVfbDsKIAlzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIgKmhpYm1jX2ZiOwotCXN0cnVj dCBoaWJtY19ibyAqYm87CisJc3RydWN0IGRybV9nZW1fdHRtX29iamVjdCAqZ2JvOwogCiAJaWYg KCFzdGF0ZS0+ZmIpCiAJCXJldHVybjsKIAogCWhpYm1jX2ZiID0gdG9faGlibWNfZnJhbWVidWZm ZXIoc3RhdGUtPmZiKTsKLQlibyA9IGdlbV90b19oaWJtY19ibyhoaWJtY19mYi0+b2JqKTsKLQly ZXQgPSB0dG1fYm9fcmVzZXJ2ZSgmYm8tPmJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7CisJZ2JvID0g ZHJtX2dlbV90dG1fb2ZfZ2VtKGhpYm1jX2ZiLT5vYmopOworCXJldCA9IGRybV9nZW1fdHRtX3Jl c2VydmUoZ2JvLCBmYWxzZSk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBy ZXNlcnZlIHR0bV9ibzogJWQiLCByZXQpOwogCQlyZXR1cm47CiAJfQogCi0JcmV0ID0gaGlibWNf Ym9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFNLCAmZ3B1X2FkZHIpOwotCXR0bV9ib191bnJlc2Vy dmUoJmJvLT5ibyk7CisJcmV0ID0gZHJtX2dlbV90dG1fcGluKGdibywgVFRNX1BMX0ZMQUdfVlJB TSk7CisJZHJtX2dlbV90dG1fdW5yZXNlcnZlKGdibyk7CiAJaWYgKHJldCkgewotCQlEUk1fRVJS T1IoImZhaWxlZCB0byBwaW4gaGlibWNfYm86ICVkIiwgcmV0KTsKKwkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gcGluIGJvOiAlZCIsIHJldCk7CisJCXJldHVybjsKKwl9CisJZ3B1X2FkZHIgPSBkcm1f Z2VtX3R0bV92cmFtX29mZnNldChnYm8pOworCWlmIChncHVfYWRkciA8IDApIHsKKwkJZHJtX2dl bV90dG1fdW5waW4oZ2JvKTsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0v aGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYwppbmRleCA4ZWQ5NGZjZDQyYTcuLmNjNmFi NjZlYzlkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZHJ2LmMKQEAgLTYzLDkgKzYzLDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGhpYm1j X2RyaXZlciA9IHsKIAkuZGVzYwkJCT0gImhpYm1jIGRybSBkcml2ZXIiLAogCS5tYWpvcgkJCT0g MSwKIAkubWlub3IJCQk9IDAsCi0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGhpYm1jX2dl bV9mcmVlX29iamVjdCwKKwkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gZHJtX2dlbV90dG1f ZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZCwKIAkuZHVtYl9jcmVhdGUgICAgICAgICAg ICA9IGhpYm1jX2R1bWJfY3JlYXRlLAotCS5kdW1iX21hcF9vZmZzZXQgICAgICAgID0gaGlibWNf ZHVtYl9tbWFwX29mZnNldCwKKwkuZHVtYl9tYXBfb2Zmc2V0ICAgICAgICA9IGRybV9nZW1fdHRt X2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0LAogCS5pcnFfaGFuZGxlcgkJPSBoaWJtY19kcm1faW50 ZXJydXB0LAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJt Yy9oaWJtY19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1j X2RybV9kcnYuaAppbmRleCAwYTM4MWMyMmRlMjYuLmE0NmZhMDQ3NGI1OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKQEAgLTIzLDYgKzIz LDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJf aGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dl bV90dG1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAKIHN0 cnVjdCBoaWJtY19mcmFtZWJ1ZmZlciB7CkBAIC01OSwyNSArNjAsNiBAQCBzdHJ1Y3QgaGlibWNf ZHJtX3ByaXZhdGUgewogCiAjZGVmaW5lIHRvX2hpYm1jX2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIsIGZiKQogCi1zdHJ1Y3QgaGlibWNfYm8g ewotCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCBibzsKLQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCBw bGFjZW1lbnQ7Ci0Jc3RydWN0IHR0bV9ib19rbWFwX29iaiBrbWFwOwotCXN0cnVjdCBkcm1fZ2Vt X29iamVjdCBnZW07Ci0Jc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRzWzNdOwotCWludCBwaW5f Y291bnQ7Ci19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBoaWJtY19ibyAqaGlibWNfYm8oc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGJvLCBz dHJ1Y3QgaGlibWNfYm8sIGJvKTsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgaGlibWNfYm8g KmdlbV90b19oaWJtY19ibyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKLXsKLQlyZXR1cm4g Y29udGFpbmVyX29mKGdlbSwgc3RydWN0IGhpYm1jX2JvLCBnZW0pOwotfQotCiB2b2lkIGhpYm1j X3NldF9wb3dlcl9tb2RlKHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAqcHJpdiwKIAkJCSAgdW5z aWduZWQgaW50IHBvd2VyX21vZGUpOwogdm9pZCBoaWJtY19zZXRfY3VycmVudF9nYXRlKHN0cnVj dCBoaWJtY19kcm1fcHJpdmF0ZSAqcHJpdiwKQEAgLTk3LDEzICs3OSw4IEBAIGhpYm1jX2ZyYW1l YnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogaW50IGhpYm1jX21tX2luaXQo c3RydWN0IGhpYm1jX2RybV9wcml2YXRlICpoaWJtYyk7CiB2b2lkIGhpYm1jX21tX2Zpbmkoc3Ry dWN0IGhpYm1jX2RybV9wcml2YXRlICpoaWJtYyk7Ci1pbnQgaGlibWNfYm9fcGluKHN0cnVjdCBo aWJtY19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9hZGRyKTsKLWludCBoaWJtY19ib191 bnBpbihzdHJ1Y3QgaGlibWNfYm8gKmJvKTsKLXZvaWQgaGlibWNfZ2VtX2ZyZWVfb2JqZWN0KHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBoaWJtY19kdW1iX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgICAgIHN0cnVjdCBk cm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Ci1pbnQgaGlibWNfZHVtYl9tbWFwX29mZnNldChz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgICB1MzIg aGFuZGxlLCB1NjQgKm9mZnNldCk7CiBpbnQgaGlibWNfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9t b2RlX2NvbmZpZ19mdW5jcyBoaWJtY19tb2RlX2Z1bmNzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMKaW5kZXggODAyNjg1OWFhMDdkLi40 NTJlMmI4MjA4MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMv aGlibWNfZHJtX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY19kcm1fZmJkZXYuYwpAQCAtNjYsNyArNjYsOCBAQCBzdGF0aWMgaW50IGhpYm1jX2RybV9m Yl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAlpbnQgcmV0MTsKIAlzaXpl X3Qgc2l6ZTsKIAl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX3BpeGVsOwotCXN0cnVjdCBoaWJtY19i byAqYm8gPSBOVUxMOworCXN0cnVjdCBkcm1fZ2VtX3R0bV9vYmplY3QgKmdibyA9IE5VTEw7CisJ dm9pZCAqYmFzZTsKIAogCURSTV9ERUJVR19EUklWRVIoInN1cmZhY2Ugd2lkdGgoJWQpLCBoZWln aHQoJWQpIGFuZCBicHAoJWQpXG4iLAogCQkJIHNpemVzLT5zdXJmYWNlX3dpZHRoLCBzaXplcy0+ c3VyZmFjZV9oZWlnaHQsCkBAIC04OCwyNiArODksMjcgQEAgc3RhdGljIGludCBoaWJtY19kcm1f ZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJCXJldHVybiAtRU5PTUVN OwogCX0KIAotCWJvID0gZ2VtX3RvX2hpYm1jX2JvKGdvYmopOworCWdibyA9IGRybV9nZW1fdHRt X29mX2dlbShnb2JqKTsKIAotCXJldCA9IHR0bV9ib19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZh bHNlLCBOVUxMKTsKKwlyZXQgPSBkcm1fZ2VtX3R0bV9yZXNlcnZlKGdibywgZmFsc2UpOwogCWlm IChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcmVzZXJ2ZSB0dG1fYm86ICVkXG4iLCBy ZXQpOworCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIGJvOiAlZFxuIiwgcmV0KTsKIAkJ Z290byBvdXRfdW5yZWZfZ2VtOwogCX0KIAotCXJldCA9IGhpYm1jX2JvX3BpbihibywgVFRNX1BM X0ZMQUdfVlJBTSwgTlVMTCk7CisJcmV0ID0gZHJtX2dlbV90dG1fcGluKGdibywgVFRNX1BMX0ZM QUdfVlJBTSk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBwaW4gZmJjb246 ICVkXG4iLCByZXQpOwogCQlnb3RvIG91dF91bnJlc2VydmVfdHRtX2JvOwogCX0KIAotCXJldCA9 IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1fcGFnZXMsICZiby0+a21hcCk7Ci0J aWYgKHJldCkgeworCWJhc2UgPSBkcm1fZ2VtX3R0bV9rbWFwKGdibywgdHJ1ZSk7CisJaWYgKElT X0VSUihiYXNlKSkgeworCQlyZXQgPSBFUlJfUFRSKGJhc2UpOwogCQlEUk1fRVJST1IoImZhaWxl ZCB0byBrbWFwIGZiY29uOiAlZFxuIiwgcmV0KTsKIAkJZ290byBvdXRfdW5waW5fYm87CiAJfQot CXR0bV9ib191bnJlc2VydmUoJmJvLT5ibyk7CisJZHJtX2dlbV90dG1fdW5yZXNlcnZlKGdibyk7 CiAKIAlpbmZvID0gZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoaGVscGVyKTsKIAlpZiAoSVNfRVJS KGluZm8pKSB7CkBAIC0xMzEsMjQgKzEzMywyNCBAQCBzdGF0aWMgaW50IGhpYm1jX2RybV9mYl9j cmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAogCWRybV9mYl9oZWxwZXJfZmls bF9pbmZvKGluZm8sICZwcml2LT5mYmRldi0+aGVscGVyLCBzaXplcyk7CiAKLQlpbmZvLT5zY3Jl ZW5fYmFzZSA9IGJvLT5rbWFwLnZpcnR1YWw7CisJaW5mby0+c2NyZWVuX2Jhc2UgPSBiYXNlOwog CWluZm8tPnNjcmVlbl9zaXplID0gc2l6ZTsKIAotCWluZm8tPmZpeC5zbWVtX3N0YXJ0ID0gYm8t PmJvLm1lbS5idXMub2Zmc2V0ICsgYm8tPmJvLm1lbS5idXMuYmFzZTsKKwlpbmZvLT5maXguc21l bV9zdGFydCA9IGdiby0+Ym8ubWVtLmJ1cy5vZmZzZXQgKyBnYm8tPmJvLm1lbS5idXMuYmFzZTsK IAlpbmZvLT5maXguc21lbV9sZW4gPSBzaXplOwogCXJldHVybiAwOwogCiBvdXRfcmVsZWFzZV9m Ymk6Ci0JcmV0MSA9IHR0bV9ib19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsK KwlyZXQxID0gZHJtX2dlbV90dG1fcmVzZXJ2ZShnYm8sIGZhbHNlKTsKIAlpZiAocmV0MSkgewog CQlEUk1fRVJST1IoImZhaWxlZCB0byByc3YgdHRtX2JvIHdoZW4gcmVsZWFzZSBmYmk6ICVkXG4i LCByZXQxKTsKIAkJZ290byBvdXRfdW5yZWZfZ2VtOwogCX0KLQl0dG1fYm9fa3VubWFwKCZiby0+ a21hcCk7CisJZHJtX2dlbV90dG1fa3VubWFwKGdibyk7CiBvdXRfdW5waW5fYm86Ci0JaGlibWNf Ym9fdW5waW4oYm8pOworCWRybV9nZW1fdHRtX3VucGluKGdibyk7CiBvdXRfdW5yZXNlcnZlX3R0 bV9ibzoKLQl0dG1fYm9fdW5yZXNlcnZlKCZiby0+Ym8pOworCWRybV9nZW1fdHRtX3VucmVzZXJ2 ZShnYm8pOwogb3V0X3VucmVmX2dlbToKIAlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZ29i aik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNf dHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCmluZGV4 IDYwOTNjNDIxZGFmZi4uY2JlNDJhNGYzZjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGlj b24vaGlibWMvaGlibWNfdHRtLmMKQEAgLTI3LDE5ICsyNyw2IEBAIGhpYm1jX2JkZXYoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkKQogCXJldHVybiBjb250YWluZXJfb2YoYmQsIHN0cnVjdCBoaWJt Y19kcm1fcHJpdmF0ZSwgYmRldik7CiB9CiAKLXN0YXRpYyB2b2lkIGhpYm1jX2JvX3R0bV9kZXN0 cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKQotewotCXN0cnVjdCBoaWJtY19ibyAq Ym8gPSBjb250YWluZXJfb2YodGJvLCBzdHJ1Y3QgaGlibWNfYm8sIGJvKTsKLQotCWRybV9nZW1f b2JqZWN0X3JlbGVhc2UoJmJvLT5nZW0pOwotCWtmcmVlKGJvKTsKLX0KLQotc3RhdGljIGJvb2wg aGlibWNfdHRtX2JvX2lzX2hpYm1jX2JvKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCi17 Ci0JcmV0dXJuIGJvLT5kZXN0cm95ID09ICZoaWJtY19ib190dG1fZGVzdHJveTsKLX0KLQogc3Rh dGljIGludAogaGlibWNfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgdTMyIHR5cGUsCiAJCSAgICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikK QEAgLTY1LDUyICs1Miw2IEBAIGhpYm1jX2JvX2luaXRfbWVtX3R5cGUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHUzMiB0eXBlLAogCXJldHVybiAwOwogfQogCi12b2lkIGhpYm1jX3R0bV9w bGFjZW1lbnQoc3RydWN0IGhpYm1jX2JvICpibywgaW50IGRvbWFpbikKLXsKLQl1MzIgY291bnQg PSAwOwotCXUzMiBpOwotCi0JYm8tPnBsYWNlbWVudC5wbGFjZW1lbnQgPSBiby0+cGxhY2VtZW50 czsKLQliby0+cGxhY2VtZW50LmJ1c3lfcGxhY2VtZW50ID0gYm8tPnBsYWNlbWVudHM7Ci0JaWYg KGRvbWFpbiAmIFRUTV9QTF9GTEFHX1ZSQU0pCi0JCWJvLT5wbGFjZW1lbnRzW2NvdW50KytdLmZs YWdzID0gVFRNX1BMX0ZMQUdfV0MgfAotCQkJVFRNX1BMX0ZMQUdfVU5DQUNIRUQgfCBUVE1fUExf RkxBR19WUkFNOwotCWlmIChkb21haW4gJiBUVE1fUExfRkxBR19TWVNURU0pCi0JCWJvLT5wbGFj ZW1lbnRzW2NvdW50KytdLmZsYWdzID0gVFRNX1BMX01BU0tfQ0FDSElORyB8Ci0JCQlUVE1fUExf RkxBR19TWVNURU07Ci0JaWYgKCFjb3VudCkKLQkJYm8tPnBsYWNlbWVudHNbY291bnQrK10uZmxh Z3MgPSBUVE1fUExfTUFTS19DQUNISU5HIHwKLQkJCVRUTV9QTF9GTEFHX1NZU1RFTTsKLQotCWJv LT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IGNvdW50OwotCWJvLT5wbGFjZW1lbnQubnVtX2J1 c3lfcGxhY2VtZW50ID0gY291bnQ7Ci0JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLQkJ Ym8tPnBsYWNlbWVudHNbaV0uZnBmbiA9IDA7Ci0JCWJvLT5wbGFjZW1lbnRzW2ldLmxwZm4gPSAw OwotCX0KLX0KLQotc3RhdGljIHZvaWQKLWhpYm1jX2JvX2V2aWN0X2ZsYWdzKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbCkKLXsKLQlzdHJ1Y3Qg aGlibWNfYm8gKmhpYm1jYm8gPSBoaWJtY19ibyhibyk7Ci0KLQlpZiAoIWhpYm1jX3R0bV9ib19p c19oaWJtY19ibyhibykpCi0JCXJldHVybjsKLQotCWhpYm1jX3R0bV9wbGFjZW1lbnQoaGlibWNi bywgVFRNX1BMX0ZMQUdfU1lTVEVNKTsKLQkqcGwgPSBoaWJtY2JvLT5wbGFjZW1lbnQ7Ci19Ci0K LXN0YXRpYyBpbnQgaGlibWNfYm9fdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAotCQkJCSAgc3RydWN0IGZpbGUgKmZpbHApCi17Ci0Jc3RydWN0IGhpYm1jX2JvICpo aWJtY2JvID0gaGlibWNfYm8oYm8pOwotCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNj ZXNzKCZoaWJtY2JvLT5nZW0udm1hX25vZGUsCi0JCQkJCSAgZmlscC0+cHJpdmF0ZV9kYXRhKTsK LX0KLQogc3RhdGljIGludCBoaWJtY190dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCiAJCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQogewpAQCAtMTcz LDkgKzExNCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICpoaWJtY190dG1fdHRfY3JlYXRlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBoaWJtY19i b19kcml2ZXIgPSB7CiAJLnR0bV90dF9jcmVhdGUJCT0gaGlibWNfdHRtX3R0X2NyZWF0ZSwKIAku aW5pdF9tZW1fdHlwZQkJPSBoaWJtY19ib19pbml0X21lbV90eXBlLAotCS5ldmljdF9mbGFncwkJ PSBoaWJtY19ib19ldmljdF9mbGFncywKKwkuZXZpY3RfZmxhZ3MJCT0gZHJtX2dlbV90dG1fYm9f ZHJpdmVyX2V2aWN0X2ZsYWdzLAogCS5tb3ZlCQkJPSBOVUxMLAotCS52ZXJpZnlfYWNjZXNzCQk9 IGhpYm1jX2JvX3ZlcmlmeV9hY2Nlc3MsCisJLnZlcmlmeV9hY2Nlc3MJCT0gZHJtX2dlbV90dG1f Ym9fZHJpdmVyX3ZlcmlmeV9hY2Nlc3MsCiAJLmlvX21lbV9yZXNlcnZlCQk9ICZoaWJtY190dG1f aW9fbWVtX3Jlc2VydmUsCiAJLmlvX21lbV9mcmVlCQk9IE5VTEwsCiB9OwpAQCAtMjE1LDEwOCAr MTU2LDYgQEAgdm9pZCBoaWJtY19tbV9maW5pKHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAqaGli bWMpCiAJaGlibWMtPm1tX2luaXRlZCA9IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBoaWJtY19i b191bnJlZihzdHJ1Y3QgaGlibWNfYm8gKipibykKLXsKLQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKnRibzsKLQotCWlmICgoKmJvKSA9PSBOVUxMKQotCQlyZXR1cm47Ci0KLQl0Ym8gPSAmKCgq Ym8pLT5ibyk7Ci0JdHRtX2JvX3B1dCh0Ym8pOwotCSpibyA9IE5VTEw7Ci19Ci0KLWludCBoaWJt Y19ib19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGludCBhbGlnbiwK LQkJICAgIHUzMiBmbGFncywgc3RydWN0IGhpYm1jX2JvICoqcGhpYm1jYm8pCi17Ci0Jc3RydWN0 IGhpYm1jX2RybV9wcml2YXRlICpoaWJtYyA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGhp Ym1jX2JvICpoaWJtY2JvOwotCXNpemVfdCBhY2Nfc2l6ZTsKLQlpbnQgcmV0OwotCi0JaGlibWNi byA9IGt6YWxsb2Moc2l6ZW9mKCpoaWJtY2JvKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFoaWJtY2Jv KSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIGhpYm1jYm9cbiIpOwotCQlyZXR1 cm4gLUVOT01FTTsKLQl9Ci0JcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdChkZXYsICZoaWJtY2Jv LT5nZW0sIHNpemUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlh bGl6ZSBkcm0gZ2VtIG9iamVjdDogJWRcbiIsIHJldCk7Ci0JCWtmcmVlKGhpYm1jYm8pOwotCQly ZXR1cm4gcmV0OwotCX0KLQotCWhpYm1jYm8tPmJvLmJkZXYgPSAmaGlibWMtPmJkZXY7Ci0KLQlo aWJtY190dG1fcGxhY2VtZW50KGhpYm1jYm8sIFRUTV9QTF9GTEFHX1ZSQU0gfCBUVE1fUExfRkxB R19TWVNURU0pOwotCi0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKCZoaWJtYy0+YmRl diwgc2l6ZSwKLQkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBoaWJtY19ibykpOwotCi0JcmV0ID0g dHRtX2JvX2luaXQoJmhpYm1jLT5iZGV2LCAmaGlibWNiby0+Ym8sIHNpemUsCi0JCQkgIHR0bV9i b190eXBlX2RldmljZSwgJmhpYm1jYm8tPnBsYWNlbWVudCwKLQkJCSAgYWxpZ24gPj4gUEFHRV9T SElGVCwgZmFsc2UsIGFjY19zaXplLAotCQkJICBOVUxMLCBOVUxMLCBoaWJtY19ib190dG1fZGVz dHJveSk7Ci0JaWYgKHJldCkgewotCQloaWJtY19ib191bnJlZigmaGlibWNibyk7Ci0JCURSTV9F UlJPUigiZmFpbGVkIHRvIGluaXRpYWxpemUgdHRtX2JvOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJu IHJldDsKLQl9Ci0KLQkqcGhpYm1jYm8gPSBoaWJtY2JvOwotCXJldHVybiAwOwotfQotCi1pbnQg aGlibWNfYm9fcGluKHN0cnVjdCBoaWJtY19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9h ZGRyKQotewotCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9 OwotCWludCBpLCByZXQ7Ci0KLQlpZiAoYm8tPnBpbl9jb3VudCkgewotCQliby0+cGluX2NvdW50 Kys7Ci0JCWlmIChncHVfYWRkcikKLQkJCSpncHVfYWRkciA9IGJvLT5iby5vZmZzZXQ7Ci0JCXJl dHVybiAwOwotCX0KLQotCWhpYm1jX3R0bV9wbGFjZW1lbnQoYm8sIHBsX2ZsYWcpOwotCWZvciAo aSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQ7IGkrKykKLQkJYm8tPnBsYWNl bWVudHNbaV0uZmxhZ3MgfD0gVFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Ci0JcmV0ID0gdHRtX2JvX3Zh bGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKLQlpZiAocmV0KQotCQlyZXR1 cm4gcmV0OwotCi0JYm8tPnBpbl9jb3VudCA9IDE7Ci0JaWYgKGdwdV9hZGRyKQotCQkqZ3B1X2Fk ZHIgPSBiby0+Ym8ub2Zmc2V0OwotCXJldHVybiAwOwotfQotCi1pbnQgaGlibWNfYm9fdW5waW4o c3RydWN0IGhpYm1jX2JvICpibykKLXsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0g eyBmYWxzZSwgZmFsc2UgfTsKLQlpbnQgaSwgcmV0OwotCi0JaWYgKCFiby0+cGluX2NvdW50KSB7 Ci0JCURSTV9FUlJPUigidW5waW4gYmFkICVwXG4iLCBibyk7Ci0JCXJldHVybiAwOwotCX0KLQli by0+cGluX2NvdW50LS07Ci0JaWYgKGJvLT5waW5fY291bnQpCi0JCXJldHVybiAwOwotCi0JZm9y IChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA7IGkrKykKLQkJYm8tPnBs YWNlbWVudHNbaV0uZmxhZ3MgJj0gflRUTV9QTF9GTEFHX05PX0VWSUNUOwotCXJldCA9IHR0bV9i b192YWxpZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7Ci0JaWYgKHJldCkgewot CQlEUk1fRVJST1IoInZhbGlkYXRlIGZhaWxlZCBmb3IgdW5waW46ICVkXG4iLCByZXQpOwotCQly ZXR1cm4gcmV0OwotCX0KLQotCXJldHVybiAwOwotfQotCiBpbnQgaGlibWNfbW1hcChzdHJ1Y3Qg ZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7CiAJc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CkBAIC0zMjgsMjQgKzE2NywyNCBA QCBpbnQgaGlibWNfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEpCiBpbnQgaGlibWNfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIg c2l6ZSwgYm9vbCBpc2tlcm5lbCwKIAkJICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmop CiB7Ci0Jc3RydWN0IGhpYm1jX2JvICpoaWJtY2JvOworCXN0cnVjdCBoaWJtY19kcm1fcHJpdmF0 ZSAqaGlibWMgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZ2VtX3R0bV9vYmplY3Qg KmdibzsKIAlpbnQgcmV0OwogCiAJKm9iaiA9IE5VTEw7CiAKLQlzaXplID0gUEFHRV9BTElHTihz aXplKTsKLQlpZiAoc2l6ZSA9PSAwKSB7Ci0JCURSTV9FUlJPUigiZXJyb3I6IHplcm8gc2l6ZVxu Iik7CisJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwgUEFHRV9TSVpFKTsKKwlpZiAoc2l6ZSA9PSAwKQog CQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKLQlyZXQgPSBoaWJtY19ib19jcmVhdGUoZGV2LCBzaXpl LCAwLCAwLCAmaGlibWNibyk7Ci0JaWYgKHJldCkgeworCWdibyA9IGRybV9nZW1fdHRtX2NyZWF0 ZShkZXYsICZoaWJtYy0+YmRldiwgc2l6ZSwgMCwgZmFsc2UpOworCWlmIChJU19FUlIoZ2JvKSkg eworCQlyZXQgPSBQVFJfRVJSKGdibyk7CiAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQogCQkJ RFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgR0VNIG9iamVjdDogJWRcbiIsIHJldCk7CiAJ CXJldHVybiByZXQ7CiAJfQotCSpvYmogPSAmaGlibWNiby0+Z2VtOworCSpvYmogPSAmZ2JvLT5n ZW07CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM3NywzNSArMjE2LDYgQEAgaW50IGhpYm1jX2R1bWJf Y3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAly ZXR1cm4gMDsKIH0KIAotdm9pZCBoaWJtY19nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopCi17Ci0Jc3RydWN0IGhpYm1jX2JvICpoaWJtY2JvID0gZ2VtX3RvX2hpYm1j X2JvKG9iaik7Ci0KLQloaWJtY19ib191bnJlZigmaGlibWNibyk7Ci19Ci0KLXN0YXRpYyB1NjQg aGlibWNfYm9fbW1hcF9vZmZzZXQoc3RydWN0IGhpYm1jX2JvICpibykKLXsKLQlyZXR1cm4gZHJt X3ZtYV9ub2RlX29mZnNldF9hZGRyKCZiby0+Ym8udm1hX25vZGUpOwotfQotCi1pbnQgaGlibWNf ZHVtYl9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCi0JCQkgICB1MzIgaGFuZGxlLCB1NjQgKm9mZnNldCkKLXsKLQlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaGlibWNfYm8gKmJvOwotCi0Jb2JqID0gZHJtX2dlbV9v YmplY3RfbG9va3VwKGZpbGUsIGhhbmRsZSk7Ci0JaWYgKCFvYmopCi0JCXJldHVybiAtRU5PRU5U OwotCi0JYm8gPSBnZW1fdG9faGlibWNfYm8ob2JqKTsKLQkqb2Zmc2V0ID0gaGlibWNfYm9fbW1h cF9vZmZzZXQoYm8pOwotCi0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7Ci0JcmV0 dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGhpYm1jX3VzZXJfZnJhbWVidWZmZXJfZGVzdHJveShz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIHsKIAlzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIg KmhpYm1jX2ZiID0gdG9faGlibWNfZnJhbWVidWZmZXIoZmIpOwotLSAKMi4yMS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=