From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 3/5] drm/i915: Prevent writing into a read-only object via a GGTT mmap Date: Thu, 14 Jun 2018 20:24:02 +0100 Message-ID: <20180614192404.24534-3-chris@chris-wilson.co.uk> References: <20180614192404.24534-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0978D6E8DF for ; Thu, 14 Jun 2018 19:25:51 +0000 (UTC) In-Reply-To: <20180614192404.24534-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: David Herrmann List-Id: intel-gfx@lists.freedesktop.org SWYgdGhlIHVzZXIgaGFzIGNyZWF0ZWQgYSByZWFkLW9ubHkgb2JqZWN0LCB0aGV5IHNob3VsZCBu b3QgYmUgYWxsb3dlZAp0byBjaXJjdW12ZW50IHRoZSB3cml0ZSBwcm90ZWN0aW9uIGJ5IHVzaW5n IGEgR0dUVCBtbWFwcGluZy4gRGVueSBpdC4KCkFsc28gbW9zdCBtYWNoaW5lcyBkbyBub3Qgc3Vw cG9ydCByZWFkLW9ubHkgR0dUVCBQVEVzLCBzbyBhZ2FpbiB3ZSBoYXZlCnRvIHJlamVjdCBhdHRl bXB0ZWQgd3JpdGVzLiBGb3J0dW5hdGVseSwgdGhpcyBpcyBrbm93biBhIHByaW9yaSwgc28gd2UK Y2FuIGF0IGxlYXN0IHJlamVjdCBpbiB0aGUgY2FsbCB0byBjcmVhdGUgdGhlIG1tYXAgKHdpdGgg YSBzYW5pdHkgY2hlY2sKaW4gdGhlIGZhdWx0IGhhbmRsZXIpLgoKdjI6IENoZWNrIHRoZSB2bWEt PnZtX2ZsYWdzIGR1cmluZyBtbWFwKCkgdG8gYWxsb3cgcmVhZG9ubHkgYWNjZXNzLgoKU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb24g Qmxvb21maWVsZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVu IDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0 aGV3LndpbGxpYW0uYXVsZEBnbWFpbC5jb20+CkNjOiBEYXZpZCBIZXJybWFubiA8ZGguaGVycm1h bm5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGlu ZW5AbGludXguaW50ZWwuY29tPiAjdjEKUmV2aWV3ZWQtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhl dy53aWxsaWFtLmF1bGRAZ21haWwuY29tPiAjdjEKUmV2aWV3ZWQtYnk6IEpvbiBCbG9vbWZpZWxk IDxqb24uYmxvb21maWVsZEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9nZW0u YyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgICAgIHwgIDQgKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgICAgICB8IDEyICsrKysrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmggICAgICAgICAgICB8IDEzICsrKysr KysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRl eHQuYyB8ICA1ICsrKy0tCiBpbmNsdWRlL2RybS9kcm1fdm1hX21hbmFnZXIuaCAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCmluZGV4IDRhMTZkN2IyNmM4OS4uMjMwODYzODEzOTA1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZ2VtLmMKQEAgLTEwMzYsNiArMTAzNiwxMSBAQCBpbnQgZHJtX2dlbV9tbWFwKHN0cnVj dCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJcmV0dXJuIC1FQUND RVM7CiAJfQogCisJaWYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSAmJiBub2RlLT5yZWFkb25s eSkgeworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCiAJcmV0ID0gZHJtX2dlbV9tbWFwX29iaihvYmosIGRybV92bWFfbm9kZV9zaXpl KG5vZGUpIDw8IFBBR0VfU0hJRlQsCiAJCQkgICAgICAgdm1hKTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggOGRkNGQzNTY1NWFmLi4yYmZiMTZlODNhZjIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwpAQCAtMjAwOSw2ICsyMDA5LDEwIEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQo c3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJdW5zaWduZWQgaW50IGZsYWdzOwogCWludCByZXQ7CiAK KwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBhbGxvdyB3cml0aW5nIGludG8gdGhpcyBvYmplY3Qg Ki8KKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KG9iaikgJiYgd3JpdGUpCisJCXJl dHVybiBWTV9GQVVMVF9TSUdCVVM7CisKIAkvKiBXZSBkb24ndCB1c2Ugdm1mLT5wZ29mZiBzaW5j ZSB0aGF0IGhhcyB0aGUgZmFrZSBvZmZzZXQgKi8KIAlwYWdlX29mZnNldCA9ICh2bWYtPmFkZHJl c3MgLSBhcmVhLT52bV9zdGFydCkgPj4gUEFHRV9TSElGVDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYwppbmRleCBiZmUyM2UxMGExMjcuLjg1OTFlNzA1MWYwZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMgaW50IHBwZ3R0 X2JpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCiAJLyogQXBwbGljYWJsZSB0byBWTFYs IGFuZCBnZW44KyAqLwogCXB0ZV9mbGFncyA9IDA7Ci0JaWYgKHZtYS0+b2JqLT5ndF9ybykKKwlp ZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KHZtYS0+b2JqKSkKIAkJcHRlX2ZsYWdzIHw9 IFBURV9SRUFEX09OTFk7CiAKIAl2bWEtPnZtLT5pbnNlcnRfZW50cmllcyh2bWEtPnZtLCB2bWEs IGNhY2hlX2xldmVsLCBwdGVfZmxhZ3MpOwpAQCAtMjQyMyw4ICsyNDIzLDEwIEBAIHN0YXRpYyB2 b2lkIGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKIAljb25zdCBnZW44X3B0ZV90IHB0ZV9lbmNvZGUgPSBnZW44X3B0ZV9lbmNvZGUoMCwgbGV2 ZWwsIDApOwogCWRtYV9hZGRyX3QgYWRkcjsKIAotCS8qIFRoZSBHVFQgZG9lcyBub3Qgc3VwcG9y dCByZWFkLW9ubHkgbWFwcGluZ3MgKi8KLQlHRU1fQlVHX09OKGZsYWdzICYgUFRFX1JFQURfT05M WSk7CisJLyoKKwkgKiBOb3RlIHRoYXQgd2UgaWdub3JlIFBURV9SRUFEX09OTFkgaGVyZS4gVGhl IGNhbGxlciBtdXN0IGJlIGNhcmVmdWwKKwkgKiBub3QgdG8gYWxsb3cgdGhlIHVzZXIgdG8gb3Zl cnJpZGUgYWNjZXNzIHRvIGEgcmVhZCBvbmx5IHBhZ2UuCisJICovCiAKIAlndHRfZW50cmllcyA9 IChnZW44X3B0ZV90IF9faW9tZW0gKilnZ3R0LT5nc207CiAJZ3R0X2VudHJpZXMgKz0gdm1hLT5u b2RlLnN0YXJ0ID4+IFBBR0VfU0hJRlQ7CkBAIC0yNjYzLDcgKzI2NjUsNyBAQCBzdGF0aWMgaW50 IGdndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAKIAkvKiBBcHBsaWNhYmxlIHRv IFZMViAoZ2VuOCsgZG8gbm90IHN1cHBvcnQgUk8gaW4gdGhlIEdHVFQpICovCiAJcHRlX2ZsYWdz ID0gMDsKLQlpZiAob2JqLT5ndF9ybykKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5 KG9iaikpCiAJCXB0ZV9mbGFncyB8PSBQVEVfUkVBRF9PTkxZOwogCiAJaW50ZWxfcnVudGltZV9w bV9nZXQoaTkxNSk7CkBAIC0yNzAxLDcgKzI3MDMsNyBAQCBzdGF0aWMgaW50IGFsaWFzaW5nX2d0 dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAogCS8qIEN1cnJlbnRseSBhcHBsaWNh YmxlIG9ubHkgdG8gVkxWICovCiAJcHRlX2ZsYWdzID0gMDsKLQlpZiAodm1hLT5vYmotPmd0X3Jv KQorCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfcmVhZG9ubHkodm1hLT5vYmopKQogCQlwdGVfZmxh Z3MgfD0gUFRFX1JFQURfT05MWTsKIAogCWlmIChmbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJTkQp IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggNTRmMDBiMzUwNzc5 Li5mZDcwM2Q3NjhiNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCkBA IC0xNDEsNyArMTQxLDYgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgewogCSAqIElzIHRo ZSBvYmplY3QgdG8gYmUgbWFwcGVkIGFzIHJlYWQtb25seSB0byB0aGUgR1BVCiAJICogT25seSBo b25vdXJlZCBpZiBoYXJkd2FyZSBoYXMgcmVsZXZhbnQgcHRlIGJpdAogCSAqLwotCXVuc2lnbmVk IGxvbmcgZ3Rfcm86MTsKIAl1bnNpZ25lZCBpbnQgY2FjaGVfbGV2ZWw6MzsKIAl1bnNpZ25lZCBp bnQgY2FjaGVfY29oZXJlbnQ6MjsKICNkZWZpbmUgSTkxNV9CT19DQUNIRV9DT0hFUkVOVF9GT1Jf UkVBRCBCSVQoMCkKQEAgLTM2Nyw2ICszNjYsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVf Z2VtX29iamVjdF91bmxvY2soc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXNl cnZhdGlvbl9vYmplY3RfdW5sb2NrKG9iai0+cmVzdik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9p ZAoraTkxNV9nZW1fb2JqZWN0X3NldF9yZWFkb25seShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQoreworCW9iai0+YmFzZS52bWFfbm9kZS5yZWFkb25seSA9IHRydWU7Cit9CisKK3N0 YXRpYyBpbmxpbmUgYm9vbAoraTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJcmV0dXJuIG9iai0+YmFzZS52bWFfbm9k ZS5yZWFkb25seTsKK30KKwogc3RhdGljIGlubGluZSBib29sCiBpOTE1X2dlbV9vYmplY3RfaGFz X3N0cnVjdF9wYWdlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggODg1M2E1ZTZkNDIxLi45 ZDU0YzNjMjRiMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAg LTExMTIsNyArMTExMiw3IEBAIGludGVsX3JpbmdfY3JlYXRlX3ZtYShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGludCBzaXplKQogCSAqIGlmIHN1cHBvcnRlZCBieSB0aGUgcGxh dGZvcm0ncyBHR1RULgogCSAqLwogCWlmICh2bS0+aGFzX3JlYWRfb25seSkKLQkJb2JqLT5ndF9y byA9IDE7CisJCWk5MTVfZ2VtX29iamVjdF9zZXRfcmVhZG9ubHkob2JqKTsKIAogCXZtYSA9IGk5 MTVfdm1hX2luc3RhbmNlKG9iaiwgdm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4 IDViYWU1MjA2ODkyNi4uZmVhNDQ3YjFhNzRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTUxMCw3ICs1MTAsOCBAQCBzdGF0 aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQogCQkJCQlnb3RvIG91dF91bmxvY2s7 CiAJCQkJfQogCi0JCQkJb2JqLT5ndF9ybyA9IHByYW5kb21fdTMyX3N0YXRlKCZwcm5nKTsKKwkJ CQlpZiAocHJhbmRvbV91MzJfc3RhdGUoJnBybmcpICYgMSkKKwkJCQkJaTkxNV9nZW1fb2JqZWN0 X3NldF9yZWFkb25seShvYmopOwogCQkJfQogCiAJCQlpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1 KTsKQEAgLTUzOSw3ICs1NDAsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAq YXJnKQogCQl1bnNpZ25lZCBpbnQgcmVtID0KIAkJCW1pbl90KHVuc2lnbmVkIGludCwgbmR3b3Jk cyAtIGR3LCBtYXhfZHdvcmRzKG9iaikpOwogCi0JCWlmIChvYmotPmd0X3JvKQorCQlpZiAoaTkx NV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KG9iaikpCiAJCQllcnIgPSByb19jaGVjayhvYmosIHJl bSk7CiAJCWVsc2UKIAkJCWVyciA9IGNwdV9jaGVjayhvYmosIHJlbSk7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fdm1hX21hbmFnZXIuaCBiL2luY2x1ZGUvZHJtL2RybV92bWFfbWFuYWdl ci5oCmluZGV4IDg3NThkZjk0ZTlhMC4uYzc5ODdkYWVhZWQwIDEwMDY0NAotLS0gYS9pbmNsdWRl L2RybS9kcm1fdm1hX21hbmFnZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fdm1hX21hbmFnZXIu aApAQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9kZSB7CiAJcndsb2Nr X3Qgdm1fbG9jazsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgdm1fbm9kZTsKIAlzdHJ1Y3QgcmJfcm9v dCB2bV9maWxlczsKKwlib29sIHJlYWRvbmx5OjE7CiB9OwogCiBzdHJ1Y3QgZHJtX3ZtYV9vZmZz ZXRfbWFuYWdlciB7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=