From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. Date: Thu, 6 Apr 2017 20:55:20 +0200 Message-ID: <1491504920-4017-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org bW9kZV92YWxpZCgpIGNhbGxlZCBmcm9tIGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rv cl9tb2RlcygpCm1heSBuZWVkIHRvIGxvb2sgYXQgY29ubmVjdG9yLT5zdGF0ZSBiZWNhdXNlIHdo YXQgYSB2YWxpZCBtb2RlIGlzIG1heQpkZXBlbmQgb24gY29ubmVjdG9yIHByb3BlcnRpZXMgYmVp bmcgc2V0LiBGb3IgZXhhbXBsZSBzb21lIEhETUkgbW9kZXMKbWlnaHQgYmUgcmVqZWN0ZWQgd2hl biBhIGNvbm5lY3RvciBwcm9wZXJ0eSBmb3JjZXMgdGhlIGNvbm5lY3RvcgppbnRvIERWSSBtb2Rl LgoKU29tZSBpbXBsZW1lbnRhdGlvbnMgb2YgZGV0ZWN0KCkgYWxyZWFkeSBsb2NrIGFsbCBzdGF0 ZSwKc28gd2UgaGF2ZSB0byBwYXNzIGFuIGFjcXVpcmVfY3R4IHRvIHRoZW0gdG8gcHJldmVudCBh IGRlYWRsb2NrLgoKVGhpcyBtZWFucyBjaGFuZ2luZyB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIG9m IGRldGVjdCgpIHNsaWdodGx5LAphbmQgcGFzc2luZyB0aGUgYWNxdWlyZV9jdHggZm9yIGxvY2tp bmcgbXVsdGlwbGUgY3J0YydzLgpGb3IgdGhlIGNhbGxiYWNrcywgaXQgd2lsbCBhbHdheXMgYmUg bm9uLXplcm8uIFRvIGFsbG93IGNhbGxlcnMKbm90IHRvIHdvcnJ5IGFib3V0IHRoaXMsIGRybV9o ZWxwZXJfcHJvYmVfZGV0ZWN0X2N0eCBpcyBhZGRlZAp3aGljaCBtaWdodCBoYW5kbGUgLUVERUFE TEsgZm9yIHlvdS4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gQWx3YXlzIHNldCBjdHggcGFyYW1ldGVy LgpDaGFuZ2VzIHNpbmNlIHYyOgotIEFsd2F5cyB0YWtlIGNvbm5lY3Rpb25fbXV0ZXggd2hlbiBw cm9iaW5nLgpDaGFuZ2VzIHNpbmNlIHYzOgotIFJlbW92ZSB0aGUgY3R4IGZyb20gaW50ZWxfZHBf bG9uZ19wdWxzZSwgYW5kIGFkZAogIFdBUk5fT04oIWNvbm5lY3Rpb25fbXV0ZXgpIChkYW52ZXQp Ci0gVXBkYXRlIGRvY3MgdG8gY2xhcmlmeSB0aGUgbG9ja2luZyBzaXR1YXRpb24uIChkYW52ZXQp CgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgpDYzogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AZnJlZS1l bGVjdHJvbnMuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBm ZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jICAgICAgIHwg MTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NydC5jICAgICAgICAgfCAgMjUgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgfCAgMjUgKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMgICAgICAgICAgfCAgMjEgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgICAgICB8ICAgOCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hvdHBsdWcuYyAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMg ICAgICAgICAgfCAgMjEgKysrLS0tLQogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAg ICAgICAgICB8ICAgNiArKwogaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmggICAgICAgICAg ICB8ICAgMyArCiBpbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIHwgIDM2 ICsrKysrKysrKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgNjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKaW5kZXggZWZiNWU1ZThjZTYy Li4xYjBjMTRhYjNmZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVs cGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwpAQCAtMTY5LDEy ICsxNjksNzMgQEAgdm9pZCBkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogRVhQT1JUX1NZTUJPTChkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZSk7CiAK IHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCi1kcm1fY29ubmVjdG9yX2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQorZHJtX2hlbHBlcl9w cm9iZV9kZXRlY3RfY3R4KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9y Y2UpCiB7Ci0JcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdCA/Ci0JCWNvbm5lY3Rvci0+ ZnVuY3MtPmRldGVjdChjb25uZWN0b3IsIGZvcmNlKSA6Ci0JCWNvbm5lY3Rvcl9zdGF0dXNfY29u bmVjdGVkOworCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqZnVuY3Mg PSBjb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlOworCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJl X2N0eCBjdHg7CisJaW50IHJldDsKKworCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAw KTsKKworcmV0cnk6CisJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY29ubmVjdG9yLT5kZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsICZjdHgpOworCWlmICghcmV0KSB7CisJCWlmIChm dW5jcy0+ZGV0ZWN0X2N0eCkKKwkJCXJldCA9IGZ1bmNzLT5kZXRlY3RfY3R4KGNvbm5lY3Rvciwg JmN0eCwgZm9yY2UpOworCQllbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QpCisJCQly ZXQgPSBjb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QoY29ubmVjdG9yLCBmb3JjZSk7CisJCWVsc2UK KwkJCXJldCA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOworCX0KKworCWlmIChyZXQgPT0g LUVERUFETEspIHsKKwkJZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJZ290byByZXRyeTsK Kwl9CisKKwlpZiAoV0FSTl9PTihyZXQgPCAwKSkKKwkJcmV0ID0gY29ubmVjdG9yX3N0YXR1c191 bmtub3duOworCisJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKKwlkcm1fbW9kZXNldF9h Y3F1aXJlX2ZpbmkoJmN0eCk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGRybV9oZWxw ZXJfcHJvYmVfZGV0ZWN0IC0gcHJvYmUgY29ubmVjdG9yIHN0YXR1cworICogQGNvbm5lY3Rvcjog Y29ubmVjdG9yIHRvIHByb2JlCisgKiBAY3R4OiBhY3F1aXJlX2N0eCwgb3IgTlVMTCB0byBsZXQg dGhpcyBmdW5jdGlvbiBoYW5kbGUgbG9ja2luZy4KKyAqIEBmb3JjZTogV2hldGhlciBkZXN0cnVj dGl2ZSBwcm9iZSBvcGVyYXRpb25zIHNob3VsZCBiZSBwZXJmb3JtZWQuCisgKgorICogVGhpcyBm dW5jdGlvbiBjYWxscyB0aGUgZGV0ZWN0IGNhbGxiYWNrcyBvZiB0aGUgY29ubmVjdG9yLgorICog VGhpcyBmdW5jdGlvbiByZXR1cm5zICZkcm1fY29ubmVjdG9yX3N0YXR1cywgb3IKKyAqIGlmIEBj dHggaXMgc2V0LCBpdCBtaWdodCBhbHNvIHJldHVybiAtRURFQURMSy4KKyAqLworaW50Citkcm1f aGVscGVyX3Byb2JlX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJ c3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCisJCQlib29sIGZvcmNlKQorewor CWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqZnVuY3MgPSBjb25uZWN0 b3ItPmhlbHBlcl9wcml2YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKKwlpbnQgcmV0OworCisJaWYgKCFjdHgpCisJCXJldHVybiBkcm1faGVscGVyX3Byb2Jl X2RldGVjdF9jdHgoY29ubmVjdG9yLCBmb3JjZSk7CisKKwlyZXQgPSBkcm1fbW9kZXNldF9sb2Nr KCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCWlmIChmdW5jcy0+ZGV0ZWN0X2N0eCkKKwkJcmV0dXJuIGZ1bmNzLT5k ZXRlY3RfY3R4KGNvbm5lY3RvciwgY3R4LCBmb3JjZSk7CisJZWxzZSBpZiAoY29ubmVjdG9yLT5m dW5jcy0+ZGV0ZWN0KQorCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KGNvbm5lY3Rv ciwgZm9yY2UpOworCWVsc2UKKwkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwog fQorRVhQT1JUX1NZTUJPTChkcm1faGVscGVyX3Byb2JlX2RldGVjdCk7CiAKIC8qKgogICogZHJt X2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzIC0gZ2V0IGNvbXBsZXRlIHNldCBv ZiBkaXNwbGF5IG1vZGVzCkBAIC0yMzksMTUgKzMwMCwyNyBAQCBpbnQgZHJtX2hlbHBlcl9wcm9i ZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3JfaGVscGVyX2Z1bmNzICpjb25uZWN0b3JfZnVuY3MgPQogCQljb25uZWN0b3ItPmhlbHBl cl9wcml2YXRlOwotCWludCBjb3VudCA9IDA7CisJaW50IGNvdW50ID0gMCwgcmV0OwogCWludCBt b2RlX2ZsYWdzID0gMDsKIAlib29sIHZlcmJvc2VfcHJ1bmUgPSB0cnVlOwogCWVudW0gZHJtX2Nv bm5lY3Rvcl9zdGF0dXMgb2xkX3N0YXR1czsKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggY3R4OwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLm11 dGV4KSk7CiAKKwlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7CisKIAlEUk1fREVC VUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNlLmlkLAogCQkJY29u bmVjdG9yLT5uYW1lKTsKKworcmV0cnk6CisJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5t b2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCAmY3R4KTsKKwlpZiAocmV0ID09IC1FREVBRExL KSB7CisJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7CisJCWdvdG8gcmV0cnk7CisJfSBlbHNl CisJCVdBUk5fT04ocmV0IDwgMCk7CisKIAkvKiBzZXQgYWxsIG9sZCBtb2RlcyB0byB0aGUgc3Rh bGUgc3RhdGUgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVz LCBoZWFkKQogCQltb2RlLT5zdGF0dXMgPSBNT0RFX1NUQUxFOwpAQCAtMjYzLDcgKzMzNiwxNSBA QCBpbnQgZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWlmIChjb25uZWN0b3ItPmZ1bmNzLT5mb3JjZSkKIAkJ CWNvbm5lY3Rvci0+ZnVuY3MtPmZvcmNlKGNvbm5lY3Rvcik7CiAJfSBlbHNlIHsKLQkJY29ubmVj dG9yLT5zdGF0dXMgPSBkcm1fY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3IsIHRydWUpOworCQly ZXQgPSBkcm1faGVscGVyX3Byb2JlX2RldGVjdChjb25uZWN0b3IsICZjdHgsIHRydWUpOworCisJ CWlmIChyZXQgPT0gLUVERUFETEspIHsKKwkJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7CisJ CQlnb3RvIHJldHJ5OworCQl9IGVsc2UgaWYgKFdBUk4ocmV0IDwgMCwgIkludmFsaWQgcmV0dXJu IHZhbHVlICVpIGZvciBjb25uZWN0b3IgZGV0ZWN0aW9uXG4iLCByZXQpKQorCQkJcmV0ID0gY29u bmVjdG9yX3N0YXR1c191bmtub3duOworCisJCWNvbm5lY3Rvci0+c3RhdHVzID0gcmV0OwogCX0K IAogCS8qCkBAIC0zNTUsNiArNDM2LDkgQEAgaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nv bm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogcHJ1bmU6CiAJ ZHJtX21vZGVfcHJ1bmVfaW52YWxpZChkZXYsICZjb25uZWN0b3ItPm1vZGVzLCB2ZXJib3NlX3By dW5lKTsKIAorCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7CisJZHJtX21vZGVzZXRfYWNx dWlyZV9maW5pKCZjdHgpOworCiAJaWYgKGxpc3RfZW1wdHkoJmNvbm5lY3Rvci0+bW9kZXMpKQog CQlyZXR1cm4gMDsKIApAQCAtNDQwLDcgKzUyNCw3IEBAIHN0YXRpYyB2b2lkIG91dHB1dF9wb2xs X2V4ZWN1dGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJCXJlcG9sbCA9IHRydWU7CiAK LQkJY29ubmVjdG9yLT5zdGF0dXMgPSBkcm1fY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3IsIGZh bHNlKTsKKwkJY29ubmVjdG9yLT5zdGF0dXMgPSBkcm1faGVscGVyX3Byb2JlX2RldGVjdChjb25u ZWN0b3IsIE5VTEwsIGZhbHNlKTsKIAkJaWYgKG9sZF9zdGF0dXMgIT0gY29ubmVjdG9yLT5zdGF0 dXMpIHsKIAkJCWNvbnN0IGNoYXIgKm9sZCwgKm5ldzsKIApAQCAtNTg4LDcgKzY3Miw3IEBAIGJv b2wgZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJ b2xkX3N0YXR1cyA9IGNvbm5lY3Rvci0+c3RhdHVzOwogCi0JCWNvbm5lY3Rvci0+c3RhdHVzID0g ZHJtX2Nvbm5lY3Rvcl9kZXRlY3QoY29ubmVjdG9yLCBmYWxzZSk7CisJCWNvbm5lY3Rvci0+c3Rh dHVzID0gZHJtX2hlbHBlcl9wcm9iZV9kZXRlY3QoY29ubmVjdG9yLCBOVUxMLCBmYWxzZSk7CiAJ CURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIHN0YXR1cyB1cGRhdGVkIGZyb20gJXMg dG8gJXNcbiIsCiAJCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsCiAJCQkgICAgICBjb25uZWN0 b3ItPm5hbWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCmluZGV4IDhjODI2MDcyOTRjNi4uMjc5 N2JmMzdjM2FjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwpAQCAtNjY5LDE1ICs2NjksMTYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIGludGVsX3NwdXJpb3VzX2NydF9k ZXRlY3RbXSA9IHsKIAl7IH0KIH07CiAKLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVz Ci1pbnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wg Zm9yY2UpCitzdGF0aWMgaW50CitpbnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCisJCSBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKKwkJ IGJvb2wgZm9yY2UpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjb25uZWN0b3ItPmRldik7CiAJc3RydWN0IGludGVsX2NydCAqY3J0ID0gaW50ZWxfYXR0 YWNoZWRfY3J0KGNvbm5lY3Rvcik7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPSAmY3J0LT5iYXNlOwotCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOworCWlu dCBzdGF0dXMsIHJldDsKIAlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Ci0Jc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKIAogCURSTV9ERUJVR19LTVMoIltDT05O RUNUT1I6JWQ6JXNdIGZvcmNlPSVkXG4iLAogCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNv bm5lY3Rvci0+bmFtZSwKQEAgLTcyMSwxMCArNzIyLDkgQEAgaW50ZWxfY3J0X2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCQlnb3RvIG91dDsKIAl9 CiAKLQlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7Ci0KIAkvKiBmb3IgcHJlLTk0 NWcgcGxhdGZvcm1zIHVzZSBsb2FkIGRldGVjdCAqLwotCWlmIChpbnRlbF9nZXRfbG9hZF9kZXRl Y3RfcGlwZShjb25uZWN0b3IsIE5VTEwsICZ0bXAsICZjdHgpKSB7CisJcmV0ID0gaW50ZWxfZ2V0 X2xvYWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9yLCBOVUxMLCAmdG1wLCBjdHgpOworCWlmIChyZXQg PiAwKSB7CiAJCWlmIChpbnRlbF9jcnRfZGV0ZWN0X2RkYyhjb25uZWN0b3IpKQogCQkJc3RhdHVz ID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7CiAJCWVsc2UgaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCA0KQpAQCAtNzM0LDEyICs3MzQsMTEgQEAgaW50ZWxfY3J0X2RldGVjdChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCQkJc3RhdHVzID0gY29ubmVj dG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CiAJCWVsc2UKIAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9z dGF0dXNfdW5rbm93bjsKLQkJaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3Rv ciwgJnRtcCwgJmN0eCk7Ci0JfSBlbHNlCisJCWludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlw ZShjb25uZWN0b3IsICZ0bXAsIGN0eCk7CisJfSBlbHNlIGlmIChyZXQgPT0gMCkKIAkJc3RhdHVz ID0gY29ubmVjdG9yX3N0YXR1c191bmtub3duOwotCi0JZHJtX21vZGVzZXRfZHJvcF9sb2Nrcygm Y3R4KTsKLQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CisJZWxzZSBpZiAocmV0IDwg MCkKKwkJc3RhdHVzID0gcmV0OwogCiBvdXQ6CiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2 X3ByaXYsIGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7CkBAIC04MTEsNyArODEwLDYgQEAg dm9pZCBpbnRlbF9jcnRfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgaW50ZWxfY3J0X2Nvbm5lY3Rvcl9m dW5jcyA9IHsKIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAotCS5k ZXRlY3QgPSBpbnRlbF9jcnRfZGV0ZWN0LAogCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9i ZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5sYXRlX3JlZ2lzdGVyID0gaW50ZWxfY29ubmVj dG9yX3JlZ2lzdGVyLAogCS5lYXJseV91bnJlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3VucmVn aXN0ZXIsCkBAIC04MjMsNiArODIxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIGludGVsX2NydF9jb25uZWN0b3JfZnVuY3MgPSB7CiB9OwogCiBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGludGVsX2NydF9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzID0geworCS5kZXRlY3RfY3R4ID0gaW50ZWxfY3J0X2RldGVjdCwKIAkubW9k ZV92YWxpZCA9IGludGVsX2NydF9tb2RlX3ZhbGlkLAogCS5nZXRfbW9kZXMgPSBpbnRlbF9jcnRf Z2V0X21vZGVzLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2MDJm ZDQ3OWRkMzAuLmUyMTdkMDQxMzNlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwpAQCAtOTQ4MCwxMCArOTQ4MCwxMCBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfc2V0dXBf cGxhbmVfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCXJldHVybiAwOwog fQogCi1ib29sIGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCi0JCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQkJc3Ry dWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwKLQkJCQlzdHJ1Y3QgZHJtX21vZGVzZXRf YWNxdWlyZV9jdHggKmN0eCkKK2ludCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQs CisJCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCiB7CiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIgPQpAQCAtOTUwNiwxMCArOTUwNiw3IEBAIGJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0 ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAogCW9sZC0+cmVzdG9y ZV9zdGF0ZSA9IE5VTEw7CiAKLXJldHJ5OgotCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNvbmZp Zy0+Y29ubmVjdGlvbl9tdXRleCwgY3R4KTsKLQlpZiAocmV0KQotCQlnb3RvIGZhaWw7CisJV0FS Tl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZjb25maWctPmNvbm5lY3Rpb25fbXV0ZXgpKTsK IAogCS8qCiAJICogQWxnb3JpdGhtIGdldHMgYSBsaXR0bGUgbWVzc3k6CkBAIC05NjU5LDEwICs5 NjU2LDggQEAgYm9vbCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAogCQlyZXN0b3JlX3N0YXRlID0gTlVMTDsKIAl9CiAKLQlpZiAocmV0 ID09IC1FREVBRExLKSB7Ci0JCWRybV9tb2Rlc2V0X2JhY2tvZmYoY3R4KTsKLQkJZ290byByZXRy eTsKLQl9CisJaWYgKHJldCA9PSAtRURFQURMSykKKwkJcmV0dXJuIHJldDsKIAogCXJldHVybiBm YWxzZTsKIH0KQEAgLTE1MDMwLDYgKzE1MDI1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxl X3BpcGVfYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj cnQgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlIGxvYWRfZGV0ZWN0X3Rl bXA7CiAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHggPSBkZXYtPm1vZGVfY29u ZmlnLmFjcXVpcmVfY3R4OworCWludCByZXQ7CiAKIAkvKiBXZSBjYW4ndCBqdXN0IHN3aXRjaCBv biB0aGUgcGlwZSBBLCB3ZSBuZWVkIHRvIHNldCB0aGluZ3MgdXAgd2l0aCBhCiAJICogcHJvcGVy IG1vZGUgYW5kIG91dHB1dCBjb25maWd1cmF0aW9uLiBBcyBhIGdyb3NzIGhhY2ssIGVuYWJsZSBw aXBlIEEKQEAgLTE1MDQ2LDcgKzE1MDQyLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9w aXBlX2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoIWNydCkKIAkJcmV0dXJuOwogCi0J aWYgKGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNydCwgTlVMTCwgJmxvYWRfZGV0ZWN0X3Rl bXAsIGN0eCkpCisJcmV0ID0gaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY3J0LCBOVUxMLCAm bG9hZF9kZXRlY3RfdGVtcCwgY3R4KTsKKwlXQVJOKHJldCA8IDAsICJBbGwgbW9kZXNldCBtdXRl eGVzIGFyZSBsb2NrZWQsIGJ1dCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZSBmYWlsZWRcbiIp OworCisJaWYgKHJldCA+IDApCiAJCWludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShjcnQs ICZsb2FkX2RldGVjdF90ZW1wLCBjdHgpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRl eCBmZDk2YTZjZjczMjYuLjZlMDRjYjU0ZTNmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBA IC00NTY2LDcgKzQ1NjYsNyBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCiAJaW50ZWxfZHAtPmhhc19hdWRpbyA9IGZhbHNlOwogfQogCi1zdGF0aWMgZW51 bSBkcm1fY29ubmVjdG9yX3N0YXR1cworc3RhdGljIGludAogaW50ZWxfZHBfbG9uZ19wdWxzZShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7CkBAIC00NTc3LDYg KzQ1NzcsOCBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvcikKIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKIAl1OCBz aW5rX2lycV92ZWN0b3IgPSAwOwogCisJV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZj b25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCkpOworCiAJaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQodG9faTkxNShkZXYpLCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFp bik7CiAKIAkvKiBDYW4ndCBkaXNjb25uZWN0IGVEUCwgYnV0IHlvdSBjYW4gY2xvc2UgdGhlIGxp ZC4uLiAqLwpAQCAtNDYzNSwxNCArNDYzNyw3IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogCQlzdGF0dXMgPSBjb25uZWN0b3Jf c3RhdHVzX2Rpc2Nvbm5lY3RlZDsKIAkJZ290byBvdXQ7CiAJfSBlbHNlIGlmIChjb25uZWN0b3It PnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkgewotCQkvKgotCQkgKiBJZiBk aXNwbGF5IHdhcyBjb25uZWN0ZWQgYWxyZWFkeSBhbmQgaXMgc3RpbGwgY29ubmVjdGVkCi0JCSAq IGNoZWNrIGxpbmtzIHN0YXR1cywgdGhlcmUgaGFzIGJlZW4ga25vd24gaXNzdWVzIG9mCi0JCSAq IGxpbmsgbG9zcyB0cmlnZ2VycmluZyBsb25nIHB1bHNlISEhIQotCQkgKi8KLQkJZHJtX21vZGVz ZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKIAkJaW50 ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoaW50ZWxfZHApOwotCQlkcm1fbW9kZXNldF91bmxvY2so JmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7CiAJCWdvdG8gb3V0OwogCX0KIApA QCAtNDY4MiwxMSArNDY3NywxMyBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0aWMg ZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwotaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCitzdGF0aWMgaW50CitpbnRlbF9kcF9kZXRl Y3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJc3RydWN0IGRybV9tb2Rlc2V0 X2FjcXVpcmVfY3R4ICpjdHgsCisJCWJvb2wgZm9yY2UpCiB7CiAJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Ci0JZW51bSBkcm1fY29ubmVj dG9yX3N0YXR1cyBzdGF0dXMgPSBjb25uZWN0b3ItPnN0YXR1czsKKwlpbnQgc3RhdHVzID0gY29u bmVjdG9yLT5zdGF0dXM7CiAKIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwK IAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwpAQCAtNTAxNCw3 ICs1MDExLDYgQEAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGlu dGVsX2RwX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9kcG1zLAotCS5kZXRlY3QgPSBpbnRlbF9kcF9kZXRlY3QsCiAJLmZvcmNlID0gaW50 ZWxfZHBfZm9yY2UsCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25u ZWN0b3JfbW9kZXMsCiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX2RwX3NldF9wcm9wZXJ0eSwKQEAg LTUwMjcsNiArNTAyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5j cyBpbnRlbF9kcF9jb25uZWN0b3JfZnVuY3MgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGludGVsX2RwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MgPSB7CisJLmRldGVjdF9jdHggPSBpbnRlbF9kcF9kZXRlY3QsCiAJLmdldF9tb2RlcyA9IGlu dGVsX2RwX2dldF9tb2RlcywKIAkubW9kZV92YWxpZCA9IGludGVsX2RwX21vZGVfdmFsaWQsCiB9 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA1MTIyOGZlNDI4M2IuLmZiN2FmY2Y5ZThi ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTEzNTMsMTAgKzEzNTMsMTAgQEAgaW50 IGlyb25sYWtlX2dldF9sYW5lc19yZXF1aXJlZChpbnQgdGFyZ2V0X2Nsb2NrLCBpbnQgbGlua19i dywgaW50IGJwcCk7CiB2b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQkJIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0LAog CQkJIHVuc2lnbmVkIGludCBleHBlY3RlZF9tYXNrKTsKLWJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0 ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJCQlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCQlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSAq b2xkLAotCQkJCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKK2ludCBpbnRl bF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAor CQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJICAgICAgIHN0cnVj dCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCisJCQkgICAgICAgc3RydWN0IGRybV9tb2Rl c2V0X2FjcXVpcmVfY3R4ICpjdHgpOwogdm9pZCBpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3Bp cGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkgICAgc3RydWN0IGludGVs X2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwKIAkJCQkgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVp cmVfY3R4ICpjdHgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90 cGx1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCmluZGV4IDdkMjEw MDk3ZWVmYS4uZjEyMDAyNzJhNjk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ob3RwbHVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5j CkBAIC0yNDMsNyArMjQzLDggQEAgc3RhdGljIGJvb2wgaW50ZWxfaHBkX2lycV9ldmVudChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5tb2Rl X2NvbmZpZy5tdXRleCkpOwogCW9sZF9zdGF0dXMgPSBjb25uZWN0b3ItPnN0YXR1czsKIAotCWNv bm5lY3Rvci0+c3RhdHVzID0gY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KGNvbm5lY3RvciwgZmFs c2UpOworCWNvbm5lY3Rvci0+c3RhdHVzID0gZHJtX2hlbHBlcl9wcm9iZV9kZXRlY3QoY29ubmVj dG9yLCBOVUxMLCBmYWxzZSk7CisKIAlpZiAob2xkX3N0YXR1cyA9PSBjb25uZWN0b3ItPnN0YXR1 cykKIAkJcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRleCA2ZWQxYTNj ZTQ3YjcuLmUwNzdjMmE5ZTY5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdHYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCkBAIC0xMzE1LDgg KzEzMTUsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAgKiBDdXJyZW50bHkgdGhpcyBhbHdheXMgcmV0 dXJucyBDT05ORUNUT1JfU1RBVFVTX1VOS05PV04sIGFzIHdlIG5lZWQgdG8gYmUgc3VyZQogICog d2UgaGF2ZSBhIHBpcGUgcHJvZ3JhbW1lZCBpbiBvcmRlciB0byBwcm9iZSB0aGUgVFYuCiAgKi8K LXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCi1pbnRlbF90dl9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK3N0YXRpYyBpbnQKK2ludGVs X3R2X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQlzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKKwkJYm9vbCBmb3JjZSkKIHsKIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSBtb2RlOwogCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9h dHRhY2hlZF90dihjb25uZWN0b3IpOwpAQCAtMTMzMSwyMSArMTMzMywyMCBAQCBpbnRlbF90dl9k ZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKIAogCWlm IChmb3JjZSkgewogCQlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Ci0JCXN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CisJCWludCByZXQ7CiAKLQkJZHJtX21vZGVz ZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOworCQlyZXQgPSBpbnRlbF9nZXRfbG9hZF9kZXRlY3Rf cGlwZShjb25uZWN0b3IsICZtb2RlLCAmdG1wLCBjdHgpOworCQlpZiAocmV0IDwgMCkKKwkJCXJl dHVybiByZXQ7CiAKLQkJaWYgKGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3Rvciwg Jm1vZGUsICZ0bXAsICZjdHgpKSB7CisJCWlmIChyZXQgPiAwKSB7CiAJCQl0eXBlID0gaW50ZWxf dHZfZGV0ZWN0X3R5cGUoaW50ZWxfdHYsIGNvbm5lY3Rvcik7Ci0JCQlpbnRlbF9yZWxlYXNlX2xv YWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9yLCAmdG1wLCAmY3R4KTsKKwkJCWludGVsX3JlbGVhc2Vf bG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsICZ0bXAsIGN0eCk7CiAJCQlzdGF0dXMgPSB0eXBl IDwgMCA/CiAJCQkJY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQgOgogCQkJCWNvbm5lY3Rv cl9zdGF0dXNfY29ubmVjdGVkOwogCQl9IGVsc2UKIAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0 dXNfdW5rbm93bjsKLQotCQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwotCQlkcm1fbW9k ZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CiAJfSBlbHNlCiAJCXJldHVybiBjb25uZWN0b3ItPnN0 YXR1czsKIApAQCAtMTUxNiw3ICsxNTE3LDYgQEAgaW50ZWxfdHZfc2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3AKIAog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX3R2X2Nvbm5lY3Rv cl9mdW5jcyA9IHsKIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAot CS5kZXRlY3QgPSBpbnRlbF90dl9kZXRlY3QsCiAJLmxhdGVfcmVnaXN0ZXIgPSBpbnRlbF9jb25u ZWN0b3JfcmVnaXN0ZXIsCiAJLmVhcmx5X3VucmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5y ZWdpc3RlciwKIAkuZGVzdHJveSA9IGludGVsX3R2X2Rlc3Ryb3ksCkBAIC0xNTI4LDYgKzE1Mjgs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgaW50ZWxfdHZfY29u bmVjdG9yX2Z1bmNzID0gewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0geworCS5kZXRl Y3RfY3R4ID0gaW50ZWxfdHZfZGV0ZWN0LAogCS5tb2RlX3ZhbGlkID0gaW50ZWxfdHZfbW9kZV92 YWxpZCwKIAkuZ2V0X21vZGVzID0gaW50ZWxfdHZfZ2V0X21vZGVzLAogfTsKZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAppbmRleCA5NDFmNTdmMzExYWEuLmUyZWU3NGMyMGI4ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAt MzIsNiArMzIsNyBAQAogc3RydWN0IGRybV9kZXZpY2U7CiAKIHN0cnVjdCBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jczsKK3N0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eDsKIHN0cnVjdCBk cm1fZGV2aWNlOwogc3RydWN0IGRybV9jcnRjOwogc3RydWN0IGRybV9lbmNvZGVyOwpAQCAtMzc4 LDYgKzM3OSwxMSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB7CiAJICogdGhlIGhlbHBl ciBsaWJyYXJ5IHZ0YWJsZSBwdXJlbHkgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gVGhlIG9ubHkg RFJNCiAJICogY29yZQllbnRyeSBwb2ludCB0byBwcm9iZSBjb25uZWN0b3Igc3RhdGUgaXMgQGZp bGxfbW9kZXMuCiAJICoKKwkgKiBOb3RlIHRoYXQgdGhlIGhlbHBlciBsaWJyYXJ5IHdpbGwgYWxy ZWFkeSBob2xkCisJICogJmRybV9tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LiBEcml2ZXJz IHdoaWNoIG5lZWQgdG8gZ3JhYiBhZGRpdGlvbmFsCisJICogbG9ja3MgdG8gYXZvaWQgcmFjZXMg d2l0aCBjb25jdXJyZW50IG1vZGVzZXQgY2hhbmdlcyBuZWVkIHRvIHVzZQorCSAqICZkcm1fY29u bmVjdG9yX2hlbHBlcl9mdW5jcy5kZXRlY3RfY3R4IGluc3RlYWQuCisJICoKIAkgKiBSRVRVUk5T OgogCSAqCiAJICogZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgaW5kaWNhdGluZyB0aGUgY29ubmVjdG9y J3Mgc3RhdHVzLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmggYi9p bmNsdWRlL2RybS9kcm1fY3J0Y19oZWxwZXIuaAppbmRleCA0MzUwNWM3YjJiM2YuLjc2ZTIzN2Jk OTg5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmgKQEAgLTY3LDYgKzY3LDkgQEAgaW50IGRybV9oZWxw ZXJfY3J0Y19tb2RlX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHgsIGludCB5 LAogaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvcgogCQkJCQkgICAgKmNvbm5lY3RvciwgdWludDMyX3QgbWF4WCwKIAkJCQkJICAg IHVpbnQzMl90IG1heFkpOworaW50IGRybV9oZWxwZXJfcHJvYmVfZGV0ZWN0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgsCisJCQkgICAgYm9vbCBmb3JjZSk7CiB2b2lkIGRybV9rbXNfaGVscGVyX3BvbGxf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgZHJtX2ttc19oZWxwZXJfcG9sbF9m aW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogYm9vbCBkcm1faGVscGVyX2hwZF9pcnFfZXZl bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f bW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVy X3Z0YWJsZXMuaAppbmRleCAwOTFjNDIyMDU2NjcuLjc4NDdiYWJkODkzYyAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAorKysgYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCkBAIC03NDcsNiArNzQ3LDEwIEBAIHN0cnVj dCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB7CiAJICogVGhpcyBjYWxsYmFjayBpcyB1c2Vk IGJ5IHRoZSBwcm9iZSBoZWxwZXJzIGluIGUuZy4KIAkgKiBkcm1faGVscGVyX3Byb2JlX3Npbmds ZV9jb25uZWN0b3JfbW9kZXMoKS4KIAkgKgorCSAqIFRvIGF2b2lkIHJhY2VzIHdpdGggY29uY3Vy cmVudCBjb25uZWN0b3Igc3RhdGUgdXBkYXRlcywgdGhlIGhlbHBlcgorCSAqIGxpYnJhcmllcyBh bHdheXMgY2FsbCB0aGlzIHdpdGggdGhlICZkcm1fbW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eAorCSAqIGhlbGQuIEJlY2F1c2Ugb2YgdGhpcyBpdCdzIHNhZmUgdG8gaW5zcGVjdCAmZHJtX2Nv bm5lY3Rvci0+c3RhdGUuCisJICoKIAkgKiBSRVRVUk5TOgogCSAqCiAJICogVGhlIG51bWJlciBv ZiBtb2RlcyBhZGRlZCBieSBjYWxsaW5nIGRybV9tb2RlX3Byb2JlZF9hZGQoKS4KQEAgLTc1NCw2 ICs3NTgsMzQgQEAgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHsKIAlpbnQgKCpn ZXRfbW9kZXMpKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwogCiAJLyoqCisJICog QGRldGVjdF9jdHg6CisJICoKKwkgKiBDaGVjayB0byBzZWUgaWYgYW55dGhpbmcgaXMgYXR0YWNo ZWQgdG8gdGhlIGNvbm5lY3Rvci4gVGhlIHBhcmFtZXRlcgorCSAqIGZvcmNlIGlzIHNldCB0byBm YWxzZSB3aGlsc3QgcG9sbGluZywgdHJ1ZSB3aGVuIGNoZWNraW5nIHRoZQorCSAqIGNvbm5lY3Rv ciBkdWUgdG8gYSB1c2VyIHJlcXVlc3QuIGZvcmNlIGNhbiBiZSB1c2VkIGJ5IHRoZSBkcml2ZXIg dG8KKwkgKiBhdm9pZCBleHBlbnNpdmUsIGRlc3RydWN0aXZlIG9wZXJhdGlvbnMgZHVyaW5nIGF1 dG9tYXRlZCBwcm9iaW5nLgorCSAqCisJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCwgaWYg bm90IGltcGxlbWVudGVkIHRoZSBjb25uZWN0b3Igd2lsbCBiZQorCSAqIGNvbnNpZGVyZWQgYXMg YWx3YXlzIGJlaW5nIGF0dGFjaGVkLgorCSAqCisJICogVGhpcyBpcyB0aGUgYXRvbWljIHZlcnNp b24gb2YgJmRybV9jb25uZWN0b3JfZnVuY3MuZGV0ZWN0LgorCSAqCisJICogVG8gYXZvaWQgcmFj ZXMgYWdhaW5zdCBjb25jdXJyZW50IGNvbm5lY3RvciBzdGF0ZSB1cGRhdGVzLCB0aGUKKwkgKiBo ZWxwZXIgbGlicmFyaWVzIGFsd2F5cyBjYWxsIHRoaXMgd2l0aCBjdHggc2V0IHRvIGEgdmFsaWQg Y29udGV4dCwKKwkgKiBhbmQgJmRybV9tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4IHdpbGwg YWx3YXlzIGJlIGxvY2tlZCB3aXRoCisJICogdGhlIGN0eCBwYXJhbWV0ZXIgc2V0IHRvIHRoaXMg Y3R4LiBUaGlzIGFsbG93cyB0YWtpbmcgYWRkaXRpb25hbAorCSAqIGxvY2tzIGFzIHJlcXVpcmVk LgorCSAqCisJICogUkVUVVJOUzoKKwkgKgorCSAqICZkcm1fY29ubmVjdG9yX3N0YXR1cyBpbmRp Y2F0aW5nIHRoZSBjb25uZWN0b3IncyBzdGF0dXMsCisJICogb3IgdGhlIGVycm9yIGNvZGUgcmV0 dXJuZWQgYnkgZHJtX21vZGVzZXRfbG9jaygpLCAtRURFQURMSy4KKwkgKi8KKwlpbnQgKCpkZXRl Y3RfY3R4KShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJICBzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKKwkJCSAgYm9vbCBmb3JjZSk7CisKKwkvKioKIAkg KiBAbW9kZV92YWxpZDoKIAkgKgogCSAqIENhbGxiYWNrIHRvIHZhbGlkYXRlIGEgbW9kZSBmb3Ig YSBjb25uZWN0b3IsIGlycmVzcGVjdGl2ZSBvZiB0aGUKQEAgLTc3MSw2ICs4MDMsMTAgQEAgc3Ry dWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHsKIAkgKiBDUlRDIGhlbHBlcnMgd2lsbCBu b3QgY2FsbCB0aGlzIGZ1bmN0aW9uLiBEcml2ZXJzIHRoZXJlZm9yZSBtdXN0CiAJICogc3RpbGwg ZnVsbHkgdmFsaWRhdGUgYW55IG1vZGUgcGFzc2VkIGluIGluIGEgbW9kZXNldCByZXF1ZXN0Lgog CSAqCisJICogVG8gYXZvaWQgcmFjZXMgd2l0aCBjb25jdXJyZW50IGNvbm5lY3RvciBzdGF0ZSB1 cGRhdGVzLCB0aGUgaGVscGVyCisJICogbGlicmFyaWVzIGFsd2F5cyBjYWxsIHRoaXMgd2l0aCB0 aGUgJmRybV9tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4CisJICogaGVsZC4gQmVjYXVzZSBv ZiB0aGlzIGl0J3Mgc2FmZSB0byBpbnNwZWN0ICZkcm1fY29ubmVjdG9yLT5zdGF0ZS4KKyAgICAg ICAgICoKIAkgKiBSRVRVUk5TOgogCSAqCiAJICogRWl0aGVyICZkcm1fbW9kZV9zdGF0dXMuTU9E RV9PSyBvciBvbmUgb2YgdGhlIGZhaWx1cmUgcmVhc29ucyBpbiAmZW51bQotLSAKMi43LjQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=