From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH 3/5] drm/i915: Add cpu fault handler for mmap_offset Date: Mon, 26 Aug 2019 15:21:00 +0300 Message-ID: <20190826122102.32400-3-abdiel.janulgue@linux.intel.com> References: <20190826122102.32400-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 06AC56E121 for ; Mon, 26 Aug 2019 12:21:14 +0000 (UTC) In-Reply-To: <20190826122102.32400-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 amVjdHMuIEhhbmRsZSBhbHNvCmxvZ2ljIG5lZWRlZCB0byByZWZhdWx0IHBhZ2VzIGRlcGVuZGlu ZyBvbiBmYXVsdCBoYW5kbGVyIHVzYWdlLgoKU2lnbmVkLW9mZi1ieTogQWJkaWVsIEphbnVsZ3Vl IDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3 IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX2RvbWFpbi5jIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fbW1hbi5jICAgfCAxODkgKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxNDkg aW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX2RvbWFpbi5jCmluZGV4IDljNThlOGZhYzFkOS4uNTE3ZTczYzNhYTMxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jCkBAIC0yNTQsNyArMjU0 LDcgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJCX0KIAogCQkJaWYgKG9iai0+dXNlcmZhdWx0X2NvdW50KQot CQkJCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChvYmopOworCQkJCV9faTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2JqKTsKIAogCQkJLyoKIAkJCSAqIEFzIHdlIG5vIGxv bmdlciBuZWVkIGEgZmVuY2UgZm9yIEdUVCBhY2Nlc3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX21tYW4uYwppbmRleCA4NzY5MGFhNjQ4MTQuLmQwYTY1M2E5YTRjYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCkBAIC01LDYgKzUsNyBAQAogICov CiAKICNpbmNsdWRlIDxsaW51eC9tbWFuLmg+CisjaW5jbHVkZSA8bGludXgvcGZuX3QuaD4KICNp bmNsdWRlIDxsaW51eC9zaXplcy5oPgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKQEAgLTE5 OSw2ICsyMDAsNDUgQEAgY29tcHV0ZV9wYXJ0aWFsX3ZpZXcoY29uc3Qgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAlyZXR1cm4gdmlldzsKIH0KIAorc3RhdGljIHZtX2ZhdWx0X3Qg aTkxNV9lcnJvcl90b192bWZfZmF1bHQoaW50IGVyciwgc3RydWN0IGludGVsX2d0ICpndCkKK3sK Kwlzd2l0Y2ggKGVycikgeworCWNhc2UgLUVJTzoKKwkJLyoKKwkJICogV2UgZWF0IGVycm9ycyB3 aGVuIHRoZSBncHUgaXMgdGVybWluYWxseSB3ZWRnZWQgdG8gYXZvaWQKKwkJICogdXNlcnNwYWNl IHVuZHVseSBjcmFzaGluZyAoZ2wgaGFzIG5vIHByb3Zpc2lvbnMgZm9yIG1tYXBzIHRvCisJCSAq IGZhaWwpLiBCdXQgYW55IG90aGVyIC1FSU8gaXNuJ3Qgb3VycyAoZS5nLiBzd2FwIGluIGZhaWx1 cmUpCisJCSAqIGFuZCBzbyBuZWVkcyB0byBiZSByZXBvcnRlZC4KKwkJICovCisJCWlmICghaW50 ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkKKwkJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisJCS8qIGVs c2UsIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgLUVBR0FJTjoKKwkJLyoKKwkJICogRUFHQUlOIG1l YW5zIHRoZSBncHUgaXMgaHVuZyBhbmQgd2UnbGwgd2FpdCBmb3IgdGhlIGVycm9yCisJCSAqIGhh bmRsZXIgdG8gcmVzZXQgZXZlcnl0aGluZyB3aGVuIHJlLWZhdWx0aW5nIGluCisJCSAqIGk5MTVf bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlLgorCQkgKi8KKwljYXNlIDA6CisJY2FzZSAtRVJFU1RB UlRTWVM6CisJY2FzZSAtRUlOVFI6CisJY2FzZSAtRUJVU1k6CisJCS8qCisJCSAqIEVCVVNZIGlz IG9rOiB0aGlzIGp1c3QgbWVhbnMgdGhhdCBhbm90aGVyIHRocmVhZAorCQkgKiBhbHJlYWR5IGRp ZCB0aGUgam9iLgorCQkgKi8KKwkJcmV0dXJuIFZNX0ZBVUxUX05PUEFHRTsKKwljYXNlIC1FTk9N RU06CisJCXJldHVybiBWTV9GQVVMVF9PT007CisJY2FzZSAtRU5PU1BDOgorCWNhc2UgLUVGQVVM VDoKKwkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKKwlkZWZhdWx0OgorCQlXQVJOX09OQ0UoZXJy LCAidW5oYW5kbGVkIGVycm9yIGluICVzOiAlaVxuIiwgX19mdW5jX18sIGVycik7CisJCXJldHVy biBWTV9GQVVMVF9TSUdCVVM7CisJfQorfQorCiAvKioKICAqIGk5MTVfZ2VtX2ZhdWx0IC0gZmF1 bHQgYSBwYWdlIGludG8gdGhlIEdUVAogICogQHZtZjogZmF1bHQgaW5mbwpAQCAtMzM2LDQ0ICsz NzYsNDggQEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikK IAlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0sIHdha2VyZWYpOwogCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9wYWdlcyhvYmopOwogZXJyOgotCXN3aXRjaCAocmV0KSB7Ci0JY2FzZSAtRUlPOgotCQkv KgotCQkgKiBXZSBlYXQgZXJyb3JzIHdoZW4gdGhlIGdwdSBpcyB0ZXJtaW5hbGx5IHdlZGdlZCB0 byBhdm9pZAotCQkgKiB1c2Vyc3BhY2UgdW5kdWx5IGNyYXNoaW5nIChnbCBoYXMgbm8gcHJvdmlz aW9ucyBmb3IgbW1hcHMgdG8KLQkJICogZmFpbCkuIEJ1dCBhbnkgb3RoZXIgLUVJTyBpc24ndCBv dXJzIChlLmcuIHN3YXAgaW4gZmFpbHVyZSkKLQkJICogYW5kIHNvIG5lZWRzIHRvIGJlIHJlcG9y dGVkLgotCQkgKi8KLQkJaWYgKCFpbnRlbF9ndF9pc193ZWRnZWQoZ2d0dC0+dm0uZ3QpKQotCQkJ cmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKLQkJLyogZWxzZSwgZmFsbCB0aHJvdWdoICovCi0JY2Fz ZSAtRUFHQUlOOgotCQkvKgotCQkgKiBFQUdBSU4gbWVhbnMgdGhlIGdwdSBpcyBodW5nIGFuZCB3 ZSdsbCB3YWl0IGZvciB0aGUgZXJyb3IKLQkJICogaGFuZGxlciB0byByZXNldCBldmVyeXRoaW5n IHdoZW4gcmUtZmF1bHRpbmcgaW4KLQkJICogaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUu Ci0JCSAqLwotCWNhc2UgMDoKLQljYXNlIC1FUkVTVEFSVFNZUzoKLQljYXNlIC1FSU5UUjoKLQlj YXNlIC1FQlVTWToKLQkJLyoKLQkJICogRUJVU1kgaXMgb2s6IHRoaXMganVzdCBtZWFucyB0aGF0 IGFub3RoZXIgdGhyZWFkCi0JCSAqIGFscmVhZHkgZGlkIHRoZSBqb2IuCi0JCSAqLwotCQlyZXR1 cm4gVk1fRkFVTFRfTk9QQUdFOwotCWNhc2UgLUVOT01FTToKLQkJcmV0dXJuIFZNX0ZBVUxUX09P TTsKLQljYXNlIC1FTk9TUEM6Ci0JY2FzZSAtRUZBVUxUOgotCQlyZXR1cm4gVk1fRkFVTFRfU0lH QlVTOwotCWRlZmF1bHQ6Ci0JCVdBUk5fT05DRShyZXQsICJ1bmhhbmRsZWQgZXJyb3IgaW4gJXM6 ICVpXG4iLCBfX2Z1bmNfXywgcmV0KTsKKwlyZXR1cm4gaTkxNV9lcnJvcl90b192bWZfZmF1bHQo cmV0LCBnZ3R0LT52bS5ndCk7Cit9CisKK3N0YXRpYyB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0 X2NwdShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKK3sKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFy ZWEgPSB2bWYtPnZtYTsKKwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqcHJpdiA9IGFyZWEtPnZt X3ByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcHJpdi0+ b2JqOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwl2bV9mYXVsdF90IHZt Zl9yZXQ7CisJdW5zaWduZWQgbG9uZyBzaXplID0gYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3Rh cnQ7CisJYm9vbCB3cml0ZSA9IGFyZWEtPnZtX2ZsYWdzICYgVk1fV1JJVEU7CisJaW50IGksIHJl dDsKKworCS8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGFsbG93IHdyaXRpbmcgaW50byB0aGlzIG9i amVjdCAqLworCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfcmVhZG9ubHkob2JqKSAmJiB3cml0ZSkK IAkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5f cGFnZXMob2JqKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gaTkxNV9lcnJvcl90b192bWZfZmF1bHQo cmV0LCAmZGV2X3ByaXYtPmd0KTsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplID4+IFBBR0VfU0hJ RlQ7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZShvYmosIGkpOworCisJCXZtZl9yZXQgPSB2bWZfaW5zZXJ0X3BmbihhcmVhLAorCQkJCQkgKHVu c2lnbmVkIGxvbmcpYXJlYS0+dm1fc3RhcnQgKyBpICogUEFHRV9TSVpFLAorCQkJCQkgcGFnZV90 b19wZm4ocGFnZSkpOworCQlpZiAodm1mX3JldCAmIFZNX0ZBVUxUX0VSUk9SKSB7CisJCQl2bWZf cmV0ID0gaTkxNV9lcnJvcl90b192bWZfZmF1bHQodm1fZmF1bHRfdG9fZXJybm8odm1mX3JldCwg MCksCisJCQkJCQkJICAmZGV2X3ByaXYtPmd0KTsKKwkJCWJyZWFrOworCQl9CiAJfQorCisJaTkx NV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisKKwlyZXR1cm4gdm1mX3JldDsKIH0KIAot dm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX2d0dChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwog CXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW87CkBAIC0zOTYsMTIgKzQ0MCw2IEBAIHZvaWQg X19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiB9CiAKIC8qKgotICogaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcCAtIHJlbW92 ZSBwaHlzaWNhbCBwYWdlIG1hcHBpbmdzCi0gKiBAb2JqOiBvYmogaW4gcXVlc3Rpb24KLSAqCi0g KiBQcmVzZXJ2ZSB0aGUgcmVzZXJ2YXRpb24gb2YgdGhlIG1tYXBwaW5nIHdpdGggdGhlIERSTSBj b3JlIGNvZGUsIGJ1dAotICogcmVsaW5xdWlzaCBvd25lcnNoaXAgb2YgdGhlIHBhZ2VzIGJhY2sg dG8gdGhlIHN5c3RlbS4KLSAqCiAgKiBJdCBpcyB2aXRhbCB0aGF0IHdlIHJlbW92ZSB0aGUgcGFn ZSBtYXBwaW5nIGlmIHdlIGhhdmUgbWFwcGVkIGEgdGlsZWQKICAqIG9iamVjdCB0aHJvdWdoIHRo ZSBHVFQgYW5kIHRoZW4gbG9zZSB0aGUgZmVuY2UgcmVnaXN0ZXIgZHVlIHRvCiAgKiByZXNvdXJj ZSBwcmVzc3VyZS4gU2ltaWxhcmx5IGlmIHRoZSBvYmplY3QgaGFzIGJlZW4gbW92ZWQgb3V0IG9m IHRoZQpAQCAtNDA5LDcgKzQ0Nyw3IEBAIHZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9t bWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAgKiBtYXBwaW5nIHdpbGwgdGhl biB0cmlnZ2VyIGEgcGFnZSBmYXVsdCBvbiB0aGUgbmV4dCB1c2VyIGFjY2VzcywgYWxsb3dpbmcK ICAqIGZpeHVwIGJ5IGk5MTVfZ2VtX2ZhdWx0KCkuCiAgKi8KLXZvaWQgaTkxNV9nZW1fb2JqZWN0 X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIHZv aWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUo b2JqLT5iYXNlLmRldik7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CkBAIC00MjgsNyArNDY2 LDcgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiAJaWYgKCFvYmotPnVzZXJmYXVsdF9jb3VudCkKIAkJZ290byBvdXQ7 CiAKLQlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKwlfX2k5MTVfZ2VtX29i amVjdF9yZWxlYXNlX21tYXBfZ3R0KG9iaik7CiAKIAkvKiBFbnN1cmUgdGhhdCB0aGUgQ1BVJ3Mg UFRFIGFyZSByZXZva2VkIGFuZCB0aGVyZSBhcmUgbm90IG91dHN0YW5kaW5nCiAJICogbWVtb3J5 IHRyYW5zYWN0aW9ucyBmcm9tIHVzZXJzcGFjZSBiZWZvcmUgd2UgcmV0dXJuLiBUaGUgVExCCkBA IC00NDQsNiArNDgyLDM1IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1 LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0KIAorc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0 X3JlbGVhc2VfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sK KwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vOworCisJbXV0ZXhfbG9jaygmb2JqLT5tbW9f bG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShtbW8sICZvYmotPm1tYXBfb2Zmc2V0cywgb2Zm c2V0KSB7CisJCS8qIHZtYV9ub2RlX3VubWFwIGZvciBHVFQgbW1hcHMgaGFuZGxlZCBhbHJlYWR5 IGluCisJCSAqIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQKKwkJICovCisJCWlm IChtbW8tPm1tYXBfdHlwZSAhPSBJOTE1X01NQVBfVFlQRV9HVFQpCisJCQlkcm1fdm1hX25vZGVf dW5tYXAoJm1tby0+dm1hX25vZGUsCisJCQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25faW5vZGUt PmlfbWFwcGluZyk7CisJfQorCW11dGV4X3VubG9jaygmb2JqLT5tbW9fbG9jayk7Cit9CisKKy8q KgorICogaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcCAtIHJlbW92ZSBwaHlzaWNhbCBwYWdl IG1hcHBpbmdzCisgKiBAb2JqOiBvYmogaW4gcXVlc3Rpb24KKyAqCisgKiBQcmVzZXJ2ZSB0aGUg cmVzZXJ2YXRpb24gb2YgdGhlIG1tYXBwaW5nIHdpdGggdGhlIERSTSBjb3JlIGNvZGUsIGJ1dAor ICogcmVsaW5xdWlzaCBvd25lcnNoaXAgb2YgdGhlIHBhZ2VzIGJhY2sgdG8gdGhlIHN5c3RlbS4K KyAqLwordm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCit7CisJaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2Jq KTsKKwlpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX29mZnNldChvYmopOworfQorCiBzdGF0 aWMgdm9pZCBpbml0X21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCQkgICAgIHN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8pCiB7CkBAIC02MjcsNiArNjk0 LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1f Z3R0X3ZtX29wcyA9IHsKIAkuY2xvc2UgPSBpOTE1X2dlbV92bV9jbG9zZSwKIH07CiAKK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1fY3B1X3ZtX29wcyA9 IHsKKwkuZmF1bHQgPSBpOTE1X2dlbV9mYXVsdF9jcHUsCisJLm9wZW4gPSBpOTE1X2dlbV92bV9v cGVuLAorCS5jbG9zZSA9IGk5MTVfZ2VtX3ZtX2Nsb3NlLAorfTsKKworc3RhdGljIHZvaWQgc2V0 X3ZtZGF0YV9tbWFwX29mZnNldChzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vLCBzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzd2l0Y2ggKG1tby0+bW1hcF90eXBlKSB7CisJY2Fz ZSBJOTE1X01NQVBfVFlQRV9PRkZTRVRfV0M6CisJCXZtYS0+dm1fcGFnZV9wcm90ID0KKwkJCXBn cHJvdF93cml0ZWNvbWJpbmUodm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJCWJy ZWFrOworCWNhc2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1dCOgorCQl2bWEtPnZtX3BhZ2VfcHJv dCA9IHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncyk7CisJCWJyZWFrOworCWNhc2UgSTkx NV9NTUFQX1RZUEVfT0ZGU0VUX1VDOgorCQl2bWEtPnZtX3BhZ2VfcHJvdCA9CisJCQlwZ3Byb3Rf bm9uY2FjaGVkKHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9mbGFncykpOworCQlicmVhazsKKwlk ZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwl2bWEtPnZtX29wcyA9ICZpOTE1X2dlbV9jcHVfdm1f b3BzOworfQorCiAvKiBUaGlzIG92ZXJjb21lcyB0aGUgbGltaXRhdGlvbiBpbiBkcm1fZ2VtX21t YXAncyBhc3NpZ25tZW50IG9mIGEKICAqIGRybV9nZW1fb2JqZWN0IGFzIHRoZSB2bWEtPnZtX3By aXZhdGVfZGF0YS4gU2luY2Ugd2UgbmVlZCB0bwogICogYmUgYWJsZSB0byByZXNvbHZlIG11bHRp cGxlIG1tYXAgb2Zmc2V0cyB3aGljaCBjb3VsZCBiZSB0aWVkCkBAIC02ODMsNyArNzc3LDE2IEBA IGludCBpOTE1X2dlbV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSkKIAl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9kZWNyeXB0ZWQodm1hLT52bV9w YWdlX3Byb3QpOwogCXZtYS0+dm1fcHJpdmF0ZV9kYXRhID0gbW1vOwogCi0Jdm1hLT52bV9vcHMg PSAmaTkxNV9nZW1fZ3R0X3ZtX29wczsKKwlzd2l0Y2ggKG1tby0+bW1hcF90eXBlKSB7CisJY2Fz ZSBJOTE1X01NQVBfVFlQRV9PRkZTRVRfV0M6CisJY2FzZSBJOTE1X01NQVBfVFlQRV9PRkZTRVRf V0I6CisJY2FzZSBJOTE1X01NQVBfVFlQRV9PRkZTRVRfVUM6CisJCXNldF92bWRhdGFfbW1hcF9v ZmZzZXQobW1vLCB2bWEpOworCQlicmVhazsKKwljYXNlIEk5MTVfTU1BUF9UWVBFX0dUVDoKKwkJ dm1hLT52bV9vcHMgPSAmaTkxNV9nZW1fZ3R0X3ZtX29wczsKKwkJYnJlYWs7CisJfQogCiAJLyoK IAkgKiBUYWtlIGEgcmVmIGZvciBvdXIgbW1hcF9vZmZzZXQgb2JqZWN0LiBUaGUgcmVmZXJlbmNl IGlzIGNsZWFuZWQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApp bmRleCBkNjY3ZWQ4YmIwYTYuLjAxMmU1ZDFkOTljYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9vYmplY3QuaApAQCAtMzM4LDcgKzMzOCw3IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiB9CiAKLXZvaWQgX19p OTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopOwordm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXBfZ3R0KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopOwogdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFw KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCiB2b2lkCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwppbmRleCA5NWU3YzUyY2Y4ZWQuLjM2M2IzNWJhNTU5ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCkBAIC04NTcsNyArODU3LDcgQEAgdm9pZCBpOTE1X2dlbV9ydW50aW1lX3N1c3Bl bmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUob2JqLCBvbiwKIAkJCQkgJmk5MTUtPmdndHQudXNlcmZhdWx0X2xpc3QsIHVzZXJmYXVs dF9saW5rKQotCQlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKwkJX19pOTE1 X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX2d0dChvYmopOwogCiAJLyoKIAkgKiBUaGUgZmVuY2Ug d2lsbCBiZSBsb3N0IHdoZW4gdGhlIGRldmljZSBwb3dlcnMgZG93bi4gSWYgYW55IHdlcmUKLS0g CjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4