From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Kumar Halder Subject: [RFC PATCH 2/4] drm/arm/malidp: Implemented the size validation for AFBC framebuffers Date: Fri, 15 Jun 2018 14:51:32 +0100 Message-ID: <1529070694-21088-3-git-send-email-ayan.halder@arm.com> References: <1529070694-21088-1-git-send-email-ayan.halder@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0065.outbound.protection.outlook.com [104.47.0.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E39A6EB55 for ; Fri, 15 Jun 2018 13:51:49 +0000 (UTC) In-Reply-To: <1529070694-21088-1-git-send-email-ayan.halder@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: ayan.halder@arm.com, liviu.dudau@arm.com, brian.starkey@arm.com, malidp@foss.arm.com, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: nd@arm.com List-Id: dri-devel@lists.freedesktop.org QUZCQyBidWZmZXJzIGluY2x1ZGUgYWRkaXRpb25hbCBtZXRhZGF0YSB3aGljaCBpbmNyZWFzZXMg dGhlIHJlcXVpcmVkCmFsbG9jYXRpb24gc2l6ZS4gSW1wbGVtZW50IHRoZSBhcHByb3ByaWF0ZSBz aXplIHZhbGlkYXRpb24gYW5kIHNhbml0eQpjaGVja2luZyBmb3IgQUZCQyBidWZmZXJzLgpBZGRl ZCBtYWxpZHAgc3BlY2lmaWMgZnVuY3Rpb24gZm9yIGZyYW1lYnVmZmVyIGNyZWF0aW9uLiBUaGlz IGNoZWNrcwppZiB0aGUgZnJhbWVidWZmZXIgaGFzIEFGQkMgbW9kaWZpZXJzIGFuZCBpZiBzbywg aXQgdmVyaWZpZXMgdGhlCm5lY2Vzc2FyeSBjb25zdHJhaW50cyBvbiB0aGUgc2l6ZSwgYWxpZ25t ZW50LCBvZmZzZXRzIGFuZCBwaXRjaC4KClNpZ25lZC1vZmYtYnk6IEF5YW4gS3VtYXIgaGFsZGVy IDxheWFuLmhhbGRlckBhcm0uY29tPgpSZXZpZXdlZC1ieTogQnJpYW4gU3RhcmtleSA8YnJpYW4u c3RhcmtleUBhcm0uY29tPgpSZXZpZXdlZC1ieTogTGl2aXUgRHVkYXUgPGxpdml1LmR1ZGF1QGFy bS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMgfCAxMjggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21h bGlkcF9ody5oICB8ICAgNSArKwogMiBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMKaW5kZXggOGQyMGZhYS4uN2I2 YTg0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs dWRlICJtYWxpZHBfaHcuaCIKIAogI2RlZmluZSBNQUxJRFBfQ09ORl9WQUxJRF9USU1FT1VUCTI1 MAorI2RlZmluZSBBRkJDX0hFQURFUl9TSVpFCQkxNgogCiBzdGF0aWMgdm9pZCBtYWxpZHBfd3Jp dGVfZ2FtbWFfdGFibGUoc3RydWN0IG1hbGlkcF9od19kZXZpY2UgKmh3ZGV2LAogCQkJCSAgICAg dTMyIGRhdGFbTUFMSURQX0NPRUZGVEFCX05VTV9DT0VGRlNdKQpAQCAtMjQ1LDggKzI0NiwxMzMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfaGVscGVyX2Z1bmNzIG1hbGlk cF9tb2RlX2NvbmZpZ19oZWxwZXJzID0gewogCS5hdG9taWNfY29tbWl0X3RhaWwgPSBtYWxpZHBf YXRvbWljX2NvbW1pdF90YWlsLAogfTsKIAorc3RhdGljIGJvb2wKK21hbGlkcF92ZXJpZnlfYWZi Y19mcmFtZWJ1ZmZlcl9jYXBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgICAgIGNv bnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKK3sKKwljb25zdCBzdHJ1Y3Qg ZHJtX2Zvcm1hdF9pbmZvICppbmZvOworCisJaWYgKChtb2RlX2NtZC0+bW9kaWZpZXJbMF0gPj4g NTYpICE9IERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9BUk0pIHsKKwkJRFJNX0VSUk9SKCJVbmtub3du IG1vZGlmaWVyIChub3QgQXJtKVxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlpZiAobW9k ZV9jbWQtPm1vZGlmaWVyWzBdICYKKwkgICAgfkRSTV9GT1JNQVRfTU9EX0FSTV9BRkJDKEFGQkNf TU9EX1ZBTElEX0JJVFMpKSB7CisJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgbW9kaWZpZXJzXG4i KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWluZm8gPSBkcm1fZ2V0X2Zvcm1hdF9pbmZvKGRl diwgbW9kZV9jbWQpOworCWlmICghaW5mbykgeworCQlEUk1fRVJST1IoIlVuYWJsZSB0byBnZXQg dGhlIGZvcm1hdCBpbmZvcm1hdGlvblxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlpZiAo aW5mby0+bnVtX3BsYW5lcyAhPSAxKSB7CisJCURSTV9FUlJPUigiQUZCQyBidWZmZXJzIGV4cGVj dCBvbmUgcGxhbmVcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJaWYgKG1vZGVfY21kLT5v ZmZzZXRzWzBdICE9IDApIHsKKwkJRFJNX0VSUk9SKCJBRkJDIGJ1ZmZlcnMnIHBsYW5lIG9mZnNl dCBzaG91bGQgYmUgMFxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlzd2l0Y2ggKG1vZGVf Y21kLT5tb2RpZmllclswXSAmIEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFX01BU0spIHsKKwlj YXNlIEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFXzE2eDE2OgorCQlpZiAoKG1vZGVfY21kLT53 aWR0aCAlIDE2KSB8fCAobW9kZV9jbWQtPmhlaWdodCAlIDE2KSkgeworCQkJRFJNX0VSUk9SKCJB RkJDIGJ1ZmZlcnMgbXVzdCBiZSBhbGlnbmVkIHRvIDE2IHBpeGVsc1xuIik7CisJCQlyZXR1cm4g ZmFsc2U7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJVbnN1cHBvcnRl ZCBBRkJDIGJsb2NrIHNpemVcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKK3N0YXRpYyBib29sCittYWxpZHBfdmVyaWZ5X2FmYmNfZnJhbWVidWZmZXJfc2l6 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUsCisJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkK K3sKKwlpbnQgbl9zdXBlcmJsb2NrcyA9IDA7CisJY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqaW5mbzsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9ianMgPSBOVUxMOworCXUzMiBhZmJj X3N1cGVyYmxvY2tfc2l6ZSA9IDAsIGFmYmNfc3VwZXJibG9ja19oZWlnaHQgPSAwOworCXUzMiBh ZmJjX3N1cGVyYmxvY2tfd2lkdGggPSAwLCBhZmJjX3NpemUgPSAwOworCisJc3dpdGNoIChtb2Rl X2NtZC0+bW9kaWZpZXJbMF0gJiBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV9NQVNLKSB7CisJ Y2FzZSBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV8xNngxNjoKKwkJYWZiY19zdXBlcmJsb2Nr X2hlaWdodCA9IDE2OworCQlhZmJjX3N1cGVyYmxvY2tfd2lkdGggPSAxNjsKKwkJYnJlYWs7CisJ ZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJBRkJDIHN1cGVyYmxvY2sgc2l6ZSBpcyBub3Qgc3VwcG9y dGVkXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWluZm8gPSBkcm1fZ2V0X2Zvcm1hdF9p bmZvKGRldiwgbW9kZV9jbWQpOworCisJbl9zdXBlcmJsb2NrcyA9IChtb2RlX2NtZC0+d2lkdGgg LyBhZmJjX3N1cGVyYmxvY2tfd2lkdGgpICoKKwkJKG1vZGVfY21kLT5oZWlnaHQgLyBhZmJjX3N1 cGVyYmxvY2tfaGVpZ2h0KTsKKworCWFmYmNfc3VwZXJibG9ja19zaXplID0gaW5mby0+Y3BwWzBd ICogYWZiY19zdXBlcmJsb2NrX3dpZHRoICoKKwkJYWZiY19zdXBlcmJsb2NrX2hlaWdodDsKKwor CWFmYmNfc2l6ZSA9IEFMSUdOKG5fc3VwZXJibG9ja3MgKiBBRkJDX0hFQURFUl9TSVpFLCAxMjgp OworCisJaWYgKG1vZGVfY21kLT53aWR0aCAqIGluZm8tPmNwcFswXSAhPSBtb2RlX2NtZC0+cGl0 Y2hlc1swXSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgdmFsdWUgb2YgcGl0Y2ggKD0ldSkgc2hv dWxkIGJlIHNhbWUgYXMgd2lkdGggKD0ldSkgKiBjcHAgKD0ldSlcbiIsCisJCQkgIG1vZGVfY21k LT5waXRjaGVzWzBdLCBtb2RlX2NtZC0+d2lkdGgsIGluZm8tPmNwcFswXSk7CisJCXJldHVybiBm YWxzZTsKKwl9CisKKwlvYmpzID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbGUsIG1vZGVfY21k LT5oYW5kbGVzWzBdKTsKKwlpZiAoIW9ianMpIHsKKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRv IGxvb2t1cCBHRU0gb2JqZWN0XG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChvYmpz LT5zaXplIDwgYWZiY19zaXplKSB7CisJCURSTV9FUlJPUigiYnVmZmVyIHNpemUgKCV6dSkgdG9v IHNtYWxsIGZvciBBRkJDIGJ1ZmZlciBzaXplID0gJXVcbiIsCisJCQkgIG9ianMtPnNpemUsIGFm YmNfc2l6ZSk7CisJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmpzKTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmpzKTsKKworCXJl dHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbAorbWFsaWRwX3ZlcmlmeV9hZmJjX2ZyYW1lYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJCQkg IGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKK3sKKwlpZiAobWFsaWRw X3ZlcmlmeV9hZmJjX2ZyYW1lYnVmZmVyX2NhcHMoZGV2LCBtb2RlX2NtZCkpCisJCXJldHVybiBt YWxpZHBfdmVyaWZ5X2FmYmNfZnJhbWVidWZmZXJfc2l6ZShkZXYsIGZpbGUsIG1vZGVfY21kKTsK KworCXJldHVybiBmYWxzZTsKK30KKworc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCittYWxpZHBf ZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwK KwkJIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKK3sKKwlpZiAobW9k ZV9jbWQtPm1vZGlmaWVyWzBdKSB7CisJCWlmICghbWFsaWRwX3ZlcmlmeV9hZmJjX2ZyYW1lYnVm ZmVyKGRldiwgZmlsZSwgbW9kZV9jbWQpKQorCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJ fQorCisJcmV0dXJuIGRybV9nZW1fZmJfY3JlYXRlKGRldiwgZmlsZSwgbW9kZV9jbWQpOworfQor CiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBtYWxpZHBfbW9kZV9j b25maWdfZnVuY3MgPSB7Ci0JLmZiX2NyZWF0ZSA9IGRybV9nZW1fZmJfY3JlYXRlLAorCS5mYl9j cmVhdGUgPSBtYWxpZHBfZmJfY3JlYXRlLAogCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID0gZHJtX2Zi X2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkLAogCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWlj X2hlbHBlcl9jaGVjaywKIAkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1p dCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmggYi9kcml2ZXJz L2dwdS9kcm0vYXJtL21hbGlkcF9ody5oCmluZGV4IDQxZjQ1MjEuLjQzOTAyNDMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FybS9tYWxpZHBfaHcuaApAQCAtMzYxLDQgKzM2MSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBt YWxpZHBfc2Vfc2V0X2VuaF9jb2VmZnMoc3RydWN0IG1hbGlkcF9od19kZXZpY2UgKmh3ZGV2KQog CiAjZGVmaW5lIE1BTElEUF9HQU1NQV9MVVRfU0laRQkJNDA5NgogCisjZGVmaW5lIEFGQkNfTU9E X1ZBTElEX0JJVFMgKEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFX01BU0sgfCBcCisJCQlBRkJD X0ZPUk1BVF9NT0RfWVRSIHwgQUZCQ19GT1JNQVRfTU9EX1NQTElUIHwgXAorCQkJQUZCQ19GT1JN QVRfTU9EX1NQQVJTRSB8IEFGQkNfRk9STUFUX01PRF9DQlIgfCBcCisJCQlBRkJDX0ZPUk1BVF9N T0RfVElMRUQgfCBBRkJDX0ZPUk1BVF9NT0RfU0MpCisKICNlbmRpZiAgLyogX19NQUxJRFBfSFdf SF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==