From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH v3 1/2] drm/i915: Add support for retrying hotplug Date: Fri, 28 Jun 2019 14:39:20 -0700 Message-ID: <20190628213921.16879-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 37A016E989 for ; Fri, 28 Jun 2019 21:39:24 +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: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgoKVGhlcmUgaXMgc29tZSBzY2Vu YXJpb3MgdGhhdCB3ZSBhcmUgYXdhcmUgdGhhdCBzaW5rIHByb2JlIGNhbiBmYWlsLApzbyBsZXRz IGFkZCB0aGUgaW5mcmFzdHJ1Y3R1cmUgdG8gbGV0IGhvdHBsdWcoKSBob29rIHRvIHJlcXVlc3QK YW5vdGhlciBwcm9iZSBhZnRlciBzb21lIHRpbWUuCgp2MjogSGFuZGxlIHNoYXJlZCBIUEQgcGlu cyAoSW1yZSkKdjM6IFJlYmFzZWQKCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgIHwg MTIgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgfCAx MiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYyB8IDU5 ICsrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hvdHBsdWcuaCB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nk dm8uYyAgICB8ICA4ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg ICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgICAg fCAxMSArKystCiA4IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCmluZGV4IDc5MjVh MTc2ZjkwMC4uNTMwMDk5ODRlMDQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGRpLmMKQEAgLTQwODEsMTQgKzQwODEsMTYgQEAgc3RhdGljIGludCBpbnRlbF9oZG1pX3Jl c2V0X2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJcmV0dXJuIG1vZGVzZXRf cGlwZSgmY3J0Yy0+YmFzZSwgY3R4KTsKIH0KIAotc3RhdGljIGJvb2wgaW50ZWxfZGRpX2hvdHBs dWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICAgICBzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlCitp bnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJICBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSAgYm9vbCBpcnFfcmVjZWl2ZWQpCiB7 CiAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKLQlib29sIGNoYW5nZWQ7CisJ ZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlIHN0YXRlOwogCWludCByZXQ7CiAKLQljaGFuZ2VkID0g aW50ZWxfZW5jb2Rlcl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3Rvcik7CisJc3RhdGUgPSBpbnRl bF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yLCBpcnFfcmVjZWl2ZWQpOwogCiAJ ZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwogCkBAIC00MTEwLDcgKzQxMTIsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9kZGlfaG90cGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CiAJV0FSTihyZXQsICJBY3F1 aXJpbmcgbW9kZXNldCBsb2NrcyBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKIAotCXJldHVybiBj aGFuZ2VkOworCXJldHVybiBzdGF0ZTsKIH0KIAogc3RhdGljIHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCmluZGV4IDQzMzZkZjQ2 ZmU3OC4uOTVkMGRhOWQxYmFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jCkBAIC00ODc4LDE0ICs0ODc4LDE2IEBAIGludCBpbnRlbF9kcF9yZXRyYWluX2xpbmsoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAgKiByZXRyYWluIHRoZSBsaW5rIHRvIGdldCBh IHBpY3R1cmUuIFRoYXQncyBpbiBjYXNlIG5vCiAgKiB1c2Vyc3BhY2UgY29tcG9uZW50IHJlYWN0 ZWQgdG8gaW50ZXJtaXR0ZW50IEhQRCBkaXAuCiAgKi8KLXN0YXRpYyBib29sIGludGVsX2RwX2hv dHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgICAgIHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUK K2ludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCSBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSBib29sIGlycV9yZWNlaXZlZCkKIHsK IAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OwotCWJvb2wgY2hhbmdlZDsKKwll bnVtIGludGVsX2hvdHBsdWdfc3RhdGUgc3RhdGU7CiAJaW50IHJldDsKIAotCWNoYW5nZWQgPSBp bnRlbF9lbmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yKTsKKwlzdGF0ZSA9IGludGVs X2VuY29kZXJfaG90cGx1ZyhlbmNvZGVyLCBjb25uZWN0b3IsIGlycV9yZWNlaXZlZCk7CiAKIAlk cm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7CiAKQEAgLTQ5MDQsNyArNDkwNiw3IEBA IHN0YXRpYyBib29sIGludGVsX2RwX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwogCVdBUk4ocmV0LCAiQWNxdWly aW5nIG1vZGVzZXQgbG9ja3MgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7CiAKLQlyZXR1cm4gY2hh bmdlZDsKKwlyZXR1cm4gc3RhdGU7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2RwX2NoZWNrX3Nl cnZpY2VfaXJxKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCmluZGV4IGVhM2RlNGFjYzg1MC4uMzY2Mjk2NmQz NjZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBs dWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYwpA QCAtMTEyLDYgKzExMiw3IEBAIGVudW0gaHBkX3BpbiBpbnRlbF9ocGRfcGluX2RlZmF1bHQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAjZGVmaW5lIEhQRF9TVE9STV9ERVRF Q1RfUEVSSU9ECQkxMDAwCiAjZGVmaW5lIEhQRF9TVE9STV9SRUVOQUJMRV9ERUxBWQkoMiAqIDYw ICogMTAwMCkKKyNkZWZpbmUgSFBEX1JFVFJZX0RFTEFZCQkJMTAwMAogCiAvKioKICAqIGludGVs X2hwZF9pcnFfc3Rvcm1fZGV0ZWN0IC0gZ2F0aGVyIHN0YXRzIGFuZCBkZXRlY3QgSFBEIElSUSBz dG9ybSBvbiBhIHBpbgpAQCAtMjY2LDggKzI2NywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRf aXJxX3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWludGVs X3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7CiB9CiAKLWJv b2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAot CQkJICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorZW51bSBpbnRlbF9ob3Rw bHVnX3N0YXRlCitpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCisJCSAgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAg ICAgYm9vbCBpcnFfcmVjZWl2ZWQpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+YmFzZS5kZXY7CiAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwpA QCAtMjc5LDcgKzI4Miw3IEBAIGJvb2wgaW50ZWxfZW5jb2Rlcl9ob3RwbHVnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCQlkcm1faGVscGVyX3Byb2JlX2RldGVjdCgmY29ubmVjdG9y LT5iYXNlLCBOVUxMLCBmYWxzZSk7CiAKIAlpZiAob2xkX3N0YXR1cyA9PSBjb25uZWN0b3ItPmJh c2Uuc3RhdHVzKQotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiBJTlRFTF9IT1RQTFVHX05PQ0hB TkdFOwogCiAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gc3RhdHVzIHVwZGF0ZWQg ZnJvbSAlcyB0byAlc1xuIiwKIAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCkBAIC0y ODcsNyArMjkwLDcgQEAgYm9vbCBpbnRlbF9lbmNvZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCSAgICAgIGRybV9nZXRfY29ubmVjdG9yX3N0YXR1c19uYW1lKG9s ZF9zdGF0dXMpLAogCQkgICAgICBkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShjb25uZWN0 b3ItPmJhc2Uuc3RhdHVzKSk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gSU5URUxfSE9UUExV R19DSEFOR0VEOwogfQogCiBzdGF0aWMgYm9vbCBpbnRlbF9lbmNvZGVyX2hhc19ocGRfcHVsc2Uo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCkBAIC0zMzksNyArMzQyLDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ CXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJCWRldl9wcml2LT5ob3RwbHVn LmV2ZW50X2JpdHMgfD0gb2xkX2JpdHM7CiAJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmly cV9sb2NrKTsKLQkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3Jr KTsKKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dv cmssIDApOwogCX0KIH0KIApAQCAtMzQ5LDE0ICszNTIsMTYgQEAgc3RhdGljIHZvaWQgaTkxNV9k aWdwb3J0X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiBzdGF0aWMgdm9pZCBp OTE1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQotCQljb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUsIGhvdHBsdWcuaG90cGx1Z193b3JrKTsKKwkJY29udGFpbmVy X29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLAorCQkJICAgICBob3RwbHVnLmhvdHBs dWdfd29yay53b3JrKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07 CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwogCXN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKLQlib29sIGNo YW5nZWQgPSBmYWxzZTsKKwl1MzIgY2hhbmdlZCA9IDAsIHJldHJ5ID0gMDsKIAl1MzIgaHBkX2V2 ZW50X2JpdHM7CisJdTMyIGhwZF9yZXRyeV9iaXRzOwogCiAJbXV0ZXhfbG9jaygmZGV2LT5tb2Rl X2NvbmZpZy5tdXRleCk7CiAJRFJNX0RFQlVHX0tNUygicnVubmluZyBlbmNvZGVyIGhvdHBsdWcg ZnVuY3Rpb25zXG4iKTsKQEAgLTM2NSw2ICszNzAsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBs dWdfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogCWhwZF9ldmVudF9iaXRz ID0gZGV2X3ByaXYtPmhvdHBsdWcuZXZlbnRfYml0czsKIAlkZXZfcHJpdi0+aG90cGx1Zy5ldmVu dF9iaXRzID0gMDsKKwlocGRfcmV0cnlfYml0cyA9IGRldl9wcml2LT5ob3RwbHVnLnJldHJ5X2Jp dHM7CisJZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0cyA9IDA7CiAKIAkvKiBFbmFibGUgcG9s bGluZyBmb3IgY29ubmVjdG9ycyB3aGljaCBoYWQgSFBEIElSUSBzdG9ybXMgKi8KIAlpbnRlbF9o cGRfaXJxX3N0b3JtX3N3aXRjaF90b19wb2xsaW5nKGRldl9wcml2KTsKQEAgLTM3MywxNiArMzgw LDI5IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCiAJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9p dGVyKTsKIAlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVy KSB7CisJCXUzMiBocGRfYml0OworCiAJCWludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5l Y3Rvcihjb25uZWN0b3IpOwogCQlpZiAoIWludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcikKIAkJCWNv bnRpbnVlOwogCQlpbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyOwotCQlp ZiAoaHBkX2V2ZW50X2JpdHMgJiAoMSA8PCBpbnRlbF9lbmNvZGVyLT5ocGRfcGluKSkgeworCQlo cGRfYml0ID0gQklUKGludGVsX2VuY29kZXItPmhwZF9waW4pOworCQlpZiAoKGhwZF9ldmVudF9i aXRzIHwgaHBkX3JldHJ5X2JpdHMpICYgaHBkX2JpdCkgewogCQkJRFJNX0RFQlVHX0tNUygiQ29u bmVjdG9yICVzIChwaW4gJWkpIHJlY2VpdmVkIGhvdHBsdWcgZXZlbnQuXG4iLAogCQkJCSAgICAg IGNvbm5lY3Rvci0+bmFtZSwgaW50ZWxfZW5jb2Rlci0+aHBkX3Bpbik7CiAKLQkJCWNoYW5nZWQg fD0gaW50ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9lbmNvZGVyLAotCQkJCQkJCSAgaW50ZWxf Y29ubmVjdG9yKTsKKwkJCXN3aXRjaCAoaW50ZWxfZW5jb2Rlci0+aG90cGx1ZyhpbnRlbF9lbmNv ZGVyLAorCQkJCQkJICAgICAgIGludGVsX2Nvbm5lY3RvciwKKwkJCQkJCSAgICAgICBocGRfZXZl bnRfYml0cyAmIGhwZF9iaXQpKSB7CisJCQljYXNlIElOVEVMX0hPVFBMVUdfTk9DSEFOR0U6CisJ CQkJYnJlYWs7CisJCQljYXNlIElOVEVMX0hPVFBMVUdfQ0hBTkdFRDoKKwkJCQljaGFuZ2VkIHw9 IGhwZF9iaXQ7CisJCQkJYnJlYWs7CisJCQljYXNlIElOVEVMX0hPVFBMVUdfUkVUUlk6CisJCQkJ cmV0cnkgfD0gaHBkX2JpdDsKKwkJCQlicmVhazsKKwkJCX0KIAkJfQogCX0KIAlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7CkBAIC0zOTAsNiArNDEwLDE3IEBAIHN0YXRp YyB2b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CiAJaWYgKGNoYW5nZWQpCiAJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoZGV2KTsKKwor CS8qIFJlbW92ZSBzaGFyZWQgSFBEIHBpbnMgdGhhdCBoYXZlIGNoYW5nZWQgKi8KKwlyZXRyeSAm PSB+Y2hhbmdlZDsKKwlpZiAocmV0cnkpIHsKKwkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmly cV9sb2NrKTsKKwkJZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0cyB8PSByZXRyeTsKKwkJc3Bp bl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCisJCW1vZF9kZWxheWVkX3dvcmso c3lzdGVtX3dxLCAmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAorCQkJCSBtc2Vjc190 b19qaWZmaWVzKEhQRF9SRVRSWV9ERUxBWSkpOworCX0KIH0KIAogCkBAIC01MTYsNyArNTQ3LDcg QEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCWlmIChxdWV1ZV9kaWcpCiAJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPmhvdHBsdWcu ZHBfd3EsICZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKIAlpZiAocXVldWVfaHAp Ci0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7CisJCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLCAwKTsK IH0KIAogLyoqCkBAIC02MzYsNyArNjY3LDggQEAgdm9pZCBpbnRlbF9ocGRfcG9sbF9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogdm9pZCBpbnRlbF9ocGRfaW5pdF93 b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlJTklUX1dPUksoJmRl dl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgaTkxNV9ob3RwbHVnX3dvcmtfZnVuYyk7CisJ SU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywKKwkJCSAg aTkxNV9ob3RwbHVnX3dvcmtfZnVuYyk7CiAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5k aWdfcG9ydF93b3JrLCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKTsKIAlJTklUX1dPUksoJmRldl9w cml2LT5ob3RwbHVnLnBvbGxfaW5pdF93b3JrLCBpOTE1X2hwZF9wb2xsX2luaXRfd29yayk7CiAJ SU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLnJlZW5hYmxlX3dvcmssCkBAIC02 NTAsMTEgKzY4MiwxMiBAQCB2b2lkIGludGVsX2hwZF9jYW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZGV2X3ByaXYtPmhvdHBsdWcubG9uZ19wb3J0X21hc2sg PSAwOwogCWRldl9wcml2LT5ob3RwbHVnLnNob3J0X3BvcnRfbWFzayA9IDA7CiAJZGV2X3ByaXYt PmhvdHBsdWcuZXZlbnRfYml0cyA9IDA7CisJZGV2X3ByaXYtPmhvdHBsdWcucmV0cnlfYml0cyA9 IDA7CiAKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAKIAljYW5jZWxf d29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKLQljYW5jZWxfd29y a19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOworCWNhbmNlbF9kZWxheWVk X3dvcmtfc3luYygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKIAljYW5jZWxfd29y a19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5wb2xsX2luaXRfd29yayk7CiAJY2FuY2VsX2RlbGF5 ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3JrKTsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmgKaW5kZXggODA1Zjg5N2Ri YjdhLi5iMGNkNDQ3YjdmYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaG90cGx1Zy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfaG90cGx1Zy5oCkBAIC0xNSw4ICsxNSw5IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3I7CiBz dHJ1Y3QgaW50ZWxfZW5jb2RlcjsKIAogdm9pZCBpbnRlbF9ocGRfcG9sbF9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci1ib29sIGludGVsX2VuY29kZXJfaG90cGx1Zyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3Rvcik7CitlbnVtIGludGVsX2hvdHBsdWdfc3RhdGUgaW50ZWxfZW5jb2Rlcl9o b3RwbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCQkgICAgICAgc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQkgICAgICAgYm9vbCBpcnFfcmVjZWl2 ZWQpOwogdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICAgdTMyIHBpbl9tYXNrLCB1MzIgbG9uZ19tYXNrKTsKIHZvaWQgaW50 ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKaW5kZXggY2VkYTAzZTVhM2Q0Li4yODU1 ZjE0ZjU3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf c2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jCkBA IC0xODkzLDEyICsxODkzLDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZW5hYmxlX2hvdHBs dWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCQkgICAgICZpbnRlbF9zZHZvLT5o b3RwbHVnX2FjdGl2ZSwgMik7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX3Nkdm9faG90cGx1Zyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlCitpbnRl bF9zZHZvX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCSAgIHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgYm9vbCBpcnFfcmVjZWl2ZWQpCiB7 CiAJaW50ZWxfc2R2b19lbmFibGVfaG90cGx1ZyhlbmNvZGVyKTsKIAotCXJldHVybiBpbnRlbF9l bmNvZGVyX2hvdHBsdWcoZW5jb2RlciwgY29ubmVjdG9yKTsKKwlyZXR1cm4gaW50ZWxfZW5jb2Rl cl9ob3RwbHVnKGVuY29kZXIsIGNvbm5lY3RvciwgaXJxX3JlY2VpdmVkKTsKIH0KIAogc3RhdGlj IGJvb2wKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZWVlY2RhZDBlM2NhLi44 MzY3MDllZTlmZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC00MDgzLDcg KzQwODMsNyBAQCBzdGF0aWMgaW50IGk5MTVfaHBkX3N0b3JtX2N0bF9zaG93KHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkgKi8KIAlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRy bS5pcnEpOwogCWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmRpZ19wb3J0X3dvcmspOwot CWZsdXNoX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7CisJZmx1c2hfZGVs YXllZF93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwogCiAJc2VxX3ByaW50 ZihtLCAiVGhyZXNob2xkOiAlZFxuIiwgaG90cGx1Zy0+aHBkX3N0b3JtX3RocmVzaG9sZCk7CiAJ c2VxX3ByaW50ZihtLCAiRGV0ZWN0ZWQ6ICVzXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5k ZXggN2U5ODFiMDNmYWNlLi5kMjQwOTk3OTEyZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApA QCAtMTYzLDcgKzE2Myw3IEBAIGVudW0gaHBkX3BpbiB7CiAjZGVmaW5lIEhQRF9TVE9STV9ERUZB VUxUX1RIUkVTSE9MRCA1MAogCiBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKLQlzdHJ1Y3Qgd29ya19z dHJ1Y3QgaG90cGx1Z193b3JrOworCXN0cnVjdCBkZWxheWVkX3dvcmsgaG90cGx1Z193b3JrOwog CiAJc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBsYXN0X2ppZmZpZXM7CkBAIC0xNzUsNiArMTc1 LDcgQEAgc3RydWN0IGk5MTVfaG90cGx1ZyB7CiAJCX0gc3RhdGU7CiAJfSBzdGF0c1tIUERfTlVN X1BJTlNdOwogCXUzMiBldmVudF9iaXRzOworCXUzMiByZXRyeV9iaXRzOwogCXN0cnVjdCBkZWxh eWVkX3dvcmsgcmVlbmFibGVfd29yazsKIAogCXUzMiBsb25nX3BvcnRfbWFzazsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKaW5kZXggMWQ1OGY3ZWM1ZDg0Li4wMDg4ZWIyZjUxMGUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMDEsMTQgKzEwMSwyMSBAQCBzdHJ1Y3QgaW50ZWxfZmJk ZXYgewogCXN0cnVjdCBtdXRleCBocGRfbG9jazsKIH07CiAKK2VudW0gaW50ZWxfaG90cGx1Z19z dGF0ZSB7CisJSU5URUxfSE9UUExVR19OT0NIQU5HRSwKKwlJTlRFTF9IT1RQTFVHX0NIQU5HRUQs CisJSU5URUxfSE9UUExVR19SRVRSWSwKK307CisKIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKIAlz dHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKIAogCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgdHlwZTsK IAllbnVtIHBvcnQgcG9ydDsKIAl1bnNpZ25lZCBpbnQgY2xvbmVhYmxlOwotCWJvb2wgKCpob3Rw bHVnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLQkJCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3Rvcik7CisJZW51bSBpbnRlbF9ob3RwbHVnX3N0YXRlICgqaG90cGx1Zyko c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAgICBib29sIGlycV9yZWNlaXZlZCk7CiAJZW51bSBp bnRlbF9vdXRwdXRfdHlwZSAoKmNvbXB1dGVfb3V0cHV0X3R5cGUpKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICosCiAJCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAogCQkJCQkJICAg ICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Ci0tIAoyLjIyLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==