From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 4/4] drm/i915: Remove begin/finish_crtc_commit, v2. Date: Wed, 25 Sep 2019 16:59:01 +0200 Message-ID: <20190925145901.3943-4-maarten.lankhorst@linux.intel.com> References: <20190925145901.3943-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id A4E4C6E06B for ; Wed, 25 Sep 2019 14:59:10 +0000 (UTC) In-Reply-To: <20190925145901.3943-1-maarten.lankhorst@linux.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 VGhpcyBjYW4gYWxsIGJlIGRvbmUgZnJvbSB0aGUgaW50ZWxfdXBkYXRlX2NydGMgZnVuY3Rpb24u IFNwbGl0IG91dCB0aGUKcGlwZSB1cGRhdGUgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uLCBqdXN0 IGxpa2UgaXMgZG9uZSBmb3IgdGhlIHBsYW5lcy4KUHVsbCBpbiBhbGwgdGhlIGNoYW5nZXMgZG9u ZSBkdXJpbmcgZmFzdHNldCBhcyB3ZWxsLiBJdCBtYWtlcyBubyBzZW5zZQpmb3IgaXQgdG8gc3Rp bGwgZXhpc3QgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbi4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gSW5s aW5lIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZygpCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIHwgMTk3ICsrKysrKysrLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCBi Nzc1NzRjZGE2NDguLjVhOWQwNmFmOWYyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEzNiw4ICsxMzYsNiBAQCBzdGF0aWMgdm9pZCB2bHZf cHJlcGFyZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKIHN0YXRpYyB2b2lkIGNodl9wcmVwYXJl X3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwotc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19j b21taXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqKTsK LXN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICosIHN0cnVjdCBpbnRlbF9jcnRjICopOwogc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19p bml0X3NjYWxlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIHN0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwpAQCAtNDQwOSw0 NSArNDQwNyw2IEBAIHN0YXRpYyB2b2lkIGljbF9zZXRfcGlwZV9jaGlja2VuKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKQogCUk5MTVfV1JJVEUoUElQRV9DSElDS0VOKHBpcGUpLCB0bXApOwogfQog Ci1zdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAotCQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQotewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQotCS8q IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZSBtaWdodCBub3Qg YmUgY2FsbGVkLiAqLwotCWNydGMtPmJhc2UubW9kZSA9IG5ld19jcnRjX3N0YXRlLT51YXBpLm1v ZGU7Ci0KLQkvKgotCSAqIFVwZGF0ZSBwaXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVl ZGVkOiB0aGUgcmVhc29uIGZvciB0aGlzIGlzCi0JICogdGhhdCBpbiBjb21wdXRlX21vZGVfY2hh bmdlcyB3ZSBjaGVjayB0aGUgbmF0aXZlIG1vZGUgKG5vdCB0aGUgcGZpdAotCSAqIG1vZGUpIHRv IHNlZSBpZiB3ZSBjYW4gZmxpcCByYXRoZXIgdGhhbiBkbyBhIGZ1bGwgbW9kZSBzZXQuIEluIHRo ZQotCSAqIGZhc3Rib290IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUg dGhlIHBpcGVzcmMgYW5kCi0JICogcGZpdCBzdGF0ZSwgd2UnbGwgZW5kIHVwIHdpdGggYSBiaWcg ZmIgc2Nhbm5lZCBvdXQgaW50byB0aGUgd3JvbmcKLQkgKiBzaXplZCBzdXJmYWNlLgotCSAqLwot Ci0JSTkxNV9XUklURShQSVBFU1JDKGNydGMtPnBpcGUpLAotCQkgICAoKG5ld19jcnRjX3N0YXRl LT5waXBlX3NyY193IC0gMSkgPDwgMTYpIHwKLQkJICAgKG5ld19jcnRjX3N0YXRlLT5waXBlX3Ny Y19oIC0gMSkpOwotCi0JLyogb24gc2t5bGFrZSB0aGlzIGlzIGRvbmUgYnkgZGV0YWNoaW5nIHNj YWxlcnMgKi8KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Ci0JCXNrbF9kZXRhY2hf c2NhbGVycyhuZXdfY3J0Y19zdGF0ZSk7Ci0KLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5wY2hfcGZp dC5lbmFibGVkKQotCQkJc2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0ZSk7Ci0JfSBl bHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewotCQlpZiAobmV3X2NydGNfc3RhdGUt PnBjaF9wZml0LmVuYWJsZWQpCi0JCQlpcm9ubGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0 ZSk7Ci0JCWVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5wY2hfcGZpdC5lbmFibGVkKQotCQkJaXJv bmxha2VfcGZpdF9kaXNhYmxlKG9sZF9jcnRjX3N0YXRlKTsKLQl9Ci0KLQlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKLQkJaWNsX3NldF9waXBlX2NoaWNrZW4oY3J0Yyk7Ci19Ci0KIHN0 YXRpYyB2b2lkIGludGVsX2ZkaV9ub3JtYWxfdHJhaW4oc3RydWN0IGludGVsX2NydGMgKmNydGMp CiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwpAQCAtMTM3Mzks MTMgKzEzNjk4LDg4IEBAIHUzMiBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKIAlyZXR1cm4gY3J0Yy0+YmFzZS5mdW5jcy0+Z2V0X3ZibGFua19j b3VudGVyKCZjcnRjLT5iYXNlKTsKIH0KIAordm9pZCBpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVy cnVuKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CisKKwlpZiAoIUlTX0dFTihkZXZfcHJpdiwgMikpCisJ CWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIGNydGMtPnBp cGUsIHRydWUpOworCisJaWYgKGNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2RlcikgeworCQllbnVt IHBpcGUgcGNoX3RyYW5zY29kZXIgPQorCQkJaW50ZWxfY3J0Y19wY2hfdHJhbnNjb2RlcihjcnRj KTsKKworCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBw Y2hfdHJhbnNjb2RlciwgdHJ1ZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBjb21taXRfcGlwZV9j b25maWcoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAorCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOworCWJv b2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOworCisJaWYgKCFtb2Rl c2V0KSB7CisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwK KwkJICAgIG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKKwkJCWludGVsX2NvbG9yX2NvbW1p dChuZXdfY3J0Y19zdGF0ZSk7CisKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKKwkJ CXNrbF9kZXRhY2hfc2NhbGVycyhuZXdfY3J0Y19zdGF0ZSk7CisKKwkJaWYgKG5ld19jcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSkgeworCQkJLyogZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2Fj eV9tb2Rlc2V0X3N0YXRlIG1pZ2h0IG5vdCBiZSBjYWxsZWQuICovCisJCQljcnRjLT5iYXNlLm1v ZGUgPSBuZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOworCisJCQkvKgorCQkJICogVXBkYXRlIHBp cGUgc2l6ZSBhbmQgYWRqdXN0IGZpdHRlciBpZiBuZWVkZWQ6IHRoZSByZWFzb24gZm9yIHRoaXMg aXMKKwkJCSAqIHRoYXQgaW4gY29tcHV0ZV9tb2RlX2NoYW5nZXMgd2UgY2hlY2sgdGhlIG5hdGl2 ZSBtb2RlIChub3QgdGhlIHBmaXQKKwkJCSAqIG1vZGUpIHRvIHNlZSBpZiB3ZSBjYW4gZmxpcCBy YXRoZXIgdGhhbiBkbyBhIGZ1bGwgbW9kZSBzZXQuIEluIHRoZQorCQkJICogZmFzdGJvb3QgY2Fz ZSwgd2UnbGwgZmxpcCwgYnV0IGlmIHdlIGRvbid0IHVwZGF0ZSB0aGUgcGlwZXNyYyBhbmQKKwkJ CSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVuZCB1cCB3aXRoIGEgYmlnIGZiIHNjYW5uZWQgb3V0IGlu dG8gdGhlIHdyb25nCisJCQkgKiBzaXplZCBzdXJmYWNlLgorCQkJICovCisKKwkJCUk5MTVfV1JJ VEUoUElQRVNSQyhjcnRjLT5waXBlKSwKKwkJCQkgICgobmV3X2NydGNfc3RhdGUtPnBpcGVfc3Jj X3cgLSAxKSA8PCAxNikgfAorCQkJCSAgKG5ld19jcnRjX3N0YXRlLT5waXBlX3NyY19oIC0gMSkp OworCisJCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CisJCQkJLyoKKwkJCQkgKiBl bmFibGUgcGlwZSBzY2FsZXIgaGVyZSBpZiBuZWVkZWQsIGlmCisJCQkJICogaXQncyBkaXNhYmxl ZCwgdGhhdCdzIGRvbmUgYnkKKwkJCQkgKiBza2xfZGV0YWNoX3NjYWxlcnMoKSBhYm92ZS4KKwkJ CQkgKi8KKwkJCQlza3lsYWtlX3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsKKwkJCX0gZWxz ZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKKwkJCQlpZiAoIW5ld19jcnRjX3N0YXRl LT5wY2hfcGZpdC5lbmFibGVkKQorCQkJCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUob2xkX2NydGNf c3RhdGUpOworCQkJCWVsc2UKKwkJCQkJaXJvbmxha2VfcGZpdF9lbmFibGUobmV3X2NydGNfc3Rh dGUpOworCQkJfQorCisJCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKKwkJCQlpY2xf c2V0X3BpcGVfY2hpY2tlbihjcnRjKTsKKwkJfQorCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKKwkJCWJkd19zZXRfcGlwZW1pc2MobmV3 X2NydGNfc3RhdGUpOworCX0KKworCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRl X3dhdGVybWFya3MpCisJCWRldl9wcml2LT5kaXNwbGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJr cyhzdGF0ZSwKKwkJCQkJCQkgICBuZXdfY3J0Y19zdGF0ZSk7Cit9CisKIHN0YXRpYyB2b2lkIGlu dGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgICAgc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq bmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNl LmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFz ZS5kZXYpOwogCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOwog CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KIAkJaW50ZWxfYXRv bWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsCkBAIC0xMzc2OSwxNCArMTM4MDMsMjEgQEAg c3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJ ZWxzZSBpZiAobmV3X3BsYW5lX3N0YXRlKQogCQlpbnRlbF9mYmNfZW5hYmxlKGNydGMsIG5ld19j cnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwogCi0JaW50ZWxfYmVnaW5fY3J0Y19jb21taXQo c3RhdGUsIGNydGMpOworCS8qIFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBv cGVyYXRpb24gKi8KKwlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0ZSk7CisK Kwljb21taXRfcGlwZV9jb25maWcoc3RhdGUsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0 ZSk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQlza2xfdXBkYXRlX3BsYW5l c19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKIAllbHNlCiAJCWk5eHhfdXBkYXRlX3BsYW5lc19vbl9j cnRjKHN0YXRlLCBjcnRjKTsKIAotCWludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdGF0ZSwgY3J0 Yyk7CisJaW50ZWxfcGlwZV91cGRhdGVfZW5kKG5ld19jcnRjX3N0YXRlKTsKKworCWlmIChuZXdf Y3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgJiYgIW1vZGVzZXQgJiYKKwkgICAgb2xkX2NydGNfc3Rh dGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKKwkJ aW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7CiB9CiAK IHN0YXRpYyB2b2lkIGludGVsX29sZF9jcnRjX3N0YXRlX2Rpc2FibGVzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLApAQCAtMTQ1NzMsNzIgKzE0NjE0LDYgQEAgc2tsX21heF9zY2Fs ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gbWF4 X3NjYWxlOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCQkgICAgc3RydWN0IGludGVsX2NydGMgKmNy dGMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0K LQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0Jc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlID0KLQkJaW50ZWxfYXRvbWljX2dldF9u ZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNl dChuZXdfY3J0Y19zdGF0ZSk7Ci0KLQkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBj b21taXQgb3BlcmF0aW9uICovCi0JaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQobmV3X2NydGNfc3Rh dGUpOwotCi0JaWYgKG1vZGVzZXQpCi0JCWdvdG8gb3V0OwotCi0JaWYgKG5ld19jcnRjX3N0YXRl LT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCB8fAotCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRl X3BpcGUpCi0JCWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Ci0KLQlpZiAobmV3 X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQotCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcob2xk X2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKLQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkpCi0JCXNrbF9kZXRhY2hfc2NhbGVycyhuZXdfY3J0Y19zdGF0ZSk7Ci0KLQlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCi0JCWJk d19zZXRfcGlwZW1pc2MobmV3X2NydGNfc3RhdGUpOwotCi1vdXQ6Ci0JaWYgKGRldl9wcml2LT5k aXNwbGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJrcykKLQkJZGV2X3ByaXYtPmRpc3BsYXkuYXRv bWljX3VwZGF0ZV93YXRlcm1hcmtzKHN0YXRlLAotCQkJCQkJCSAgIG5ld19jcnRjX3N0YXRlKTsK LX0KLQotdm9pZCBpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAotCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCi17Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Ci0KLQlpZiAoIUlTX0dFTihkZXZfcHJpdiwgMikpCi0JCWludGVsX3NldF9jcHVfZmlmb191 bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIGNydGMtPnBpcGUsIHRydWUpOwotCi0JaWYgKGNy dGNfc3RhdGUtPmhhc19wY2hfZW5jb2RlcikgewotCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIg PQotCQkJaW50ZWxfY3J0Y19wY2hfdHJhbnNjb2RlcihjcnRjKTsKLQotCQlpbnRlbF9zZXRfcGNo X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwY2hfdHJhbnNjb2RlciwgdHJ1ZSk7 Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKLXsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQotCQlpbnRl bF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQotCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKLQotCWludGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19z dGF0ZSk7Ci0KLQlpZiAobmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmCi0JICAgICFuZWVk c19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+aHcubW9k ZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQotCQlpbnRlbF9jcnRj X2FybV9maWZvX3VuZGVycnVuKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKLX0KLQogLyoqCiAgKiBp bnRlbF9wbGFuZV9kZXN0cm95IC0gZGVzdHJveSBhIHBsYW5lCiAgKiBAcGxhbmU6IHBsYW5lIHRv IGRlc3Ryb3kKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4