From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH 4/4] drm/i915: Add cpu fault handler for mmap_offset Date: Fri, 15 Nov 2019 13:45:49 +0200 Message-ID: <20191115114549.23716-4-abdiel.janulgue@linux.intel.com> References: <20191115114549.23716-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E6EE6E4DD for ; Fri, 15 Nov 2019 11:45:59 +0000 (UTC) In-Reply-To: <20191115114549.23716-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 c2VydCB0aGUKICAgIGZhdWx0IGFkZHJlc3MKdjM6IGhhcyBzdHJ1Y3QgcGFnZSBjaGVjawp2NDog QWRkIHNlbGYtdGVzdCBmb3IgdmFsaWRhdGluZyBDUFUgZmF1bHQgaGFuZGxlciB0byBlbnN1cmUg UFRFcwogICAgYXJlIHJldm9rZWQgd2hlbiBhbiBvYmplY3QgaXMgdW5ib3VuZC4KClNpZ25lZC1v ZmYtYnk6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgICAgICB8IDEyOCArKysrKysr KysrKysrKy0tLS0KIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyAg ICB8ICA0NyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCAzNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwppbmRl eCBjMTc1NmU0ZjQ2YjkuLjJmN2VkMmU2ZGZhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fbW1hbi5jCkBAIC01LDYgKzUsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9t bWFuLmg+CisjaW5jbHVkZSA8bGludXgvcGZuX3QuaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5o PgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKQEAgLTIwMSw2ICsyMDIsNzAgQEAgY29tcHV0 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 IHRoZSBHVFQKICAqIEB2bWY6IGZhdWx0IGluZm8KQEAgLTM0MCwzMCArNDA1LDcgQEAgdm1fZmF1 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 czsKKwkJYnJlYWs7CisJfQogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCmluZGV4IDYzZTI0ZjZiMGQ0MC4u MWJlZGM5ZDExNWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYwpAQCAtNzMxLDExICs3MzEsMTMgQEAgc3RhdGljIGludCBpZ3Rf bW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCiB9CiAKICNkZWZpbmUgZXhwYW5kMzIo eCkgKCgoeCkgPDwgMCkgfCAoKHgpIDw8IDgpIHwgKCh4KSA8PCAxNikgfCAoKHgpIDw8IDI0KSkK LXN0YXRpYyBpbnQgaWd0X21tYXBfZ3R0KHZvaWQgKmFyZykKK3N0YXRpYyBpbnQgaWd0X21tYXAo dm9pZCAqYXJnLCBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsK IAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWE7CisJLyogT3duZXJzaGlwIHRyYW5zZmVycmVk IHRvIHBhcmVudCBnZW0gb2JqZWN0IGluIGNyZWF0ZV9tbWFwX29mZnNldCAqLworCXN0cnVjdCBp OTE1X21tYXBfb2Zmc2V0ICptbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQX0tFUk5FTCk7 CiAJdW5zaWduZWQgbG9uZyBhZGRyOwogCXZvaWQgKnZhZGRyOwogCWludCBlcnIsIGk7CkBAIC03 NTYsMTEgKzc1OCwxMiBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0dCh2b2lkICphcmcpCiAJaTkx NV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmopOwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo b2JqKTsKIAotCWVyciA9IGNyZWF0ZV9tbWFwX29mZnNldChvYmopOworCWVyciA9IGNyZWF0ZV9t bWFwX29mZnNldChvYmosIG1tbyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKLQlhZGRyID0g aWd0X21tYXBfbm9kZShpOTE1LCAmb2JqLT5iYXNlLnZtYV9ub2RlLAorCW1tby0+bW1hcF90eXBl ID0gdHlwZTsKKwlhZGRyID0gaWd0X21tYXBfbm9kZShpOTE1LCAmbW1vLT52bWFfbm9kZSwKIAkJ CSAgICAgMCwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCk7CiAJaWYgKElTX0VSUl9WQUxVRShhZGRy KSkgewogCQllcnIgPSBhZGRyOwpAQCAtNzc2LDggKzc3OSw4IEBAIHN0YXRpYyBpbnQgaWd0X21t YXBfZ3R0KHZvaWQgKmFyZykKIAkJZ290byBvdXRfdW5tYXA7CiAJfQogCi0JaWYgKGFyZWEtPnZt X3ByaXZhdGVfZGF0YSAhPSBvYmopIHsKLQkJcHJfZXJyKCJ2bV9hcmVhX3N0cnVjdCBkaWQgbm90 IHBvaW50IGJhY2sgdG8gb3VyIG9iamVjdCFcbiIpOworCWlmIChhcmVhLT52bV9wcml2YXRlX2Rh dGEgIT0gbW1vKSB7CisJCXByX2Vycigidm1fYXJlYV9zdHJ1Y3QgZGlkIG5vdCBwb2ludCBiYWNr IHRvIG91ciBtbWFwX29mZnNldCBvYmplY3QhXG4iKTsKIAkJZXJyID0gLUVJTlZBTDsKIAkJZ290 byBvdXRfdW5tYXA7CiAJfQpAQCAtODI4LDYgKzgzMSwxNiBAQCBzdGF0aWMgaW50IGlndF9tbWFw X2d0dCh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBpZ3RfbW1hcF9n dHQodm9pZCAqYXJnKQoreworCXJldHVybiBpZ3RfbW1hcChhcmcsIEk5MTVfTU1BUF9UWVBFX0dU VCk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21tYXBfY3B1KHZvaWQgKmFyZykKK3sKKwlyZXR1cm4g aWd0X21tYXAoYXJnLCBJOTE1X01NQVBfVFlQRV9XQyk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tf cHJlc2VudF9wdGUocHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB2b2lkICpkYXRhKQog ewogCWlmICghcHRlX3ByZXNlbnQoKnB0ZSkgfHwgcHRlX25vbmUoKnB0ZSkpIHsKQEAgLTg4MCwx MCArODkzLDEyIEBAIHN0YXRpYyBpbnQgcHJlZmF1bHRfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgbGVu KQogCXJldHVybiBfX2dldF91c2VyKGMsIGVuZCAtIDEpOwogfQogCi1zdGF0aWMgaW50IGlndF9t bWFwX2d0dF9yZXZva2Uodm9pZCAqYXJnKQorc3RhdGljIGludCBpZ3RfbW1hcF9yZXZva2Uodm9p ZCAqYXJnLCBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwkv KiBPd25lcnNoaXAgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGdlbSBvYmplY3QgaW4gY3JlYXRlX21t YXBfb2Zmc2V0ICovCisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IGt6YWxsb2Moc2l6 ZW9mKCptbW8pLCBHRlBfS0VSTkVMKTsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJaW50IGVycjsK IApAQCAtODk0LDExICs5MDksMTIgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9ndHRfcmV2b2tlKHZv aWQgKmFyZykKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKLQll cnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKKwllcnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQo b2JqLCBtbW8pOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCi0JYWRkciA9IGlndF9tbWFwX25v ZGUoaTkxNSwgJm9iai0+YmFzZS52bWFfbm9kZSwKKwltbW8tPm1tYXBfdHlwZSA9IHR5cGU7CisJ YWRkciA9IGlndF9tbWFwX25vZGUoaTkxNSwgJm1tby0+dm1hX25vZGUsCiAJCQkgICAgIDAsIFBS T1RfV1JJVEUsIE1BUF9TSEFSRUQpOwogCWlmIChJU19FUlJfVkFMVUUoYWRkcikpIHsKIAkJZXJy ID0gYWRkcjsKQEAgLTkwOSw3ICs5MjUsOCBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0dF9yZXZv a2Uodm9pZCAqYXJnKQogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3VubWFwOwogCi0JR0VNX0JVR19P TighYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpOworCUdFTV9CVUdfT04obW1vLT5tbWFw X3R5cGUgPT0gSTkxNV9NTUFQX1RZUEVfR1RUICYmCisJCSAgICFhdG9taWNfcmVhZCgmb2JqLT5i aW5kX2NvdW50KSk7CiAKIAllcnIgPSBjaGVja19wcmVzZW50KGFkZHIsIG9iai0+YmFzZS5zaXpl KTsKIAlpZiAoZXJyKQpAQCAtOTQ3LDYgKzk2NCwxNiBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0 dF9yZXZva2Uodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X21t YXBfZ3R0X3Jldm9rZSh2b2lkICphcmcpCit7CisJcmV0dXJuIGlndF9tbWFwX3Jldm9rZShhcmcs IEk5MTVfTU1BUF9UWVBFX0dUVCk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21tYXBfY3B1X3Jldm9r ZSh2b2lkICphcmcpCit7CisJcmV0dXJuIGlndF9tbWFwX3Jldm9rZShhcmcsIEk5MTVfTU1BUF9U WVBFX1dDKTsKK30KKwogaW50IGk5MTVfZ2VtX21tYW5fbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRl c3QgdGVzdHNbXSA9IHsKQEAgLTk1NCw3ICs5ODEsOSBAQCBpbnQgaTkxNV9nZW1fbW1hbl9saXZl X3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChpZ3Rf c21va2VfdGlsaW5nKSwKIAkJU1VCVEVTVChpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbiksCiAJ CVNVQlRFU1QoaWd0X21tYXBfZ3R0KSwKKwkJU1VCVEVTVChpZ3RfbW1hcF9jcHUpLAogCQlTVUJU RVNUKGlndF9tbWFwX2d0dF9yZXZva2UpLAorCQlTVUJURVNUKGlndF9tbWFwX2NwdV9yZXZva2Up LAogCX07CiAKIAlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7Ci0tIAoyLjIzLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1556C43215 for ; Fri, 15 Nov 2019 11:46:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AFC852072D for ; Fri, 15 Nov 2019 11:46:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AFC852072D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E58B6E4C4; Fri, 15 Nov 2019 11:46:01 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E6EE6E4DD for ; Fri, 15 Nov 2019 11:45:59 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 03:45:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="257738228" Received: from thijsmet-mobl2.ger.corp.intel.com (HELO skylake-nuc.ger.corp.intel.com) ([10.249.254.150]) by FMSMGA003.fm.intel.com with ESMTP; 15 Nov 2019 03:45:57 -0800 From: Abdiel Janulgue To: intel-gfx@lists.freedesktop.org Date: Fri, 15 Nov 2019 13:45:49 +0200 Message-Id: <20191115114549.23716-4-abdiel.janulgue@linux.intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191115114549.23716-1-abdiel.janulgue@linux.intel.com> References: <20191115114549.23716-1-abdiel.janulgue@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 4/4] drm/i915: Add cpu fault handler for mmap_offset X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Matthew Auld Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191115114549.9Q2lD0xPT-ADV9nQaKZtzZWibiynO7OB5OMbzDnR5pg@z> RmF1bHQgaGFuZGxlciB0byBoYW5kbGUgbWlzc2luZyBwYWdlcyBmb3Igc2htZW0tYmFja2VkIG9i amVjdHMuCgp2MjogYmFpbCBvdXQgb2YgaW5zZXJ0aW5nIFBURXMgd2hlbiBmYWlsaW5nIHRvIGlu c2VydCB0aGUKICAgIGZhdWx0IGFkZHJlc3MKdjM6IGhhcyBzdHJ1Y3QgcGFnZSBjaGVjawp2NDog QWRkIHNlbGYtdGVzdCBmb3IgdmFsaWRhdGluZyBDUFUgZmF1bHQgaGFuZGxlciB0byBlbnN1cmUg UFRFcwogICAgYXJlIHJldm9rZWQgd2hlbiBhbiBvYmplY3QgaXMgdW5ib3VuZC4KClNpZ25lZC1v ZmYtYnk6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgICAgICB8IDEyOCArKysrKysr KysrKysrKy0tLS0KIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyAg ICB8ICA0NyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCAzNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwppbmRl eCBjMTc1NmU0ZjQ2YjkuLjJmN2VkMmU2ZGZhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fbW1hbi5jCkBAIC01LDYgKzUsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9t bWFuLmg+CisjaW5jbHVkZSA8bGludXgvcGZuX3QuaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5o PgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKQEAgLTIwMSw2ICsyMDIsNzAgQEAgY29tcHV0 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 IHRoZSBHVFQKICAqIEB2bWY6IGZhdWx0IGluZm8KQEAgLTM0MCwzMCArNDA1LDcgQEAgdm1fZmF1 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 czsKKwkJYnJlYWs7CisJfQogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCmluZGV4IDYzZTI0ZjZiMGQ0MC4u MWJlZGM5ZDExNWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYwpAQCAtNzMxLDExICs3MzEsMTMgQEAgc3RhdGljIGludCBpZ3Rf bW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lkICphcmcpCiB9CiAKICNkZWZpbmUgZXhwYW5kMzIo eCkgKCgoeCkgPDwgMCkgfCAoKHgpIDw8IDgpIHwgKCh4KSA8PCAxNikgfCAoKHgpIDw8IDI0KSkK LXN0YXRpYyBpbnQgaWd0X21tYXBfZ3R0KHZvaWQgKmFyZykKK3N0YXRpYyBpbnQgaWd0X21tYXAo dm9pZCAqYXJnLCBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsK IAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWE7CisJLyogT3duZXJzaGlwIHRyYW5zZmVycmVk IHRvIHBhcmVudCBnZW0gb2JqZWN0IGluIGNyZWF0ZV9tbWFwX29mZnNldCAqLworCXN0cnVjdCBp OTE1X21tYXBfb2Zmc2V0ICptbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQX0tFUk5FTCk7 CiAJdW5zaWduZWQgbG9uZyBhZGRyOwogCXZvaWQgKnZhZGRyOwogCWludCBlcnIsIGk7CkBAIC03 NTYsMTEgKzc1OCwxMiBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0dCh2b2lkICphcmcpCiAJaTkx NV9nZW1fb2JqZWN0X2ZsdXNoX21hcChvYmopOwogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo b2JqKTsKIAotCWVyciA9IGNyZWF0ZV9tbWFwX29mZnNldChvYmopOworCWVyciA9IGNyZWF0ZV9t bWFwX29mZnNldChvYmosIG1tbyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKLQlhZGRyID0g aWd0X21tYXBfbm9kZShpOTE1LCAmb2JqLT5iYXNlLnZtYV9ub2RlLAorCW1tby0+bW1hcF90eXBl ID0gdHlwZTsKKwlhZGRyID0gaWd0X21tYXBfbm9kZShpOTE1LCAmbW1vLT52bWFfbm9kZSwKIAkJ CSAgICAgMCwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCk7CiAJaWYgKElTX0VSUl9WQUxVRShhZGRy KSkgewogCQllcnIgPSBhZGRyOwpAQCAtNzc2LDggKzc3OSw4IEBAIHN0YXRpYyBpbnQgaWd0X21t YXBfZ3R0KHZvaWQgKmFyZykKIAkJZ290byBvdXRfdW5tYXA7CiAJfQogCi0JaWYgKGFyZWEtPnZt X3ByaXZhdGVfZGF0YSAhPSBvYmopIHsKLQkJcHJfZXJyKCJ2bV9hcmVhX3N0cnVjdCBkaWQgbm90 IHBvaW50IGJhY2sgdG8gb3VyIG9iamVjdCFcbiIpOworCWlmIChhcmVhLT52bV9wcml2YXRlX2Rh dGEgIT0gbW1vKSB7CisJCXByX2Vycigidm1fYXJlYV9zdHJ1Y3QgZGlkIG5vdCBwb2ludCBiYWNr IHRvIG91ciBtbWFwX29mZnNldCBvYmplY3QhXG4iKTsKIAkJZXJyID0gLUVJTlZBTDsKIAkJZ290 byBvdXRfdW5tYXA7CiAJfQpAQCAtODI4LDYgKzgzMSwxNiBAQCBzdGF0aWMgaW50IGlndF9tbWFw X2d0dCh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBpZ3RfbW1hcF9n dHQodm9pZCAqYXJnKQoreworCXJldHVybiBpZ3RfbW1hcChhcmcsIEk5MTVfTU1BUF9UWVBFX0dU VCk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21tYXBfY3B1KHZvaWQgKmFyZykKK3sKKwlyZXR1cm4g aWd0X21tYXAoYXJnLCBJOTE1X01NQVBfVFlQRV9XQyk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tf cHJlc2VudF9wdGUocHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB2b2lkICpkYXRhKQog ewogCWlmICghcHRlX3ByZXNlbnQoKnB0ZSkgfHwgcHRlX25vbmUoKnB0ZSkpIHsKQEAgLTg4MCwx MCArODkzLDEyIEBAIHN0YXRpYyBpbnQgcHJlZmF1bHRfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgbGVu KQogCXJldHVybiBfX2dldF91c2VyKGMsIGVuZCAtIDEpOwogfQogCi1zdGF0aWMgaW50IGlndF9t bWFwX2d0dF9yZXZva2Uodm9pZCAqYXJnKQorc3RhdGljIGludCBpZ3RfbW1hcF9yZXZva2Uodm9p ZCAqYXJnLCBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwkv KiBPd25lcnNoaXAgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGdlbSBvYmplY3QgaW4gY3JlYXRlX21t YXBfb2Zmc2V0ICovCisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IGt6YWxsb2Moc2l6 ZW9mKCptbW8pLCBHRlBfS0VSTkVMKTsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJaW50IGVycjsK IApAQCAtODk0LDExICs5MDksMTIgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9ndHRfcmV2b2tlKHZv aWQgKmFyZykKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKLQll cnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKKwllcnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQo b2JqLCBtbW8pOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCi0JYWRkciA9IGlndF9tbWFwX25v ZGUoaTkxNSwgJm9iai0+YmFzZS52bWFfbm9kZSwKKwltbW8tPm1tYXBfdHlwZSA9IHR5cGU7CisJ YWRkciA9IGlndF9tbWFwX25vZGUoaTkxNSwgJm1tby0+dm1hX25vZGUsCiAJCQkgICAgIDAsIFBS T1RfV1JJVEUsIE1BUF9TSEFSRUQpOwogCWlmIChJU19FUlJfVkFMVUUoYWRkcikpIHsKIAkJZXJy ID0gYWRkcjsKQEAgLTkwOSw3ICs5MjUsOCBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0dF9yZXZv a2Uodm9pZCAqYXJnKQogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3VubWFwOwogCi0JR0VNX0JVR19P TighYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpOworCUdFTV9CVUdfT04obW1vLT5tbWFw X3R5cGUgPT0gSTkxNV9NTUFQX1RZUEVfR1RUICYmCisJCSAgICFhdG9taWNfcmVhZCgmb2JqLT5i aW5kX2NvdW50KSk7CiAKIAllcnIgPSBjaGVja19wcmVzZW50KGFkZHIsIG9iai0+YmFzZS5zaXpl KTsKIAlpZiAoZXJyKQpAQCAtOTQ3LDYgKzk2NCwxNiBAQCBzdGF0aWMgaW50IGlndF9tbWFwX2d0 dF9yZXZva2Uodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X21t YXBfZ3R0X3Jldm9rZSh2b2lkICphcmcpCit7CisJcmV0dXJuIGlndF9tbWFwX3Jldm9rZShhcmcs IEk5MTVfTU1BUF9UWVBFX0dUVCk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21tYXBfY3B1X3Jldm9r ZSh2b2lkICphcmcpCit7CisJcmV0dXJuIGlndF9tbWFwX3Jldm9rZShhcmcsIEk5MTVfTU1BUF9U WVBFX1dDKTsKK30KKwogaW50IGk5MTVfZ2VtX21tYW5fbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRl c3QgdGVzdHNbXSA9IHsKQEAgLTk1NCw3ICs5ODEsOSBAQCBpbnQgaTkxNV9nZW1fbW1hbl9saXZl X3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChpZ3Rf c21va2VfdGlsaW5nKSwKIAkJU1VCVEVTVChpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbiksCiAJ CVNVQlRFU1QoaWd0X21tYXBfZ3R0KSwKKwkJU1VCVEVTVChpZ3RfbW1hcF9jcHUpLAogCQlTVUJU RVNUKGlndF9tbWFwX2d0dF9yZXZva2UpLAorCQlTVUJURVNUKGlndF9tbWFwX2NwdV9yZXZva2Up LAogCX07CiAKIAlyZXR1cm4gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgaTkxNSk7Ci0tIAoyLjIzLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==