From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v3 4/9] xen/grant-table: Allow allocating buffers suitable for DMA Date: Tue, 12 Jun 2018 16:41:55 +0300 Message-ID: <20180612134200.17456-5-andr2000__23139.4608425491$1528810872$gmane$org@gmail.com> References: <20180612134200.17456-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 1fSjYw-0007gX-N0 for xen-devel@lists.xenproject.org; Tue, 12 Jun 2018 13:42:18 +0000 Received: by mail-lf0-x241.google.com with SMTP id n15-v6so36077552lfn.10 for ; Tue, 12 Jun 2018 06:42:16 -0700 (PDT) In-Reply-To: <20180612134200.17456-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 YW0uY29tPgoKRXh0ZW5kIGdyYW50IHRhYmxlIG1vZHVsZSBBUEkgdG8gYWxsb3cgYWxsb2NhdGlu ZyBidWZmZXJzIHRoYXQgY2FuCmJlIHVzZWQgZm9yIERNQSBvcGVyYXRpb25zIGFuZCBtYXBwaW5n IGZvcmVpZ24gZ3JhbnQgcmVmZXJlbmNlcwpvbiB0b3Agb2YgdGhvc2UuClRoZSByZXN1bHRpbmcg YnVmZmVyIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSBhbGxvY2F0ZWQgYnkgdGhlIGJhbGxvb24KZHJp dmVyIGluIHRlcm1zIHRoYXQgcHJvcGVyIG1lbW9yeSByZXNlcnZhdGlvbiBpcyBtYWRlCih7aW5j cmVhc2V8ZGVjcmVhc2V9X3Jlc2VydmF0aW9uIGFuZCBWQSBtYXBwaW5ncyB1cGRhdGVkIGlmIG5l ZWRlZCkuClRoaXMgaXMgdXNlZnVsIGZvciBzaGFyaW5nIGZvcmVpZ24gYnVmZmVycyB3aXRoIEhX IGRyaXZlcnMgd2hpY2gKY2Fubm90IHdvcmsgd2l0aCBzY2F0dGVyZWQgYnVmZmVycyBwcm92aWRl ZCBieSB0aGUgYmFsbG9vbiBkcml2ZXIsCmJ1dCByZXF1aXJlIERNQWFibGUgbWVtb3J5IGluc3Rl YWQuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2Fu ZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0tLQogZHJpdmVycy94ZW4vS2NvbmZpZyAgICAgICB8IDEz ICsrKysrKwogZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYyB8IDk3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCB8IDE4ICsr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy94ZW4vS2NvbmZpZyBiL2RyaXZlcnMveGVuL0tjb25maWcKaW5kZXggZTVkMGMyODM3 MmVhLi4zOTUzNmRkZmJjZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL0tjb25maWcKKysrIGIv ZHJpdmVycy94ZW4vS2NvbmZpZwpAQCAtMTYxLDYgKzE2MSwxOSBAQCBjb25maWcgWEVOX0dSQU5U X0RFVl9BTExPQwogCSAgdG8gb3RoZXIgZG9tYWlucy4gVGhpcyBjYW4gYmUgdXNlZCB0byBpbXBs ZW1lbnQgZnJvbnRlbmQgZHJpdmVycwogCSAgb3IgYXMgcGFydCBvZiBhbiBpbnRlci1kb21haW4g c2hhcmVkIG1lbW9yeSBjaGFubmVsLgogCitjb25maWcgWEVOX0dSQU5UX0RNQV9BTExPQworCWJv b2wgIkFsbG93IGFsbG9jYXRpbmcgRE1BIGNhcGFibGUgYnVmZmVycyB3aXRoIGdyYW50IHJlZmVy ZW5jZSBtb2R1bGUiCisJZGVwZW5kcyBvbiBYRU4gJiYgSEFTX0RNQQorCWhlbHAKKwkgIEV4dGVu ZHMgZ3JhbnQgdGFibGUgbW9kdWxlIEFQSSB0byBhbGxvdyBhbGxvY2F0aW5nIERNQSBjYXBhYmxl CisJICBidWZmZXJzIGFuZCBtYXBwaW5nIGZvcmVpZ24gZ3JhbnQgcmVmZXJlbmNlcyBvbiB0b3Ag b2YgaXQuCisJICBUaGUgcmVzdWx0aW5nIGJ1ZmZlciBpcyBzaW1pbGFyIHRvIG9uZSBhbGxvY2F0 ZWQgYnkgdGhlIGJhbGxvb24KKwkgIGRyaXZlciBpbiB0ZXJtcyB0aGF0IHByb3BlciBtZW1vcnkg cmVzZXJ2YXRpb24gaXMgbWFkZQorCSAgKHtpbmNyZWFzZXxkZWNyZWFzZX1fcmVzZXJ2YXRpb24g YW5kIFZBIG1hcHBpbmdzIHVwZGF0ZWQgaWYgbmVlZGVkKS4KKwkgIFRoaXMgaXMgdXNlZnVsIGZv ciBzaGFyaW5nIGZvcmVpZ24gYnVmZmVycyB3aXRoIEhXIGRyaXZlcnMgd2hpY2gKKwkgIGNhbm5v dCB3b3JrIHdpdGggc2NhdHRlcmVkIGJ1ZmZlcnMgcHJvdmlkZWQgYnkgdGhlIGJhbGxvb24gZHJp dmVyLAorCSAgYnV0IHJlcXVpcmUgRE1BYWJsZSBtZW1vcnkgaW5zdGVhZC4KKwogY29uZmlnIFNX SU9UTEJfWEVOCiAJZGVmX2Jvb2wgeQogCXNlbGVjdCBTV0lPVExCCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3hlbi9ncmFudC10YWJsZS5jIGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYwppbmRleCBk YmI0OGE4OWU5ODcuLjI2ZWQ0OThiNWU2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ3JhbnQt dGFibGUuYworKysgYi9kcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jCkBAIC00NSw2ICs0NSw5IEBA CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8bGludXgvcmF0ZWxpbWl0 Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpZmRlZiBDT05GSUdfWEVOX0dS QU5UX0RNQV9BTExPQworI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjZW5kaWYKIAog I2luY2x1ZGUgPHhlbi94ZW4uaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3hlbi5oPgpAQCAt NTcsNiArNjAsNyBAQAogI2lmZGVmIENPTkZJR19YODYKICNpbmNsdWRlIDxhc20veGVuL2NwdWlk Lmg+CiAjZW5kaWYKKyNpbmNsdWRlIDx4ZW4vbWVtLXJlc2VydmF0aW9uLmg+CiAjaW5jbHVkZSA8 YXNtL3hlbi9oeXBlcmNhbGwuaD4KICNpbmNsdWRlIDxhc20veGVuL2ludGVyZmFjZS5oPgogCkBA IC04MzgsNiArODQyLDk5IEBAIHZvaWQgZ250dGFiX2ZyZWVfcGFnZXMoaW50IG5yX3BhZ2VzLCBz dHJ1Y3QgcGFnZSAqKnBhZ2VzKQogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ250dGFiX2ZyZWVfcGFn ZXMpOwogCisjaWZkZWYgQ09ORklHX1hFTl9HUkFOVF9ETUFfQUxMT0MKKy8qKgorICogZ250dGFi X2RtYV9hbGxvY19wYWdlcyAtIGFsbG9jIERNQWFibGUgcGFnZXMgc3VpdGFibGUgZm9yIGdyYW50 IG1hcHBpbmcgaW50bworICogQGFyZ3M6IGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24KKyAqLwor aW50IGdudHRhYl9kbWFfYWxsb2NfcGFnZXMoc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyAq YXJncykKK3sKKwl1bnNpZ25lZCBsb25nIHBmbiwgc3RhcnRfcGZuOworCXNpemVfdCBzaXplOwor CWludCBpLCByZXQ7CisKKwlzaXplID0gYXJncy0+bnJfcGFnZXMgPDwgUEFHRV9TSElGVDsKKwlp ZiAoYXJncy0+Y29oZXJlbnQpCisJCWFyZ3MtPnZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KGFy Z3MtPmRldiwgc2l6ZSwKKwkJCQkJCSAmYXJncy0+ZGV2X2J1c19hZGRyLAorCQkJCQkJIEdGUF9L RVJORUwgfCBfX0dGUF9OT1dBUk4pOworCWVsc2UKKwkJYXJncy0+dmFkZHIgPSBkbWFfYWxsb2Nf d2MoYXJncy0+ZGV2LCBzaXplLAorCQkJCQkgICAmYXJncy0+ZGV2X2J1c19hZGRyLAorCQkJCQkg ICBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKKwlpZiAoIWFyZ3MtPnZhZGRyKSB7CisJCXBy X2RlYnVnKCJGYWlsZWQgdG8gYWxsb2NhdGUgRE1BIGJ1ZmZlciBvZiBzaXplICV6dVxuIiwgc2l6 ZSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXN0YXJ0X3BmbiA9IF9fcGh5c190b19wZm4o YXJncy0+ZGV2X2J1c19hZGRyKTsKKwlmb3IgKHBmbiA9IHN0YXJ0X3BmbiwgaSA9IDA7IHBmbiA8 IHN0YXJ0X3BmbiArIGFyZ3MtPm5yX3BhZ2VzOworCQkJcGZuKyssIGkrKykgeworCQlzdHJ1Y3Qg cGFnZSAqcGFnZSA9IHBmbl90b19wYWdlKHBmbik7CisKKwkJYXJncy0+cGFnZXNbaV0gPSBwYWdl OworCQlhcmdzLT5mcmFtZXNbaV0gPSB4ZW5fcGFnZV90b19nZm4ocGFnZSk7CisJCXhlbm1lbV9y ZXNlcnZhdGlvbl9zY3J1Yl9wYWdlKHBhZ2UpOworCX0KKworCXhlbm1lbV9yZXNlcnZhdGlvbl92 YV9tYXBwaW5nX3Jlc2V0KGFyZ3MtPm5yX3BhZ2VzLCBhcmdzLT5wYWdlcyk7CisKKwlyZXQgPSB4 ZW5tZW1fcmVzZXJ2YXRpb25fZGVjcmVhc2UoYXJncy0+bnJfcGFnZXMsIGFyZ3MtPmZyYW1lcyk7 CisJaWYgKHJldCAhPSBhcmdzLT5ucl9wYWdlcykgeworCQlwcl9kZWJ1ZygiRmFpbGVkIHRvIGRl Y3JlYXNlIHJlc2VydmF0aW9uIGZvciBETUEgYnVmZmVyXG4iKTsKKwkJcmV0ID0gLUVGQVVMVDsK KwkJZ290byBmYWlsOworCX0KKworCXJldCA9IGdudHRhYl9wYWdlc19zZXRfcHJpdmF0ZShhcmdz LT5ucl9wYWdlcywgYXJncy0+cGFnZXMpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWw7CisK KwlyZXR1cm4gMDsKKworZmFpbDoKKwlnbnR0YWJfZG1hX2ZyZWVfcGFnZXMoYXJncyk7CisJcmV0 dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdudHRhYl9kbWFfYWxsb2NfcGFnZXMpOwor CisvKioKKyAqIGdudHRhYl9kbWFfZnJlZV9wYWdlcyAtIGZyZWUgRE1BYWJsZSBwYWdlcworICog QGFyZ3M6IGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24KKyAqLworaW50IGdudHRhYl9kbWFfZnJl ZV9wYWdlcyhzdHJ1Y3QgZ250dGFiX2RtYV9hbGxvY19hcmdzICphcmdzKQoreworCXNpemVfdCBz aXplOworCWludCBpLCByZXQ7CisKKwlnbnR0YWJfcGFnZXNfY2xlYXJfcHJpdmF0ZShhcmdzLT5u cl9wYWdlcywgYXJncy0+cGFnZXMpOworCisJZm9yIChpID0gMDsgaSA8IGFyZ3MtPm5yX3BhZ2Vz OyBpKyspCisJCWFyZ3MtPmZyYW1lc1tpXSA9IHBhZ2VfdG9feGVuX3BmbihhcmdzLT5wYWdlc1tp XSk7CisKKwlyZXQgPSB4ZW5tZW1fcmVzZXJ2YXRpb25faW5jcmVhc2UoYXJncy0+bnJfcGFnZXMs IGFyZ3MtPmZyYW1lcyk7CisJaWYgKHJldCAhPSBhcmdzLT5ucl9wYWdlcykgeworCQlwcl9kZWJ1 ZygiRmFpbGVkIHRvIGRlY3JlYXNlIHJlc2VydmF0aW9uIGZvciBETUEgYnVmZmVyXG4iKTsKKwkJ cmV0ID0gLUVGQVVMVDsKKwl9IGVsc2UgeworCQlyZXQgPSAwOworCX0KKworCXhlbm1lbV9yZXNl cnZhdGlvbl92YV9tYXBwaW5nX3VwZGF0ZShhcmdzLT5ucl9wYWdlcywgYXJncy0+cGFnZXMsCisJ CQkJCSAgICAgYXJncy0+ZnJhbWVzKTsKKworCXNpemUgPSBhcmdzLT5ucl9wYWdlcyA8PCBQQUdF X1NISUZUOworCWlmIChhcmdzLT5jb2hlcmVudCkKKwkJZG1hX2ZyZWVfY29oZXJlbnQoYXJncy0+ ZGV2LCBzaXplLAorCQkJCSAgYXJncy0+dmFkZHIsIGFyZ3MtPmRldl9idXNfYWRkcik7CisJZWxz ZQorCQlkbWFfZnJlZV93YyhhcmdzLT5kZXYsIHNpemUsCisJCQkgICAgYXJncy0+dmFkZHIsIGFy Z3MtPmRldl9idXNfYWRkcik7CisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdu dHRhYl9kbWFfZnJlZV9wYWdlcyk7CisjZW5kaWYKKwogLyogSGFuZGxpbmcgb2YgcGFnZWQgb3V0 IGdyYW50IHRhcmdldHMgKEdOVFNUX2VhZ2FpbikgKi8KICNkZWZpbmUgTUFYX0RFTEFZIDI1Ngog c3RhdGljIGlubGluZSB2b2lkCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5o IGIvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaAppbmRleCBkZTAzZjI1NDJiYjcuLjliYzViYzA3 ZDRkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaAorKysgYi9pbmNsdWRl L3hlbi9ncmFudF90YWJsZS5oCkBAIC0xOTgsNiArMTk4LDI0IEBAIHZvaWQgZ250dGFiX2ZyZWVf YXV0b194bGF0X2ZyYW1lcyh2b2lkKTsKIGludCBnbnR0YWJfYWxsb2NfcGFnZXMoaW50IG5yX3Bh Z2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIHZvaWQgZ250dGFiX2ZyZWVfcGFnZXMoaW50IG5y X3BhZ2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIAorI2lmZGVmIENPTkZJR19YRU5fR1JBTlRf RE1BX0FMTE9DCitzdHJ1Y3QgZ250dGFiX2RtYV9hbGxvY19hcmdzIHsKKwkvKiBEZXZpY2UgZm9y IHdoaWNoIERNQSBtZW1vcnkgd2lsbCBiZS93YXMgYWxsb2NhdGVkLiAqLworCXN0cnVjdCBkZXZp Y2UgKmRldjsKKwkvKiBJZiBzZXQgdGhlbiBETUEgYnVmZmVyIGlzIGNvaGVyZW50IGFuZCB3cml0 ZS1jb21iaW5lIG90aGVyd2lzZS4gKi8KKwlib29sIGNvaGVyZW50OworCisJaW50IG5yX3BhZ2Vz OworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJeGVuX3Bmbl90ICpmcmFtZXM7CisJdm9pZCAqdmFk ZHI7CisJZG1hX2FkZHJfdCBkZXZfYnVzX2FkZHI7Cit9OworCitpbnQgZ250dGFiX2RtYV9hbGxv Y19wYWdlcyhzdHJ1Y3QgZ250dGFiX2RtYV9hbGxvY19hcmdzICphcmdzKTsKK2ludCBnbnR0YWJf ZG1hX2ZyZWVfcGFnZXMoc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyAqYXJncyk7CisjZW5k aWYKKwogaW50IGdudHRhYl9wYWdlc19zZXRfcHJpdmF0ZShpbnQgbnJfcGFnZXMsIHN0cnVjdCBw YWdlICoqcGFnZXMpOwogdm9pZCBnbnR0YWJfcGFnZXNfY2xlYXJfcHJpdmF0ZShpbnQgbnJfcGFn ZXMsIHN0cnVjdCBwYWdlICoqcGFnZXMpOwogCi0tIAoyLjE3LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs