From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH] drm/atomic_helper: Stop modesets on unregistered connectors harder Date: Mon, 15 Oct 2018 22:33:06 -0400 Message-ID: <20181016023306.27417-1-lyude@redhat.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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Maxime Ripard , Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org VW5mb3J0dW5hdGVseSwgaXQgYXBwZWFycyBvdXIgZml4IGluOgpjb21taXQgYjVkMjk4NDNkOGVm ICgiZHJtL2F0b21pY19oZWxwZXI6IEFsbG93IERQTVMgT248LT5PZmYgY2hhbmdlcwpmb3IgdW5y ZWdpc3RlcmVkIGNvbm5lY3RvcnMiKQoKV2hpY2ggYXR0ZW1wdGVkIHRvIHdvcmsgYXJvdW5kIHRo ZSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5Ogpjb21taXQgNGQ4MDI3Mzk3NmJmICgiZHJtL2F0b21p Y19oZWxwZXI6IERpc2FsbG93IG5ldyBtb2Rlc2V0cyBvbgp1bnJlZ2lzdGVyZWQgY29ubmVjdG9y cyIpCgpJcyBzdGlsbCBub3QgdGhlIHJpZ2h0IHNvbHV0aW9uLCBhcyBtb2Rlc2V0cyBjYW4gc3Rp bGwgYmUgdHJpZ2dlcmVkCm91dHNpZGUgb2YgZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVj dG9yKCkuCgpTbyBpbiBvcmRlciB0byBmaXggdGhpcywgd2hpbGUgc3RpbGwgYmVpbmcgY2FyZWZ1 bCB0aGF0IHdlIGRvbid0IGJyZWFrCm1vZGVzZXRzIHRoYXQgYSBkcml2ZXIgbWF5IHBlcmZvcm0g YmVmb3JlIGJlaW5nIHJlZ2lzdGVyZWQgd2l0aAp1c2Vyc3BhY2UsIHdlIHJlcGxhY2UgY29ubmVj dG9yLT5yZWdpc3RlcmVkIHdpdGggYSB0cmlzdGF0ZSBtZW1iZXIsCmNvbm5lY3Rvci0+cmVnaXN0 cmF0aW9uX3N0YXRlLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKb3Ig bm90IGEgY29ubmVjdG9yIGlzIHN0aWxsIGluaXRpYWxpemluZyBhbmQgaGFzbid0IGJlZW4gZXhw b3NlZCB0bwp1c2Vyc3BhY2UsIGlzIGN1cnJlbnRseSByZWdpc3RlcmVkIGFuZCBleHBvc2VkIHRv IHVzZXJzcGFjZSwgb3IgaGFzIGJlZW4KbGVnaXRpbWF0ZWx5IHJlbW92ZWQgZnJvbSB0aGUgc3lz dGVtIGFmdGVyIGhhdmluZyBvbmNlIGJlZW4gcHJlc2VudC4KClVzaW5nIHRoaXMgaW5mbywgd2Ug Y2FuIHByZXZlbnQgdXNlcnNwYWNlIGZyb20gcGVyZm9ybWluZyBuZXcgbW9kZXNldHMKb24gdW5y ZWdpc3RlcmVkIGNvbm5lY3RvcnMgd2hpbGUgc3RpbGwgYWxsb3dpbmcgdGhlIGRyaXZlciB0byBw ZXJmb3JtCm1vZGVzZXRzIG9uIHVucmVnaXN0ZXJlZCBjb25uZWN0b3JzIGJlZm9yZSB0aGUgZHJp dmVyIGhhcyBmaW5pc2hlZCBiZWluZwpyZWdpc3RlcmVkLgoKRml4ZXM6IGI1ZDI5ODQzZDhlZiAo ImRybS9hdG9taWNfaGVscGVyOiBBbGxvdyBEUE1TIE9uPC0+T2ZmIGNoYW5nZXMgZm9yIHVucmVn aXN0ZXJlZCBjb25uZWN0b3JzIikKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpDYzogc3RhYmxlQHZn ZXIua2VybmVsLm9yZwpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpTaWduZWQt b2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysrLS0tLQogZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgfCAyMSAtLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICAgIHwgMTAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX21zdC5jIHwgIDggKystLQogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o ICAgICAgICAgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogNSBmaWxlcyBjaGFu Z2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYwppbmRleCA2ZjY2Nzc3ZGNhNGIuLjZjYWRlYWYyOGFlNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTUyOSw2ICs1MjksMzUgQEAgbW9kZV92YWxpZChz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBp bnQKK3VucmVnaXN0ZXJlZF9jb25uZWN0b3JfY2hlY2soc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUsCisJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCisJaWYg KCFkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXJlZChjb25uZWN0b3IpKQorCQlyZXR1cm4gMDsKKwor CWNydGMgPSBuZXdfY29ubl9zdGF0ZS0+Y3J0YzsKKwlpZiAoIWNydGMpCisJCXJldHVybiAwOwor CisJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRj KTsKKwlpZiAoIWNydGNfc3RhdGUgfHwgIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNy dGNfc3RhdGUpKQorCQlyZXR1cm4gMDsKKworCWlmIChjcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQp IHsKKwkJRFJNX0RFQlVHX0FUT01JQygiW0NPTk5FQ1RPUjolZDolc10gY2FuJ3QgY2hhbmdlIG1v ZGUgb24gdW5yZWdpc3RlcmVkIGNvbm5lY3RvclxuIiwKKwkJCQkgY29ubmVjdG9yLT5iYXNlLmlk LCBjb25uZWN0b3ItPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsK K30KKwogLyoqCiAgKiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0IC0gdmFsaWRhdGUg c3RhdGUgb2JqZWN0IGZvciBtb2Rlc2V0IGNoYW5nZXMKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAg LTY4NCwxOCArNzEzLDMzIEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JLyoKLQkgKiBJdGVyYXRl IG92ZXIgYWxsIGNvbm5lY3RvcnMgYWdhaW4sIHRvIG1ha2Ugc3VyZSBhdG9taWNfY2hlY2soKQot CSAqIGhhcyBiZWVuIGNhbGxlZCBvbiB0aGVtIHdoZW4gYSBtb2Rlc2V0IGlzIGZvcmNlZC4KLQkg Ki8KIAlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3Is IG9sZF9jb25uZWN0b3Jfc3RhdGUsIG5ld19jb25uZWN0b3Jfc3RhdGUsIGkpIHsKIAkJY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpmdW5jcyA9IGNvbm5lY3Rvci0+aGVs cGVyX3ByaXZhdGU7CiAKLQkJaWYgKGNvbm5lY3RvcnNfbWFzayAmIEJJVChpKSkKLQkJCWNvbnRp bnVlOworCQkvKiBNYWtlIHN1cmUgYXRvbWljX2NoZWNrKCkgaXMgY2FsbGVkIG9uIGFueSB1bmNo ZWNrZWQKKwkJICogY29ubmVjdG9ycyB3aGVuIGEgbW9kZXNldCBoYXMgYmVlbiBmb3JjZWQKKwkJ ICovCisJCWlmIChjb25uZWN0b3JzX21hc2sgJiBCSVQoaSkgJiYgZnVuY3MtPmF0b21pY19jaGVj aykgeworCQkJcmV0ID0gZnVuY3MtPmF0b21pY19jaGVjayhjb25uZWN0b3IsCisJCQkJCQkgIG5l d19jb25uZWN0b3Jfc3RhdGUpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CiAK LQkJaWYgKGZ1bmNzLT5hdG9taWNfY2hlY2spCi0JCQlyZXQgPSBmdW5jcy0+YXRvbWljX2NoZWNr KGNvbm5lY3RvciwgbmV3X2Nvbm5lY3Rvcl9zdGF0ZSk7CisJCS8qCisJCSAqIFByZXZlbnQgdXNl cnNwYWNlIGZyb20gdHVybmluZyBvbiBuZXcgZGlzcGxheXMgb3Igc2V0dGluZworCQkgKiBuZXcg bW9kZXMgdXNpbmcgY29ubmVjdG9ycyB3aGljaCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tCisJCSAq IHVzZXJzcGFjZS4gVGhpcyBpcyByYWN5IHNpbmNlIGFuIHVucGx1ZyBjb3VsZCBoYXBwZW4gYXQg YW55CisJCSAqIHRpbWUgaW5jbHVkaW5nIGFmdGVyIHRoaXMgY2hlY2ssIGJ1dCB0aGF0J3MgT0s6 IHdlIG9ubHkKKwkJICogY2FyZSBhYm91dCBwcmV2ZW50aW5nIHVzZXJzcGFjZSBmcm9tIHRyeWlu ZyB0byBzZXQgaW52YWxpZAorCQkgKiBzdGF0ZSB1c2luZyBkZXN0cm95ZWQgY29ubmVjdG9ycyB0 aGF0IGl0J3MgYmVlbiBub3RpZmllZAorCQkgKiBhYm91dC4gTm8gb25lIGNhbiBzYXZlIHVzIGFm dGVyIHRoZSBhdG9taWMgY2hlY2sgY29tcGxldGVzCisJCSAqIGJ1dCBvdXJzZWx2ZXMuCisJCSAq LworCQlyZXQgPSB1bnJlZ2lzdGVyZWRfY29ubmVjdG9yX2NoZWNrKHN0YXRlLAorCQkJCQkJICAg Y29ubmVjdG9yLAorCQkJCQkJICAgb2xkX2Nvbm5lY3Rvcl9zdGF0ZSwKKwkJCQkJCSAgIG5ld19j b25uZWN0b3Jfc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY191YXBpLmMKaW5kZXggYTIyZDZmMjY5YjA3Li5kNWI3ZjMxNTA5OGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY191YXBpLmMKQEAgLTI5OSwyNyArMjk5LDYgQEAgZHJtX2F0b21pY19z ZXRfY3J0Y19mb3JfY29ubmVjdG9yKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlLAogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25u ZWN0b3I7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCi0JLyoKLQkgKiBG b3IgY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSB1c2Vycywgd2Ugd2FudCB0byBtYWtlIHN1cmUg dGhhdAotCSAqIHdlIGFsbG93IERQTVMgT248LT5PZmYgbW9kZXNldHMgb24gdW5yZWdpc3RlcmVk IGNvbm5lY3RvcnMsIHNpbmNlCi0JICogbGVnYWN5IG1vZGVzZXR0aW5nIHVzZXJzIHdpbGwgbm90 IGJlIGV4cGVjdGluZyB0aGVzZSB0byBmYWlsLiBXZSBkbwotCSAqIG5vdCBob3dldmVyLCB3YW50 IHRvIGFsbG93IGxlZ2FjeSB1c2VycyB0byBhc3NpZ24gYSBjb25uZWN0b3IKLQkgKiB0aGF0J3Mg YmVlbiB1bnJlZ2lzdGVyZWQgZnJvbSBzeXNmcyB0byBhbm90aGVyIENSVEMsIHNpbmNlIGRvaW5n Ci0JICogdGhpcyB3aXRoIGEgbm93IG5vbi1leGlzdGVudCBjb25uZWN0b3IgY291bGQgcG90ZW50 aWFsbHkgbGVhdmUgdXMKLQkgKiBpbiBhbiBpbnZhbGlkIHN0YXRlLgotCSAqCi0JICogU2luY2Ug dGhlIGNvbm5lY3RvciBjYW4gYmUgdW5yZWdpc3RlcmVkIGF0IGFueSBwb2ludCBkdXJpbmcgYW4K LQkgKiBhdG9taWMgY2hlY2sgb3IgY29tbWl0LCB0aGlzIGlzIHJhY3kuIEJ1dCB0aGF0J3MgT0s6 IGFsbCB3ZSBjYXJlCi0JICogYWJvdXQgaXMgZW5zdXJpbmcgdGhhdCB1c2Vyc3BhY2UgY2FuJ3Qg dXNlIHRoaXMgY29ubmVjdG9yIGZvciBuZXcKLQkgKiBjb25maWd1cmF0aW9ucyBhZnRlciBpdCdz IGJlZW4gbm90aWZpZWQgdGhhdCB0aGUgY29ubmVjdG9yIGlzIG5vCi0JICogbG9uZ2VyIHByZXNl bnQuCi0JICovCi0JaWYgKCFSRUFEX09OQ0UoY29ubmVjdG9yLT5yZWdpc3RlcmVkKSAmJiBjcnRj KSB7Ci0JCURSTV9ERUJVR19BVE9NSUMoIltDT05ORUNUT1I6JWQ6JXNdIGlzIG5vdCByZWdpc3Rl cmVkXG4iLAotCQkJCSBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Ci0JCXJl dHVybiAtRUlOVkFMOwotCX0KLQogCWlmIChjb25uX3N0YXRlLT5jcnRjID09IGNydGMpCiAJCXJl dHVybiAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwppbmRleCA1ZDAxNDE0ZWM5ZjcuLjc5OTQz MTAyZmUxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCkBAIC0zOTYsNyArMzk2LDcgQEAgdm9p ZCBkcm1fY29ubmVjdG9yX2NsZWFudXAoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK IAkvKiBUaGUgY29ubmVjdG9yIHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHVzZXJzcGFj ZSBsb25nIGJlZm9yZQogCSAqIGl0IGlzIGZpbmFsbHkgZGVzdHJveWVkLgogCSAqLwotCWlmIChX QVJOX09OKGNvbm5lY3Rvci0+cmVnaXN0ZXJlZCkpCisJaWYgKFdBUk5fT04oIWRybV9jb25uZWN0 b3JfdW5yZWdpc3RlcmVkKGNvbm5lY3RvcikpKQogCQlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIo Y29ubmVjdG9yKTsKIAogCWlmIChjb25uZWN0b3ItPnRpbGVfZ3JvdXApIHsKQEAgLTQ1Myw3ICs0 NTMsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogCQlyZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJmNvbm5lY3Rvci0+bXV0ZXgp OwotCWlmIChjb25uZWN0b3ItPnJlZ2lzdGVyZWQpCisJaWYgKGNvbm5lY3Rvci0+cmVnaXN0cmF0 aW9uX3N0YXRlICE9IERSTV9DT05ORUNUT1JfSU5JVElBTElaSU5HKQogCQlnb3RvIHVubG9jazsK IAogCXJldCA9IGRybV9zeXNmc19jb25uZWN0b3JfYWRkKGNvbm5lY3Rvcik7CkBAIC00NzMsNyAr NDczLDcgQEAgaW50IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAogCWRybV9tb2RlX29iamVjdF9yZWdpc3Rlcihjb25uZWN0b3ItPmRldiwg JmNvbm5lY3Rvci0+YmFzZSk7CiAKLQljb25uZWN0b3ItPnJlZ2lzdGVyZWQgPSB0cnVlOworCWNv bm5lY3Rvci0+cmVnaXN0cmF0aW9uX3N0YXRlID0gRFJNX0NPTk5FQ1RPUl9SRUdJU1RFUkVEOwog CWdvdG8gdW5sb2NrOwogCiBlcnJfZGVidWdmczoKQEAgLTQ5NSw3ICs0OTUsNyBAQCBFWFBPUlRf U1lNQk9MKGRybV9jb25uZWN0b3JfcmVnaXN0ZXIpOwogdm9pZCBkcm1fY29ubmVjdG9yX3VucmVn aXN0ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAltdXRleF9sb2NrKCZj b25uZWN0b3ItPm11dGV4KTsKLQlpZiAoIWNvbm5lY3Rvci0+cmVnaXN0ZXJlZCkgeworCWlmIChj b25uZWN0b3ItPnJlZ2lzdHJhdGlvbl9zdGF0ZSAhPSBEUk1fQ09OTkVDVE9SX1JFR0lTVEVSRUQp IHsKIAkJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPm11dGV4KTsKIAkJcmV0dXJuOwogCX0KQEAg LTUwNiw3ICs1MDYsNyBAQCB2b2lkIGRybV9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWRybV9zeXNmc19jb25uZWN0b3JfcmVtb3ZlKGNvbm5l Y3Rvcik7CiAJZHJtX2RlYnVnZnNfY29ubmVjdG9yX3JlbW92ZShjb25uZWN0b3IpOwogCi0JY29u bmVjdG9yLT5yZWdpc3RlcmVkID0gZmFsc2U7CisJY29ubmVjdG9yLT5yZWdpc3RyYXRpb25fc3Rh dGUgPSBEUk1fQ09OTkVDVE9SX1VOUkVHSVNURVJFRDsKIAltdXRleF91bmxvY2soJmNvbm5lY3Rv ci0+bXV0ZXgpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwppbmRleCBiMjY4YmRkNzFiZDMuLmFkMzY3MzA5 ZTEwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKQEAgLTc4LDcgKzc4LDcgQEAg c3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCXBpcGVfY29uZmlnLT5wYm4gPSBtc3RfcGJuOwogCiAJLyogWm9tYmll IGNvbm5lY3RvcnMgY2FuJ3QgaGF2ZSBWQ1BJIHNsb3RzICovCi0JaWYgKFJFQURfT05DRShjb25u ZWN0b3ItPnJlZ2lzdGVyZWQpKSB7CisJaWYgKCFkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXJlZChj b25uZWN0b3IpKSB7CiAJCXNsb3RzID0gZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoc3Rh dGUsCiAJCQkJCQkgICAgICAmaW50ZWxfZHAtPm1zdF9tZ3IsCiAJCQkJCQkgICAgICBwb3J0LApA QCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2dldF9kZGNfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKIAlp bnQgcmV0OwogCi0JaWYgKCFSRUFEX09OQ0UoY29ubmVjdG9yLT5yZWdpc3RlcmVkKSkKKwlpZiAo ZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyZWQoY29ubmVjdG9yKSkKIAkJcmV0dXJuIGludGVsX2Nv bm5lY3Rvcl91cGRhdGVfbW9kZXMoY29ubmVjdG9yLCBOVUxMKTsKIAogCWVkaWQgPSBkcm1fZHBf bXN0X2dldF9lZGlkKGNvbm5lY3RvciwgJmludGVsX2RwLT5tc3RfbWdyLCBpbnRlbF9jb25uZWN0 b3ItPnBvcnQpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIGludGVsX2RwX21zdF9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKIAlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsK IAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfY29ubmVjdG9yLT5tc3RfcG9ydDsK IAotCWlmICghUkVBRF9PTkNFKGNvbm5lY3Rvci0+cmVnaXN0ZXJlZCkpCisJaWYgKGRybV9jb25u ZWN0b3JfdW5yZWdpc3RlcmVkKGNvbm5lY3RvcikpCiAJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVz X2Rpc2Nvbm5lY3RlZDsKIAlyZXR1cm4gZHJtX2RwX21zdF9kZXRlY3RfcG9ydChjb25uZWN0b3Is ICZpbnRlbF9kcC0+bXN0X21nciwKIAkJCQkgICAgICBpbnRlbF9jb25uZWN0b3ItPnBvcnQpOwpA QCAtMzYxLDcgKzM2MSw3IEBAIGludGVsX2RwX21zdF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiAJaW50IGJwcCA9IDI0OyAvKiBNU1QgdXNlcyBmaXhlZCBicHAg Ki8KIAlpbnQgbWF4X3JhdGUsIG1vZGVfcmF0ZSwgbWF4X2xhbmVzLCBtYXhfbGlua19jbG9jazsK IAotCWlmICghUkVBRF9PTkNFKGNvbm5lY3Rvci0+cmVnaXN0ZXJlZCkpCisJaWYgKGRybV9jb25u ZWN0b3JfdW5yZWdpc3RlcmVkKGNvbm5lY3RvcikpCiAJCXJldHVybiBNT0RFX0VSUk9SOwogCiAJ aWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmlu ZGV4IDViM2NmOTA5ZmQ1ZS4uNWYzZTRhMzdiY2QyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9k cm1fY29ubmVjdG9yLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC04Miw2 ICs4Miw1MSBAQCBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHsKIAljb25uZWN0b3Jfc3RhdHVz X3Vua25vd24gPSAzLAogfTsKIAorLyoqCisgKiBlbnVtIGRybV9jb25uZWN0b3JfcmVnaXN0cmF0 aW9uX3N0YXR1cyAtIHVzZXJzcGFjZSByZWdpc3RyYXRpb24gc3RhdHVzIGZvcgorICogYSAmZHJt X2Nvbm5lY3RvcgorICoKKyAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIHRyYWNrIHRoZSBzdGF0dXMg b2YgaW5pdGlhbGl6aW5nIGEgY29ubmVjdG9yIGFuZAorICogcmVnaXN0ZXJpbmcgaXQgd2l0aCB1 c2Vyc3BhY2UsIHNvIHRoYXQgRFJNIGNhbiBwcmV2ZW50IGJvZ3VzIG1vZGVzZXRzIG9uCisgKiBj b25uZWN0b3JzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0LgorICovCitlbnVtIGRybV9jb25uZWN0b3Jf cmVnaXN0cmF0aW9uX3N0YXRlIHsKKwkvKioKKwkgKiBARFJNX0NPTk5FQ1RPUl9JTklUSUFMSVpJ Tkc6IFRoZSBjb25uZWN0b3IgaGFzIGp1c3QgYmVlbiBjcmVhdGVkLAorCSAqIGJ1dCBoYXMgeWV0 IHRvIGJlIGV4cG9zZWQgdG8gdXNlcnNwYWNlLiBUaGVyZSBzaG91bGQgYmUgbm8KKwkgKiBhZGRp dGlvbmFsIHJlc3RyaWN0aW9ucyB0byBob3cgdGhlIHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yIG1h eSBiZQorCSAqIG1vZGlmaWVkLiBjb25uZWN0b3IgdG8gYSBuZXcgQ1JUQy4KKwkgKi8KKwlEUk1f Q09OTkVDVE9SX0lOSVRJQUxJWklORyA9IDAsCisKKwkvKioKKwkgKiBARFJNX0NPTk5FQ1RPUl9S RUdJU1RFUkVEOiBUaGUgY29ubmVjdG9yIGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVkCisJICog YW5kIHJlZ2lzdGVyZWQgd2l0aCBzeXNmcywgYXMgc3VjaCBpdCBoYXMgYmVlbiBleHBvc2VkIHRv CisJICogdXNlcnNwYWNlLiBUaGVyZSBzaG91bGQgYmUgbm8gYWRkaXRpb25hbCByZXN0cmljdGlv bnMgdG8gaG93IHRoZQorCSAqIHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yIG1heSBiZSBtb2RpZmll ZC4KKwkgKi8KKwlEUk1fQ09OTkVDVE9SX1JFR0lTVEVSRUQgPSAxLAorCisJLyoqCisJICogQERS TV9DT05ORUNUT1JfVU5SRUdJU1RFUkVEOiBUaGUgY29ubmVjdG9yIGhhcyBlaXRoZXIgYmVlbiBl eHBvc2VkCisJICogdG8gdXNlcnNwYWNlIGFuZCBoYXMgc2luY2UgYmVlbiB1bnJlZ2lzdGVyZWQg YW5kIHJlbW92ZWQgZnJvbQorCSAqIHVzZXJzcGFjZSwgb3IgdGhlIGNvbm5lY3RvciB3YXMgZGVz dHJveWVkIGJlZm9yZSBpdCBoYWQgYSBjaGFuY2UgdG8KKwkgKiBiZSBleHBvc2VkIHRvIHVzZXJz cGFjZS4gVGhlcmUgYXJlIGFkZGl0aW9uYWwgcmVzdHJpY3Rpb25zIHRvIGhvdworCSAqIHRoZSBz dGF0ZSBvZiBhbiB1bnJlZ2lzdGVyZWQgY29ubmVjdG9yIG1heSBiZSBtb2RpZmllZDoKKwkgKgor CSAqIC0gVGhlIGN1cnJlbnQgZGlzcGxheSBtb2RlIGFzIGV4cG9zZWQgdG8gdXNlcnNwYWNlIG11 c3QgcmVtYWluIHRoZQorCSAqICAgc2FtZSBhcyBpdCB3YXMgd2hlbiB0aGUgY29ubmVjdG9yIHdh cyB1bnJlZ2lzdGVyZWQuCisJICogLSBUaGUgY29ubmVjdG9yJ3MgY3VycmVudGx5IGFzc2lnbmVk IENSVEMgbWF5IGJlIHVuYXNzaWduZWQgZnJvbQorCSAqICAgdGhpcyBjb25uZWN0b3IuIFVuYXNz aWduaW5nIHRoZSBjb25uZWN0b3IncyBDUlRDIG11c3QgYmUKKwkgKiAgIHBlcm1hbmVudC4KKwkg KiAtIE5ldyBDUlRDcyBtdXN0IG5vdCBiZSBhc3NpZ25lZCB0byB0aGlzIGNvbm5lY3Rvci4KKwkg KiAtIFRoZSBEUE1TIHN0YXRlIG9mIHRoZSBjb25uZWN0b3IgKGZvciBjb21wYXRpYmlsaXR5IHdp dGggbGVnYWN5CisJICogICBtb2Rlc2V0dGluZykgbWF5IG1vZGlmaWVkIGZyZWVseSwgc28gbG9u ZyBhcyBkb2luZyBzbyBkb2VzIG5vdAorCSAqICAgY2F1c2UgdGhlIG5ldyBhdG9taWMgc3RhdGUg dG8gdmlvbGF0ZSBhbnkgb2YgdGhlc2UgcnVsZXMuCisJICovCisJRFJNX0NPTk5FQ1RPUl9VTlJF R0lTVEVSRUQgPSAyLAorfTsKKwogZW51bSBzdWJwaXhlbF9vcmRlciB7CiAJU3ViUGl4ZWxVbmtu b3duID0gMCwKIAlTdWJQaXhlbEhvcml6b250YWxSR0IsCkBAIC04NTMsMTAgKzg5OCwxMiBAQCBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciB7CiAJYm9vbCB5Y2Jjcl80MjBfYWxsb3dlZDsKIAogCS8qKgot CSAqIEByZWdpc3RlcmVkOiBJcyB0aGlzIGNvbm5lY3RvciBleHBvc2VkIChyZWdpc3RlcmVkKSB3 aXRoIHVzZXJzcGFjZT8KKwkgKiBAcmVnaXN0cmF0aW9uX3N0YXRlOiBJcyB0aGlzIGNvbm5lY3Rv ciBpbml0aWFsaXppbmcsIGV4cG9zZWQKKwkgKiAocmVnaXN0ZXJlZCkgd2l0aCB1c2Vyc3BhY2Us IG9yIHVucmVnaXN0ZXJlZD8KKwkgKgogCSAqIFByb3RlY3RlZCBieSBAbXV0ZXguCiAJICovCi0J Ym9vbCByZWdpc3RlcmVkOworCWVudW0gZHJtX2Nvbm5lY3Rvcl9yZWdpc3RyYXRpb25fc3RhdGUg cmVnaXN0cmF0aW9uX3N0YXRlOwogCiAJLyoqCiAJICogQG1vZGVzOgpAQCAtMTE2Nyw2ICsxMjE0 LDIzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJZHJtX2Nvbm5lY3Rvcl9wdXQoY29ubmVjdG9y KTsKIH0KIAorLyoqCisgKiBkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXJlZCAtIGhhcyB0aGUgY29u bmVjdG9yIGJlZW4gdW5yZWdpc3RlcmVkIGZyb20KKyAqIHVzZXJzcGFjZT8KKyAqIEBjb25uZWN0 b3I6IERSTSBjb25uZWN0b3IKKyAqCisgKiBDaGVja3Mgd2hldGhlciBvciBub3QgQGNvbm5lY3Rv ciBoYXMgYmVlbiB1bnJlZ2lzdGVyZWQgZnJvbSB1c2Vyc3BhY2UuCisgKgorICogUmV0dXJuczoK KyAqIFRydWUgaWYgdGhlIGNvbm5lY3RvciB3YXMgdW5yZWdpc3RlcmVkLCBmYWxzZSBpZiB0aGUg Y29ubmVjdG9yIGlzCisgKiByZWdpc3RlcmVkIG9yIGhhcyBub3QgeWV0IGJlZW4gcmVnaXN0ZXJl ZCB3aXRoIHVzZXJzcGFjZS4KKyAqLworc3RhdGljIGlubGluZSBib29sIGRybV9jb25uZWN0b3Jf dW5yZWdpc3RlcmVkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJcmV0dXJu IFJFQURfT05DRShjb25uZWN0b3ItPnJlZ2lzdHJhdGlvbl9zdGF0ZSkgPT0KKwkJRFJNX0NPTk5F Q1RPUl9VTlJFR0lTVEVSRUQ7Cit9CisKIGNvbnN0IGNoYXIgKmRybV9nZXRfY29ubmVjdG9yX3N0 YXR1c19uYW1lKGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzKTsKIGNvbnN0IGNoYXIg KmRybV9nZXRfc3VicGl4ZWxfb3JkZXJfbmFtZShlbnVtIHN1YnBpeGVsX29yZGVyIG9yZGVyKTsK IGNvbnN0IGNoYXIgKmRybV9nZXRfZHBtc19uYW1lKGludCB2YWwpOwotLSAKMi4xNy4yCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK