From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH 3/8] xen/grant-table: Allow allocating buffers suitable for DMA Date: Fri, 25 May 2018 18:33:26 +0300 Message-ID: <20180525153331.31188-4-andr2000__22958.3913730041$1527262356$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 1fMEj0-0008L4-W9 for xen-devel@lists.xenproject.org; Fri, 25 May 2018 15:33:51 +0000 Received: by mail-wr0-x242.google.com with SMTP id a15-v6so9958849wrm.0 for ; Fri, 25 May 2018 08:33:49 -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 YW0uY29tPgoKRXh0ZW5kIGdyYW50IHRhYmxlIG1vZHVsZSBBUEkgdG8gYWxsb3cgYWxsb2NhdGlu ZyBidWZmZXJzIHRoYXQgY2FuCmJlIHVzZWQgZm9yIERNQSBvcGVyYXRpb25zIGFuZCBtYXBwaW5n IGZvcmVpZ24gZ3JhbnQgcmVmZXJlbmNlcwpvbiB0b3Agb2YgdGhvc2UuClRoZSByZXN1bHRpbmcg YnVmZmVyIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSBhbGxvY2F0ZWQgYnkgdGhlIGJhbGxvb24KZHJp dmVyIGluIHRlcm1zIHRoYXQgcHJvcGVyIG1lbW9yeSByZXNlcnZhdGlvbiBpcyBtYWRlCih7aW5j cmVhc2V8ZGVjcmVhc2V9X3Jlc2VydmF0aW9uIGFuZCBWQSBtYXBwaW5ncyB1cGRhdGVkIGlmIG5l ZWRlZCkuClRoaXMgaXMgdXNlZnVsIGZvciBzaGFyaW5nIGZvcmVpZ24gYnVmZmVycyB3aXRoIEhX IGRyaXZlcnMgd2hpY2gKY2Fubm90IHdvcmsgd2l0aCBzY2F0dGVyZWQgYnVmZmVycyBwcm92aWRl ZCBieSB0aGUgYmFsbG9vbiBkcml2ZXIsCmJ1dCByZXF1aXJlIERNQWFibGUgbWVtb3J5IGluc3Rl YWQuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2Fu ZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0tLQogZHJpdmVycy94ZW4vS2NvbmZpZyAgICAgICB8ICAx MyArKysrCiBkcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jIHwgMTI0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oIHwgIDI1ICsr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy94ZW4vS2NvbmZpZyBiL2RyaXZlcnMveGVuL0tjb25maWcKaW5kZXggZTVkMGMyODM3 MmVhLi4zNDMxZmUyMTA2MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL0tjb25maWcKKysrIGIv ZHJpdmVycy94ZW4vS2NvbmZpZwpAQCAtMTYxLDYgKzE2MSwxOSBAQCBjb25maWcgWEVOX0dSQU5U X0RFVl9BTExPQwogCSAgdG8gb3RoZXIgZG9tYWlucy4gVGhpcyBjYW4gYmUgdXNlZCB0byBpbXBs ZW1lbnQgZnJvbnRlbmQgZHJpdmVycwogCSAgb3IgYXMgcGFydCBvZiBhbiBpbnRlci1kb21haW4g c2hhcmVkIG1lbW9yeSBjaGFubmVsLgogCitjb25maWcgWEVOX0dSQU5UX0RNQV9BTExPQworCWJv b2wgIkFsbG93IGFsbG9jYXRpbmcgRE1BIGNhcGFibGUgYnVmZmVycyB3aXRoIGdyYW50IHJlZmVy ZW5jZSBtb2R1bGUiCisJZGVwZW5kcyBvbiBYRU4KKwloZWxwCisJICBFeHRlbmRzIGdyYW50IHRh YmxlIG1vZHVsZSBBUEkgdG8gYWxsb3cgYWxsb2NhdGluZyBETUEgY2FwYWJsZQorCSAgYnVmZmVy cyBhbmQgbWFwcGluZyBmb3JlaWduIGdyYW50IHJlZmVyZW5jZXMgb24gdG9wIG9mIGl0LgorCSAg VGhlIHJlc3VsdGluZyBidWZmZXIgaXMgc2ltaWxhciB0byBvbmUgYWxsb2NhdGVkIGJ5IHRoZSBi YWxsb29uCisJICBkcml2ZXIgaW4gdGVybXMgdGhhdCBwcm9wZXIgbWVtb3J5IHJlc2VydmF0aW9u IGlzIG1hZGUKKwkgICh7aW5jcmVhc2V8ZGVjcmVhc2V9X3Jlc2VydmF0aW9uIGFuZCBWQSBtYXBw aW5ncyB1cGRhdGVkIGlmIG5lZWRlZCkuCisJICBUaGlzIGlzIHVzZWZ1bCBmb3Igc2hhcmluZyBm b3JlaWduIGJ1ZmZlcnMgd2l0aCBIVyBkcml2ZXJzIHdoaWNoCisJICBjYW5ub3Qgd29yayB3aXRo IHNjYXR0ZXJlZCBidWZmZXJzIHByb3ZpZGVkIGJ5IHRoZSBiYWxsb29uIGRyaXZlciwKKwkgIGJ1 dCByZXF1aXJlIERNQWFibGUgbWVtb3J5IGluc3RlYWQuCisKIGNvbmZpZyBTV0lPVExCX1hFTgog CWRlZl9ib29sIHkKIAlzZWxlY3QgU1dJT1RMQgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ3Jh bnQtdGFibGUuYyBiL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMKaW5kZXggZDc0ODgyMjZlMWYy Li4wNmZlNmU3ZjYzOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMKKysr IGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYwpAQCAtNDUsNiArNDUsOSBAQAogI2luY2x1ZGUg PGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgogI2luY2x1 ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaWZkZWYgQ09ORklHX1hFTl9HUkFOVF9ETUFfQUxM T0MKKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2VuZGlmCiAKICNpbmNsdWRlIDx4 ZW4veGVuLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KQEAgLTU3LDYgKzYwLDcg QEAKICNpZmRlZiBDT05GSUdfWDg2CiAjaW5jbHVkZSA8YXNtL3hlbi9jcHVpZC5oPgogI2VuZGlm CisjaW5jbHVkZSA8eGVuL21lbV9yZXNlcnZhdGlvbi5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlw ZXJjYWxsLmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9pbnRlcmZhY2UuaD4KIApAQCAtODExLDYgKzgx NSw4MiBAQCBpbnQgZ250dGFiX2FsbG9jX3BhZ2VzKGludCBucl9wYWdlcywgc3RydWN0IHBhZ2Ug KipwYWdlcykKIH0KIEVYUE9SVF9TWU1CT0woZ250dGFiX2FsbG9jX3BhZ2VzKTsKIAorI2lmZGVm IENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCisvKioKKyAqIGdudHRhYl9kbWFfYWxsb2NfcGFn ZXMgLSBhbGxvYyBETUFhYmxlIHBhZ2VzIHN1aXRhYmxlIGZvciBncmFudCBtYXBwaW5nIGludG8K KyAqIEBhcmdzOiBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uCisgKi8KK2ludCBnbnR0YWJfZG1h X2FsbG9jX3BhZ2VzKHN0cnVjdCBnbnR0YWJfZG1hX2FsbG9jX2FyZ3MgKmFyZ3MpCit7CisJdW5z aWduZWQgbG9uZyBwZm4sIHN0YXJ0X3BmbjsKKwl4ZW5fcGZuX3QgKmZyYW1lczsKKwlzaXplX3Qg c2l6ZTsKKwlpbnQgaSwgcmV0OworCisJZnJhbWVzID0ga2NhbGxvYyhhcmdzLT5ucl9wYWdlcywg c2l6ZW9mKCpmcmFtZXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWZyYW1lcykKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlzaXplID0gYXJncy0+bnJfcGFnZXMgPDwgUEFHRV9TSElGVDsKKwlpZiAoYXJn cy0+Y29oZXJlbnQpCisJCWFyZ3MtPnZhZGRyID0gZG1hX2FsbG9jX2NvaGVyZW50KGFyZ3MtPmRl diwgc2l6ZSwKKwkJCQkJCSAmYXJncy0+ZGV2X2J1c19hZGRyLAorCQkJCQkJIEdGUF9LRVJORUwg fCBfX0dGUF9OT1dBUk4pOworCWVsc2UKKwkJYXJncy0+dmFkZHIgPSBkbWFfYWxsb2Nfd2MoYXJn cy0+ZGV2LCBzaXplLAorCQkJCQkgICAmYXJncy0+ZGV2X2J1c19hZGRyLAorCQkJCQkgICBHRlBf S0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKKwlpZiAoIWFyZ3MtPnZhZGRyKSB7CisJCXByX2Vycigi RmFpbGVkIHRvIGFsbG9jYXRlIERNQSBidWZmZXIgb2Ygc2l6ZSAlenVcbiIsIHNpemUpOworCQly ZXQgPSAtRU5PTUVNOworCQlnb3RvIGZhaWxfZnJlZV9mcmFtZXM7CisJfQorCisJc3RhcnRfcGZu ID0gX19waHlzX3RvX3BmbihhcmdzLT5kZXZfYnVzX2FkZHIpOworCWZvciAocGZuID0gc3RhcnRf cGZuLCBpID0gMDsgcGZuIDwgc3RhcnRfcGZuICsgYXJncy0+bnJfcGFnZXM7CisJCQlwZm4rKywg aSsrKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlID0gcGZuX3RvX3BhZ2UocGZuKTsKKworCQlhcmdz LT5wYWdlc1tpXSA9IHBhZ2U7CisJCWZyYW1lc1tpXSA9IHhlbl9wYWdlX3RvX2dmbihwYWdlKTsK KwkJeGVubWVtX3Jlc2VydmF0aW9uX3NjcnViX3BhZ2UocGFnZSk7CisJfQorCisJeGVubWVtX3Jl c2VydmF0aW9uX3ZhX21hcHBpbmdfcmVzZXQoYXJncy0+bnJfcGFnZXMsIGFyZ3MtPnBhZ2VzKTsK KworCXJldCA9IHhlbm1lbV9yZXNlcnZhdGlvbl9kZWNyZWFzZShhcmdzLT5ucl9wYWdlcywgZnJh bWVzKTsKKwlpZiAocmV0ICE9IGFyZ3MtPm5yX3BhZ2VzKSB7CisJCXByX2VycigiRmFpbGVkIHRv IGRlY3JlYXNlIHJlc2VydmF0aW9uIGZvciBETUEgYnVmZmVyXG4iKTsKKwkJeGVubWVtX3Jlc2Vy dmF0aW9uX2luY3JlYXNlKHJldCwgZnJhbWVzKTsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBm YWlsX2ZyZWVfZG1hOworCX0KKworCXJldCA9IGdudHRhYl9wYWdlc19zZXRfcHJpdmF0ZShhcmdz LT5ucl9wYWdlcywgYXJncy0+cGFnZXMpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWxfY2xl YXJfcHJpdmF0ZTsKKworCWtmcmVlKGZyYW1lcyk7CisJcmV0dXJuIDA7CisKK2ZhaWxfY2xlYXJf cHJpdmF0ZToKKwlnbnR0YWJfcGFnZXNfY2xlYXJfcHJpdmF0ZShhcmdzLT5ucl9wYWdlcywgYXJn cy0+cGFnZXMpOworZmFpbF9mcmVlX2RtYToKKwl4ZW5tZW1fcmVzZXJ2YXRpb25fdmFfbWFwcGlu Z191cGRhdGUoYXJncy0+bnJfcGFnZXMsIGFyZ3MtPnBhZ2VzLAorCQkJCQkgICAgIGZyYW1lcyk7 CisJaWYgKGFyZ3MtPmNvaGVyZW50KQorCQlkbWFfZnJlZV9jb2hlcmVudChhcmdzLT5kZXYsIHNp emUsCisJCQkJICBhcmdzLT52YWRkciwgYXJncy0+ZGV2X2J1c19hZGRyKTsKKwllbHNlCisJCWRt YV9mcmVlX3djKGFyZ3MtPmRldiwgc2l6ZSwKKwkJCSAgICBhcmdzLT52YWRkciwgYXJncy0+ZGV2 X2J1c19hZGRyKTsKK2ZhaWxfZnJlZV9mcmFtZXM6CisJa2ZyZWUoZnJhbWVzKTsKKwlyZXR1cm4g cmV0OworfQorRVhQT1JUX1NZTUJPTChnbnR0YWJfZG1hX2FsbG9jX3BhZ2VzKTsKKyNlbmRpZgor CiB2b2lkIGdudHRhYl9wYWdlc19jbGVhcl9wcml2YXRlKGludCBucl9wYWdlcywgc3RydWN0IHBh Z2UgKipwYWdlcykKIHsKIAlpbnQgaTsKQEAgLTgzOCw2ICs5MTgsNTAgQEAgdm9pZCBnbnR0YWJf ZnJlZV9wYWdlcyhpbnQgbnJfcGFnZXMsIHN0cnVjdCBwYWdlICoqcGFnZXMpCiB9CiBFWFBPUlRf U1lNQk9MKGdudHRhYl9mcmVlX3BhZ2VzKTsKIAorI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1B X0FMTE9DCisvKioKKyAqIGdudHRhYl9kbWFfZnJlZV9wYWdlcyAtIGZyZWUgRE1BYWJsZSBwYWdl cworICogQGFyZ3M6IGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24KKyAqLworaW50IGdudHRhYl9k bWFfZnJlZV9wYWdlcyhzdHJ1Y3QgZ250dGFiX2RtYV9hbGxvY19hcmdzICphcmdzKQoreworCXhl bl9wZm5fdCAqZnJhbWVzOworCXNpemVfdCBzaXplOworCWludCBpLCByZXQ7CisKKwlnbnR0YWJf cGFnZXNfY2xlYXJfcHJpdmF0ZShhcmdzLT5ucl9wYWdlcywgYXJncy0+cGFnZXMpOworCisJZnJh bWVzID0ga2NhbGxvYyhhcmdzLT5ucl9wYWdlcywgc2l6ZW9mKCpmcmFtZXMpLCBHRlBfS0VSTkVM KTsKKwlpZiAoIWZyYW1lcykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmb3IgKGkgPSAwOyBpIDwg YXJncy0+bnJfcGFnZXM7IGkrKykKKwkJZnJhbWVzW2ldID0gcGFnZV90b194ZW5fcGZuKGFyZ3Mt PnBhZ2VzW2ldKTsKKworCXJldCA9IHhlbm1lbV9yZXNlcnZhdGlvbl9pbmNyZWFzZShhcmdzLT5u cl9wYWdlcywgZnJhbWVzKTsKKwlpZiAocmV0ICE9IGFyZ3MtPm5yX3BhZ2VzKSB7CisJCXByX2Vy cigiRmFpbGVkIHRvIGRlY3JlYXNlIHJlc2VydmF0aW9uIGZvciBETUEgYnVmZmVyXG4iKTsKKwkJ cmV0ID0gLUVGQVVMVDsKKwl9IGVsc2UgeworCQlyZXQgPSAwOworCX0KKworCXhlbm1lbV9yZXNl cnZhdGlvbl92YV9tYXBwaW5nX3VwZGF0ZShhcmdzLT5ucl9wYWdlcywgYXJncy0+cGFnZXMsCisJ CQkJCSAgICAgZnJhbWVzKTsKKworCXNpemUgPSBhcmdzLT5ucl9wYWdlcyA8PCBQQUdFX1NISUZU OworCWlmIChhcmdzLT5jb2hlcmVudCkKKwkJZG1hX2ZyZWVfY29oZXJlbnQoYXJncy0+ZGV2LCBz aXplLAorCQkJCSAgYXJncy0+dmFkZHIsIGFyZ3MtPmRldl9idXNfYWRkcik7CisJZWxzZQorCQlk bWFfZnJlZV93YyhhcmdzLT5kZXYsIHNpemUsCisJCQkgICAgYXJncy0+dmFkZHIsIGFyZ3MtPmRl dl9idXNfYWRkcik7CisJa2ZyZWUoZnJhbWVzKTsKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZ TUJPTChnbnR0YWJfZG1hX2ZyZWVfcGFnZXMpOworI2VuZGlmCisKIC8qIEhhbmRsaW5nIG9mIHBh Z2VkIG91dCBncmFudCB0YXJnZXRzIChHTlRTVF9lYWdhaW4pICovCiAjZGVmaW5lIE1BWF9ERUxB WSAyNTYKIHN0YXRpYyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRf dGFibGUuaCBiL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKaW5kZXggZGUwM2YyNTQyYmI3Li45 ODJlMzQyNDJiOWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKKysrIGIv aW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaApAQCAtMTk4LDYgKzE5OCwzMSBAQCB2b2lkIGdudHRh Yl9mcmVlX2F1dG9feGxhdF9mcmFtZXModm9pZCk7CiBpbnQgZ250dGFiX2FsbG9jX3BhZ2VzKGlu dCBucl9wYWdlcywgc3RydWN0IHBhZ2UgKipwYWdlcyk7CiB2b2lkIGdudHRhYl9mcmVlX3BhZ2Vz KGludCBucl9wYWdlcywgc3RydWN0IHBhZ2UgKipwYWdlcyk7CiAKKyNpZmRlZiBDT05GSUdfWEVO X0dSQU5UX0RNQV9BTExPQworc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyB7CisJLyogRGV2 aWNlIGZvciB3aGljaCBETUEgbWVtb3J5IHdpbGwgYmUvd2FzIGFsbG9jYXRlZC4gKi8KKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7CisJLyoKKwkgKiBJZiBzZXQgdGhlbiBETUEgYnVmZmVyIGlzIGNvaGVy ZW50IGFuZCB3cml0ZS1jb21iaW5lIG90aGVyd2lzZS4KKwkgKi8KKwlib29sIGNvaGVyZW50Owor CS8qCisJICogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEBwYWdlcyBhcnJheSwgZGVmaW5lcyB0 aGUgc2l6ZQorCSAqIG9mIHRoZSBETUEgYnVmZmVyLgorCSAqLworCWludCBucl9wYWdlczsKKwkv KiBBcnJheSBvZiBwYWdlcyBAcGFnZXMgZmlsbGVkIHdpdGggcGFnZXMgb2YgdGhlIERNQSBidWZm ZXIuICovCisJc3RydWN0IHBhZ2UgKipwYWdlczsKKwkvKiBWaXJ0dWFsL0NQVSBhZGRyZXNzIG9m IHRoZSBETUEgYnVmZmVyLiAqLworCXZvaWQgKnZhZGRyOworCS8qIEJ1cyBhZGRyZXNzIG9mIHRo ZSBETUEgYnVmZmVyLiAqLworCWRtYV9hZGRyX3QgZGV2X2J1c19hZGRyOworfTsKKworaW50IGdu dHRhYl9kbWFfYWxsb2NfcGFnZXMoc3RydWN0IGdudHRhYl9kbWFfYWxsb2NfYXJncyAqYXJncyk7 CitpbnQgZ250dGFiX2RtYV9mcmVlX3BhZ2VzKHN0cnVjdCBnbnR0YWJfZG1hX2FsbG9jX2FyZ3Mg KmFyZ3MpOworI2VuZGlmCisKIGludCBnbnR0YWJfcGFnZXNfc2V0X3ByaXZhdGUoaW50IG5yX3Bh Z2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIHZvaWQgZ250dGFiX3BhZ2VzX2NsZWFyX3ByaXZh dGUoaW50IG5yX3BhZ2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIAotLSAKMi4xNy4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==