From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Subject: [PATCH 5/6] drm/radeon: validate relocations in the order determined by userspace Date: Mon, 24 Feb 2014 16:20:45 +0100 Message-ID: <1393255246-8296-6-git-send-email-maraeo@gmail.com> References: <1393255246-8296-1-git-send-email-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ee0-f42.google.com (mail-ee0-f42.google.com [74.125.83.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 9800BFAAE0 for ; Mon, 24 Feb 2014 07:21:09 -0800 (PST) Received: by mail-ee0-f42.google.com with SMTP id e53so1632832eek.15 for ; Mon, 24 Feb 2014 07:21:08 -0800 (PST) Received: from localhost.localdomain ([194.228.11.204]) by mx.google.com with ESMTPSA id o43sm64864402eef.12.2014.02.24.07.21.07 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 24 Feb 2014 07:21:08 -0800 (PST) In-Reply-To: <1393255246-8296-1-git-send-email-maraeo@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KClVzZXJzcGFjZSBzaG91 bGQgc2V0IHRoZSBmaXJzdCA0IGJpdHMgb2YgZHJtX3JhZGVvbl9jc19yZWxvYzo6ZmxhZ3MgdG8K YSBudW1iZXIgZnJvbSAwIHRvIDE1LiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBoaWdoZXIg dGhlIHByaW9yaXR5LAp3aGljaCBtZWFucyBhIGJ1ZmZlciB3aXRoIGEgaGlnaGVyIG51bWJlciB3 aWxsIGJlIHZhbGlkYXRlZCBzb29uZXIuCgpUaGUgb2xkIGJlaGF2aW9yIGlzIHByZXNlcnZlZDog QnVmZmVycyB1c2VkIGZvciB3cml0ZSBhcmUgcHJpb3JpdGl6ZWQgb3ZlcgpyZWFkLW9ubHkgYnVm ZmVycyBpZiB0aGUgdXNlcnNwYWNlIGRvZXNuJ3Qgc2V0IHRoZSBudW1iZXIuCgpTaWduZWQtb2Zm LWJ5OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2NzLmMgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgfCAxMCAtLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaCB8ICAyIC0tCiA0IGZpbGVzIGNo YW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbi5oCmluZGV4IGQzN2E1N2EuLmY3YTMxNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaApA QCAtNDgxLDcgKzQ4MSw3IEBAIHN0cnVjdCByYWRlb25fYm9fbGlzdCB7CiAJc3RydWN0IHR0bV92 YWxpZGF0ZV9idWZmZXIgdHY7CiAJc3RydWN0IHJhZGVvbl9ibwkqYm87CiAJdWludDY0X3QJCWdw dV9vZmZzZXQ7Ci0JYm9vbAkJCXdyaXR0ZW47CisJdW5zaWduZWQJCXByaW9yaXR5OwogCXVuc2ln bmVkCQlkb21haW47CiAJdW5zaWduZWQJCWFsdF9kb21haW47CiAJdTMyCQkJdGlsaW5nX2ZsYWdz OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKaW5kZXggZDQ5YTNmNy4uMWJhMWE0OCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCkBAIC0zMSw2ICszMSw0MSBAQAogI2luY2x1ZGUg InJhZGVvbi5oIgogI2luY2x1ZGUgInJhZGVvbl90cmFjZS5oIgogCisvKiBUaGlzIGlzIGEgdmFy aWF0aW9uIG9mIHRoZSBidWNrZXQgc29ydCB3aXRoIE8obikgdGltZSBjb21wbGV4aXR5LgorICog VGhlIHJlbG9jYXRpb25zIGFyZSBzb3J0ZWQgZnJvbSB0aGUgaGlnaGVzdCB0byB0aGUgbG93ZXN0 IHByaW9yaXR5LiAqLworc3RhdGljIHZvaWQgc29ydF9yZWxvY3NfZm9yX3ZhbGlkYXRpb24oc3Ry dWN0IGxpc3RfaGVhZCAqbGlzdCkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkIGJ1Y2tldFsxN10sICpp dCwgKnRtcDsKKwl1bnNpZ25lZCBpLCBwcmlvcml0eTsKKworCWZvciAoaSA9IDA7IGkgPCAxNzsg aSsrKQorCQlJTklUX0xJU1RfSEVBRCgmYnVja2V0W2ldKTsKKworCS8qIE1vdmUgdGhlIGVsZW1l bnRzIGludG8gYnVja2V0cy4gQW4gaS10aCBidWNrZXQgb25seSBjb250YWlucworCSAqIGVsZW1l bnRzIHdpdGggcHJpb3JpdGllcyBpKjIgYW5kIGkqMisxLiBPZGQgbnVtYmVycyBhcmUgYWRkZWQK KwkgKiBhdCB0aGUgaGVhZCBvZiBhIGJ1Y2tldCBhbmQgZXZlbiBudW1iZXJzIGFyZSBhZGRlZCBh dCB0aGUgdGFpbCwKKwkgKiB0aGVyZWZvcmUgYWxsIGJ1Y2tldHMgYXJlIGFsd2F5cyBzb3J0ZWQu ICovCisJbGlzdF9mb3JfZWFjaF9zYWZlKGl0LCB0bXAsIGxpc3QpIHsKKwkJcHJpb3JpdHkgPSBs aXN0X2VudHJ5KGl0LCBzdHJ1Y3QgcmFkZW9uX2JvX2xpc3QsCisJCQkJICAgICAgdHYuaGVhZCkt PnByaW9yaXR5OworCQlpID0gcHJpb3JpdHkgLyAyOworCQlpID0gbWluKGksIDE2dSkgOworCisJ CWlmIChwcmlvcml0eSAlIDIgPT0gMSkgeworCQkJbGlzdF9tb3ZlKGl0LCAmYnVja2V0W2ldKTsK KwkJfSBlbHNlIHsKKwkJCWxpc3RfbW92ZV90YWlsKGl0LCAmYnVja2V0W2ldKTsKKwkJfQorCX0K KworCUlOSVRfTElTVF9IRUFEKGxpc3QpOworCisJLyogY29ubmVjdCB0aGUgc29ydGVkIGJ1Y2tl dHMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTc7IGkrKykgeworCQlsaXN0X3NwbGljZSgmYnVja2V0 W2ldLCBsaXN0KTsKKwl9Cit9CisKIHN0YXRpYyBpbnQgcmFkZW9uX2NzX3BhcnNlcl9yZWxvY3Mo c3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnApCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYg PSBwLT5yZGV2LT5kZGV2OwpAQCAtODAsNyArMTE1LDE1IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2Nz X3BhcnNlcl9yZWxvY3Moc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnApCiAJCXAtPnJlbG9jc19w dHJbaV0gPSAmcC0+cmVsb2NzW2ldOwogCQlwLT5yZWxvY3NbaV0ucm9iaiA9IGdlbV90b19yYWRl b25fYm8ocC0+cmVsb2NzW2ldLmdvYmopOwogCQlwLT5yZWxvY3NbaV0ubG9iai5ibyA9IHAtPnJl bG9jc1tpXS5yb2JqOwotCQlwLT5yZWxvY3NbaV0ubG9iai53cml0dGVuID0gISFyLT53cml0ZV9k b21haW47CisKKwkJLyogVGhlIHVzZXJzcGFjZSBidWZmZXIgcHJpb3JpdGllcyBhcmUgZnJvbSAw IHRvIDE1LiBBIGhpZ2hlcgorCQkgKiBudW1iZXIgbWVhbnMgdGhlIGJ1ZmZlciBpcyBtb3JlIGlt cG9ydGFudC4KKwkJICogQWxzbywgdGhlIGJ1ZmZlcnMgdXNlZCBmb3Igd3JpdGUgaGF2ZSBhIGhp Z2hlciBwcmlvcml0eSB0aGFuCisJCSAqIHRoZSBidWZmZXJzIHVzZWQgZm9yIHJlYWQgb25seSwg d2hpY2ggZG91YmxlcyB0aGUgcmFuZ2UKKwkJICogdG8gMCB0byAzMS4gTnVtYmVycyAzMiBhbmQg MzMgYXJlIHJlc2VydmVkIGZvciB0aGUga2VybmVsCisJCSAqIGRyaXZlci4KKwkJICovCisJCXAt PnJlbG9jc1tpXS5sb2JqLnByaW9yaXR5ID0gKHItPmZsYWdzICYgMHhmKSAqIDIgKyAhIXItPndy aXRlX2RvbWFpbjsKIAogCQkvKiB0aGUgZmlyc3QgcmVsb2Mgb2YgYW4gVVZEIGpvYiBpcyB0aGUg bXNnIGFuZCB0aGF0IG11c3QgYmUgaW4KIAkJICAgVlJBTSwgYWxzbyBidXQgZXZlcnl0aGluZyBp bnRvIFZSQU0gb24gQUdQIGNhcmRzIHRvIGF2b2lkCkBAIC05NCw2ICsxMzcsOCBAQCBzdGF0aWMg aW50IHJhZGVvbl9jc19wYXJzZXJfcmVsb2NzKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQog CQkJcC0+cmVsb2NzW2ldLmxvYmouYWx0X2RvbWFpbiA9CiAJCQkJUkFERU9OX0dFTV9ET01BSU5f VlJBTTsKIAorCQkJLyogcHJpb3JpdGl6ZSB0aGlzIG92ZXIgYW55IG90aGVyIHJlbG9jYXRpb24g Ki8KKwkJCXAtPnJlbG9jc1tpXS5sb2JqLnByaW9yaXR5ID0gMzI7CiAJCX0gZWxzZSB7CiAJCQl1 aW50MzJfdCBkb21haW4gPSByLT53cml0ZV9kb21haW4gPwogCQkJCXItPndyaXRlX2RvbWFpbiA6 IHItPnJlYWRfZG9tYWluczsKQEAgLTEwNyw5ICsxNTIsMTEgQEAgc3RhdGljIGludCByYWRlb25f Y3NfcGFyc2VyX3JlbG9jcyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAkJcC0+cmVsb2Nz W2ldLmxvYmoudHYuYm8gPSAmcC0+cmVsb2NzW2ldLnJvYmotPnRibzsKIAkJcC0+cmVsb2NzW2ld LmhhbmRsZSA9IHItPmhhbmRsZTsKIAotCQlyYWRlb25fYm9fbGlzdF9hZGRfb2JqZWN0KCZwLT5y ZWxvY3NbaV0ubG9iaiwKLQkJCQkJICAmcC0+dmFsaWRhdGVkKTsKKwkJbGlzdF9hZGQoJnAtPnJl bG9jc1tpXS5sb2JqLnR2LmhlYWQsICZwLT52YWxpZGF0ZWQpOwogCX0KKworCXNvcnRfcmVsb2Nz X2Zvcl92YWxpZGF0aW9uKCZwLT52YWxpZGF0ZWQpOworCiAJcmV0dXJuIHJhZGVvbl9ib19saXN0 X3ZhbGlkYXRlKCZwLT50aWNrZXQsICZwLT52YWxpZGF0ZWQsIHAtPnJpbmcpOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCmluZGV4IGQ2NzZlZTIuLjE5MDQyYWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCkBAIC0zNjgsMTYgKzM2OCw2IEBA IHZvaWQgcmFkZW9uX2JvX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJYXJjaF9w aHlzX3djX2RlbChyZGV2LT5tYy52cmFtX210cnIpOwogfQogCi12b2lkIHJhZGVvbl9ib19saXN0 X2FkZF9vYmplY3Qoc3RydWN0IHJhZGVvbl9ib19saXN0ICpsb2JqLAotCQkJCXN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQpCi17Ci0JaWYgKGxvYmotPndyaXR0ZW4pIHsKLQkJbGlzdF9hZGQoJmxvYmot PnR2LmhlYWQsIGhlYWQpOwotCX0gZWxzZSB7Ci0JCWxpc3RfYWRkX3RhaWwoJmxvYmotPnR2Lmhl YWQsIGhlYWQpOwotCX0KLX0KLQogaW50IHJhZGVvbl9ib19saXN0X3ZhbGlkYXRlKHN0cnVjdCB3 d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCQkJICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGlu dCByaW5nKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2Jq ZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAppbmRleCBhOWE4 YzExLi42YzNjYTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaApAQCAt MTM4LDggKzEzOCw2IEBAIGV4dGVybiBpbnQgcmFkZW9uX2JvX2V2aWN0X3ZyYW0oc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpOwogZXh0ZXJuIHZvaWQgcmFkZW9uX2JvX2ZvcmNlX2RlbGV0ZShz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiBleHRlcm4gaW50IHJhZGVvbl9ib19pbml0KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGV4dGVybiB2b2lkIHJhZGVvbl9ib19maW5pKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKLWV4dGVybiB2b2lkIHJhZGVvbl9ib19saXN0X2Fk ZF9vYmplY3Qoc3RydWN0IHJhZGVvbl9ib19saXN0ICpsb2JqLAotCQkJCXN0cnVjdCBsaXN0X2hl YWQgKmhlYWQpOwogZXh0ZXJuIGludCByYWRlb25fYm9fbGlzdF92YWxpZGF0ZShzdHJ1Y3Qgd3df YWNxdWlyZV9jdHggKnRpY2tldCwKIAkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBpbnQg cmluZyk7CiBleHRlcm4gaW50IHJhZGVvbl9ib19mYmRldl9tbWFwKHN0cnVjdCByYWRlb25fYm8g KmJvLAotLSAKMS44LjMuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK