From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 18/19] drm/hisilicon: Convert hibmc-drm driver to |struct drm_gem_vram_object| Date: Mon, 6 May 2019 10:26:48 +0200 Message-ID: <20190506082649.942-19-tzimmermann@suse.de> References: <20190506082649.942-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 45FFF896FA for ; Mon, 6 May 2019 08:27:03 +0000 (UTC) In-Reply-To: <20190506082649.942-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, hdegoede@redhat.com, noralf@tronnes.org, sam@ravnborg.org, 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 YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgp2NDoKCSogc2VsZWN0IGNvbmZpZyBv cHRpb24gRFJNX1ZSQU1fSEVMUEVSCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8 dHppbW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L0tjb25maWcgICAgICAgfCAgIDEgKwogLi4uL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1j X2RybV9kZS5jICAgIHwgIDIxICstCiAuLi4vZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNf ZHJtX2Rydi5jICAgfCAgIDUgKy0KIC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZHJ2LmggICB8ICAyNSArLS0KIC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZmJkZXYuYyB8ICAzMCArLS0KIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGli bWNfdHRtLmMgICB8IDIxMCArLS0tLS0tLS0tLS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNDQg aW5zZXJ0aW9ucygrKSwgMjQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v aGlibWMvS2NvbmZpZwppbmRleCBjNzEyOWRjM2JkZmMuLjA0ZDBiYzY4NTU2MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwpAQCAtMyw2ICszLDcgQEAgY29uZmlnIERS TV9ISVNJX0hJQk1DCiAJZGVwZW5kcyBvbiBEUk0gJiYgUENJICYmIE1NVQogCXNlbGVjdCBEUk1f S01TX0hFTFBFUgogCXNlbGVjdCBEUk1fVFRNCisJc2VsZWN0IERSTV9WUkFNX0hFTFBFUgogCiAJ aGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgSGlzaWxpY29uIEhpYm1j IHNvYyBjaGlwc2V0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJt Yy9oaWJtY19kcm1fZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNf ZHJtX2RlLmMKaW5kZXggOTMxNmI3MjRlN2EyLi5kYjBkZmE1Nzg0NGUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYwpAQCAtOTYsMjcgKzk2LDMy IEBAIHN0YXRpYyB2b2lkIGhpYm1jX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZQkqc3RhdGUJPSBwbGFuZS0+c3RhdGU7 CiAJdTMyIHJlZzsKIAlpbnQgcmV0OwotCXU2NCBncHVfYWRkciA9IDA7CisJczY0IGdwdV9hZGRy ID0gMDsKIAl1bnNpZ25lZCBpbnQgbGluZV9sOwogCXN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAq cHJpdiA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBoaWJtY19mcmFtZWJ1ZmZl ciAqaGlibWNfZmI7Ci0Jc3RydWN0IGhpYm1jX2JvICpibzsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFt X29iamVjdCAqZ2JvOwogCiAJaWYgKCFzdGF0ZS0+ZmIpCiAJCXJldHVybjsKIAogCWhpYm1jX2Zi ID0gdG9faGlibWNfZnJhbWVidWZmZXIoc3RhdGUtPmZiKTsKLQlibyA9IGdlbV90b19oaWJtY19i byhoaWJtY19mYi0+b2JqKTsKLQlyZXQgPSB0dG1fYm9fcmVzZXJ2ZSgmYm8tPmJvLCB0cnVlLCBm YWxzZSwgTlVMTCk7CisJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShoaWJtY19mYi0+b2JqKTsK KwlyZXQgPSBkcm1fZ2VtX3ZyYW1fcmVzZXJ2ZShnYm8sIGZhbHNlKTsKIAlpZiAocmV0KSB7Ci0J CURSTV9FUlJPUigiZmFpbGVkIHRvIHJlc2VydmUgdHRtX2JvOiAlZCIsIHJldCk7CisJCURSTV9F UlJPUigiZmFpbGVkIHRvIHJlc2VydmUgQk86ICVkIiwgcmV0KTsKIAkJcmV0dXJuOwogCX0KIAot CXJldCA9IGhpYm1jX2JvX3BpbihibywgVFRNX1BMX0ZMQUdfVlJBTSwgJmdwdV9hZGRyKTsKLQl0 dG1fYm9fdW5yZXNlcnZlKCZiby0+Ym8pOworCXJldCA9IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBE Uk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKKwlkcm1fZ2VtX3ZyYW1fdW5yZXNlcnZlKGdibyk7 CiAJaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBwaW4gaGlibWNfYm86ICVkIiwg cmV0KTsKKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcGluIGJvOiAlZCIsIHJldCk7CisJCXJldHVy bjsKKwl9CisJZ3B1X2FkZHIgPSBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KGdibyk7CisJaWYgKGdwdV9h ZGRyIDwgMCkgeworCQlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKIAkJcmV0dXJuOwogCX0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYwppbmRl eCA4ZWQ5NGZjZDQyYTcuLjcwMjdhMWEwNTc2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hp c2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKQEAgLTYzLDkgKzYzLDEwIEBAIHN0YXRpYyBz dHJ1Y3QgZHJtX2RyaXZlciBoaWJtY19kcml2ZXIgPSB7CiAJLmRlc2MJCQk9ICJoaWJtYyBkcm0g ZHJpdmVyIiwKIAkubWFqb3IJCQk9IDEsCiAJLm1pbm9yCQkJPSAwLAotCS5nZW1fZnJlZV9vYmpl Y3RfdW5sb2NrZWQgPSBoaWJtY19nZW1fZnJlZV9vYmplY3QsCisJLmdlbV9mcmVlX29iamVjdF91 bmxvY2tlZCA9CisJCWRybV9nZW1fdnJhbV9kcml2ZXJfZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2Vk LAogCS5kdW1iX2NyZWF0ZSAgICAgICAgICAgID0gaGlibWNfZHVtYl9jcmVhdGUsCi0JLmR1bWJf bWFwX29mZnNldCAgICAgICAgPSBoaWJtY19kdW1iX21tYXBfb2Zmc2V0LAorCS5kdW1iX21hcF9v ZmZzZXQgICAgICAgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0LAogCS5p cnFfaGFuZGxlcgkJPSBoaWJtY19kcm1faW50ZXJydXB0LAogfTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuaAppbmRleCAwYTM4MWMyMmRlMjYu LjZiMzQzMGZjNTE0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJt Yy9oaWJtY19kcm1fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY19kcm1fZHJ2LmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21p Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9n ZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oPgogI2luY2x1ZGUgPGRy bS90dG0vdHRtX2JvX2RyaXZlci5oPgogCiBzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIgewpAQCAt NTksMjUgKzYwLDYgQEAgc3RydWN0IGhpYm1jX2RybV9wcml2YXRlIHsKIAogI2RlZmluZSB0b19o aWJtY19mcmFtZWJ1ZmZlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGhpYm1jX2ZyYW1lYnVm ZmVyLCBmYikKIAotc3RydWN0IGhpYm1jX2JvIHsKLQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg Ym87Ci0Jc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50OwotCXN0cnVjdCB0dG1fYm9fa21h cF9vYmoga21hcDsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgZ2VtOwotCXN0cnVjdCB0dG1fcGxh Y2UgcGxhY2VtZW50c1szXTsKLQlpbnQgcGluX2NvdW50OwotfTsKLQotc3RhdGljIGlubGluZSBz dHJ1Y3QgaGlibWNfYm8gKmhpYm1jX2JvKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCi17 Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihibywgc3RydWN0IGhpYm1jX2JvLCBibyk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGhpYm1jX2JvICpnZW1fdG9faGlibWNfYm8oc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpnZW0pCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihnZW0sIHN0cnVjdCBoaWJt Y19ibywgZ2VtKTsKLX0KLQogdm9pZCBoaWJtY19zZXRfcG93ZXJfbW9kZShzdHJ1Y3QgaGlibWNf ZHJtX3ByaXZhdGUgKnByaXYsCiAJCQkgIHVuc2lnbmVkIGludCBwb3dlcl9tb2RlKTsKIHZvaWQg aGlibWNfc2V0X2N1cnJlbnRfZ2F0ZShzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKnByaXYsCkBA IC05NywxMyArNzksOCBAQCBoaWJtY19mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAKIGludCBoaWJtY19tbV9pbml0KHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAqaGli bWMpOwogdm9pZCBoaWJtY19tbV9maW5pKHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAqaGlibWMp OwotaW50IGhpYm1jX2JvX3BpbihzdHJ1Y3QgaGlibWNfYm8gKmJvLCB1MzIgcGxfZmxhZywgdTY0 ICpncHVfYWRkcik7Ci1pbnQgaGlibWNfYm9fdW5waW4oc3RydWN0IGhpYm1jX2JvICpibyk7Ci12 b2lkIGhpYm1jX2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiBp bnQgaGlibWNfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLCBzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwot aW50IGhpYm1jX2R1bWJfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLCBzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAotCQkJICAgdTMyIGhhbmRsZSwgdTY0ICpvZmZzZXQpOwogaW50IGhp Ym1jX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsK IAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgaGlibWNfbW9kZV9m dW5jczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNf ZHJtX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9m YmRldi5jCmluZGV4IDgwMjY4NTlhYTA3ZC4uOWQyMDI1ZmExNmY4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMKQEAgLTY2LDcgKzY2 LDggQEAgc3RhdGljIGludCBoaWJtY19kcm1fZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIsCiAJaW50IHJldDE7CiAJc2l6ZV90IHNpemU7CiAJdW5zaWduZWQgaW50IGJ5dGVz X3Blcl9waXhlbDsKLQlzdHJ1Y3QgaGlibWNfYm8gKmJvID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2dl bV92cmFtX29iamVjdCAqZ2JvID0gTlVMTDsKKwl2b2lkICpiYXNlOwogCiAJRFJNX0RFQlVHX0RS SVZFUigic3VyZmFjZSB3aWR0aCglZCksIGhlaWdodCglZCkgYW5kIGJwcCglZClcbiIsCiAJCQkg c2l6ZXMtPnN1cmZhY2Vfd2lkdGgsIHNpemVzLT5zdXJmYWNlX2hlaWdodCwKQEAgLTg4LDI2ICs4 OSwyNyBAQCBzdGF0aWMgaW50IGhpYm1jX2RybV9mYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxw ZXIgKmhlbHBlciwKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0JYm8gPSBnZW1fdG9faGlibWNf Ym8oZ29iaik7CisJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShnb2JqKTsKIAotCXJldCA9IHR0 bV9ib19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKKwlyZXQgPSBkcm1fZ2Vt X3ZyYW1fcmVzZXJ2ZShnYm8sIGZhbHNlKTsKIAlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFp bGVkIHRvIHJlc2VydmUgdHRtX2JvOiAlZFxuIiwgcmV0KTsKKwkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gcmVzZXJ2ZSBibzogJWRcbiIsIHJldCk7CiAJCWdvdG8gb3V0X3VucmVmX2dlbTsKIAl9CiAK LQlyZXQgPSBoaWJtY19ib19waW4oYm8sIFRUTV9QTF9GTEFHX1ZSQU0sIE5VTEwpOworCXJldCA9 IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKIAlpZiAo cmV0KSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBmYmNvbjogJWRcbiIsIHJldCk7CiAJ CWdvdG8gb3V0X3VucmVzZXJ2ZV90dG1fYm87CiAJfQogCi0JcmV0ID0gdHRtX2JvX2ttYXAoJmJv LT5ibywgMCwgYm8tPmJvLm51bV9wYWdlcywgJmJvLT5rbWFwKTsKLQlpZiAocmV0KSB7CisJYmFz ZSA9IGRybV9nZW1fdnJhbV9rbWFwKGdibywgdHJ1ZSwgTlVMTCk7CisJaWYgKElTX0VSUihiYXNl KSkgeworCQlyZXQgPSBQVFJfRVJSKGJhc2UpOwogCQlEUk1fRVJST1IoImZhaWxlZCB0byBrbWFw IGZiY29uOiAlZFxuIiwgcmV0KTsKIAkJZ290byBvdXRfdW5waW5fYm87CiAJfQotCXR0bV9ib191 bnJlc2VydmUoJmJvLT5ibyk7CisJZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShnYm8pOwogCiAJaW5m byA9IGRybV9mYl9oZWxwZXJfYWxsb2NfZmJpKGhlbHBlcik7CiAJaWYgKElTX0VSUihpbmZvKSkg ewpAQCAtMTMxLDI0ICsxMzMsMjQgQEAgc3RhdGljIGludCBoaWJtY19kcm1fZmJfY3JlYXRlKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAKIAlkcm1fZmJfaGVscGVyX2ZpbGxfaW5mbyhp bmZvLCAmcHJpdi0+ZmJkZXYtPmhlbHBlciwgc2l6ZXMpOwogCi0JaW5mby0+c2NyZWVuX2Jhc2Ug PSBiby0+a21hcC52aXJ0dWFsOworCWluZm8tPnNjcmVlbl9iYXNlID0gYmFzZTsKIAlpbmZvLT5z Y3JlZW5fc2l6ZSA9IHNpemU7CiAKLQlpbmZvLT5maXguc21lbV9zdGFydCA9IGJvLT5iby5tZW0u YnVzLm9mZnNldCArIGJvLT5iby5tZW0uYnVzLmJhc2U7CisJaW5mby0+Zml4LnNtZW1fc3RhcnQg PSBnYm8tPmJvLm1lbS5idXMub2Zmc2V0ICsgZ2JvLT5iby5tZW0uYnVzLmJhc2U7CiAJaW5mby0+ Zml4LnNtZW1fbGVuID0gc2l6ZTsKIAlyZXR1cm4gMDsKIAogb3V0X3JlbGVhc2VfZmJpOgotCXJl dDEgPSB0dG1fYm9fcmVzZXJ2ZSgmYm8tPmJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7CisJcmV0MSA9 IGRybV9nZW1fdnJhbV9yZXNlcnZlKGdibywgZmFsc2UpOwogCWlmIChyZXQxKSB7CiAJCURSTV9F UlJPUigiZmFpbGVkIHRvIHJzdiB0dG1fYm8gd2hlbiByZWxlYXNlIGZiaTogJWRcbiIsIHJldDEp OwogCQlnb3RvIG91dF91bnJlZl9nZW07CiAJfQotCXR0bV9ib19rdW5tYXAoJmJvLT5rbWFwKTsK Kwlkcm1fZ2VtX3ZyYW1fa3VubWFwKGdibyk7CiBvdXRfdW5waW5fYm86Ci0JaGlibWNfYm9fdW5w aW4oYm8pOworCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogb3V0X3VucmVzZXJ2ZV90dG1fYm86 Ci0JdHRtX2JvX3VucmVzZXJ2ZSgmYm8tPmJvKTsKKwlkcm1fZ2VtX3ZyYW1fdW5yZXNlcnZlKGdi byk7CiBvdXRfdW5yZWZfZ2VtOgogCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChnb2JqKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY190dG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMKaW5kZXggNjA5 M2M0MjFkYWZmLi5mYmY4ZWIwNDhlYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vaGlibWMvaGlibWNfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9o aWJtYy9oaWJtY190dG0uYwpAQCAtMjcsMTkgKzI3LDYgQEAgaGlibWNfYmRldihzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmQpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwgc3RydWN0IGhpYm1jX2Ry bV9wcml2YXRlLCBiZGV2KTsKIH0KIAotc3RhdGljIHZvaWQgaGlibWNfYm9fdHRtX2Rlc3Ryb3ko c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCi17Ci0Jc3RydWN0IGhpYm1jX2JvICpibyA9 IGNvbnRhaW5lcl9vZih0Ym8sIHN0cnVjdCBoaWJtY19ibywgYm8pOwotCi0JZHJtX2dlbV9vYmpl Y3RfcmVsZWFzZSgmYm8tPmdlbSk7Ci0Ja2ZyZWUoYm8pOwotfQotCi1zdGF0aWMgYm9vbCBoaWJt Y190dG1fYm9faXNfaGlibWNfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKLXsKLQly ZXR1cm4gYm8tPmRlc3Ryb3kgPT0gJmhpYm1jX2JvX3R0bV9kZXN0cm95OwotfQotCiBzdGF0aWMg aW50CiBoaWJtY19ib19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1 MzIgdHlwZSwKIAkJICAgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQpAQCAt NjUsNTIgKzUyLDYgQEAgaGlibWNfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgdTMyIHR5cGUsCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaGlibWNfdHRtX3BsYWNl bWVudChzdHJ1Y3QgaGlibWNfYm8gKmJvLCBpbnQgZG9tYWluKQotewotCXUzMiBjb3VudCA9IDA7 Ci0JdTMyIGk7Ci0KLQliby0+cGxhY2VtZW50LnBsYWNlbWVudCA9IGJvLT5wbGFjZW1lbnRzOwot CWJvLT5wbGFjZW1lbnQuYnVzeV9wbGFjZW1lbnQgPSBiby0+cGxhY2VtZW50czsKLQlpZiAoZG9t YWluICYgVFRNX1BMX0ZMQUdfVlJBTSkKLQkJYm8tPnBsYWNlbWVudHNbY291bnQrK10uZmxhZ3Mg PSBUVE1fUExfRkxBR19XQyB8Ci0JCQlUVE1fUExfRkxBR19VTkNBQ0hFRCB8IFRUTV9QTF9GTEFH X1ZSQU07Ci0JaWYgKGRvbWFpbiAmIFRUTV9QTF9GTEFHX1NZU1RFTSkKLQkJYm8tPnBsYWNlbWVu dHNbY291bnQrK10uZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HIHwKLQkJCVRUTV9QTF9GTEFH X1NZU1RFTTsKLQlpZiAoIWNvdW50KQotCQliby0+cGxhY2VtZW50c1tjb3VudCsrXS5mbGFncyA9 IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfAotCQkJVFRNX1BMX0ZMQUdfU1lTVEVNOwotCi0JYm8tPnBs YWNlbWVudC5udW1fcGxhY2VtZW50ID0gY291bnQ7Ci0JYm8tPnBsYWNlbWVudC5udW1fYnVzeV9w bGFjZW1lbnQgPSBjb3VudDsKLQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotCQliby0+ cGxhY2VtZW50c1tpXS5mcGZuID0gMDsKLQkJYm8tPnBsYWNlbWVudHNbaV0ubHBmbiA9IDA7Ci0J fQotfQotCi1zdGF0aWMgdm9pZAotaGlibWNfYm9fZXZpY3RfZmxhZ3Moc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsKQotewotCXN0cnVjdCBoaWJt Y19ibyAqaGlibWNibyA9IGhpYm1jX2JvKGJvKTsKLQotCWlmICghaGlibWNfdHRtX2JvX2lzX2hp Ym1jX2JvKGJvKSkKLQkJcmV0dXJuOwotCi0JaGlibWNfdHRtX3BsYWNlbWVudChoaWJtY2JvLCBU VE1fUExfRkxBR19TWVNURU0pOwotCSpwbCA9IGhpYm1jYm8tPnBsYWNlbWVudDsKLX0KLQotc3Rh dGljIGludCBoaWJtY19ib192ZXJpZnlfYWNjZXNzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCi0JCQkJICBzdHJ1Y3QgZmlsZSAqZmlscCkKLXsKLQlzdHJ1Y3QgaGlibWNfYm8gKmhpYm1j Ym8gPSBoaWJtY19ibyhibyk7Ci0KLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3Mo JmhpYm1jYm8tPmdlbS52bWFfbm9kZSwKLQkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwotfQot CiBzdGF0aWMgaW50IGhpYm1jX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKIAkJCQkgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiB7CkBAIC0xNzMsOSAr MTE0LDkgQEAgc3RhdGljIHN0cnVjdCB0dG1fdHQgKmhpYm1jX3R0bV90dF9jcmVhdGUoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIHN0cnVjdCB0dG1fYm9fZHJpdmVyIGhpYm1jX2JvX2Ry aXZlciA9IHsKIAkudHRtX3R0X2NyZWF0ZQkJPSBoaWJtY190dG1fdHRfY3JlYXRlLAogCS5pbml0 X21lbV90eXBlCQk9IGhpYm1jX2JvX2luaXRfbWVtX3R5cGUsCi0JLmV2aWN0X2ZsYWdzCQk9IGhp Ym1jX2JvX2V2aWN0X2ZsYWdzLAorCS5ldmljdF9mbGFncwkJPSBkcm1fZ2VtX3ZyYW1fYm9fZHJp dmVyX2V2aWN0X2ZsYWdzLAogCS5tb3ZlCQkJPSBOVUxMLAotCS52ZXJpZnlfYWNjZXNzCQk9IGhp Ym1jX2JvX3ZlcmlmeV9hY2Nlc3MsCisJLnZlcmlmeV9hY2Nlc3MJCT0gZHJtX2dlbV92cmFtX2Jv X2RyaXZlcl92ZXJpZnlfYWNjZXNzLAogCS5pb19tZW1fcmVzZXJ2ZQkJPSAmaGlibWNfdHRtX2lv X21lbV9yZXNlcnZlLAogCS5pb19tZW1fZnJlZQkJPSBOVUxMLAogfTsKQEAgLTIxNSwxMDggKzE1 Niw2IEBAIHZvaWQgaGlibWNfbW1fZmluaShzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1j KQogCWhpYm1jLT5tbV9pbml0ZWQgPSBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgaGlibWNfYm9f dW5yZWYoc3RydWN0IGhpYm1jX2JvICoqYm8pCi17Ci0Jc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICp0Ym87Ci0KLQlpZiAoKCpibykgPT0gTlVMTCkKLQkJcmV0dXJuOwotCi0JdGJvID0gJigoKmJv KS0+Ym8pOwotCXR0bV9ib19wdXQodGJvKTsKLQkqYm8gPSBOVUxMOwotfQotCi1pbnQgaGlibWNf Ym9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBpbnQgYWxpZ24sCi0J CSAgICB1MzIgZmxhZ3MsIHN0cnVjdCBoaWJtY19ibyAqKnBoaWJtY2JvKQotewotCXN0cnVjdCBo aWJtY19kcm1fcHJpdmF0ZSAqaGlibWMgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBoaWJt Y19ibyAqaGlibWNibzsKLQlzaXplX3QgYWNjX3NpemU7Ci0JaW50IHJldDsKLQotCWhpYm1jYm8g PSBremFsbG9jKHNpemVvZigqaGlibWNibyksIEdGUF9LRVJORUwpOwotCWlmICghaGlibWNibykg ewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBoaWJtY2JvXG4iKTsKLQkJcmV0dXJu IC1FTk9NRU07Ci0JfQotCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmaGlibWNiby0+ Z2VtLCBzaXplKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxp emUgZHJtIGdlbSBvYmplY3Q6ICVkXG4iLCByZXQpOwotCQlrZnJlZShoaWJtY2JvKTsKLQkJcmV0 dXJuIHJldDsKLQl9Ci0KLQloaWJtY2JvLT5iby5iZGV2ID0gJmhpYm1jLT5iZGV2OwotCi0JaGli bWNfdHRtX3BsYWNlbWVudChoaWJtY2JvLCBUVE1fUExfRkxBR19WUkFNIHwgVFRNX1BMX0ZMQUdf U1lTVEVNKTsKLQotCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgmaGlibWMtPmJkZXYs IHNpemUsCi0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgaGlibWNfYm8pKTsKLQotCXJldCA9IHR0 bV9ib19pbml0KCZoaWJtYy0+YmRldiwgJmhpYm1jYm8tPmJvLCBzaXplLAotCQkJICB0dG1fYm9f dHlwZV9kZXZpY2UsICZoaWJtY2JvLT5wbGFjZW1lbnQsCi0JCQkgIGFsaWduID4+IFBBR0VfU0hJ RlQsIGZhbHNlLCBhY2Nfc2l6ZSwKLQkJCSAgTlVMTCwgTlVMTCwgaGlibWNfYm9fdHRtX2Rlc3Ry b3kpOwotCWlmIChyZXQpIHsKLQkJaGlibWNfYm9fdW5yZWYoJmhpYm1jYm8pOwotCQlEUk1fRVJS T1IoImZhaWxlZCB0byBpbml0aWFsaXplIHR0bV9ibzogJWRcbiIsIHJldCk7Ci0JCXJldHVybiBy ZXQ7Ci0JfQotCi0JKnBoaWJtY2JvID0gaGlibWNibzsKLQlyZXR1cm4gMDsKLX0KLQotaW50IGhp Ym1jX2JvX3BpbihzdHJ1Y3QgaGlibWNfYm8gKmJvLCB1MzIgcGxfZmxhZywgdTY0ICpncHVfYWRk cikKLXsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsK LQlpbnQgaSwgcmV0OwotCi0JaWYgKGJvLT5waW5fY291bnQpIHsKLQkJYm8tPnBpbl9jb3VudCsr OwotCQlpZiAoZ3B1X2FkZHIpCi0JCQkqZ3B1X2FkZHIgPSBiby0+Ym8ub2Zmc2V0OwotCQlyZXR1 cm4gMDsKLQl9Ci0KLQloaWJtY190dG1fcGxhY2VtZW50KGJvLCBwbF9mbGFnKTsKLQlmb3IgKGkg PSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspCi0JCWJvLT5wbGFjZW1l bnRzW2ldLmZsYWdzIHw9IFRUTV9QTF9GTEFHX05PX0VWSUNUOwotCXJldCA9IHR0bV9ib192YWxp ZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJu IHJldDsKLQotCWJvLT5waW5fY291bnQgPSAxOwotCWlmIChncHVfYWRkcikKLQkJKmdwdV9hZGRy ID0gYm8tPmJvLm9mZnNldDsKLQlyZXR1cm4gMDsKLX0KLQotaW50IGhpYm1jX2JvX3VucGluKHN0 cnVjdCBoaWJtY19ibyAqYm8pCi17Ci0Jc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsg ZmFsc2UsIGZhbHNlIH07Ci0JaW50IGksIHJldDsKLQotCWlmICghYm8tPnBpbl9jb3VudCkgewot CQlEUk1fRVJST1IoInVucGluIGJhZCAlcFxuIiwgYm8pOwotCQlyZXR1cm4gMDsKLQl9Ci0JYm8t PnBpbl9jb3VudC0tOwotCWlmIChiby0+cGluX2NvdW50KQotCQlyZXR1cm4gMDsKLQotCWZvciAo aSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgOyBpKyspCi0JCWJvLT5wbGFj ZW1lbnRzW2ldLmZsYWdzICY9IH5UVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9f dmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwotCWlmIChyZXQpIHsKLQkJ RFJNX0VSUk9SKCJ2YWxpZGF0ZSBmYWlsZWQgZm9yIHVucGluOiAlZFxuIiwgcmV0KTsKLQkJcmV0 dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogaW50IGhpYm1jX21tYXAoc3RydWN0IGZp bGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewogCXN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwpAQCAtMzI4LDI0ICsxNjcsMjQgQEAg aW50IGhpYm1jX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hKQogaW50IGhpYm1jX2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNp emUsIGJvb2wgaXNrZXJuZWwsCiAJCSAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqKQog ewotCXN0cnVjdCBoaWJtY19ibyAqaGlibWNibzsKKwlzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUg KmhpYm1jID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAq Z2JvOwogCWludCByZXQ7CiAKIAkqb2JqID0gTlVMTDsKIAotCXNpemUgPSBQQUdFX0FMSUdOKHNp emUpOwotCWlmIChzaXplID09IDApIHsKLQkJRFJNX0VSUk9SKCJlcnJvcjogemVybyBzaXplXG4i KTsKKwlzaXplID0gcm91bmR1cChzaXplLCBQQUdFX1NJWkUpOworCWlmIChzaXplID09IDApCiAJ CXJldHVybiAtRUlOVkFMOwotCX0KIAotCXJldCA9IGhpYm1jX2JvX2NyZWF0ZShkZXYsIHNpemUs IDAsIDAsICZoaWJtY2JvKTsKLQlpZiAocmV0KSB7CisJZ2JvID0gZHJtX2dlbV92cmFtX2NyZWF0 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=