From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH 8/8] xen/gntdev: Expose gntdev's dma-buf API for in-kernel use Date: Fri, 25 May 2018 18:33:31 +0300 Message-ID: <20180525153331.31188-9-andr2000__13136.2937776887$1527262380$gmane$org@gmail.com> References: <20180525153331.31188-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fMEjF-0008WQ-As for xen-devel@lists.xenproject.org; Fri, 25 May 2018 15:34:05 +0000 Received: by mail-wm0-x244.google.com with SMTP id x2-v6so8328038wmh.5 for ; Fri, 25 May 2018 08:33:58 -0700 (PDT) In-Reply-To: <20180525153331.31188-1-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, daniel.vetter@intel.com, matthew.d.roper@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKQWxsb3cgY3JlYXRpbmcgZ3JhbnQgZGV2aWNlIGNvbnRleHQgZm9yIHVzZSBieSBr ZXJuZWwgbW9kdWxlcyB3aGljaApyZXF1aXJlIGZ1bmN0aW9uYWxpdHksIHByb3ZpZGVkIGJ5IGdu dGRldi4gRXhwb3J0IHN5bWJvbHMgZm9yIGRtYS1idWYKQVBJIHByb3ZpZGVkIGJ5IHRoZSBtb2R1 bGUuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2Fu ZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0tLQogZHJpdmVycy94ZW4vZ250ZGV2LmMgICAgfCAxMTYg KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogaW5jbHVkZS94ZW4vZ3Jh bnRfZGV2LmggfCAgMzcgKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0 aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4v Z3JhbnRfZGV2LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMv eGVuL2dudGRldi5jCmluZGV4IGQ4YjYxNjhmMmNkOS4uOTEyMDU2ZjNlOTA5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3hlbi9nbnRkZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtNjg0 LDE0ICs2ODQsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIGdudGRl dl9tbXVfb3BzID0gewogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotc3RhdGljIGludCBnbnRkZXZfb3Bl bihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKK3ZvaWQgZ250ZGV2X2Zy ZWVfY29udGV4dChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYpCit7CisJc3RydWN0IGdyYW50X21h cCAqbWFwOworCisJcHJfZGVidWcoInByaXYgJXBcbiIsIHByaXYpOworCisJbXV0ZXhfbG9jaygm cHJpdi0+bG9jayk7CisJd2hpbGUgKCFsaXN0X2VtcHR5KCZwcml2LT5tYXBzKSkgeworCQltYXAg PSBsaXN0X2VudHJ5KHByaXYtPm1hcHMubmV4dCwgc3RydWN0IGdyYW50X21hcCwgbmV4dCk7CisJ CWxpc3RfZGVsKCZtYXAtPm5leHQpOworCQlnbnRkZXZfcHV0X21hcChOVUxMIC8qIGFscmVhZHkg cmVtb3ZlZCAqLywgbWFwKTsKKwl9CisJV0FSTl9PTighbGlzdF9lbXB0eSgmcHJpdi0+ZnJlZWFi bGVfbWFwcykpOworCisJbXV0ZXhfdW5sb2NrKCZwcml2LT5sb2NrKTsKKworCWtmcmVlKHByaXYp OworfQorRVhQT1JUX1NZTUJPTChnbnRkZXZfZnJlZV9jb250ZXh0KTsKKworc3RydWN0IGdudGRl dl9wcml2ICpnbnRkZXZfYWxsb2NfY29udGV4dChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGdudGRldl9wcml2ICpwcml2OwotCWludCByZXQgPSAwOwogCiAJcHJpdiA9IGt6YWxsb2Mo c2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwcml2KQotCQlyZXR1cm4gLUVOT01F TTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+ bWFwcyk7CiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmZyZWVhYmxlX21hcHMpOwpAQCAtNzA0LDYg KzcyMywzMiBAQCBzdGF0aWMgaW50IGdudGRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmaWxlICpmbGlwKQogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5kbWFidWZfaW1wX2xpc3Qp OwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQworCXByaXYtPmRt YV9kZXYgPSBkZXY7CisKKwkvKgorCSAqIFRoZSBkZXZpY2UgaXMgbm90IHNwYXduIGZyb20gYSBk ZXZpY2UgdHJlZSwgc28gYXJjaF9zZXR1cF9kbWFfb3BzCisJICogaXMgbm90IGNhbGxlZCwgdGh1 cyBsZWF2aW5nIHRoZSBkZXZpY2Ugd2l0aCBkdW1teSBETUEgb3BzLgorCSAqIEZpeCB0aGlzIGNh bGwgb2ZfZG1hX2NvbmZpZ3VyZSgpIHdpdGggYSBOVUxMIG5vZGUgdG8gc2V0CisJICogZGVmYXVs dCBETUEgb3BzLgorCSAqLworCW9mX2RtYV9jb25maWd1cmUocHJpdi0+ZG1hX2RldiwgTlVMTCk7 CisjZW5kaWYKKwlwcl9kZWJ1ZygicHJpdiAlcFxuIiwgcHJpdik7CisKKwlyZXR1cm4gcHJpdjsK K30KK0VYUE9SVF9TWU1CT0woZ250ZGV2X2FsbG9jX2NvbnRleHQpOworCitzdGF0aWMgaW50IGdu dGRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmbGlwKQoreworCXN0 cnVjdCBnbnRkZXZfcHJpdiAqcHJpdjsKKwlpbnQgcmV0ID0gMDsKKworCXByaXYgPSBnbnRkZXZf YWxsb2NfY29udGV4dChnbnRkZXZfbWlzY2Rldi50aGlzX2RldmljZSk7CisJaWYgKElTX0VSUihw cml2KSkKKwkJcmV0dXJuIFBUUl9FUlIocHJpdik7CisKIAlpZiAodXNlX3B0ZW1vZCkgewogCQlw cml2LT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwogCQlpZiAoIXByaXYtPm1tKSB7CkBAIC03 MTYsMjMgKzc2MSwxMSBAQCBzdGF0aWMgaW50IGdudGRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmbGlwKQogCX0KIAogCWlmIChyZXQpIHsKLQkJa2ZyZWUocHJpdik7 CisJCWdudGRldl9mcmVlX2NvbnRleHQocHJpdik7CiAJCXJldHVybiByZXQ7CiAJfQogCiAJZmxp cC0+cHJpdmF0ZV9kYXRhID0gcHJpdjsKLSNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExP QwotCXByaXYtPmRtYV9kZXYgPSBnbnRkZXZfbWlzY2Rldi50aGlzX2RldmljZTsKLQotCS8qCi0J ICogVGhlIGRldmljZSBpcyBub3Qgc3Bhd24gZnJvbSBhIGRldmljZSB0cmVlLCBzbyBhcmNoX3Nl dHVwX2RtYV9vcHMKLQkgKiBpcyBub3QgY2FsbGVkLCB0aHVzIGxlYXZpbmcgdGhlIGRldmljZSB3 aXRoIGR1bW15IERNQSBvcHMuCi0JICogRml4IHRoaXMgY2FsbCBvZl9kbWFfY29uZmlndXJlKCkg d2l0aCBhIE5VTEwgbm9kZSB0byBzZXQKLQkgKiBkZWZhdWx0IERNQSBvcHMuCi0JICovCi0Jb2Zf ZG1hX2NvbmZpZ3VyZShwcml2LT5kbWFfZGV2LCBOVUxMKTsKLSNlbmRpZgotCXByX2RlYnVnKCJw cml2ICVwXG4iLCBwcml2KTsKIAogCXJldHVybiAwOwogfQpAQCAtNzQwLDIyICs3NzMsMTEgQEAg c3RhdGljIGludCBnbnRkZXZfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAq ZmxpcCkKIHN0YXRpYyBpbnQgZ250ZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZsaXApCiB7CiAJc3RydWN0IGdudGRldl9wcml2ICpwcml2ID0gZmxpcC0+cHJp dmF0ZV9kYXRhOwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKLQotCXByX2RlYnVnKCJwcml2ICVw XG4iLCBwcml2KTsKLQotCW11dGV4X2xvY2soJnByaXYtPmxvY2spOwotCXdoaWxlICghbGlzdF9l bXB0eSgmcHJpdi0+bWFwcykpIHsKLQkJbWFwID0gbGlzdF9lbnRyeShwcml2LT5tYXBzLm5leHQs IHN0cnVjdCBncmFudF9tYXAsIG5leHQpOwotCQlsaXN0X2RlbCgmbWFwLT5uZXh0KTsKLQkJZ250 ZGV2X3B1dF9tYXAoTlVMTCAvKiBhbHJlYWR5IHJlbW92ZWQgKi8sIG1hcCk7Ci0JfQotCVdBUk5f T04oIWxpc3RfZW1wdHkoJnByaXYtPmZyZWVhYmxlX21hcHMpKTsKLQltdXRleF91bmxvY2soJnBy aXYtPmxvY2spOwogCiAJaWYgKHVzZV9wdGVtb2QpCiAJCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVy KCZwcml2LT5tbiwgcHJpdi0+bW0pOwotCWtmcmVlKHByaXYpOworCisJZ250ZGV2X2ZyZWVfY29u dGV4dChwcml2KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTIxMCw3ICsxMjMyLDcgQEAgZG1hYnVm X2V4cF93YWl0X29ial9nZXRfYnlfZmQoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmQp CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQo c3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmQsCitpbnQgZ250ZGV2X2RtYWJ1Zl9leHBf d2FpdF9yZWxlYXNlZChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmZCwKIAkJCQkgICAg aW50IHdhaXRfdG9fbXMpCiB7CiAJc3RydWN0IHhlbl9kbWFidWYgKnhlbl9kbWFidWY7CkBAIC0x MjQyLDYgKzEyNjQsNyBAQCBzdGF0aWMgaW50IGRtYWJ1Zl9leHBfd2FpdF9yZWxlYXNlZChzdHJ1 Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmZCwKIAlkbWFidWZfZXhwX3dhaXRfb2JqX2ZyZWUo cHJpdiwgb2JqKTsKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTChnbnRkZXZfZG1hYnVm X2V4cF93YWl0X3JlbGVhc2VkKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBETUEgYnVmZmVyIGV4 cG9ydCBzdXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K QEAgLTE1MTEsNyArMTUzNCw3IEBAIGRtYWJ1Zl9leHBfYWxsb2NfYmFja2luZ19zdG9yYWdlKHN0 cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGRtYWJ1Zl9mbGFncywKIAlyZXR1cm4gbWFwOwog fQogCi1zdGF0aWMgaW50IGRtYWJ1Zl9leHBfZnJvbV9yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAq cHJpdiwgaW50IGZsYWdzLAoraW50IGdudGRldl9kbWFidWZfZXhwX2Zyb21fcmVmcyhzdHJ1Y3Qg Z250ZGV2X3ByaXYgKnByaXYsIGludCBmbGFncywKIAkJCQlpbnQgY291bnQsIHUzMiBkb21pZCwg dTMyICpyZWZzLCB1MzIgKmZkKQogewogCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKQEAgLTE1NTcs NiArMTU4MCw3IEBAIHN0YXRpYyBpbnQgZG1hYnVmX2V4cF9mcm9tX3JlZnMoc3RydWN0IGdudGRl dl9wcml2ICpwcml2LCBpbnQgZmxhZ3MsCiAJZ250ZGV2X3JlbW92ZV9tYXAocHJpdiwgbWFwKTsK IAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTChnbnRkZXZfZG1hYnVmX2V4cF9mcm9tX3Jl ZnMpOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qIERNQSBidWZmZXIgaW1wb3J0IHN1cHBvcnQuICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMTY0Niw4ICsxNjcw LDkgQEAgc3RhdGljIHN0cnVjdCB4ZW5fZG1hYnVmICpkbWFidWZfaW1wX2FsbG9jX3N0b3JhZ2Uo aW50IGNvdW50KQogCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogfQogCi1zdGF0aWMgc3RydWN0 IHhlbl9kbWFidWYgKgotZG1hYnVmX2ltcF90b19yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJp diwgaW50IGZkLCBpbnQgY291bnQsIGludCBkb21pZCkKK3N0cnVjdCB4ZW5fZG1hYnVmICoKK2du dGRldl9kbWFidWZfaW1wX3RvX3JlZnMoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmQs CisJCQkgIGludCBjb3VudCwgaW50IGRvbWlkKQogewogCXN0cnVjdCB4ZW5fZG1hYnVmICp4ZW5f ZG1hYnVmLCAqcmV0OwogCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmOwpAQCAtMTczNiw2ICsxNzYx LDE2IEBAIGRtYWJ1Zl9pbXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBm ZCwgaW50IGNvdW50LCBpbnQgZG9taWQpCiAJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7CiAJcmV0dXJu IHJldDsKIH0KK0VYUE9SVF9TWU1CT0woZ250ZGV2X2RtYWJ1Zl9pbXBfdG9fcmVmcyk7CisKK3Uz MiAqZ250ZGV2X2RtYWJ1Zl9pbXBfZ2V0X3JlZnMoc3RydWN0IHhlbl9kbWFidWYgKnhlbl9kbWFi dWYpCit7CisJaWYgKHhlbl9kbWFidWYpCisJCXJldHVybiB4ZW5fZG1hYnVmLT51LmltcC5yZWZz OworCisJcmV0dXJuIE5VTEw7Cit9CitFWFBPUlRfU1lNQk9MKGdudGRldl9kbWFidWZfaW1wX2dl dF9yZWZzKTsKIAogLyoKICAqIEZpbmQgdGhlIGh5cGVyIGRtYS1idWYgYnkgaXRzIGZpbGUgZGVz Y3JpcHRvciBhbmQgcmVtb3ZlCkBAIC0xNzU5LDcgKzE3OTQsNyBAQCBkbWFidWZfaW1wX2ZpbmRf dW5saW5rKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGZkKQogCXJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgZG1hYnVmX2ltcF9yZWxlYXNlKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJp diwgdTMyIGZkKQoraW50IGdudGRldl9kbWFidWZfaW1wX3JlbGVhc2Uoc3RydWN0IGdudGRldl9w cml2ICpwcml2LCB1MzIgZmQpCiB7CiAJc3RydWN0IHhlbl9kbWFidWYgKnhlbl9kbWFidWY7CiAJ c3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoOwpAQCAtMTc4NSw2ICsxODIwLDcgQEAg c3RhdGljIGludCBkbWFidWZfaW1wX3JlbGVhc2Uoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCB1 MzIgZmQpCiAJZG1hYnVmX2ltcF9mcmVlX3N0b3JhZ2UoeGVuX2RtYWJ1Zik7CiAJcmV0dXJuIDA7 CiB9CitFWFBPUlRfU1lNQk9MKGdudGRldl9kbWFidWZfaW1wX3JlbGVhc2UpOwogCiAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gKi8KIC8qIERNQSBidWZmZXIgSU9DVEwgc3VwcG9ydC4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMTgxMCw4ICsxODQ2LDggQEAgZ250ZGV2X2lv Y3RsX2RtYWJ1Zl9leHBfZnJvbV9yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwKIAkJZ290 byBvdXQ7CiAJfQogCi0JcmV0ID0gZG1hYnVmX2V4cF9mcm9tX3JlZnMocHJpdiwgb3AuZmxhZ3Ms IG9wLmNvdW50LAotCQkJCSAgIG9wLmRvbWlkLCByZWZzLCAmb3AuZmQpOworCXJldCA9IGdudGRl dl9kbWFidWZfZXhwX2Zyb21fcmVmcyhwcml2LCBvcC5mbGFncywgb3AuY291bnQsCisJCQkJCSAg b3AuZG9taWQsIHJlZnMsICZvcC5mZCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTE4 MzIsNyArMTg2OCw3IEBAIGdudGRldl9pb2N0bF9kbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQoc3Ry dWN0IGdudGRldl9wcml2ICpwcml2LAogCWlmIChjb3B5X2Zyb21fdXNlcigmb3AsIHUsIHNpemVv ZihvcCkpICE9IDApCiAJCXJldHVybiAtRUZBVUxUOwogCi0JcmV0dXJuIGRtYWJ1Zl9leHBfd2Fp dF9yZWxlYXNlZChwcml2LCBvcC5mZCwgb3Aud2FpdF90b19tcyk7CisJcmV0dXJuIGdudGRldl9k bWFidWZfZXhwX3dhaXRfcmVsZWFzZWQocHJpdiwgb3AuZmQsIG9wLndhaXRfdG9fbXMpOwogfQog CiBzdGF0aWMgbG9uZwpAQCAtMTg0Niw3ICsxODgyLDcgQEAgZ250ZGV2X2lvY3RsX2RtYWJ1Zl9p bXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCiAJaWYgKGNvcHlfZnJvbV91c2Vy KCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0gMCkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKLQl4ZW5fZG1h YnVmID0gZG1hYnVmX2ltcF90b19yZWZzKHByaXYsIG9wLmZkLCBvcC5jb3VudCwgb3AuZG9taWQp OworCXhlbl9kbWFidWYgPSBnbnRkZXZfZG1hYnVmX2ltcF90b19yZWZzKHByaXYsIG9wLmZkLCBv cC5jb3VudCwgb3AuZG9taWQpOwogCWlmIChJU19FUlIoeGVuX2RtYWJ1ZikpCiAJCXJldHVybiBQ VFJfRVJSKHhlbl9kbWFidWYpOwogCkBAIC0xODU4LDcgKzE4OTQsNyBAQCBnbnRkZXZfaW9jdGxf ZG1hYnVmX2ltcF90b19yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwKIAlyZXR1cm4gMDsK IAogb3V0X3JlbGVhc2U6Ci0JZG1hYnVmX2ltcF9yZWxlYXNlKHByaXYsIG9wLmZkKTsKKwlnbnRk ZXZfZG1hYnVmX2ltcF9yZWxlYXNlKHByaXYsIG9wLmZkKTsKIAlyZXR1cm4gcmV0OwogfQogCkBA IC0xODcxLDcgKzE5MDcsNyBAQCBnbnRkZXZfaW9jdGxfZG1hYnVmX2ltcF9yZWxlYXNlKHN0cnVj dCBnbnRkZXZfcHJpdiAqcHJpdiwKIAlpZiAoY29weV9mcm9tX3VzZXIoJm9wLCB1LCBzaXplb2Yo b3ApKSAhPSAwKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCXJldHVybiBkbWFidWZfaW1wX3JlbGVh c2UocHJpdiwgb3AuZmQpOworCXJldHVybiBnbnRkZXZfZG1hYnVmX2ltcF9yZWxlYXNlKHByaXYs IG9wLmZkKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9ncmFudF9kZXYu aCBiL2luY2x1ZGUveGVuL2dyYW50X2Rldi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZmFjY2M5MTcwMTc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v Z3JhbnRfZGV2LmgKQEAgLTAsMCArMSwzNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgT1IgTUlUICovCisKKy8qCisgKiBHcmFudCBkZXZpY2Uga2VybmVsIEFQSQorICoK KyAqIENvcHlyaWdodCAoQykgMjAxOCBFUEFNIFN5c3RlbXMgSW5jLgorICoKKyAqIEF1dGhvcjog T2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29t PgorICovCisKKyNpZm5kZWYgX0dSQU5UX0RFVl9ICisjZGVmaW5lIF9HUkFOVF9ERVZfSAorCisj aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IGRldmljZTsKK3N0cnVjdCBnbnRkZXZf cHJpdjsKKyNpZmRlZiBDT05GSUdfWEVOX0dOVERFVl9ETUFCVUYKK3N0cnVjdCB4ZW5fZG1hYnVm OworI2VuZGlmCisKK3N0cnVjdCBnbnRkZXZfcHJpdiAqZ250ZGV2X2FsbG9jX2NvbnRleHQoc3Ry dWN0IGRldmljZSAqZGV2KTsKK3ZvaWQgZ250ZGV2X2ZyZWVfY29udGV4dChzdHJ1Y3QgZ250ZGV2 X3ByaXYgKnByaXYpOworCisjaWZkZWYgQ09ORklHX1hFTl9HTlRERVZfRE1BQlVGCitpbnQgZ250 ZGV2X2RtYWJ1Zl9leHBfZnJvbV9yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGZs YWdzLAorCQkJCWludCBjb3VudCwgdTMyIGRvbWlkLCB1MzIgKnJlZnMsIHUzMiAqZmQpOworaW50 IGdudGRldl9kbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQoc3RydWN0IGdudGRldl9wcml2ICpwcml2 LCBpbnQgZmQsCisJCQkJICAgIGludCB3YWl0X3RvX21zKTsKKworc3RydWN0IHhlbl9kbWFidWYg KmdudGRldl9kbWFidWZfaW1wX3RvX3JlZnMoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAorCQkJ CQkgICAgIGludCBmZCwgaW50IGNvdW50LCBpbnQgZG9taWQpOwordTMyICpnbnRkZXZfZG1hYnVm X2ltcF9nZXRfcmVmcyhzdHJ1Y3QgeGVuX2RtYWJ1ZiAqeGVuX2RtYWJ1Zik7CitpbnQgZ250ZGV2 X2RtYWJ1Zl9pbXBfcmVsZWFzZShzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHUzMiBmZCk7Cisj ZW5kaWYKKworI2VuZGlmCi0tIAoyLjE3LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs