From: Oleksandr Andrushchenko Subject: [PATCH v5 4/8] xen/gntdev: Allow mappings for DMA buffers Date: Fri, 20 Jul 2018 12:01:46 +0300 Message-ID: <20180720090150.24560-5-andr2000@gmail.com> References: <20180720090150.24560-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4AFA06EF21 for ; Fri, 20 Jul 2018 09:02:06 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id v9-v6so10531144ljk.4 for ; Fri, 20 Jul 2018 02:02:06 -0700 (PDT) In-Reply-To: <20180720090150.24560-1-andr2000@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-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, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKQWxsb3cgbWFwcGluZ3MgZm9yIERNQSBiYWNrZWQgIGJ1ZmZlcnMgaWYgZ3JhbnQg dGFibGUgbW9kdWxlCnN1cHBvcnRzIHN1Y2g6IHRoaXMgZXh0ZW5kcyBncmFudCBkZXZpY2UgdG8g bm90IG9ubHkgbWFwIGJ1ZmZlcnMKbWFkZSBvZiBiYWxsb29uIHBhZ2VzLCBidXQgYWxzbyBmcm9t IGJ1ZmZlcnMgYWxsb2NhdGVkIHdpdGgKZG1hX2FsbG9jX3h4eC4KClNpZ25lZC1vZmYtYnk6IE9s ZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4K UmV2aWV3ZWQtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+ Ci0tLQogZHJpdmVycy94ZW4vZ250ZGV2LmMgICAgICB8IDk5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS91YXBpL3hlbi9nbnRkZXYuaCB8IDE1ICsrKysr KwogMiBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2dudGRldi5jCmlu ZGV4IGJkNTY2NTNiOWJiYy4uMTczMzMyZjQzOWQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9n bnRkZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtMzcsNiArMzcsOSBAQAogI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVk ZSA8bGludXgvcmVmY291bnQuaD4KKyNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQwor I2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2VuZGlmCiAKICNpbmNsdWRlIDx4ZW4veGVu Lmg+CiAjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+CkBAIC03Miw2ICs3NSwxMSBAQCBzdHJ1 Y3QgZ250ZGV2X3ByaXYgewogCXN0cnVjdCBtdXRleCBsb2NrOwogCXN0cnVjdCBtbV9zdHJ1Y3Qg Km1tOwogCXN0cnVjdCBtbXVfbm90aWZpZXIgbW47CisKKyNpZmRlZiBDT05GSUdfWEVOX0dSQU5U X0RNQV9BTExPQworCS8qIERldmljZSBmb3Igd2hpY2ggRE1BIG1lbW9yeSBpcyBhbGxvY2F0ZWQu ICovCisJc3RydWN0IGRldmljZSAqZG1hX2RldjsKKyNlbmRpZgogfTsKIAogc3RydWN0IHVubWFw X25vdGlmeSB7CkBAIC05NiwxMCArMTA0LDI3IEBAIHN0cnVjdCBncmFudF9tYXAgewogCXN0cnVj dCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICprdW5tYXBfb3BzOwogCXN0cnVjdCBwYWdlICoqcGFn ZXM7CiAJdW5zaWduZWQgbG9uZyBwYWdlc192bV9zdGFydDsKKworI2lmZGVmIENPTkZJR19YRU5f R1JBTlRfRE1BX0FMTE9DCisJLyoKKwkgKiBJZiBkbWFidWZfdmFkZHIgaXMgbm90IE5VTEwgdGhl biB0aGlzIG1hcHBpbmcgaXMgYmFja2VkIGJ5IERNQQorCSAqIGNhcGFibGUgbWVtb3J5LgorCSAq LworCisJc3RydWN0IGRldmljZSAqZG1hX2RldjsKKwkvKiBGbGFncyB1c2VkIHRvIGNyZWF0ZSB0 aGlzIERNQSBidWZmZXI6IEdOVERFVl9ETUFfRkxBR19YWFguICovCisJaW50IGRtYV9mbGFnczsK Kwl2b2lkICpkbWFfdmFkZHI7CisJZG1hX2FkZHJfdCBkbWFfYnVzX2FkZHI7CisJLyogTmVlZGVk IHRvIGF2b2lkIGFsbG9jYXRpb24gaW4gZ250dGFiX2RtYV9mcmVlX3BhZ2VzKCkuICovCisJeGVu X3Bmbl90ICpmcmFtZXM7CisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgdW5tYXBfZ3JhbnRfcGFn ZXMoc3RydWN0IGdyYW50X21hcCAqbWFwLCBpbnQgb2Zmc2V0LCBpbnQgcGFnZXMpOwogCitzdGF0 aWMgc3RydWN0IG1pc2NkZXZpY2UgZ250ZGV2X21pc2NkZXY7CisKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwog CiBzdGF0aWMgdm9pZCBnbnRkZXZfcHJpbnRfbWFwcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYs CkBAIC0xMjEsOCArMTQ2LDI3IEBAIHN0YXRpYyB2b2lkIGdudGRldl9mcmVlX21hcChzdHJ1Y3Qg Z3JhbnRfbWFwICptYXApCiAJaWYgKG1hcCA9PSBOVUxMKQogCQlyZXR1cm47CiAKKyNpZmRlZiBD T05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQworCWlmIChtYXAtPmRtYV92YWRkcikgeworCQlzdHJ1 Y3QgZ250dGFiX2RtYV9hbGxvY19hcmdzIGFyZ3M7CisKKwkJYXJncy5kZXYgPSBtYXAtPmRtYV9k ZXY7CisJCWFyZ3MuY29oZXJlbnQgPSAhIShtYXAtPmRtYV9mbGFncyAmIEdOVERFVl9ETUFfRkxB R19DT0hFUkVOVCk7CisJCWFyZ3MubnJfcGFnZXMgPSBtYXAtPmNvdW50OworCQlhcmdzLnBhZ2Vz ID0gbWFwLT5wYWdlczsKKwkJYXJncy5mcmFtZXMgPSBtYXAtPmZyYW1lczsKKwkJYXJncy52YWRk ciA9IG1hcC0+ZG1hX3ZhZGRyOworCQlhcmdzLmRldl9idXNfYWRkciA9IG1hcC0+ZG1hX2J1c19h ZGRyOworCisJCWdudHRhYl9kbWFfZnJlZV9wYWdlcygmYXJncyk7CisJfSBlbHNlCisjZW5kaWYK IAlpZiAobWFwLT5wYWdlcykKIAkJZ250dGFiX2ZyZWVfcGFnZXMobWFwLT5jb3VudCwgbWFwLT5w YWdlcyk7CisKKyNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQworCWtmcmVlKG1hcC0+ ZnJhbWVzKTsKKyNlbmRpZgogCWtmcmVlKG1hcC0+cGFnZXMpOwogCWtmcmVlKG1hcC0+Z3JhbnRz KTsKIAlrZnJlZShtYXAtPm1hcF9vcHMpOwpAQCAtMTMyLDcgKzE3Niw4IEBAIHN0YXRpYyB2b2lk IGdudGRldl9mcmVlX21hcChzdHJ1Y3QgZ3JhbnRfbWFwICptYXApCiAJa2ZyZWUobWFwKTsKIH0K IAotc3RhdGljIHN0cnVjdCBncmFudF9tYXAgKmdudGRldl9hbGxvY19tYXAoc3RydWN0IGdudGRl dl9wcml2ICpwcml2LCBpbnQgY291bnQpCitzdGF0aWMgc3RydWN0IGdyYW50X21hcCAqZ250ZGV2 X2FsbG9jX21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBjb3VudCwKKwkJCQkJICBp bnQgZG1hX2ZsYWdzKQogewogCXN0cnVjdCBncmFudF9tYXAgKmFkZDsKIAlpbnQgaTsKQEAgLTE1 NSw2ICsyMDAsMzcgQEAgc3RhdGljIHN0cnVjdCBncmFudF9tYXAgKmdudGRldl9hbGxvY19tYXAo c3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgY291bnQpCiAJICAgIE5VTEwgPT0gYWRkLT5w YWdlcykKIAkJZ290byBlcnI7CiAKKyNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQwor CWFkZC0+ZG1hX2ZsYWdzID0gZG1hX2ZsYWdzOworCisJLyoKKwkgKiBDaGVjayBpZiB0aGlzIG1h cHBpbmcgaXMgcmVxdWVzdGVkIHRvIGJlIGJhY2tlZAorCSAqIGJ5IGEgRE1BIGJ1ZmZlci4KKwkg Ki8KKwlpZiAoZG1hX2ZsYWdzICYgKEdOVERFVl9ETUFfRkxBR19XQyB8IEdOVERFVl9ETUFfRkxB R19DT0hFUkVOVCkpIHsKKwkJc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyBhcmdzOworCisJ CWFkZC0+ZnJhbWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKGFkZC0+ZnJhbWVzWzBdKSwKKwkJ CQkgICAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFhZGQtPmZyYW1lcykKKwkJCWdvdG8gZXJyOwor CisJCS8qIFJlbWVtYmVyIHRoZSBkZXZpY2UsIHNvIHdlIGNhbiBmcmVlIERNQSBtZW1vcnkuICov CisJCWFkZC0+ZG1hX2RldiA9IHByaXYtPmRtYV9kZXY7CisKKwkJYXJncy5kZXYgPSBwcml2LT5k bWFfZGV2OworCQlhcmdzLmNvaGVyZW50ID0gISEoZG1hX2ZsYWdzICYgR05UREVWX0RNQV9GTEFH X0NPSEVSRU5UKTsKKwkJYXJncy5ucl9wYWdlcyA9IGNvdW50OworCQlhcmdzLnBhZ2VzID0gYWRk LT5wYWdlczsKKwkJYXJncy5mcmFtZXMgPSBhZGQtPmZyYW1lczsKKworCQlpZiAoZ250dGFiX2Rt YV9hbGxvY19wYWdlcygmYXJncykpCisJCQlnb3RvIGVycjsKKworCQlhZGQtPmRtYV92YWRkciA9 IGFyZ3MudmFkZHI7CisJCWFkZC0+ZG1hX2J1c19hZGRyID0gYXJncy5kZXZfYnVzX2FkZHI7CisJ fSBlbHNlCisjZW5kaWYKIAlpZiAoZ250dGFiX2FsbG9jX3BhZ2VzKGNvdW50LCBhZGQtPnBhZ2Vz KSkKIAkJZ290byBlcnI7CiAKQEAgLTMyNSw2ICs0MDEsMTQgQEAgc3RhdGljIGludCBtYXBfZ3Jh bnRfcGFnZXMoc3RydWN0IGdyYW50X21hcCAqbWFwKQogCQltYXAtPnVubWFwX29wc1tpXS5oYW5k bGUgPSBtYXAtPm1hcF9vcHNbaV0uaGFuZGxlOwogCQlpZiAodXNlX3B0ZW1vZCkKIAkJCW1hcC0+ a3VubWFwX29wc1tpXS5oYW5kbGUgPSBtYXAtPmttYXBfb3BzW2ldLmhhbmRsZTsKKyNpZmRlZiBD T05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQworCQllbHNlIGlmIChtYXAtPmRtYV92YWRkcikgewor CQkJdW5zaWduZWQgbG9uZyBiZm47CisKKwkJCWJmbiA9IHBmbl90b19iZm4ocGFnZV90b19wZm4o bWFwLT5wYWdlc1tpXSkpOworCQkJbWFwLT51bm1hcF9vcHNbaV0uZGV2X2J1c19hZGRyID0gX19w Zm5fdG9fcGh5cyhiZm4pOworCQl9CisjZW5kaWYKIAl9CiAJcmV0dXJuIGVycjsKIH0KQEAgLTU0 OCw2ICs2MzIsMTcgQEAgc3RhdGljIGludCBnbnRkZXZfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmxpcCkKIAl9CiAKIAlmbGlwLT5wcml2YXRlX2RhdGEgPSBwcml2Owor I2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCisJcHJpdi0+ZG1hX2RldiA9IGdudGRl dl9taXNjZGV2LnRoaXNfZGV2aWNlOworCisJLyoKKwkgKiBUaGUgZGV2aWNlIGlzIG5vdCBzcGF3 biBmcm9tIGEgZGV2aWNlIHRyZWUsIHNvIGFyY2hfc2V0dXBfZG1hX29wcworCSAqIGlzIG5vdCBj YWxsZWQsIHRodXMgbGVhdmluZyB0aGUgZGV2aWNlIHdpdGggZHVtbXkgRE1BIG9wcy4KKwkgKiBG aXggdGhpcyBieSBjYWxsaW5nIG9mX2RtYV9jb25maWd1cmUoKSB3aXRoIGEgTlVMTCBub2RlIHRv IHNldAorCSAqIGRlZmF1bHQgRE1BIG9wcy4KKwkgKi8KKwlvZl9kbWFfY29uZmlndXJlKHByaXYt PmRtYV9kZXYsIE5VTEwsIHRydWUpOworI2VuZGlmCiAJcHJfZGVidWcoInByaXYgJXBcbiIsIHBy aXYpOwogCiAJcmV0dXJuIDA7CkBAIC01ODksNyArNjg0LDcgQEAgc3RhdGljIGxvbmcgZ250ZGV2 X2lvY3RsX21hcF9ncmFudF9yZWYoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAogCQlyZXR1cm4g LUVJTlZBTDsKIAogCWVyciA9IC1FTk9NRU07Ci0JbWFwID0gZ250ZGV2X2FsbG9jX21hcChwcml2 LCBvcC5jb3VudCk7CisJbWFwID0gZ250ZGV2X2FsbG9jX21hcChwcml2LCBvcC5jb3VudCwgMCAv KiBUaGlzIGlzIG5vdCBhIGRtYS1idWYuICovKTsKIAlpZiAoIW1hcCkKIAkJcmV0dXJuIGVycjsK IApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL3hlbi9nbnRkZXYuaCBiL2luY2x1ZGUvdWFwaS94 ZW4vZ250ZGV2LmgKaW5kZXggNmQxMTYzNDU2YzAzLi40YjlkNDk4YTMxZDQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS94ZW4vZ250ZGV2LmgKKysrIGIvaW5jbHVkZS91YXBpL3hlbi9nbnRkZXYu aApAQCAtMjAwLDQgKzIwMCwxOSBAQCBzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHkgewog LyogU2VuZCBhbiBpbnRlcnJ1cHQgb24gdGhlIGluZGljYXRlZCBldmVudCBjaGFubmVsICovCiAj ZGVmaW5lIFVOTUFQX05PVElGWV9TRU5EX0VWRU5UIDB4MgogCisvKgorICogRmxhZ3MgdG8gYmUg dXNlZCB3aGlsZSByZXF1ZXN0aW5nIG1lbW9yeSBtYXBwaW5nJ3MgYmFja2luZyBzdG9yYWdlCisg KiB0byBiZSBhbGxvY2F0ZWQgd2l0aCBETUEgQVBJLgorICovCisKKy8qCisgKiBUaGUgYnVmZmVy IGlzIGJhY2tlZCB3aXRoIG1lbW9yeSBhbGxvY2F0ZWQgd2l0aCBkbWFfYWxsb2Nfd2MuCisgKi8K KyNkZWZpbmUgR05UREVWX0RNQV9GTEFHX1dDCQkoMSA8PCAwKQorCisvKgorICogVGhlIGJ1ZmZl ciBpcyBiYWNrZWQgd2l0aCBtZW1vcnkgYWxsb2NhdGVkIHdpdGggZG1hX2FsbG9jX2NvaGVyZW50 LgorICovCisjZGVmaW5lIEdOVERFVl9ETUFfRkxBR19DT0hFUkVOVAkoMSA8PCAxKQorCiAjZW5k aWYgLyogX19MSU5VWF9QVUJMSUNfR05UREVWX0hfXyAqLwotLSAKMi4xOC4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK