From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH 5/5] drm/i915: Add cpu fault handler for mmap_offset Date: Wed, 23 Oct 2019 11:30:30 +0300 Message-ID: <20191023083030.27892-5-abdiel.janulgue@linux.intel.com> References: <20191023083030.27892-1-abdiel.janulgue@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id D0DA66E9E0 for ; Wed, 23 Oct 2019 08:30:44 +0000 (UTC) In-Reply-To: <20191023083030.27892-1-abdiel.janulgue@linux.intel.com> 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: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org RmF1bHQgaGFuZGxlciB0byBoYW5kbGUgbWlzc2luZyBwYWdlcyBmb3Igc2htZW0tYmFja2VkIG9i amVjdHMuCgp2MjogYmFpbCBvdXQgb2YgaW5zZXJ0aW5nIFBURXMgd2hlbiBmYWlsaW5nIHRvIGlu c2VydCB0aGUKICAgIGZhdWx0IGFkZHJlc3MKdjM6IGhhcyBzdHJ1Y3QgcGFnZSBjaGVjawoKU2ln bmVkLW9mZi1ieTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYyB8IDEyOCArKysrKysr KysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAyNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwppbmRl eCAyMDkyNzNiODM2YWQuLjJjMzhmNWNmMzY3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fbW1hbi5jCkBAIC01LDYgKzUsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9t bWFuLmg+CisjaW5jbHVkZSA8bGludXgvcGZuX3QuaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5o PgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKQEAgLTIwMCw2ICsyMDEsNzAgQEAgY29tcHV0 ZV9wYXJ0aWFsX3ZpZXcoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAly ZXR1cm4gdmlldzsKIH0KIAorc3RhdGljIHZtX2ZhdWx0X3QgaTkxNV9lcnJvcl90b192bWZfZmF1 bHQoaW50IGVycikKK3sKKwlzd2l0Y2ggKGVycikgeworCWRlZmF1bHQ6CisJCVdBUk5fT05DRShl cnIsICJ1bmhhbmRsZWQgZXJyb3IgaW4gJXM6ICVpXG4iLCBfX2Z1bmNfXywgZXJyKTsKKwkJLyog ZmFsbHRocm91Z2ggKi8KKwljYXNlIC1FSU86IC8qIHNobWVtZnMgZmFpbHVyZSBmcm9tIHN3YXAg ZGV2aWNlICovCisJY2FzZSAtRUZBVUxUOiAvKiBwdXJnZWQgb2JqZWN0ICovCisJY2FzZSAtRU5P REVWOiAvKiBiYWQgb2JqZWN0LCBob3cgZGlkIHlvdSBnZXQgaGVyZSEgKi8KKwkJcmV0dXJuIFZN X0ZBVUxUX1NJR0JVUzsKKworCWNhc2UgLUVOT1NQQzogLyogc2htZW1mcyBhbGxvY2F0aW9uIGZh aWx1cmUgKi8KKwljYXNlIC1FTk9NRU06IC8qIG91ciBhbGxvY2F0aW9uIGZhaWx1cmUgKi8KKwkJ cmV0dXJuIFZNX0ZBVUxUX09PTTsKKworCWNhc2UgMDoKKwljYXNlIC1FQUdBSU46CisJY2FzZSAt RVJFU1RBUlRTWVM6CisJY2FzZSAtRUlOVFI6CisJY2FzZSAtRUJVU1k6CisJCS8qCisJCSAqIEVC VVNZIGlzIG9rOiB0aGlzIGp1c3QgbWVhbnMgdGhhdCBhbm90aGVyIHRocmVhZAorCQkgKiBhbHJl YWR5IGRpZCB0aGUgam9iLgorCQkgKi8KKwkJcmV0dXJuIFZNX0ZBVUxUX05PUEFHRTsKKwl9Cit9 CisKK3N0YXRpYyB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0X2NwdShzdHJ1Y3Qgdm1fZmF1bHQg KnZtZikKK3sKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEgPSB2bWYtPnZtYTsKKwlzdHJ1 Y3QgaTkxNV9tbWFwX29mZnNldCAqcHJpdiA9IGFyZWEtPnZtX3ByaXZhdGVfZGF0YTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcHJpdi0+b2JqOworCXZtX2ZhdWx0X3Qgdm1m X3JldDsKKwl1bnNpZ25lZCBsb25nIGksIHNpemUgPSBhcmVhLT52bV9lbmQgLSBhcmVhLT52bV9z dGFydDsKKwlib29sIHdyaXRlID0gYXJlYS0+dm1fZmxhZ3MgJiBWTV9XUklURTsKKwlpbnQgcmV0 OworCisJaWYgKCFpOTE1X2dlbV9vYmplY3RfaGFzX3N0cnVjdF9wYWdlKG9iaikpCisJCXJldHVy biBWTV9GQVVMVF9TSUdCVVM7CisKKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBhbGxvdyB3cml0 aW5nIGludG8gdGhpcyBvYmplY3QgKi8KKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5 KG9iaikgJiYgd3JpdGUpCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisKKwlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKHJldCkKKwkJcmV0dXJuIGk5MTVfZXJy b3JfdG9fdm1mX2ZhdWx0KHJldCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZSA+PiBQQUdFX1NI SUZUOyBpKyspIHsKKwkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2Uob2JqLCBpKTsKKworCQl2bWZfcmV0ID0gdm1mX2luc2VydF9wZm4oYXJlYSwKKwkJCQkJICh1 bnNpZ25lZCBsb25nKWFyZWEtPnZtX3N0YXJ0ICsgaSAqIFBBR0VfU0laRSwKKwkJCQkJIHBhZ2Vf dG9fcGZuKHBhZ2UpKTsKKwkJaWYgKHZtZl9yZXQgIT0gVk1fRkFVTFRfTk9QQUdFKQorCQkJYnJl YWs7CisJfQorCisJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisKKwlyZXR1cm4g dm1mX3JldDsKK30KKwogLyoqCiAgKiBpOTE1X2dlbV9mYXVsdCAtIGZhdWx0IGEgcGFnZSBpbnRv IHRoZSBHVFQKICAqIEB2bWY6IGZhdWx0IGluZm8KQEAgLTMzOSwzMCArNDA0LDcgQEAgdm1fZmF1 bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAlpbnRlbF9ydW50aW1l X3BtX3B1dChycG0sIHdha2VyZWYpOwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmop OwogZXJyOgotCXN3aXRjaCAocmV0KSB7Ci0JZGVmYXVsdDoKLQkJV0FSTl9PTkNFKHJldCwgInVu aGFuZGxlZCBlcnJvciBpbiAlczogJWlcbiIsIF9fZnVuY19fLCByZXQpOwotCQkvKiBmYWxsdGhy b3VnaCAqLwotCWNhc2UgLUVJTzogLyogc2htZW1mcyBmYWlsdXJlIGZyb20gc3dhcCBkZXZpY2Ug Ki8KLQljYXNlIC1FRkFVTFQ6IC8qIHB1cmdlZCBvYmplY3QgKi8KLQljYXNlIC1FTk9ERVY6IC8q IGJhZCBvYmplY3QsIGhvdyBkaWQgeW91IGdldCBoZXJlISAqLwotCQlyZXR1cm4gVk1fRkFVTFRf U0lHQlVTOwotCi0JY2FzZSAtRU5PU1BDOiAvKiBzaG1lbWZzIGFsbG9jYXRpb24gZmFpbHVyZSAq LwotCWNhc2UgLUVOT01FTTogLyogb3VyIGFsbG9jYXRpb24gZmFpbHVyZSAqLwotCQlyZXR1cm4g Vk1fRkFVTFRfT09NOwotCi0JY2FzZSAwOgotCWNhc2UgLUVBR0FJTjoKLQljYXNlIC1FUkVTVEFS VFNZUzoKLQljYXNlIC1FSU5UUjoKLQljYXNlIC1FQlVTWToKLQkJLyoKLQkJICogRUJVU1kgaXMg b2s6IHRoaXMganVzdCBtZWFucyB0aGF0IGFub3RoZXIgdGhyZWFkCi0JCSAqIGFscmVhZHkgZGlk IHRoZSBqb2IuCi0JCSAqLwotCQlyZXR1cm4gVk1fRkFVTFRfTk9QQUdFOwotCX0KKwlyZXR1cm4g aTkxNV9lcnJvcl90b192bWZfZmF1bHQocmV0KTsKIH0KIAogdm9pZCBfX2k5MTVfZ2VtX29iamVj dF9yZWxlYXNlX21tYXBfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCkBAIC02 NTAsNiArNjkyLDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qg aTkxNV9nZW1fZ3R0X3ZtX29wcyA9IHsKIAkuY2xvc2UgPSBpOTE1X2dlbV92bV9jbG9zZSwKIH07 CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1fY3B1 X3ZtX29wcyA9IHsKKwkuZmF1bHQgPSBpOTE1X2dlbV9mYXVsdF9jcHUsCisJLm9wZW4gPSBpOTE1 X2dlbV92bV9vcGVuLAorCS5jbG9zZSA9IGk5MTVfZ2VtX3ZtX2Nsb3NlLAorfTsKKworc3RhdGlj IHZvaWQgc2V0X3ZtZGF0YV9tbWFwX29mZnNldChzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1v LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzd2l0Y2ggKG1tby0+bW1hcF90eXBl KSB7CisJY2FzZSBJOTE1X01NQVBfVFlQRV9XQzoKKwkJdm1hLT52bV9wYWdlX3Byb3QgPQorCQkJ cGdwcm90X3dyaXRlY29tYmluZSh2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpKTsKKwkJ YnJlYWs7CisJY2FzZSBJOTE1X01NQVBfVFlQRV9XQjoKKwkJdm1hLT52bV9wYWdlX3Byb3QgPSB2 bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpOworCQlicmVhazsKKwljYXNlIEk5MTVfTU1B UF9UWVBFX1VDOgorCQl2bWEtPnZtX3BhZ2VfcHJvdCA9CisJCQlwZ3Byb3Rfbm9uY2FjaGVkKHZt X2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncykpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQli cmVhazsKKwl9CisKKwl2bWEtPnZtX29wcyA9ICZpOTE1X2dlbV9jcHVfdm1fb3BzOworfQorCiAv KiBUaGlzIG92ZXJjb21lcyB0aGUgbGltaXRhdGlvbiBpbiBkcm1fZ2VtX21tYXAncyBhc3NpZ25t ZW50IG9mIGEKICAqIGRybV9nZW1fb2JqZWN0IGFzIHRoZSB2bWEtPnZtX3ByaXZhdGVfZGF0YS4g U2luY2Ugd2UgbmVlZCB0bwogICogYmUgYWJsZSB0byByZXNvbHZlIG11bHRpcGxlIG1tYXAgb2Zm c2V0cyB3aGljaCBjb3VsZCBiZSB0aWVkCkBAIC03MTcsNyArNzg2LDE2IEBAIGludCBpOTE1X2dl bV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAl2 bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9kZWNyeXB0ZWQodm1hLT52bV9wYWdlX3Byb3QpOwog CXZtYS0+dm1fcHJpdmF0ZV9kYXRhID0gbW1vOwogCi0Jdm1hLT52bV9vcHMgPSAmaTkxNV9nZW1f Z3R0X3ZtX29wczsKKwlzd2l0Y2ggKG1tby0+bW1hcF90eXBlKSB7CisJY2FzZSBJOTE1X01NQVBf VFlQRV9XQzoKKwljYXNlIEk5MTVfTU1BUF9UWVBFX1dCOgorCWNhc2UgSTkxNV9NTUFQX1RZUEVf VUM6CisJCXNldF92bWRhdGFfbW1hcF9vZmZzZXQobW1vLCB2bWEpOworCQlicmVhazsKKwljYXNl IEk5MTVfTU1BUF9UWVBFX0dUVDoKKwkJdm1hLT52bV9vcHMgPSAmaTkxNV9nZW1fZ3R0X3ZtX29w czsKKwkJYnJlYWs7CisJfQogCiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjIzLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==