From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v4 4/9] xen/grant-table: Allow allocating buffers suitable for DMA Date: Fri, 15 Jun 2018 09:27:48 +0300 Message-ID: <20180615062753.9229-5-andr2000@gmail.com> References: <20180615062753.9229-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97DE66E984 for ; Fri, 15 Jun 2018 06:28:10 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id i83-v6so12994619lfh.5 for ; Thu, 14 Jun 2018 23:28:10 -0700 (PDT) In-Reply-To: <20180615062753.9229-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 YW0uY29tPgoKRXh0ZW5kIGdyYW50IHRhYmxlIG1vZHVsZSBBUEkgdG8gYWxsb3cgYWxsb2NhdGlu ZyBidWZmZXJzIHRoYXQgY2FuCmJlIHVzZWQgZm9yIERNQSBvcGVyYXRpb25zIGFuZCBtYXBwaW5n IGZvcmVpZ24gZ3JhbnQgcmVmZXJlbmNlcwpvbiB0b3Agb2YgdGhvc2UuClRoZSByZXN1bHRpbmcg YnVmZmVyIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSBhbGxvY2F0ZWQgYnkgdGhlIGJhbGxvb24KZHJp dmVyIGluIHRoYXQgcHJvcGVyIG1lbW9yeSByZXNlcnZhdGlvbiBpcyBtYWRlIGJ5Cih7aW5jcmVh c2V8ZGVjcmVhc2V9X3Jlc2VydmF0aW9uIGFuZCBWQSBtYXBwaW5ncyBhcmUgdXBkYXRlZCBpZgpu ZWVkZWQpLgpUaGlzIGlzIHVzZWZ1bCBmb3Igc2hhcmluZyBmb3JlaWduIGJ1ZmZlcnMgd2l0aCBI VyBkcml2ZXJzIHdoaWNoCmNhbm5vdCB3b3JrIHdpdGggc2NhdHRlcmVkIGJ1ZmZlcnMgcHJvdmlk ZWQgYnkgdGhlIGJhbGxvb24gZHJpdmVyLApidXQgcmVxdWlyZSBETUFhYmxlIG1lbW9yeSBpbnN0 ZWFkLgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9h bmRydXNoY2hlbmtvQGVwYW0uY29tPgpSZXZpZXdlZC1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jp cy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCiBkcml2ZXJzL3hlbi9LY29uZmlnICAgICAgIHwg MTQgKysrKysrCiBkcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jIHwgOTcgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oIHwgMTgg KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3hlbi9LY29uZmlnIGIvZHJpdmVycy94ZW4vS2NvbmZpZwppbmRleCBlNWQwYzI4 MzcyZWEuLjc1ZTVjNDBmODBhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vS2NvbmZpZworKysg Yi9kcml2ZXJzL3hlbi9LY29uZmlnCkBAIC0xNjEsNiArMTYxLDIwIEBAIGNvbmZpZyBYRU5fR1JB TlRfREVWX0FMTE9DCiAJICB0byBvdGhlciBkb21haW5zLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGlt cGxlbWVudCBmcm9udGVuZCBkcml2ZXJzCiAJICBvciBhcyBwYXJ0IG9mIGFuIGludGVyLWRvbWFp biBzaGFyZWQgbWVtb3J5IGNoYW5uZWwuCiAKK2NvbmZpZyBYRU5fR1JBTlRfRE1BX0FMTE9DCisJ Ym9vbCAiQWxsb3cgYWxsb2NhdGluZyBETUEgY2FwYWJsZSBidWZmZXJzIHdpdGggZ3JhbnQgcmVm ZXJlbmNlIG1vZHVsZSIKKwlkZXBlbmRzIG9uIFhFTiAmJiBIQVNfRE1BCisJaGVscAorCSAgRXh0 ZW5kcyBncmFudCB0YWJsZSBtb2R1bGUgQVBJIHRvIGFsbG93IGFsbG9jYXRpbmcgRE1BIGNhcGFi bGUKKwkgIGJ1ZmZlcnMgYW5kIG1hcHBpbmcgZm9yZWlnbiBncmFudCByZWZlcmVuY2VzIG9uIHRv cCBvZiBpdC4KKwkgIFRoZSByZXN1bHRpbmcgYnVmZmVyIGlzIHNpbWlsYXIgdG8gb25lIGFsbG9j YXRlZCBieSB0aGUgYmFsbG9vbgorCSAgZHJpdmVyIGluIHRoYXQgcHJvcGVyIG1lbW9yeSByZXNl cnZhdGlvbiBpcyBtYWRlIGJ5CisJICAoe2luY3JlYXNlfGRlY3JlYXNlfV9yZXNlcnZhdGlvbiBh bmQgVkEgbWFwcGluZ3MgYXJlIHVwZGF0ZWQgaWYKKwkgIG5lZWRlZCkuCisJICBUaGlzIGlzIHVz ZWZ1bCBmb3Igc2hhcmluZyBmb3JlaWduIGJ1ZmZlcnMgd2l0aCBIVyBkcml2ZXJzIHdoaWNoCisJ ICBjYW5ub3Qgd29yayB3aXRoIHNjYXR0ZXJlZCBidWZmZXJzIHByb3ZpZGVkIGJ5IHRoZSBiYWxs b29uIGRyaXZlciwKKwkgIGJ1dCByZXF1aXJlIERNQWFibGUgbWVtb3J5IGluc3RlYWQuCisKIGNv bmZpZyBTV0lPVExCX1hFTgogCWRlZl9ib29sIHkKIAlzZWxlY3QgU1dJT1RMQgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYyBiL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMK aW5kZXggZGJiNDhhODllOTg3Li4yNmVkNDk4YjVlNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu L2dyYW50LXRhYmxlLmMKKysrIGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYwpAQCAtNDUsNiAr NDUsOSBAQAogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Jh dGVsaW1pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaWZkZWYgQ09ORklH X1hFTl9HUkFOVF9ETUFfQUxMT0MKKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2Vu ZGlmCiAKICNpbmNsdWRlIDx4ZW4veGVuLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4u aD4KQEAgLTU3LDYgKzYwLDcgQEAKICNpZmRlZiBDT05GSUdfWDg2CiAjaW5jbHVkZSA8YXNtL3hl bi9jcHVpZC5oPgogI2VuZGlmCisjaW5jbHVkZSA8eGVuL21lbS1yZXNlcnZhdGlvbi5oPgogI2lu Y2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9pbnRlcmZhY2Uu aD4KIApAQCAtODM4LDYgKzg0Miw5OSBAQCB2b2lkIGdudHRhYl9mcmVlX3BhZ2VzKGludCBucl9w YWdlcywgc3RydWN0IHBhZ2UgKipwYWdlcykKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGdudHRhYl9m cmVlX3BhZ2VzKTsKIAorI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCisvKioKKyAq IGdudHRhYl9kbWFfYWxsb2NfcGFnZXMgLSBhbGxvYyBETUFhYmxlIHBhZ2VzIHN1aXRhYmxlIGZv ciBncmFudCBtYXBwaW5nIGludG8KKyAqIEBhcmdzOiBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9u CisgKi8KK2ludCBnbnR0YWJfZG1hX2FsbG9jX3BhZ2VzKHN0cnVjdCBnbnR0YWJfZG1hX2FsbG9j X2FyZ3MgKmFyZ3MpCit7CisJdW5zaWduZWQgbG9uZyBwZm4sIHN0YXJ0X3BmbjsKKwlzaXplX3Qg c2l6ZTsKKwlpbnQgaSwgcmV0OworCisJc2l6ZSA9IGFyZ3MtPm5yX3BhZ2VzIDw8IFBBR0VfU0hJ RlQ7CisJaWYgKGFyZ3MtPmNvaGVyZW50KQorCQlhcmdzLT52YWRkciA9IGRtYV9hbGxvY19jb2hl cmVudChhcmdzLT5kZXYsIHNpemUsCisJCQkJCQkgJmFyZ3MtPmRldl9idXNfYWRkciwKKwkJCQkJ CSBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKKwllbHNlCisJCWFyZ3MtPnZhZGRyID0gZG1h X2FsbG9jX3djKGFyZ3MtPmRldiwgc2l6ZSwKKwkJCQkJICAgJmFyZ3MtPmRldl9idXNfYWRkciwK KwkJCQkJICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTik7CisJaWYgKCFhcmdzLT52YWRkcikg eworCQlwcl9kZWJ1ZygiRmFpbGVkIHRvIGFsbG9jYXRlIERNQSBidWZmZXIgb2Ygc2l6ZSAlenVc biIsIHNpemUpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlzdGFydF9wZm4gPSBfX3BoeXNf dG9fcGZuKGFyZ3MtPmRldl9idXNfYWRkcik7CisJZm9yIChwZm4gPSBzdGFydF9wZm4sIGkgPSAw OyBwZm4gPCBzdGFydF9wZm4gKyBhcmdzLT5ucl9wYWdlczsKKwkJCXBmbisrLCBpKyspIHsKKwkJ c3RydWN0IHBhZ2UgKnBhZ2UgPSBwZm5fdG9fcGFnZShwZm4pOworCisJCWFyZ3MtPnBhZ2VzW2ld ID0gcGFnZTsKKwkJYXJncy0+ZnJhbWVzW2ldID0geGVuX3BhZ2VfdG9fZ2ZuKHBhZ2UpOworCQl4 ZW5tZW1fcmVzZXJ2YXRpb25fc2NydWJfcGFnZShwYWdlKTsKKwl9CisKKwl4ZW5tZW1fcmVzZXJ2 YXRpb25fdmFfbWFwcGluZ19yZXNldChhcmdzLT5ucl9wYWdlcywgYXJncy0+cGFnZXMpOworCisJ cmV0ID0geGVubWVtX3Jlc2VydmF0aW9uX2RlY3JlYXNlKGFyZ3MtPm5yX3BhZ2VzLCBhcmdzLT5m cmFtZXMpOworCWlmIChyZXQgIT0gYXJncy0+bnJfcGFnZXMpIHsKKwkJcHJfZGVidWcoIkZhaWxl ZCB0byBkZWNyZWFzZSByZXNlcnZhdGlvbiBmb3IgRE1BIGJ1ZmZlclxuIik7CisJCXJldCA9IC1F RkFVTFQ7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlyZXQgPSBnbnR0YWJfcGFnZXNfc2V0X3ByaXZh dGUoYXJncy0+bnJfcGFnZXMsIGFyZ3MtPnBhZ2VzKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBm YWlsOworCisJcmV0dXJuIDA7CisKK2ZhaWw6CisJZ250dGFiX2RtYV9mcmVlX3BhZ2VzKGFyZ3Mp OworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChnbnR0YWJfZG1hX2FsbG9jX3Bh Z2VzKTsKKworLyoqCisgKiBnbnR0YWJfZG1hX2ZyZWVfcGFnZXMgLSBmcmVlIERNQWFibGUgcGFn ZXMKKyAqIEBhcmdzOiBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uCisgKi8KK2ludCBnbnR0YWJf ZG1hX2ZyZWVfcGFnZXMoc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyAqYXJncykKK3sKKwlz aXplX3Qgc2l6ZTsKKwlpbnQgaSwgcmV0OworCisJZ250dGFiX3BhZ2VzX2NsZWFyX3ByaXZhdGUo YXJncy0+bnJfcGFnZXMsIGFyZ3MtPnBhZ2VzKTsKKworCWZvciAoaSA9IDA7IGkgPCBhcmdzLT5u cl9wYWdlczsgaSsrKQorCQlhcmdzLT5mcmFtZXNbaV0gPSBwYWdlX3RvX3hlbl9wZm4oYXJncy0+ cGFnZXNbaV0pOworCisJcmV0ID0geGVubWVtX3Jlc2VydmF0aW9uX2luY3JlYXNlKGFyZ3MtPm5y X3BhZ2VzLCBhcmdzLT5mcmFtZXMpOworCWlmIChyZXQgIT0gYXJncy0+bnJfcGFnZXMpIHsKKwkJ cHJfZGVidWcoIkZhaWxlZCB0byBkZWNyZWFzZSByZXNlcnZhdGlvbiBmb3IgRE1BIGJ1ZmZlclxu Iik7CisJCXJldCA9IC1FRkFVTFQ7CisJfSBlbHNlIHsKKwkJcmV0ID0gMDsKKwl9CisKKwl4ZW5t ZW1fcmVzZXJ2YXRpb25fdmFfbWFwcGluZ191cGRhdGUoYXJncy0+bnJfcGFnZXMsIGFyZ3MtPnBh Z2VzLAorCQkJCQkgICAgIGFyZ3MtPmZyYW1lcyk7CisKKwlzaXplID0gYXJncy0+bnJfcGFnZXMg PDwgUEFHRV9TSElGVDsKKwlpZiAoYXJncy0+Y29oZXJlbnQpCisJCWRtYV9mcmVlX2NvaGVyZW50 KGFyZ3MtPmRldiwgc2l6ZSwKKwkJCQkgIGFyZ3MtPnZhZGRyLCBhcmdzLT5kZXZfYnVzX2FkZHIp OworCWVsc2UKKwkJZG1hX2ZyZWVfd2MoYXJncy0+ZGV2LCBzaXplLAorCQkJICAgIGFyZ3MtPnZh ZGRyLCBhcmdzLT5kZXZfYnVzX2FkZHIpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9M X0dQTChnbnR0YWJfZG1hX2ZyZWVfcGFnZXMpOworI2VuZGlmCisKIC8qIEhhbmRsaW5nIG9mIHBh Z2VkIG91dCBncmFudCB0YXJnZXRzIChHTlRTVF9lYWdhaW4pICovCiAjZGVmaW5lIE1BWF9ERUxB WSAyNTYKIHN0YXRpYyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRf dGFibGUuaCBiL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKaW5kZXggZGUwM2YyNTQyYmI3Li45 YmM1YmMwN2Q0ZDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKKysrIGIv aW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaApAQCAtMTk4LDYgKzE5OCwyNCBAQCB2b2lkIGdudHRh Yl9mcmVlX2F1dG9feGxhdF9mcmFtZXModm9pZCk7CiBpbnQgZ250dGFiX2FsbG9jX3BhZ2VzKGlu dCBucl9wYWdlcywgc3RydWN0IHBhZ2UgKipwYWdlcyk7CiB2b2lkIGdudHRhYl9mcmVlX3BhZ2Vz KGludCBucl9wYWdlcywgc3RydWN0IHBhZ2UgKipwYWdlcyk7CiAKKyNpZmRlZiBDT05GSUdfWEVO X0dSQU5UX0RNQV9BTExPQworc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyB7CisJLyogRGV2 aWNlIGZvciB3aGljaCBETUEgbWVtb3J5IHdpbGwgYmUvd2FzIGFsbG9jYXRlZC4gKi8KKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7CisJLyogSWYgc2V0IHRoZW4gRE1BIGJ1ZmZlciBpcyBjb2hlcmVudCBh bmQgd3JpdGUtY29tYmluZSBvdGhlcndpc2UuICovCisJYm9vbCBjb2hlcmVudDsKKworCWludCBu cl9wYWdlczsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOworCXhlbl9wZm5fdCAqZnJhbWVzOworCXZv aWQgKnZhZGRyOworCWRtYV9hZGRyX3QgZGV2X2J1c19hZGRyOworfTsKKworaW50IGdudHRhYl9k bWFfYWxsb2NfcGFnZXMoc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyAqYXJncyk7CitpbnQg Z250dGFiX2RtYV9mcmVlX3BhZ2VzKHN0cnVjdCBnbnR0YWJfZG1hX2FsbG9jX2FyZ3MgKmFyZ3Mp OworI2VuZGlmCisKIGludCBnbnR0YWJfcGFnZXNfc2V0X3ByaXZhdGUoaW50IG5yX3BhZ2VzLCBz dHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIHZvaWQgZ250dGFiX3BhZ2VzX2NsZWFyX3ByaXZhdGUoaW50 IG5yX3BhZ2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIAotLSAKMi4xNy4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK