From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 31/37] drm/i915: Add cpu and lmem fault handlers Date: Thu, 27 Jun 2019 21:56:27 +0100 Message-ID: <20190627205633.1143-32-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3DB0A6E830 for ; Thu, 27 Jun 2019 20:57:24 +0000 (UTC) In-Reply-To: <20190627205633.1143-1-matthew.auld@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgoK RmF1bHQgaGFuZGxlciB0byBoYW5kbGUgbWlzc2luZyBwYWdlcyB0byBiZSBmaWxsZWQgZGVwZW5k aW5nIG9uIGFuCm9iamVjdCdzIGJhY2tpbmcgc3RvcmFnZS4gSGFuZGxlIGFsc28gY2hhbmdlcyBu ZWVkZWQgdG8gcmVmYXVsdCBwYWdlcwpkZXBlbmRpbmcgb24gZmF1bHQgaGFuZGxlciB1c2FnZS4K ClNpZ25lZC1vZmYtYnk6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4Lmlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwu Y29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgICB8IDE1NCAr KysrKysrKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3QuaCB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAg ICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5jICAg fCAgNDcgKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uaCAg IHwgICAyICsKIDUgZmlsZXMgY2hhbmdlZCwgMTkyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFu LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCmluZGV4IGNiZjg5 ZTgwYTk3Yi4uNTk0MTY0OGVlMGNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fbW1hbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9tbWFuLmMKQEAgLTUsNiArNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4K KyNpbmNsdWRlIDxsaW51eC9wZm5fdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+CiAKICNp bmNsdWRlICJpOTE1X2Rydi5oIgpAQCAtMzY5LDcgKzM3MCw2MSBAQCB2bV9mYXVsdF90IGk5MTVf Z2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCX0KIH0KIAotdm9pZCBfX2k5MTVfZ2Vt X29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3N0 YXRpYyB2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0X2NwdShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikK K3sKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEgPSB2bWYtPnZtYTsKKwlzdHJ1Y3QgaTkx NV9tbWFwX29mZnNldCAqcHJpdiA9IGFyZWEtPnZtX3ByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcHJpdi0+b2JqOworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBvYmotPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKKwl2bV9mYXVsdF90IHZtZl9yZXQ7CisJdW5zaWduZWQgbG9uZyBzaXpl ID0gYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQ7CisJYm9vbCB3cml0ZSA9IGFyZWEtPnZt X2ZsYWdzICYgVk1fV1JJVEU7CisJaW50IGksIHJldDsKKworCS8qIFNhbml0eSBjaGVjayB0aGF0 IHdlIGFsbG93IHdyaXRpbmcgaW50byB0aGlzIG9iamVjdCAqLworCWlmIChpOTE1X2dlbV9vYmpl Y3RfaXNfcmVhZG9ubHkob2JqKSAmJiB3cml0ZSkKKwkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsK KworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKKwlpZiAocmV0KQorCQln b3RvIGVycjsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplID4+IFBBR0VfU0hJRlQ7IGkrKykgewor CQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShvYmosIGkpOwor CQl2bWZfcmV0ID0gdm1mX2luc2VydF9wZm4oYXJlYSwKKwkJCQkJICh1bnNpZ25lZCBsb25nKWFy ZWEtPnZtX3N0YXJ0ICsgaSAqIFBBR0VfU0laRSwKKwkJCQkJIHBhZ2VfdG9fcGZuKHBhZ2UpKTsK KwkJaWYgKHZtZl9yZXQgJiBWTV9GQVVMVF9FUlJPUikgeworCQkJcmV0ID0gdm1fZmF1bHRfdG9f ZXJybm8odm1mX3JldCwgMCk7CisJCQlicmVhazsKKwkJfQorCX0KKworCWk5MTVfZ2VtX29iamVj dF91bnBpbl9wYWdlcyhvYmopOworZXJyOgorCXN3aXRjaCAocmV0KSB7CisJY2FzZSAtRUlPOgor CQlpZiAoIWk5MTVfdGVybWluYWxseV93ZWRnZWQoZGV2X3ByaXYpKQorCQkJcmV0dXJuIFZNX0ZB VUxUX1NJR0JVUzsKKwljYXNlIC1FQUdBSU46CisJY2FzZSAwOgorCWNhc2UgLUVSRVNUQVJUU1lT OgorCWNhc2UgLUVJTlRSOgorCWNhc2UgLUVCVVNZOgorCQlyZXR1cm4gVk1fRkFVTFRfTk9QQUdF OworCWNhc2UgLUVOT01FTToKKwkJcmV0dXJuIFZNX0ZBVUxUX09PTTsKKwljYXNlIC1FTk9TUEM6 CisJY2FzZSAtRUZBVUxUOgorCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOworCWRlZmF1bHQ6CisJ CVdBUk5fT05DRShyZXQsICJ1bmhhbmRsZWQgZXJyb3IgaW4gJXM6ICVpXG4iLCBfX2Z1bmNfXywg cmV0KTsKKwkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKKwl9Cit9CisKK3ZvaWQgX19pOTE1X2dl bV9vYmplY3RfcmVsZWFzZV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQogewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICpt bW87CkBAIC0zNzgsMjEgKzQzMywyMCBAQCB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2Vf bW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJb2JqLT51c2VyZmF1bHRf Y291bnQgPSAwOwogCWxpc3RfZGVsKCZvYmotPnVzZXJmYXVsdF9saW5rKTsKLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KG1tbywgJm9iai0+bW1hcF9vZmZzZXRzLCBvZmZzZXQpCi0JCWRybV92bWFfbm9k ZV91bm1hcCgmbW1vLT52bWFfbm9kZSwKLQkJCQkgICBvYmotPmJhc2UuZGV2LT5hbm9uX2lub2Rl LT5pX21hcHBpbmcpOworCisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtbW8sICZvYmotPm1tYXBfb2Zmc2V0cywgb2Zmc2V0KSB7CisJCWlmIChtbW8t Pm1tYXBfdHlwZSA9PSBJOTE1X01NQVBfVFlQRV9HVFQpCisJCQlkcm1fdm1hX25vZGVfdW5tYXAo Jm1tby0+dm1hX25vZGUsCisJCQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25faW5vZGUtPmlfbWFw cGluZyk7CisJfQorCW11dGV4X3VubG9jaygmb2JqLT5tbW9fbG9jayk7CiAKIAlmb3JfZWFjaF9n Z3R0X3ZtYSh2bWEsIG9iaikKIAkJaTkxNV92bWFfdW5zZXRfdXNlcmZhdWx0KHZtYSk7CiB9CiAK IC8qKgotICogaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcCAtIHJlbW92ZSBwaHlzaWNhbCBw YWdlIG1hcHBpbmdzCi0gKiBAb2JqOiBvYmogaW4gcXVlc3Rpb24KLSAqCi0gKiBQcmVzZXJ2ZSB0 aGUgcmVzZXJ2YXRpb24gb2YgdGhlIG1tYXBwaW5nIHdpdGggdGhlIERSTSBjb3JlIGNvZGUsIGJ1 dAotICogcmVsaW5xdWlzaCBvd25lcnNoaXAgb2YgdGhlIHBhZ2VzIGJhY2sgdG8gdGhlIHN5c3Rl bS4KLSAqCiAgKiBJdCBpcyB2aXRhbCB0aGF0IHdlIHJlbW92ZSB0aGUgcGFnZSBtYXBwaW5nIGlm IHdlIGhhdmUgbWFwcGVkIGEgdGlsZWQKICAqIG9iamVjdCB0aHJvdWdoIHRoZSBHVFQgYW5kIHRo ZW4gbG9zZSB0aGUgZmVuY2UgcmVnaXN0ZXIgZHVlIHRvCiAgKiByZXNvdXJjZSBwcmVzc3VyZS4g U2ltaWxhcmx5IGlmIHRoZSBvYmplY3QgaGFzIGJlZW4gbW92ZWQgb3V0IG9mIHRoZQpAQCAtNDAw LDcgKzQ1NCw3IEBAIHZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAgKiBtYXBwaW5nIHdpbGwgdGhlbiB0cmlnZ2VyIGEg cGFnZSBmYXVsdCBvbiB0aGUgbmV4dCB1c2VyIGFjY2VzcywgYWxsb3dpbmcKICAqIGZpeHVwIGJ5 IGk5MTVfZ2VtX2ZhdWx0KCkuCiAgKi8KLXZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1h cChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIHZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5iYXNlLmRl dik7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CkBAIC00MTksNyArNDczLDcgQEAgdm9pZCBp OTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiAJaWYgKCFvYmotPnVzZXJmYXVsdF9jb3VudCkKIAkJZ290byBvdXQ7CiAKLQlfX2k5MTVf Z2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKwlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNl X21tYXBfZ3R0KG9iaik7CiAKIAkvKiBFbnN1cmUgdGhhdCB0aGUgQ1BVJ3MgUFRFIGFyZSByZXZv a2VkIGFuZCB0aGVyZSBhcmUgbm90IG91dHN0YW5kaW5nCiAJICogbWVtb3J5IHRyYW5zYWN0aW9u cyBmcm9tIHVzZXJzcGFjZSBiZWZvcmUgd2UgcmV0dXJuLiBUaGUgVExCCkBAIC00MzQsNiArNDg4 LDM1IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3Bt LCB3YWtlcmVmKTsKIH0KIAorc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1h cF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgaTkx NV9tbWFwX29mZnNldCAqbW1vOworCisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlz dF9mb3JfZWFjaF9lbnRyeShtbW8sICZvYmotPm1tYXBfb2Zmc2V0cywgb2Zmc2V0KSB7CisJCWlm IChtbW8tPm1tYXBfdHlwZSA9PSBJOTE1X01NQVBfVFlQRV9PRkZTRVRfV0MgfHwKKwkJICAgIG1t by0+bW1hcF90eXBlID09IEk5MTVfTU1BUF9UWVBFX09GRlNFVF9XQiB8fAorCQkgICAgbW1vLT5t bWFwX3R5cGUgPT0gSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1VDIHx8CisJCSAgICBtbW8tPm1tYXBf dHlwZSA9PSBJOTE1X01NQVBfVFlQRV9EVU1CX1dDKQorCQkJZHJtX3ZtYV9ub2RlX3VubWFwKCZt bW8tPnZtYV9ub2RlLAorCQkJCQkgICBvYmotPmJhc2UuZGV2LT5hbm9uX2lub2RlLT5pX21hcHBp bmcpOworCX0KKwltdXRleF91bmxvY2soJm9iai0+bW1vX2xvY2spOworfQorCisvKioKKyAqIGk5 MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAgLSByZW1vdmUgcGh5c2ljYWwgcGFnZSBtYXBwaW5n cworICogQG9iajogb2JqIGluIHF1ZXN0aW9uCisgKgorICogUHJlc2VydmUgdGhlIHJlc2VydmF0 aW9uIG9mIHRoZSBtbWFwcGluZyB3aXRoIHRoZSBEUk0gY29yZSBjb2RlLCBidXQKKyAqIHJlbGlu cXVpc2ggb3duZXJzaGlwIG9mIHRoZSBwYWdlcyBiYWNrIHRvIHRoZSBzeXN0ZW0uCisgKi8KK3Zv aWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQoreworCWk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXBfZ3R0KG9iaik7CisJaTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9vZmZzZXQob2JqKTsKK30KKwogc3RhdGljIHZvaWQg aW5pdF9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICAg ICBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vKQogewpAQCAtNjExLDYgKzY5NCw0MiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2VtX2d0dF92bV9v cHMgPSB7CiAJLmNsb3NlID0gaTkxNV9nZW1fdm1fY2xvc2UsCiB9OwogCitzdGF0aWMgY29uc3Qg c3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2VtX2NwdV92bV9vcHMgPSB7CisJLmZh dWx0ID0gaTkxNV9nZW1fZmF1bHRfY3B1LAorCS5vcGVuID0gaTkxNV9nZW1fdm1fb3BlbiwKKwku Y2xvc2UgPSBpOTE1X2dlbV92bV9jbG9zZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1f b3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1fbG1lbV92bV9vcHMgPSB7CisJLmZhdWx0ID0gaTkx NV9nZW1fZmF1bHRfbG1lbSwKKwkub3BlbiA9IGk5MTVfZ2VtX3ZtX29wZW4sCisJLmNsb3NlID0g aTkxNV9nZW1fdm1fY2xvc2UsCit9OworCitzdGF0aWMgdm9pZCBzZXRfdm1kYXRhX21tYXBfb2Zm c2V0KHN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hKQoreworCXN3aXRjaCAobW1vLT5tbWFwX3R5cGUpIHsKKwljYXNlIEk5MTVfTU1BUF9UWVBF X09GRlNFVF9XQzoKKwkJdm1hLT52bV9wYWdlX3Byb3QgPQorCQkJcGdwcm90X3dyaXRlY29tYmlu ZSh2bV9nZXRfcGFnZV9wcm90KHZtYS0+dm1fZmxhZ3MpKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1 X01NQVBfVFlQRV9PRkZTRVRfV0I6CisJCXZtYS0+dm1fcGFnZV9wcm90ID0gdm1fZ2V0X3BhZ2Vf cHJvdCh2bWEtPnZtX2ZsYWdzKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X01NQVBfVFlQRV9PRkZT RVRfVUM6CisJCXZtYS0+dm1fcGFnZV9wcm90ID0KKwkJCXBncHJvdF9ub25jYWNoZWQodm1fZ2V0 X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFr OworCX0KKworCWlmIChpOTE1X2dlbV9vYmplY3RfaXNfbG1lbShtbW8tPm9iaikpCisJCXZtYS0+ dm1fb3BzID0gJmk5MTVfZ2VtX2xtZW1fdm1fb3BzOworCWVsc2UKKwkJdm1hLT52bV9vcHMgPSAm aTkxNV9nZW1fY3B1X3ZtX29wczsKK30KKwogLyogVGhpcyBvdmVyY29tZXMgdGhlIGxpbWl0YXRp b24gaW4gZHJtX2dlbV9tbWFwJ3MgYXNzaWdubWVudCBvZiBhCiAgKiBkcm1fZ2VtX29iamVjdCBh cyB0aGUgdm1hLT52bV9wcml2YXRlX2RhdGEuIFNpbmNlIHdlIG5lZWQgdG8KICAqIGJlIGFibGUg dG8gcmVzb2x2ZSBtdWx0aXBsZSBtbWFwIG9mZnNldHMgd2hpY2ggY291bGQgYmUgdGllZApAQCAt NjcxLDcgKzc5MCwxNiBAQCBpbnQgaTkxNV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3RfZGVj cnlwdGVkKHZtYS0+dm1fcGFnZV9wcm90KTsKIAl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IG1tbzsK IAotCXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7CisJc3dpdGNoIChtbW8tPm1t YXBfdHlwZSkgeworCWNhc2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1dDOgorCWNhc2UgSTkxNV9N TUFQX1RZUEVfT0ZGU0VUX1dCOgorCWNhc2UgSTkxNV9NTUFQX1RZUEVfT0ZGU0VUX1VDOgorCQlz ZXRfdm1kYXRhX21tYXBfb2Zmc2V0KG1tbywgdm1hKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X01N QVBfVFlQRV9HVFQ6CisJCXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7CisJCWJy ZWFrOworCX0KIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdC5oCmluZGV4IDQyYjQ2YmI0NjU4MC4uYTdiZmU3OTAxNWVlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC0zNDgsNyArMzQ4LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsK IH0KIAotdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaik7Cit2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9n dHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIGk5MTVfZ2VtX29iamVj dF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiAKIHZvaWQK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDAwOWU3MTk5YmVhNi4uZWNkYWNhNDM3Nzk3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIGk5MTVfZ2Vt X3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG9uLAogCQkJCSAmaTkxNS0+Z2d0dC51c2VyZmF1bHRf bGlzdCwgdXNlcmZhdWx0X2xpbmspCi0JCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChv YmopOworCQlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXBfZ3R0KG9iaik7CiAKIAkvKgog CSAqIFRoZSBmZW5jZSB3aWxsIGJlIGxvc3Qgd2hlbiB0aGUgZGV2aWNlIHBvd2VycyBkb3duLiBJ ZiBhbnkgd2VyZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9u X2xtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKaW5kZXgg Y2VlYzJiZmY0NjVmLi43MDAzZTdiZmY5MGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmVnaW9uX2xtZW0uYwpAQCAtMTU1LDYgKzE1NSw1MyBAQCBzdGF0aWMgaW50IGxtZW1fcHdyaXRl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJcmV0dXJuIHJldDsKIH0KIAordm1f ZmF1bHRfdCBpOTE1X2dlbV9mYXVsdF9sbWVtKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQoreworCXN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqYXJlYSA9IHZtZi0+dm1hOworCXN0cnVjdCBpOTE1X21tYXBf b2Zmc2V0ICpwcml2ID0gYXJlYS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSBwcml2LT5vYmo7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9i ai0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRl dik7CisJdW5zaWduZWQgbG9uZyBzaXplID0gYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQ7 CisJYm9vbCB3cml0ZSA9IGFyZWEtPnZtX2ZsYWdzICYgVk1fV1JJVEU7CisJdm1fZmF1bHRfdCB2 bWZfcmV0OworCWludCBpLCByZXQ7CisKKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBhbGxvdyB3 cml0aW5nIGludG8gdGhpcyBvYmplY3QgKi8KKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRv bmx5KG9iaikgJiYgd3JpdGUpCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisKKwlmb3IgKGkg PSAwOyBpIDwgc2l6ZSA+PiBQQUdFX1NISUZUOyBpKyspIHsKKwkJdm1mX3JldCA9IHZtZl9pbnNl cnRfcGZuKGFyZWEsCisJCQkJCSAodW5zaWduZWQgbG9uZylhcmVhLT52bV9zdGFydCArIGkgKiBQ QUdFX1NJWkUsCisJCQkJCSBpOTE1X2dlbV9vYmplY3RfbG1lbV9pb19vZmZzZXQob2JqLCBpKSA+ PiBQQUdFX1NISUZUKTsKKwkJaWYgKHZtZl9yZXQgJiBWTV9GQVVMVF9FUlJPUikgeworCQkJcmV0 ID0gdm1fZmF1bHRfdG9fZXJybm8odm1mX3JldCwgMCk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0K K2VycjoKKwlzd2l0Y2ggKHJldCkgeworCWNhc2UgLUVJTzoKKwkJaWYgKCFpOTE1X3Rlcm1pbmFs bHlfd2VkZ2VkKGk5MTUpKQorCQkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKKwljYXNlIC1FQUdB SU46CisJY2FzZSAwOgorCWNhc2UgLUVSRVNUQVJUU1lTOgorCWNhc2UgLUVJTlRSOgorCWNhc2Ug LUVCVVNZOgorCQlyZXR1cm4gVk1fRkFVTFRfTk9QQUdFOworCWNhc2UgLUVOT01FTToKKwkJcmV0 dXJuIFZNX0ZBVUxUX09PTTsKKwljYXNlIC1FTk9TUEM6CisJY2FzZSAtRUZBVUxUOgorCQlyZXR1 cm4gVk1fRkFVTFRfU0lHQlVTOworCWRlZmF1bHQ6CisJCVdBUk5fT05DRShyZXQsICJ1bmhhbmRs ZWQgZXJyb3IgaW4gJXM6ICVpXG4iLCBfX2Z1bmNfXywgcmV0KTsKKwkJcmV0dXJuIFZNX0ZBVUxU X1NJR0JVUzsKKwl9Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dF9vcHMgcmVnaW9uX2xtZW1fb2JqX29wcyA9IHsKIAkuZ2V0X3BhZ2VzID0gaTkxNV9tZW1vcnlf cmVnaW9uX2dldF9wYWdlc19idWRkeSwKIAkucHV0X3BhZ2VzID0gaTkxNV9tZW1vcnlfcmVnaW9u X3B1dF9wYWdlc19idWRkeSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JlZ2lvbl9sbWVtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5o CmluZGV4IDYwOWRlNjkyNDg5ZC4uNjgyMzI2MTVhODc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yZWdpb25fbG1lbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JlZ2lvbl9sbWVtLmgKQEAgLTE3LDYgKzE3LDggQEAgcmVzb3VyY2Vfc2l6ZV90IGk5 MTVfZ2VtX29iamVjdF9sbWVtX2lvX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCiBib29sIGk5MTVfZ2VtX29iamVjdF9pc19sbWVtKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopOwogCit2bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0X2xtZW0oc3RydWN0IHZt X2ZhdWx0ICp2bWYpOworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1X2dlbV9v YmplY3RfY3JlYXRlX2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkgICAg cmVzb3VyY2Vfc2l6ZV90IHNpemUsCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeA==