From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH 3/5] drm/gem: Add drm_gem_object_funcs Date: Sat, 10 Nov 2018 15:56:45 +0100 Message-ID: <20181110145647.17580-4-noralf@tronnes.org> References: <20181110145647.17580-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181110145647.17580-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: david@lechnology.com, intel-gfx@lists.freedesktop.org, sam@ravnborg.org, christian.koenig@amd.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBhZGRzIGFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRhYmxlIG9uIEdFTSBvYmplY3RzLgpUaGUg bWFpbiBiZW5lZml0IGlzIGZvciBkcml2ZXJzIHRoYXQgc3VwcG9ydCBtb3JlIHRoYW4gb25lIHR5 cGUgb2YKbWVtb3J5IChzaG1lbSx2cmFtLGNtYSkgZm9yIHRoZWlyIGJ1ZmZlcnMgZGVwZW5kaW5n IG9uIHRoZSBoYXJkd2FyZSBpdApydW5zIG9uLiBXaXRoIHRoZSBjYWxsYmFja3MgYXR0YWNoZWQg dG8gdGhlIEdFTSBvYmplY3QgaXRzZWxmLCBpdCBpcwplYXNpZXIgdG8gaGF2ZSBjb3JlIGhlbHBl cnMgZm9yIHRoZSB0aGUgdmFyaW91cyBidWZmZXIgdHlwZXMuIFRoZSBkcml2ZXIKb25seSBoYXMg dG8gbWFrZSB0aGUgZGVjaXNpb24gYWJvdXQgYnVmZmVyIHR5cGUgb24gR0VNIG9iamVjdCBjcmVh dGlvbgphbmQgYWxsIG90aGVyIGNhbGxiYWNrcyBjYW4gYmUgaGFuZGxlZCBieSB0aGUgY2hvc2Vu IGhlbHBlci4KCmRybV9kcml2ZXItPmdlbV9wcmltZV9yZXNfb2JqIGhhcyBub3QgYmVlbiBhZGRl ZCBzaW5jZSB0aGVyZSdzIGEgdG9kbyB0bwpwdXQgYSByZXNlcnZhdGlvbl9vYmplY3QgaW50byBk cm1fZ2VtX29iamVjdC4KCnYzOiBBZGQgdG9kbyBlbnRyeQoKdjI6IERyb3AgZHJtX2dlbV9vYmpl Y3RfZnVuY3MtPnByaW1lX21tYXAgaW4gZmF2b3VyIG9mCmRybV9nZW1fcHJpbWVfbW1hcCgpIChE YW5pZWwgVmV0dGVyKQoKdjE6Ci0gZHJtX2dlbV9vYmplY3RfZnVuY3MubWFwIC0+IC5wcmltZV9t YXAgbGV0IGl0IG9ubHkgZG8gUFJJTUUgbW1hcCBsaWtlCiAgdGhlIGZ1bmN0aW9uIGl0IHN1cGVy c2VlZHMgKERhbmllbCBWZXR0ZXIpCi0gRmxpcCBhcm91bmQgdGhlIGlmIGxhZGRlcnMgYW5kIG1h a2Ugb2JqLT5mdW5jcyB0aGUgZmlyc3QgY2hvaWNlCiAgaGlnaGxpZ2h0aW5nIHRoZSBmYWN0IHRo YXQgdGhpcyB0aGUgbmV3IGRlZmF1bHQgd2F5IG9mIGRvaW5nIGl0CiAgKERhbmllbCBWZXR0ZXIp CgpTaWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KQWNr ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0tLQogRG9jdW1l bnRhdGlvbi9ncHUvdG9kby5yc3QgICB8ICAgNiArKwogZHJpdmVycy9ncHUvZHJtL2RybV9jbGll bnQuYyB8ICAxMiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAgIHwgMTA5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmMgIHwgIDM0ICsrKysrKy0tLS0tCiBpbmNsdWRlL2RybS9kcm1fZ2VtLmggICAgICAgIHwgMTMx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hh bmdlZCwgMjU4IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0Rv Y3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvdG9kby5yc3QKaW5k ZXggYWJjMzE5NTZlZjE1Li4zMWVmNGFkYzkxYzkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v Z3B1L3RvZG8ucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3RvZG8ucnN0CkBAIC0yNDEsNiAr MjQxLDEyIEBAIE1vc3QgZHJpdmVycyBkb24ndCBuZWVkIHRvIHNldCBkcm1fZHJpdmVyLT5nZW1f cHJpbWVfaW1wb3J0IGFuZAogLT5nZW1fcHJpbWVfZXhwb3J0IG5vdyB0aGF0IGRybV9nZW1fcHJp bWVfaW1wb3J0KCkgYW5kIGRybV9nZW1fcHJpbWVfZXhwb3J0KCkKIGFyZSB0aGUgZGVmYXVsdC4K IAorc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKworR0VNIG9iamVjdHMgY2FuIG5vdyBoYXZlIGEgZnVuY3Rpb24gdGFibGUgaW5zdGVhZCBv ZiBoYXZpbmcgdGhlIGNhbGxiYWNrcyBvbiB0aGUKK0RSTSBkcml2ZXIgc3RydWN0LiBUaGlzIGlz IG5vdyB0aGUgcHJlZmVycmVkIHdheSBhbmQgZHJpdmVycyBjYW4gYmUgbW92ZWQgb3Zlci4KKwog Q29yZSByZWZhY3RvcmluZ3MKID09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY2xpZW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jCmlu ZGV4IDE3ZDlhNjRlODg1ZS4uZWNhNzMzMTc2MmU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2NsaWVudC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMKQEAgLTgw LDggKzgwLDcgQEAgaW50IGRybV9jbGllbnRfbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LAogewogCWludCByZXQ7CiAKLQlpZiAoIWRybV9j b3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkgfHwKLQkgICAgIWRldi0+ZHJp dmVyLT5kdW1iX2NyZWF0ZSB8fCAhZGV2LT5kcml2ZXItPmdlbV9wcmltZV92bWFwKQorCWlmICgh ZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSB8fCAhZGV2LT5kcml2 ZXItPmR1bWJfY3JlYXRlKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlpZiAoZnVuY3MgJiYg IXRyeV9tb2R1bGVfZ2V0KGZ1bmNzLT5vd25lcikpCkBAIC0yMTIsOCArMjExLDcgQEAgc3RhdGlj IHZvaWQgZHJtX2NsaWVudF9idWZmZXJfZGVsZXRlKHN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAq YnVmZmVyKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBidWZmZXItPmNsaWVudC0+ZGV2 OwogCi0JaWYgKGJ1ZmZlci0+dmFkZHIgJiYgZGV2LT5kcml2ZXItPmdlbV9wcmltZV92dW5tYXAp Ci0JCWRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdnVubWFwKGJ1ZmZlci0+Z2VtLCBidWZmZXItPnZh ZGRyKTsKKwlkcm1fZ2VtX3Z1bm1hcChidWZmZXItPmdlbSwgYnVmZmVyLT52YWRkcik7CiAKIAlp ZiAoYnVmZmVyLT5nZW0pCiAJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChidWZmZXItPmdl bSk7CkBAIC0yNjYsOSArMjY0LDkgQEAgZHJtX2NsaWVudF9idWZmZXJfY3JlYXRlKHN0cnVjdCBk cm1fY2xpZW50X2RldiAqY2xpZW50LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQsIHUKIAkgKiBmZF9p bnN0YWxsIHN0ZXAgb3V0IG9mIHRoZSBkcml2ZXIgYmFja2VuZCBob29rcywgdG8gbWFrZSB0aGF0 CiAJICogZmluYWwgc3RlcCBvcHRpb25hbCBmb3IgaW50ZXJuYWwgdXNlcnMuCiAJICovCi0JdmFk ZHIgPSBkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3ZtYXAob2JqKTsKLQlpZiAoIXZhZGRyKSB7Ci0J CXJldCA9IC1FTk9NRU07CisJdmFkZHIgPSBkcm1fZ2VtX3ZtYXAob2JqKTsKKwlpZiAoSVNfRVJS KHZhZGRyKSkgeworCQlyZXQgPSBQVFJfRVJSKHZhZGRyKTsKIAkJZ290byBlcnJfZGVsZXRlOwog CX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtLmMKaW5kZXggNTEyMDc4ZWJkOTdiLi44YjU1ZWNlOTc5NjcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9n ZW0uYwpAQCAtMjU3LDcgKzI1Nyw5IEBAIGRybV9nZW1fb2JqZWN0X3JlbGVhc2VfaGFuZGxlKGlu dCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq ID0gcHRyOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmRldjsKIAotCWlmIChkZXYt PmRyaXZlci0+Z2VtX2Nsb3NlX29iamVjdCkKKwlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNz LT5jbG9zZSkKKwkJb2JqLT5mdW5jcy0+Y2xvc2Uob2JqLCBmaWxlX3ByaXYpOworCWVsc2UgaWYg KGRldi0+ZHJpdmVyLT5nZW1fY2xvc2Vfb2JqZWN0KQogCQlkZXYtPmRyaXZlci0+Z2VtX2Nsb3Nl X29iamVjdChvYmosIGZpbGVfcHJpdik7CiAKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShk ZXYsIERSSVZFUl9QUklNRSkpCkBAIC00MTAsNyArNDEyLDExIEBAIGRybV9nZW1faGFuZGxlX2Ny ZWF0ZV90YWlsKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCWlmIChyZXQpCiAJCWdvdG8g ZXJyX3JlbW92ZTsKIAotCWlmIChkZXYtPmRyaXZlci0+Z2VtX29wZW5fb2JqZWN0KSB7CisJaWYg KG9iai0+ZnVuY3MgJiYgb2JqLT5mdW5jcy0+b3BlbikgeworCQlyZXQgPSBvYmotPmZ1bmNzLT5v cGVuKG9iaiwgZmlsZV9wcml2KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX3Jldm9rZTsKKwl9 IGVsc2UgaWYgKGRldi0+ZHJpdmVyLT5nZW1fb3Blbl9vYmplY3QpIHsKIAkJcmV0ID0gZGV2LT5k cml2ZXItPmdlbV9vcGVuX29iamVjdChvYmosIGZpbGVfcHJpdik7CiAJCWlmIChyZXQpCiAJCQln b3RvIGVycl9yZXZva2U7CkBAIC04MzUsNyArODQxLDkgQEAgZHJtX2dlbV9vYmplY3RfZnJlZShz dHJ1Y3Qga3JlZiAqa3JlZikKIAkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcm1fZ2VtX29i amVjdCwgcmVmY291bnQpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmRldjsKIAot CWlmIChkZXYtPmRyaXZlci0+Z2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKSB7CisJaWYgKG9iai0+ ZnVuY3MpIHsKKwkJb2JqLT5mdW5jcy0+ZnJlZShvYmopOworCX0gZWxzZSBpZiAoZGV2LT5kcml2 ZXItPmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCkgewogCQlkZXYtPmRyaXZlci0+Z2VtX2ZyZWVf b2JqZWN0X3VubG9ja2VkKG9iaik7CiAJfSBlbHNlIGlmIChkZXYtPmRyaXZlci0+Z2VtX2ZyZWVf b2JqZWN0KSB7CiAJCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKQEAgLTg2NCwxMyArODcyLDEzIEBAIGRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAogCWRldiA9IG9iai0+ZGV2OwogCi0JaWYgKGRldi0+ ZHJpdmVyLT5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpIHsKLQkJa3JlZl9wdXQoJm9iai0+cmVm Y291bnQsIGRybV9nZW1fb2JqZWN0X2ZyZWUpOwotCX0gZWxzZSB7CisJaWYgKGRldi0+ZHJpdmVy LT5nZW1fZnJlZV9vYmplY3QpIHsKIAkJbWlnaHRfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CQlpZiAoa3JlZl9wdXRfbXV0ZXgoJm9iai0+cmVmY291bnQsIGRybV9nZW1fb2JqZWN0X2ZyZWUs CiAJCQkJJmRldi0+c3RydWN0X211dGV4KSkKIAkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOworCX0gZWxzZSB7CisJCWtyZWZfcHV0KCZvYmotPnJlZmNvdW50LCBkcm1fZ2VtX29i amVjdF9mcmVlKTsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZCk7CkBAIC05NjAsMTEgKzk2OCwxNCBAQCBpbnQgZHJtX2dlbV9tbWFwX29iaihzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgbG9uZyBvYmpfc2l6ZSwKIAlpZiAob2JqX3Np emUgPCB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0J aWYgKCFkZXYtPmRyaXZlci0+Z2VtX3ZtX29wcykKKwlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1 bmNzLT52bV9vcHMpCisJCXZtYS0+dm1fb3BzID0gb2JqLT5mdW5jcy0+dm1fb3BzOworCWVsc2Ug aWYgKGRldi0+ZHJpdmVyLT5nZW1fdm1fb3BzKQorCQl2bWEtPnZtX29wcyA9IGRldi0+ZHJpdmVy LT5nZW1fdm1fb3BzOworCWVsc2UKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl2bWEtPnZtX2ZsYWdz IHw9IFZNX0lPIHwgVk1fUEZOTUFQIHwgVk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1QOwotCXZt YS0+dm1fb3BzID0gZGV2LT5kcml2ZXItPmdlbV92bV9vcHM7CiAJdm1hLT52bV9wcml2YXRlX2Rh dGEgPSBvYmo7CiAJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfd3JpdGVjb21iaW5lKHZtX2dl dF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncykpOwogCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90 X2RlY3J5cHRlZCh2bWEtPnZtX3BhZ2VfcHJvdCk7CkBAIC0xMDY2LDYgKzEwNzcsODYgQEAgdm9p ZCBkcm1fZ2VtX3ByaW50X2luZm8oc3RydWN0IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQg aW5kZW50LAogCWRybV9wcmludGZfaW5kZW50KHAsIGluZGVudCwgImltcG9ydGVkPSVzXG4iLAog CQkJICBvYmotPmltcG9ydF9hdHRhY2ggPyAieWVzIiA6ICJubyIpOwogCi0JaWYgKG9iai0+ZGV2 LT5kcml2ZXItPmdlbV9wcmludF9pbmZvKQorCWlmIChvYmotPmZ1bmNzICYmIG9iai0+ZnVuY3Mt PnByaW50X2luZm8pCisJCW9iai0+ZnVuY3MtPnByaW50X2luZm8ocCwgaW5kZW50LCBvYmopOwor CWVsc2UgaWYgKG9iai0+ZGV2LT5kcml2ZXItPmdlbV9wcmludF9pbmZvKQogCQlvYmotPmRldi0+ ZHJpdmVyLT5nZW1fcHJpbnRfaW5mbyhwLCBpbmRlbnQsIG9iaik7CiB9CisKKy8qKgorICogZHJt X2dlbV9waW4gLSBQaW4gYmFja2luZyBidWZmZXIgaW4gbWVtb3J5CisgKiBAb2JqOiBHRU0gb2Jq ZWN0CisgKgorICogTWFrZSBzdXJlIHRoZSBiYWNraW5nIGJ1ZmZlciBpcyBwaW5uZWQgaW4gbWVt b3J5LgorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fZ2VtX3BpbihzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaikKK3sKKwlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5waW4pCisJCXJl dHVybiBvYmotPmZ1bmNzLT5waW4ob2JqKTsKKwllbHNlIGlmIChvYmotPmRldi0+ZHJpdmVyLT5n ZW1fcHJpbWVfcGluKQorCQlyZXR1cm4gb2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3Bpbihv YmopOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fcGluKTsK KworLyoqCisgKiBkcm1fZ2VtX3VucGluIC0gVW5waW4gYmFja2luZyBidWZmZXIgZnJvbSBtZW1v cnkKKyAqIEBvYmo6IEdFTSBvYmplY3QKKyAqCisgKiBSZWxheCB0aGUgcmVxdWlyZW1lbnQgdGhh dCB0aGUgYmFja2luZyBidWZmZXIgaXMgcGlubmVkIGluIG1lbW9yeS4KKyAqLwordm9pZCBkcm1f Z2VtX3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQoreworCWlmIChvYmotPmZ1bmNz ICYmIG9iai0+ZnVuY3MtPnVucGluKQorCQlvYmotPmZ1bmNzLT51bnBpbihvYmopOworCWVsc2Ug aWYgKG9iai0+ZGV2LT5kcml2ZXItPmdlbV9wcmltZV91bnBpbikKKwkJb2JqLT5kZXYtPmRyaXZl ci0+Z2VtX3ByaW1lX3VucGluKG9iaik7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fdW5waW4p OworCisvKioKKyAqIGRybV9nZW1fdm1hcCAtIE1hcCBidWZmZXIgaW50byBrZXJuZWwgdmlydHVh bCBhZGRyZXNzIHNwYWNlCisgKiBAb2JqOiBHRU0gb2JqZWN0CisgKgorICogUmV0dXJuczoKKyAq IEEgdmlydHVhbCBwb2ludGVyIHRvIGEgbmV3bHkgY3JlYXRlZCBHRU0gb2JqZWN0IG9yIGFuIEVS Ul9QVFItZW5jb2RlZCBuZWdhdGl2ZQorICogZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCit2 b2lkICpkcm1fZ2VtX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJdm9pZCAq dmFkZHI7CisKKwlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT52bWFwKQorCQl2YWRkciA9 IG9iai0+ZnVuY3MtPnZtYXAob2JqKTsKKwllbHNlIGlmIChvYmotPmRldi0+ZHJpdmVyLT5nZW1f cHJpbWVfdm1hcCkKKwkJdmFkZHIgPSBvYmotPmRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdm1hcChv YmopOworCWVsc2UKKwkJdmFkZHIgPSBFUlJfUFRSKC1FT1BOT1RTVVBQKTsKKworCWlmICghdmFk ZHIpCisJCXZhZGRyID0gRVJSX1BUUigtRU5PTUVNKTsKKworCXJldHVybiB2YWRkcjsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2dlbV92bWFwKTsKKworLyoqCisgKiBkcm1fZ2VtX3Z1bm1hcCAtIFJl bW92ZSBidWZmZXIgbWFwcGluZyBmcm9tIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UKKyAq IEBvYmo6IEdFTSBvYmplY3QKKyAqIEB2YWRkcjogVmlydHVhbCBhZGRyZXNzIChjYW4gYmUgTlVM TCkKKyAqLwordm9pZCBkcm1fZ2VtX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwg dm9pZCAqdmFkZHIpCit7CisJaWYgKCF2YWRkcikKKwkJcmV0dXJuOworCisJaWYgKG9iai0+ZnVu Y3MgJiYgb2JqLT5mdW5jcy0+dnVubWFwKQorCQlvYmotPmZ1bmNzLT52dW5tYXAob2JqLCB2YWRk cik7CisJZWxzZSBpZiAob2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3Z1bm1hcCkKKwkJb2Jq LT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3Z1bm1hcChvYmosIHZhZGRyKTsKK30KK0VYUE9SVF9T WU1CT0woZHJtX2dlbV92dW5tYXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9w cmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCmluZGV4IDZhNGZlMDIxNmUyNy4u NTczN2NiOGM2ZjAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCkBAIC0xOTksNyArMTk5LDYgQEAgaW50IGRy bV9nZW1fbWFwX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIHsKIAlzdHJ1Y3QgZHJt X3ByaW1lX2F0dGFjaG1lbnQgKnByaW1lX2F0dGFjaDsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiA9IGRtYV9idWYtPnByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ZGV2 OwogCiAJcHJpbWVfYXR0YWNoID0ga3phbGxvYyhzaXplb2YoKnByaW1lX2F0dGFjaCksIEdGUF9L RVJORUwpOwogCWlmICghcHJpbWVfYXR0YWNoKQpAQCAtMjA4LDEwICsyMDcsNyBAQCBpbnQgZHJt X2dlbV9tYXBfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAogCXByaW1lX2F0dGFjaC0+ ZGlyID0gRE1BX05PTkU7CiAJYXR0YWNoLT5wcml2ID0gcHJpbWVfYXR0YWNoOwogCi0JaWYgKCFk ZXYtPmRyaXZlci0+Z2VtX3ByaW1lX3BpbikKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gZGV2LT5k cml2ZXItPmdlbV9wcmltZV9waW4ob2JqKTsKKwlyZXR1cm4gZHJtX2dlbV9waW4ob2JqKTsKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfYXR0YWNoKTsKIApAQCAtMjI4LDcgKzIyNCw2IEBA IHZvaWQgZHJtX2dlbV9tYXBfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAogewogCXN0 cnVjdCBkcm1fcHJpbWVfYXR0YWNobWVudCAqcHJpbWVfYXR0YWNoID0gYXR0YWNoLT5wcml2Owog CXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1hX2J1Zi0+cHJpdjsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gb2JqLT5kZXY7CiAKIAlpZiAocHJpbWVfYXR0YWNoKSB7CiAJCXN0cnVj dCBzZ190YWJsZSAqc2d0ID0gcHJpbWVfYXR0YWNoLT5zZ3Q7CkBAIC0yNDcsOCArMjQyLDcgQEAg dm9pZCBkcm1fZ2VtX21hcF9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCiAJCWF0dGFj aC0+cHJpdiA9IE5VTEw7CiAJfQogCi0JaWYgKGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdW5waW4p Ci0JCWRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdW5waW4ob2JqKTsKKwlkcm1fZ2VtX3VucGluKG9i aik7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7CiAKQEAgLTMxMCw3ICsz MDQsMTAgQEAgc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFf YnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKIAlpZiAoV0FSTl9PTihwcmltZV9hdHRhY2gtPmRpciAh PSBETUFfTk9ORSkpCiAJCXJldHVybiBFUlJfUFRSKC1FQlVTWSk7CiAKLQlzZ3QgPSBvYmotPmRl di0+ZHJpdmVyLT5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKG9iaik7CisJaWYgKG9iai0+ZnVuY3Mp CisJCXNndCA9IG9iai0+ZnVuY3MtPmdldF9zZ190YWJsZShvYmopOworCWVsc2UKKwkJc2d0ID0g b2JqLT5kZXYtPmRyaXZlci0+Z2VtX3ByaW1lX2dldF9zZ190YWJsZShvYmopOwogCiAJaWYgKCFJ U19FUlIoc2d0KSkgewogCQlpZiAoIWRtYV9tYXBfc2dfYXR0cnMoYXR0YWNoLT5kZXYsIHNndC0+ c2dsLCBzZ3QtPm5lbnRzLCBkaXIsCkBAIC00MDYsMTIgKzQwMywxMyBAQCBFWFBPUlRfU1lNQk9M KGRybV9nZW1fZG1hYnVmX3JlbGVhc2UpOwogdm9pZCAqZHJtX2dlbV9kbWFidWZfdm1hcChzdHJ1 Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRt YV9idWYtPnByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ZGV2OworCXZvaWQg KnZhZGRyOwogCi0JaWYgKGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfdm1hcCkKLQkJcmV0dXJuIGRl di0+ZHJpdmVyLT5nZW1fcHJpbWVfdm1hcChvYmopOwotCWVsc2UKLQkJcmV0dXJuIE5VTEw7CisJ dmFkZHIgPSBkcm1fZ2VtX3ZtYXAob2JqKTsKKwlpZiAoSVNfRVJSKHZhZGRyKSkKKwkJdmFkZHIg PSBOVUxMOworCisJcmV0dXJuIHZhZGRyOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1 Zl92bWFwKTsKIApAQCAtNDI2LDEwICs0MjQsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1h YnVmX3ZtYXApOwogdm9pZCBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRt YV9idWYsIHZvaWQgKnZhZGRyKQogewogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1h X2J1Zi0+cHJpdjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5kZXY7CiAKLQlpZiAo ZGV2LT5kcml2ZXItPmdlbV9wcmltZV92dW5tYXApCi0JCWRldi0+ZHJpdmVyLT5nZW1fcHJpbWVf dnVubWFwKG9iaiwgdmFkZHIpOworCWRybV9nZW1fdnVubWFwKG9iaiwgdmFkZHIpOwogfQogRVhQ T1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl92dW5tYXApOwogCkBAIC01MjksNyArNTI1LDkgQEAg c3RhdGljIHN0cnVjdCBkbWFfYnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gZG1hYnVmOwogCX0KIAotCWlmIChkZXYtPmRyaXZl ci0+Z2VtX3ByaW1lX2V4cG9ydCkKKwlpZiAob2JqLT5mdW5jcyAmJiBvYmotPmZ1bmNzLT5leHBv cnQpCisJCWRtYWJ1ZiA9IG9iai0+ZnVuY3MtPmV4cG9ydChvYmosIGZsYWdzKTsKKwllbHNlIGlm IChkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX2V4cG9ydCkKIAkJZG1hYnVmID0gZGV2LT5kcml2ZXIt PmdlbV9wcmltZV9leHBvcnQoZGV2LCBvYmosIGZsYWdzKTsKIAllbHNlCiAJCWRtYWJ1ZiA9IGRy bV9nZW1fcHJpbWVfZXhwb3J0KGRldiwgb2JqLCBmbGFncyk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fZ2VtLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKaW5kZXggMzU4M2I5OGExNzE4 Li5mNDY2Y2U1YmRlMGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaAorKysgYi9p bmNsdWRlL2RybS9kcm1fZ2VtLmgKQEAgLTM4LDYgKzM4LDEyMSBAQAogCiAjaW5jbHVkZSA8ZHJt L2RybV92bWFfbWFuYWdlci5oPgogCitzdHJ1Y3QgZHJtX2dlbV9vYmplY3Q7CisKKy8qKgorICog c3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIC0gR0VNIG9iamVjdCBmdW5jdGlvbnMKKyAqLwor c3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIHsKKwkvKioKKwkgKiBAZnJlZToKKwkgKgorCSAq IERlY29uc3RydWN0b3IgZm9yIGRybV9nZW1fb2JqZWN0cy4KKwkgKgorCSAqIFRoaXMgY2FsbGJh Y2sgaXMgbWFuZGF0b3J5LgorCSAqLworCXZvaWQgKCpmcmVlKShzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaik7CisKKwkvKioKKwkgKiBAb3BlbjoKKwkgKgorCSAqIENhbGxlZCB1cG9uIEdFTSBo YW5kbGUgY3JlYXRpb24uCisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAq LworCWludCAoKm9wZW4pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUpOworCisJLyoqCisJICogQGNsb3NlOgorCSAqCisJICogQ2FsbGVkIHVwb24gR0VN IGhhbmRsZSByZWxlYXNlLgorCSAqCisJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkg Ki8KKwl2b2lkICgqY2xvc2UpKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGUpOworCisJLyoqCisJICogQHByaW50X2luZm86CisJICoKKwkgKiBJZiBkcml2 ZXIgc3ViY2xhc3NlcyBzdHJ1Y3QgJmRybV9nZW1fb2JqZWN0LCBpdCBjYW4gaW1wbGVtZW50IHRo aXMKKwkgKiBvcHRpb25hbCBob29rIGZvciBwcmludGluZyBhZGRpdGlvbmFsIGRyaXZlciBzcGVj aWZpYyBpbmZvLgorCSAqCisJICogZHJtX3ByaW50Zl9pbmRlbnQoKSBzaG91bGQgYmUgdXNlZCBp biB0aGUgY2FsbGJhY2sgcGFzc2luZyBpdCB0aGUKKwkgKiBpbmRlbnQgYXJndW1lbnQuCisJICoK KwkgKiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCBmcm9tIGRybV9nZW1fcHJpbnRfaW5mbygpLgor CSAqCisJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkgKi8KKwl2b2lkICgqcHJpbnRf aW5mbykoc3RydWN0IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQgaW5kZW50LAorCQkJICAg Y29uc3Qgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworCisJLyoqCisJICogQGV4cG9ydDoK KwkgKgorCSAqIEV4cG9ydCBiYWNraW5nIGJ1ZmZlciBhcyBhICZkbWFfYnVmLgorCSAqIElmIHRo aXMgaXMgbm90IHNldCBkcm1fZ2VtX3ByaW1lX2V4cG9ydCgpIGlzIHVzZWQuCisJICoKKwkgKiBU aGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAqLworCXN0cnVjdCBkbWFfYnVmICooKmV4cG9y dCkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncyk7CisKKwkvKioKKwkgKiBA cGluOgorCSAqCisJICogUGluIGJhY2tpbmcgYnVmZmVyIGluIG1lbW9yeS4KKwkgKgorCSAqIFRo aXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCisJICovCisJaW50ICgqcGluKShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBAdW5waW46CisJICoKKwkgKiBVbnBpbiBiYWNr aW5nIGJ1ZmZlci4KKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCisJICovCisJ dm9pZCAoKnVucGluKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBA Z2V0X3NnX3RhYmxlOgorCSAqCisJICogUmV0dXJucyBhIFNjYXR0ZXItR2F0aGVyIHRhYmxlIHJl cHJlc2VudGF0aW9uIG9mIHRoZSBidWZmZXIuCisJICogVXNlZCB3aGVuIGV4cG9ydGluZyBhIGJ1 ZmZlci4KKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgbWFuZGF0b3J5IGlmIGJ1ZmZlciBleHBv cnQgaXMgc3VwcG9ydGVkLgorCSAqLworCXN0cnVjdCBzZ190YWJsZSAqKCpnZXRfc2dfdGFibGUp KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKworCS8qKgorCSAqIEB2bWFwOgorCSAqCisJ ICogUmV0dXJucyBhIHZpcnR1YWwgYWRkcmVzcyBmb3IgdGhlIGJ1ZmZlci4KKwkgKgorCSAqIFRo aXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCisJICovCisJdm9pZCAqKCp2bWFwKShzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBAdnVubWFwOgorCSAqCisJICogUmVsZWFz ZXMgdGhlIHRoZSBhZGRyZXNzIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQHZtYXAuCisJICoKKwkg KiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAqLworCXZvaWQgKCp2dW5tYXApKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcik7CisKKwkvKioKKwkgKiBAdm1fb3Bz OgorCSAqCisJICogVmlydHVhbCBtZW1vcnkgb3BlcmF0aW9ucyB1c2VkIHdpdGggbW1hcC4KKwkg KgorCSAqIFRoaXMgaXMgb3B0aW9uYWwgYnV0IG5lY2Vzc2FyeSBmb3IgbW1hcCBzdXBwb3J0Lgor CSAqLworCWNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAqdm1fb3BzOworfTsKKwog LyoqCiAgKiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgLSBHRU0gYnVmZmVyIG9iamVjdAogICoKQEAg LTE0Niw2ICsyNjEsMTcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0IHsKIAkgKiBzaW1wbHkgbGVh dmUgaXQgYXMgTlVMTC4KIAkgKi8KIAlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRf YXR0YWNoOworCisJLyoqCisJICogQGZ1bmNzOgorCSAqCisJICogT3B0aW9uYWwgR0VNIG9iamVj dCBmdW5jdGlvbnMuIElmIHRoaXMgaXMgc2V0LCBpdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0 aGUKKwkgKiBjb3JyZXNwb25kaW5nICZkcm1fZHJpdmVyIEdFTSBjYWxsYmFja3MuCisJICoKKwkg KiBOZXcgZHJpdmVycyBzaG91bGQgdXNlIHRoaXMuCisJICoKKwkgKi8KKwljb25zdCBzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3RfZnVuY3MgKmZ1bmNzOwogfTsKIAogLyoqCkBAIC0yOTMsNCArNDE5LDkg QEAgaW50IGRybV9nZW1fZHVtYl9kZXN0cm95KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAkJCSBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJIHVpbnQzMl90IGhhbmRsZSk7CiAKK2ludCBkcm1f Z2VtX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cit2b2lkIGRybV9nZW1fdW5waW4o c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwordm9pZCAqZHJtX2dlbV92bWFwKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgZHJtX2dlbV92dW5tYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKKwogI2VuZGlmIC8qIF9fRFJNX0dFTV9IX18gKi8K LS0gCjIuMTUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==