From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Gaignard Subject: [PATCH v6 2/3] SMAF: add CMA allocator Date: Thu, 18 Feb 2016 16:05:16 +0100 Message-ID: <1455807917-19901-3-git-send-email-benjamin.gaignard@linaro.org> References: <1455807917-19901-1-git-send-email-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x229.google.com (mail-wm0-x229.google.com [IPv6:2a00:1450:400c:c09::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id 278746EC29 for ; Thu, 18 Feb 2016 15:06:32 +0000 (UTC) Received: by mail-wm0-x229.google.com with SMTP id a4so29642994wme.1 for ; Thu, 18 Feb 2016 07:06:32 -0800 (PST) In-Reply-To: <1455807917-19901-1-git-send-email-benjamin.gaignard@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-security-module@vger.kernel.org, laurent.pinchart@ideasonboard.com, zoltan.kuscsik@linaro.org, sumit.semwal@linaro.org, cc.ma@mediatek.com Cc: Benjamin Gaignard List-Id: dri-devel@lists.freedesktop.org U01BRiBDTUEgYWxsb2NhdG9yIGltcGxlbWVudCBoZWxwZXJzIGZ1bmN0aW9ucyB0byBhbGxvdyBT TUFGCnRvIGFsbG9jYXRlIGNvbnRpZ3VvdXMgbWVtb3J5LgoKbWF0Y2goKSBlYWNoIGlmIGF0IGxl YXN0IG9uZSBvZiB0aGUgYXR0YWNoZWQgZGV2aWNlcyBoYXZlIGNvaGVyZW50X2RtYV9tYXNrCnNl dCB0byBETUFfQklUX01BU0soMzIpLgoKRm9yIGFsbG9jYXRpb24gaXQgdXNlIGRtYV9hbGxvY19h dHRycygpIHdpdGggRE1BX0FUVFJfV1JJVEVfQ09NQklORSBhbmQgbm90CmRtYV9hbGxvY193cml0 ZWNvbWJpbmUgdG8gYmUgY29tcGF0aWJsZSB3aXRoIEFSTSA2NGJpdHMgYXJjaGl0ZWN0dXJlCgpT aWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAbGluYXJv Lm9yZz4KLS0tCiBkcml2ZXJzL3NtYWYvS2NvbmZpZyAgICB8ICAgNiArKwogZHJpdmVycy9zbWFm L01ha2VmaWxlICAgfCAgIDEgKwogZHJpdmVycy9zbWFmL3NtYWYtY21hLmMgfCAxOTkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDIwNiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zbWFmL3Nt YWYtY21hLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NtYWYvS2NvbmZpZyBiL2RyaXZlcnMvc21h Zi9LY29uZmlnCmluZGV4IGQzNjY1MWEuLjA1OGVjNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc21h Zi9LY29uZmlnCisrKyBiL2RyaXZlcnMvc21hZi9LY29uZmlnCkBAIC0zLDMgKzMsOSBAQCBjb25m aWcgU01BRgogCWRlcGVuZHMgb24gRE1BX1NIQVJFRF9CVUZGRVIKIAloZWxwCiAJICBDaG9vc2Ug dGhpcyBvcHRpb24gdG8gZW5hYmxlIFNlY3VyZSBNZW1vcnkgQWxsb2NhdGlvbiBGcmFtZXdvcmsK KworY29uZmlnIFNNQUZfQ01BCisJdHJpc3RhdGUgIlNNQUYgQ01BIGFsbG9jYXRvciIKKwlkZXBl bmRzIG9uIFNNQUYgJiYgSEFWRV9ETUFfQVRUUlMKKwloZWxwCisJICBDaG9vc2UgdGhpcyBvcHRp b24gdG8gZW5hYmxlIENNQSBhbGxvY2F0aW9uIHdpdGhpbiBTTUFGCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NtYWYvTWFrZWZpbGUgYi9kcml2ZXJzL3NtYWYvTWFrZWZpbGUKaW5kZXggNDBjZDg4Mi4u MDViYWIwMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc21hZi9NYWtlZmlsZQorKysgYi9kcml2ZXJz L3NtYWYvTWFrZWZpbGUKQEAgLTEgKzEsMiBAQAogb2JqLSQoQ09ORklHX1NNQUYpICs9IHNtYWYt Y29yZS5vCitvYmotJChDT05GSUdfU01BRl9DTUEpICs9IHNtYWYtY21hLm8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc21hZi9zbWFmLWNtYS5jIGIvZHJpdmVycy9zbWFmL3NtYWYtY21hLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM2Njc3NwotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvc21hZi9zbWFmLWNtYS5jCkBAIC0wLDAgKzEsMTk5IEBACisvKgorICogc21hZi1j bWEuYworICoKKyAqIENvcHlyaWdodCAoQykgTGluYXJvIFNBIDIwMTUKKyAqIEF1dGhvcjogQmVu amFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGxpbmFyby5vcmc+IGZvciBMaW5hcm8u CisgKiBMaWNlbnNlIHRlcm1zOiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCksIHZl cnNpb24gMgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51 eC9zbWFmLWFsbG9jYXRvci5oPgorCitzdHJ1Y3Qgc21hZl9jbWFfYnVmZmVyX2luZm8geworCXN0 cnVjdCBkZXZpY2UgKmRldjsKKwlzaXplX3Qgc2l6ZTsKKwl2b2lkICp2YWRkcjsKKwlkbWFfYWRk cl90IHBhZGRyOworfTsKKworLyoqCisgKiBmaW5kX21hdGNoaW5nX2RldmljZSAtIGl0ZXJhdGUg b3ZlciB0aGUgYXR0YWNoZWQgZGV2aWNlcyB0byBmaW5kIG9uZQorICogd2l0aCBjb2hlcmVudF9k bWFfbWFzayBjb3JyZWN0bHkgc2V0IHRvIERNQV9CSVRfTUFTSygzMikuCisgKiBNYXRjaGluZyBk ZXZpY2UgKGlmIGFueSkgd2lsbCBiZSB1c2VkIHRvIGFpbSBDTUEgYXJlYS4KKyAqLworc3RhdGlj IHN0cnVjdCBkZXZpY2UgKmZpbmRfbWF0Y2hpbmdfZGV2aWNlKHN0cnVjdCBkbWFfYnVmICpkbWFi dWYpCit7CisJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoX29iajsKKworCWxpc3Rf Zm9yX2VhY2hfZW50cnkoYXR0YWNoX29iaiwgJmRtYWJ1Zi0+YXR0YWNobWVudHMsIG5vZGUpIHsK KwkJaWYgKGF0dGFjaF9vYmotPmRldi0+Y29oZXJlbnRfZG1hX21hc2sgPT0gRE1BX0JJVF9NQVNL KDMyKSkKKwkJCXJldHVybiBhdHRhY2hfb2JqLT5kZXY7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9 CisKKy8qKgorICogc21hZl9jbWFfbWF0Y2ggLSByZXR1cm4gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUg ZGV2aWNlIGhhcyBiZWVuIGZvdW5kCisgKi8KK3N0YXRpYyBib29sIHNtYWZfY21hX21hdGNoKHN0 cnVjdCBkbWFfYnVmICpkbWFidWYpCit7CisJcmV0dXJuICEhZmluZF9tYXRjaGluZ19kZXZpY2Uo ZG1hYnVmKTsKK30KKworc3RhdGljIHZvaWQgc21hZl9jbWFfcmVsZWFzZShzdHJ1Y3QgZG1hX2J1 ZiAqZG1hYnVmKQoreworCXN0cnVjdCBzbWFmX2NtYV9idWZmZXJfaW5mbyAqaW5mbyA9IGRtYWJ1 Zi0+cHJpdjsKKwlERUZJTkVfRE1BX0FUVFJTKGF0dHJzKTsKKworCWRtYV9zZXRfYXR0cihETUFf QVRUUl9XUklURV9DT01CSU5FLCAmYXR0cnMpOworCisJZG1hX2ZyZWVfYXR0cnMoaW5mby0+ZGV2 LCBpbmZvLT5zaXplLCBpbmZvLT52YWRkciwgaW5mby0+cGFkZHIsICZhdHRycyk7CisKKwlrZnJl ZShpbmZvKTsKK30KKworc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqc21hZl9jbWFfbWFwKHN0cnVj dCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsCisJCQkJICAgICBlbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisJc3RydWN0IHNtYWZfY21hX2J1ZmZlcl9pbmZvICpp bmZvID0gYXR0YWNobWVudC0+ZG1hYnVmLT5wcml2OworCXN0cnVjdCBzZ190YWJsZSAqc2d0Owor CWludCByZXQ7CisKKwlzZ3QgPSBremFsbG9jKHNpemVvZigqc2d0KSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFzZ3QpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gZG1hX2dldF9zZ3RhYmxlKGluZm8t PmRldiwgc2d0LCBpbmZvLT52YWRkciwKKwkJCSAgICAgIGluZm8tPnBhZGRyLCBpbmZvLT5zaXpl KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlzZ19kbWFfYWRkcmVzcyhzZ3QtPnNn bCkgPSBpbmZvLT5wYWRkcjsKKwlyZXR1cm4gc2d0OworCitvdXQ6CisJa2ZyZWUoc2d0KTsKKwly ZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgc21hZl9jbWFfdW5tYXAoc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNobWVudCwKKwkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0LAor CQkJICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uKQoreworCS8qIGRvIG5vdGhp bmcgKi8KK30KKworc3RhdGljIGludCBzbWFmX2NtYV9tbWFwKHN0cnVjdCBkbWFfYnVmICpkbWFi dWYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCBzbWFmX2NtYV9idWZm ZXJfaW5mbyAqaW5mbyA9IGRtYWJ1Zi0+cHJpdjsKKwlpbnQgcmV0OworCURFRklORV9ETUFfQVRU UlMoYXR0cnMpOworCisJZG1hX3NldF9hdHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsICZhdHRy cyk7CisKKwlpZiAoaW5mby0+c2l6ZSA8IHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydCkKKwkJ cmV0dXJuIC1FSU5WQUw7CisKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX0lPIHwgVk1fUEZOTUFQIHwg Vk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1QOworCXJldCA9IGRtYV9tbWFwX2F0dHJzKGluZm8t PmRldiwgdm1hLCBpbmZvLT52YWRkciwgaW5mby0+cGFkZHIsCisJCQkgICAgIGluZm8tPnNpemUs ICZhdHRycyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCAqc21hZl9jbWFfdm1h cChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKQoreworCXN0cnVjdCBzbWFmX2NtYV9idWZmZXJfaW5m byAqaW5mbyA9IGRtYWJ1Zi0+cHJpdjsKKworCXJldHVybiBpbmZvLT52YWRkcjsKK30KKworc3Rh dGljIHZvaWQgKnNtYWZfa21hcF9hdG9taWMoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgdW5zaWdu ZWQgbG9uZyBvZmZzZXQpCit7CisJc3RydWN0IHNtYWZfY21hX2J1ZmZlcl9pbmZvICppbmZvID0g ZG1hYnVmLT5wcml2OworCisJcmV0dXJuICh2b2lkICopaW5mby0+dmFkZHIgKyBvZmZzZXQ7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9vcHMgc21hZl9jbWFfb3BzID0geworCS5tYXBfZG1h X2J1ZiA9IHNtYWZfY21hX21hcCwKKwkudW5tYXBfZG1hX2J1ZiA9IHNtYWZfY21hX3VubWFwLAor CS5tbWFwID0gc21hZl9jbWFfbW1hcCwKKwkucmVsZWFzZSA9IHNtYWZfY21hX3JlbGVhc2UsCisJ LmttYXBfYXRvbWljID0gc21hZl9rbWFwX2F0b21pYywKKwkua21hcCA9IHNtYWZfa21hcF9hdG9t aWMsCisJLnZtYXAgPSBzbWFmX2NtYV92bWFwLAorfTsKKworc3RhdGljIHN0cnVjdCBkbWFfYnVm ICpzbWFmX2NtYV9hbGxvY2F0ZShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAorCQkJCQkgc2l6ZV90 IGxlbmd0aCwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1l bnQgKmF0dGFjaF9vYmo7CisJc3RydWN0IHNtYWZfY21hX2J1ZmZlcl9pbmZvICppbmZvOworCXN0 cnVjdCBkbWFfYnVmICpjbWFfZG1hYnVmOworCWludCByZXQ7CisKKwlERUZJTkVfRE1BX0JVRl9F WFBPUlRfSU5GTyhleHBvcnQpOworCURFRklORV9ETUFfQVRUUlMoYXR0cnMpOworCisJZG1hX3Nl dF9hdHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsICZhdHRycyk7CisKKwlpbmZvID0ga3phbGxv YyhzaXplb2YoKmluZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWluZm8pCisJCXJldHVybiBOVUxM OworCisJaW5mby0+ZGV2ID0gZmluZF9tYXRjaGluZ19kZXZpY2UoZG1hYnVmKTsKKwlpbmZvLT5z aXplID0gbGVuZ3RoOworCWluZm8tPnZhZGRyID0gZG1hX2FsbG9jX2F0dHJzKGluZm8tPmRldiwg aW5mby0+c2l6ZSwgJmluZm8tPnBhZGRyLAorCQkJCSAgICAgIEdGUF9LRVJORUwgfCBfX0dGUF9O T1dBUk4sICZhdHRycyk7CisJaWYgKCFpbmZvLT52YWRkcikgeworCQlyZXQgPSAtRU5PTUVNOwor CQlnb3RvIGVycm9yOworCX0KKworCWV4cG9ydC5vcHMgPSAmc21hZl9jbWFfb3BzOworCWV4cG9y dC5zaXplID0gaW5mby0+c2l6ZTsKKwlleHBvcnQuZmxhZ3MgPSBmbGFnczsKKwlleHBvcnQucHJp diA9IGluZm87CisKKwljbWFfZG1hYnVmID0gZG1hX2J1Zl9leHBvcnQoJmV4cG9ydCk7CisJaWYg KElTX0VSUihjbWFfZG1hYnVmKSkKKwkJZ290byBlcnJvcjsKKworCWxpc3RfZm9yX2VhY2hfZW50 cnkoYXR0YWNoX29iaiwgJmRtYWJ1Zi0+YXR0YWNobWVudHMsIG5vZGUpIHsKKwkJZG1hX2J1Zl9h dHRhY2goY21hX2RtYWJ1ZiwgYXR0YWNoX29iai0+ZGV2KTsKKwl9CisKKwlyZXR1cm4gY21hX2Rt YWJ1ZjsKKworZXJyb3I6CisJa2ZyZWUoaW5mbyk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRp YyBzdHJ1Y3Qgc21hZl9hbGxvY2F0b3Igc21hZl9jbWEgPSB7CisJLm1hdGNoID0gc21hZl9jbWFf bWF0Y2gsCisJLmFsbG9jYXRlID0gc21hZl9jbWFfYWxsb2NhdGUsCisJLm5hbWUgPSAic21hZi1j bWEiLAorCS5yYW5raW5nID0gMCwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHNtYWZfY21hX2lu aXQodm9pZCkKK3sKKwlJTklUX0xJU1RfSEVBRCgmc21hZl9jbWEubGlzdF9ub2RlKTsKKwlyZXR1 cm4gc21hZl9yZWdpc3Rlcl9hbGxvY2F0b3IoJnNtYWZfY21hKTsKK30KK21vZHVsZV9pbml0KHNt YWZfY21hX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgc21hZl9jbWFfZGVpbml0KHZvaWQp Cit7CisJc21hZl91bnJlZ2lzdGVyX2FsbG9jYXRvcigmc21hZl9jbWEpOworfQorbW9kdWxlX2V4 aXQoc21hZl9jbWFfZGVpbml0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJTTUFGIENNQSBtb2R1 bGUiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BVVRIT1IoIkJlbmphbWlu IEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBsaW5hcm8ub3JnPiIpOwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=