From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [PATCH 1/4] drm/i915: Allow i915 to manage the vma offset nodes instead of drm core Date: Fri, 15 Nov 2019 13:45:46 +0200 Message-ID: <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 6D4F86E4BB for ; Fri, 15 Nov 2019 11:45:54 +0000 (UTC) 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 SGF2ZSBpOTE1IHJlcGxhY2UgdGhlIGNvcmUgZHJtX2dlbV9tbWFwIGltcGxlbWVudGF0aW9uIHRv IG92ZXJjb21lIGl0cwpsaW1pdGF0aW9uIGluIGhhdmluZyBvbmx5IGEgc2luZ2xlIG1tYXAgb2Zm c2V0IG5vZGUgcGVyIGdlbSBvYmplY3QuClRoaXMgY2hhbmdlIGFsbG93cyB1cyB0byBoYXZlIG11 bHRpcGxlIG1tYXAgb2Zmc2V0cyBwZXIgb2JqZWN0IGFuZAplbmFibGVzIGEgbW1hcHBpbmcgaW5z dGFuY2UgdG8gdXNlIHVuaXF1ZSBmYXVsdC1oYW5kbGVycyBwZXIgdXNlciB2bWEuCgpUaGlzIGFs bG93cyBpOTE1IHRvIHN0b3JlIGV4dHJhIGRhdGEgd2l0aGluIHZtYS0+dm1fcHJpdmF0ZV9kYXRh IGFuZAphc3NpZ24gdGhlIHBhZ2VmYXVsdCBvcHMgZm9yIGVhY2ggbW1hcCBpbnN0YW5jZSBhbGxv d2luZyBvYmplY3RzIHRvIHVzZQptdWx0aXBsZSBmYXVsdCBoYW5kbGVycyBkZXBlbmRpbmcgb24g aXRzIGJhY2tpbmcgc3RvcmFnZS4KCnYyOgogLSBGaXggcmFjZSBjb25kaXRpb24gZXhwb3NlZCBi eSBnZW1fbW1hcF9ndHRAY2xvc2UtcmFjZS4gU2ltcGxpZnkKICAgbGlmZXRpbWUgbWFuYWdlbWVu dCBvZiB0aGUgbW1hcCBvZmZzZXQgb2JqZWN0cyBiZSBlbnN1cmluZyBpdCBpcwogICBvd25lZCBi eSB0aGUgcGFyZW50IGdlbSBvYmplY3QgaW5zdGVhZCBvZiByZWZjb3VudGluZy4KIC0gVHJhY2sg bW1vIHVzZWQgYnkgZmVuY2luZyB0byBBdm9pZCBsb2NraW5nIHdoZW4gcmV2b2tpbmcgbW1hcHMK ICAgZHVyaW5nIEdQVSByZXNldC4KIC0gUmViYXNlLgp2MzoKIC0gU2ltcGxpZnkgbW1vIHRyYWNr aW5nCnY0OgogLSB1c2Ugdm1hLT5tbW8gaW4gX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFw X2d0dAp2NToKIC0gUmV2b2tlIENQVSBtbWFwcyBvbiBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKCkg c2luY2UgdW5saWtlIEdUVAogICBtbWFwcywgdGhleSBkb24ndCBoYXZlIGJvdW5kIGk5MTVfdm1h cyBvYmplY3RzLiBSZWJhc2UuCnY2OiBNaW5vciB0d2Vha3MsIGhlYWRlciByZS1vcmcgKENocmlz KQoKU2lnbmVkLW9mZi1ieTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXgu aW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jICAgICAgfCAyNDMgKysrKysrKysrKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5oICAgICAgfCAgMjggKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyAgICB8ICAxNCArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggICAgfCAgIDcgKy0KIC4uLi9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8ICAxOSArKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMgICAgIHwgICAzICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYyAgICB8ICAgMSArCiAuLi4vZHJtL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgICAgfCAgMjEgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5oICAgICAgICAgICAgICAgfCAgIDMgKwogMTYgZmlsZXMgY2hhbmdlZCwgMzEz IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKaW5kZXggZTJhZjYzYWY2N2FkLi5mZDFjNmYxMmI3N2Eg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKQEAgLTEzLDYg KzEzLDcgQEAKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X3Zt YS5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9tbWFu LmgiCiAKIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2Zvcl9kaXNwbGF5KHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CkBAIC0yNTUsNyArMjU2LDcgQEAgaW50 IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAkJCX0KIAogCQkJaWYgKG9iai0+dXNlcmZhdWx0X2NvdW50KQotCQkJCV9faTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChvYmopOworCQkJCV9faTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcF9ndHQob2JqKTsKIAogCQkJLyoKIAkJCSAqIEFzIHdlIG5vIGxvbmdlciBuZWVk IGEgZmVuY2UgZm9yIEdUVCBhY2Nlc3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X21tYW4uYwppbmRleCBkNjA5NzM2MDNjYzEuLmU2MDJkZmI0NDUzMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAi aTkxNV9nZW1fZ3R0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1faW9jdGxzLmgiCiAjaW5jbHVkZSAi aTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fbW1hbi5oIgogI2luY2x1ZGUg Imk5MTVfdHJhY2UuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgogCkBAIC0yMTksNyArMjIwLDgg QEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHsKICNk ZWZpbmUgTUlOX0NIVU5LX1BBR0VTIChTWl8xTSA+PiBQQUdFX1NISUZUKQogCXN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqYXJlYSA9IHZtZi0+dm1hOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSB0b19pbnRlbF9ibyhhcmVhLT52bV9wcml2YXRlX2RhdGEpOworCXN0cnVjdCBpOTE1 X21tYXBfb2Zmc2V0ICpwcml2ID0gYXJlYS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBwcml2LT5vYmo7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IG9iai0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1l X3BtOwpAQCAtMzEyLDYgKzMxNCw5IEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0 IHZtX2ZhdWx0ICp2bWYpCiAJCWxpc3RfYWRkKCZvYmotPnVzZXJmYXVsdF9saW5rLCAmaTkxNS0+ Z2d0dC51c2VyZmF1bHRfbGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5nZ3R0LnZtLm11dGV4 KTsKIAorCS8qIFRyYWNrIHRoZSBtbW8gYXNzb2NpYXRlZCB3aXRoIHRoZSBmZW5jZWQgdm1hICov CisJdm1hLT5tbW8gPSBwcml2OworCiAJaWYgKElTX0FDVElWRShDT05GSUdfRFJNX0k5MTVfVVNF UkZBVUxUX0FVVE9TVVNQRU5EKSkKIAkJaW50ZWxfd2FrZXJlZl9hdXRvKCZpOTE1LT5nZ3R0LnVz ZXJmYXVsdF93YWtlcmVmLAogCQkJCSAgIG1zZWNzX3RvX2ppZmZpZXNfdGltZW91dChDT05GSUdf RFJNX0k5MTVfVVNFUkZBVUxUX0FVVE9TVVNQRU5EKSk7CkBAIC0zNTgsMjggKzM2MywxOSBAQCB2 bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCX0KIH0KIAot dm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX2d0dChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwog CiAJR0VNX0JVR19PTighb2JqLT51c2VyZmF1bHRfY291bnQpOwogCi0Jb2JqLT51c2VyZmF1bHRf Y291bnQgPSAwOwotCWxpc3RfZGVsKCZvYmotPnVzZXJmYXVsdF9saW5rKTsKLQlkcm1fdm1hX25v ZGVfdW5tYXAoJm9iai0+YmFzZS52bWFfbm9kZSwKLQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25f aW5vZGUtPmlfbWFwcGluZyk7Ci0KIAlmb3JfZWFjaF9nZ3R0X3ZtYSh2bWEsIG9iaikKLQkJaTkx NV92bWFfdW5zZXRfdXNlcmZhdWx0KHZtYSk7CisJCWk5MTVfdm1hX3Jldm9rZV9tbWFwKHZtYSk7 CisKKwlHRU1fQlVHX09OKG9iai0+dXNlcmZhdWx0X2NvdW50KTsKIH0KIAogLyoqCi0gKiBpOTE1 X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwIC0gcmVtb3ZlIHBoeXNpY2FsIHBhZ2UgbWFwcGluZ3MK LSAqIEBvYmo6IG9iaiBpbiBxdWVzdGlvbgotICoKLSAqIFByZXNlcnZlIHRoZSByZXNlcnZhdGlv biBvZiB0aGUgbW1hcHBpbmcgd2l0aCB0aGUgRFJNIGNvcmUgY29kZSwgYnV0Ci0gKiByZWxpbnF1 aXNoIG93bmVyc2hpcCBvZiB0aGUgcGFnZXMgYmFjayB0byB0aGUgc3lzdGVtLgotICoKICAqIEl0 IGlzIHZpdGFsIHRoYXQgd2UgcmVtb3ZlIHRoZSBwYWdlIG1hcHBpbmcgaWYgd2UgaGF2ZSBtYXBw ZWQgYSB0aWxlZAogICogb2JqZWN0IHRocm91Z2ggdGhlIEdUVCBhbmQgdGhlbiBsb3NlIHRoZSBm ZW5jZSByZWdpc3RlciBkdWUgdG8KICAqIHJlc291cmNlIHByZXNzdXJlLiBTaW1pbGFybHkgaWYg dGhlIG9iamVjdCBoYXMgYmVlbiBtb3ZlZCBvdXQgb2YgdGhlCkBAIC0zODcsNyArMzgzLDcgQEAg dm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKICAqIG1hcHBpbmcgd2lsbCB0aGVuIHRyaWdnZXIgYSBwYWdlIGZhdWx0IG9u IHRoZSBuZXh0IHVzZXIgYWNjZXNzLCBhbGxvd2luZwogICogZml4dXAgYnkgaTkxNV9nZW1fZmF1 bHQoKS4KICAqLwotdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFz ZV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKQEAgLTQwNiw3ICs0MDIsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVj dF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpZiAoIW9i ai0+dXNlcmZhdWx0X2NvdW50KQogCQlnb3RvIG91dDsKIAotCV9faTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcChvYmopOworCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2Jq KTsKIAogCS8qIEVuc3VyZSB0aGF0IHRoZSBDUFUncyBQVEUgYXJlIHJldm9rZWQgYW5kIHRoZXJl IGFyZSBub3Qgb3V0c3RhbmRpbmcKIAkgKiBtZW1vcnkgdHJhbnNhY3Rpb25zIGZyb20gdXNlcnNw YWNlIGJlZm9yZSB3ZSByZXR1cm4uIFRoZSBUTEIKQEAgLTQyMiwxNSArNDE4LDYzIEBAIHZvaWQg aTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK IH0KIAotc3RhdGljIGludCBjcmVhdGVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9vZmZzZXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNl dCAqbW1vOworCisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlzdF9mb3JfZWFjaF9l bnRyeShtbW8sICZvYmotPm1tYXBfb2Zmc2V0cywgb2Zmc2V0KSB7CisJCS8qIHZtYV9ub2RlX3Vu bWFwIGZvciBHVFQgbW1hcHMgaGFuZGxlZCBhbHJlYWR5IGluCisJCSAqIF9faTkxNV9nZW1fb2Jq ZWN0X3JlbGVhc2VfbW1hcF9ndHQKKwkJICovCisJCWlmIChtbW8tPm1tYXBfdHlwZSAhPSBJOTE1 X01NQVBfVFlQRV9HVFQpCisJCQlkcm1fdm1hX25vZGVfdW5tYXAoJm1tby0+dm1hX25vZGUsCisJ CQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25faW5vZGUtPmlfbWFwcGluZyk7CisJfQorCW11dGV4 X3VubG9jaygmb2JqLT5tbW9fbG9jayk7Cit9CisKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcCAtIHJlbW92ZSBwaHlzaWNhbCBwYWdlIG1hcHBpbmdzCisgKiBAb2JqOiBvYmog aW4gcXVlc3Rpb24KKyAqCisgKiBQcmVzZXJ2ZSB0aGUgcmVzZXJ2YXRpb24gb2YgdGhlIG1tYXBw aW5nIHdpdGggdGhlIERSTSBjb3JlIGNvZGUsIGJ1dAorICogcmVsaW5xdWlzaCBvd25lcnNoaXAg b2YgdGhlIHBhZ2VzIGJhY2sgdG8gdGhlIHN5c3RlbS4KKyAqLwordm9pZCBpOTE1X2dlbV9vYmpl Y3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJaTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2JqKTsKKwlpOTE1X2dlbV9vYmplY3RfcmVs ZWFzZV9tbWFwX29mZnNldChvYmopOworfQorCitzdGF0aWMgdm9pZCBpbml0X21tYXBfb2Zmc2V0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgIHN0cnVjdCBpOTE1X21t YXBfb2Zmc2V0ICptbW8pCit7CisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlzdF9h ZGQoJm1tby0+b2Zmc2V0LCAmb2JqLT5tbWFwX29mZnNldHMpOworCW11dGV4X3VubG9jaygmb2Jq LT5tbW9fbG9jayk7CisKKwltbW8tPm9iaiA9IG9iajsKKwltbW8tPmRldiA9IG9iai0+YmFzZS5k ZXY7Cit9CisKK3N0YXRpYyBpbnQgY3JlYXRlX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCisJCQkgICAgICBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2 KTsKIAlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBvYmotPmJhc2UuZGV2OwogCWludCBlcnI7CiAKLQllcnIgPSBkcm1fZ2VtX2NyZWF0 ZV9tbWFwX29mZnNldCgmb2JqLT5iYXNlKTsKLQlpZiAobGlrZWx5KCFlcnIpKQorCWRybV92bWFf bm9kZV9yZXNldCgmbW1vLT52bWFfbm9kZSk7CisJaWYgKG1tby0+ZmlsZSkKKwkJZHJtX3ZtYV9u b2RlX2FsbG93KCZtbW8tPnZtYV9ub2RlLCBtbW8tPmZpbGUpOworCWVyciA9IGRybV92bWFfb2Zm c2V0X2FkZChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlciwgJm1tby0+dm1hX25vZGUsCisJCQkJIG9i ai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFKTsKKwlpZiAobGlrZWx5KCFlcnIpKSB7CisJCWluaXRf bW1hcF9vZmZzZXQob2JqLCBtbW8pOwogCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBBdHRlbXB0IHRv IHJlYXAgc29tZSBtbWFwIHNwYWNlIGZyb20gZGVhZCBvYmplY3RzICovCiAJZXJyID0gaW50ZWxf Z3RfcmV0aXJlX3JlcXVlc3RzX3RpbWVvdXQoZ3QsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKQEAg LTQzOCwzNCArNDgyLDU2IEBAIHN0YXRpYyBpbnQgY3JlYXRlX21tYXBfb2Zmc2V0KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXJldHVybiBlcnI7CiAKIAlpOTE1X2dlbV9kcmFp bl9mcmVlZF9vYmplY3RzKGk5MTUpOwotCXJldHVybiBkcm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNl dCgmb2JqLT5iYXNlKTsKKwllcnIgPSBkcm1fdm1hX29mZnNldF9hZGQoZGV2LT52bWFfb2Zmc2V0 X21hbmFnZXIsICZtbW8tPnZtYV9ub2RlLAorCQkJCSBvYmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0la RSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWluaXRfbW1hcF9vZmZzZXQob2JqLCBt bW8pOworCXJldHVybiAwOwogfQogCi1pbnQKLWk5MTVfZ2VtX21tYXBfZ3R0KHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSwKLQkJICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgIHUzMiBoYW5kbGUs Ci0JCSAgdTY0ICpvZmZzZXQpCitzdGF0aWMgaW50CitfX2Fzc2lnbl9nZW1fb2JqZWN0X21tYXBf ZGF0YShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCQkgICAgICB1MzIgaGFuZGxlLAorCQkJICAg ICAgZW51bSBpOTE1X21tYXBfdHlwZSBtbWFwX3R5cGUsCisJCQkgICAgICB1NjQgKm9mZnNldCkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBpOTE1X21tYXBf b2Zmc2V0ICptbW87CiAJaW50IHJldDsKIAotCWlmICghaTkxNV9nZ3R0X2hhc19hcGVydHVyZSgm dG9faTkxNShkZXYpLT5nZ3R0KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KIAlvYmogPSBpOTE1X2dl bV9vYmplY3RfbG9va3VwKGZpbGUsIGhhbmRsZSk7CiAJaWYgKCFvYmopCiAJCXJldHVybiAtRU5P RU5UOwogCi0JaWYgKGk5MTVfZ2VtX29iamVjdF9uZXZlcl9iaW5kX2dndHQob2JqKSkgeworCWlm IChtbWFwX3R5cGUgPT0gSTkxNV9NTUFQX1RZUEVfR1RUICYmCisJICAgIGk5MTVfZ2VtX29iamVj dF9uZXZlcl9iaW5kX2dndHQob2JqKSkgewogCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIG91dDsK IAl9CiAKLQlyZXQgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKLQlpZiAocmV0ID09IDApCi0J CSpvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm9iai0+YmFzZS52bWFfbm9kZSk7 CisJaWYgKG1tYXBfdHlwZSAhPSBJOTE1X01NQVBfVFlQRV9HVFQgJiYKKwkgICAgIWk5MTVfZ2Vt X29iamVjdF9oYXNfc3RydWN0X3BhZ2Uob2JqKSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3Rv IG91dDsKKwl9CisKKwltbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFtbW8pIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCisJbW1vLT5m aWxlID0gZmlsZTsKKwlyZXQgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqLCBtbW8pOworCWlmIChy ZXQpIHsKKwkJa2ZyZWUobW1vKTsKKwkJZ290byBvdXQ7CisJfQogCisJbW1vLT5tbWFwX3R5cGUg PSBtbWFwX3R5cGU7CisJKm9mZnNldCA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmbW1vLT52 bWFfbm9kZSk7CiBvdXQ6CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCXJldHVybiByZXQ7 CkBAIC00OTIsNyArNTU4LDExOCBAQCBpOTE1X2dlbV9tbWFwX2d0dF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcF9n dHQgKmFyZ3MgPSBkYXRhOwogCi0JcmV0dXJuIGk5MTVfZ2VtX21tYXBfZ3R0KGZpbGUsIGRldiwg YXJncy0+aGFuZGxlLCAmYXJncy0+b2Zmc2V0KTsKKwlyZXR1cm4gX19hc3NpZ25fZ2VtX29iamVj dF9tbWFwX2RhdGEoZmlsZSwgYXJncy0+aGFuZGxlLAorCQkJCQkgICAgIEk5MTVfTU1BUF9UWVBF X0dUVCwKKwkJCQkJICAgICAmYXJncy0+b2Zmc2V0KTsKK30KKwordm9pZCBpOTE1X21tYXBfb2Zm c2V0X2Rlc3Ryb3koc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywgc3RydWN0IG11dGV4ICpt dXRleCkKK3sKKwlpZiAobW1vLT5maWxlKQorCQlkcm1fdm1hX25vZGVfcmV2b2tlKCZtbW8tPnZt YV9ub2RlLCBtbW8tPmZpbGUpOworCWRybV92bWFfb2Zmc2V0X3JlbW92ZShtbW8tPmRldi0+dm1h X29mZnNldF9tYW5hZ2VyLCAmbW1vLT52bWFfbm9kZSk7CisKKwltdXRleF9sb2NrKG11dGV4KTsK KwlsaXN0X2RlbCgmbW1vLT5vZmZzZXQpOworCW11dGV4X3VubG9jayhtdXRleCk7CisKKwlrZnJl ZShtbW8pOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2dlbV92bV9vcGVuKHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8gPSB2bWEtPnZt X3ByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gbW1vLT5v Ymo7CisKKwlHRU1fQlVHX09OKCFvYmopOworCWk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKK30K Kworc3RhdGljIHZvaWQgaTkxNV9nZW1fdm1fY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpCit7CisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IHZtYS0+dm1fcHJpdmF0ZV9k YXRhOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBtbW8tPm9iajsKKworCUdF TV9CVUdfT04oIW9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2VtX2d0dF92bV9vcHMgPSB7 CisJLmZhdWx0ID0gaTkxNV9nZW1fZmF1bHQsCisJLm9wZW4gPSBpOTE1X2dlbV92bV9vcGVuLAor CS5jbG9zZSA9IGk5MTVfZ2VtX3ZtX2Nsb3NlLAorfTsKKworLyogVGhpcyBvdmVyY29tZXMgdGhl IGxpbWl0YXRpb24gaW4gZHJtX2dlbV9tbWFwJ3MgYXNzaWdubWVudCBvZiBhCisgKiBkcm1fZ2Vt X29iamVjdCBhcyB0aGUgdm1hLT52bV9wcml2YXRlX2RhdGEuIFNpbmNlIHdlIG5lZWQgdG8KKyAq IGJlIGFibGUgdG8gcmVzb2x2ZSBtdWx0aXBsZSBtbWFwIG9mZnNldHMgd2hpY2ggY291bGQgYmUg dGllZAorICogdG8gYSBzaW5nbGUgZ2VtIG9iamVjdC4KKyAqLworaW50IGk5MTVfZ2VtX21tYXAo c3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVj dCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlOworCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZp bHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3It PmRldjsKKwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vID0gTlVMTDsKKwlzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiA9IE5VTEw7CisKKwlpZiAoZHJtX2Rldl9pc191bnBsdWdnZWQoZGV2 KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkcm1fdm1hX29mZnNldF9sb2NrX2xvb2t1cChkZXYt PnZtYV9vZmZzZXRfbWFuYWdlcik7CisJbm9kZSA9IGRybV92bWFfb2Zmc2V0X2V4YWN0X2xvb2t1 cF9sb2NrZWQoZGV2LT52bWFfb2Zmc2V0X21hbmFnZXIsCisJCQkJCQkgIHZtYS0+dm1fcGdvZmYs CisJCQkJCQkgIHZtYV9wYWdlcyh2bWEpKTsKKwlpZiAobGlrZWx5KG5vZGUpKSB7CisJCW1tbyA9 IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCwKKwkJCQkgICB2bWFf bm9kZSk7CisJCS8qCisJCSAqIEluIG91ciBkZXBlbmRlbmN5IGNoYWluLCB0aGUgZHJtX3ZtYV9v ZmZzZXRfbm9kZQorCQkgKiBkZXBlbmRzIG9uIHRoZSB2YWxpZGl0eSBvZiB0aGUgbW1vLCB3aGlj aCBkZXBlbmRzIG9uCisJCSAqIHRoZSBnZW0gb2JqZWN0LiBIb3dldmVyIHRoZSBvbmx5IHJlZmVy ZW5jZSB3ZSBoYXZlCisJCSAqIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG1tbyAoYXMgdGhlIHBhcmVu dCBvZiB0aGUgbm9kZSkuCisJCSAqIFRyeSB0byBjaGVjayBpZiB0aGUgZ2VtIG9iamVjdCB3YXMg YXQgbGVhc3QgY2xlYXJlZC4KKwkJICovCisJCWlmICghbW1vIHx8ICFtbW8tPm9iaikgeworCQkJ ZHJtX3ZtYV9vZmZzZXRfdW5sb2NrX2xvb2t1cChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlcik7CisJ CQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQkvKgorCQkgKiBTa2lwIDAtcmVmY250ZWQgb2JqZWN0 cyBhcyBpdCBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZworCQkgKiBkZXN0cm95ZWQgYW5kIHdp bGwgYmUgaW52YWxpZCB3aGVuIHRoZSB2bWEgbWFuYWdlciBsb2NrCisJCSAqIGlzIHJlbGVhc2Vk LgorCQkgKi8KKwkJb2JqID0gJm1tby0+b2JqLT5iYXNlOworCQlpZiAoIWtyZWZfZ2V0X3VubGVz c196ZXJvKCZvYmotPnJlZmNvdW50KSkKKwkJCW9iaiA9IE5VTEw7CisKKwl9CisJZHJtX3ZtYV9v ZmZzZXRfdW5sb2NrX2xvb2t1cChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlcik7CisKKwlpZiAoIW9i aikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWRybV92bWFfbm9kZV9pc19hbGxvd2VkKG5v ZGUsIHByaXYpKSB7CisJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOworCQlyZXR1 cm4gLUVBQ0NFUzsKKwl9CisKKwlpZiAodG9faW50ZWxfYm8ob2JqKS0+cmVhZG9ubHkpIHsKKwkJ aWYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSkgeworCQkJZHJtX2dlbV9vYmplY3RfcHV0X3Vu bG9ja2VkKG9iaik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQl2bWEtPnZtX2ZsYWdzICY9 IH5WTV9NQVlXUklURTsKKwl9CisKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX1BGTk1BUCB8IFZNX0RP TlRFWFBBTkQgfCBWTV9ET05URFVNUDsKKwl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF93cml0 ZWNvbWJpbmUodm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJdm1hLT52bV9wYWdl X3Byb3QgPSBwZ3Byb3RfZGVjcnlwdGVkKHZtYS0+dm1fcGFnZV9wcm90KTsKKwl2bWEtPnZtX3By aXZhdGVfZGF0YSA9IG1tbzsKKworCXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7 CisKKwlyZXR1cm4gMDsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZU RVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4u aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNWEzYzRkNmNkNjUKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5oCkBAIC0wLDAgKzEs MjggQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJp Z2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSTkxNV9HRU1f TU1BTl9IX18KKyNkZWZpbmUgX19JOTE1X0dFTV9NTUFOX0hfXworCisjaW5jbHVkZSA8bGludXgv bW1fdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgZHJtX2Rldmlj ZTsKK3N0cnVjdCBkcm1fZmlsZTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Oworc3RydWN0 IGZpbGU7CitzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldDsKK3N0cnVjdCBtdXRleDsKKworaW50IGk5 MTVfZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h KTsKK3ZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpOwordm9p ZCBpOTE1X21tYXBfb2Zmc2V0X2Rlc3Ryb3koc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywg c3RydWN0IG11dGV4ICptdXRleCk7CisKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9t bWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3Zv aWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdC5jCmluZGV4IGRiMTAzZDNjODc2MC4uYzRmNGYxMGM4NTJkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC0yOSw2ICsyOSw3IEBACiAj aW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCiAjaW5j bHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX21tYW4uaCIKICNp bmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKICNp bmNsdWRlICJpOTE1X3RyYWNlLmgiCkBAIC02MSw2ICs2Miw5IEBAIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X2luaXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCUlOSVRfTElTVF9I RUFEKCZvYmotPmx1dF9saXN0KTsKIAorCW11dGV4X2luaXQoJm9iai0+bW1vX2xvY2spOworCUlO SVRfTElTVF9IRUFEKCZvYmotPm1tYXBfb2Zmc2V0cyk7CisKIAlpbml0X3JjdV9oZWFkKCZvYmot PnJjdSk7CiAKIAlvYmotPm9wcyA9IG9wczsKQEAgLTE1OCw2ICsxNjIsOCBAQCBzdGF0aWMgdm9p ZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAJ bGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG9uLCBmcmVlZCwgZnJlZWQpIHsKKwkJc3Ry dWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywgKm1uOworCiAJCXRyYWNlX2k5MTVfZ2VtX29iamVj dF9kZXN0cm95KG9iaik7CiAKIAkJaWYgKCFsaXN0X2VtcHR5KCZvYmotPnZtYS5saXN0KSkgewpA QCAtMTgzLDYgKzE4OSwxNCBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCXNwaW5fdW5sb2NrKCZvYmotPnZtYS5s b2NrKTsKIAkJfQogCisJCWk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKworCQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobW1vLCBtbiwgJm9iai0+bW1hcF9vZmZzZXRzLCBvZmZz ZXQpIHsKKwkJCW1tby0+b2JqID0gTlVMTDsKKwkJCWk5MTVfbW1hcF9vZmZzZXRfZGVzdHJveSht bW8sICZvYmotPm1tb19sb2NrKTsKKwkJfQorCisJCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm9i ai0+bW1hcF9vZmZzZXRzKSk7CiAJCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJm9iai0+YmluZF9j b3VudCkpOwogCQlHRU1fQlVHX09OKG9iai0+dXNlcmZhdWx0X2NvdW50KTsKIAkJR0VNX0JVR19P TighbGlzdF9lbXB0eSgmb2JqLT5sdXRfbGlzdCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5oCmluZGV4IGU1NzUwZDUwNmNjOS4uOWI2MWYxODYwNmUwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xMzIsMTMgKzEz MiwxMyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF91bmxvY2tfZmVuY2Uoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIHN0YXRpYyBpbmxpbmUgdm9pZAogaTkxNV9nZW1fb2JqZWN0X3Nl dF9yZWFkb25seShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCW9iai0+YmFz ZS52bWFfbm9kZS5yZWFkb25seSA9IHRydWU7CisJb2JqLT5yZWFkb25seSA9IHRydWU7CiB9CiAK IHN0YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmV0dXJuIG9iai0+YmFzZS52bWFf bm9kZS5yZWFkb25seTsKKwlyZXR1cm4gb2JqLT5yZWFkb25seTsKIH0KIAogc3RhdGljIGlubGlu ZSBib29sCkBAIC0zODcsOSArMzg3LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29i amVjdF91bnBpbl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpOTE1X2dl bV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIH0KIAotdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9y ZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Ci12b2lkIGk5MTVf Z2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7 Ci0KIHZvaWQKIGk5MTVfZ2VtX29iamVjdF9mbHVzaF93cml0ZV9kb21haW4oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgICB1bnNpZ25lZCBpbnQgZmx1c2hfZG9tYWlucyk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgK aW5kZXggMTVmODI5N2RjMzRlLi42MzJkNmI4MDRjZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTYzLDYgKzYzLDIwIEBAIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyB7CiAJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogfTsKIAorZW51bSBpOTE1X21tYXBfdHlwZSB7CisJ STkxNV9NTUFQX1RZUEVfR1RUID0gMCwKK307CisKK3N0cnVjdCBpOTE1X21tYXBfb2Zmc2V0IHsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlIHZt YV9ub2RlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGRybV9m aWxlICpmaWxlOworCWVudW0gaTkxNV9tbWFwX3R5cGUgbW1hcF90eXBlOworCisJc3RydWN0IGxp c3RfaGVhZCBvZmZzZXQ7Cit9OworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJc3Ry dWN0IGRybV9nZW1fb2JqZWN0IGJhc2U7CiAKQEAgLTExOCw2ICsxMzIsMTEgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgewogCXVuc2lnbmVkIGludCB1c2VyZmF1bHRfY291bnQ7CiAJc3Ry dWN0IGxpc3RfaGVhZCB1c2VyZmF1bHRfbGluazsKIAorCS8qIFByb3RlY3RzIGFjY2VzcyB0byBt bWFwIG9mZnNldHMgKi8KKwlzdHJ1Y3QgbXV0ZXggbW1vX2xvY2s7CisJc3RydWN0IGxpc3RfaGVh ZCBtbWFwX29mZnNldHM7CisJYm9vbCByZWFkb25seToxOworCiAJSTkxNV9TRUxGVEVTVF9ERUNM QVJFKHN0cnVjdCBsaXN0X2hlYWQgc3RfbGluayk7CiAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYwppbmRleCBmNDAyYzJjNDE1 YzIuLjc1MTk3Y2E2OTZhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Bh Z2VzLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5j bHVkZSAiaTkxNV9zY2F0dGVybGlzdC5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKKyNp bmNsdWRlICJpOTE1X2dlbV9tbWFuLmgiCiAKIHZvaWQgX19pOTE1X2dlbV9vYmplY3Rfc2V0X3Bh Z2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVjdCBzZ190YWJs ZSAqcGFnZXMsCkBAIC0yMDcsNiArMjA4LDggQEAgaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQlnb3RvIHVubG9jazsKIAl9 CiAKKwlpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX29mZnNldChvYmopOworCiAJLyoKIAkg KiAtPnB1dF9wYWdlcyBtaWdodCBuZWVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIGJpdDE3 IHN3aXp6bGUKIAkgKiBhcnJheSwgaGVuY2UgcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcgcmVhcGVk IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBndHQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV90aWxpbmcuYwppbmRleCAxZmE1OTJkODJhZjUuLjZjNzgyNWEyZGMyYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3RpbGluZy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYwpAQCAtMTEsNiArMTEsNyBAQAog I2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKICNpbmNsdWRlICJp OTE1X2dlbV9pb2N0bHMuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVkZSAi aTkxNV9nZW1fb2JqZWN0LmgiCiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwppbmRleCA5ZjFhNjkwMjdhMDQuLjYzZTI0ZjZi MGQ0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9tbWFuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9tbWFuLmMKQEAgLTU2NCwxNSArNTY0LDIwIEBAIHN0YXRpYyBib29sIGFzc2VydF9tbWFw X29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSAgICAgICBpbnQgZXhw ZWN0ZWQpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwkvKiBPd25lcnNo aXAgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGdlbSBvYmplY3QgaW4gY3JlYXRlX21tYXBfb2Zmc2V0 ICovCisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IGt6YWxsb2Moc2l6ZW9mKCptbW8p LCBHRlBfS0VSTkVMKTsKIAlpbnQgZXJyOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9pbnRlcm5hbChpOTE1LCBzaXplKTsKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJf RVJSKG9iaik7CiAKLQllcnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKKwllcnIgPSBjcmVh dGVfbW1hcF9vZmZzZXQob2JqLCBtbW8pOworCWlmIChlcnIpCisJCWtmcmVlKG1tbyk7CiAJaTkx NV9nZW1fb2JqZWN0X3B1dChvYmopOwogCisKIAlyZXR1cm4gZXJyID09IGV4cGVjdGVkOwogfQog CkBAIC02MDgsNiArNjEzLDggQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlv bih2b2lkICphcmcpCiAJc3RydWN0IGRybV9tbSAqbW0gPSAmaTkxNS0+ZHJtLnZtYV9vZmZzZXRf bWFuYWdlci0+dm1fYWRkcl9zcGFjZV9tbTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZSwgKm5leHQ7CisJLyogT3duZXJzaGlwIHRy YW5zZmVycmVkIHRvIHBhcmVudCBnZW0gb2JqZWN0IGluIGNyZWF0ZV9tbWFwX29mZnNldCAqLwor CXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQ X0tFUk5FTCk7CiAJaW50IGxvb3AsIGVycjsKIAogCS8qIERpc2FibGUgYmFja2dyb3VuZCByZWFw ZXIgKi8KQEAgLTY3Miw5ICs2NzksMTAgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXho YXVzdGlvbih2b2lkICphcmcpCiAJCWdvdG8gb3V0OwogCX0KIAotCWVyciA9IGNyZWF0ZV9tbWFw X29mZnNldChvYmopOworCWVyciA9IGNyZWF0ZV9tbWFwX29mZnNldChvYmosIG1tbyk7CiAJaWYg KGVycikgewogCQlwcl9lcnIoIlVuYWJsZSB0byBpbnNlcnQgb2JqZWN0IGludG8gcmVjbGFpbWVk IGhvbGVcbiIpOworCQlrZnJlZShtbW8pOwogCQlnb3RvIGVycl9vYmo7CiAJfQogCkBAIC05MTks NiArOTI3LDE1IEBAIHN0YXRpYyBpbnQgaWd0X21tYXBfZ3R0X3Jldm9rZSh2b2lkICphcmcpCiAJ fQogCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpOwogCisJaWYgKHR5 cGUgIT0gSTkxNV9NTUFQX1RZUEVfR1RUKSB7CisJCV9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdl cyhvYmopOworCQlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKSB7CisJCQlwcl9l cnIoIkZhaWxlZCB0byBwdXQtcGFnZXMgb2JqZWN0IVxuIik7CisJCQllcnIgPSAtRUlOVkFMOwor CQkJZ290byBvdXRfdW5tYXA7CisJCX0KKwl9CisKIAllcnIgPSBjaGVja19hYnNlbnQoYWRkciwg b2JqLT5iYXNlLnNpemUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3VubWFwOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKaW5kZXggYjcwMDdjZDc4YzZmLi43NzdlYWE0ODM2NzYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtNjc4LDggKzY3OCwxMyBA QCBzdGF0aWMgdm9pZCByZXZva2VfbW1hcHMoc3RydWN0IGludGVsX2d0ICpndCkKIAkJCWNvbnRp bnVlOwogCiAJCUdFTV9CVUdfT04odm1hLT5mZW5jZSAhPSAmZ3QtPmdndHQtPmZlbmNlX3JlZ3Nb aV0pOwotCQlub2RlID0gJnZtYS0+b2JqLT5iYXNlLnZtYV9ub2RlOworCisJCWlmICghdm1hLT5t bW8pCisJCQljb250aW51ZTsKKworCQlub2RlID0gJnZtYS0+bW1vLT52bWFfbm9kZTsKIAkJdm1h X29mZnNldCA9IHZtYS0+Z2d0dF92aWV3LnBhcnRpYWwub2Zmc2V0IDw8IFBBR0VfU0hJRlQ7CisK IAkJdW5tYXBfbWFwcGluZ19yYW5nZShndC0+aTkxNS0+ZHJtLmFub25faW5vZGUtPmlfbWFwcGlu ZywKIAkJCQkgICAgZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKG5vZGUpICsgdm1hX29mZnNldCwK IAkJCQkgICAgdm1hLT5zaXplLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOGQ3MDQ5Nzky ZDYyLi41ZmUwNzE2NDA4OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjY2MiwxOCAr MjY2MiwxMiBAQCBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3BtX29wcyA9IHsKIAkucnVu dGltZV9yZXN1bWUgPSBpbnRlbF9ydW50aW1lX3Jlc3VtZSwKIH07CiAKLXN0YXRpYyBjb25zdCBz dHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1fdm1fb3BzID0gewotCS5mYXVsdCA9 IGk5MTVfZ2VtX2ZhdWx0LAotCS5vcGVuID0gZHJtX2dlbV92bV9vcGVuLAotCS5jbG9zZSA9IGRy bV9nZW1fdm1fY2xvc2UsCi19OwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBpOTE1X2RyaXZlcl9mb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5vcGVuID0g ZHJtX29wZW4sCiAJLnJlbGVhc2UgPSBkcm1fcmVsZWFzZSwKIAkudW5sb2NrZWRfaW9jdGwgPSBk cm1faW9jdGwsCi0JLm1tYXAgPSBkcm1fZ2VtX21tYXAsCisJLm1tYXAgPSBpOTE1X2dlbV9tbWFw LAogCS5wb2xsID0gZHJtX3BvbGwsCiAJLnJlYWQgPSBkcm1fcmVhZCwKIAkuY29tcGF0X2lvY3Rs ID0gaTkxNV9jb21wYXRfaW9jdGwsCkBAIC0yNzYyLDcgKzI3NTYsNiBAQCBzdGF0aWMgc3RydWN0 IGRybV9kcml2ZXIgZHJpdmVyID0gewogCiAJLmdlbV9jbG9zZV9vYmplY3QgPSBpOTE1X2dlbV9j bG9zZV9vYmplY3QsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGk5MTVfZ2VtX2ZyZWVf b2JqZWN0LAotCS5nZW1fdm1fb3BzID0gJmk5MTVfZ2VtX3ZtX29wcywKIAogCS5wcmltZV9oYW5k bGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFu ZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCkBAIC0yNzczLDcgKzI3NjYsNiBAQCBz dGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogCS5nZXRfc2Nhbm91dF9wb3NpdGlv biA9IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcywKIAogCS5kdW1iX2NyZWF0ZSA9IGk5MTVfZ2Vt X2R1bWJfY3JlYXRlLAotCS5kdW1iX21hcF9vZmZzZXQgPSBpOTE1X2dlbV9tbWFwX2d0dCwKIAku aW9jdGxzID0gaTkxNV9pb2N0bHMsCiAJLm51bV9pb2N0bHMgPSBBUlJBWV9TSVpFKGk5MTVfaW9j dGxzKSwKIAkuZm9wcyA9ICZpOTE1X2RyaXZlcl9mb3BzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggMTc3OWY2MDBmY2ZiLi5hMzdjNzdiYTVjNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTg2MSw4ICsxODYxLDYgQEAgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKIAkJCSBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJIHN0cnVj dCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Ci1pbnQgaTkxNV9nZW1fbW1hcF9ndHQoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAg IHUzMiBoYW5kbGUsIHU2NCAqb2Zmc2V0KTsKIGludCBpOTE1X2dlbV9tbWFwX2d0dF92ZXJzaW9u KHZvaWQpOwogCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3NldF9nbG9iYWxfc2Vxbm8oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNlcW5vKTsKQEAgLTE4ODYsNyArMTg4NCw2IEBAIHZv aWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Ci12bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVs dCAqdm1mKTsKIAogaW50IGk5MTVfZ2VtX29wZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiB2b2lkIGk5MTVfZ2VtX3JlbGVhc2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IDQzYzUzMjc1NmM3Yy4uMWIxYWE3ZmMxNWJhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY2xmbHVz aC5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX2lvY3Rscy5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVk ZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3VzZXIuaCIK ICNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgpAQCAtODU0LDcgKzg1NSw3IEBAIHZvaWQgaTkxNV9n ZW1fcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgb24sCiAJCQkJICZpOTE1LT5nZ3R0LnVzZXJmYXVs dF9saXN0LCB1c2VyZmF1bHRfbGluaykKLQkJX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFw KG9iaik7CisJCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2JqKTsKIAogCS8q CiAJICogVGhlIGZlbmNlIHdpbGwgYmUgbG9zdCB3aGVuIHRoZSBkZXZpY2UgcG93ZXJzIGRvd24u IElmIGFueSB3ZXJlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBh cmFtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMKaW5kZXggY2Y4YThj M2VmMDQ3Li41NGZjZTgxZDU3MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2V0cGFyYW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMK QEAgLTIsNiArMiw3IEBACiAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiAgKi8KIAor I2luY2x1ZGUgImdlbS9pOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5l X3VzZXIuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpp bmRleCBlNTUxMmYyNmUyMGEuLjUxMDhkY2IyZTViMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5j CkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfdm1hX2lvdW5tYXAoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiAKIHZvaWQgaTkxNV92bWFfcmV2b2tlX21tYXAoc3RydWN0IGk5 MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUgPSAmdm1h LT5vYmotPmJhc2Uudm1hX25vZGU7CisJc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGU7 CiAJdTY0IHZtYV9vZmZzZXQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5tdXRl eCk7CkBAIC0xMDY1LDYgKzEwNjUsNyBAQCB2b2lkIGk5MTVfdm1hX3Jldm9rZV9tbWFwKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2Vh YmxlKHZtYSkpOwogCUdFTV9CVUdfT04oIXZtYS0+b2JqLT51c2VyZmF1bHRfY291bnQpOwogCisJ bm9kZSA9ICZ2bWEtPm1tby0+dm1hX25vZGU7CiAJdm1hX29mZnNldCA9IHZtYS0+Z2d0dF92aWV3 LnBhcnRpYWwub2Zmc2V0IDw8IFBBR0VfU0hJRlQ7CiAJdW5tYXBfbWFwcGluZ19yYW5nZSh2bWEt PnZtLT5pOTE1LT5kcm0uYW5vbl9pbm9kZS0+aV9tYXBwaW5nLAogCQkJICAgIGRybV92bWFfbm9k ZV9vZmZzZXRfYWRkcihub2RlKSArIHZtYV9vZmZzZXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaApp bmRleCA0NjU5MzI4MTNiYzUuLmYwOWY0ZjUxM2M0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5o CkBAIC02Myw2ICs2Myw5IEBAIHN0cnVjdCBpOTE1X3ZtYSB7CiAJdTY0IGRpc3BsYXlfYWxpZ25t ZW50OwogCXN0cnVjdCBpOTE1X3BhZ2Vfc2l6ZXMgcGFnZV9zaXplczsKIAorCS8qIG1tYXAtb2Zm c2V0IGFzc29jaWF0ZWQgd2l0aCBmZW5jaW5nIGZvciB0aGlzIHZtYSAqLworCXN0cnVjdCBpOTE1 X21tYXBfb2Zmc2V0CSptbW87CisKIAl1MzIgZmVuY2Vfc2l6ZTsKIAl1MzIgZmVuY2VfYWxpZ25t ZW50OwogCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA== 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 54FDCC432C3 for ; Fri, 15 Nov 2019 11:45:56 +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 3165F2072D for ; Fri, 15 Nov 2019 11:45:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3165F2072D 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 BF8EA6E4CF; Fri, 15 Nov 2019 11:45:55 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D4F86E4BB for ; Fri, 15 Nov 2019 11:45:54 +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:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="257738209" 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:52 -0800 From: Abdiel Janulgue To: intel-gfx@lists.freedesktop.org Date: Fri, 15 Nov 2019 13:45:46 +0200 Message-Id: <20191115114549.23716-1-abdiel.janulgue@linux.intel.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/4] drm/i915: Allow i915 to manage the vma offset nodes instead of drm core 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: <20191115114546.CFZPDal1nQ0yTHVkGHdqeayEnNCPe_ywJEj2RPgZi6M@z> SGF2ZSBpOTE1IHJlcGxhY2UgdGhlIGNvcmUgZHJtX2dlbV9tbWFwIGltcGxlbWVudGF0aW9uIHRv IG92ZXJjb21lIGl0cwpsaW1pdGF0aW9uIGluIGhhdmluZyBvbmx5IGEgc2luZ2xlIG1tYXAgb2Zm c2V0IG5vZGUgcGVyIGdlbSBvYmplY3QuClRoaXMgY2hhbmdlIGFsbG93cyB1cyB0byBoYXZlIG11 bHRpcGxlIG1tYXAgb2Zmc2V0cyBwZXIgb2JqZWN0IGFuZAplbmFibGVzIGEgbW1hcHBpbmcgaW5z dGFuY2UgdG8gdXNlIHVuaXF1ZSBmYXVsdC1oYW5kbGVycyBwZXIgdXNlciB2bWEuCgpUaGlzIGFs bG93cyBpOTE1IHRvIHN0b3JlIGV4dHJhIGRhdGEgd2l0aGluIHZtYS0+dm1fcHJpdmF0ZV9kYXRh IGFuZAphc3NpZ24gdGhlIHBhZ2VmYXVsdCBvcHMgZm9yIGVhY2ggbW1hcCBpbnN0YW5jZSBhbGxv d2luZyBvYmplY3RzIHRvIHVzZQptdWx0aXBsZSBmYXVsdCBoYW5kbGVycyBkZXBlbmRpbmcgb24g aXRzIGJhY2tpbmcgc3RvcmFnZS4KCnYyOgogLSBGaXggcmFjZSBjb25kaXRpb24gZXhwb3NlZCBi eSBnZW1fbW1hcF9ndHRAY2xvc2UtcmFjZS4gU2ltcGxpZnkKICAgbGlmZXRpbWUgbWFuYWdlbWVu dCBvZiB0aGUgbW1hcCBvZmZzZXQgb2JqZWN0cyBiZSBlbnN1cmluZyBpdCBpcwogICBvd25lZCBi eSB0aGUgcGFyZW50IGdlbSBvYmplY3QgaW5zdGVhZCBvZiByZWZjb3VudGluZy4KIC0gVHJhY2sg bW1vIHVzZWQgYnkgZmVuY2luZyB0byBBdm9pZCBsb2NraW5nIHdoZW4gcmV2b2tpbmcgbW1hcHMK ICAgZHVyaW5nIEdQVSByZXNldC4KIC0gUmViYXNlLgp2MzoKIC0gU2ltcGxpZnkgbW1vIHRyYWNr aW5nCnY0OgogLSB1c2Ugdm1hLT5tbW8gaW4gX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFw X2d0dAp2NToKIC0gUmV2b2tlIENQVSBtbWFwcyBvbiBpOTE1X2dlbV9vYmplY3RfdW5iaW5kKCkg c2luY2UgdW5saWtlIEdUVAogICBtbWFwcywgdGhleSBkb24ndCBoYXZlIGJvdW5kIGk5MTVfdm1h cyBvYmplY3RzLiBSZWJhc2UuCnY2OiBNaW5vciB0d2Vha3MsIGhlYWRlciByZS1vcmcgKENocmlz KQoKU2lnbmVkLW9mZi1ieTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXgu aW50ZWwuY29tPgpDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jICAgICAgfCAyNDMgKysrKysrKysrKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5oICAgICAgfCAgMjggKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyAgICB8ICAxNCArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggICAgfCAgIDcgKy0KIC4uLi9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8ICAxOSArKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMgICAgIHwgICAzICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYyAgICB8ICAgMSArCiAuLi4vZHJtL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgICAgfCAgMjEgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5oICAgICAgICAgICAgICAgfCAgIDMgKwogMTYgZmlsZXMgY2hhbmdlZCwgMzEz IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKaW5kZXggZTJhZjYzYWY2N2FkLi5mZDFjNmYxMmI3N2Eg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMKQEAgLTEzLDYg KzEzLDcgQEAKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X3Zt YS5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9tbWFu LmgiCiAKIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2Zvcl9kaXNwbGF5KHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CkBAIC0yNTUsNyArMjU2LDcgQEAgaW50 IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAkJCX0KIAogCQkJaWYgKG9iai0+dXNlcmZhdWx0X2NvdW50KQotCQkJCV9faTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChvYmopOworCQkJCV9faTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcF9ndHQob2JqKTsKIAogCQkJLyoKIAkJCSAqIEFzIHdlIG5vIGxvbmdlciBuZWVk IGEgZmVuY2UgZm9yIEdUVCBhY2Nlc3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X21tYW4uYwppbmRleCBkNjA5NzM2MDNjYzEuLmU2MDJkZmI0NDUzMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAi aTkxNV9nZW1fZ3R0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1faW9jdGxzLmgiCiAjaW5jbHVkZSAi aTkxNV9nZW1fb2JqZWN0LmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fbW1hbi5oIgogI2luY2x1ZGUg Imk5MTVfdHJhY2UuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgogCkBAIC0yMTksNyArMjIwLDgg QEAgdm1fZmF1bHRfdCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHsKICNk ZWZpbmUgTUlOX0NIVU5LX1BBR0VTIChTWl8xTSA+PiBQQUdFX1NISUZUKQogCXN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqYXJlYSA9IHZtZi0+dm1hOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSB0b19pbnRlbF9ibyhhcmVhLT52bV9wcml2YXRlX2RhdGEpOworCXN0cnVjdCBpOTE1 X21tYXBfb2Zmc2V0ICpwcml2ID0gYXJlYS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBwcml2LT5vYmo7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IG9iai0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1l X3BtOwpAQCAtMzEyLDYgKzMxNCw5IEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0 IHZtX2ZhdWx0ICp2bWYpCiAJCWxpc3RfYWRkKCZvYmotPnVzZXJmYXVsdF9saW5rLCAmaTkxNS0+ Z2d0dC51c2VyZmF1bHRfbGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5nZ3R0LnZtLm11dGV4 KTsKIAorCS8qIFRyYWNrIHRoZSBtbW8gYXNzb2NpYXRlZCB3aXRoIHRoZSBmZW5jZWQgdm1hICov CisJdm1hLT5tbW8gPSBwcml2OworCiAJaWYgKElTX0FDVElWRShDT05GSUdfRFJNX0k5MTVfVVNF UkZBVUxUX0FVVE9TVVNQRU5EKSkKIAkJaW50ZWxfd2FrZXJlZl9hdXRvKCZpOTE1LT5nZ3R0LnVz ZXJmYXVsdF93YWtlcmVmLAogCQkJCSAgIG1zZWNzX3RvX2ppZmZpZXNfdGltZW91dChDT05GSUdf RFJNX0k5MTVfVVNFUkZBVUxUX0FVVE9TVVNQRU5EKSk7CkBAIC0zNTgsMjggKzM2MywxOSBAQCB2 bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCX0KIH0KIAot dm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX2d0dChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwog CiAJR0VNX0JVR19PTighb2JqLT51c2VyZmF1bHRfY291bnQpOwogCi0Jb2JqLT51c2VyZmF1bHRf Y291bnQgPSAwOwotCWxpc3RfZGVsKCZvYmotPnVzZXJmYXVsdF9saW5rKTsKLQlkcm1fdm1hX25v ZGVfdW5tYXAoJm9iai0+YmFzZS52bWFfbm9kZSwKLQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25f aW5vZGUtPmlfbWFwcGluZyk7Ci0KIAlmb3JfZWFjaF9nZ3R0X3ZtYSh2bWEsIG9iaikKLQkJaTkx NV92bWFfdW5zZXRfdXNlcmZhdWx0KHZtYSk7CisJCWk5MTVfdm1hX3Jldm9rZV9tbWFwKHZtYSk7 CisKKwlHRU1fQlVHX09OKG9iai0+dXNlcmZhdWx0X2NvdW50KTsKIH0KIAogLyoqCi0gKiBpOTE1 X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwIC0gcmVtb3ZlIHBoeXNpY2FsIHBhZ2UgbWFwcGluZ3MK LSAqIEBvYmo6IG9iaiBpbiBxdWVzdGlvbgotICoKLSAqIFByZXNlcnZlIHRoZSByZXNlcnZhdGlv biBvZiB0aGUgbW1hcHBpbmcgd2l0aCB0aGUgRFJNIGNvcmUgY29kZSwgYnV0Ci0gKiByZWxpbnF1 aXNoIG93bmVyc2hpcCBvZiB0aGUgcGFnZXMgYmFjayB0byB0aGUgc3lzdGVtLgotICoKICAqIEl0 IGlzIHZpdGFsIHRoYXQgd2UgcmVtb3ZlIHRoZSBwYWdlIG1hcHBpbmcgaWYgd2UgaGF2ZSBtYXBw ZWQgYSB0aWxlZAogICogb2JqZWN0IHRocm91Z2ggdGhlIEdUVCBhbmQgdGhlbiBsb3NlIHRoZSBm ZW5jZSByZWdpc3RlciBkdWUgdG8KICAqIHJlc291cmNlIHByZXNzdXJlLiBTaW1pbGFybHkgaWYg dGhlIG9iamVjdCBoYXMgYmVlbiBtb3ZlZCBvdXQgb2YgdGhlCkBAIC0zODcsNyArMzgzLDcgQEAg dm9pZCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKICAqIG1hcHBpbmcgd2lsbCB0aGVuIHRyaWdnZXIgYSBwYWdlIGZhdWx0IG9u IHRoZSBuZXh0IHVzZXIgYWNjZXNzLCBhbGxvd2luZwogICogZml4dXAgYnkgaTkxNV9nZW1fZmF1 bHQoKS4KICAqLwotdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFz ZV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKQEAgLTQwNiw3ICs0MDIsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVj dF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpZiAoIW9i ai0+dXNlcmZhdWx0X2NvdW50KQogCQlnb3RvIG91dDsKIAotCV9faTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcChvYmopOworCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2Jq KTsKIAogCS8qIEVuc3VyZSB0aGF0IHRoZSBDUFUncyBQVEUgYXJlIHJldm9rZWQgYW5kIHRoZXJl IGFyZSBub3Qgb3V0c3RhbmRpbmcKIAkgKiBtZW1vcnkgdHJhbnNhY3Rpb25zIGZyb20gdXNlcnNw YWNlIGJlZm9yZSB3ZSByZXR1cm4uIFRoZSBUTEIKQEAgLTQyMiwxNSArNDE4LDYzIEBAIHZvaWQg aTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK IH0KIAotc3RhdGljIGludCBjcmVhdGVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKK3ZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9vZmZzZXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNl dCAqbW1vOworCisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlzdF9mb3JfZWFjaF9l bnRyeShtbW8sICZvYmotPm1tYXBfb2Zmc2V0cywgb2Zmc2V0KSB7CisJCS8qIHZtYV9ub2RlX3Vu bWFwIGZvciBHVFQgbW1hcHMgaGFuZGxlZCBhbHJlYWR5IGluCisJCSAqIF9faTkxNV9nZW1fb2Jq ZWN0X3JlbGVhc2VfbW1hcF9ndHQKKwkJICovCisJCWlmIChtbW8tPm1tYXBfdHlwZSAhPSBJOTE1 X01NQVBfVFlQRV9HVFQpCisJCQlkcm1fdm1hX25vZGVfdW5tYXAoJm1tby0+dm1hX25vZGUsCisJ CQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25faW5vZGUtPmlfbWFwcGluZyk7CisJfQorCW11dGV4 X3VubG9jaygmb2JqLT5tbW9fbG9jayk7Cit9CisKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X3Jl bGVhc2VfbW1hcCAtIHJlbW92ZSBwaHlzaWNhbCBwYWdlIG1hcHBpbmdzCisgKiBAb2JqOiBvYmog aW4gcXVlc3Rpb24KKyAqCisgKiBQcmVzZXJ2ZSB0aGUgcmVzZXJ2YXRpb24gb2YgdGhlIG1tYXBw aW5nIHdpdGggdGhlIERSTSBjb3JlIGNvZGUsIGJ1dAorICogcmVsaW5xdWlzaCBvd25lcnNoaXAg b2YgdGhlIHBhZ2VzIGJhY2sgdG8gdGhlIHN5c3RlbS4KKyAqLwordm9pZCBpOTE1X2dlbV9vYmpl Y3RfcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJaTkx NV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2JqKTsKKwlpOTE1X2dlbV9vYmplY3RfcmVs ZWFzZV9tbWFwX29mZnNldChvYmopOworfQorCitzdGF0aWMgdm9pZCBpbml0X21tYXBfb2Zmc2V0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgIHN0cnVjdCBpOTE1X21t YXBfb2Zmc2V0ICptbW8pCit7CisJbXV0ZXhfbG9jaygmb2JqLT5tbW9fbG9jayk7CisJbGlzdF9h ZGQoJm1tby0+b2Zmc2V0LCAmb2JqLT5tbWFwX29mZnNldHMpOworCW11dGV4X3VubG9jaygmb2Jq LT5tbW9fbG9jayk7CisKKwltbW8tPm9iaiA9IG9iajsKKwltbW8tPmRldiA9IG9iai0+YmFzZS5k ZXY7Cit9CisKK3N0YXRpYyBpbnQgY3JlYXRlX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCisJCQkgICAgICBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2 KTsKIAlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBvYmotPmJhc2UuZGV2OwogCWludCBlcnI7CiAKLQllcnIgPSBkcm1fZ2VtX2NyZWF0 ZV9tbWFwX29mZnNldCgmb2JqLT5iYXNlKTsKLQlpZiAobGlrZWx5KCFlcnIpKQorCWRybV92bWFf bm9kZV9yZXNldCgmbW1vLT52bWFfbm9kZSk7CisJaWYgKG1tby0+ZmlsZSkKKwkJZHJtX3ZtYV9u b2RlX2FsbG93KCZtbW8tPnZtYV9ub2RlLCBtbW8tPmZpbGUpOworCWVyciA9IGRybV92bWFfb2Zm c2V0X2FkZChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlciwgJm1tby0+dm1hX25vZGUsCisJCQkJIG9i ai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFKTsKKwlpZiAobGlrZWx5KCFlcnIpKSB7CisJCWluaXRf bW1hcF9vZmZzZXQob2JqLCBtbW8pOwogCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBBdHRlbXB0IHRv IHJlYXAgc29tZSBtbWFwIHNwYWNlIGZyb20gZGVhZCBvYmplY3RzICovCiAJZXJyID0gaW50ZWxf Z3RfcmV0aXJlX3JlcXVlc3RzX3RpbWVvdXQoZ3QsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKQEAg LTQzOCwzNCArNDgyLDU2IEBAIHN0YXRpYyBpbnQgY3JlYXRlX21tYXBfb2Zmc2V0KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXJldHVybiBlcnI7CiAKIAlpOTE1X2dlbV9kcmFp bl9mcmVlZF9vYmplY3RzKGk5MTUpOwotCXJldHVybiBkcm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNl dCgmb2JqLT5iYXNlKTsKKwllcnIgPSBkcm1fdm1hX29mZnNldF9hZGQoZGV2LT52bWFfb2Zmc2V0 X21hbmFnZXIsICZtbW8tPnZtYV9ub2RlLAorCQkJCSBvYmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0la RSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWluaXRfbW1hcF9vZmZzZXQob2JqLCBt bW8pOworCXJldHVybiAwOwogfQogCi1pbnQKLWk5MTVfZ2VtX21tYXBfZ3R0KHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSwKLQkJICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgIHUzMiBoYW5kbGUs Ci0JCSAgdTY0ICpvZmZzZXQpCitzdGF0aWMgaW50CitfX2Fzc2lnbl9nZW1fb2JqZWN0X21tYXBf ZGF0YShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCQkgICAgICB1MzIgaGFuZGxlLAorCQkJICAg ICAgZW51bSBpOTE1X21tYXBfdHlwZSBtbWFwX3R5cGUsCisJCQkgICAgICB1NjQgKm9mZnNldCkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBpOTE1X21tYXBf b2Zmc2V0ICptbW87CiAJaW50IHJldDsKIAotCWlmICghaTkxNV9nZ3R0X2hhc19hcGVydHVyZSgm dG9faTkxNShkZXYpLT5nZ3R0KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KIAlvYmogPSBpOTE1X2dl bV9vYmplY3RfbG9va3VwKGZpbGUsIGhhbmRsZSk7CiAJaWYgKCFvYmopCiAJCXJldHVybiAtRU5P RU5UOwogCi0JaWYgKGk5MTVfZ2VtX29iamVjdF9uZXZlcl9iaW5kX2dndHQob2JqKSkgeworCWlm IChtbWFwX3R5cGUgPT0gSTkxNV9NTUFQX1RZUEVfR1RUICYmCisJICAgIGk5MTVfZ2VtX29iamVj dF9uZXZlcl9iaW5kX2dndHQob2JqKSkgewogCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIG91dDsK IAl9CiAKLQlyZXQgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKLQlpZiAocmV0ID09IDApCi0J CSpvZmZzZXQgPSBkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJm9iai0+YmFzZS52bWFfbm9kZSk7 CisJaWYgKG1tYXBfdHlwZSAhPSBJOTE1X01NQVBfVFlQRV9HVFQgJiYKKwkgICAgIWk5MTVfZ2Vt X29iamVjdF9oYXNfc3RydWN0X3BhZ2Uob2JqKSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3Rv IG91dDsKKwl9CisKKwltbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFtbW8pIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCisJbW1vLT5m aWxlID0gZmlsZTsKKwlyZXQgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqLCBtbW8pOworCWlmIChy ZXQpIHsKKwkJa2ZyZWUobW1vKTsKKwkJZ290byBvdXQ7CisJfQogCisJbW1vLT5tbWFwX3R5cGUg PSBtbWFwX3R5cGU7CisJKm9mZnNldCA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmbW1vLT52 bWFfbm9kZSk7CiBvdXQ6CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCXJldHVybiByZXQ7 CkBAIC00OTIsNyArNTU4LDExOCBAQCBpOTE1X2dlbV9tbWFwX2d0dF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcF9n dHQgKmFyZ3MgPSBkYXRhOwogCi0JcmV0dXJuIGk5MTVfZ2VtX21tYXBfZ3R0KGZpbGUsIGRldiwg YXJncy0+aGFuZGxlLCAmYXJncy0+b2Zmc2V0KTsKKwlyZXR1cm4gX19hc3NpZ25fZ2VtX29iamVj dF9tbWFwX2RhdGEoZmlsZSwgYXJncy0+aGFuZGxlLAorCQkJCQkgICAgIEk5MTVfTU1BUF9UWVBF X0dUVCwKKwkJCQkJICAgICAmYXJncy0+b2Zmc2V0KTsKK30KKwordm9pZCBpOTE1X21tYXBfb2Zm c2V0X2Rlc3Ryb3koc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywgc3RydWN0IG11dGV4ICpt dXRleCkKK3sKKwlpZiAobW1vLT5maWxlKQorCQlkcm1fdm1hX25vZGVfcmV2b2tlKCZtbW8tPnZt YV9ub2RlLCBtbW8tPmZpbGUpOworCWRybV92bWFfb2Zmc2V0X3JlbW92ZShtbW8tPmRldi0+dm1h X29mZnNldF9tYW5hZ2VyLCAmbW1vLT52bWFfbm9kZSk7CisKKwltdXRleF9sb2NrKG11dGV4KTsK KwlsaXN0X2RlbCgmbW1vLT5vZmZzZXQpOworCW11dGV4X3VubG9jayhtdXRleCk7CisKKwlrZnJl ZShtbW8pOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2dlbV92bV9vcGVuKHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8gPSB2bWEtPnZt X3ByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gbW1vLT5v Ymo7CisKKwlHRU1fQlVHX09OKCFvYmopOworCWk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKK30K Kworc3RhdGljIHZvaWQgaTkxNV9nZW1fdm1fY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpCit7CisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IHZtYS0+dm1fcHJpdmF0ZV9k YXRhOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBtbW8tPm9iajsKKworCUdF TV9CVUdfT04oIW9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGk5MTVfZ2VtX2d0dF92bV9vcHMgPSB7 CisJLmZhdWx0ID0gaTkxNV9nZW1fZmF1bHQsCisJLm9wZW4gPSBpOTE1X2dlbV92bV9vcGVuLAor CS5jbG9zZSA9IGk5MTVfZ2VtX3ZtX2Nsb3NlLAorfTsKKworLyogVGhpcyBvdmVyY29tZXMgdGhl IGxpbWl0YXRpb24gaW4gZHJtX2dlbV9tbWFwJ3MgYXNzaWdubWVudCBvZiBhCisgKiBkcm1fZ2Vt X29iamVjdCBhcyB0aGUgdm1hLT52bV9wcml2YXRlX2RhdGEuIFNpbmNlIHdlIG5lZWQgdG8KKyAq IGJlIGFibGUgdG8gcmVzb2x2ZSBtdWx0aXBsZSBtbWFwIG9mZnNldHMgd2hpY2ggY291bGQgYmUg dGllZAorICogdG8gYSBzaW5nbGUgZ2VtIG9iamVjdC4KKyAqLworaW50IGk5MTVfZ2VtX21tYXAo c3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVj dCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlOworCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZp bHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3It PmRldjsKKwlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vID0gTlVMTDsKKwlzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiA9IE5VTEw7CisKKwlpZiAoZHJtX2Rldl9pc191bnBsdWdnZWQoZGV2 KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkcm1fdm1hX29mZnNldF9sb2NrX2xvb2t1cChkZXYt PnZtYV9vZmZzZXRfbWFuYWdlcik7CisJbm9kZSA9IGRybV92bWFfb2Zmc2V0X2V4YWN0X2xvb2t1 cF9sb2NrZWQoZGV2LT52bWFfb2Zmc2V0X21hbmFnZXIsCisJCQkJCQkgIHZtYS0+dm1fcGdvZmYs CisJCQkJCQkgIHZtYV9wYWdlcyh2bWEpKTsKKwlpZiAobGlrZWx5KG5vZGUpKSB7CisJCW1tbyA9 IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCwKKwkJCQkgICB2bWFf bm9kZSk7CisJCS8qCisJCSAqIEluIG91ciBkZXBlbmRlbmN5IGNoYWluLCB0aGUgZHJtX3ZtYV9v ZmZzZXRfbm9kZQorCQkgKiBkZXBlbmRzIG9uIHRoZSB2YWxpZGl0eSBvZiB0aGUgbW1vLCB3aGlj aCBkZXBlbmRzIG9uCisJCSAqIHRoZSBnZW0gb2JqZWN0LiBIb3dldmVyIHRoZSBvbmx5IHJlZmVy ZW5jZSB3ZSBoYXZlCisJCSAqIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG1tbyAoYXMgdGhlIHBhcmVu dCBvZiB0aGUgbm9kZSkuCisJCSAqIFRyeSB0byBjaGVjayBpZiB0aGUgZ2VtIG9iamVjdCB3YXMg YXQgbGVhc3QgY2xlYXJlZC4KKwkJICovCisJCWlmICghbW1vIHx8ICFtbW8tPm9iaikgeworCQkJ ZHJtX3ZtYV9vZmZzZXRfdW5sb2NrX2xvb2t1cChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlcik7CisJ CQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQkvKgorCQkgKiBTa2lwIDAtcmVmY250ZWQgb2JqZWN0 cyBhcyBpdCBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZworCQkgKiBkZXN0cm95ZWQgYW5kIHdp bGwgYmUgaW52YWxpZCB3aGVuIHRoZSB2bWEgbWFuYWdlciBsb2NrCisJCSAqIGlzIHJlbGVhc2Vk LgorCQkgKi8KKwkJb2JqID0gJm1tby0+b2JqLT5iYXNlOworCQlpZiAoIWtyZWZfZ2V0X3VubGVz c196ZXJvKCZvYmotPnJlZmNvdW50KSkKKwkJCW9iaiA9IE5VTEw7CisKKwl9CisJZHJtX3ZtYV9v ZmZzZXRfdW5sb2NrX2xvb2t1cChkZXYtPnZtYV9vZmZzZXRfbWFuYWdlcik7CisKKwlpZiAoIW9i aikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWRybV92bWFfbm9kZV9pc19hbGxvd2VkKG5v ZGUsIHByaXYpKSB7CisJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOworCQlyZXR1 cm4gLUVBQ0NFUzsKKwl9CisKKwlpZiAodG9faW50ZWxfYm8ob2JqKS0+cmVhZG9ubHkpIHsKKwkJ aWYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9XUklURSkgeworCQkJZHJtX2dlbV9vYmplY3RfcHV0X3Vu bG9ja2VkKG9iaik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQl2bWEtPnZtX2ZsYWdzICY9 IH5WTV9NQVlXUklURTsKKwl9CisKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX1BGTk1BUCB8IFZNX0RP TlRFWFBBTkQgfCBWTV9ET05URFVNUDsKKwl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF93cml0 ZWNvbWJpbmUodm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJdm1hLT52bV9wYWdl X3Byb3QgPSBwZ3Byb3RfZGVjcnlwdGVkKHZtYS0+dm1fcGFnZV9wcm90KTsKKwl2bWEtPnZtX3By aXZhdGVfZGF0YSA9IG1tbzsKKworCXZtYS0+dm1fb3BzID0gJmk5MTVfZ2VtX2d0dF92bV9vcHM7 CisKKwlyZXR1cm4gMDsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZU RVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4u aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNWEzYzRkNmNkNjUKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5oCkBAIC0wLDAgKzEs MjggQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJp Z2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSTkxNV9HRU1f TU1BTl9IX18KKyNkZWZpbmUgX19JOTE1X0dFTV9NTUFOX0hfXworCisjaW5jbHVkZSA8bGludXgv bW1fdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgZHJtX2Rldmlj ZTsKK3N0cnVjdCBkcm1fZmlsZTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Oworc3RydWN0 IGZpbGU7CitzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldDsKK3N0cnVjdCBtdXRleDsKKworaW50IGk5 MTVfZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h KTsKK3ZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpOwordm9p ZCBpOTE1X21tYXBfb2Zmc2V0X2Rlc3Ryb3koc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywg c3RydWN0IG11dGV4ICptdXRleCk7CisKK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9t bWFwX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKK3Zv aWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdC5jCmluZGV4IGRiMTAzZDNjODc2MC4uYzRmNGYxMGM4NTJkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC0yOSw2ICsyOSw3IEBACiAj aW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCiAjaW5j bHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgorI2luY2x1ZGUgImk5MTVfZ2VtX21tYW4uaCIKICNp bmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKICNp bmNsdWRlICJpOTE1X3RyYWNlLmgiCkBAIC02MSw2ICs2Miw5IEBAIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X2luaXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCUlOSVRfTElTVF9I RUFEKCZvYmotPmx1dF9saXN0KTsKIAorCW11dGV4X2luaXQoJm9iai0+bW1vX2xvY2spOworCUlO SVRfTElTVF9IRUFEKCZvYmotPm1tYXBfb2Zmc2V0cyk7CisKIAlpbml0X3JjdV9oZWFkKCZvYmot PnJjdSk7CiAKIAlvYmotPm9wcyA9IG9wczsKQEAgLTE1OCw2ICsxNjIsOCBAQCBzdGF0aWMgdm9p ZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAJ bGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG9uLCBmcmVlZCwgZnJlZWQpIHsKKwkJc3Ry dWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbywgKm1uOworCiAJCXRyYWNlX2k5MTVfZ2VtX29iamVj dF9kZXN0cm95KG9iaik7CiAKIAkJaWYgKCFsaXN0X2VtcHR5KCZvYmotPnZtYS5saXN0KSkgewpA QCAtMTgzLDYgKzE4OSwxNCBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfZ2VtX2ZyZWVfb2JqZWN0cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCXNwaW5fdW5sb2NrKCZvYmotPnZtYS5s b2NrKTsKIAkJfQogCisJCWk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21tYXAob2JqKTsKKworCQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobW1vLCBtbiwgJm9iai0+bW1hcF9vZmZzZXRzLCBvZmZz ZXQpIHsKKwkJCW1tby0+b2JqID0gTlVMTDsKKwkJCWk5MTVfbW1hcF9vZmZzZXRfZGVzdHJveSht bW8sICZvYmotPm1tb19sb2NrKTsKKwkJfQorCisJCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm9i ai0+bW1hcF9vZmZzZXRzKSk7CiAJCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJm9iai0+YmluZF9j b3VudCkpOwogCQlHRU1fQlVHX09OKG9iai0+dXNlcmZhdWx0X2NvdW50KTsKIAkJR0VNX0JVR19P TighbGlzdF9lbXB0eSgmb2JqLT5sdXRfbGlzdCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5oCmluZGV4IGU1NzUwZDUwNmNjOS4uOWI2MWYxODYwNmUwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xMzIsMTMgKzEz MiwxMyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF91bmxvY2tfZmVuY2Uoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIHN0YXRpYyBpbmxpbmUgdm9pZAogaTkxNV9nZW1fb2JqZWN0X3Nl dF9yZWFkb25seShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCW9iai0+YmFz ZS52bWFfbm9kZS5yZWFkb25seSA9IHRydWU7CisJb2JqLT5yZWFkb25seSA9IHRydWU7CiB9CiAK IHN0YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0JcmV0dXJuIG9iai0+YmFzZS52bWFf bm9kZS5yZWFkb25seTsKKwlyZXR1cm4gb2JqLT5yZWFkb25seTsKIH0KIAogc3RhdGljIGlubGlu ZSBib29sCkBAIC0zODcsOSArMzg3LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29i amVjdF91bnBpbl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpOTE1X2dl bV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKIH0KIAotdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9y ZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Ci12b2lkIGk5MTVf Z2VtX29iamVjdF9yZWxlYXNlX21tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7 Ci0KIHZvaWQKIGk5MTVfZ2VtX29iamVjdF9mbHVzaF93cml0ZV9kb21haW4oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQkgICB1bnNpZ25lZCBpbnQgZmx1c2hfZG9tYWlucyk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgK aW5kZXggMTVmODI5N2RjMzRlLi42MzJkNmI4MDRjZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTYzLDYgKzYzLDIwIEBAIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyB7CiAJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogfTsKIAorZW51bSBpOTE1X21tYXBfdHlwZSB7CisJ STkxNV9NTUFQX1RZUEVfR1RUID0gMCwKK307CisKK3N0cnVjdCBpOTE1X21tYXBfb2Zmc2V0IHsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlIHZt YV9ub2RlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGRybV9m aWxlICpmaWxlOworCWVudW0gaTkxNV9tbWFwX3R5cGUgbW1hcF90eXBlOworCisJc3RydWN0IGxp c3RfaGVhZCBvZmZzZXQ7Cit9OworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJc3Ry dWN0IGRybV9nZW1fb2JqZWN0IGJhc2U7CiAKQEAgLTExOCw2ICsxMzIsMTEgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgewogCXVuc2lnbmVkIGludCB1c2VyZmF1bHRfY291bnQ7CiAJc3Ry dWN0IGxpc3RfaGVhZCB1c2VyZmF1bHRfbGluazsKIAorCS8qIFByb3RlY3RzIGFjY2VzcyB0byBt bWFwIG9mZnNldHMgKi8KKwlzdHJ1Y3QgbXV0ZXggbW1vX2xvY2s7CisJc3RydWN0IGxpc3RfaGVh ZCBtbWFwX29mZnNldHM7CisJYm9vbCByZWFkb25seToxOworCiAJSTkxNV9TRUxGVEVTVF9ERUNM QVJFKHN0cnVjdCBsaXN0X2hlYWQgc3RfbGluayk7CiAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYwppbmRleCBmNDAyYzJjNDE1 YzIuLjc1MTk3Y2E2OTZhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Bh Z2VzLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCiAjaW5j bHVkZSAiaTkxNV9zY2F0dGVybGlzdC5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2xtZW0uaCIKKyNp bmNsdWRlICJpOTE1X2dlbV9tbWFuLmgiCiAKIHZvaWQgX19pOTE1X2dlbV9vYmplY3Rfc2V0X3Bh Z2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJIHN0cnVjdCBzZ190YWJs ZSAqcGFnZXMsCkBAIC0yMDcsNiArMjA4LDggQEAgaW50IF9faTkxNV9nZW1fb2JqZWN0X3B1dF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQlnb3RvIHVubG9jazsKIAl9 CiAKKwlpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwX29mZnNldChvYmopOworCiAJLyoKIAkg KiAtPnB1dF9wYWdlcyBtaWdodCBuZWVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIGJpdDE3 IHN3aXp6bGUKIAkgKiBhcnJheSwgaGVuY2UgcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcgcmVhcGVk IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBndHQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV90aWxpbmcuYwppbmRleCAxZmE1OTJkODJhZjUuLjZjNzgyNWEyZGMyYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3RpbGluZy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90aWxpbmcuYwpAQCAtMTEsNiArMTEsNyBAQAog I2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKICNpbmNsdWRlICJp OTE1X2dlbV9pb2N0bHMuaCIKKyNpbmNsdWRlICJpOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVkZSAi aTkxNV9nZW1fb2JqZWN0LmgiCiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwppbmRleCA5ZjFhNjkwMjdhMDQuLjYzZTI0ZjZi MGQ0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9tbWFuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9tbWFuLmMKQEAgLTU2NCwxNSArNTY0LDIwIEBAIHN0YXRpYyBib29sIGFzc2VydF9tbWFw X29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSAgICAgICBpbnQgZXhw ZWN0ZWQpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwkvKiBPd25lcnNo aXAgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGdlbSBvYmplY3QgaW4gY3JlYXRlX21tYXBfb2Zmc2V0 ICovCisJc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbyA9IGt6YWxsb2Moc2l6ZW9mKCptbW8p LCBHRlBfS0VSTkVMKTsKIAlpbnQgZXJyOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9pbnRlcm5hbChpOTE1LCBzaXplKTsKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJf RVJSKG9iaik7CiAKLQllcnIgPSBjcmVhdGVfbW1hcF9vZmZzZXQob2JqKTsKKwllcnIgPSBjcmVh dGVfbW1hcF9vZmZzZXQob2JqLCBtbW8pOworCWlmIChlcnIpCisJCWtmcmVlKG1tbyk7CiAJaTkx NV9nZW1fb2JqZWN0X3B1dChvYmopOwogCisKIAlyZXR1cm4gZXJyID09IGV4cGVjdGVkOwogfQog CkBAIC02MDgsNiArNjEzLDggQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlv bih2b2lkICphcmcpCiAJc3RydWN0IGRybV9tbSAqbW0gPSAmaTkxNS0+ZHJtLnZtYV9vZmZzZXRf bWFuYWdlci0+dm1fYWRkcl9zcGFjZV9tbTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZSwgKm5leHQ7CisJLyogT3duZXJzaGlwIHRy YW5zZmVycmVkIHRvIHBhcmVudCBnZW0gb2JqZWN0IGluIGNyZWF0ZV9tbWFwX29mZnNldCAqLwor CXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW8gPSBremFsbG9jKHNpemVvZigqbW1vKSwgR0ZQ X0tFUk5FTCk7CiAJaW50IGxvb3AsIGVycjsKIAogCS8qIERpc2FibGUgYmFja2dyb3VuZCByZWFw ZXIgKi8KQEAgLTY3Miw5ICs2NzksMTAgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXho YXVzdGlvbih2b2lkICphcmcpCiAJCWdvdG8gb3V0OwogCX0KIAotCWVyciA9IGNyZWF0ZV9tbWFw X29mZnNldChvYmopOworCWVyciA9IGNyZWF0ZV9tbWFwX29mZnNldChvYmosIG1tbyk7CiAJaWYg KGVycikgewogCQlwcl9lcnIoIlVuYWJsZSB0byBpbnNlcnQgb2JqZWN0IGludG8gcmVjbGFpbWVk IGhvbGVcbiIpOworCQlrZnJlZShtbW8pOwogCQlnb3RvIGVycl9vYmo7CiAJfQogCkBAIC05MTks NiArOTI3LDE1IEBAIHN0YXRpYyBpbnQgaWd0X21tYXBfZ3R0X3Jldm9rZSh2b2lkICphcmcpCiAJ fQogCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJm9iai0+YmluZF9jb3VudCkpOwogCisJaWYgKHR5 cGUgIT0gSTkxNV9NTUFQX1RZUEVfR1RUKSB7CisJCV9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdl cyhvYmopOworCQlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKSB7CisJCQlwcl9l cnIoIkZhaWxlZCB0byBwdXQtcGFnZXMgb2JqZWN0IVxuIik7CisJCQllcnIgPSAtRUlOVkFMOwor CQkJZ290byBvdXRfdW5tYXA7CisJCX0KKwl9CisKIAllcnIgPSBjaGVja19hYnNlbnQoYWRkciwg b2JqLT5iYXNlLnNpemUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3VubWFwOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKaW5kZXggYjcwMDdjZDc4YzZmLi43NzdlYWE0ODM2NzYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtNjc4LDggKzY3OCwxMyBA QCBzdGF0aWMgdm9pZCByZXZva2VfbW1hcHMoc3RydWN0IGludGVsX2d0ICpndCkKIAkJCWNvbnRp bnVlOwogCiAJCUdFTV9CVUdfT04odm1hLT5mZW5jZSAhPSAmZ3QtPmdndHQtPmZlbmNlX3JlZ3Nb aV0pOwotCQlub2RlID0gJnZtYS0+b2JqLT5iYXNlLnZtYV9ub2RlOworCisJCWlmICghdm1hLT5t bW8pCisJCQljb250aW51ZTsKKworCQlub2RlID0gJnZtYS0+bW1vLT52bWFfbm9kZTsKIAkJdm1h X29mZnNldCA9IHZtYS0+Z2d0dF92aWV3LnBhcnRpYWwub2Zmc2V0IDw8IFBBR0VfU0hJRlQ7CisK IAkJdW5tYXBfbWFwcGluZ19yYW5nZShndC0+aTkxNS0+ZHJtLmFub25faW5vZGUtPmlfbWFwcGlu ZywKIAkJCQkgICAgZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKG5vZGUpICsgdm1hX29mZnNldCwK IAkJCQkgICAgdm1hLT5zaXplLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOGQ3MDQ5Nzky ZDYyLi41ZmUwNzE2NDA4OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjY2MiwxOCAr MjY2MiwxMiBAQCBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3BtX29wcyA9IHsKIAkucnVu dGltZV9yZXN1bWUgPSBpbnRlbF9ydW50aW1lX3Jlc3VtZSwKIH07CiAKLXN0YXRpYyBjb25zdCBz dHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgaTkxNV9nZW1fdm1fb3BzID0gewotCS5mYXVsdCA9 IGk5MTVfZ2VtX2ZhdWx0LAotCS5vcGVuID0gZHJtX2dlbV92bV9vcGVuLAotCS5jbG9zZSA9IGRy bV9nZW1fdm1fY2xvc2UsCi19OwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBpOTE1X2RyaXZlcl9mb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5vcGVuID0g ZHJtX29wZW4sCiAJLnJlbGVhc2UgPSBkcm1fcmVsZWFzZSwKIAkudW5sb2NrZWRfaW9jdGwgPSBk cm1faW9jdGwsCi0JLm1tYXAgPSBkcm1fZ2VtX21tYXAsCisJLm1tYXAgPSBpOTE1X2dlbV9tbWFw LAogCS5wb2xsID0gZHJtX3BvbGwsCiAJLnJlYWQgPSBkcm1fcmVhZCwKIAkuY29tcGF0X2lvY3Rs ID0gaTkxNV9jb21wYXRfaW9jdGwsCkBAIC0yNzYyLDcgKzI3NTYsNiBAQCBzdGF0aWMgc3RydWN0 IGRybV9kcml2ZXIgZHJpdmVyID0gewogCiAJLmdlbV9jbG9zZV9vYmplY3QgPSBpOTE1X2dlbV9j bG9zZV9vYmplY3QsCiAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IGk5MTVfZ2VtX2ZyZWVf b2JqZWN0LAotCS5nZW1fdm1fb3BzID0gJmk5MTVfZ2VtX3ZtX29wcywKIAogCS5wcmltZV9oYW5k bGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFu ZGxlID0gZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCkBAIC0yNzczLDcgKzI3NjYsNiBAQCBz dGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogCS5nZXRfc2Nhbm91dF9wb3NpdGlv biA9IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcywKIAogCS5kdW1iX2NyZWF0ZSA9IGk5MTVfZ2Vt X2R1bWJfY3JlYXRlLAotCS5kdW1iX21hcF9vZmZzZXQgPSBpOTE1X2dlbV9tbWFwX2d0dCwKIAku aW9jdGxzID0gaTkxNV9pb2N0bHMsCiAJLm51bV9pb2N0bHMgPSBBUlJBWV9TSVpFKGk5MTVfaW9j dGxzKSwKIAkuZm9wcyA9ICZpOTE1X2RyaXZlcl9mb3BzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggMTc3OWY2MDBmY2ZiLi5hMzdjNzdiYTVjNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTg2MSw4ICsxODYxLDYgQEAgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKIAkJCSBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJIHN0cnVj dCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Ci1pbnQgaTkxNV9nZW1fbW1hcF9ndHQoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAg IHUzMiBoYW5kbGUsIHU2NCAqb2Zmc2V0KTsKIGludCBpOTE1X2dlbV9tbWFwX2d0dF92ZXJzaW9u KHZvaWQpOwogCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3NldF9nbG9iYWxfc2Vxbm8oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNlcW5vKTsKQEAgLTE4ODYsNyArMTg4NCw2IEBAIHZv aWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Ci12bV9mYXVsdF90IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVs dCAqdm1mKTsKIAogaW50IGk5MTVfZ2VtX29wZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiB2b2lkIGk5MTVfZ2VtX3JlbGVhc2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IDQzYzUzMjc1NmM3Yy4uMWIxYWE3ZmMxNWJhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY2xmbHVz aC5oIgogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ2VtL2k5 MTVfZ2VtX2lvY3Rscy5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVk ZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3VzZXIuaCIK ICNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgpAQCAtODU0LDcgKzg1NSw3IEBAIHZvaWQgaTkxNV9n ZW1fcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgb24sCiAJCQkJICZpOTE1LT5nZ3R0LnVzZXJmYXVs dF9saXN0LCB1c2VyZmF1bHRfbGluaykKLQkJX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFw KG9iaik7CisJCV9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcF9ndHQob2JqKTsKIAogCS8q CiAJICogVGhlIGZlbmNlIHdpbGwgYmUgbG9zdCB3aGVuIHRoZSBkZXZpY2UgcG93ZXJzIGRvd24u IElmIGFueSB3ZXJlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBh cmFtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMKaW5kZXggY2Y4YThj M2VmMDQ3Li41NGZjZTgxZDU3MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2V0cGFyYW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMK QEAgLTIsNiArMiw3IEBACiAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiAgKi8KIAor I2luY2x1ZGUgImdlbS9pOTE1X2dlbV9tbWFuLmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5l X3VzZXIuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpp bmRleCBlNTUxMmYyNmUyMGEuLjUxMDhkY2IyZTViMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5j CkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfdm1hX2lvdW5tYXAoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiAKIHZvaWQgaTkxNV92bWFfcmV2b2tlX21tYXAoc3RydWN0IGk5 MTVfdm1hICp2bWEpCiB7Ci0Jc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUgPSAmdm1h LT5vYmotPmJhc2Uudm1hX25vZGU7CisJc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGU7 CiAJdTY0IHZtYV9vZmZzZXQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5tdXRl eCk7CkBAIC0xMDY1LDYgKzEwNjUsNyBAQCB2b2lkIGk5MTVfdm1hX3Jldm9rZV9tbWFwKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2Vh YmxlKHZtYSkpOwogCUdFTV9CVUdfT04oIXZtYS0+b2JqLT51c2VyZmF1bHRfY291bnQpOwogCisJ bm9kZSA9ICZ2bWEtPm1tby0+dm1hX25vZGU7CiAJdm1hX29mZnNldCA9IHZtYS0+Z2d0dF92aWV3 LnBhcnRpYWwub2Zmc2V0IDw8IFBBR0VfU0hJRlQ7CiAJdW5tYXBfbWFwcGluZ19yYW5nZSh2bWEt PnZtLT5pOTE1LT5kcm0uYW5vbl9pbm9kZS0+aV9tYXBwaW5nLAogCQkJICAgIGRybV92bWFfbm9k ZV9vZmZzZXRfYWRkcihub2RlKSArIHZtYV9vZmZzZXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaApp bmRleCA0NjU5MzI4MTNiYzUuLmYwOWY0ZjUxM2M0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5o CkBAIC02Myw2ICs2Myw5IEBAIHN0cnVjdCBpOTE1X3ZtYSB7CiAJdTY0IGRpc3BsYXlfYWxpZ25t ZW50OwogCXN0cnVjdCBpOTE1X3BhZ2Vfc2l6ZXMgcGFnZV9zaXplczsKIAorCS8qIG1tYXAtb2Zm c2V0IGFzc29jaWF0ZWQgd2l0aCBmZW5jaW5nIGZvciB0aGlzIHZtYSAqLworCXN0cnVjdCBpOTE1 X21tYXBfb2Zmc2V0CSptbW87CisKIAl1MzIgZmVuY2Vfc2l6ZTsKIAl1MzIgZmVuY2VfYWxpZ25t ZW50OwogCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==