From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: [PATCH 1/6] drm: Add writeback connector type Date: Fri, 25 Nov 2016 16:48:59 +0000 Message-ID: <1480092544-1725-2-git-send-email-brian.starkey@arm.com> References: <1480092544-1725-1-git-send-email-brian.starkey@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 9F8D46E8CC for ; Fri, 25 Nov 2016 16:49:23 +0000 (UTC) In-Reply-To: <1480092544-1725-1-git-send-email-brian.starkey@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: liviu.dudau@arm.com, laurent.pinchart@ideasonboard.com, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org V3JpdGViYWNrIGNvbm5lY3RvcnMgcmVwcmVzZW50IHdyaXRlYmFjayBlbmdpbmVzIHdoaWNoIGNh biB3cml0ZSB0aGUKQ1JUQyBvdXRwdXQgdG8gYSBtZW1vcnkgZnJhbWVidWZmZXIuIEFkZCBhIHdy aXRlYmFjayBjb25uZWN0b3IgdHlwZSBhbmQKcmVsYXRlZCBzdXBwb3J0IGZ1bmN0aW9ucy4KCkRy aXZlcnMgc2hvdWxkIGluaXRpYWxpemUgYSB3cml0ZWJhY2sgY29ubmVjdG9yIHdpdGgKZHJtX3dy aXRlYmFja19jb25uZWN0b3JfaW5pdCgpIHdoaWNoIHRha2VzIGNhcmUgb2Ygc2V0dGluZyB1cCBh bGwgdGhlCndyaXRlYmFjay1zcGVjaWZpYyBkZXRhaWxzIG9uIHRvcCBvZiB0aGUgbm9ybWFsIGZ1 bmN0aW9uYWxpdHkgb2YKZHJtX2Nvbm5lY3Rvcl9pbml0KCkuCgpXcml0ZWJhY2sgY29ubmVjdG9y cyBoYXZlIGEgV1JJVEVCQUNLX0ZCX0lEIHByb3BlcnR5LCB1c2VkIHRvIHNldCB0aGUKb3V0cHV0 IGZyYW1lYnVmZmVyLCBhbmQgYSBQSVhFTF9GT1JNQVRTIGJsb2IgdXNlZCB0byBleHBvc2UgdGhl CnN1cHBvcnRlZCB3cml0ZWJhY2sgZm9ybWF0cyB0byB1c2Vyc3BhY2UuCgpXaGVuIGEgZnJhbWVi dWZmZXIgaXMgYXR0YWNoZWQgdG8gYSB3cml0ZWJhY2sgY29ubmVjdG9yIHdpdGggdGhlCldSSVRF QkFDS19GQl9JRCBwcm9wZXJ0eSwgaXQgaXMgdXNlZCBvbmx5IG9uY2UgKGZvciB0aGUgY29tbWl0 IGluIHdoaWNoCml0IHdhcyBpbmNsdWRlZCksIGFuZCB1c2Vyc3BhY2UgY2FuIG5ldmVyIHJlYWQg YmFjayB0aGUgdmFsdWUgb2YKV1JJVEVCQUNLX0ZCX0lELiBXUklURUJBQ0tfRkJfSUQgY2FuIG9u bHkgYmUgc2V0IGlmIHRoZSBjb25uZWN0b3IgaXMKYXR0YWNoZWQgdG8gYSBDUlRDLgoKQ2hhbmdl cyBzaW5jZSB2MToKIC0gQWRkZWQgZHJtX3dyaXRlYmFjay5jICsgZG9jdW1lbnRhdGlvbgogLSBB ZGRlZCBoZWxwZXIgdG8gaW5pdGlhbGl6ZSB3cml0ZWJhY2sgY29ubmVjdG9yIGluIG9uZSBnbwog LSBBZGRlZCBjb3JlIGNoZWNrcwogLSBTcXVhc2hlZCBpbnRvIGEgc2luZ2xlIGNvbW1pdAogLSBE cm9wcGVkIHRoZSBjbGllbnQgY2FwCiAtIFdyaXRlYmFjayBmcmFtZWJ1ZmZlcnMgYXJlIG5vIGxv bmdlciBwZXJzaXN0ZW50CgpDaGFuZ2VzIHNpbmNlIHYyOgogRGFuaWVsIFZldHRlcjoKIC0gU3Vi Y2xhc3MgZHJtX2Nvbm5lY3RvciB0byBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvcgogLSBSZWxheCBj aGVjayB0byBhbGxvdyBDUlRDIHRvIGJlIHNldCB3aXRob3V0IGFuIEZCCiAtIEFkZCBzb21lIHdy aXRlYmFja18gcHJlZml4ZXMKIC0gRHJvcCBQSVhFTF9GT1JNQVRTX1NJWkUgcHJvcGVydHksIGFz IGl0IHdhcyB1bm5lY2Vzc2FyeQogR3VzdGF2byBQYWRvdmFuOgogLSBBZGQgZHJtX3dyaXRlYmFj a19qb2IgdG8gaGFuZGxlIHdyaXRlYmFjayBzaWduYWxsaW5nIGNlbnRyYWxseQoKU2lnbmVkLW9m Zi1ieTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgotLS0KIERvY3VtZW50 YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgICAgOSArKwogZHJpdmVycy9ncHUvZHJtL01h a2VmaWxlICAgICAgICAgICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j ICAgICAgICB8ICAxMzAgKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jIHwgICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j ICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMgICAgIHwgIDIz MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2F0 b21pYy5oICAgICAgICAgICAgfCAgICAzICsKIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAg ICAgICAgIHwgICAxMyArKwogaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggICAgICAgfCAg IDE0ICsrKwogaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oICAgICAgICAgfCAgIDc4ICsrKysr KysrKysrKwogaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAgfCAgICAxICsKIDEx IGZpbGVzIGNoYW5nZWQsIDQ4OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgKCmRpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL2dwdS9kcm0ta21zLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cmlu ZGV4IDU2OGYzYzIuLjNhNGYzNWIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1r bXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0CkBAIC0xMjIsNiArMTIy LDE1IEBAIENvbm5lY3RvciBGdW5jdGlvbnMgUmVmZXJlbmNlCiAuLiBrZXJuZWwtZG9jOjogZHJp dmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwogICAgOmV4cG9ydDoKIAorV3JpdGViYWNrIENv bm5lY3RvcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJz L2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCisgIDpkb2M6IG92ZXJ2aWV3CisKKy4uIGtlcm5lbC1k b2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCisgIDpleHBvcnQ6CisKIEVuY29k ZXIgQWJzdHJhY3Rpb24KID09PT09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCmluZGV4IDg4M2Yz ZTcuLjMyMDlhYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTE2LDcgKzE2LDcgQEAgZHJtLXkgICAgICAgOj0J ZHJtX2F1dGgubyBkcm1fYnVmcy5vIGRybV9jYWNoZS5vIFwKIAkJZHJtX2ZyYW1lYnVmZmVyLm8g ZHJtX2Nvbm5lY3Rvci5vIGRybV9ibGVuZC5vIFwKIAkJZHJtX2VuY29kZXIubyBkcm1fbW9kZV9v YmplY3QubyBkcm1fcHJvcGVydHkubyBcCiAJCWRybV9wbGFuZS5vIGRybV9jb2xvcl9tZ210Lm8g ZHJtX3ByaW50Lm8gXAotCQlkcm1fZHVtYl9idWZmZXJzLm8gZHJtX21vZGVfY29uZmlnLm8KKwkJ ZHJtX2R1bWJfYnVmZmVycy5vIGRybV9tb2RlX2NvbmZpZy5vIGRybV93cml0ZWJhY2subwogCiBk cm0tJChDT05GSUdfQ09NUEFUKSArPSBkcm1faW9jMzIubwogZHJtLSQoQ09ORklHX0RSTV9HRU1f Q01BX0hFTFBFUikgKz0gZHJtX2dlbV9jbWFfaGVscGVyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4 IGI0NzZlYzUuLjM0M2UyYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMzEsNiArMzEsNyBAQAog I2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVy Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorI2luY2x1ZGUgPGRybS9kcm1fd3JpdGVi YWNrLmg+CiAjaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+CiAKICNpbmNsdWRlICJkcm1fY3J0 Y19pbnRlcm5hbC5oIgpAQCAtNjU5LDYgKzY2MCw0NiBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWlj X2NydGNfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAogfQogCiAvKioKKyAqIGRy bV9hdG9taWNfY29ubmVjdG9yX2NoZWNrIC0gY2hlY2sgY29ubmVjdG9yIHN0YXRlCisgKiBAY29u bmVjdG9yOiBjb25uZWN0b3IgdG8gY2hlY2sKKyAqIEBzdGF0ZTogY29ubmVjdG9yIHN0YXRlIHRv IGNoZWNrCisgKgorICogUHJvdmlkZXMgY29yZSBzYW5pdHkgY2hlY2tzIGZvciBjb25uZWN0b3Ig c3RhdGUuCisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBv biBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0b3JfY2hlY2soc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1 Y3QgZHJtX3dyaXRlYmFja19qb2IgKndyaXRlYmFja19qb2IgPSBzdGF0ZS0+d3JpdGViYWNrX2pv YjsKKworCWlmICgoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNU T1JfV1JJVEVCQUNLKSB8fAorCSAgICAhd3JpdGViYWNrX2pvYikKKwkJcmV0dXJuIDA7CisKKwlp ZiAod3JpdGViYWNrX2pvYi0+ZmIgJiYgIXN0YXRlLT5jcnRjKSB7CisJCURSTV9ERUJVR19BVE9N SUMoIltDT05ORUNUT1I6JWQ6JXNdIGZyYW1lYnVmZmVyIHdpdGhvdXQgQ1JUQ1xuIiwKKwkJCQkg Y29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CisKKwlpZiAoc3RhdGUtPmNydGMpCisJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9l eGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLT5zdGF0ZSwKKwkJCQkJCQkJc3RhdGUtPmNydGMpOwor CisJaWYgKHdyaXRlYmFja19qb2ItPmZiICYmICFjcnRjX3N0YXRlLT5hY3RpdmUpIHsKKwkJRFJN X0RFQlVHX0FUT01JQygiW0NPTk5FQ1RPUjolZDolc10gaGFzIGZyYW1lYnVmZmVyLCBidXQgW0NS VEM6JWRdIGlzIG9mZlxuIiwKKwkJCQkgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5h bWUsCisJCQkJIHN0YXRlLT5jcnRjLT5iYXNlLmlkKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJcmV0dXJuIDA7Cit9CisKKy8qKgogICogZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUgLSBn ZXQgcGxhbmUgc3RhdGUKICAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZSBvYmplY3QKICAq IEBwbGFuZTogcGxhbmUgdG8gZ2V0IHN0YXRlIG9iamVjdCBmb3IKQEAgLTEwODcsNiArMTEyOCwx MiBAQCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiAJCSAqIG5vdz8pIGF0b21pYyB3cml0ZXMgdG8gRFBNUyBwcm9w ZXJ0eToKIAkJICovCiAJCXJldHVybiAtRUlOVkFMOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKKwkJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgdmFsKTsKKwkJaW50IHJldCA9 IGRybV9hdG9taWNfc2V0X3dyaXRlYmFja19mYl9mb3JfY29ubmVjdG9yKHN0YXRlLCBmYik7CisJ CWlmIChmYikKKwkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7CisJCXJldHVybiBy ZXQ7CiAJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7 CiAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3Rv ciwKIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7CkBAIC0xMTM1LDYgKzExODIsOSBAQCBzdGF0 aWMgdm9pZCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9wcmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50 ZXIgKnAsCiAJCSp2YWwgPSAoc3RhdGUtPmNydGMpID8gc3RhdGUtPmNydGMtPmJhc2UuaWQgOiAw OwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kcG1zX3Byb3BlcnR5KSB7CiAJCSp2 YWwgPSBjb25uZWN0b3ItPmRwbXM7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPndy aXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgeworCQkvKiBXcml0ZWJhY2sgZnJhbWVidWZmZXIgaXMg b25lLXNob3QsIHdyaXRlIGFuZCBmb3JnZXQgKi8KKwkJKnZhbCA9IDA7CiAJfSBlbHNlIGlmIChj b25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJldHVybiBjb25uZWN0 b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKIAkJCQlzdGF0ZSwgcHJv cGVydHksIHZhbCk7CkBAIC0xMzQ3LDYgKzEzOTcsNzUgQEAgaW50IGRybV9hdG9taWNfZ2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKTsKIAorLyoKKyAqIGRybV9hdG9taWNfZ2V0 X3dyaXRlYmFja19qb2IgLSByZXR1cm4gb3IgYWxsb2NhdGUgYSB3cml0ZWJhY2sgam9iCisgKiBA Y29ubl9zdGF0ZTogQ29ubmVjdG9yIHN0YXRlIHRvIGdldCB0aGUgam9iIGZvcgorICoKKyAqIFdy aXRlYmFjayBqb2JzIGhhdmUgYSBkaWZmZXJlbnQgbGlmZXRpbWUgdG8gdGhlIGF0b21pYyBzdGF0 ZSB0aGV5IGFyZQorICogYXNzb2NpYXRlZCB3aXRoLiBUaGlzIGNvbnZlbmllbmNlIGZ1bmN0aW9u IHRha2VzIGNhcmUgb2YgYWxsb2NhdGluZyBhIGpvYgorICogaWYgdGhlcmUgaXNuJ3QgeWV0IG9u ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbm5lY3RvciBzdGF0ZSwgb3RoZXJ3aXNlCisgKiBpdCBq dXN0IHJldHVybnMgdGhlIGV4aXN0aW5nIGpvYi4KKyAqCisgKiBSZXR1cm5zOiBUaGUgd3JpdGVi YWNrIGpvYiBmb3IgdGhlIGdpdmVuIGNvbm5lY3RvciBzdGF0ZQorICovCitzdGF0aWMgc3RydWN0 IGRybV93cml0ZWJhY2tfam9iICoKK2RybV9hdG9taWNfZ2V0X3dyaXRlYmFja19qb2Ioc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCit7CisJV0FSTl9PTihjb25uX3N0YXRl LT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9CisJCURSTV9NT0RFX0NPTk5FQ1RPUl9XUklU RUJBQ0spOworCisJaWYgKCFjb25uX3N0YXRlLT53cml0ZWJhY2tfam9iKQorCQljb25uX3N0YXRl LT53cml0ZWJhY2tfam9iID0KKwkJCWt6YWxsb2Moc2l6ZW9mKCpjb25uX3N0YXRlLT53cml0ZWJh Y2tfam9iKSwgR0ZQX0tFUk5FTCk7CisKKwlyZXR1cm4gY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pv YjsKK30KKworLyoqCisgKiBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3Rv ciAtIHNldCB3cml0ZWJhY2sgZnJhbWVidWZmZXIKKyAqIEBjb25uX3N0YXRlOiBhdG9taWMgc3Rh dGUgb2JqZWN0IGZvciB0aGUgY29ubmVjdG9yCisgKiBAZmI6IGZiIHRvIHVzZSBmb3IgdGhlIGNv bm5lY3RvcgorICoKKyAqIFRoaXMgaXMgdXNlZCB0byBzZXQgdGhlIGZyYW1lYnVmZmVyIGZvciBh IHdyaXRlYmFjayBjb25uZWN0b3IsIHdoaWNoIG91dHB1dHMKKyAqIHRvIGEgYnVmZmVyIGluc3Rl YWQgb2YgYW4gYWN0dWFsIHBoeXNpY2FsIGNvbm5lY3Rvci4KKyAqIENoYW5naW5nIHRoZSBhc3Np Z25lZCBmcmFtZWJ1ZmZlciByZXF1aXJlcyB1cyB0byBncmFiIGEgcmVmZXJlbmNlIHRvIHRoZSBu ZXcKKyAqIGZiIGFuZCBkcm9wIHRoZSByZWZlcmVuY2UgdG8gdGhlIG9sZCBmYiwgaWYgdGhlcmUg aXMgb25lLiBUaGlzIGZ1bmN0aW9uCisgKiB0YWtlcyBjYXJlIG9mIGFsbCB0aGVzZSBkZXRhaWxz IGJlc2lkZXMgdXBkYXRpbmcgdGhlIHBvaW50ZXIgaW4gdGhlCisgKiBzdGF0ZSBvYmplY3QgaXRz ZWxmLgorICoKKyAqIE5vdGU6IFRoZSBvbmx5IHdheSBjb25uX3N0YXRlIGNhbiBhbHJlYWR5IGhh dmUgYW4gZmIgc2V0IGlzIGlmIHRoZSBjb21taXQKKyAqIHNldHMgdGhlIHByb3BlcnR5IG1vcmUg dGhhbiBvbmNlLgorICoKKyAqIFNlZSBhbHNvOiBkcm1fd3JpdGViYWNrX2Nvbm5lY3Rvcl9pbml0 KCkKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MKKyAqLworaW50IGRybV9hdG9taWNfc2V0 X3dyaXRlYmFja19mYl9mb3JfY29ubmVjdG9yKAorCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSwKKwkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCit7CisJc3RydWN0 IGRybV93cml0ZWJhY2tfam9iICpqb2IgPQorCQlkcm1fYXRvbWljX2dldF93cml0ZWJhY2tfam9i KGNvbm5fc3RhdGUpOworCWlmICgham9iKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChqb2It PmZiKQorCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uoam9iLT5mYik7CisJaWYgKGZiKQor CQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsKKwlqb2ItPmZiID0gZmI7CisKKwlpZiAo ZmIpCisJCURSTV9ERUJVR19BVE9NSUMoIlNldCBbRkI6JWRdIGZvciBjb25uZWN0b3Igc3RhdGUg JXBcbiIsCisJCQkJIGZiLT5iYXNlLmlkLCBjb25uX3N0YXRlKTsKKwllbHNlCisJCURSTV9ERUJV R19BVE9NSUMoIlNldCBbTk9GQl0gZm9yIGNvbm5lY3RvciBzdGF0ZSAlcFxuIiwKKwkJCQkgY29u bl9zdGF0ZSk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zZXRf d3JpdGViYWNrX2ZiX2Zvcl9jb25uZWN0b3IpOworCiAvKioKICAqIGRybV9hdG9taWNfYWRkX2Fm ZmVjdGVkX2Nvbm5lY3RvcnMgLSBhZGQgY29ubmVjdG9ycyBmb3IgY3J0YwogICogQHN0YXRlOiBh dG9taWMgc3RhdGUKQEAgLTE1MDEsNiArMTYyMCw4IEBAIGludCBkcm1fYXRvbWljX2NoZWNrX29u bHkoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47CisJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7CiAJaW50IGksIHJldCA9IDA7CiAK IAlEUk1fREVCVUdfQVRPTUlDKCJjaGVja2luZyAlcFxuIiwgc3RhdGUpOwpAQCAtMTUyMyw2ICsx NjQ0LDE1IEBAIGludCBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQogCQl9CiAJfQogCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRl LCBjb25uLCBjb25uX3N0YXRlLCBpKSB7CisJCXJldCA9IGRybV9hdG9taWNfY29ubmVjdG9yX2No ZWNrKGNvbm4sIGNvbm5fc3RhdGUpOworCQlpZiAocmV0KSB7CisJCQlEUk1fREVCVUdfQVRPTUlD KCJbQ09OTkVDVE9SOiVkOiVzXSBhdG9taWMgY29yZSBjaGVjayBmYWlsZWRcbiIsCisJCQkJCSBj b25uLT5iYXNlLmlkLCBjb25uLT5uYW1lKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKIAlp ZiAoY29uZmlnLT5mdW5jcy0+YXRvbWljX2NoZWNrKQogCQlyZXQgPSBjb25maWctPmZ1bmNzLT5h dG9taWNfY2hlY2soc3RhdGUtPmRldiwgc3RhdGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCmluZGV4IDBiMTY1ODcuLjc1ODEyYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIu aD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV93cml0ZWJhY2suaD4KICNpbmNsdWRl IDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCkBA IC0zMTkyLDYgKzMxOTMsOSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNl dChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCW1lbWNweShzdGF0ZSwgY29ubmVj dG9yLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOwogCWlmIChzdGF0ZS0+Y3J0YykKIAkJZHJtX2Nv bm5lY3Rvcl9yZWZlcmVuY2UoY29ubmVjdG9yKTsKKworCS8qIERvbid0IGNvcHkgb3ZlciBhIHdy aXRlYmFjayBqb2IsIHRoZXkgYXJlIHVzZWQgb25seSBvbmNlICovCisJc3RhdGUtPndyaXRlYmFj a19qb2IgPSBOVUxMOwogfQogRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9kdXBsaWNhdGVfc3RhdGUpOwogCkBAIC0zMzE5LDYgKzMzMjMsOCBAQCBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqCiAJICovCiAJaWYgKHN0YXRlLT5jcnRjKQogCQlkcm1fY29ubmVjdG9y X3VucmVmZXJlbmNlKHN0YXRlLT5jb25uZWN0b3IpOworCWlmIChzdGF0ZS0+d3JpdGViYWNrX2pv YikKKwkJZHJtX3dyaXRlYmFja19jbGVhbnVwX2pvYihzdGF0ZS0+d3JpdGViYWNrX2pvYik7CiB9 CiBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3Rh dGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwppbmRleCBiNWM2YThlLi42YmJkOTNmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMKQEAgLTg2LDYgKzg2LDcgQEAgc3RydWN0IGRybV9jb25uX3By b3BfZW51bV9saXN0IHsKIAl7IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMLCAiVmlydHVhbCIg fSwKIAl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0ksICJEU0kiIH0sCiAJeyBEUk1fTU9ERV9DT05O RUNUT1JfRFBJLCAiRFBJIiB9LAorCXsgRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSywgIldy aXRlYmFjayIgfSwKIH07CiAKIHZvaWQgZHJtX2Nvbm5lY3Rvcl9pZGFfaW5pdCh2b2lkKQpAQCAt MjM1LDcgKzIzNiw4IEBAIGludCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAlsaXN0X2FkZF90YWlsKCZjb25uZWN0b3ItPmhlYWQsICZjb25maWctPmNvbm5lY3Rv cl9saXN0KTsKIAljb25maWctPm51bV9jb25uZWN0b3IrKzsKIAotCWlmIChjb25uZWN0b3JfdHlw ZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCkKKwlpZiAoKGNvbm5lY3Rvcl90eXBlICE9 IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKSAmJgorCSAgICAoY29ubmVjdG9yX3R5cGUgIT0g RFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSykpCiAJCWRybV9vYmplY3RfYXR0YWNoX3Byb3Bl cnR5KCZjb25uZWN0b3ItPmJhc2UsCiAJCQkJCSAgICAgIGNvbmZpZy0+ZWRpZF9wcm9wZXJ0eSwK IAkJCQkJICAgICAgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFj ay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi43NWExZGJmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV93cml0ZWJhY2suYwpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIChDKSBDT1BZUklH SFQgMjAxNiBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIEF1dGhvcjogQnJp YW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlIGFuZCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgYW5kIGFueSB1c2UgYnkgeW91 IG9mIHRoaXMgcHJvZ3JhbSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcworICogb2Ygc3VjaCBHTlUg bGljZW5jZS4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJt L2RybV9wcm9wZXJ0eS5oPgorI2luY2x1ZGUgPGRybS9kcm1fd3JpdGViYWNrLmg+CisjaW5jbHVk ZSA8ZHJtL2RybVAuaD4KKworLyoqCisgKiBET0M6IG92ZXJ2aWV3CisgKgorICogV3JpdGViYWNr IGNvbm5lY3RvcnMgYXJlIHVzZWQgdG8gZXhwb3NlIGhhcmR3YXJlIHdoaWNoIGNhbiB3cml0ZSB0 aGUgb3V0cHV0CisgKiBmcm9tIGEgQ1JUQyB0byBhIG1lbW9yeSBidWZmZXIuIFRoZXkgYXJlIHVz ZWQgYW5kIGFjdCBzaW1pbGFybHkgdG8gb3RoZXIKKyAqIHR5cGVzIG9mIGNvbm5lY3RvcnMsIHdp dGggc29tZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6CisgKiAgLSBXcml0ZWJhY2sgY29ubmVjdG9y cyBkb24ndCBwcm92aWRlIGEgd2F5IHRvIG91dHB1dCB2aXN1YWxseSB0byB0aGUgdXNlci4KKyAq ICAtIFdyaXRlYmFjayBjb25uZWN0b3JzIHNob3VsZCBhbHdheXMgcmVwb3J0IGFzICJkaXNjb25u ZWN0ZWQiIChzbyB0aGF0CisgKiAgICBjbGllbnRzIHdoaWNoIGRvbid0IHVuZGVyc3RhbmQgdGhl bSB3aWxsIGlnbm9yZSB0aGVtKS4KKyAqICAtIFdyaXRlYmFjayBjb25uZWN0b3JzIGRvbid0IGhh dmUgRURJRC4KKyAqCisgKiBBIGZyYW1lYnVmZmVyIG1heSBvbmx5IGJlIGF0dGFjaGVkIHRvIGEg d3JpdGViYWNrIGNvbm5lY3RvciB3aGVuIHRoZQorICogY29ubmVjdG9yIGlzIGF0dGFjaGVkIHRv IGEgQ1JUQy4gVGhlIFdSSVRFQkFDS19GQl9JRCBwcm9wZXJ0eSB3aGljaCBzZXRzIHRoZQorICog ZnJhbWVidWZmZXIgYXBwbGllcyBvbmx5IHRvIGEgc2luZ2xlIGNvbW1pdCAoc2VlIGJlbG93KS4g QSBmcmFtZWJ1ZmZlciBtYXkKKyAqIG5vdCBiZSBhdHRhY2hlZCB3aGlsZSB0aGUgQ1JUQyBpcyBv ZmYuCisgKgorICogV3JpdGViYWNrIGNvbm5lY3RvcnMgaGF2ZSBzb21lIGFkZGl0aW9uYWwgcHJv cGVydGllcywgd2hpY2ggdXNlcnNwYWNlCisgKiBjYW4gdXNlIHRvIHF1ZXJ5IGFuZCBjb250cm9s IHRoZW06CisgKgorICogICJXUklURUJBQ0tfRkJfSUQiOgorICoJV3JpdGUtb25seSBvYmplY3Qg cHJvcGVydHkgc3RvcmluZyBhIERSTV9NT0RFX09CSkVDVF9GQjogaXQgc3RvcmVzIHRoZQorICoJ ZnJhbWVidWZmZXIgdG8gYmUgd3JpdHRlbiBieSB0aGUgd3JpdGViYWNrIGNvbm5lY3Rvci4gVGhp cyBwcm9wZXJ0eSBpcworICoJc2ltaWxhciB0byB0aGUgRkJfSUQgcHJvcGVydHkgb24gcGxhbmVz LCBidXQgd2lsbCBhbHdheXMgcmVhZCBhcyB6ZXJvCisgKglhbmQgaXMgbm90IHByZXNlcnZlZCBh Y3Jvc3MgY29tbWl0cy4KKyAqCVVzZXJzcGFjZSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IHRvIGFu IG91dHB1dCBidWZmZXIgZXZlcnkgdGltZSBpdAorICoJd2lzaGVzIHRoZSBidWZmZXIgdG8gZ2V0 IGZpbGxlZC4KKyAqCisgKiAgIlBJWEVMX0ZPUk1BVFMiOgorICoJSW1tdXRhYmxlIGJsb2IgcHJv cGVydHkgdG8gc3RvcmUgdGhlIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXRzIHRhYmxlLiBUaGUKKyAq CWRhdGEgaXMgYW4gYXJyYXkgb2YgdTMyIERSTV9GT1JNQVRfKiBmb3VyY2MgdmFsdWVzLgorICoJ VXNlcnNwYWNlIGNhbiB1c2UgdGhpcyBibG9iIHRvIGZpbmQgb3V0IHdoYXQgcGl4ZWwgZm9ybWF0 cyBhcmUgc3VwcG9ydGVkCisgKglieSB0aGUgY29ubmVjdG9yJ3Mgd3JpdGViYWNrIGVuZ2luZS4K KyAqLworCitzdGF0aWMgYm9vbCBjcmVhdGVfd3JpdGViYWNrX3Byb3BlcnRpZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOworCisJaWYgKCFk ZXYtPm1vZGVfY29uZmlnLndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgeworCQlwcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZV9vYmplY3QoZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywKKwkJCQkJ CSAgIldSSVRFQkFDS19GQl9JRCIsCisJCQkJCQkgIERSTV9NT0RFX09CSkVDVF9GQik7CisJCWlm ICghcHJvcCkKKwkJCXJldHVybiBmYWxzZTsKKwkJZGV2LT5tb2RlX2NvbmZpZy53cml0ZWJhY2tf ZmJfaWRfcHJvcGVydHkgPSBwcm9wOworCX0KKworCWlmICghZGV2LT5tb2RlX2NvbmZpZy53cml0 ZWJhY2tfcGl4ZWxfZm9ybWF0c19wcm9wZXJ0eSkgeworCQlwcm9wID0gZHJtX3Byb3BlcnR5X2Ny ZWF0ZShkZXYsIERSTV9NT0RFX1BST1BfQkxPQiB8IERSTV9NT0RFX1BST1BfSU1NVVRBQkxFLAor CQkJCQkgICAiUElYRUxfRk9STUFUUyIsIDApOworCQlpZiAoIXByb3ApCisJCQlyZXR1cm4gZmFs c2U7CisJCWRldi0+bW9kZV9jb25maWcud3JpdGViYWNrX3BpeGVsX2Zvcm1hdHNfcHJvcGVydHkg PSBwcm9wOworCX0KKworCXJldHVybiB0cnVlOworfQorCisvKioKKyAqIGRybV93cml0ZWJhY2tf Y29ubmVjdG9yX2luaXQgLSBJbml0aWFsaXplIGEgd3JpdGViYWNrIGNvbm5lY3RvciBhbmQgaXRz IHByb3BlcnRpZXMKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEB3Yl9jb25uZWN0b3I6IFdyaXRl YmFjayBjb25uZWN0b3IgdG8gaW5pdGlhbGl6ZQorICogQGZ1bmNzOiBDb25uZWN0b3IgZnVuY3Mg dnRhYmxlCisgKiBAZm9ybWF0czogQXJyYXkgb2Ygc3VwcG9ydGVkIHBpeGVsIGZvcm1hdHMgZm9y IHRoZSB3cml0ZWJhY2sgZW5naW5lCisgKiBAbl9mb3JtYXRzOiBMZW5ndGggb2YgdGhlIGZvcm1h dHMgYXJyYXkKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIHdyaXRlYmFjay1jb25u ZWN0b3Itc3BlY2lmaWMgcHJvcGVydGllcyBpZiB0aGV5CisgKiBoYXZlIG5vdCBiZWVuIGFscmVh ZHkgY3JlYXRlZCwgaW5pdGlhbGl6ZXMgdGhlIGNvbm5lY3RvciBhcworICogdHlwZSBEUk1fTU9E RV9DT05ORUNUT1JfV1JJVEVCQUNLLCBhbmQgY29ycmVjdGx5IGluaXRpYWxpemVzIHRoZSBwcm9w ZXJ0eQorICogdmFsdWVzLgorICoKKyAqIERyaXZlcnMgc2hvdWxkIGFsd2F5cyB1c2UgdGhpcyBm dW5jdGlvbiBpbnN0ZWFkIG9mIGRybV9jb25uZWN0b3JfaW5pdCgpIHRvCisgKiBzZXQgdXAgd3Jp dGViYWNrIGNvbm5lY3RvcnMuCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUKKyAqLworaW50IGRybV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVj dG9yICp3Yl9jb25uZWN0b3IsCisJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz ICpmdW5jcywKKwkJCQkgdTMyICpmb3JtYXRzLCBpbnQgbl9mb3JtYXRzKQoreworCWludCByZXQ7 CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iOworCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSAmd2JfY29ubmVjdG9yLT5iYXNlOworCXN0cnVjdCBkcm1fbW9kZV9jb25m aWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOworCisJaWYgKCFjcmVhdGVfd3JpdGViYWNr X3Byb3BlcnRpZXMoZGV2KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlibG9iID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9ibG9iKGRldiwgbl9mb3JtYXRzICogc2l6ZW9mKCpmb3JtYXRzKSwKKwkJCQkJ Zm9ybWF0cyk7CisJaWYgKElTX0VSUihibG9iKSkKKwkJcmV0dXJuIFBUUl9FUlIoYmxvYik7CisK KwlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsIGZ1bmNzLAorCQkJCSBE Uk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWw7CisK KwlJTklUX0xJU1RfSEVBRCgmd2JfY29ubmVjdG9yLT5qb2JfcXVldWUpOworCXNwaW5fbG9ja19p bml0KCZ3Yl9jb25uZWN0b3ItPmpvYl9sb2NrKTsKKworCWRybV9vYmplY3RfYXR0YWNoX3Byb3Bl cnR5KCZjb25uZWN0b3ItPmJhc2UsCisJCQkJICAgY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJv cGVydHksIDApOworCisJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFz ZSwKKwkJCQkgICBjb25maWctPndyaXRlYmFja19waXhlbF9mb3JtYXRzX3Byb3BlcnR5LAorCQkJ CSAgIGJsb2ItPmJhc2UuaWQpOworCXdiX2Nvbm5lY3Rvci0+cGl4ZWxfZm9ybWF0c19ibG9iX3B0 ciA9IGJsb2I7CisKKwlyZXR1cm4gMDsKKworZmFpbDoKKwlkcm1fcHJvcGVydHlfdW5yZWZlcmVu Y2VfYmxvYihibG9iKTsKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChkcm1fd3JpdGVi YWNrX2Nvbm5lY3Rvcl9pbml0KTsKKworLyoqCisgKiBAZHJtX3dyaXRlYmFja19xdWV1ZV9qb2I6 IFF1ZXVlIGEgd3JpdGViYWNrIGpvYiBmb3IgbGF0ZXIgc2lnbmFsbGluZworICogQHdiX2Nvbm5l Y3RvcjogVGhlIHdyaXRlYmFjayBjb25uZWN0b3IgdG8gcXVldWUgYSBqb2Igb24KKyAqIEBqb2I6 IFRoZSBqb2IgdG8gcXVldWUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFkZHMgYSBqb2IgdG8gdGhl IGpvYl9xdWV1ZSBmb3IgYSB3cml0ZWJhY2sgY29ubmVjdG9yLiBJdAorICogc2hvdWxkIGJlIGNv bnNpZGVyZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgdGhlIHdyaXRlYmFjayBqb2IsIGFuZCBzbyBh bnkgb3RoZXIKKyAqIHJlZmVyZW5jZXMgdG8gdGhlIGpvYiBtdXN0IGJlIGNsZWFyZWQgYWZ0ZXIg Y2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIERyaXZlcnMgbXVzdCBlbnN1cmUgdGhhdCBm b3IgYSBnaXZlbiB3cml0ZWJhY2sgY29ubmVjdG9yLCBqb2JzIGFyZSBxdWV1ZWQgaW4KKyAqIGV4 YWN0bHkgdGhlIHNhbWUgb3JkZXIgYXMgdGhleSB3aWxsIGJlIGNvbXBsZXRlZCBieSB0aGUgaGFy ZHdhcmUgKGFuZAorICogc2lnbmFsZWQgdmlhIGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRp b24pLgorICoKKyAqIEZvciBldmVyeSBjYWxsIHRvIGRybV93cml0ZWJhY2tfcXVldWVfam9iKCkg dGhlcmUgbXVzdCBiZSBleGFjdGx5IG9uZSBjYWxsIHRvCisgKiBkcm1fd3JpdGViYWNrX3NpZ25h bF9jb21wbGV0aW9uKCkKKyAqCisgKiBTZWUgYWxzbzogZHJtX3dyaXRlYmFja19zaWduYWxfY29t cGxldGlvbigpCisgKi8KK3ZvaWQgZHJtX3dyaXRlYmFja19xdWV1ZV9qb2Ioc3RydWN0IGRybV93 cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IsCisJCQkgICAgIHN0cnVjdCBkcm1fd3Jp dGViYWNrX2pvYiAqam9iKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tf aXJxc2F2ZSgmd2JfY29ubmVjdG9yLT5qb2JfbG9jaywgZmxhZ3MpOworCWxpc3RfYWRkX3RhaWwo JmpvYi0+bGlzdF9lbnRyeSwgJndiX2Nvbm5lY3Rvci0+am9iX3F1ZXVlKTsKKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZ3Yl9jb25uZWN0b3ItPmpvYl9sb2NrLCBmbGFncyk7Cit9CitFWFBPUlRf U1lNQk9MKGRybV93cml0ZWJhY2tfcXVldWVfam9iKTsKKworLyoqCisgKiBAZHJtX3dyaXRlYmFj a19jbGVhbnVwX2pvYjogQ2xlYW51cCBhbmQgZnJlZSBhIHdyaXRlYmFjayBqb2IKKyAqIEBqb2I6 IFRoZSB3cml0ZWJhY2sgam9iIHRvIGZyZWUKKyAqCisgKiBEcm9wcyBhbnkgcmVmZXJlbmNlcyBo ZWxkIGJ5IHRoZSB3cml0ZWJhY2sgam9iLCBhbmQgZnJlZXMgdGhlIHN0cnVjdHVyZS4KKyAqLwor dm9pZCBkcm1fd3JpdGViYWNrX2NsZWFudXBfam9iKHN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAq am9iKQoreworCWlmICgham9iKQorCQlyZXR1cm47CisKKwlpZiAoam9iLT5mYikKKwkJZHJtX2Zy YW1lYnVmZmVyX3VucmVmZXJlbmNlKGpvYi0+ZmIpOworCWtmcmVlKGpvYik7Cit9CitFWFBPUlRf U1lNQk9MKGRybV93cml0ZWJhY2tfY2xlYW51cF9qb2IpOworCisvKgorICogQGNsZWFudXBfd29y azogZGVmZXJyZWQgY2xlYW51cCBvZiBhIHdyaXRlYmFjayBqb2IKKyAqCisgKiBUaGUgam9iIGNh bm5vdCBiZSBjbGVhbmVkIHVwIGRpcmVjdGx5IGluIGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBs ZXRpb24sCisgKiBiZWNhdXNlIGl0IG1heSBiZSBjYWxsZWQgaW4gaW50ZXJydXB0IGNvbnRleHQu IERyb3BwaW5nIHRoZSBmcmFtZWJ1ZmZlcgorICogcmVmZXJlbmNlIGNhbiBzbGVlcCwgYW5kIHNv IHRoZSBjbGVhbnVwIGlzIGRlZmVycmVkIHRvIGEgd29ya3F1ZXVlLgorICovCitzdGF0aWMgdm9p ZCBjbGVhbnVwX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBkcm1f d3JpdGViYWNrX2pvYiAqam9iID0gY29udGFpbmVyX29mKHdvcmssCisJCQkJCQkgICAgIHN0cnVj dCBkcm1fd3JpdGViYWNrX2pvYiwKKwkJCQkJCSAgICAgY2xlYW51cF93b3JrKTsKKwlkcm1fd3Jp dGViYWNrX2NsZWFudXBfam9iKGpvYik7Cit9CisKKy8qKgorICogQGRybV93cml0ZWJhY2tfc2ln bmFsX2NvbXBsZXRpb246IFNpZ25hbCB0aGUgY29tcGxldGlvbiBvZiBhIHdyaXRlYmFjayBqb2IK KyAqIEB3Yl9jb25uZWN0b3I6IFRoZSB3cml0ZWJhY2sgY29ubmVjdG9yIHdob3NlIGpvYiBpcyBj b21wbGV0ZQorICoKKyAqIERyaXZlcnMgc2hvdWxkIGNhbGwgdGhpcyB0byBzaWduYWwgdGhlIGNv bXBsZXRpb24gb2YgYSBwcmV2aW91c2x5IHF1ZXVlZAorICogd3JpdGViYWNrIGpvYi4gSXQgc2hv dWxkIGJlIGNhbGxlZCBhcyBzb29uIGFzIHBvc3NpYmxlIGFmdGVyIHRoZSBoYXJkd2FyZQorICog aGFzIGZpbmlzaGVkIHdyaXRpbmcsIGFuZCBtYXkgYmUgY2FsbGVkIGZyb20gaW50ZXJydXB0IGNv bnRleHQuCisgKiBJdCBpcyB0aGUgZHJpdmVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRo YXQgZm9yIGEgZ2l2ZW4gY29ubmVjdG9yLCB0aGUKKyAqIGhhcmR3YXJlIGNvbXBsZXRlcyB3cml0 ZWJhY2sgam9icyBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGV5IGFyZSBxdWV1ZWQuCisgKgorICog VW5sZXNzIHRoZSBkcml2ZXIgaXMgaG9sZGluZyBpdHMgb3duIHJlZmVyZW5jZSB0byB0aGUgZnJh bWVidWZmZXIsIGl0IG11c3QKKyAqIG5vdCBiZSBhY2Nlc3NlZCBhZnRlciBjYWxsaW5nIHRoaXMg ZnVuY3Rpb24uCisgKgorICogU2VlIGFsc286IGRybV93cml0ZWJhY2tfcXVldWVfam9iKCkKKyAq Lwordm9pZAorZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxldGlvbihzdHJ1Y3QgZHJtX3dyaXRl YmFja19jb25uZWN0b3IgKndiX2Nvbm5lY3RvcikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwor CXN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAqam9iOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJndi X2Nvbm5lY3Rvci0+am9iX2xvY2ssIGZsYWdzKTsKKwlqb2IgPSBsaXN0X2ZpcnN0X2VudHJ5X29y X251bGwoJndiX2Nvbm5lY3Rvci0+am9iX3F1ZXVlLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3dy aXRlYmFja19qb2IsCisJCQkJICAgICAgIGxpc3RfZW50cnkpOworCWlmIChqb2IpCisJCWxpc3Rf ZGVsKCZqb2ItPmxpc3RfZW50cnkpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndiX2Nvbm5l Y3Rvci0+am9iX2xvY2ssIGZsYWdzKTsKKworCWlmIChXQVJOX09OKCFqb2IpKQorCQlyZXR1cm47 CisKKwlJTklUX1dPUksoJmpvYi0+Y2xlYW51cF93b3JrLCBjbGVhbnVwX3dvcmspOworCXF1ZXVl X3dvcmsoc3lzdGVtX2xvbmdfd3EsICZqb2ItPmNsZWFudXBfd29yayk7Cit9CitFWFBPUlRfU1lN Qk9MKGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24pOwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCmluZGV4IGMwZWFl YzcuLjQ3NjU2MWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAorKysgYi9p bmNsdWRlL2RybS9kcm1fYXRvbWljLmgKQEAgLTM1MSw2ICszNTEsOSBAQCB2b2lkIGRybV9hdG9t aWNfc2V0X2ZlbmNlX2Zvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSwKIGludCBfX211c3RfY2hlY2sKIGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3Rvcihz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1f Y3J0YyAqY3J0Yyk7CitpbnQgZHJtX2F0b21pY19zZXRfd3JpdGViYWNrX2ZiX2Zvcl9jb25uZWN0 b3IoCisJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAorCQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYik7CiBpbnQgX19tdXN0X2NoZWNrCiBkcm1fYXRvbWljX2FkZF9h ZmZlY3RlZF9jb25uZWN0b3JzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkg ICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4IDM0Zjk3NDEuLmRj NDkxMGQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC0yMTQsNiArMjE0LDE5IEBAIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmJlc3RfZW5jb2RlcjsKIAog CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKworCS8qKgorCSAqIEB3cml0ZWJhY2tf am9iOiBXcml0ZWJhY2sgam9iIGZvciB3cml0ZWJhY2sgY29ubmVjdG9ycworCSAqCisJICogSG9s ZHMgdGhlIGZyYW1lYnVmZmVyIGZvciBhIHdyaXRlYmFjayBjb25uZWN0b3IuIEFzIHRoZSB3cml0 ZWJhY2sKKwkgKiBjb21wbGV0aW9uIG1heSBiZSBhc3luY2hyb25vdXMgdG8gdGhlIG5vcm1hbCBj b21taXQgY3ljbGUsIHRoZQorCSAqIHdyaXRlYmFjayBqb2IgbGlmZXRpbWUgaXMgbWFuYWdlZCBz ZXBhcmF0ZWx5IGZyb20gdGhlIG5vcm1hbCBhdG9taWMKKwkgKiBzdGF0ZSBieSB0aGlzIG9iamVj dC4KKwkgKgorCSAqIFNlZSBhbHNvOiBkcm1fd3JpdGViYWNrX3F1ZXVlX2pvYigpIGFuZAorCSAq IGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24oKQorCSAqLworCXN0cnVjdCBkcm1fd3Jp dGViYWNrX2pvYiAqd3JpdGViYWNrX2pvYjsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaApp bmRleCBiZjk5OTFiMi4uM2QzZDA3ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVf Y29uZmlnLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKQEAgLTYzNCw2ICs2 MzQsMjAgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7CiAJICovCiAJc3RydWN0IGRybV9wcm9w ZXJ0eSAqc3VnZ2VzdGVkX3lfcHJvcGVydHk7CiAKKwkvKioKKwkgKiBAd3JpdGViYWNrX2ZiX2lk X3Byb3BlcnR5OiBQcm9wZXJ0eSBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMsIHN0b3JpbmcKKwkg KiB0aGUgSUQgb2YgdGhlIG91dHB1dCBmcmFtZWJ1ZmZlci4KKwkgKiBTZWUgYWxzbzogZHJtX3dy aXRlYmFja19jb25uZWN0b3JfaW5pdCgpCisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqd3Jp dGViYWNrX2ZiX2lkX3Byb3BlcnR5OworCS8qKgorCSAqIEB3cml0ZWJhY2tfcGl4ZWxfZm9ybWF0 c19wcm9wZXJ0eTogUHJvcGVydHkgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzLAorCSAqIHN0b3Jp bmcgYW4gYXJyYXkgb2YgdGhlIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXRzIGZvciB0aGUgd3JpdGVi YWNrCisJICogZW5naW5lIChyZWFkLW9ubHkpLgorCSAqIFNlZSBhbHNvOiBkcm1fd3JpdGViYWNr X2Nvbm5lY3Rvcl9pbml0KCkKKwkgKi8KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp3cml0ZWJhY2tf cGl4ZWxfZm9ybWF0c19wcm9wZXJ0eTsKKwogCS8qIGR1bWIgaW9jdGwgcGFyYW1ldGVycyAqLwog CXVpbnQzMl90IHByZWZlcnJlZF9kZXB0aCwgcHJlZmVyX3NoYWRvdzsKIApkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oIGIvaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMmFjNDUKLS0tIC9kZXYvbnVs bAorKysgYi9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgKQEAgLTAsMCArMSw3OCBAQAorLyoK KyAqIChDKSBDT1BZUklHSFQgMjAxNiBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KyAqIEF1dGhvcjogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgorICoKKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlIGFuZCBpcyBwcm92aWRlZCB0byB5b3UgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lv biAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgYW5k IGFueSB1c2UgYnkgeW91IG9mIHRoaXMgcHJvZ3JhbSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcwor ICogb2Ygc3VjaCBHTlUgbGljZW5jZS4KKyAqLworCisjaWZuZGVmIF9fRFJNX1dSSVRFQkFDS19I X18KKyNkZWZpbmUgX19EUk1fV1JJVEVCQUNLX0hfXworI2luY2x1ZGUgPGRybS9kcm1fY29ubmVj dG9yLmg+CisjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisKK3N0cnVjdCBkcm1fd3JpdGVi YWNrX2Nvbm5lY3RvciB7CisJc3RydWN0IGRybV9jb25uZWN0b3IgYmFzZTsKKworCS8qKgorCSAq IEBwaXhlbF9mb3JtYXRzX2Jsb2JfcHRyOgorCSAqCisJICogRFJNIGJsb2IgcHJvcGVydHkgZGF0 YSBmb3IgdGhlIHBpeGVsIGZvcm1hdHMgbGlzdCBvbiB3cml0ZWJhY2sKKwkgKiBjb25uZWN0b3Jz CisJICogU2VlIGFsc28gZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdCgpCisJICovCisJc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpwaXhlbF9mb3JtYXRzX2Jsb2JfcHRyOworCisJLyoqIEBq b2JfbG9jazogUHJvdGVjdHMgam9iX3F1ZXVlICovCisJc3BpbmxvY2tfdCBqb2JfbG9jazsKKwkv KioKKwkgKiBAam9iX3F1ZXVlOgorCSAqCisJICogSG9sZHMgYSBsaXN0IG9mIGEgY29ubmVjdG9y J3Mgd3JpdGViYWNrIGpvYnM7IHRoZSBsYXN0IGl0ZW0gaXMgdGhlCisJICogbW9zdCByZWNlbnQu IFRoZSBmaXJzdCBpdGVtIG1heSBiZSBlaXRoZXIgd2FpdGluZyBmb3IgdGhlIGhhcmR3YXJlCisJ ICogdG8gYmVnaW4gd3JpdGluZywgb3IgY3VycmVudGx5IGJlaW5nIHdyaXR0ZW4uCisJICoKKwkg KiBTZWUgYWxzbzogZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IoKSBhbmQKKwkgKiBkcm1fd3JpdGVi YWNrX3NpZ25hbF9jb21wbGV0aW9uKCkKKwkgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGpvYl9xdWV1 ZTsKK307CisKK3N0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiB7CisJLyoqCisJICogQGNsZWFudXBf d29yazoKKwkgKgorCSAqIFVzZWQgdG8gYWxsb3cgZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxl dGlvbiB0byBkZWZlciBkcm9wcGluZyB0aGUKKwkgKiBmcmFtZWJ1ZmZlciByZWZlcmVuY2UgdG8g YSB3b3JrcXVldWUuCisJICovCisJc3RydWN0IHdvcmtfc3RydWN0IGNsZWFudXBfd29yazsKKwkv KioKKwkgKiBAbGlzdF9lbnRyeToKKwkgKgorCSAqIExpc3QgaXRlbSBmb3IgdGhlIGNvbm5lY3Rv cidzIEBqb2JfcXVldWUKKwkgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3RfZW50cnk7CisJLyoq CisJICogQGZiOgorCSAqCisJICogRnJhbWVidWZmZXIgdG8gYmUgd3JpdHRlbiB0byBieSB0aGUg d3JpdGViYWNrIGNvbm5lY3Rvci4gRG8gbm90IHNldAorCSAqIGRpcmVjdGx5LCB1c2UgZHJtX2F0 b21pY19zZXRfd3JpdGViYWNrX2ZiX2Zvcl9jb25uZWN0b3IoKQorCSAqLworCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiOworfTsKKworaW50IGRybV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVj dG9yICp3Yl9jb25uZWN0b3IsCisJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz ICpmdW5jcywKKwkJCQkgdTMyICpmb3JtYXRzLCBpbnQgbl9mb3JtYXRzKTsKKwordm9pZCBkcm1f d3JpdGViYWNrX3F1ZXVlX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3IgKndiX2Nv bm5lY3RvciwKKwkJCSAgICAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2IpOworCit2b2lk IGRybV93cml0ZWJhY2tfY2xlYW51cF9qb2Ioc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2Ip OworCit2b2lkCitkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKHN0cnVjdCBkcm1fd3Jp dGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubmVjdG9yKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCmlu ZGV4IGViZjYyMmYuLmFlNWU0ZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21v ZGUuaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKQEAgLTI2Myw2ICsyNjMsNyBA QCBzdHJ1Y3QgZHJtX21vZGVfZ2V0X2VuY29kZXIgewogI2RlZmluZSBEUk1fTU9ERV9DT05ORUNU T1JfVklSVFVBTCAgICAgIDE1CiAjZGVmaW5lIERSTV9NT0RFX0NPTk5FQ1RPUl9EU0kJCTE2CiAj ZGVmaW5lIERSTV9NT0RFX0NPTk5FQ1RPUl9EUEkJCTE3CisjZGVmaW5lIERSTV9NT0RFX0NPTk5F Q1RPUl9XUklURUJBQ0sJMTgKIAogc3RydWN0IGRybV9tb2RlX2dldF9jb25uZWN0b3IgewogCi0t IAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK