From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 05/23] drm/i915: push set_pages down to the callers Date: Mon, 21 Aug 2017 19:34:45 +0100 Message-ID: <20170821183503.12246-6-matthew.auld@intel.com> References: <20170821183503.12246-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 BEE146E2B5 for ; Mon, 21 Aug 2017 18:35:17 +0000 (UTC) In-Reply-To: <20170821183503.12246-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 RWFjaCBiYWNrZW5kIGlzIG5vdyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBfX2k5MTVfZ2VtX29i amVjdF9zZXRfcGFnZXMKdXBvbiBzdWNjZXNzZnVsbHkgZ2F0aGVyaW5nIGl0cyBiYWNraW5nIHN0 b3JhZ2UuIFRoaXMgZWxpbWluYXRlcyB0aGUKaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIHRoZSBhc3lu YyBhbmQgc3luYyBwYXRocywgd2hpY2ggc3RhbmRzIG91dCBldmVuCm1vcmUgd2hlbiB3ZSBzdGFy dCB0aHJvd2luZyBhcm91bmQgYW4gc2dfbWFzayBpbiBhIGxhdGVyIHBhdGNoLgoKU3VnZ2VzdGVk LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1i eTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRp bmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyAgICAgICAgICAgfCAxNSArKysrKy0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYyAgICAgICAgIHwgMTUg KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oICAgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAgICAgICAg ICAgfCAxNiArKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIu YyAgICAgICAgICB8IDEyICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9o dWdlX2dlbV9vYmplY3QuYyB8IDE0ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9nZW1fZ3R0LmMgICAgfCAxMiArKysrLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDc3 IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmlu ZGV4IDNhZWNlOTBiOTZjNy4uMWM2MWQxYjVlYWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK QEAgLTE2Miw4ICsxNjIsNyBAQCBpOTE1X2dlbV9nZXRfYXBlcnR1cmVfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVj dCBzZ190YWJsZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl c19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcgPSBvYmotPmJhc2UuZmlscC0+Zl9tYXBwaW5nOwogCWRybV9kbWFf aGFuZGxlX3QgKnBoeXM7CkBAIC0xNzEsOSArMTcwLDEwIEBAIGk5MTVfZ2VtX29iamVjdF9nZXRf cGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVjdCBzY2F0 dGVybGlzdCAqc2c7CiAJY2hhciAqdmFkZHI7CiAJaW50IGk7CisJaW50IGVycjsKIAogCWlmIChX QVJOX09OKGk5MTVfZ2VtX29iamVjdF9uZWVkc19iaXQxN19zd2l6emxlKG9iaikpKQotCQlyZXR1 cm4gRVJSX1BUUigtRUlOVkFMKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiBBbHdheXMgYWxp Z25pbmcgdG8gdGhlIG9iamVjdCBzaXplLCBhbGxvd3MgYSBzaW5nbGUgYWxsb2NhdGlvbgogCSAq IHRvIGhhbmRsZSBhbGwgcG9zc2libGUgY2FsbGVycywgYW5kIGdpdmVuIHR5cGljYWwgb2JqZWN0 IHNpemVzLApAQCAtMTgzLDcgKzE4Myw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5 cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkJICAgICBvYmotPmJhc2Uuc2l6 ZSwKIAkJCSAgICAgcm91bmR1cF9wb3dfb2ZfdHdvKG9iai0+YmFzZS5zaXplKSk7CiAJaWYgKCFw aHlzKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9NRU07CiAKIAl2 YWRkciA9IHBoeXMtPnZhZGRyOwogCWZvciAoaSA9IDA7IGkgPCBvYmotPmJhc2Uuc2l6ZSAvIFBB R0VfU0laRTsgaSsrKSB7CkBAIC0xOTIsNyArMTkyLDcgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9w YWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAKIAkJcGFnZSA9IHNo bWVtX3JlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIGkpOwogCQlpZiAoSVNfRVJSKHBhZ2UpKSB7 Ci0JCQlzdCA9IEVSUl9DQVNUKHBhZ2UpOworCQkJZXJyID0gUFRSX0VSUihwYWdlKTsKIAkJCWdv dG8gZXJyX3BoeXM7CiAJCX0KIApAQCAtMjA5LDEzICsyMDksMTMgQEAgaTkxNV9nZW1fb2JqZWN0 X2dldF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAKIAlzdCA9 IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwogCWlmICghc3QpIHsKLQkJc3QgPSBF UlJfUFRSKC1FTk9NRU0pOworCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9waHlzOwogCX0K IAogCWlmIChzZ19hbGxvY190YWJsZShzdCwgMSwgR0ZQX0tFUk5FTCkpIHsKIAkJa2ZyZWUoc3Qp OwotCQlzdCA9IEVSUl9QVFIoLUVOT01FTSk7CisJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gZXJy X3BoeXM7CiAJfQogCkBAIC0yMjcsMTEgKzIyNywxNSBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzX3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlzZ19kbWFfbGVuKHNn KSA9IG9iai0+YmFzZS5zaXplOwogCiAJb2JqLT5waHlzX2hhbmRsZSA9IHBoeXM7Ci0JcmV0dXJu IHN0OworCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QpOworCisJcmV0dXJu IDA7CiAKIGVycl9waHlzOgogCWRybV9wY2lfZnJlZShvYmotPmJhc2UuZGV2LCBwaHlzKTsKLQly ZXR1cm4gc3Q7CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBfX3N0YXJ0X2NwdV93 cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpAQCAtMjI5MCw4ICsyMjk0LDcg QEAgc3RhdGljIGJvb2wgaTkxNV9zZ190cmltKHN0cnVjdCBzZ190YWJsZSAqb3JpZ19zdCkKIAly ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCi1pOTE1X2dlbV9vYmpl Y3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGlj IGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUob2JqLT5iYXNlLmRldik7CiAJY29uc3QgdW5zaWduZWQgbG9uZyBwYWdlX2NvdW50ID0gb2Jq LT5iYXNlLnNpemUgLyBQQUdFX1NJWkU7CkBAIC0yMzE5LDEyICsyMzIyLDEyIEBAIGk5MTVfZ2Vt X29iamVjdF9nZXRfcGFnZXNfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAK IAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxM KQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9NRU07CiAKIHJlYnVp bGRfc3Q6CiAJaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCBwYWdlX2NvdW50LCBHRlBfS0VSTkVMKSkg ewogCQlrZnJlZShzdCk7Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVO T01FTTsKIAl9CiAKIAkvKiBHZXQgdGhlIGxpc3Qgb2YgcGFnZXMgb3V0IG9mIG91ciBzdHJ1Y3Qg ZmlsZS4gIFRoZXknbGwgYmUgcGlubmVkCkBAIC0yNDMyLDcgKzI0MzUsOSBAQCBpOTE1X2dlbV9v YmplY3RfZ2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWlm IChpOTE1X2dlbV9vYmplY3RfbmVlZHNfYml0MTdfc3dpenpsZShvYmopKQogCQlpOTE1X2dlbV9v YmplY3RfZG9fYml0XzE3X3N3aXp6bGUob2JqLCBzdCk7CiAKLQlyZXR1cm4gc3Q7CisJX19pOTE1 X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QpOworCisJcmV0dXJuIDA7CiAKIGVycl9zZzoK IAlzZ19tYXJrX2VuZChzZyk7CkBAIC0yNDUzLDcgKzI0NTgsNyBAQCBpOTE1X2dlbV9vYmplY3Rf Z2V0X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWlmIChyZXQg PT0gLUVOT1NQQykKIAkJcmV0ID0gLUVOT01FTTsKIAotCXJldHVybiBFUlJfUFRSKHJldCk7CisJ cmV0dXJuIHJldDsKIH0KIAogdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKQEAgLTI0NzYsNyArMjQ4MSw3IEBAIHZvaWQgX19p OTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAKIHN0YXRpYyBpbnQgX19fX2k5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzOworCWludCBy ZXQ7CiAKIAlHRU1fQlVHX09OKGk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikp OwogCkBAIC0yNDg1LDEyICsyNDkwLDEwIEBAIHN0YXRpYyBpbnQgX19fX2k5MTVfZ2VtX29iamVj dF9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJcmV0dXJuIC1F RkFVTFQ7CiAJfQogCi0JcGFnZXMgPSBvYmotPm9wcy0+Z2V0X3BhZ2VzKG9iaik7Ci0JaWYgKHVu bGlrZWx5KElTX0VSUihwYWdlcykpKQotCQlyZXR1cm4gUFRSX0VSUihwYWdlcyk7CisJcmV0ID0g b2JqLT5vcHMtPmdldF9wYWdlcyhvYmopOworCUdFTV9CVUdfT04ocmV0ID09IDAgJiYgSVNfRVJS X09SX05VTEwob2JqLT5tbS5wYWdlcykpOwogCi0JX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2Vz KG9iaiwgcGFnZXMpOwotCXJldHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIC8qIEVuc3VyZSB0 aGF0IHRoZSBhc3NvY2lhdGVkIHBhZ2VzIGFyZSBnYXRoZXJlZCBmcm9tIHRoZSBiYWNraW5nIHN0 b3JhZ2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKaW5kZXggNjE3NmU1ODlj ZjA5Li40YzRkYzg1MTU5ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5j CkBAIC0yNTYsMTEgKzI1NiwxOCBAQCBzdHJ1Y3QgZG1hX2J1ZiAqaTkxNV9nZW1fcHJpbWVfZXhw b3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIGRybV9nZW1fZG1hYnVmX2V4cG9y dChkZXYsICZleHBfaW5mbyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKgotaTkxNV9n ZW1fb2JqZWN0X2dldF9wYWdlc19kbWFidWYoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19kbWFidWYoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlyZXR1cm4gZG1hX2J1Zl9tYXBfYXR0YWNobWVu dChvYmotPmJhc2UuaW1wb3J0X2F0dGFjaCwKLQkJCQkgICAgICBETUFfQklESVJFQ1RJT05BTCk7 CisJc3RydWN0IHNnX3RhYmxlICpwYWdlczsKKworCXBhZ2VzID0gZG1hX2J1Zl9tYXBfYXR0YWNo bWVudChvYmotPmJhc2UuaW1wb3J0X2F0dGFjaCwKKwkJCQkgICAgICAgRE1BX0JJRElSRUNUSU9O QUwpOworCWlmIChJU19FUlIocGFnZXMpKQorCQlyZXR1cm4gUFRSX0VSUihwYWdlcyk7CisKKwlf X2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBwYWdlcyk7CisKKwlyZXR1cm4gMDsKIH0K IAogc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19kbWFidWYoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2ludGVybmFsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRl cm5hbC5jCmluZGV4IGMxZjY0ZGRhZjhhYS4uZjU5NzY0ZGE0MjU0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ludGVybmFsLmMKQEAgLTQ0LDggKzQ0LDcgQEAgc3RhdGljIHZvaWQg aW50ZXJuYWxfZnJlZV9wYWdlcyhzdHJ1Y3Qgc2dfdGFibGUgKnN0KQogCWtmcmVlKHN0KTsKIH0K IAotc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2lu dGVybmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50IGk5MTVf Z2VtX29iamVjdF9nZXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5i YXNlLmRldik7CiAJc3RydWN0IHNnX3RhYmxlICpzdDsKQEAgLTc4LDEyICs3NywxMiBAQCBpOTE1 X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2ludGVybmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiBjcmVhdGVfc3Q6CiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVM KTsKIAlpZiAoIXN0KQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9N RU07CiAKIAlucGFnZXMgPSBvYmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0laRTsKIAlpZiAoc2dfYWxs b2NfdGFibGUoc3QsIG5wYWdlcywgR0ZQX0tFUk5FTCkpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9NRU07CiAJfQogCiAJc2cgPSBzdC0+ c2dsOwpAQCAtMTMyLDEzICsxMzEsMTcgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19pbnRl cm5hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCSAqIG9iamVjdCBhcmUgb25s eSB2YWxpZCB3aGlsc3QgYWN0aXZlIGFuZCBwaW5uZWQuCiAJICovCiAJb2JqLT5tbS5tYWR2ID0g STkxNV9NQURWX0RPTlRORUVEOwotCXJldHVybiBzdDsKKworCV9faTkxNV9nZW1fb2JqZWN0X3Nl dF9wYWdlcyhvYmosIHN0KTsKKworCXJldHVybiAwOwogCiBlcnI6CiAJc2dfc2V0X3BhZ2Uoc2cs IE5VTEwsIDAsIDApOwogCXNnX21hcmtfZW5kKHNnKTsKIAlpbnRlcm5hbF9mcmVlX3BhZ2VzKHN0 KTsKLQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXJldHVybiAtRU5PTUVNOwogfQogCiBz dGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2ludGVybmFsKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5o CmluZGV4IGMzMGQ4ZjgwODE4NS4uMDM2ZTg0N2IyN2YwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9vYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdF9vcHMgewogCSAqIGJlaW5nIHJlbGVhc2VkIG9yIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSAo d2hlcmUgd2UgYXR0ZW1wdCB0bwogCSAqIHJlYXAgcGFnZXMgZm9yIHRoZSBzaHJpbmtlcikuCiAJ ICovCi0Jc3RydWN0IHNnX3RhYmxlICooKmdldF9wYWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKik7CisJaW50ICgqZ2V0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq KTsKIAl2b2lkICgqcHV0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqLCBzdHJ1 Y3Qgc2dfdGFibGUgKik7CiAKIAlpbnQgKCpwd3JpdGUpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4IDUwN2M5ZjBk OGRmMS4uNTM3ZWNiMjI0ZGIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4u YwpAQCAtNTM5LDEyICs1MzksMTggQEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiBzdDsKIH0KIAotc3RhdGljIHN0cnVjdCBzZ190 YWJsZSAqCi1pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQorc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3N0 b2xlbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCXJldHVybiBpOTE1X3Bh Z2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKG9iai0+YmFzZS5kZXYsCi0JCQkJCSAgICBvYmotPnN0b2xl bi0+c3RhcnQsCi0JCQkJCSAgICBvYmotPnN0b2xlbi0+c2l6ZSk7CisJc3RydWN0IHNnX3RhYmxl ICpwYWdlcyA9CisJCWk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4ob2JqLT5iYXNlLmRldiwK KwkJCQkJICAgICBvYmotPnN0b2xlbi0+c3RhcnQsCisJCQkJCSAgICAgb2JqLT5zdG9sZW4tPnNp emUpOworCWlmIChJU19FUlIocGFnZXMpKQorCQlyZXR1cm4gUFRSX0VSUihwYWdlcyk7CisKKwlf X2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBwYWdlcyk7CisKKwlyZXR1cm4gMDsKIH0K IAogc3RhdGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19zdG9sZW4oc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3VzZXJwdHIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJw dHIuYwppbmRleCBmMTUyYTM4ZDcwNzkuLjI1ZGEzYzYwZTk2MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3VzZXJwdHIuYwpAQCAtNDU2LDYgKzQ1Niw4IEBAIF9faTkxNV9nZW1fdXNl cnB0cl9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJcmV0dXJu IEVSUl9QVFIocmV0KTsKIAl9CiAKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBw YWdlcyk7CisKIAlyZXR1cm4gcGFnZXM7CiB9CiAKQEAgLTU0Miw3ICs1NDQsNiBAQCBfX2k5MTVf Z2VtX3VzZXJwdHJfZ2V0X3BhZ2VzX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl93b3JrKQog CQlpZiAocGlubmVkID09IG5wYWdlcykgewogCQkJcGFnZXMgPSBfX2k5MTVfZ2VtX3VzZXJwdHJf c2V0X3BhZ2VzKG9iaiwgcHZlYywgbnBhZ2VzKTsKIAkJCWlmICghSVNfRVJSKHBhZ2VzKSkgewot CQkJCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKIAkJCQlwaW5uZWQg PSAwOwogCQkJCXBhZ2VzID0gTlVMTDsKIAkJCX0KQEAgLTYwMyw4ICs2MDQsNyBAQCBfX2k5MTVf Z2VtX3VzZXJwdHJfZ2V0X3BhZ2VzX3NjaGVkdWxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiAJcmV0dXJuIEVSUl9QVFIoLUVBR0FJTik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qgc2df dGFibGUgKgotaTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3N0YXRpYyBpbnQgaTkxNV9nZW1fdXNlcnB0cl9nZXRfcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAljb25zdCBpbnQgbnVtX3BhZ2VzID0gb2Jq LT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG9iai0+ dXNlcnB0ci5tbS0+bW07CkBAIC02MzMsOSArNjMzLDkgQEAgaTkxNV9nZW1fdXNlcnB0cl9nZXRf cGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpZiAob2JqLT51c2VycHRy LndvcmspIHsKIAkJLyogYWN0aXZlIGZsYWcgc2hvdWxkIHN0aWxsIGJlIGhlbGQgZm9yIHRoZSBw ZW5kaW5nIHdvcmsgKi8KIAkJaWYgKElTX0VSUihvYmotPnVzZXJwdHIud29yaykpCi0JCQlyZXR1 cm4gRVJSX0NBU1Qob2JqLT51c2VycHRyLndvcmspOworCQkJcmV0dXJuIFBUUl9FUlIob2JqLT51 c2VycHRyLndvcmspOwogCQllbHNlCi0JCQlyZXR1cm4gRVJSX1BUUigtRUFHQUlOKTsKKwkJCXJl dHVybiAtRUFHQUlOOwogCX0KIAogCXB2ZWMgPSBOVUxMOwpAQCAtNjcxLDcgKzY3MSw3IEBAIGk5 MTVfZ2VtX3VzZXJwdHJfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop CiAJCXJlbGVhc2VfcGFnZXMocHZlYywgcGlubmVkLCAwKTsKIAlrdmZyZWUocHZlYyk7CiAKLQly ZXR1cm4gcGFnZXM7CisJcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhwYWdlcyk7CiB9CiAKIHN0YXRp YyB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9n ZW1fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2Jq ZWN0LmMKaW5kZXggYzVjN2U4ZWZiZGQzLi40MWMxNWYzYWE0NjcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMKQEAgLTM3LDggKzM3LDcg QEAgc3RhdGljIHZvaWQgaHVnZV9mcmVlX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCiAJa2ZyZWUocGFnZXMpOwogfQogCi1zdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKLWh1 Z2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgaW50 IGh1Z2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAjZGVm aW5lIEdGUCAoR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlkpCiAJY29u c3QgdW5zaWduZWQgbG9uZyBucmVhbCA9IG9iai0+c2NyYXRjaCAvIFBBR0VfU0laRTsKQEAgLTQ5 LDExICs0OCwxMSBAQCBodWdlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCiAJcGFnZXMgPSBrbWFsbG9jKHNpemVvZigqcGFnZXMpLCBHRlApOwogCWlmICghcGFn ZXMpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAogCWlm IChzZ19hbGxvY190YWJsZShwYWdlcywgbnBhZ2VzLCBHRlApKSB7CiAJCWtmcmVlKHBhZ2VzKTsK LQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCXNn ID0gcGFnZXMtPnNnbDsKQEAgLTgxLDExICs4MCwxNCBAQCBodWdlX2dldF9wYWdlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWlmIChpOTE1X2dlbV9ndHRfcHJlcGFyZV9wYWdl cyhvYmosIHBhZ2VzKSkKIAkJZ290byBlcnI7CiAKLQlyZXR1cm4gcGFnZXM7CisJX19pOTE1X2dl bV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgcGFnZXMpOworCisJcmV0dXJuIDA7CiAKIGVycjoKIAlo dWdlX2ZyZWVfcGFnZXMob2JqLCBwYWdlcyk7Ci0JcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisK KwlyZXR1cm4gLUVOT01FTTsKICN1bmRlZiBHRlAKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCmluZGV4IDZiMTMyY2FmZmExOC4uYWExZGIzNzVk NTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Z3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5j CkBAIC0zOSw4ICszOSw3IEBAIHN0YXRpYyB2b2lkIGZha2VfZnJlZV9wYWdlcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWtmcmVlKHBhZ2VzKTsKIH0KIAotc3RhdGljIHN0cnVj dCBzZ190YWJsZSAqCi1mYWtlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQorc3RhdGljIGludCBmYWtlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogewogI2RlZmluZSBHRlAgKEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dG UF9OT1JFVFJZKQogI2RlZmluZSBQRk5fQklBUyAweDEwMDAKQEAgLTUwLDEyICs0OSwxMiBAQCBm YWtlX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJcGFnZXMg PSBrbWFsbG9jKHNpemVvZigqcGFnZXMpLCBHRlApOwogCWlmICghcGFnZXMpCi0JCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCQlyZXR1cm4gLUVOT01FTTsKIAogCXJlbSA9IHJvdW5kX3VwKG9i ai0+YmFzZS5zaXplLCBCSVQoMzEpKSA+PiAzMTsKIAlpZiAoc2dfYWxsb2NfdGFibGUocGFnZXMs IHJlbSwgR0ZQKSkgewogCQlrZnJlZShwYWdlcyk7Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OworCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKIAlyZW0gPSBvYmotPmJhc2Uuc2l6ZTsKQEAgLTcy LDcgKzcxLDEwIEBAIGZha2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiAJR0VNX0JVR19PTihyZW0pOwogCiAJb2JqLT5tbS5tYWR2ID0gSTkxNV9NQURWX0RPTlRO RUVEOwotCXJldHVybiBwYWdlczsKKworCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmos IHBhZ2VzKTsKKworCXJldHVybiAwOwogI3VuZGVmIEdGUAogfQogCi0tIAoyLjEzLjUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=