From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gDp4o-000834-4q for ath10k@lists.infradead.org; Sat, 20 Oct 2018 11:06:32 +0000 From: Rajkumar Manoharan Subject: [PATCH 1/6] mac80211: Add TXQ scheduling API Date: Sat, 20 Oct 2018 04:05:29 -0700 Message-Id: <1540033534-11211-2-git-send-email-rmanohar@codeaurora.org> In-Reply-To: <1540033534-11211-1-git-send-email-rmanohar@codeaurora.org> References: <1540033534-11211-1-git-send-email-rmanohar@codeaurora.org> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= RnJvbTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHRva2UuZGs+CgpUaGlzIGFkZHMg YW4gQVBJIHRvIG1hYzgwMjExIHRvIGhhbmRsZSBzY2hlZHVsaW5nIG9mIFRYUXMuIFRoZSBpbnRl cmZhY2UKYmV0d2VlbiBkcml2ZXIgYW5kIG1hYzgwMjExIGZvciBUWFEgaGFuZGxpbmcgaXMgY2hh bmdlZCBieSBhZGRpbmcgdHdvIG5ldwpmdW5jdGlvbnM6IGllZWU4MDIxMV9uZXh0X3R4cSgpLCB3 aGljaCB3aWxsIHJldHVybiB0aGUgbmV4dCBUWFEgdG8gc2NoZWR1bGUKaW4gdGhlIGN1cnJlbnQg cm91bmQtcm9iaW4gcm90YXRpb24sIGFuZCBpZWVlODAyMTFfcmV0dXJuX3R4cSgpLCB3aGljaCB0 aGUKZHJpdmVyIHVzZXMgdG8gaW5kaWNhdGUgdGhhdCBpdCBoYXMgZmluaXNoZWQgc2NoZWR1bGlu ZyBhIFRYUSAod2hpY2ggd2lsbAp0aGVuIGJlIHB1dCBiYWNrIGluIHRoZSBzY2hlZHVsaW5nIHJv dGF0aW9uIGlmIGl0IGlzbid0IGVtcHR5KS4KClRoZSBkcml2ZXIgbXVzdCBjYWxsIGllZWU4MDIx MV90eHFfc2NoZWR1bGVfc3RhcnQoKSBhdCB0aGUgc3RhcnQgb2YgZWFjaApzY2hlZHVsaW5nIHNl c3Npb24sIGFuZCBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX2VuZCgpIGF0IHRoZSBlbmQuIFRoZSBB UEkKdGhlbiBndWFyYW50ZWVzIHRoYXQgdGhlIHNhbWUgVFhRIGlzIG5vdCByZXR1cm5lZCB0d2lj ZSBpbiB0aGUgc2FtZQpzZXNzaW9uIChzbyBhIGRyaXZlciBjYW4gbG9vcCBvbiBpZWVlODAyMTFf bmV4dF90eHEoKSB3aXRob3V0IHdvcnJ5aW5nCmFib3V0IGJyZWFraW5nIHRoZSBsb29wLgoKVXNh Z2Ugb2YgdGhlIG5ldyBBUEkgaXMgb3B0aW9uYWwsIHNvIGRyaXZlcnMgY2FuIGJlIHBvcnRlZCBv bmUgYXQgYSB0aW1lLgpJbiB0aGlzIHBhdGNoLCB0aGUgYWN0dWFsIHNjaGVkdWxpbmcgcGVyZm9y bWVkIGJ5IG1hYzgwMjExIGlzIHNpbXBsZQpyb3VuZC1yb2JpbiwgYnV0IGEgc3Vic2VxdWVudCBj b21taXQgYWRkcyBhaXJ0aW1lIGZhaXJuZXNzIGF3YXJlbmVzcyB0byB0aGUKc2NoZWR1bGVyLgoK U2lnbmVkLW9mZi1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHRva2UuZGs+Ci0t LQogaW5jbHVkZS9uZXQvbWFjODAyMTEuaCAgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCiBuZXQvbWFjODAyMTEvYWdnLXR4LmMgICAgICB8ICAy ICstCiBuZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oICB8ICA5ICsrKysrKysKIG5ldC9tYWM4MDIx MS9pZWVlODAyMTFfaS5oIHwgIDkgKysrKysrKwogbmV0L21hYzgwMjExL21haW4uYyAgICAgICAg fCAgNSArKysrCiBuZXQvbWFjODAyMTEvc3RhX2luZm8uYyAgICB8ICAyICstCiBuZXQvbWFjODAy MTEvdHguYyAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaCBiL2luY2x1ZGUvbmV0L21h YzgwMjExLmgKaW5kZXggYzRmYWRiYWZiZjIxLi4yZjVjMGZiZDQ1M2MgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L21hYzgwMjExLmgKKysrIGIvaW5jbHVkZS9uZXQvbWFjODAyMTEuaApAQCAtMTA4 LDkgKzEwOCwxNSBAQAogICogVGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBpbml0aWFsaXplIGl0 cyBwcml2YXRlIHBlci1xdWV1ZSBkYXRhIGZvciBzdGF0aW9ucwogICogYW5kIGludGVyZmFjZXMg aW4gdGhlIC5hZGRfaW50ZXJmYWNlIGFuZCAuc3RhX2FkZCBvcHMuCiAgKgotICogVGhlIGRyaXZl ciBjYW4ndCBhY2Nlc3MgdGhlIHF1ZXVlIGRpcmVjdGx5LiBUbyBkZXF1ZXVlIGEgZnJhbWUsIGl0 IGNhbGxzCi0gKiBpZWVlODAyMTFfdHhfZGVxdWV1ZSgpLiBXaGVuZXZlciBtYWM4MDIxMSBhZGRz IGEgbmV3IGZyYW1lIHRvIGEgcXVldWUsIGl0Ci0gKiBjYWxscyB0aGUgLndha2VfdHhfcXVldWUg ZHJpdmVyIG9wLgorICogVGhlIGRyaXZlciBjYW4ndCBhY2Nlc3MgdGhlIHF1ZXVlIGRpcmVjdGx5 LiBUbyBkZXF1ZXVlIGEgZnJhbWUgZnJvbSBhCisgKiB0eHEsIGl0IGNhbGxzIGllZWU4MDIxMV90 eF9kZXF1ZXVlKCkuIFdoZW5ldmVyIG1hYzgwMjExIGFkZHMgYSBuZXcgZnJhbWUgdG8gYQorICog cXVldWUsIGl0IGNhbGxzIHRoZSAud2FrZV90eF9xdWV1ZSBkcml2ZXIgb3AuCisgKgorICogRHJp dmVycyBjYW4gb3B0aW9uYWxseSBkZWxlZ2F0ZSByZXNwb25zaWJpbGl0eSBmb3Igc2NoZWR1bGlu ZyBxdWV1ZXMgdG8KKyAqIG1hYzgwMjExLCB0byB0YWtlIGFkdmFudGFnZSBvZiBhaXJ0aW1lIGZh aXJuZXNzIGFjY291bnRpbmcuIEluIHRoaXMgY2FzZSwgdG8KKyAqIG9idGFpbiB0aGUgbmV4dCBx dWV1ZSB0byBwdWxsIGZyYW1lcyBmcm9tLCB0aGUgZHJpdmVyIGNhbGxzCisgKiBpZWVlODAyMTFf bmV4dF90eHEoKS4gVGhlIGRyaXZlciBpcyB0aGVuIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgdHhx IHVzaW5nCisgKiBpZWVlODAyMTFfcmV0dXJuX3R4cSgpLgogICoKICAqIEZvciBBUCBwb3dlcnNh dmUgVElNIGhhbmRsaW5nLCB0aGUgZHJpdmVyIG9ubHkgbmVlZHMgdG8gaW5kaWNhdGUgaWYgaXQg aGFzCiAgKiBidWZmZXJlZCBwYWNrZXRzIGluIHRoZSBkcml2ZXIgc3BlY2lmaWMgZGF0YSBzdHJ1 Y3R1cmVzIGJ5IGNhbGxpbmcKQEAgLTYwNDUsNyArNjA1MSw4IEBAIHZvaWQgaWVlZTgwMjExX3Rk bHNfb3Blcl9yZXF1ZXN0KHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGNvbnN0IHU4ICpwZWVy LAogICogaWVlZTgwMjExX3R4X2RlcXVldWUgLSBkZXF1ZXVlIGEgcGFja2V0IGZyb20gYSBzb2Z0 d2FyZSB0eCBxdWV1ZQogICoKICAqIEBodzogcG9pbnRlciBhcyBvYnRhaW5lZCBmcm9tIGllZWU4 MDIxMV9hbGxvY19odygpCi0gKiBAdHhxOiBwb2ludGVyIG9idGFpbmVkIGZyb20gc3RhdGlvbiBv ciB2aXJ0dWFsIGludGVyZmFjZQorICogQHR4cTogcG9pbnRlciBvYnRhaW5lZCBmcm9tIHN0YXRp b24gb3IgdmlydHVhbCBpbnRlcmZhY2UsIG9yIGZyb20KKyAqICAgICAgIGllZWU4MDIxMV9uZXh0 X3R4cSgpCiAgKgogICogUmV0dXJucyB0aGUgc2tiIGlmIHN1Y2Nlc3NmdWwsICVOVUxMIGlmIG5v IGZyYW1lIHdhcyBhdmFpbGFibGUuCiAgKi8KQEAgLTYwNTMsNiArNjA2MCw1MyBAQCBzdHJ1Y3Qg c2tfYnVmZiAqaWVlZTgwMjExX3R4X2RlcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJ CQkJICAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTsKIAogLyoqCisgKiBpZWVlODAyMTFf bmV4dF90eHEgLSBnZXQgbmV4dCB0eCBxdWV1ZSB0byBwdWxsIHBhY2tldHMgZnJvbQorICoKKyAq IEBodzogcG9pbnRlciBhcyBvYnRhaW5lZCBmcm9tIGllZWU4MDIxMV9hbGxvY19odygpCisgKiBA YWM6IEFDIG51bWJlciB0byByZXR1cm4gcGFja2V0cyBmcm9tLgorICoKKyAqIFNob3VsZCBvbmx5 IGJlIGNhbGxlZCBiZXR3ZWVuIGNhbGxzIHRvIGllZWU4MDIxMV90eHFfc2NoZWR1bGVfc3RhcnQo KQorICogYW5kIGllZWU4MDIxMV90eHFfc2NoZWR1bGVfZW5kKCkuCisgKiBSZXR1cm5zIHRoZSBu ZXh0IHR4cSBpZiBzdWNjZXNzZnVsLCAlTlVMTCBpZiBubyBxdWV1ZSBpcyBlbGlnaWJsZS4gSWYg YSB0eHEKKyAqIGlzIHJldHVybmVkLCBpdCBzaG91bGQgYmUgcmV0dXJuZWQgd2l0aCBpZWVlODAy MTFfcmV0dXJuX3R4cSgpIGFmdGVyIHRoZQorICogZHJpdmVyIGhhcyBmaW5pc2hlZCBzY2hlZHVs aW5nIGl0LgorICovCitzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqaWVlZTgwMjExX25leHRfdHhxKHN0 cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1OCBhYyk7CisKKy8qKgorICogaWVlZTgwMjExX3JldHVy bl90eHEgLSByZXR1cm4gYSBUWFEgcHJldmlvdXNseSBhY3F1aXJlZCBieQorICogaWVlZTgwMjEx X25leHRfdHhxKCkKKyAqCisgKiBAaHc6IHBvaW50ZXIgYXMgb2J0YWluZWQgZnJvbSBpZWVlODAy MTFfYWxsb2NfaHcoKQorICogQHR4cTogcG9pbnRlciBvYnRhaW5lZCBmcm9tIHN0YXRpb24gb3Ig dmlydHVhbCBpbnRlcmZhY2UKKyAqCisgKiBTaG91bGQgb25seSBiZSBjYWxsZWQgYmV0d2VlbiBj YWxscyB0byBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0KCkKKyAqIGFuZCBpZWVlODAyMTFf dHhxX3NjaGVkdWxlX2VuZCgpLgorICovCit2b2lkIGllZWU4MDIxMV9yZXR1cm5fdHhxKHN0cnVj dCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTsKKworLyoqCisg KiBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0IC0gYWNxdWlyZSBsb2NrcyBmb3Igc2FmZSBz Y2hlZHVsaW5nIG9mIGFuIEFDCisgKgorICogQGh3OiBwb2ludGVyIGFzIG9idGFpbmVkIGZyb20g aWVlZTgwMjExX2FsbG9jX2h3KCkKKyAqIEBhYzogQUMgbnVtYmVyIHRvIGFjcXVpcmUgbG9ja3Mg Zm9yCisgKgorICogQWNxdWlyZSBsb2NrcyBuZWVkZWQgdG8gc2NoZWR1bGUgVFhRcyBmcm9tIHRo ZSBnaXZlbiBBQy4gU2hvdWxkIGJlIGNhbGxlZAorICogYmVmb3JlIGllZWU4MDIxMV9uZXh0X3R4 cSgpIG9yIGllZWU4MDIxMV9yZXR1cm5fdHhxKCkuCisgKi8KK3ZvaWQgaWVlZTgwMjExX3R4cV9z Y2hlZHVsZV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgdTggYWMpOworCisvKioKKyAq IGllZWU4MDIxMV90eHFfc2NoZWR1bGVfZW5kIC0gcmVsZWFzZSBsb2NrcyBmb3Igc2FmZSBzY2hl ZHVsaW5nIG9mIGFuIEFDCisgKgorICogQGh3OiBwb2ludGVyIGFzIG9idGFpbmVkIGZyb20gaWVl ZTgwMjExX2FsbG9jX2h3KCkKKyAqIEBhYzogQUMgbnVtYmVyIHRvIGFjcXVpcmUgbG9ja3MgZm9y CisgKgorICogUmVsZWFzZSBsb2NrcyBwcmV2aW91c2x5IGFjcXVpcmVkIGJ5IGllZWU4MDIxMV90 eHFfc2NoZWR1bGVfZW5kKCkuCisgKi8KK3ZvaWQgaWVlZTgwMjExX3R4cV9zY2hlZHVsZV9lbmQo c3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IGFjKTsKKworLyoqCiAgKiBpZWVlODAyMTFfdHhx X2dldF9kZXB0aCAtIGdldCBwZW5kaW5nIGZyYW1lL2J5dGUgY291bnQgb2YgZ2l2ZW4gdHhxCiAg KgogICogVGhlIHZhbHVlcyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgY29oZXJlbnQgd2l0aCBy ZWdhcmQgdG8gZWFjaCBvdGhlciwgaS5lLgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2FnZy10 eC5jIGIvbmV0L21hYzgwMjExL2FnZy10eC5jCmluZGV4IDY5ZTgzMWJjMzE3Yi4uZTk0YjFhMDQw N2FmIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvYWdnLXR4LmMKKysrIGIvbmV0L21hYzgwMjEx L2FnZy10eC5jCkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIHZvaWQgX19yZWxlYXNlcyhhZ2df cXVldWUpCiAJY2xlYXJfYml0KElFRUU4MDIxMV9UWFFfU1RPUCwgJnR4cWktPmZsYWdzKTsKIAls b2NhbF9iaF9kaXNhYmxlKCk7CiAJcmN1X3JlYWRfbG9jaygpOwotCWRydl93YWtlX3R4X3F1ZXVl KHN0YS0+c2RhdGEtPmxvY2FsLCB0eHFpKTsKKwlzY2hlZHVsZV9hbmRfd2FrZV90eHEoc3RhLT5z ZGF0YS0+bG9jYWwsIHR4cWkpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCWxvY2FsX2JoX2VuYWJs ZSgpOwogfQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2RyaXZlci1vcHMuaCBiL25ldC9tYWM4 MDIxMS9kcml2ZXItb3BzLmgKaW5kZXggZTQyYzY0MWI2MTkwLi4wZDQ3ZGFkZWU3NDcgMTAwNjQ0 Ci0tLSBhL25ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmgKKysrIGIvbmV0L21hYzgwMjExL2RyaXZl ci1vcHMuaApAQCAtMTE3Myw2ICsxMTczLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfd2Fr ZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwKIAlsb2NhbC0+b3BzLT53 YWtlX3R4X3F1ZXVlKCZsb2NhbC0+aHcsICZ0eHEtPnR4cSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg dm9pZCBzY2hlZHVsZV9hbmRfd2FrZV90eHEoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWws CisJCQkJCSBzdHJ1Y3QgdHhxX2luZm8gKnR4cWkpCit7CisJc3Bpbl9sb2NrX2JoKCZsb2NhbC0+ YWN0aXZlX3R4cV9sb2NrW3R4cWktPnR4cS5hY10pOworCWllZWU4MDIxMV9yZXR1cm5fdHhxKCZs b2NhbC0+aHcsICZ0eHFpLT50eHEpOworCXNwaW5fdW5sb2NrX2JoKCZsb2NhbC0+YWN0aXZlX3R4 cV9sb2NrW3R4cWktPnR4cS5hY10pOworCWRydl93YWtlX3R4X3F1ZXVlKGxvY2FsLCB0eHFpKTsK K30KKwogc3RhdGljIGlubGluZSBpbnQgZHJ2X2Nhbl9hZ2dyZWdhdGVfaW5fYW1zZHUoc3RydWN0 IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsCiAJCQkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKmhlYWQs CiAJCQkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYikKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIx MS9pZWVlODAyMTFfaS5oIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKaW5kZXggZjQwYTIx Njc5MzVmLi45NzY1MzE3MTc5MDIgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9pZWVlODAyMTFf aS5oCisrKyBiL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCkBAIC04MjksNiArODI5LDggQEAg ZW51bSB0eHFfaW5mb19mbGFncyB7CiAgKglhIGZxX2Zsb3cgd2hpY2ggaXMgYWxyZWFkeSBvd25l ZCBieSBhIGRpZmZlcmVudCB0aW4KICAqIEBkZWZfY3ZhcnM6IGNvZGVsIHZhcnMgZm9yIEBkZWZf ZmxvdwogICogQGZyYWdzOiB1c2VkIHRvIGtlZXAgZnJhZ21lbnRzIGNyZWF0ZWQgYWZ0ZXIgZGVx dWV1ZQorICogQHNjaGVkdWxlX29yZGVyOiB1c2VkIHdpdGggaWVlZTgwMjExX2xvY2FsLT5hY3Rp dmVfdHhxcworICogQHNjaGVkdWxlX3JvdW5kOiBjb3VudGVyIHRvIHByZXZlbnQgaW5maW5pdGUg bG9vcHMgb24gVFhRIHNjaGVkdWxpbmcKICAqLwogc3RydWN0IHR4cV9pbmZvIHsKIAlzdHJ1Y3Qg ZnFfdGluIHRpbjsKQEAgLTgzNiw2ICs4MzgsOCBAQCBzdHJ1Y3QgdHhxX2luZm8gewogCXN0cnVj dCBjb2RlbF92YXJzIGRlZl9jdmFyczsKIAlzdHJ1Y3QgY29kZWxfc3RhdHMgY3N0YXRzOwogCXN0 cnVjdCBza19idWZmX2hlYWQgZnJhZ3M7CisJc3RydWN0IGxpc3RfaGVhZCBzY2hlZHVsZV9vcmRl cjsKKwl1MTYgc2NoZWR1bGVfcm91bmQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIGtl ZXAgbGFzdCEgKi8KQEAgLTExMjcsNiArMTEzMSwxMSBAQCBzdHJ1Y3QgaWVlZTgwMjExX2xvY2Fs IHsKIAlzdHJ1Y3QgY29kZWxfdmFycyAqY3ZhcnM7CiAJc3RydWN0IGNvZGVsX3BhcmFtcyBjcGFy YW1zOwogCisJLyogcHJvdGVjdHMgYWN0aXZlX3R4cXMgYW5kIHR4cWktPnNjaGVkdWxlX29yZGVy ICovCisJc3BpbmxvY2tfdCBhY3RpdmVfdHhxX2xvY2tbSUVFRTgwMjExX05VTV9BQ1NdOworCXN0 cnVjdCBsaXN0X2hlYWQgYWN0aXZlX3R4cXNbSUVFRTgwMjExX05VTV9BQ1NdOworCXUxNiBzY2hl ZHVsZV9yb3VuZFtJRUVFODAyMTFfTlVNX0FDU107CisKIAljb25zdCBzdHJ1Y3QgaWVlZTgwMjEx X29wcyAqb3BzOwogCiAJLyoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQv bWFjODAyMTEvbWFpbi5jCmluZGV4IGU2Mzc1ZDAzNTM1NS4uM2VhMjM2OWUwOTkyIDEwMDY0NAot LS0gYS9uZXQvbWFjODAyMTEvbWFpbi5jCisrKyBiL25ldC9tYWM4MDIxMS9tYWluLmMKQEAgLTY2 Myw2ICs2NjMsMTEgQEAgc3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25t KHNpemVfdCBwcml2X2RhdGFfbGVuLAogCXNwaW5fbG9ja19pbml0KCZsb2NhbC0+cnhfcGF0aF9s b2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmbG9jYWwtPnF1ZXVlX3N0b3BfcmVhc29uX2xvY2spOwog CisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyBpKyspIHsKKwkJSU5JVF9MSVNU X0hFQUQoJmxvY2FsLT5hY3RpdmVfdHhxc1tpXSk7CisJCXNwaW5fbG9ja19pbml0KCZsb2NhbC0+ YWN0aXZlX3R4cV9sb2NrW2ldKTsKKwl9CisKIAlJTklUX0xJU1RfSEVBRCgmbG9jYWwtPmNoYW5j dHhfbGlzdCk7CiAJbXV0ZXhfaW5pdCgmbG9jYWwtPmNoYW5jdHhfbXR4KTsKIApkaWZmIC0tZ2l0 IGEvbmV0L21hYzgwMjExL3N0YV9pbmZvLmMgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8uYwppbmRl eCBmYjhjMjI1MmFjMGUuLmMyZjVjYjdkZjU0ZiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3N0 YV9pbmZvLmMKKysrIGIvbmV0L21hYzgwMjExL3N0YV9pbmZvLmMKQEAgLTEyNDksNyArMTI0OSw3 IEBAIHZvaWQgaWVlZTgwMjExX3N0YV9wc19kZWxpdmVyX3dha2V1cChzdHJ1Y3Qgc3RhX2luZm8g KnN0YSkKIAkJaWYgKCFzdGEtPnN0YS50eHFbaV0gfHwgIXR4cV9oYXNfcXVldWUoc3RhLT5zdGEu dHhxW2ldKSkKIAkJCWNvbnRpbnVlOwogCi0JCWRydl93YWtlX3R4X3F1ZXVlKGxvY2FsLCB0b190 eHFfaW5mbyhzdGEtPnN0YS50eHFbaV0pKTsKKwkJc2NoZWR1bGVfYW5kX3dha2VfdHhxKGxvY2Fs LCB0b190eHFfaW5mbyhzdGEtPnN0YS50eHFbaV0pKTsKIAl9CiAKIAlza2JfcXVldWVfaGVhZF9p bml0KCZwZW5kaW5nKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90eC5jIGIvbmV0L21hYzgw MjExL3R4LmMKaW5kZXggZTBjY2VlMjNmYmNkLi4zMDU5NjUyODM1MDYgMTAwNjQ0Ci0tLSBhL25l dC9tYWM4MDIxMS90eC5jCisrKyBiL25ldC9tYWM4MDIxMS90eC5jCkBAIC0xNDQ5LDYgKzE0NDks NyBAQCB2b2lkIGllZWU4MDIxMV90eHFfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRh ICpzZGF0YSwKIAljb2RlbF92YXJzX2luaXQoJnR4cWktPmRlZl9jdmFycyk7CiAJY29kZWxfc3Rh dHNfaW5pdCgmdHhxaS0+Y3N0YXRzKTsKIAlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJnR4cWktPmZy YWdzKTsKKwlJTklUX0xJU1RfSEVBRCgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpOwogCiAJdHhxaS0+ dHhxLnZpZiA9ICZzZGF0YS0+dmlmOwogCkBAIC0xNDg5LDYgKzE0OTAsOSBAQCB2b2lkIGllZWU4 MDIxMV90eHFfcHVyZ2Uoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsCiAKIAlmcV90aW5f cmVzZXQoZnEsIHRpbiwgZnFfc2tiX2ZyZWVfZnVuYyk7CiAJaWVlZTgwMjExX3B1cmdlX3R4X3F1 ZXVlKCZsb2NhbC0+aHcsICZ0eHFpLT5mcmFncyk7CisJc3Bpbl9sb2NrX2JoKCZsb2NhbC0+YWN0 aXZlX3R4cV9sb2NrW3R4cWktPnR4cS5hY10pOworCWxpc3RfZGVsX2luaXQoJnR4cWktPnNjaGVk dWxlX29yZGVyKTsKKwlzcGluX3VubG9ja19iaCgmbG9jYWwtPmFjdGl2ZV90eHFfbG9ja1t0eHFp LT50eHEuYWNdKTsKIH0KIAogdm9pZCBpZWVlODAyMTFfdHhxX3NldF9wYXJhbXMoc3RydWN0IGll ZWU4MDIxMV9sb2NhbCAqbG9jYWwpCkBAIC0xNjA1LDcgKzE2MDksNyBAQCBzdGF0aWMgYm9vbCBp ZWVlODAyMTFfcXVldWVfc2tiKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLAogCWllZWU4 MDIxMV90eHFfZW5xdWV1ZShsb2NhbCwgdHhxaSwgc2tiKTsKIAlzcGluX3VubG9ja19iaCgmZnEt PmxvY2spOwogCi0JZHJ2X3dha2VfdHhfcXVldWUobG9jYWwsIHR4cWkpOworCXNjaGVkdWxlX2Fu ZF93YWtlX3R4cShsb2NhbCwgdHhxaSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTM2MjcsNiAr MzYzMSw1OCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX3R4X2RlcXVldWUoc3RydWN0IGll ZWU4MDIxMV9odyAqaHcsCiB9CiBFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV90eF9kZXF1ZXVlKTsK IAorc3RydWN0IGllZWU4MDIxMV90eHEgKmllZWU4MDIxMV9uZXh0X3R4cShzdHJ1Y3QgaWVlZTgw MjExX2h3ICpodywgdTggYWMpCit7CisJc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBo d190b19sb2NhbChodyk7CisJc3RydWN0IHR4cV9pbmZvICp0eHFpID0gTlVMTDsKKworCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmxvY2FsLT5hY3RpdmVfdHhxX2xvY2tbYWNdKTsKKworCXR4cWkgPSBs aXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmxvY2FsLT5hY3RpdmVfdHhxc1thY10sCisJCQkJCXN0 cnVjdCB0eHFfaW5mbywKKwkJCQkJc2NoZWR1bGVfb3JkZXIpOworCisJaWYgKCF0eHFpIHx8IHR4 cWktPnNjaGVkdWxlX3JvdW5kID09IGxvY2FsLT5zY2hlZHVsZV9yb3VuZFthY10pCisJCXJldHVy biBOVUxMOworCisJbGlzdF9kZWxfaW5pdCgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpOworCXR4cWkt PnNjaGVkdWxlX3JvdW5kID0gbG9jYWwtPnNjaGVkdWxlX3JvdW5kW2FjXTsKKwlyZXR1cm4gJnR4 cWktPnR4cTsKK30KK0VYUE9SVF9TWU1CT0woaWVlZTgwMjExX25leHRfdHhxKTsKKwordm9pZCBp ZWVlODAyMTFfcmV0dXJuX3R4cShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKKwkJCSAgc3RydWN0 IGllZWU4MDIxMV90eHEgKnR4cSkKK3sKKwlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9 IGh3X3RvX2xvY2FsKGh3KTsKKwlzdHJ1Y3QgdHhxX2luZm8gKnR4cWkgPSB0b190eHFfaW5mbyh0 eHEpOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbG9jYWwtPmFjdGl2ZV90eHFfbG9ja1t0eHEt PmFjXSk7CisKKwlpZiAobGlzdF9lbXB0eSgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpICYmCisJICAg ICghc2tiX3F1ZXVlX2VtcHR5KCZ0eHFpLT5mcmFncykgfHwgdHhxaS0+dGluLmJhY2tsb2dfcGFj a2V0cykpCisJCWxpc3RfYWRkX3RhaWwoJnR4cWktPnNjaGVkdWxlX29yZGVyLAorCQkJICAgICAg JmxvY2FsLT5hY3RpdmVfdHhxc1t0eHEtPmFjXSk7Cit9CitFWFBPUlRfU1lNQk9MKGllZWU4MDIx MV9yZXR1cm5fdHhxKTsKKwordm9pZCBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0KHN0cnVj dCBpZWVlODAyMTFfaHcgKmh3LCB1OCBhYykKK3sKKwlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICps b2NhbCA9IGh3X3RvX2xvY2FsKGh3KTsKKworCXNwaW5fbG9ja19iaCgmbG9jYWwtPmFjdGl2ZV90 eHFfbG9ja1thY10pOworCWxvY2FsLT5zY2hlZHVsZV9yb3VuZFthY10rKzsKK30KK0VYUE9SVF9T WU1CT0woaWVlZTgwMjExX3R4cV9zY2hlZHVsZV9zdGFydCk7CisKK3ZvaWQgaWVlZTgwMjExX3R4 cV9zY2hlZHVsZV9lbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IGFjKQoreworCXN0cnVj dCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpOworCisJc3Bpbl91bmxv Y2tfYmgoJmxvY2FsLT5hY3RpdmVfdHhxX2xvY2tbYWNdKTsKK30KK0VYUE9SVF9TWU1CT0woaWVl ZTgwMjExX3R4cV9zY2hlZHVsZV9lbmQpOworCiB2b2lkIF9faWVlZTgwMjExX3N1YmlmX3N0YXJ0 X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs CiAJCQkJICB1MzIgaW5mb19mbGFncykKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYXRoMTBrIG1haWxpbmcgbGlzdAphdGgxMGtAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2F0aDEwawo=