From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH v2 5/5] drm/i915: Add cpu fault handler for mmap_offset Date: Mon, 7 Oct 2019 11:48:45 +0300 Message-ID: <20191007084845.1554-5-abdiel.janulgue@linux.intel.com> References: <20190826122102.32400-1-abdiel.janulgue@linux.intel.com> <20191007084845.1554-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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id B77096E4DD for ; Mon, 7 Oct 2019 08:49:37 +0000 (UTC) In-Reply-To: <20191007084845.1554-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 amVjdHMuCgpTaWduZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBs aW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxk QGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jIHwg MTI1ICsrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAwIGluc2VydGlv bnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9tbWFuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f bW1hbi5jCmluZGV4IGE5NjA0ZDBkYjYwNi4uMDJhZmRhZTgxMmJhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKQEAgLTUsNiArNSw3IEBACiAgKi8KIAogI2luY2x1 ZGUgPGxpbnV4L21tYW4uaD4KKyNpbmNsdWRlIDxsaW51eC9wZm5fdC5oPgogI2luY2x1ZGUgPGxp bnV4L3NpemVzLmg+CiAKICNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgpAQCAtMjAwLDYgKzIwMSw2 NyBAQCBjb21wdXRlX3BhcnRpYWxfdmlldyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCXJldHVybiB2aWV3OwogfQogCitzdGF0aWMgdm1fZmF1bHRfdCBpOTE1X2Vycm9y X3RvX3ZtZl9mYXVsdChpbnQgZXJyKQoreworCXN3aXRjaCAoZXJyKSB7CisJZGVmYXVsdDoKKwkJ V0FSTl9PTkNFKGVyciwgInVuaGFuZGxlZCBlcnJvciBpbiAlczogJWlcbiIsIF9fZnVuY19fLCBl cnIpOworCQkvKiBmYWxsdGhyb3VnaCAqLworCWNhc2UgLUVJTzogLyogc2htZW1mcyBmYWlsdXJl IGZyb20gc3dhcCBkZXZpY2UgKi8KKwljYXNlIC1FRkFVTFQ6IC8qIHB1cmdlZCBvYmplY3QgKi8K KwljYXNlIC1FTk9ERVY6IC8qIGJhZCBvYmplY3QsIGhvdyBkaWQgeW91IGdldCBoZXJlISAqLwor CQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOworCisJY2FzZSAtRU5PU1BDOiAvKiBzaG1lbWZzIGFs bG9jYXRpb24gZmFpbHVyZSAqLworCWNhc2UgLUVOT01FTTogLyogb3VyIGFsbG9jYXRpb24gZmFp bHVyZSAqLworCQlyZXR1cm4gVk1fRkFVTFRfT09NOworCisJY2FzZSAwOgorCWNhc2UgLUVBR0FJ TjoKKwljYXNlIC1FUkVTVEFSVFNZUzoKKwljYXNlIC1FSU5UUjoKKwljYXNlIC1FQlVTWToKKwkJ LyoKKwkJICogRUJVU1kgaXMgb2s6IHRoaXMganVzdCBtZWFucyB0aGF0IGFub3RoZXIgdGhyZWFk CisJCSAqIGFscmVhZHkgZGlkIHRoZSBqb2IuCisJCSAqLworCQlyZXR1cm4gVk1fRkFVTFRfTk9Q QUdFOworCX0KK30KKworc3RhdGljIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHRfY3B1KHN0cnVj dCB2bV9mYXVsdCAqdm1mKQoreworCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqYXJlYSA9IHZtZi0+ dm1hOworCXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICpwcml2ID0gYXJlYS0+dm1fcHJpdmF0ZV9k YXRhOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBwcml2LT5vYmo7CisJdm1f ZmF1bHRfdCB2bWZfcmV0OworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IGFyZWEtPnZtX2VuZCAtIGFy ZWEtPnZtX3N0YXJ0OworCWJvb2wgd3JpdGUgPSBhcmVhLT52bV9mbGFncyAmIFZNX1dSSVRFOwor CWludCBpLCByZXQ7CisKKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBhbGxvdyB3cml0aW5nIGlu dG8gdGhpcyBvYmplY3QgKi8KKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KG9iaikg JiYgd3JpdGUpCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisKKwlyZXQgPSBpOTE1X2dlbV9v YmplY3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKHJldCkKKwkJcmV0dXJuIGk5MTVfZXJyb3JfdG9f dm1mX2ZhdWx0KHJldCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZSA+PiBQQUdFX1NISUZUOyBp KyspIHsKKwkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uob2Jq LCBpKTsKKworCQl2bWZfcmV0ID0gdm1mX2luc2VydF9wZm4oYXJlYSwKKwkJCQkJICh1bnNpZ25l ZCBsb25nKWFyZWEtPnZtX3N0YXJ0ICsgaSAqIFBBR0VfU0laRSwKKwkJCQkJIHBhZ2VfdG9fcGZu KHBhZ2UpKTsKKwkJaWYgKHZtZl9yZXQgJiBWTV9GQVVMVF9FUlJPUikKKwkJCWJyZWFrOworCX0K KworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOworCisJcmV0dXJuIHZtZl9yZXQ7 Cit9CisKIC8qKgogICogaTkxNV9nZW1fZmF1bHQgLSBmYXVsdCBhIHBhZ2UgaW50byB0aGUgR1RU CiAgKiBAdm1mOiBmYXVsdCBpbmZvCkBAIC0zNDIsMzAgKzQwNCw3IEBAIHZtX2ZhdWx0X3QgaTkx NV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJaW50ZWxfcnVudGltZV9wbV9wdXQo cnBtLCB3YWtlcmVmKTsKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIGVycjoK LQlzd2l0Y2ggKHJldCkgewotCWRlZmF1bHQ6Ci0JCVdBUk5fT05DRShyZXQsICJ1bmhhbmRsZWQg ZXJyb3IgaW4gJXM6ICVpXG4iLCBfX2Z1bmNfXywgcmV0KTsKLQkJLyogZmFsbHRocm91Z2ggKi8K LQljYXNlIC1FSU86IC8qIHNobWVtZnMgZmFpbHVyZSBmcm9tIHN3YXAgZGV2aWNlICovCi0JY2Fz ZSAtRUZBVUxUOiAvKiBwdXJnZWQgb2JqZWN0ICovCi0JY2FzZSAtRU5PREVWOiAvKiBiYWQgb2Jq ZWN0LCBob3cgZGlkIHlvdSBnZXQgaGVyZSEgKi8KLQkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsK LQotCWNhc2UgLUVOT1NQQzogLyogc2htZW1mcyBhbGxvY2F0aW9uIGZhaWx1cmUgKi8KLQljYXNl IC1FTk9NRU06IC8qIG91ciBhbGxvY2F0aW9uIGZhaWx1cmUgKi8KLQkJcmV0dXJuIFZNX0ZBVUxU X09PTTsKLQotCWNhc2UgMDoKLQljYXNlIC1FQUdBSU46Ci0JY2FzZSAtRVJFU1RBUlRTWVM6Ci0J Y2FzZSAtRUlOVFI6Ci0JY2FzZSAtRUJVU1k6Ci0JCS8qCi0JCSAqIEVCVVNZIGlzIG9rOiB0aGlz IGp1c3QgbWVhbnMgdGhhdCBhbm90aGVyIHRocmVhZAotCQkgKiBhbHJlYWR5IGRpZCB0aGUgam9i LgotCQkgKi8KLQkJcmV0dXJuIFZNX0ZBVUxUX05PUEFHRTsKLQl9CisJcmV0dXJuIGk5MTVfZXJy b3JfdG9fdm1mX2ZhdWx0KHJldCk7CiB9CiAKIHZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFz ZV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpAQCAtNjYwLDYgKzY5 OSwzMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2Vt X2d0dF92bV9vcHMgPSB7CiAJLmNsb3NlID0gaTkxNV9nZW1fdm1fY2xvc2UsCiB9OwogCitzdGF0 aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2VtX2NwdV92bV9vcHMg PSB7CisJLmZhdWx0ID0gaTkxNV9nZW1fZmF1bHRfY3B1LAorCS5vcGVuID0gaTkxNV9nZW1fdm1f b3BlbiwKKwkuY2xvc2UgPSBpOTE1X2dlbV92bV9jbG9zZSwKK307CisKK3N0YXRpYyB2b2lkIHNl dF92bWRhdGFfbW1hcF9vZmZzZXQoc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3dpdGNoIChtbW8tPm1tYXBfdHlwZSkgeworCWNh c2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1dDOgorCQl2bWEtPnZtX3BhZ2VfcHJvdCA9CisJCQlw Z3Byb3Rfd3JpdGVjb21iaW5lKHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncykpOworCQli cmVhazsKKwljYXNlIEk5MTVfTU1BUF9UWVBFX09GRlNFVF9XQjoKKwkJdm1hLT52bV9wYWdlX3By b3QgPSB2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpOworCQlicmVhazsKKwljYXNlIEk5 MTVfTU1BUF9UWVBFX09GRlNFVF9VQzoKKwkJdm1hLT52bV9wYWdlX3Byb3QgPQorCQkJcGdwcm90 X25vbmNhY2hlZCh2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpKTsKKwkJYnJlYWs7CisJ ZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJdm1hLT52bV9vcHMgPSAmaTkxNV9nZW1fY3B1X3Zt X29wczsKK30KKwogLyogVGhpcyBvdmVyY29tZXMgdGhlIGxpbWl0YXRpb24gaW4gZHJtX2dlbV9t bWFwJ3MgYXNzaWdubWVudCBvZiBhCiAgKiBkcm1fZ2VtX29iamVjdCBhcyB0aGUgdm1hLT52bV9w cml2YXRlX2RhdGEuIFNpbmNlIHdlIG5lZWQgdG8KICAqIGJlIGFibGUgdG8gcmVzb2x2ZSBtdWx0 aXBsZSBtbWFwIG9mZnNldHMgd2hpY2ggY291bGQgYmUgdGllZApAQCAtNzI3LDcgKzc5MywxNiBA QCBpbnQgaTkxNV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpCiAJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3RfZGVjcnlwdGVkKHZtYS0+dm1f cGFnZV9wcm90KTsKIAl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IG1tbzsKIAotCXZtYS0+dm1fb3Bz ID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7CisJc3dpdGNoIChtbW8tPm1tYXBfdHlwZSkgeworCWNh c2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1dDOgorCWNhc2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VU X1dCOgorCWNhc2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1VDOgorCQlzZXRfdm1kYXRhX21tYXBf b2Zmc2V0KG1tbywgdm1hKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X01NQVBfVFlQRV9HVFQ6CisJ CXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7CisJCWJyZWFrOworCX0KIAogCXJl dHVybiAwOwogfQotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=