From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH 2/2] sndif: add explicit back and front synchronization Date: Mon, 5 Feb 2018 10:25:00 +0200 Message-ID: <1517819100-1029-3-git-send-email-andr2000@gmail.com> References: <1517819100-1029-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1517819100-1029-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: alsa-devel@alsa-project.org, xen-devel@lists.xenproject.org Cc: andr2000@gmail.com, Oleksandr Andrushchenko , Clemens Ladisch , Takashi Sakamoto , Takashi Iwai , Oleksandr Grytsov List-Id: alsa-devel@alsa-project.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKSW4gb3JkZXIgdG8gcHJvdmlkZSBleHBsaWNpdCBzeW5jaHJvbml6YXRpb24gYmV0 d2VlbiBiYWNrZW5kIGFuZApmcm9udGVuZCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgYXJlIGludHJv ZHVjZWQgaW4gdGhlIHByb3RvY29sOgogLSBhZGQgbmV3IHJpbmcgYnVmZmVyIGZvciBzZW5kaW5n IGFzeW5jaHJvbm91cyBldmVudHMgZnJvbQogICBiYWNrZW5kIHRvIGZyb250ZW5kIHRvIHJlcG9y dCBudW1iZXIgb2YgYnl0ZXMgcGxheWVkL2NhcHR1cmVkCiAgIChYRU5TTkRfRVZUX0NVUl9QT1Mp CiAtIGludHJvZHVjZSB0cmlnZ2VyIGV2ZW50cyBmb3IgcGxheWJhY2sgY29udHJvbDogc3RhcnQv c3RvcC9wYXVzZS9yZXN1bWUKIC0gYnVtcCBwcm90b2NvbCB2ZXJzaW9uIHRvIDIKClNpZ25lZC1v ZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0Bl cGFtLmNvbT4KU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0 c292QGVwYW0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFj bGUuY29tPgpDYzogVGFrYXNoaSBJd2FpIDx0aXdhaUBzdXNlLmRlPgpDYzogVGFrYXNoaSBTYWth bW90byA8by10YWthc2hpQHNha2Ftb2NjaGkuanA+CkNjOiBDbGVtZW5zIExhZGlzY2ggPGNsZW1l bnNAbGFkaXNjaC5kZT4KLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaCB8IDE2OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxNjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9wdWJsaWMvaW8vc25kaWYuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oCmlu ZGV4IGIwZTZhYzM1ZTEzMS4uYjRkNmM5NmI0MGI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvaW8vc25kaWYuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaApAQCAt NDEsNyArNDEsNyBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCB2ZXJz aW9uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKi8KLSNkZWZpbmUgWEVOU05EX1BST1RPQ09M X1ZFUlNJT04gICAgICAgICAiMSIKKyNkZWZpbmUgWEVOU05EX1BST1RPQ09MX1ZFUlNJT04gICAg ICAgICAiMiIKIAogLyoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExMyw2ICsxMTMsOCBA QAogICoKICAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC9yaW5nLXJlZiA9ICIz ODYiCiAgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvZXZlbnQtY2hhbm5lbCA9 ICIxNSIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC9ldnQtcmluZy1yZWYg PSAiMTM4NiIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC9ldnQtZXZlbnQt Y2hhbm5lbCA9ICIyMTUiCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3Ry ZWFtIDEsIGNhcHR1cmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKQEAgLTEyMiw2 ICsxMjQsOCBAQAogICoKICAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9yaW5n LXJlZiA9ICIzODQiCiAgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvZXZlbnQt Y2hhbm5lbCA9ICIxMyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9ldnQt cmluZy1yZWYgPSAiMTM4NCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9l dnQtZXZlbnQtY2hhbm5lbCA9ICIyMTMiCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIFBDTSBkZXZpY2UgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoK QEAgLTEzNSw2ICsxMzksOCBAQAogICoKICAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8w LzEvMC9yaW5nLXJlZiA9ICIzODciCiAgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8x LzAvZXZlbnQtY2hhbm5lbCA9ICIxNTEiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQv MC8xLzAvZXZ0LXJpbmctcmVmID0gIjEzODciCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz bmQvMC8xLzAvZXZ0LWV2ZW50LWNoYW5uZWwgPSAiMzUxIgogICoKICAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSBQQ00gZGV2aWNlIDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqCkBAIC0xNDcsNiArMTUzLDggQEAKICAqCiAgKiAvbG9jYWwvZG9tYWluLzEvZGV2 aWNlL3ZzbmQvMC8yLzAvcmluZy1yZWYgPSAiMzg5IgogICogL2xvY2FsL2RvbWFpbi8xL2Rldmlj ZS92c25kLzAvMi8wL2V2ZW50LWNoYW5uZWwgPSAiMTUyIgorICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92c25kLzAvMi8wL2V2dC1yaW5nLXJlZiA9ICIxMzg5IgorICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92c25kLzAvMi8wL2V2dC1ldmVudC1jaGFubmVsID0gIjQ1MiIKICAqCiAgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhl bkJ1cyBOb2RlcwpAQCAtMjkyLDYgKzMwMCwyMyBAQAogICogICAgICBUaGUgWGVuIGdyYW50IHJl ZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKICAqICAg ICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4KICAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gRXZlbnQgVHJhbnNwb3J0IFBhcmFtZXRlcnMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMg dXNlZCB0byBkZWxpdmVyIGFzeW5jaHJvbm91cyBldmVudHMgZnJvbSBiYWNrZW5kCisgKiB0byBm cm9udGVuZCwgc2V0IHVwIHBlciBzdHJlYW0uCisgKgorICogZXZ0LWV2ZW50LWNoYW5uZWwKKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KKyAqCisgKiAgICAgIFRoZSBpZGVudGlm aWVyIG9mIHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eQorICog ICAgICBpbiB0aGUgcmluZyBidWZmZXIuCisgKgorICogZXZ0LXJpbmctcmVmCisgKiAgICAgIFZh bHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgorICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVy ZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKKyAqICAgICAg YSBzb2xlIHBhZ2UgaW4gYSBzaW5nbGUgcGFnZSBzaXplZCByaW5nIGJ1ZmZlci4KKyAqCiAgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFU RSBESUFHUkFNUwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDM5LDYgKzQ2NCwxOSBAQAog I2RlZmluZSBYRU5TTkRfT1BfR0VUX1ZPTFVNRSAgICAgICAgICAgIDUKICNkZWZpbmUgWEVOU05E X09QX01VVEUgICAgICAgICAgICAgICAgICA2CiAjZGVmaW5lIFhFTlNORF9PUF9VTk1VVEUgICAg ICAgICAgICAgICAgNworI2RlZmluZSBYRU5TTkRfT1BfVFJJR0dFUiAgICAgICAgICAgICAgIDgK KworI2RlZmluZSBYRU5TTkRfT1BfVFJJR0dFUl9TVEFSVCAgICAgICAgIDAKKyNkZWZpbmUgWEVO U05EX09QX1RSSUdHRVJfUEFVU0UgICAgICAgICAxCisjZGVmaW5lIFhFTlNORF9PUF9UUklHR0VS X1NUT1AgICAgICAgICAgMgorI2RlZmluZSBYRU5TTkRfT1BfVFJJR0dFUl9SRVNVTUUgICAgICAg IDMKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRVZFTlQgQ09ERVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworI2Rl ZmluZSBYRU5TTkRfRVZUX0NVUl9QT1MgICAgICAgICAgICAgIDAKIAogLyoKICAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKQEAgLTQ1NSw2ICs0OTMsOCBAQAogI2RlZmluZSBYRU5TTkRfRklFTERfVkNB UkRfTE9OR19OQU1FICAgICJsb25nLW5hbWUiCiAjZGVmaW5lIFhFTlNORF9GSUVMRF9SSU5HX1JF RiAgICAgICAgICAgInJpbmctcmVmIgogI2RlZmluZSBYRU5TTkRfRklFTERfRVZUX0NITkwgICAg ICAgICAgICJldmVudC1jaGFubmVsIgorI2RlZmluZSBYRU5TTkRfRklFTERfRVZUX1JJTkdfUkVG ICAgICAgICJldnQtcmluZy1yZWYiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9FVlRfRVZUX0NITkwg ICAgICAgImV2dC1ldmVudC1jaGFubmVsIgogI2RlZmluZSBYRU5TTkRfRklFTERfREVWSUNFX05B TUUgICAgICAgICJuYW1lIgogI2RlZmluZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAgICAgICAg ICJ0eXBlIgogI2RlZmluZSBYRU5TTkRfRklFTERfU1RSRUFNX1VOSVFVRV9JRCAgICJ1bmlxdWUt aWQiCkBAIC01NjYsOSArNjA2LDcgQEAKICAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwogICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDI0CiAgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKLSAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAotICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Ci0gKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL3wKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlv ZF9zeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAogICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCiAg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMzIKICAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwpAQCAtNTc4LDYgKzYxNiwxNCBAQAog ICogcGNtX2NoYW5uZWxzIC0gdWludDhfdCwgbnVtYmVyIG9mIGNoYW5uZWxzIG9mIHRoaXMgc3Ry ZWFtLAogICogICBbY2hhbm5lbHMtbWluOyBjaGFubmVscy1tYXhdCiAgKiBidWZmZXJfc3ogLSB1 aW50MzJfdCwgYnVmZmVyIHNpemUgdG8gYmUgYWxsb2NhdGVkLCBvY3RldHMKKyAqIHBlcmlvZF9z eiAtIHVpbnQzMl90LCByZWNvbW1lbmRlZCBldmVudCBwZXJpb2Qgc2l6ZSwgb2N0ZXRzCisgKiAg IFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkIChoaW50KSB2YWx1ZSBvZiB0aGUgcGVyaW9kIGF0IHdo aWNoIGZyb250ZW5kIHdvdWxkCisgKiAgIGxpa2UgdG8gcmVjZWl2ZSBYRU5TTkRfRVZUX0NVUl9Q T1Mgbm90aWZpY2F0aW9ucyBmcm9tIHRoZSBiYWNrZW5kIHdoZW4KKyAqICAgc3RyZWFtIHBvc2l0 aW9uIGFkdmFuY2VzIGR1cmluZyBwbGF5YmFjay9jYXB0dXJlLgorICogICBJdCBzaG93cyBob3cg bWFueSBvY3RldHMgYXJlIGV4cGVjdGVkIHRvIGJlIHBsYXllZC9jYXB0dXJlZCBiZWZvcmUKKyAq ICAgc2VuZGluZyBzdWNoIGFuIGV2ZW50LgorICogICBJZiBzZXQgdG8gMCBubyBYRU5TTkRfRVZU X0NVUl9QT1MgZXZlbnRzIGFyZSBzZW50IGJ5IHRoZSBiYWNrZW5kLgorICoKICAqIGdyZWZfZGly ZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFn ZQogICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gQXQgbGVhc3Qgb25l IHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKICAqICAgYnVmZmVyIHNpemUgIChidWZmZXJfc3opIGV4 Y2VlZHMgd2hhdCBjYW4gYmUgYWRkcmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCkBAIC01OTIs NiArNjM4LDcgQEAgc3RydWN0IHhlbnNuZF9vcGVuX3JlcSB7CiAgICAgdWludDE2X3QgcmVzZXJ2 ZWQ7CiAgICAgdWludDMyX3QgYnVmZmVyX3N6OwogICAgIGdyYW50X3JlZl90IGdyZWZfZGlyZWN0 b3J5OworICAgIHVpbnQzMl90IHBlcmlvZF9zejsKIH07CiAKIC8qCkBAIC03NTAsOCArNzk3LDM2 IEBAIHN0cnVjdCB4ZW5zbmRfcndfcmVxIHsKICAqCiAgKiBUaGUgJ3N0cnVjdCB4ZW5zbmRfcndf cmVxJyBpcyBhbHNvIHVzZWQgZm9yIFhFTlNORF9PUF9TRVRfVk9MVU1FLAogICogWEVOU05EX09Q X0dFVF9WT0xVTUUsIFhFTlNORF9PUF9NVVRFLCBYRU5TTkRfT1BfVU5NVVRFLgorICoKKyAqIFJl cXVlc3Qgc3RyZWFtIHJ1bm5pbmcgc3RhdGUgY2hhbmdlIC0gdHJpZ2dlciBQQ00gc3RyZWFtIHJ1 bm5pbmcgc3RhdGUKKyAqIHRvIHN0YXJ0LCBzdG9wLCBwYXVzZSBvciByZXN1bWU6CisgKgorICog ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg ICAzICAgICAgICBvY3RldAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgaWQg ICAgICAgICAgICAgICAgfCAgIF9PUF9UUklHR0VSICB8ICAgIHJlc2VydmVkICAgIHwgNAorICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2CisgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4CisgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogdHlwZSAt IHVpbnQ4X3QsIFhFTlNORF9PUF9UUklHR0VSX1hYWCB2YWx1ZQogICovCiAKK3N0cnVjdCB4ZW5z bmRfdHJpZ2dlcl9yZXEgeworICAgIHVpbnQ4X3QgdHlwZTsKK307CisKIC8qCiAgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKgpAQCAtNzc0LDggKzg0OSw1MSBAQCBzdHJ1Y3QgeGVuc25kX3J3X3Jl cSB7CiAgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAogICogb3BlcmF0 aW9uIC0gdWludDhfdCwgWEVOU05EX09QXyogLSBjb3BpZWQgZnJvbSByZXF1ZXN0CiAgKiBzdGF0 dXMgLSBpbnQzMl90LCByZXNwb25zZSBzdGF0dXMsIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9F WFggb24gZmFpbHVyZQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g RXZlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBFdmVudHMg YXJlIHNlbnQgdmlhIGEgc2hhcmVkIHBhZ2UgYWxsb2NhdGVkIGJ5IHRoZSBmcm9udCBhbmQgcHJv cGFnYXRlZCBieQorICogICBldnQtZXZlbnQtY2hhbm5lbC9ldnQtcmluZy1yZWYgWGVuU3RvcmUg ZW50cmllcworICogQWxsIGV2ZW50IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDMyIG9j dGV0cykKKyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKKyAqICAgICAg ICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAg ICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgICAgICB0eXBlICAgICAgfCAgIHJlc2VydmVkICAgICB8IDQKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIGlkIC0g dWludDE2X3QsIGV2ZW50IGlkLCBtYXkgYmUgdXNlZCBieSBmcm9udAorICogdHlwZSAtIHVpbnQ4 X3QsIHR5cGUgb2YgdGhlIGV2ZW50CisgKgorICoKKyAqIEN1cnJlbnQgc3RyZWFtIHBvc2l0aW9u IC0gZXZlbnQgZnJvbSBiYWNrIHRvIGZyb250IHdoZW4gc3RyZWFtJ3MKKyAqICAgcGxheWJhY2sv Y2FwdHVyZSBwb3NpdGlvbiBoYXMgYWR2YW5jZWQ6CisgKiAgICAgICAgIDAgICAgICAgICAgICAg ICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgX0VW VF9DVVJfUE9TIHwgICByZXNlcnZlZCAgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg cG9zaXRpb24gbG93IDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uIGhpZ2ggMzItYml0 ICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r CisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIHBvc2l0aW9uIC0g Y3VycmVudCB2YWx1ZSBvZiBzdHJlYW0ncyBwbGF5YmFjay9jYXB0dXJlIHBvc2l0aW9uLCBvY3Rl dHMKKyAqCiAgKi8KIAorc3RydWN0IHhlbnNuZF9jdXJfcG9zX2V2dCB7CisgICAgdWludDY0X3Qg cG9zaXRpb247Cit9OworCiBzdHJ1Y3QgeGVuc25kX3JlcSB7CiAgICAgdWludDE2X3QgaWQ7CiAg ICAgdWludDhfdCBvcGVyYXRpb247CkBAIC03ODMsNiArOTAxLDcgQEAgc3RydWN0IHhlbnNuZF9y ZXEgewogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHhlbnNuZF9vcGVuX3JlcSBvcGVuOwog ICAgICAgICBzdHJ1Y3QgeGVuc25kX3J3X3JlcSBydzsKKyAgICAgICAgc3RydWN0IHhlbnNuZF90 cmlnZ2VyX3JlcSB0cmlnZ2VyOwogICAgICAgICB1aW50OF90IHJlc2VydmVkWzI0XTsKICAgICB9 IG9wOwogfTsKQEAgLTc5NSw4ICs5MTQsNDkgQEAgc3RydWN0IHhlbnNuZF9yZXNwIHsKICAgICB1 aW50OF90IHJlc2VydmVkMVsyNF07CiB9OwogCitzdHJ1Y3QgeGVuc25kX2V2dCB7CisgICAgdWlu dDE2X3QgaWQ7CisgICAgdWludDhfdCB0eXBlOworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07Cisg ICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVuc25kX2N1cl9wb3NfZXZ0IGN1cl9wb3M7Cisg ICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbMjRdOworICAgIH0gb3A7Cit9OworCiBERUZJTkVfUklO R19UWVBFUyh4ZW5fc25kaWYsIHN0cnVjdCB4ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVuc25kX3Jlc3Ap OwogCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAg ICBCYWNrIHRvIGZyb250IGV2ZW50cyBkZWxpdmVyeQorICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICogSW4gb3JkZXIgdG8gZGVsaXZlciBhc3luY2hyb25vdXMgZXZlbnRzIGZyb20gYmFjayB0byBm cm9udCBhIHNoYXJlZCBwYWdlIGlzCisgKiBhbGxvY2F0ZWQgYnkgZnJvbnQgYW5kIGl0cyBncmFu dGVkIHJlZmVyZW5jZSBwcm9wYWdhdGVkIHRvIGJhY2sgdmlhCisgKiBYZW5TdG9yZSBlbnRyaWVz IChldnQtcmluZy1yZWYvZXZ0LWV2ZW50LWNoYW5uZWwpLgorICogVGhpcyBwYWdlIGhhcyBhIGNv bW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9uaXplCisg KiBhY2Nlc3MgYW5kIGNvbnRyb2wgZXZlbnQncyByaW5nIGJ1ZmZlciwgd2hpbGUgYmFjayBiZWlu ZyBhIHByb2R1Y2VyIG9mIHRoZQorICogZXZlbnRzIGFuZCBmcm9udCBiZWluZyBhIGNvbnN1bWVy LiBUaGUgcmVzdCBvZiB0aGUgcGFnZSBhZnRlciB0aGUgaGVhZGVyCisgKiBpcyB1c2VkIGZvciBl dmVudCBwYWNrZXRzLgorICoKKyAqIFVwb24gcmVjZXB0aW9uIG9mIGFuIGV2ZW50KHMpIGZyb250 IG1heSBjb25maXJtIGl0cyByZWNlcHRpb24KKyAqIGZvciBlaXRoZXIgZWFjaCBldmVudCwgZ3Jv dXAgb2YgZXZlbnRzIG9yIG5vbmUuCisgKi8KKworc3RydWN0IHhlbnNuZF9ldmVudF9wYWdlIHsK KyAgICB1aW50MzJfdCBpbl9jb25zOworICAgIHVpbnQzMl90IGluX3Byb2Q7CisgICAgdWludDhf dCByZXNlcnZlZFsyNF07Cit9OworCisjZGVmaW5lIFhFTlNORF9FVkVOVF9QQUdFX1NJWkUgNDA5 NgorI2RlZmluZSBYRU5TTkRfSU5fUklOR19PRkZTIChzaXplb2Yoc3RydWN0IHhlbnNuZF9ldmVu dF9wYWdlKSkKKyNkZWZpbmUgWEVOU05EX0lOX1JJTkdfU0laRSAoWEVOU05EX0VWRU5UX1BBR0Vf U0laRSAtIFhFTlNORF9JTl9SSU5HX09GRlMpCisjZGVmaW5lIFhFTlNORF9JTl9SSU5HX0xFTiAo WEVOU05EX0lOX1JJTkdfU0laRSAvIHNpemVvZihzdHJ1Y3QgeGVuc25kX2V2dCkpCisjZGVmaW5l IFhFTlNORF9JTl9SSU5HKHBhZ2UpIFwKKyAgICAoKHN0cnVjdCB4ZW5zbmRfZXZ0ICopKChjaGFy ICopKHBhZ2UpICsgWEVOU05EX0lOX1JJTkdfT0ZGUykpCisjZGVmaW5lIFhFTlNORF9JTl9SSU5H X1JFRihwYWdlLCBpZHgpIFwKKyAgICAoWEVOU05EX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhF TlNORF9JTl9SSU5HX0xFTl0pCisKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fU05ESUZfSF9f ICovCiAKIC8qCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw=