From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH v3 7/8] drm/i915/uc: Plumb the gt through fw_upload Date: Wed, 24 Jul 2019 17:18:12 -0700 Message-ID: <20190725001813.4740-8-daniele.ceraolospurio@intel.com> References: <20190725001813.4740-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id B57956E2B4 for ; Thu, 25 Jul 2019 00:18:42 +0000 (UTC) In-Reply-To: <20190725001813.4740-1-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIGd0IGlzIG91ciBuZXcgY2VudHJhbCBzdHJ1Y3R1cmUgZm9yIHVjLXJlbGF0ZWQgY29kZSwg c28gd2UgY2FuIHVzZQp0aGF0IGluc3RlYWQgb2YganVtcGluZyBiYWNrIHRvIGk5MTUgdmlhIHRo ZSBmdyBvYmplY3QuIFNpbmNlIHdlIGhhdmUgaXQKaW4gdGhlIHVwbG9hZCBmdW5jdGlvbiBpdCBp cyBlYXN5IHRvIHBhc3MgaXQgdGhyb3VnaCB0aGUgbG93ZXIgbGV2ZWxzIG9mCnRoZSB4ZmVyIHBy b2Nlc3MgaW5zdGVhZCBvZiBjb250aW51b3NseSBqdW1waW5nIHZpYSB1Y19mdy0+dWMtPmd0LCB3 aGljaAp3aWxsIGFsc28gbWFrZSB0aGluZ3MgYSBiaXQgY2xlYW5lciBmb3IgdGhlIG5leHQgcGF0 Y2guCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFv bG9zcHVyaW9AaW50ZWwuY29tPgpDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3pr b0BpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K UmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5jIHwgMzUgKysrKysrKysr KystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Y19mdy5j IHwgMzIgKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF91Y19mdy5jICB8IDI5ICsrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX3VjX2Z3LmggIHwgIDggKysrKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDQ4 IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfZ3VjX2Z3LmMKaW5kZXggMzg1ZjZkMzhiZjQ5Li4zZWEwZGU2ZjRiNzMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19mdy5jCkBAIC00MiwxMCArNDIsOCBA QCB2b2lkIGludGVsX2d1Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlp bnRlbF91Y19md19pbml0X2Vhcmx5KCZndWMtPmZ3LCBJTlRFTF9VQ19GV19UWVBFX0dVQywgZ3Vj X3RvX2d0KGd1YyktPmk5MTUpOwogfQogCi1zdGF0aWMgdm9pZCBndWNfcHJlcGFyZV94ZmVyKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKK3N0YXRpYyB2b2lkIGd1Y19wcmVwYXJlX3hmZXIoc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlKQogewotCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBndWNfdG9f Z3QoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3JlOwogCXUz MiBzaGltX2ZsYWdzID0gR1VDX0RJU0FCTEVfU1JBTV9JTklUX1RPX1pFUk9FUyB8CiAJCQkgR1VD X0VOQUJMRV9SRUFEX0NBQ0hFX0xPR0lDIHwKIAkJCSBHVUNfRU5BQkxFX01JQV9DQUNISU5HIHwK QEAgLTU2LDEyICs1NCwxMiBAQCBzdGF0aWMgdm9pZCBndWNfcHJlcGFyZV94ZmVyKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKIAkvKiBNdXN0IHByb2dyYW0gdGhpcyByZWdpc3RlciBiZWZvcmUgbG9h ZGluZyB0aGUgdWNvZGUgd2l0aCBETUEgKi8KIAlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBH VUNfU0hJTV9DT05UUk9MLCBzaGltX2ZsYWdzKTsKIAotCWlmIChJU19HRU45X0xQKGd0LT5pOTE1 KSkKKwlpZiAoSVNfR0VOOV9MUCh1bmNvcmUtPmk5MTUpKQogCQlpbnRlbF91bmNvcmVfd3JpdGUo dW5jb3JlLCBHRU45TFBfR1RfUE1fQ09ORklHLCBHVF9ET09SQkVMTF9FTkFCTEUpOwogCWVsc2UK IAkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOOV9HVF9QTV9DT05GSUcsIEdUX0RPT1JC RUxMX0VOQUJMRSk7CiAKLQlpZiAoSVNfR0VOKGd0LT5pOTE1LCA5KSkgeworCWlmIChJU19HRU4o dW5jb3JlLT5pOTE1LCA5KSkgewogCQkvKiBET1AgQ2xvY2sgR2F0aW5nIEVuYWJsZSBmb3IgR3VD IGNsb2NrcyAqLwogCQlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VON19NSVNDQ1BDVEwsCiAJ CQkJIDAsIEdFTjhfRE9QX0NMT0NLX0dBVEVfR1VDX0VOQUJMRSk7CkBAIC03MiwxNCArNzAsMTQg QEAgc3RhdGljIHZvaWQgZ3VjX3ByZXBhcmVfeGZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiB9 CiAKIC8qIENvcHkgUlNBIHNpZ25hdHVyZSBmcm9tIHRoZSBmdyBpbWFnZSB0byBIVyBmb3IgdmVy aWZpY2F0aW9uICovCi1zdGF0aWMgdm9pZCBndWNfeGZlcl9yc2Eoc3RydWN0IGludGVsX2d1YyAq Z3VjKQorc3RhdGljIHZvaWQgZ3VjX3hmZXJfcnNhKHN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3 LAorCQkJIHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5j b3JlICp1bmNvcmUgPSBndWNfdG9fZ3QoZ3VjKS0+dW5jb3JlOwogCXUzMiByc2FbVU9TX1JTQV9T Q1JBVENIX0NPVU5UXTsKIAlzaXplX3QgY29waWVkOwogCWludCBpOwogCi0JY29waWVkID0gaW50 ZWxfdWNfZndfY29weV9yc2EoJmd1Yy0+ZncsIHJzYSwgc2l6ZW9mKHJzYSkpOworCWNvcGllZCA9 IGludGVsX3VjX2Z3X2NvcHlfcnNhKGd1Y19mdywgcnNhLCBzaXplb2YocnNhKSk7CiAJR0VNX0JV R19PTihjb3BpZWQgPCBzaXplb2YocnNhKSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgVU9TX1JTQV9T Q1JBVENIX0NPVU5UOyBpKyspCkBAIC0xNTUsMTAgKzE1MywxMCBAQCBzdGF0aWMgaW50IGd1Y193 YWl0X3Vjb2RlKHN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSkKICAqIHRyYW5zZmVyIGJldHdl ZW4gR1RUIGxvY2F0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxlZnQgb3V0IG9mIHRoZSBB UEkKICAqIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQuCiAgKi8KLXN0YXRpYyBp bnQgZ3VjX3hmZXJfdWNvZGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQorc3RhdGljIGludCBndWNf eGZlcl91Y29kZShzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdywKKwkJCSAgc3RydWN0IGludGVs X2d0ICpndCkKIHsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndWNfdG9fZ3QoZ3Vj KS0+dW5jb3JlOwotCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmd1Yy0+Znc7CisJc3Ry dWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKIAl1bnNpZ25lZCBsb25nIG9m ZnNldDsKIAogCS8qCkBAIC0xNjksNyArMTY3LDcgQEAgc3RhdGljIGludCBndWNfeGZlcl91Y29k ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJCQkgICBndWNfZnctPmhlYWRlcl9zaXplICsgZ3Vj X2Z3LT51Y29kZV9zaXplKTsKIAogCS8qIFNldCB0aGUgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBu ZXcgYmxvYiAqLwotCW9mZnNldCA9IGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KGd1Y19mdykgKyBn dWNfZnctPmhlYWRlcl9vZmZzZXQ7CisJb2Zmc2V0ID0gaW50ZWxfdWNfZndfZ2d0dF9vZmZzZXQo Z3VjX2Z3LCBndC0+Z2d0dCkgKyBndWNfZnctPmhlYWRlcl9vZmZzZXQ7CiAJaW50ZWxfdW5jb3Jl X3dyaXRlKHVuY29yZSwgRE1BX0FERFJfMF9MT1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7CiAJ aW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRE1BX0FERFJfMF9ISUdILCB1cHBlcl8zMl9iaXRz KG9mZnNldCkgJiAweEZGRkYpOwogCkBAIC0xODksMjYgKzE4NywyNSBAQCBzdGF0aWMgaW50IGd1 Y194ZmVyX3Vjb2RlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIC8qCiAgKiBMb2FkIHRoZSBHdUMg ZmlybXdhcmUgYmxvYiBpbnRvIHRoZSBNaW51dGVJQS4KICAqLwotc3RhdGljIGludCBndWNfZndf eGZlcihzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdykKK3N0YXRpYyBpbnQgZ3VjX2Z3X3hmZXIo c3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncsIHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB7Ci0Jc3Ry dWN0IGludGVsX2d1YyAqZ3VjID0gY29udGFpbmVyX29mKGd1Y19mdywgc3RydWN0IGludGVsX2d1 YywgZncpOwotCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd1Y190b19ndChndWMpLT51 bmNvcmU7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKIAlpbnQg cmV0OwogCiAJR0VNX0JVR19PTihndWNfZnctPnR5cGUgIT0gSU5URUxfVUNfRldfVFlQRV9HVUMp OwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQodW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsK IAotCWd1Y19wcmVwYXJlX3hmZXIoZ3VjKTsKKwlndWNfcHJlcGFyZV94ZmVyKHVuY29yZSk7CiAK IAkvKgogCSAqIE5vdGUgdGhhdCBHdUMgbmVlZHMgdGhlIENTUyBoZWFkZXIgcGx1cyB1S2VybmVs IGNvZGUgdG8gYmUgY29waWVkCiAJICogYnkgdGhlIERNQSBlbmdpbmUgaW4gb25lIG9wZXJhdGlv biwgd2hlcmVhcyB0aGUgUlNBIHNpZ25hdHVyZSBpcwogCSAqIGxvYWRlZCB2aWEgTU1JTy4KIAkg Ki8KLQlndWNfeGZlcl9yc2EoZ3VjKTsKKwlndWNfeGZlcl9yc2EoZ3VjX2Z3LCB1bmNvcmUpOwog Ci0JcmV0ID0gZ3VjX3hmZXJfdWNvZGUoZ3VjKTsKKwlyZXQgPSBndWNfeGZlcl91Y29kZShndWNf ZncsIGd0KTsKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHVuY29yZSwgRk9SQ0VXQUtF X0FMTCk7CiAKQEAgLTIyOSw3ICsyMjYsNyBAQCBzdGF0aWMgaW50IGd1Y19md194ZmVyKHN0cnVj dCBpbnRlbF91Y19mdyAqZ3VjX2Z3KQogICovCiBpbnQgaW50ZWxfZ3VjX2Z3X3VwbG9hZChzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMpCiB7Ci0JaW50IHJldCA9IGludGVsX3VjX2Z3X3VwbG9hZCgmZ3Vj LT5mdywgZ3VjX2Z3X3hmZXIpOworCWludCByZXQgPSBpbnRlbF91Y19md191cGxvYWQoJmd1Yy0+ ZncsIGd1Y190b19ndChndWMpLCBndWNfZndfeGZlcik7CiAJaWYgKCFyZXQpCiAJCWd1Yy0+Zncu c3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUlVOTklORzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9odWNfZncuYwppbmRleCA3ZDJkMmViOTRkMjIuLjJlN2FjODg2MzcyOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMKQEAgLTM0LDEwICsz NCwxNyBAQCB2b2lkIGludGVsX2h1Y19md19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1 YykKIAlpbnRlbF91Y19md19pbml0X2Vhcmx5KCZodWMtPmZ3LCBJTlRFTF9VQ19GV19UWVBFX0hV QywgaHVjX3RvX2d0KGh1YyktPmk5MTUpOwogfQogCi1zdGF0aWMgaW50IGh1Y194ZmVyX3Vjb2Rl KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKKy8qKgorICogaHVjX2Z3X3hmZXIoKSAtIERNQSdzIHRo ZSBmaXJtd2FyZQorICogQGh1Y19mdzogdGhlIGZpcm13YXJlIGRlc2NyaXB0b3IKKyAqCisgKiBU cmFuc2ZlciB0aGUgZmlybXdhcmUgaW1hZ2UgdG8gUkFNIGZvciBleGVjdXRpb24gYnkgdGhlIG1p Y3JvY29udHJvbGxlci4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24g ZmFpbHVyZQorICovCitzdGF0aWMgaW50IGh1Y19md194ZmVyKHN0cnVjdCBpbnRlbF91Y19mdyAq aHVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVj X2Z3ID0gJmh1Yy0+Znc7Ci0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gaHVjX3RvX2d0 KGh1YyktPnVuY29yZTsKKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBndC0+dW5jb3Jl OwogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMDsKIAl1MzIgc2l6ZTsKIAlpbnQgcmV0OwpAQCAt NDcsNyArNTQsNyBAQCBzdGF0aWMgaW50IGh1Y194ZmVyX3Vjb2RlKHN0cnVjdCBpbnRlbF9odWMg Kmh1YykKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCh1bmNvcmUsIEZPUkNFV0FLRV9BTEwp OwogCiAJLyogU2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBmb3IgdGhlIHVDb2RlICovCi0Jb2Zmc2V0 ID0gaW50ZWxfdWNfZndfZ2d0dF9vZmZzZXQoaHVjX2Z3KSArCisJb2Zmc2V0ID0gaW50ZWxfdWNf ZndfZ2d0dF9vZmZzZXQoaHVjX2Z3LCBndC0+Z2d0dCkgKwogCQkgaHVjX2Z3LT5oZWFkZXJfb2Zm c2V0OwogCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIERNQV9BRERSXzBfTE9XLAogCQkJICAg bG93ZXJfMzJfYml0cyhvZmZzZXQpKTsKQEAgLTgxLDIxICs4OCw2IEBAIHN0YXRpYyBpbnQgaHVj X3hmZXJfdWNvZGUoc3RydWN0IGludGVsX2h1YyAqaHVjKQogCXJldHVybiByZXQ7CiB9CiAKLS8q KgotICogaHVjX2Z3X3hmZXIoKSAtIERNQSdzIHRoZSBmaXJtd2FyZQotICogQGh1Y19mdzogdGhl IGZpcm13YXJlIGRlc2NyaXB0b3IKLSAqCi0gKiBUcmFuc2ZlciB0aGUgZmlybXdhcmUgaW1hZ2Ug dG8gUkFNIGZvciBleGVjdXRpb24gYnkgdGhlIG1pY3JvY29udHJvbGxlci4KLSAqCi0gKiBSZXR1 cm46IDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZQotICovCi1zdGF0aWMgaW50IGh1 Y19md194ZmVyKHN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3KQotewotCXN0cnVjdCBpbnRlbF9o dWMgKmh1YyA9IGNvbnRhaW5lcl9vZihodWNfZncsIHN0cnVjdCBpbnRlbF9odWMsIGZ3KTsKLQot CXJldHVybiBodWNfeGZlcl91Y29kZShodWMpOwotfQotCiAvKioKICAqIGludGVsX2h1Y19md191 cGxvYWQoKSAtIGxvYWQgSHVDIHVDb2RlIHRvIGRldmljZQogICogQGh1YzogaW50ZWxfaHVjIHN0 cnVjdHVyZQpAQCAtMTEwLDUgKzEwMiw1IEBAIHN0YXRpYyBpbnQgaHVjX2Z3X3hmZXIoc3RydWN0 IGludGVsX3VjX2Z3ICpodWNfZncpCiAgKi8KIGludCBpbnRlbF9odWNfZndfdXBsb2FkKHN0cnVj dCBpbnRlbF9odWMgKmh1YykKIHsKLQlyZXR1cm4gaW50ZWxfdWNfZndfdXBsb2FkKCZodWMtPmZ3 LCBodWNfZndfeGZlcik7CisJcmV0dXJuIGludGVsX3VjX2Z3X3VwbG9hZCgmaHVjLT5mdywgaHVj X3RvX2d0KGh1YyksIGh1Y19md194ZmVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF91Y19mdy5jCmluZGV4IGY2MDEyOWMxN2U0MC4uOGQwOTlkYWMwMjI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMKQEAgLTMyMSwxMiArMzIxLDEzIEBAIHZv aWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CXJlbGVhc2VfZmlybXdhcmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBOVUxMICovCiB9CiAK LXN0YXRpYyB2b2lkIGludGVsX3VjX2Z3X2dndHRfYmluZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVj X2Z3KQorc3RhdGljIHZvaWQgaW50ZWxfdWNfZndfZ2d0dF9iaW5kKHN0cnVjdCBpbnRlbF91Y19m dyAqdWNfZncsCisJCQkJICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSB1Y19mdy0+b2JqOwotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmdG9faTkxNShvYmotPmJhc2UuZGV2KS0+Z2d0dDsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 ID0gZ3QtPmdndHQ7CiAJc3RydWN0IGk5MTVfdm1hIGR1bW15ID0gewotCQkubm9kZS5zdGFydCA9 IGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHVjX2Z3KSwKKwkJLm5vZGUuc3RhcnQgPSBpbnRlbF91 Y19md19nZ3R0X29mZnNldCh1Y19mdywgZ2d0dCksCiAJCS5ub2RlLnNpemUgPSBvYmotPmJhc2Uu c2l6ZSwKIAkJLnBhZ2VzID0gb2JqLT5tbS5wYWdlcywKIAkJLnZtID0gJmdndHQtPnZtLApAQCAt MzQxLDExICszNDIsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfdWNfZndfZ2d0dF9iaW5kKHN0cnVj dCBpbnRlbF91Y19mdyAqdWNfZncpCiAJZ2d0dC0+dm0uaW5zZXJ0X2VudHJpZXMoJmdndHQtPnZt LCAmZHVtbXksIEk5MTVfQ0FDSEVfTk9ORSwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX3Vj X2Z3X2dndHRfdW5iaW5kKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCitzdGF0aWMgdm9pZCBp bnRlbF91Y19md19nZ3R0X3VuYmluZChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LAorCQkJCSAg ICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSB1Y19mdy0+b2JqOwotCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmdG9faTkxNShvYmot PmJhc2UuZGV2KS0+Z2d0dDsKLQl1NjQgc3RhcnQgPSBpbnRlbF91Y19md19nZ3R0X29mZnNldCh1 Y19mdyk7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGd0LT5nZ3R0OworCXU2NCBzdGFydCA9 IGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHVjX2Z3LCBnZ3R0KTsKIAogCWdndHQtPnZtLmNsZWFy X3JhbmdlKCZnZ3R0LT52bSwgc3RhcnQsIG9iai0+YmFzZS5zaXplKTsKIH0KQEAgLTM1MywxNCAr MzU1LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX3VjX2Z3X2dndHRfdW5iaW5kKHN0cnVjdCBpbnRl bF91Y19mdyAqdWNfZncpCiAvKioKICAqIGludGVsX3VjX2Z3X3VwbG9hZCAtIGxvYWQgdUMgZmly bXdhcmUgdXNpbmcgY3VzdG9tIGxvYWRlcgogICogQHVjX2Z3OiB1QyBmaXJtd2FyZQorICogQGd0 OiB0aGUgaW50ZWxfZ3Qgc3RydWN0dXJlCiAgKiBAeGZlcjogY3VzdG9tIHVDIGZpcm13YXJlIGxv YWRlciBmdW5jdGlvbgogICoKICAqIExvYWRzIHVDIGZpcm13YXJlIHVzaW5nIGN1c3RvbSBsb2Fk ZXIgYW5kIHVwZGF0ZXMgaW50ZXJuYWwgZmxhZ3MuCiAgKgogICogUmV0dXJuOiAwIG9uIHN1Y2Nl c3MsIG5vbi16ZXJvIG9uIGZhaWx1cmUuCiAgKi8KLWludCBpbnRlbF91Y19md191cGxvYWQoc3Ry dWN0IGludGVsX3VjX2Z3ICp1Y19mdywKLQkJICAgICAgIGludCAoKnhmZXIpKHN0cnVjdCBpbnRl bF91Y19mdyAqdWNfZncpKQoraW50IGludGVsX3VjX2Z3X3VwbG9hZChzdHJ1Y3QgaW50ZWxfdWNf ZncgKnVjX2Z3LCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkgICAgICAgaW50ICgqeGZlcikoc3Ry dWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGludGVsX2d0ICpndCkpCiB7CiAJaW50IGVy cjsKIApAQCAtMzczLDkgKzM3Niw5IEBAIGludCBpbnRlbF91Y19md191cGxvYWQoc3RydWN0IGlu dGVsX3VjX2Z3ICp1Y19mdywKIAlpZiAoIWludGVsX3VjX2Z3X2lzX2F2YWlsYWJsZSh1Y19mdykp CiAJCXJldHVybiAtRU5PRVhFQzsKIAkvKiBDYWxsIGN1c3RvbSBsb2FkZXIgKi8KLQlpbnRlbF91 Y19md19nZ3R0X2JpbmQodWNfZncpOwotCWVyciA9IHhmZXIodWNfZncpOwotCWludGVsX3VjX2Z3 X2dndHRfdW5iaW5kKHVjX2Z3KTsKKwlpbnRlbF91Y19md19nZ3R0X2JpbmQodWNfZncsIGd0KTsK KwllcnIgPSB4ZmVyKHVjX2Z3LCBndCk7CisJaW50ZWxfdWNfZndfZ2d0dF91bmJpbmQodWNfZncs IGd0KTsKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7CiAKQEAgLTQyNywxMCArNDMwLDggQEAgdm9p ZCBpbnRlbF91Y19md19maW5pKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCiAJaTkxNV9nZW1f b2JqZWN0X3VucGluX3BhZ2VzKHVjX2Z3LT5vYmopOwogfQogCi11MzIgaW50ZWxfdWNfZndfZ2d0 dF9vZmZzZXQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3UzMiBpbnRlbF91Y19md19nZ3R0 X29mZnNldChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNSh1Y19mdy0+b2Jq LT5iYXNlLmRldik7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0OwogCXN0 cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSA9ICZnZ3R0LT51Y19mdzsKIAogCUdFTV9CVUdfT04oIW5v ZGUtPmFsbG9jYXRlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF91Y19mdy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuaApp bmRleCBjODQzZDAwYjFiNzUuLmE2OWI2ZjAwZmUxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF91Y19mdy5oCkBAIC0zMCw2ICszMCw4IEBACiAKIHN0cnVjdCBkcm1fcHJpbnRl cjsKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOworc3RydWN0IGludGVsX2d0Oworc3RydWN0IGk5 MTVfZ2d0dDsKIAogLyogSG9tZSBvZiBHdUMsIEh1QyBhbmQgRE1DIGZpcm13YXJlcyAqLwogI2Rl ZmluZSBJTlRFTF9VQ19GSVJNV0FSRV9VUkwgImh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3Nj bS9saW51eC9rZXJuZWwvZ2l0L2Zpcm13YXJlL2xpbnV4LWZpcm13YXJlLmdpdC90cmVlL2k5MTUi CkBAIC0xNzEsMTEgKzE3MywxMSBAQCB2b2lkIGludGVsX3VjX2Z3X2luaXRfZWFybHkoc3RydWN0 IGludGVsX3VjX2Z3ICp1Y19mdywKIHZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsK IHZvaWQgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3 KTsKLWludCBpbnRlbF91Y19md191cGxvYWQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywKLQkJ ICAgICAgIGludCAoKnhmZXIpKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpKTsKK2ludCBpbnRl bF91Y19md191cGxvYWQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgc3RydWN0IGludGVsX2d0 ICpndCwKKwkJICAgICAgIGludCAoKnhmZXIpKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIHN0 cnVjdCBpbnRlbF9ndCAqZ3QpKTsKIGludCBpbnRlbF91Y19md19pbml0KHN0cnVjdCBpbnRlbF91 Y19mdyAqdWNfZncpOwogdm9pZCBpbnRlbF91Y19md19maW5pKHN0cnVjdCBpbnRlbF91Y19mdyAq dWNfZncpOwotdTMyIGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF91Y19mdyAq dWNfZncpOwordTMyIGludGVsX3VjX2Z3X2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF91Y19mdyAq dWNfZncsIHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwogc2l6ZV90IGludGVsX3VjX2Z3X2NvcHlf cnNhKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIHZvaWQgKmRzdCwgdTMyIG1heF9sZW4pOwog dm9pZCBpbnRlbF91Y19md19kdW1wKGNvbnN0IHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIHN0 cnVjdCBkcm1fcHJpbnRlciAqcCk7CiAKLS0gCjIuMjIuMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4