From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH v3 5/5] drm/i915: Add cpu fault handler for mmap_offset Date: Tue, 15 Oct 2019 11:37:24 +0300 Message-ID: <20191015083724.24390-5-abdiel.janulgue@linux.intel.com> References: <20191015083724.24390-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 D8BA06E787 for ; Tue, 15 Oct 2019 08:37:46 +0000 (UTC) In-Reply-To: <20191015083724.24390-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 c2VydCB0aGUKICAgIGZhdWx0IGFkZHJlc3MKClNpZ25lZC1vZmYtYnk6IEFiZGllbCBKYW51bGd1 ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhl dyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29u YXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9tbWFuLmMgfCAxMjUgKysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKaW5kZXggNWVlOTdjNjRjNmQ2Li45MjMyN2ZhMjdl YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwpAQCAtNSw2ICs1 LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW1hbi5oPgorI2luY2x1ZGUgPGxpbnV4L3Bm bl90Lmg+CiAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KIAogI2luY2x1ZGUgImd0L2ludGVsX2d0 LmgiCkBAIC0yMDAsNiArMjAxLDY3IEBAIGNvbXB1dGVfcGFydGlhbF92aWV3KGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJcmV0dXJuIHZpZXc7CiB9CiAKK3N0YXRpYyB2 bV9mYXVsdF90IGk5MTVfZXJyb3JfdG9fdm1mX2ZhdWx0KGludCBlcnIpCit7CisJc3dpdGNoIChl cnIpIHsKKwlkZWZhdWx0OgorCQlXQVJOX09OQ0UoZXJyLCAidW5oYW5kbGVkIGVycm9yIGluICVz OiAlaVxuIiwgX19mdW5jX18sIGVycik7CisJCS8qIGZhbGx0aHJvdWdoICovCisJY2FzZSAtRUlP OiAvKiBzaG1lbWZzIGZhaWx1cmUgZnJvbSBzd2FwIGRldmljZSAqLworCWNhc2UgLUVGQVVMVDog LyogcHVyZ2VkIG9iamVjdCAqLworCWNhc2UgLUVOT0RFVjogLyogYmFkIG9iamVjdCwgaG93IGRp ZCB5b3UgZ2V0IGhlcmUhICovCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisKKwljYXNlIC1F Tk9TUEM6IC8qIHNobWVtZnMgYWxsb2NhdGlvbiBmYWlsdXJlICovCisJY2FzZSAtRU5PTUVNOiAv KiBvdXIgYWxsb2NhdGlvbiBmYWlsdXJlICovCisJCXJldHVybiBWTV9GQVVMVF9PT007CisKKwlj YXNlIDA6CisJY2FzZSAtRUFHQUlOOgorCWNhc2UgLUVSRVNUQVJUU1lTOgorCWNhc2UgLUVJTlRS OgorCWNhc2UgLUVCVVNZOgorCQkvKgorCQkgKiBFQlVTWSBpcyBvazogdGhpcyBqdXN0IG1lYW5z IHRoYXQgYW5vdGhlciB0aHJlYWQKKwkJICogYWxyZWFkeSBkaWQgdGhlIGpvYi4KKwkJICovCisJ CXJldHVybiBWTV9GQVVMVF9OT1BBR0U7CisJfQorfQorCitzdGF0aWMgdm1fZmF1bHRfdCBpOTE1 X2dlbV9mYXVsdF9jcHUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCit7CisJc3RydWN0IHZtX2FyZWFf c3RydWN0ICphcmVhID0gdm1mLT52bWE7CisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKnByaXYg PSBhcmVhLT52bV9wcml2YXRlX2RhdGE7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IHByaXYtPm9iajsKKwl2bV9mYXVsdF90IHZtZl9yZXQ7CisJdW5zaWduZWQgbG9uZyBpLCBz aXplID0gYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQ7CisJYm9vbCB3cml0ZSA9IGFyZWEt PnZtX2ZsYWdzICYgVk1fV1JJVEU7CisJaW50IHJldDsKKworCS8qIFNhbml0eSBjaGVjayB0aGF0 IHdlIGFsbG93IHdyaXRpbmcgaW50byB0aGlzIG9iamVjdCAqLworCWlmIChpOTE1X2dlbV9vYmpl Y3RfaXNfcmVhZG9ubHkob2JqKSAmJiB3cml0ZSkKKwkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsK KworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gaTkxNV9lcnJvcl90b192bWZfZmF1bHQocmV0KTsKKworCWZvciAoaSA9IDA7IGkgPCBz aXplID4+IFBBR0VfU0hJRlQ7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGk5MTVfZ2Vt X29iamVjdF9nZXRfcGFnZShvYmosIGkpOworCisJCXZtZl9yZXQgPSB2bWZfaW5zZXJ0X3Bmbihh cmVhLAorCQkJCQkgKHVuc2lnbmVkIGxvbmcpYXJlYS0+dm1fc3RhcnQgKyBpICogUEFHRV9TSVpF LAorCQkJCQkgcGFnZV90b19wZm4ocGFnZSkpOworCQlpZiAodm1mX3JldCAhPSBWTV9GQVVMVF9O T1BBR0UpCisJCQlicmVhazsKKwl9CisKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2Jq KTsKKworCXJldHVybiB2bWZfcmV0OworfQorCiAvKioKICAqIGk5MTVfZ2VtX2ZhdWx0IC0gZmF1 bHQgYSBwYWdlIGludG8gdGhlIEdUVAogICogQHZtZjogZmF1bHQgaW5mbwpAQCAtMzM5LDMwICs0 MDEsNyBAQCB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQog CWludGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgd2FrZXJlZik7CiAJaTkxNV9nZW1fb2JqZWN0X3Vu cGluX3BhZ2VzKG9iaik7CiBlcnI6Ci0Jc3dpdGNoIChyZXQpIHsKLQlkZWZhdWx0OgotCQlXQVJO X09OQ0UocmV0LCAidW5oYW5kbGVkIGVycm9yIGluICVzOiAlaVxuIiwgX19mdW5jX18sIHJldCk7 Ci0JCS8qIGZhbGx0aHJvdWdoICovCi0JY2FzZSAtRUlPOiAvKiBzaG1lbWZzIGZhaWx1cmUgZnJv bSBzd2FwIGRldmljZSAqLwotCWNhc2UgLUVGQVVMVDogLyogcHVyZ2VkIG9iamVjdCAqLwotCWNh c2UgLUVOT0RFVjogLyogYmFkIG9iamVjdCwgaG93IGRpZCB5b3UgZ2V0IGhlcmUhICovCi0JCXJl dHVybiBWTV9GQVVMVF9TSUdCVVM7Ci0KLQljYXNlIC1FTk9TUEM6IC8qIHNobWVtZnMgYWxsb2Nh dGlvbiBmYWlsdXJlICovCi0JY2FzZSAtRU5PTUVNOiAvKiBvdXIgYWxsb2NhdGlvbiBmYWlsdXJl ICovCi0JCXJldHVybiBWTV9GQVVMVF9PT007Ci0KLQljYXNlIDA6Ci0JY2FzZSAtRUFHQUlOOgot CWNhc2UgLUVSRVNUQVJUU1lTOgotCWNhc2UgLUVJTlRSOgotCWNhc2UgLUVCVVNZOgotCQkvKgot CQkgKiBFQlVTWSBpcyBvazogdGhpcyBqdXN0IG1lYW5zIHRoYXQgYW5vdGhlciB0aHJlYWQKLQkJ ICogYWxyZWFkeSBkaWQgdGhlIGpvYi4KLQkJICovCi0JCXJldHVybiBWTV9GQVVMVF9OT1BBR0U7 Ci0JfQorCXJldHVybiBpOTE1X2Vycm9yX3RvX3ZtZl9mYXVsdChyZXQpOwogfQogCiB2b2lkIF9f aTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKQEAgLTY0Nyw2ICs2ODYsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVy YXRpb25zX3N0cnVjdCBpOTE1X2dlbV9ndHRfdm1fb3BzID0gewogCS5jbG9zZSA9IGk5MTVfZ2Vt X3ZtX2Nsb3NlLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVj dCBpOTE1X2dlbV9jcHVfdm1fb3BzID0geworCS5mYXVsdCA9IGk5MTVfZ2VtX2ZhdWx0X2NwdSwK Kwkub3BlbiA9IGk5MTVfZ2VtX3ZtX29wZW4sCisJLmNsb3NlID0gaTkxNV9nZW1fdm1fY2xvc2Us Cit9OworCitzdGF0aWMgdm9pZCBzZXRfdm1kYXRhX21tYXBfb2Zmc2V0KHN0cnVjdCBpOTE1X21t YXBfb2Zmc2V0ICptbW8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN3aXRjaCAo bW1vLT5tbWFwX3R5cGUpIHsKKwljYXNlIEk5MTVfTU1BUF9UWVBFX1dDOgorCQl2bWEtPnZtX3Bh Z2VfcHJvdCA9CisJCQlwZ3Byb3Rfd3JpdGVjb21iaW5lKHZtX2dldF9wYWdlX3Byb3Qodm1hLT52 bV9mbGFncykpOworCQlicmVhazsKKwljYXNlIEk5MTVfTU1BUF9UWVBFX1dCOgorCQl2bWEtPnZt X3BhZ2VfcHJvdCA9IHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncyk7CisJCWJyZWFrOwor CWNhc2UgSTkxNV9NTUFQX1RZUEVfVUM6CisJCXZtYS0+dm1fcGFnZV9wcm90ID0KKwkJCXBncHJv dF9ub25jYWNoZWQodm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJCWJyZWFrOwor CWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2NwdV92 bV9vcHM7Cit9CisKIC8qIFRoaXMgb3ZlcmNvbWVzIHRoZSBsaW1pdGF0aW9uIGluIGRybV9nZW1f bW1hcCdzIGFzc2lnbm1lbnQgb2YgYQogICogZHJtX2dlbV9vYmplY3QgYXMgdGhlIHZtYS0+dm1f cHJpdmF0ZV9kYXRhLiBTaW5jZSB3ZSBuZWVkIHRvCiAgKiBiZSBhYmxlIHRvIHJlc29sdmUgbXVs dGlwbGUgbW1hcCBvZmZzZXRzIHdoaWNoIGNvdWxkIGJlIHRpZWQKQEAgLTcxNCw3ICs3ODAsMTYg QEAgaW50IGk5MTVfZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKQogCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X2RlY3J5cHRlZCh2bWEtPnZt X3BhZ2VfcHJvdCk7CiAJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBtbW87CiAKLQl2bWEtPnZtX29w cyA9ICZpOTE1X2dlbV9ndHRfdm1fb3BzOworCXN3aXRjaCAobW1vLT5tbWFwX3R5cGUpIHsKKwlj YXNlIEk5MTVfTU1BUF9UWVBFX1dDOgorCWNhc2UgSTkxNV9NTUFQX1RZUEVfV0I6CisJY2FzZSBJ OTE1X01NQVBfVFlQRV9VQzoKKwkJc2V0X3ZtZGF0YV9tbWFwX29mZnNldChtbW8sIHZtYSk7CisJ CWJyZWFrOworCWNhc2UgSTkxNV9NTUFQX1RZUEVfR1RUOgorCQl2bWEtPnZtX29wcyA9ICZpOTE1 X2dlbV9ndHRfdm1fb3BzOworCQlicmVhazsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjMu MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4