From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/3] drm/i915: Convert intel_tv connector properties to atomic, v2. Date: Mon, 13 Mar 2017 17:10:28 +0100 Message-ID: <55c80a55-c155-afa8-f244-20d1c4775231@linux.intel.com> References: <1489064777-5460-1-git-send-email-maarten.lankhorst@linux.intel.com> <1489064777-5460-2-git-send-email-maarten.lankhorst@linux.intel.com> <20170309173602.GU31595@intel.com> <20170313092905.GZ31595@intel.com> <20170313105531.GH31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 83C9D6E554 for ; Mon, 13 Mar 2017 16:10:30 +0000 (UTC) In-Reply-To: <20170313105531.GH31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QXMgYSBwcm9vZiBvZiBjb25jZXB0LCBmaXJzdCB0cnkgdG8gY29udmVydCBpbnRlbF90diwgd2hp Y2ggaXMgYSByYXJlbHkKdXNlZCBjb25uZWN0b3IuIEl0IGhhcyA1IHByb3BlcnRpZXMsIHR2IGZv cm1hdCBhbmQgNCBtYXJnaW5zLgoKSSdtIGxlc3MgY2VydGFpbiBhYm91dCB0aGUgc3RhdGUgYmVo YXZpb3IgaXRzZWxmLCBzaG91bGQgd2UgcGFzcyBhIHNpemUKcGFyYW1ldGVyIHRvIGludGVsX2Nv bm5lY3Rvcl9hbGxvYyBpbnN0ZWFkLCBzbyBkdXBsaWNhdGVfc3RhdGUKY2FuIGJlIGRvbmUgZ2xv YmFsbHkgaWYgaXQgY2FuIGJlIGJsaW5kbHkgY29waWVkPwoKQ2FuIHdlIGFsc28gaGF2ZSBhIGF0 b21pY19jaGVjayBmdW5jdGlvbiBmb3IgY29ubmVjdG9ycywgc28gdGhlCmNydGNfc3RhdGUtPmNv bm5lY3RvcnNfY2hhbmdlZCBjYW4gYmUgc2V0IHRoZXJlPyBJdCB3b3VsZCBiZSBjbGVhbmVyCmFu ZCBtb3JlIGF0b21pYy1saWtlLgoKVG8gbWF0Y2ggdGhlIGxlZ2FjeSBiZWhhdmlvciwgZm9ybWF0 IGNhbiBiZSBjaGFuZ2VkIGJ5IHByb2JpbmcganVzdCBsaWtlCmluIGxlZ2FjeSBtb2RlLgoKQ2hh bmdlcyBzaW5jZSB2MToKLSBBZGQgaW50ZWxfZW5jb2Rlci0+c3dhcF9zdGF0ZSB0byBhbGxvdyB1 cGRhdGluZyBjb25uZWN0b3Igc3RhdGUuCi0gQWRkIGludGVsX3R2LT5mb3JtYXQgZm9yIGRldGVj dF9tb2RlIGFuZCBtb2RlX3ZhbGlkLCB1cGRhdGVkIG9uIGF0b21pYyBjb21taXQuCgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAxNSArKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA0ICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3R2LmMgICAgICB8IDI1OSArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNzYgaW5zZXJ0aW9ucygrKSwgMTAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhYzI1YzliYzhi ODEuLjE4YjdlNzU0NmVlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAt MTI5NTQsNiArMTI5NTQsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3RyYWNrX2Zicyhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJICB0b19pbnRlbF9wbGFuZShwbGFu ZSktPmZyb250YnVmZmVyX2JpdCk7CiB9CiAKK3N0YXRpYyB2b2lkIHN3YXBfY29ubmVjdG9yX3N0 YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9z dGF0ZTsKKwlpbnQgaTsKKworCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUs IGNvbm5lY3RvciwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubiA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOworCisJCWlmIChjb25uLT5z d2FwX3N0YXRlKQorCQkJY29ubi0+c3dhcF9zdGF0ZShjb25uLCBuZXdfY29ubl9zdGF0ZSk7CisJ fQorfQorCiAvKioKICAqIGludGVsX2F0b21pY19jb21taXQgLSBjb21taXQgdmFsaWRhdGVkIHN0 YXRlIG9iamVjdAogICogQGRldjogRFJNIGRldmljZQpAQCAtMTMwMTIsNiArMTMwMjYsNyBAQCBz dGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ ZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwgPSBpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKIAkJ ZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCA9IGludGVsX3N0YXRlLT5jZGNsay5hY3R1YWw7CiAJfQor CXN3YXBfY29ubmVjdG9yX3N0YXRlKHN0YXRlKTsKIAogCWRybV9hdG9taWNfc3RhdGVfZ2V0KHN0 YXRlKTsKIAlJTklUX1dPUksoJnN0YXRlLT5jb21taXRfd29yaywKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKaW5kZXggOTM3NjIzZmY2ZDdjLi5iN2I5Mzc5OWQyODggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCkBAIC0zMDcsNiArMzA3LDEwIEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3Igewog CSAqIGFuZCBhY3RpdmUgKGkuZS4gZHBtcyBPTiBzdGF0ZSkuICovCiAJYm9vbCAoKmdldF9od19z dGF0ZSkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqKTsKIAorCS8qIFVwZGF0ZSBkZXZpY2Ugc3Rh dGUgd2l0aCB0aGUgbmV3IGF0b21pYyBzdGF0ZS4gKi8KKwl2b2lkICgqc3dhcF9zdGF0ZSkoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqKTsKKwogCS8qIFBhbmVsIGluZm8gZm9yIGVEUCBhbmQgTFZEUyAqLwogCXN0cnVjdCBpbnRl bF9wYW5lbCBwYW5lbDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKaW5kZXggNmVkMWEzY2U0N2I3 Li5iODdkNTFlNjE5NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwpAQCAtNDgsOCArNDgsNiBA QCBzdHJ1Y3QgaW50ZWxfdHYgewogCXN0cnVjdCBpbnRlbF9lbmNvZGVyIGJhc2U7CiAKIAlpbnQg dHlwZTsKLQljb25zdCBjaGFyICp0dl9mb3JtYXQ7Ci0JaW50IG1hcmdpbls0XTsKIAl1MzIgc2F2 ZV9UVl9IX0NUTF8xOwogCXUzMiBzYXZlX1RWX0hfQ1RMXzI7CiAJdTMyIHNhdmVfVFZfSF9DVExf MzsKQEAgLTgzLDggKzgxLDIwIEBAIHN0cnVjdCBpbnRlbF90diB7CiAKIAl1MzIgc2F2ZV9UVl9E QUM7CiAJdTMyIHNhdmVfVFZfQ1RMOworCisJaW50IGZvcm1hdDsKK307CisKK3N0cnVjdCBpbnRl bF90dl9jb25uZWN0b3Jfc3RhdGUgeworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIGJhc2U7 CisKKwlpbnQgZm9ybWF0OworCWludCBtYXJnaW5bNF07CiB9OwogCisjZGVmaW5lIHRvX2ludGVs X3R2X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSkgXAorCWNvbnRhaW5lcl9vZigoc3RhdGUpLCBzdHJ1 Y3QgaW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlLCBiYXNlKQorCiBzdHJ1Y3QgdmlkZW9fbGV2ZWxz IHsKIAl1MTYgYmxhbmssIGJsYWNrOwogCXU4IGJ1cnN0OwpAQCAtODQ4LDYgKzg1OCwxNyBAQCBp bnRlbF90dl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGVudW0g cGlwZSAqcGlwZSkKIH0KIAogc3RhdGljIHZvaWQKK2ludGVsX3R2X3N3YXBfc3RhdGUoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUpCit7CisJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVs X2F0dGFjaGVkX3R2KCZjb25uZWN0b3ItPmJhc2UpOworCXN0cnVjdCBpbnRlbF90dl9jb25uZWN0 b3Jfc3RhdGUgKnR2X3N0YXRlID0KKwkJdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5f c3RhdGUpOworCisJaW50ZWxfdHYtPmZvcm1hdCA9IHR2X3N0YXRlLT5mb3JtYXQ7Cit9CisKK3N0 YXRpYyB2b2lkCiBpbnRlbF9lbmFibGVfdHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBAIC04NzMsMzIgKzg5NCwyNSBAQCBpbnRlbF9k aXNhYmxlX3R2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCUk5MTVfV1JJVEUoVFZf Q1RMLCBJOTE1X1JFQUQoVFZfQ1RMKSAmIH5UVl9FTkNfRU5BQkxFKTsKIH0KIAotc3RhdGljIGNv bnN0IHN0cnVjdCB0dl9tb2RlICoKLWludGVsX3R2X21vZGVfbG9va3VwKGNvbnN0IGNoYXIgKnR2 X2Zvcm1hdCkKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHZfbW9kZSAqaW50ZWxfdHZfbW9kZV9maW5k KHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCWludCBpOwotCi0J Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodHZfbW9kZXMpOyBpKyspIHsKLQkJY29uc3Qgc3Ry dWN0IHR2X21vZGUgKnR2X21vZGUgPSAmdHZfbW9kZXNbaV07CisJaW50IGZvcm1hdCA9IHRvX2lu dGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKS0+Zm9ybWF0OwogCi0JCWlmICghc3Ry Y21wKHR2X2Zvcm1hdCwgdHZfbW9kZS0+bmFtZSkpCi0JCQlyZXR1cm4gdHZfbW9kZTsKLQl9Ci0J cmV0dXJuIE5VTEw7CisJcmV0dXJuICZ0dl9tb2Rlc1tmb3JtYXRdOwogfQogCi1zdGF0aWMgY29u c3Qgc3RydWN0IHR2X21vZGUgKgotaW50ZWxfdHZfbW9kZV9maW5kKHN0cnVjdCBpbnRlbF90diAq aW50ZWxfdHYpCitzdGF0aWMgY29uc3Qgc3RydWN0IHR2X21vZGUgKmludGVsX3R2X21vZGVfZmlu ZF9jb21taXR0ZWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlyZXR1cm4g aW50ZWxfdHZfbW9kZV9sb29rdXAoaW50ZWxfdHYtPnR2X2Zvcm1hdCk7CisJaW50IGZvcm1hdCA9 IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3RvciktPmZvcm1hdDsKKworCXJldHVybiAmdHZfbW9k ZXNbZm9ybWF0XTsKIH0KIAogc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCiBpbnRlbF90dl9t b2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0g aW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsKLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZf bW9kZSA9IGludGVsX3R2X21vZGVfZmluZChpbnRlbF90dik7CisJY29uc3Qgc3RydWN0IHR2X21v ZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmRfY29tbWl0dGVkKGNvbm5lY3Rvcik7CiAJ aW50IG1heF9kb3RjbGsgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KS0+bWF4X2RvdGNsa19mcmVx OwogCiAJaWYgKG1vZGUtPmNsb2NrID4gbWF4X2RvdGNsaykKQEAgLTkyNSw4ICs5MzksNyBAQCBp bnRlbF90dl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYg PSBlbmNfdG9fdHYoZW5jb2Rlcik7Ci0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBp bnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOworCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9t b2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5fc3RhdGUpOwogCiAJaWYgKCF0dl9tb2RlKQog CQlyZXR1cm4gZmFsc2U7CkBAIC0xMDMyLDcgKzEwNDUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90 dl9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNl LmNydGMpOwogCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7 Ci0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50 ZWxfdHYpOworCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9m aW5kKGNvbm5fc3RhdGUpOwogCXUzMiB0dl9jdGw7CiAJdTMyIHNjY3RsMSwgc2NjdGwyLCBzY2N0 bDM7CiAJaW50IGksIGo7CkBAIC0xMDQxLDYgKzEwNTQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90 dl9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWJvb2wgYnVyc3Rf ZW5hOwogCWludCB4cG9zID0gMHgwLCB5cG9zID0gMHgwOwogCXVuc2lnbmVkIGludCB4c2l6ZSwg eXNpemU7CisJc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfc3RhdGUgPQorCQl0 b19pbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAKIAlpZiAoIXR2X21vZGUp CiAJCXJldHVybjsJLyogY2FuJ3QgaGFwcGVuIChtb2RlX3ByZXBhcmUgcHJldmVudHMgdGhpcykg Ki8KQEAgLTExMzUsMTIgKzExNTAsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlCiAJCXlzaXplID0gMip0dl9t b2RlLT5uYnJfZW5kICsgMTsKIAotCXhwb3MgKz0gaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5f TEVGVF07Ci0JeXBvcyArPSBpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdOwotCXhzaXpl IC09IChpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSArCi0JCSAgaW50ZWxfdHYtPm1h cmdpbltUVl9NQVJHSU5fUklHSFRdKTsKLQl5c2l6ZSAtPSAoaW50ZWxfdHYtPm1hcmdpbltUVl9N QVJHSU5fVE9QXSArCi0JCSAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSk7CisJ eHBvcyArPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXTsKKwl5cG9zICs9IHR2X3N0 YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1RPUF07CisJeHNpemUgLT0gKHR2X3N0YXRlLT5tYXJnaW5b VFZfTUFSR0lOX0xFRlRdICsKKwkJICB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0p OworCXlzaXplIC09ICh0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICsKKwkJICB0dl9z dGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dKTsKIAlJOTE1X1dSSVRFKFRWX1dJTl9QT1Ms ICh4cG9zPDwxNil8eXBvcyk7CiAJSTkxNV9XUklURShUVl9XSU5fU0laRSwgKHhzaXplPDwxNil8 eXNpemUpOwogCkBAIC0xMjg4LDcgKzEzMDMsNyBAQCBpbnRlbF90dl9kZXRlY3RfdHlwZShzdHJ1 Y3QgaW50ZWxfdHYgKmludGVsX3R2LAogc3RhdGljIHZvaWQgaW50ZWxfdHZfZmluZF9iZXR0ZXJf Zm9ybWF0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGludGVs X3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Ci0JY29uc3Qgc3Ry dWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOworCWNv bnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5lY3Rv ci0+c3RhdGUpOwogCWludCBpOwogCiAJaWYgKChpbnRlbF90di0+dHlwZSA9PSBEUk1fTU9ERV9D T05ORUNUT1JfQ29tcG9uZW50KSA9PQpAQCAtMTMwNCw5ICsxMzE5LDggQEAgc3RhdGljIHZvaWQg aW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiAJCQlicmVhazsKIAl9CiAKLQlpbnRlbF90di0+dHZfZm9ybWF0ID0gdHZfbW9kZS0+bmFt ZTsKLQlkcm1fb2JqZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLAotCQlj b25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSwgaSk7CisJdG9faW50 ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5lY3Rvci0+c3RhdGUpLT5mb3JtYXQgPSBpOworCWlu dGVsX2F0dGFjaGVkX3R2KGNvbm5lY3RvciktPmZvcm1hdCA9IGk7CiB9CiAKIC8qKgpAQCAtMTM0 NCwxOCArMTM1OCwxNyBAQCBpbnRlbF90dl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwgYm9vbCBmb3JjZSkKIAkJfSBlbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3Rh dHVzX3Vua25vd247CiAKKwkJaWYgKHN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3Rl ZCkgeworCQkJaW50ZWxfdHYtPnR5cGUgPSB0eXBlOworCQkJaW50ZWxfdHZfZmluZF9iZXR0ZXJf Zm9ybWF0KGNvbm5lY3Rvcik7CisJCX0KKwogCQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgp OwogCQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Ci0JfSBlbHNlCi0JCXJldHVybiBj b25uZWN0b3ItPnN0YXR1czsKIAotCWlmIChzdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25u ZWN0ZWQpCiAJCXJldHVybiBzdGF0dXM7Ci0KLQlpbnRlbF90di0+dHlwZSA9IHR5cGU7Ci0JaW50 ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KGNvbm5lY3Rvcik7Ci0KLQlyZXR1cm4gY29ubmVjdG9y X3N0YXR1c19jb25uZWN0ZWQ7CisJfSBlbHNlCisJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnB1dF9yZXMgewpAQCAtMTM3NSwxMiArMTM4OCw5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5wdXRfcmVzIHsKICAqIENob3NlIHByZWZlcnJlZCBt b2RlICBhY2NvcmRpbmcgdG8gbGluZSBudW1iZXIgb2YgVFYgZm9ybWF0CiAgKi8KIHN0YXRpYyB2 b2lkCi1pbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKK2ludGVsX3R2X2Nob3NlX3ByZWZlcnJlZF9tb2Rlcyhjb25zdCBzdHJ1Y3Qg dHZfbW9kZSAqdHZfbW9kZSwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZV9wdHIpCiB7Ci0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2 KGNvbm5lY3Rvcik7Ci0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9t b2RlX2ZpbmQoaW50ZWxfdHYpOwotCiAJaWYgKHR2X21vZGUtPm5icl9lbmQgPCA0ODAgJiYgbW9k ZV9wdHItPnZkaXNwbGF5ID09IDQ4MCkKIAkJbW9kZV9wdHItPnR5cGUgfD0gRFJNX01PREVfVFlQ RV9QUkVGRVJSRUQ7CiAJZWxzZSBpZiAodHZfbW9kZS0+bmJyX2VuZCA+IDQ4MCkgewpAQCAtMTQw Myw4ICsxNDEzLDcgQEAgc3RhdGljIGludAogaW50ZWxfdHZfZ2V0X21vZGVzKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGVf cHRyOwotCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRhY2hlZF90dihjb25u ZWN0b3IpOwotCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9m aW5kKGludGVsX3R2KTsKKwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2 X21vZGVfZmluZF9jb21taXR0ZWQoY29ubmVjdG9yKTsKIAlpbnQgaiwgY291bnQgPSAwOwogCXU2 NCB0bXA7CiAKQEAgLTE0NDcsNyArMTQ1Niw3IEBAIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQltb2RlX3B0ci0+Y2xvY2sgPSAoaW50KSB0bXA7 CiAKIAkJbW9kZV9wdHItPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUjsKLQkJaW50ZWxfdHZf Y2hvc2VfcHJlZmVycmVkX21vZGVzKGNvbm5lY3RvciwgbW9kZV9wdHIpOworCQlpbnRlbF90dl9j aG9zZV9wcmVmZXJyZWRfbW9kZXModHZfbW9kZSwgbW9kZV9wdHIpOwogCQlkcm1fbW9kZV9wcm9i ZWRfYWRkKGNvbm5lY3RvciwgbW9kZV9wdHIpOwogCQljb3VudCsrOwogCX0KQEAgLTE0NjIsNTYg KzE0NzEsOTcgQEAgaW50ZWxfdHZfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQogCWtmcmVlKGNvbm5lY3Rvcik7CiB9CiAKLQogc3RhdGljIGludAotaW50ZWxfdHZfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BlcnR5LAotCQkgICAgICB1aW50NjRfdCB2YWwpCitpbnRlbF90dl9hdG9taWNf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQkJICAgICBzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wZXJ0eSwKKwkJCSAgICAgdWludDY0X3QgdmFsKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVs X3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBpbnRlbF90di0+YmFzZS5iYXNlLmNydGM7Ci0JaW50IHJldCA9IDA7CisKKwlzdHJ1Y3Qg aW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlICp0dl9zdGF0ZSA9CisJCXRvX2ludGVsX3R2X2Nvbm5l Y3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAlib29sIGNoYW5nZWQgPSBmYWxzZTsKIAotCXJldCA9 IGRybV9vYmplY3RfcHJvcGVydHlfc2V0X3ZhbHVlKCZjb25uZWN0b3ItPmJhc2UsIHByb3BlcnR5 LCB2YWwpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIG91dDsKLQotCWlmIChwcm9wZXJ0eSA9PSBk ZXYtPm1vZGVfY29uZmlnLnR2X2xlZnRfbWFyZ2luX3Byb3BlcnR5ICYmCi0JCWludGVsX3R2LT5t YXJnaW5bVFZfTUFSR0lOX0xFRlRdICE9IHZhbCkgewotCQlpbnRlbF90di0+bWFyZ2luW1RWX01B UkdJTl9MRUZUXSA9IHZhbDsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X3JpZ2h0X21hcmdpbl9wcm9wZXJ0eSAmJgotCQlpbnRl bF90di0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0gIT0gdmFsKSB7Ci0JCWludGVsX3R2LT5tYXJn aW5bVFZfTUFSR0lOX1JJR0hUXSA9IHZhbDsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JfSBlbHNlIGlm IChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHkgJiYK LQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSAhPSB2YWwpIHsKLQkJaW50ZWxfdHYt Pm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IHZhbDsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X2JvdHRvbV9tYXJnaW5fcHJvcGVy dHkgJiYKLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSAhPSB2YWwpIHsKLQkJ aW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSA9IHZhbDsKLQkJY2hhbmdlZCA9IHRy dWU7CisJaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5fcHJv cGVydHkpIHsKKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdICE9 IHZhbDsKKworCQl0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSA9IHZhbDsKKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3Bl cnR5KSB7CisJCWNoYW5nZWQgPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0gIT0g dmFsOworCisJCXR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9IHZhbDsKKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21hcmdpbl9wcm9wZXJ0 eSkgeworCQljaGFuZ2VkID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSAhPSB2YWw7 CisKKwkJdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IHZhbDsKKwl9IGVsc2UgaWYg KHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfYm90dG9tX21hcmdpbl9wcm9wZXJ0eSkg eworCQljaGFuZ2VkID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSAhPSB2YWw7 CisKKwkJdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSA9IHZhbDsKIAl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSkgewogCQlp ZiAodmFsID49IEFSUkFZX1NJWkUodHZfbW9kZXMpKSB7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJ Z290byBvdXQ7CisJCQlEUk1fREVCVUdfQVRPTUlDKCJ2YWx1ZSAlbGx1IG91dCBvZiB0dl9tb2Rl cyBhcnJheSBib3VuZHNcbiIsIHZhbCk7CisKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9Ci0JCWlm ICghc3RyY21wKGludGVsX3R2LT50dl9mb3JtYXQsIHR2X21vZGVzW3ZhbF0ubmFtZSkpCi0JCQln b3RvIG91dDsKIAotCQlpbnRlbF90di0+dHZfZm9ybWF0ID0gdHZfbW9kZXNbdmFsXS5uYW1lOwot CQljaGFuZ2VkID0gdHJ1ZTsKKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5mb3JtYXQgIT0gdmFsOwor CQl0dl9zdGF0ZS0+Zm9ybWF0ID0gdmFsOworCX0gZWxzZSB7CisJCURSTV9ERUJVR19BVE9NSUMo IlVua25vd24gYXRvbWljIHByb3BlcnR5ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7CisJCXJldHVy biAtRUlOVkFMOworCX0KKworCS8qIFRyaWdnZXIgYSBtb2Rlc2V0IHdoZW4gY29ubmVjdG9yIHBy b3BlcnRpZXMgYXJlIGNoYW5nZWQuICovCisJaWYgKGNoYW5nZWQgJiYgY29ubl9zdGF0ZS0+Y3J0 YykgeworCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQkJZHJtX2F0b21p Y19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShjb25uX3N0YXRlLT5zdGF0ZSwKKwkJCQkJCQkgICBj b25uX3N0YXRlLT5jcnRjKTsKKworCQljcnRjX3N0YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgPSB0 cnVlOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraW50ZWxfdHZfYXRvbWljX2dl dF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCSAgICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsCisJCQkJICAgIHN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BlcnR5LAorCQkJCSAgICB1aW50NjRfdCAqdmFsKQoreworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKKwlzdHJ1Y3QgaW50ZWxfdHZfY29ubmVj dG9yX3N0YXRlICp0dl9zdGF0ZSA9CisJCXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0 ZSk7CisKKwlpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl9sZWZ0X21hcmdpbl9w cm9wZXJ0eSkKKwkJKnZhbCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdOworCWVs c2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3Bl cnR5KQorCQkqdmFsID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdOworCWVsc2Ug aWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21hcmdpbl9wcm9wZXJ0eSkK KwkJKnZhbCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1RPUF07CisJZWxzZSBpZiAocHJv cGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl9ib3R0b21fbWFyZ2luX3Byb3BlcnR5KQorCQkq dmFsID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXTsKKwllbHNlIGlmIChwcm9w ZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X21vZGVfcHJvcGVydHkpIHsKKwkJKnZhbCA9IHR2 X3N0YXRlLT5mb3JtYXQ7CiAJfSBlbHNlIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7 CisJCURSTV9ERUJVR19BVE9NSUMoIlVua25vd24gYXRvbWljIHByb3BlcnR5ICVzXG4iLCBwcm9w ZXJ0eS0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChjaGFuZ2VkICYmIGNy dGMpCi0JCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNydGMpOwotb3V0OgotCXJldHVybiByZXQ7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqCitp bnRlbF90dl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK K3sKKwlzdHJ1Y3QgaW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlICpzdGF0ZTsKKworCXN0YXRlID0g a21lbWR1cCgmY29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwor CWlmIChzdGF0ZSkKKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0 YXRlKGNvbm5lY3RvciwgJnN0YXRlLT5iYXNlKTsKKworCXJldHVybiAmc3RhdGUtPmJhc2U7CiB9 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25u ZWN0b3JfZnVuY3MgPSB7CkBAIC0xNTIwLDExICsxNTcwLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmxh dGVfcmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfcmVnaXN0ZXIsCiAJLmVhcmx5X3VucmVnaXN0 ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5yZWdpc3RlciwKIAkuZGVzdHJveSA9IGludGVsX3R2X2Rl c3Ryb3ksCi0JLnNldF9wcm9wZXJ0eSA9IGludGVsX3R2X3NldF9wcm9wZXJ0eSwKLQkuYXRvbWlj X2dldF9wcm9wZXJ0eSA9IGludGVsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5LAorCS5z ZXRfcHJvcGVydHkgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jfc2V0X3Byb3BlcnR5LAor CS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gaW50ZWxfdHZfYXRvbWljX3NldF9wcm9wZXJ0eSwKKwku YXRvbWljX2dldF9wcm9wZXJ0eSA9IGludGVsX3R2X2F0b21pY19nZXRfcHJvcGVydHksCiAJLmZp bGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCiAJLmF0 b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lf c3RhdGUsCi0JLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25u ZWN0b3JfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxf dHZfZHVwbGljYXRlX3N0YXRlLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2hlbHBlcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewpAQCAt MTU0Nyw2ICsxNTk4LDcgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJdTMyIHR2X2RhY19vbiwgdHZfZGFjX29mZiwgc2F2ZV90dl9kYWM7CiAJY29u c3QgY2hhciAqdHZfZm9ybWF0X25hbWVzW0FSUkFZX1NJWkUodHZfbW9kZXMpXTsKIAlpbnQgaSwg aW5pdGlhbF9tb2RlID0gMDsKKwlzdHJ1Y3QgaW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlICpzdGF0 ZTsKIAogCWlmICgoSTkxNV9SRUFEKFRWX0NUTCkgJiBUVl9GVVNFX1NUQVRFX01BU0spID09IFRW X0ZVU0VfU1RBVEVfRElTQUJMRUQpCiAJCXJldHVybjsKQEAgLTE1ODAsMTYgKzE2MzIsMTcgQEAg aW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXJldHVy bjsKIAogCWludGVsX3R2ID0ga3phbGxvYyhzaXplb2YoKmludGVsX3R2KSwgR0ZQX0tFUk5FTCk7 Ci0JaWYgKCFpbnRlbF90dikgewotCQlyZXR1cm47Ci0JfQotCi0JaW50ZWxfY29ubmVjdG9yID0g aW50ZWxfY29ubmVjdG9yX2FsbG9jKCk7Ci0JaWYgKCFpbnRlbF9jb25uZWN0b3IpIHsKKwlpbnRl bF9jb25uZWN0b3IgPSBremFsbG9jKHNpemVvZigqaW50ZWxfY29ubmVjdG9yKSwgR0ZQX0tFUk5F TCk7CisJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWludGVsX3R2IHx8ICFpbnRlbF9jb25uZWN0b3IgfHwgIXN0YXRlKSB7CisJCWtmcmVlKGludGVs X2Nvbm5lY3Rvcik7CisJCWtmcmVlKHN0YXRlKTsKIAkJa2ZyZWUoaW50ZWxfdHYpOwogCQlyZXR1 cm47CiAJfQogCisJX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoJmludGVsX2Nv bm5lY3Rvci0+YmFzZSwgJnN0YXRlLT5iYXNlKTsKKwogCWludGVsX2VuY29kZXIgPSAmaW50ZWxf dHYtPmJhc2U7CiAJY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKIApAQCAtMTYx Nyw2ICsxNjcwLDcgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJaW50ZWxfZW5jb2Rlci0+ZGlzYWJsZSA9IGludGVsX2Rpc2FibGVfdHY7CiAJaW50 ZWxfZW5jb2Rlci0+Z2V0X2h3X3N0YXRlID0gaW50ZWxfdHZfZ2V0X2h3X3N0YXRlOwogCWludGVs X2Nvbm5lY3Rvci0+Z2V0X2h3X3N0YXRlID0gaW50ZWxfY29ubmVjdG9yX2dldF9od19zdGF0ZTsK KwlpbnRlbF9jb25uZWN0b3ItPnN3YXBfc3RhdGUgPSBpbnRlbF90dl9zd2FwX3N0YXRlOwogCiAJ aW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGludGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5j b2Rlcik7CiAKQEAgLTE2MjksMTIgKzE2ODMsMTMgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxfdHYtPnR5cGUgPSBEUk1fTU9ERV9DT05O RUNUT1JfVW5rbm93bjsKIAogCS8qIEJJT1MgbWFyZ2luIHZhbHVlcyAqLwotCWludGVsX3R2LT5t YXJnaW5bVFZfTUFSR0lOX0xFRlRdID0gNTQ7Ci0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5f VE9QXSA9IDM2OwotCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9IDQ2OwotCWlu dGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0gPSAzNzsKKwlzdGF0ZS0+bWFyZ2luW1RW X01BUkdJTl9MRUZUXSA9IDU0OworCXN0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1RPUF0gPSAzNjsK KwlzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0gPSA0NjsKKwlzdGF0ZS0+bWFyZ2luW1RW X01BUkdJTl9CT1RUT01dID0gMzc7CiAKLQlpbnRlbF90di0+dHZfZm9ybWF0ID0gdHZfbW9kZXNb aW5pdGlhbF9tb2RlXS5uYW1lOworCXN0YXRlLT5mb3JtYXQgPSBpbml0aWFsX21vZGU7CisJaW50 ZWxfdHYtPmZvcm1hdCA9IGluaXRpYWxfbW9kZTsKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2Fk ZChjb25uZWN0b3IsICZpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKIAljb25uZWN0 b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7CkBAIC0xNjQ4LDE3ICsxNzAzLDE3IEBAIGlu dGVsX3R2X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJCSAgICAg IHR2X2Zvcm1hdF9uYW1lcyk7CiAKIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVj dG9yLT5iYXNlLCBkZXYtPm1vZGVfY29uZmlnLnR2X21vZGVfcHJvcGVydHksCi0JCQkJICAgaW5p dGlhbF9tb2RlKTsKKwkJCQkgICBzdGF0ZS0+Zm9ybWF0KTsKIAlkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfbGVm dF9tYXJnaW5fcHJvcGVydHksCi0JCQkJICAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVG VF0pOworCQkJCSAgIHN0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdKTsKIAlkcm1fb2JqZWN0 X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJCSAgIGRldi0+bW9kZV9jb25m aWcudHZfdG9wX21hcmdpbl9wcm9wZXJ0eSwKLQkJCQkgICBpbnRlbF90di0+bWFyZ2luW1RWX01B UkdJTl9UT1BdKTsKKwkJCQkgICBzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9UT1BdKTsKIAlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJCSAgIGRldi0+bW9k ZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5LAotCQkJCSAgIGludGVsX3R2LT5tYXJn aW5bVFZfTUFSR0lOX1JJR0hUXSk7CisJCQkJICAgc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fUklH SFRdKTsKIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJ CSAgIGRldi0+bW9kZV9jb25maWcudHZfYm90dG9tX21hcmdpbl9wcm9wZXJ0eSwKLQkJCQkgICBp bnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dKTsKKwkJCQkgICBzdGF0ZS0+bWFyZ2lu W1RWX01BUkdJTl9CT1RUT01dKTsKIH0KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==