From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 11/19] drm/bochs: Convert bochs driver to |struct drm_gem_vram_object| Date: Mon, 6 May 2019 10:26:41 +0200 Message-ID: <20190506082649.942-12-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 24E7D896A3 for ; Mon, 6 May 2019 08:27:00 +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 ZWxwZXJzIHJlcGxhY2UKfHN0cnVjdCBib2Noc19ib3wuIEl0J3MgdGhlIHNhbWUgaW1wbGVtZW50 YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgp2NDoKCSogY2xlYW51cHMgZnJvbSBj aGVja3BhdGNoLnBsCgkqIHNlbGVjdCBjb25maWcgb3B0aW9uIERSTV9WUkFNX0hFTFBFUgoKU2ln bmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2JvY2hzL0tjb25maWcgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9ib2Nocy9ib2Nocy5oICAgICB8ICAzNCArLS0tCiBkcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9j aHNfZHJ2LmMgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19rbXMuYyB8ICAx OCArLQogZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX21tLmMgIHwgMjcwICsrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAy OTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL0tjb25m aWcgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvS2NvbmZpZwppbmRleCBiZDI3MTgwMTVjZGIuLjRj YmNmZjllMmViOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL0tjb25maWcKKysr IGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL0tjb25maWcKQEAgLTMsNiArMyw3IEBAIGNvbmZpZyBE Uk1fQk9DSFMKIAlkZXBlbmRzIG9uIERSTSAmJiBQQ0kgJiYgTU1VCiAJc2VsZWN0IERSTV9LTVNf SEVMUEVSCiAJc2VsZWN0IERSTV9UVE0KKwlzZWxlY3QgRFJNX1ZSQU1fSEVMUEVSCiAJaGVscAog CSAgQ2hvb3NlIHRoaXMgb3B0aW9uIGZvciBxZW11LgogCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUg bW9kdWxlIHdpbGwgYmUgY2FsbGVkIGJvY2hzLWRybS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ib2Nocy9ib2Nocy5oIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzLmgKaW5kZXgg MzQxY2M5ZDFiYWI0Li40Y2NmODJlMWNhNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9i b2Nocy9ib2Nocy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Nocy5oCkBAIC0xMCw2 ICsxMCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgogCiAjaW5j bHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV92cmFtX2hlbHBlci5o PgogCiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAjaW5jbHVkZSA8ZHJtL3R0 bS90dG1fcGFnZV9hbGxvYy5oPgpAQCAtODEsMzAgKzgyLDYgQEAgc3RydWN0IGJvY2hzX2Rldmlj ZSB7CiAJfSB0dG07CiB9OwogCi1zdHJ1Y3QgYm9jaHNfYm8gewotCXN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCBibzsKLQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Ci0Jc3RydWN0IHR0 bV9ib19rbWFwX29iaiBrbWFwOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBnZW07Ci0Jc3RydWN0 IHR0bV9wbGFjZSBwbGFjZW1lbnRzWzNdOwotCWludCBwaW5fY291bnQ7Ci19OwotCi1zdGF0aWMg aW5saW5lIHN0cnVjdCBib2Noc19ibyAqYm9jaHNfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibykKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGJvLCBzdHJ1Y3QgYm9jaHNfYm8sIGJvKTsK LX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgYm9jaHNfYm8gKmdlbV90b19ib2Noc19ibyhzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGdlbSwgc3Ry dWN0IGJvY2hzX2JvLCBnZW0pOwotfQotCi1zdGF0aWMgaW5saW5lIHU2NCBib2Noc19ib19tbWFw X29mZnNldChzdHJ1Y3QgYm9jaHNfYm8gKmJvKQotewotCXJldHVybiBkcm1fdm1hX25vZGVfb2Zm c2V0X2FkZHIoJmJvLT5iby52bWFfbm9kZSk7Ci19Ci0KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAog LyogYm9jaHNfaHcuYyAqLwpAQCAtMTI0LDE3ICsxMDEsOCBAQCBpbnQgYm9jaHNfbW1faW5pdChz dHJ1Y3QgYm9jaHNfZGV2aWNlICpib2Nocyk7CiB2b2lkIGJvY2hzX21tX2Zpbmkoc3RydWN0IGJv Y2hzX2RldmljZSAqYm9jaHMpOwogaW50IGJvY2hzX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAotaW50IGJvY2hzX2dlbV9jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUsIGJvb2wgaXNrZXJuZWwsCi0JCSAgICAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICoqb2JqKTsKLWludCBib2Noc19nZW1faW5pdF9vYmplY3Qoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCBib2Noc19nZW1fZnJlZV9vYmplY3Qoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopOwogaW50IGJvY2hzX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgc3RydWN0IGRybV9t b2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKLWludCBib2Noc19kdW1iX21tYXBfb2Zmc2V0KHN0cnVj dCBkcm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgIHVpbnQzMl90 IGhhbmRsZSwgdWludDY0X3QgKm9mZnNldCk7Ci0KLWludCBib2Noc19ib19waW4oc3RydWN0IGJv Y2hzX2JvICpibywgdTMyIHBsX2ZsYWcpOwotaW50IGJvY2hzX2JvX3VucGluKHN0cnVjdCBib2No c19ibyAqYm8pOwogCiBpbnQgYm9jaHNfZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaik7CiB2b2lkIGJvY2hzX2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKaW5kZXggNmI2ZTAzNzI1OGMzLi4w NGZlZDQxZDZjMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKQEAgLTgyLDkgKzgyLDEw IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBib2Noc19kcml2ZXIgPSB7CiAJLmRhdGUJCQk9 ICIyMDEzMDkyNSIsCiAJLm1ham9yCQkJPSAxLAogCS5taW5vcgkJCT0gMCwKLQkuZ2VtX2ZyZWVf b2JqZWN0X3VubG9ja2VkID0gYm9jaHNfZ2VtX2ZyZWVfb2JqZWN0LAorCS5nZW1fZnJlZV9vYmpl Y3RfdW5sb2NrZWQgPQorCQlkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxv Y2tlZCwKIAkuZHVtYl9jcmVhdGUgICAgICAgICAgICA9IGJvY2hzX2R1bWJfY3JlYXRlLAotCS5k dW1iX21hcF9vZmZzZXQgICAgICAgID0gYm9jaHNfZHVtYl9tbWFwX29mZnNldCwKKwkuZHVtYl9t YXBfb2Zmc2V0ICAgICAgICA9IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVtYl9tbWFwX29mZnNldCwK IAogCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmlt ZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ib2Nocy9ib2Noc19rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19rbXMu YwppbmRleCA1ZTkwNWY1MDQ0OWQuLjllM2VlN2I1MTFmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2JvY2hzL2JvY2hzX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2No c19rbXMuYwpAQCAtMzAsMTYgKzMwLDE2IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBib2Noc19m b3JtYXRzW10gPSB7CiBzdGF0aWMgdm9pZCBib2Noc19wbGFuZV91cGRhdGUoc3RydWN0IGJvY2hz X2RldmljZSAqYm9jaHMsCiAJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUp CiB7Ci0Jc3RydWN0IGJvY2hzX2JvICpibzsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAq Z2JvOwogCiAJaWYgKCFzdGF0ZS0+ZmIgfHwgIWJvY2hzLT5zdHJpZGUpCiAJCXJldHVybjsKIAot CWJvID0gZ2VtX3RvX2JvY2hzX2JvKHN0YXRlLT5mYi0+b2JqWzBdKTsKKwlnYm8gPSBkcm1fZ2Vt X3ZyYW1fb2ZfZ2VtKHN0YXRlLT5mYi0+b2JqWzBdKTsKIAlib2Noc19od19zZXRiYXNlKGJvY2hz LAogCQkJIHN0YXRlLT5jcnRjX3gsCiAJCQkgc3RhdGUtPmNydGNfeSwKLQkJCSBiby0+Ym8ub2Zm c2V0KTsKKwkJCSBnYm8tPmJvLm9mZnNldCk7CiAJYm9jaHNfaHdfc2V0Zm9ybWF0KGJvY2hzLCBz dGF0ZS0+ZmItPmZvcm1hdCk7CiB9CiAKQEAgLTcyLDIzICs3MiwyMyBAQCBzdGF0aWMgdm9pZCBi b2Noc19waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiBz dGF0aWMgaW50IGJvY2hzX3BpcGVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGUgKnBpcGUsCiAJCQkJIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKIHsK LQlzdHJ1Y3QgYm9jaHNfYm8gKmJvOworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87 CiAKIAlpZiAoIW5ld19zdGF0ZS0+ZmIpCiAJCXJldHVybiAwOwotCWJvID0gZ2VtX3RvX2JvY2hz X2JvKG5ld19zdGF0ZS0+ZmItPm9ialswXSk7Ci0JcmV0dXJuIGJvY2hzX2JvX3BpbihibywgVFRN X1BMX0ZMQUdfVlJBTSk7CisJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShuZXdfc3RhdGUtPmZi LT5vYmpbMF0pOworCXJldHVybiBkcm1fZ2VtX3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BM X0ZMQUdfVlJBTSk7CiB9CiAKIHN0YXRpYyB2b2lkIGJvY2hzX3BpcGVfY2xlYW51cF9mYihzdHJ1 Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCiAJCQkJICBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0Jc3RydWN0IGJvY2hzX2JvICpibzsKKwlzdHJ1Y3QgZHJt X2dlbV92cmFtX29iamVjdCAqZ2JvOwogCiAJaWYgKCFvbGRfc3RhdGUtPmZiKQogCQlyZXR1cm47 Ci0JYm8gPSBnZW1fdG9fYm9jaHNfYm8ob2xkX3N0YXRlLT5mYi0+b2JqWzBdKTsKLQlib2Noc19i b191bnBpbihibyk7CisJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShvbGRfc3RhdGUtPmZiLT5v YmpbMF0pOworCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIGJvY2hzX3BpcGVfZnVuY3MgPSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfbW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9ib2Nocy9ib2Noc19tbS5jCmluZGV4IDRhNDAzMDgxNjljNC4uODYwNjI4MDRlNTRmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfbW0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYm9jaHMvYm9jaHNfbW0uYwpAQCAtNyw4ICs3LDYgQEAKIAogI2luY2x1ZGUgImJv Y2hzLmgiCiAKLXN0YXRpYyB2b2lkIGJvY2hzX3R0bV9wbGFjZW1lbnQoc3RydWN0IGJvY2hzX2Jv ICpibywgaW50IGRvbWFpbik7Ci0KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogc3RhdGljIGlubGlu ZSBzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2Noc19iZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZCkKQEAgLTE2LDIyICsxNCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGJvY2hzX2RldmljZSAq Ym9jaHNfYmRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmQpCiAJcmV0dXJuIGNvbnRhaW5lcl9v ZihiZCwgc3RydWN0IGJvY2hzX2RldmljZSwgdHRtLmJkZXYpOwogfQogCi1zdGF0aWMgdm9pZCBi b2Noc19ib190dG1fZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKLXsKLQlz dHJ1Y3QgYm9jaHNfYm8gKmJvOwotCi0JYm8gPSBjb250YWluZXJfb2YodGJvLCBzdHJ1Y3QgYm9j aHNfYm8sIGJvKTsKLQlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKCZiby0+Z2VtKTsKLQlrZnJlZShi byk7Ci19Ci0KLXN0YXRpYyBib29sIGJvY2hzX3R0bV9ib19pc19ib2Noc19ibyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvKQotewotCWlmIChiby0+ZGVzdHJveSA9PSAmYm9jaHNfYm9fdHRt X2Rlc3Ryb3kpCi0JCXJldHVybiB0cnVlOwotCXJldHVybiBmYWxzZTsKLX0KLQogc3RhdGljIGlu dCBib2Noc19ib19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50 MzJfdCB0eXBlLAogCQkJCSAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCiB7CkBA IC01NiwyNyArMzgsNiBAQCBzdGF0aWMgaW50IGJvY2hzX2JvX2luaXRfbWVtX3R5cGUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVpbnQzMl90IHR5cGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyB2b2lkCi1ib2Noc19ib19ldmljdF9mbGFncyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGwpCi17Ci0Jc3RydWN0IGJvY2hzX2JvICpib2No c2JvID0gYm9jaHNfYm8oYm8pOwotCi0JaWYgKCFib2Noc190dG1fYm9faXNfYm9jaHNfYm8oYm8p KQotCQlyZXR1cm47Ci0KLQlib2Noc190dG1fcGxhY2VtZW50KGJvY2hzYm8sIFRUTV9QTF9GTEFH X1NZU1RFTSk7Ci0JKnBsID0gYm9jaHNiby0+cGxhY2VtZW50OwotfQotCi1zdGF0aWMgaW50IGJv Y2hzX2JvX3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJCQkg IHN0cnVjdCBmaWxlICpmaWxwKQotewotCXN0cnVjdCBib2Noc19ibyAqYm9jaHNibyA9IGJvY2hz X2JvKGJvKTsKLQotCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmYm9jaHNiby0+ Z2VtLnZtYV9ub2RlLAotCQkJCQkgIGZpbHAtPnByaXZhdGVfZGF0YSk7Ci19Ci0KIHN0YXRpYyBp bnQgYm9jaHNfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAog CQkJCSAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKIHsKQEAgLTE0MSw5ICsxMDIsOSBAQCBz dGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgYm9jaHNfYm9fZHJpdmVyID0gewogCS50dG1fdHRf Y3JlYXRlID0gYm9jaHNfdHRtX3R0X2NyZWF0ZSwKIAkuaW5pdF9tZW1fdHlwZSA9IGJvY2hzX2Jv X2luaXRfbWVtX3R5cGUsCiAJLmV2aWN0aW9uX3ZhbHVhYmxlID0gdHRtX2JvX2V2aWN0aW9uX3Zh bHVhYmxlLAotCS5ldmljdF9mbGFncyA9IGJvY2hzX2JvX2V2aWN0X2ZsYWdzLAorCS5ldmljdF9m bGFncyA9IGRybV9nZW1fdnJhbV9ib19kcml2ZXJfZXZpY3RfZmxhZ3MsCiAJLm1vdmUgPSBOVUxM LAotCS52ZXJpZnlfYWNjZXNzID0gYm9jaHNfYm9fdmVyaWZ5X2FjY2VzcywKKwkudmVyaWZ5X2Fj Y2VzcyA9IGRybV9nZW1fdnJhbV9ib19kcml2ZXJfdmVyaWZ5X2FjY2VzcywKIAkuaW9fbWVtX3Jl c2VydmUgPSAmYm9jaHNfdHRtX2lvX21lbV9yZXNlcnZlLAogCS5pb19tZW1fZnJlZSA9ICZib2No c190dG1faW9fbWVtX2ZyZWUsCiB9OwpAQCAtMTgyLDg1ICsxNDMsNiBAQCB2b2lkIGJvY2hzX21t X2Zpbmkoc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMpCiAJYm9jaHMtPnR0bS5pbml0aWFsaXpl ZCA9IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBib2Noc190dG1fcGxhY2VtZW50KHN0cnVjdCBi b2Noc19ibyAqYm8sIGludCBkb21haW4pCi17Ci0JdW5zaWduZWQgaTsKLQl1MzIgYyA9IDA7Ci0J Ym8tPnBsYWNlbWVudC5wbGFjZW1lbnQgPSBiby0+cGxhY2VtZW50czsKLQliby0+cGxhY2VtZW50 LmJ1c3lfcGxhY2VtZW50ID0gYm8tPnBsYWNlbWVudHM7Ci0JaWYgKGRvbWFpbiAmIFRUTV9QTF9G TEFHX1ZSQU0pIHsKLQkJYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9QTF9GTEFHX1dD Ci0JCQl8IFRUTV9QTF9GTEFHX1VOQ0FDSEVECi0JCQl8IFRUTV9QTF9GTEFHX1ZSQU07Ci0JfQot CWlmIChkb21haW4gJiBUVE1fUExfRkxBR19TWVNURU0pIHsKLQkJYm8tPnBsYWNlbWVudHNbYysr XS5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcKLQkJCXwgVFRNX1BMX0ZMQUdfU1lTVEVNOwot CX0KLQlpZiAoIWMpIHsKLQkJYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9QTF9NQVNL X0NBQ0hJTkcKLQkJCXwgVFRNX1BMX0ZMQUdfU1lTVEVNOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwg YzsgKytpKSB7Ci0JCWJvLT5wbGFjZW1lbnRzW2ldLmZwZm4gPSAwOwotCQliby0+cGxhY2VtZW50 c1tpXS5scGZuID0gMDsKLQl9Ci0JYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50ID0gYzsKLQli by0+cGxhY2VtZW50Lm51bV9idXN5X3BsYWNlbWVudCA9IGM7Ci19Ci0KLWludCBib2Noc19ib19w aW4oc3RydWN0IGJvY2hzX2JvICpibywgdTMyIHBsX2ZsYWcpCi17Ci0Jc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07Ci0JaW50IGksIHJldDsKLQotCWlmIChi by0+cGluX2NvdW50KSB7Ci0JCWJvLT5waW5fY291bnQrKzsKLQkJcmV0dXJuIDA7Ci0JfQotCi0J Ym9jaHNfdHRtX3BsYWNlbWVudChibywgcGxfZmxhZyk7Ci0JZm9yIChpID0gMDsgaSA8IGJvLT5w bGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKQotCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyB8 PSBUVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9fcmVzZXJ2ZSgmYm8tPmJvLCB0 cnVlLCBmYWxzZSwgTlVMTCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQlyZXQgPSB0dG1f Ym9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwotCXR0bV9ib191bnJl c2VydmUoJmJvLT5ibyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWJvLT5waW5fY291 bnQgPSAxOwotCXJldHVybiAwOwotfQotCi1pbnQgYm9jaHNfYm9fdW5waW4oc3RydWN0IGJvY2hz X2JvICpibykKLXsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFs c2UgfTsKLQlpbnQgaSwgcmV0OwotCi0JaWYgKCFiby0+cGluX2NvdW50KSB7Ci0JCURSTV9FUlJP UigidW5waW4gYmFkICVwXG4iLCBibyk7Ci0JCXJldHVybiAwOwotCX0KLQliby0+cGluX2NvdW50 LS07Ci0KLQlpZiAoYm8tPnBpbl9jb3VudCkKLQkJcmV0dXJuIDA7Ci0KLQlmb3IgKGkgPSAwOyBp IDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspCi0JCWJvLT5wbGFjZW1lbnRzW2ld LmZsYWdzICY9IH5UVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9fcmVzZXJ2ZSgm Ym8tPmJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQly ZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwotCXR0 bV9ib191bnJlc2VydmUoJmJvLT5ibyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJl dHVybiAwOwotfQotCiBpbnQgYm9jaHNfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEpCiB7CiAJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxw LT5wcml2YXRlX2RhdGE7CkBAIC0yNzEsMTcxICsxNTMsNjEgQEAgaW50IGJvY2hzX21tYXAoc3Ry dWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCiAKLXN0YXRpYyBpbnQgYm9jaHNfYm9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBzaXplLCBpbnQgYWxpZ24sCi0JCQkgICB1aW50MzJfdCBmbGFncywgc3RydWN0 IGJvY2hzX2JvICoqcGJvY2hzYm8pCi17Ci0Jc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMgPSBk ZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBib2Noc19ibyAqYm9jaHNibzsKLQlzaXplX3QgYWNj X3NpemU7Ci0JaW50IHJldDsKLQotCWJvY2hzYm8gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYm9j aHNfYm8pLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJvY2hzYm8pCi0JCXJldHVybiAtRU5PTUVNOwot Ci0JcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdChkZXYsICZib2Noc2JvLT5nZW0sIHNpemUpOwot CWlmIChyZXQpIHsKLQkJa2ZyZWUoYm9jaHNibyk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JYm9j aHNiby0+Ym8uYmRldiA9ICZib2Nocy0+dHRtLmJkZXY7Ci0JYm9jaHNiby0+Ym8uYmRldi0+ZGV2 X21hcHBpbmcgPSBkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZzsKLQotCWJvY2hzX3R0bV9wbGFj ZW1lbnQoYm9jaHNibywgVFRNX1BMX0ZMQUdfVlJBTSB8IFRUTV9QTF9GTEFHX1NZU1RFTSk7Ci0K LQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmJvY2hzLT50dG0uYmRldiwgc2l6ZSwK LQkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBib2Noc19ibykpOwotCi0JcmV0ID0gdHRtX2JvX2lu aXQoJmJvY2hzLT50dG0uYmRldiwgJmJvY2hzYm8tPmJvLCBzaXplLAotCQkJICB0dG1fYm9fdHlw ZV9kZXZpY2UsICZib2Noc2JvLT5wbGFjZW1lbnQsCi0JCQkgIGFsaWduID4+IFBBR0VfU0hJRlQs IGZhbHNlLCBhY2Nfc2l6ZSwKLQkJCSAgTlVMTCwgTlVMTCwgYm9jaHNfYm9fdHRtX2Rlc3Ryb3kp OwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkqcGJvY2hzYm8gPSBib2Noc2JvOwotCXJl dHVybiAwOwotfQotCi1pbnQgYm9jaHNfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1MzIgc2l6ZSwgYm9vbCBpc2tlcm5lbCwKLQkJICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg KipvYmopCi17Ci0Jc3RydWN0IGJvY2hzX2JvICpib2Noc2JvOwotCWludCByZXQ7Ci0KLQkqb2Jq ID0gTlVMTDsKLQotCXNpemUgPSBQQUdFX0FMSUdOKHNpemUpOwotCWlmIChzaXplID09IDApCi0J CXJldHVybiAtRUlOVkFMOwotCi0JcmV0ID0gYm9jaHNfYm9fY3JlYXRlKGRldiwgc2l6ZSwgMCwg MCwgJmJvY2hzYm8pOwotCWlmIChyZXQpIHsKLQkJaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCi0J CQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBHRU0gb2JqZWN0XG4iKTsKLQkJcmV0dXJu IHJldDsKLQl9Ci0JKm9iaiA9ICZib2Noc2JvLT5nZW07Ci0JcmV0dXJuIDA7Ci19Ci0KIGludCBi b2Noc19kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCSAgICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykKIHsKLQlz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmo7Ci0JdTMyIGhhbmRsZTsKLQlpbnQgcmV0OwotCi0J YXJncy0+cGl0Y2ggPSBhcmdzLT53aWR0aCAqICgoYXJncy0+YnBwICsgNykgLyA4KTsKLQlhcmdz LT5zaXplID0gYXJncy0+cGl0Y2ggKiBhcmdzLT5oZWlnaHQ7Ci0KLQlyZXQgPSBib2Noc19nZW1f Y3JlYXRlKGRldiwgYXJncy0+c2l6ZSwgZmFsc2UsCi0JCQkgICAgICAgJmdvYmopOwotCWlmIChy ZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwg Z29iaiwgJmhhbmRsZSk7Ci0JZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGdvYmopOwotCWlm IChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlhcmdzLT5oYW5kbGUgPSBoYW5kbGU7Ci0JcmV0dXJu IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGJvY2hzX2JvX3VucmVmKHN0cnVjdCBib2Noc19ibyAqKmJv KQotewotCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvOwotCi0JaWYgKCgqYm8pID09IE5V TEwpCi0JCXJldHVybjsKLQotCXRibyA9ICYoKCpibyktPmJvKTsKLQl0dG1fYm9fcHV0KHRibyk7 Ci0JKmJvID0gTlVMTDsKLX0KLQotdm9pZCBib2Noc19nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmopCi17Ci0Jc3RydWN0IGJvY2hzX2JvICpib2Noc19ibyA9IGdlbV90 b19ib2Noc19ibyhvYmopOwotCi0JYm9jaHNfYm9fdW5yZWYoJmJvY2hzX2JvKTsKLX0KLQotaW50 IGJvY2hzX2R1bWJfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLCBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAotCQkJICAgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCAqb2Zmc2V0KQot ewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBib2Noc19ibyAqYm87Ci0K LQlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmlsZSwgaGFuZGxlKTsKLQlpZiAob2JqID09 IE5VTEwpCi0JCXJldHVybiAtRU5PRU5UOwotCi0JYm8gPSBnZW1fdG9fYm9jaHNfYm8ob2JqKTsK LQkqb2Zmc2V0ID0gYm9jaHNfYm9fbW1hcF9vZmZzZXQoYm8pOworCXN0cnVjdCBib2Noc19kZXZp Y2UgKmJvY2hzID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZChvYmopOwotCXJldHVybiAwOworCXJldHVybiBkcm1fZ2VtX3ZyYW1fZmlsbF9jcmVhdGVf ZHVtYihmaWxlLCBkZXYsICZib2Nocy0+dHRtLmJkZXYsIDAsCisJCQkJCSAgICAgZmFsc2UsIGFy Z3MpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIGludCBib2Noc19nZW1fcHJpbWVfcGlu KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewotCXN0cnVjdCBib2Noc19ibyAqYm8gPSBn ZW1fdG9fYm9jaHNfYm8ob2JqKTsKKwlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0g ZHJtX2dlbV92cmFtX29mX2dlbShvYmopOwogCi0JcmV0dXJuIGJvY2hzX2JvX3BpbihibywgVFRN X1BMX0ZMQUdfVlJBTSk7CisJcmV0dXJuIGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1fR0VNX1ZS QU1fUExfRkxBR19WUkFNKTsKIH0KIAogdm9pZCBib2Noc19nZW1fcHJpbWVfdW5waW4oc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGJvY2hzX2JvICpibyA9IGdlbV90b19i b2Noc19ibyhvYmopOworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2Vt X3ZyYW1fb2ZfZ2VtKG9iaik7CiAKLQlib2Noc19ib191bnBpbihibyk7CisJZHJtX2dlbV92cmFt X3VucGluKGdibyk7CiB9CiAKIHZvaWQgKmJvY2hzX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKQogewotCXN0cnVjdCBib2Noc19ibyAqYm8gPSBnZW1fdG9fYm9jaHNf Ym8ob2JqKTsKLQlib29sIGlzX2lvbWVtOworCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpn Ym8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7CiAJaW50IHJldDsKKwl2b2lkICpiYXNlOwog Ci0JcmV0ID0gYm9jaHNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFNKTsKKwlyZXQgPSBkcm1f Z2VtX3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIE5VTEw7Ci0JcmV0ID0gdHRtX2JvX2ttYXAoJmJvLT5ibywgMCwgYm8tPmJvLm51 bV9wYWdlcywgJmJvLT5rbWFwKTsKLQlpZiAocmV0KSB7Ci0JCWJvY2hzX2JvX3VucGluKGJvKTsK KwliYXNlID0gZHJtX2dlbV92cmFtX2ttYXAoZ2JvLCB0cnVlLCBOVUxMKTsKKwlpZiAoSVNfRVJS KGJhc2UpKSB7CisJCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwogCQlyZXR1cm4gTlVMTDsKIAl9 Ci0JcmV0dXJuIHR0bV9rbWFwX29ial92aXJ0dWFsKCZiby0+a21hcCwgJmlzX2lvbWVtKTsKKwly ZXR1cm4gYmFzZTsKIH0KIAogdm9pZCBib2Noc19nZW1fcHJpbWVfdnVubWFwKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcikKIHsKLQlzdHJ1Y3QgYm9jaHNfYm8gKmJvID0g Z2VtX3RvX2JvY2hzX2JvKG9iaik7CisJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9 IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKIAotCXR0bV9ib19rdW5tYXAoJmJvLT5rbWFwKTsK LQlib2Noc19ib191bnBpbihibyk7CisJZHJtX2dlbV92cmFtX2t1bm1hcChnYm8pOworCWRybV9n ZW1fdnJhbV91bnBpbihnYm8pOwogfQogCiBpbnQgYm9jaHNfZ2VtX3ByaW1lX21tYXAoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7 Ci0Jc3RydWN0IGJvY2hzX2JvICpibyA9IGdlbV90b19ib2Noc19ibyhvYmopOworCXN0cnVjdCBk cm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7CiAKLQli by0+Z2VtLnZtYV9ub2RlLnZtX25vZGUuc3RhcnQgPSBiby0+Ym8udm1hX25vZGUudm1fbm9kZS5z dGFydDsKKwlnYm8tPmdlbS52bWFfbm9kZS52bV9ub2RlLnN0YXJ0ID0gZ2JvLT5iby52bWFfbm9k ZS52bV9ub2RlLnN0YXJ0OwogCXJldHVybiBkcm1fZ2VtX3ByaW1lX21tYXAob2JqLCB2bWEpOwog fQotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=