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 1gZQFn-0007BC-I7 for ath10k@lists.infradead.org; Wed, 19 Dec 2018 01:02:29 +0000 From: Rajkumar Manoharan Subject: [PATCH v5 1/6] mac80211: Add TXQ scheduling API Date: Tue, 18 Dec 2018 17:02:06 -0800 Message-Id: <1545181331-5288-2-git-send-email-rmanohar@codeaurora.org> In-Reply-To: <1545181331-5288-1-git-send-email-rmanohar@codeaurora.org> References: <1545181331-5288-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: make-wifi-fast@lists.bufferbloat.net, =?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 YzgwMjExLmgKaW5kZXggNzE5ODVlOTVkMmQ5Li4xOGIxMWMxMTliN2UgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L21hYzgwMjExLmgKKysrIGIvaW5jbHVkZS9uZXQvbWFjODAyMTEuaApAQCAtMTA4 LDkgKzEwOCwxNSBAQAogICogVGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBpbml0aWFsaXplIGl0 cyBwcml2YXRlIHBlci1xdWV1ZSBkYXRhIGZvciBzdGF0aW9ucwogICogYW5kIGludGVyZmFjZXMg aW4gdGhlIC5hZGRfaW50ZXJmYWNlIGFuZCAuc3RhX2FkZCBvcHMuCiAgKgotICogVGhlIGRyaXZl ciBjYW4ndCBhY2Nlc3MgdGhlIHF1ZXVlIGRpcmVjdGx5LiBUbyBkZXF1ZXVlIGEgZnJhbWUsIGl0 IGNhbGxzCi0gKiBpZWVlODAyMTFfdHhfZGVxdWV1ZSgpLiBXaGVuZXZlciBtYWM4MDIxMSBhZGRz IGEgbmV3IGZyYW1lIHRvIGEgcXVldWUsIGl0Ci0gKiBjYWxscyB0aGUgLndha2VfdHhfcXVldWUg ZHJpdmVyIG9wLgorICogVGhlIGRyaXZlciBjYW4ndCBhY2Nlc3MgdGhlIHF1ZXVlIGRpcmVjdGx5 LiBUbyBkZXF1ZXVlIGEgZnJhbWUgZnJvbSBhCisgKiB0eHEsIGl0IGNhbGxzIGllZWU4MDIxMV90 eF9kZXF1ZXVlKCkuIFdoZW5ldmVyIG1hYzgwMjExIGFkZHMgYSBuZXcgZnJhbWUgdG8gYQorICog cXVldWUsIGl0IGNhbGxzIHRoZSAud2FrZV90eF9xdWV1ZSBkcml2ZXIgb3AuCisgKgorICogRHJp dmVycyBjYW4gb3B0aW9uYWxseSBkZWxlZ2F0ZSByZXNwb25zaWJpbGl0eSBmb3Igc2NoZWR1bGlu ZyBxdWV1ZXMgdG8KKyAqIG1hYzgwMjExLCB0byB0YWtlIGFkdmFudGFnZSBvZiBhaXJ0aW1lIGZh aXJuZXNzIGFjY291bnRpbmcuIEluIHRoaXMgY2FzZSwgdG8KKyAqIG9idGFpbiB0aGUgbmV4dCBx dWV1ZSB0byBwdWxsIGZyYW1lcyBmcm9tLCB0aGUgZHJpdmVyIGNhbGxzCisgKiBpZWVlODAyMTFf bmV4dF90eHEoKS4gVGhlIGRyaXZlciBpcyB0aGVuIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgdHhx IHVzaW5nCisgKiBpZWVlODAyMTFfcmV0dXJuX3R4cSgpLgogICoKICAqIEZvciBBUCBwb3dlcnNh dmUgVElNIGhhbmRsaW5nLCB0aGUgZHJpdmVyIG9ubHkgbmVlZHMgdG8gaW5kaWNhdGUgaWYgaXQg aGFzCiAgKiBidWZmZXJlZCBwYWNrZXRzIGluIHRoZSBkcml2ZXIgc3BlY2lmaWMgZGF0YSBzdHJ1 Y3R1cmVzIGJ5IGNhbGxpbmcKQEAgLTYwODgsNyArNjA5NCw4IEBAIHZvaWQgaWVlZTgwMjExX3Rk bHNfb3Blcl9yZXF1ZXN0KHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGNvbnN0IHU4ICpwZWVy LAogICogaWVlZTgwMjExX3R4X2RlcXVldWUgLSBkZXF1ZXVlIGEgcGFja2V0IGZyb20gYSBzb2Z0 d2FyZSB0eCBxdWV1ZQogICoKICAqIEBodzogcG9pbnRlciBhcyBvYnRhaW5lZCBmcm9tIGllZWU4 MDIxMV9hbGxvY19odygpCi0gKiBAdHhxOiBwb2ludGVyIG9idGFpbmVkIGZyb20gc3RhdGlvbiBv ciB2aXJ0dWFsIGludGVyZmFjZQorICogQHR4cTogcG9pbnRlciBvYnRhaW5lZCBmcm9tIHN0YXRp b24gb3IgdmlydHVhbCBpbnRlcmZhY2UsIG9yIGZyb20KKyAqCWllZWU4MDIxMV9uZXh0X3R4cSgp CiAgKgogICogUmV0dXJucyB0aGUgc2tiIGlmIHN1Y2Nlc3NmdWwsICVOVUxMIGlmIG5vIGZyYW1l IHdhcyBhdmFpbGFibGUuCiAgKi8KQEAgLTYwOTYsNiArNjEwMyw1MyBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqaWVlZTgwMjExX3R4X2RlcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJCQkJICAg ICBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTsKIAogLyoqCisgKiBpZWVlODAyMTFfbmV4dF90 eHEgLSBnZXQgbmV4dCB0eCBxdWV1ZSB0byBwdWxsIHBhY2tldHMgZnJvbQorICoKKyAqIEBodzog cG9pbnRlciBhcyBvYnRhaW5lZCBmcm9tIGllZWU4MDIxMV9hbGxvY19odygpCisgKiBAYWM6IEFD IG51bWJlciB0byByZXR1cm4gcGFja2V0cyBmcm9tLgorICoKKyAqIFNob3VsZCBvbmx5IGJlIGNh bGxlZCBiZXR3ZWVuIGNhbGxzIHRvIGllZWU4MDIxMV90eHFfc2NoZWR1bGVfc3RhcnQoKQorICog YW5kIGllZWU4MDIxMV90eHFfc2NoZWR1bGVfZW5kKCkuCisgKiBSZXR1cm5zIHRoZSBuZXh0IHR4 cSBpZiBzdWNjZXNzZnVsLCAlTlVMTCBpZiBubyBxdWV1ZSBpcyBlbGlnaWJsZS4gSWYgYSB0eHEK KyAqIGlzIHJldHVybmVkLCBpdCBzaG91bGQgYmUgcmV0dXJuZWQgd2l0aCBpZWVlODAyMTFfcmV0 dXJuX3R4cSgpIGFmdGVyIHRoZQorICogZHJpdmVyIGhhcyBmaW5pc2hlZCBzY2hlZHVsaW5nIGl0 LgorICovCitzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqaWVlZTgwMjExX25leHRfdHhxKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LCB1OCBhYyk7CisKKy8qKgorICogaWVlZTgwMjExX3JldHVybl90eHEg LSByZXR1cm4gYSBUWFEgcHJldmlvdXNseSBhY3F1aXJlZCBieQorICogaWVlZTgwMjExX25leHRf dHhxKCkKKyAqCisgKiBAaHc6IHBvaW50ZXIgYXMgb2J0YWluZWQgZnJvbSBpZWVlODAyMTFfYWxs b2NfaHcoKQorICogQHR4cTogcG9pbnRlciBvYnRhaW5lZCBmcm9tIHN0YXRpb24gb3IgdmlydHVh bCBpbnRlcmZhY2UKKyAqCisgKiBTaG91bGQgb25seSBiZSBjYWxsZWQgYmV0d2VlbiBjYWxscyB0 byBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0KCkKKyAqIGFuZCBpZWVlODAyMTFfdHhxX3Nj aGVkdWxlX2VuZCgpLgorICovCit2b2lkIGllZWU4MDIxMV9yZXR1cm5fdHhxKHN0cnVjdCBpZWVl ODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTsKKworLyoqCisgKiBpZWVl ODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0IC0gYWNxdWlyZSBsb2NrcyBmb3Igc2FmZSBzY2hlZHVs aW5nIG9mIGFuIEFDCisgKgorICogQGh3OiBwb2ludGVyIGFzIG9idGFpbmVkIGZyb20gaWVlZTgw MjExX2FsbG9jX2h3KCkKKyAqIEBhYzogQUMgbnVtYmVyIHRvIGFjcXVpcmUgbG9ja3MgZm9yCisg KgorICogQWNxdWlyZSBsb2NrcyBuZWVkZWQgdG8gc2NoZWR1bGUgVFhRcyBmcm9tIHRoZSBnaXZl biBBQy4gU2hvdWxkIGJlIGNhbGxlZAorICogYmVmb3JlIGllZWU4MDIxMV9uZXh0X3R4cSgpIG9y IGllZWU4MDIxMV9yZXR1cm5fdHhxKCkuCisgKi8KK3ZvaWQgaWVlZTgwMjExX3R4cV9zY2hlZHVs ZV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgdTggYWMpOworCisvKioKKyAqIGllZWU4 MDIxMV90eHFfc2NoZWR1bGVfZW5kIC0gcmVsZWFzZSBsb2NrcyBmb3Igc2FmZSBzY2hlZHVsaW5n IG9mIGFuIEFDCisgKgorICogQGh3OiBwb2ludGVyIGFzIG9idGFpbmVkIGZyb20gaWVlZTgwMjEx X2FsbG9jX2h3KCkKKyAqIEBhYzogQUMgbnVtYmVyIHRvIGFjcXVpcmUgbG9ja3MgZm9yCisgKgor ICogUmVsZWFzZSBsb2NrcyBwcmV2aW91c2x5IGFjcXVpcmVkIGJ5IGllZWU4MDIxMV90eHFfc2No ZWR1bGVfZW5kKCkuCisgKi8KK3ZvaWQgaWVlZTgwMjExX3R4cV9zY2hlZHVsZV9lbmQoc3RydWN0 IGllZWU4MDIxMV9odyAqaHcsIHU4IGFjKTsKKworLyoqCiAgKiBpZWVlODAyMTFfdHhxX2dldF9k ZXB0aCAtIGdldCBwZW5kaW5nIGZyYW1lL2J5dGUgY291bnQgb2YgZ2l2ZW4gdHhxCiAgKgogICog VGhlIHZhbHVlcyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgY29oZXJlbnQgd2l0aCByZWdhcmQg dG8gZWFjaCBvdGhlciwgaS5lLgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2FnZy10eC5jIGIv bmV0L21hYzgwMjExL2FnZy10eC5jCmluZGV4IDY5ZTgzMWJjMzE3Yi4uZTk0YjFhMDQwN2FmIDEw MDY0NAotLS0gYS9uZXQvbWFjODAyMTEvYWdnLXR4LmMKKysrIGIvbmV0L21hYzgwMjExL2FnZy10 eC5jCkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIHZvaWQgX19yZWxlYXNlcyhhZ2dfcXVldWUp CiAJY2xlYXJfYml0KElFRUU4MDIxMV9UWFFfU1RPUCwgJnR4cWktPmZsYWdzKTsKIAlsb2NhbF9i aF9kaXNhYmxlKCk7CiAJcmN1X3JlYWRfbG9jaygpOwotCWRydl93YWtlX3R4X3F1ZXVlKHN0YS0+ c2RhdGEtPmxvY2FsLCB0eHFpKTsKKwlzY2hlZHVsZV9hbmRfd2FrZV90eHEoc3RhLT5zZGF0YS0+ bG9jYWwsIHR4cWkpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwog fQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2RyaXZlci1vcHMuaCBiL25ldC9tYWM4MDIxMS9k cml2ZXItb3BzLmgKaW5kZXggMGIxNzQ3YTIzMTNkLi5jZTQxMzgzMjM4MjAgMTAwNjQ0Ci0tLSBh L25ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmgKKysrIGIvbmV0L21hYzgwMjExL2RyaXZlci1vcHMu aApAQCAtMTE3Myw2ICsxMTczLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfd2FrZV90eF9x dWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwKIAlsb2NhbC0+b3BzLT53YWtlX3R4 X3F1ZXVlKCZsb2NhbC0+aHcsICZ0eHEtPnR4cSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBz Y2hlZHVsZV9hbmRfd2FrZV90eHEoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsCisJCQkJ CSBzdHJ1Y3QgdHhxX2luZm8gKnR4cWkpCit7CisJc3Bpbl9sb2NrX2JoKCZsb2NhbC0+YWN0aXZl X3R4cV9sb2NrW3R4cWktPnR4cS5hY10pOworCWllZWU4MDIxMV9yZXR1cm5fdHhxKCZsb2NhbC0+ aHcsICZ0eHFpLT50eHEpOworCXNwaW5fdW5sb2NrX2JoKCZsb2NhbC0+YWN0aXZlX3R4cV9sb2Nr W3R4cWktPnR4cS5hY10pOworCWRydl93YWtlX3R4X3F1ZXVlKGxvY2FsLCB0eHFpKTsKK30KKwog c3RhdGljIGlubGluZSBpbnQgZHJ2X2Nhbl9hZ2dyZWdhdGVfaW5fYW1zZHUoc3RydWN0IGllZWU4 MDIxMV9sb2NhbCAqbG9jYWwsCiAJCQkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKmhlYWQsCiAJCQkJ CSAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYikKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pZWVl ODAyMTFfaS5oIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKaW5kZXggMTBhMDUwNjJlNGEw Li4zMzc2M2EyZWFjODEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCisr KyBiL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCkBAIC04MzAsNiArODMwLDggQEAgZW51bSB0 eHFfaW5mb19mbGFncyB7CiAgKglhIGZxX2Zsb3cgd2hpY2ggaXMgYWxyZWFkeSBvd25lZCBieSBh IGRpZmZlcmVudCB0aW4KICAqIEBkZWZfY3ZhcnM6IGNvZGVsIHZhcnMgZm9yIEBkZWZfZmxvdwog ICogQGZyYWdzOiB1c2VkIHRvIGtlZXAgZnJhZ21lbnRzIGNyZWF0ZWQgYWZ0ZXIgZGVxdWV1ZQor ICogQHNjaGVkdWxlX29yZGVyOiB1c2VkIHdpdGggaWVlZTgwMjExX2xvY2FsLT5hY3RpdmVfdHhx cworICogQHNjaGVkdWxlX3JvdW5kOiBjb3VudGVyIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHMg b24gVFhRIHNjaGVkdWxpbmcKICAqLwogc3RydWN0IHR4cV9pbmZvIHsKIAlzdHJ1Y3QgZnFfdGlu IHRpbjsKQEAgLTgzNyw2ICs4MzksOCBAQCBzdHJ1Y3QgdHhxX2luZm8gewogCXN0cnVjdCBjb2Rl bF92YXJzIGRlZl9jdmFyczsKIAlzdHJ1Y3QgY29kZWxfc3RhdHMgY3N0YXRzOwogCXN0cnVjdCBz a19idWZmX2hlYWQgZnJhZ3M7CisJc3RydWN0IGxpc3RfaGVhZCBzY2hlZHVsZV9vcmRlcjsKKwl1 MTYgc2NoZWR1bGVfcm91bmQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8qIGtlZXAgbGFz dCEgKi8KQEAgLTExMjgsNiArMTEzMiwxMSBAQCBzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsIHsKIAlz dHJ1Y3QgY29kZWxfdmFycyAqY3ZhcnM7CiAJc3RydWN0IGNvZGVsX3BhcmFtcyBjcGFyYW1zOwog CisJLyogcHJvdGVjdHMgYWN0aXZlX3R4cXMgYW5kIHR4cWktPnNjaGVkdWxlX29yZGVyICovCisJ c3BpbmxvY2tfdCBhY3RpdmVfdHhxX2xvY2tbSUVFRTgwMjExX05VTV9BQ1NdOworCXN0cnVjdCBs aXN0X2hlYWQgYWN0aXZlX3R4cXNbSUVFRTgwMjExX05VTV9BQ1NdOworCXUxNiBzY2hlZHVsZV9y b3VuZFtJRUVFODAyMTFfTlVNX0FDU107CisKIAljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyAq b3BzOwogCiAJLyoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAy MTEvbWFpbi5jCmluZGV4IDdiODMyMGQ0YThlNC4uNWQyOTJlZjBhNTQ0IDEwMDY0NAotLS0gYS9u ZXQvbWFjODAyMTEvbWFpbi5jCisrKyBiL25ldC9tYWM4MDIxMS9tYWluLmMKQEAgLTY2Myw2ICs2 NjMsMTEgQEAgc3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVf dCBwcml2X2RhdGFfbGVuLAogCXNwaW5fbG9ja19pbml0KCZsb2NhbC0+cnhfcGF0aF9sb2NrKTsK IAlzcGluX2xvY2tfaW5pdCgmbG9jYWwtPnF1ZXVlX3N0b3BfcmVhc29uX2xvY2spOwogCisJZm9y IChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyBpKyspIHsKKwkJSU5JVF9MSVNUX0hFQUQo JmxvY2FsLT5hY3RpdmVfdHhxc1tpXSk7CisJCXNwaW5fbG9ja19pbml0KCZsb2NhbC0+YWN0aXZl X3R4cV9sb2NrW2ldKTsKKwl9CisKIAlJTklUX0xJU1RfSEVBRCgmbG9jYWwtPmNoYW5jdHhfbGlz dCk7CiAJbXV0ZXhfaW5pdCgmbG9jYWwtPmNoYW5jdHhfbXR4KTsKIApkaWZmIC0tZ2l0IGEvbmV0 L21hYzgwMjExL3N0YV9pbmZvLmMgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8uYwppbmRleCBmYjhj MjI1MmFjMGUuLmMyZjVjYjdkZjU0ZiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3N0YV9pbmZv LmMKKysrIGIvbmV0L21hYzgwMjExL3N0YV9pbmZvLmMKQEAgLTEyNDksNyArMTI0OSw3IEBAIHZv aWQgaWVlZTgwMjExX3N0YV9wc19kZWxpdmVyX3dha2V1cChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSkK IAkJaWYgKCFzdGEtPnN0YS50eHFbaV0gfHwgIXR4cV9oYXNfcXVldWUoc3RhLT5zdGEudHhxW2ld KSkKIAkJCWNvbnRpbnVlOwogCi0JCWRydl93YWtlX3R4X3F1ZXVlKGxvY2FsLCB0b190eHFfaW5m byhzdGEtPnN0YS50eHFbaV0pKTsKKwkJc2NoZWR1bGVfYW5kX3dha2VfdHhxKGxvY2FsLCB0b190 eHFfaW5mbyhzdGEtPnN0YS50eHFbaV0pKTsKIAl9CiAKIAlza2JfcXVldWVfaGVhZF9pbml0KCZw ZW5kaW5nKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90eC5jIGIvbmV0L21hYzgwMjExL3R4 LmMKaW5kZXggMWY1MzZiYTU3M2I0Li5hZTg5N2M0ZDI1MjAgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4 MDIxMS90eC5jCisrKyBiL25ldC9tYWM4MDIxMS90eC5jCkBAIC0xNDQ5LDYgKzE0NDksNyBAQCB2 b2lkIGllZWU4MDIxMV90eHFfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0 YSwKIAljb2RlbF92YXJzX2luaXQoJnR4cWktPmRlZl9jdmFycyk7CiAJY29kZWxfc3RhdHNfaW5p dCgmdHhxaS0+Y3N0YXRzKTsKIAlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJnR4cWktPmZyYWdzKTsK KwlJTklUX0xJU1RfSEVBRCgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpOwogCiAJdHhxaS0+dHhxLnZp ZiA9ICZzZGF0YS0+dmlmOwogCkBAIC0xNDg5LDYgKzE0OTAsOSBAQCB2b2lkIGllZWU4MDIxMV90 eHFfcHVyZ2Uoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsCiAKIAlmcV90aW5fcmVzZXQo ZnEsIHRpbiwgZnFfc2tiX2ZyZWVfZnVuYyk7CiAJaWVlZTgwMjExX3B1cmdlX3R4X3F1ZXVlKCZs b2NhbC0+aHcsICZ0eHFpLT5mcmFncyk7CisJc3Bpbl9sb2NrX2JoKCZsb2NhbC0+YWN0aXZlX3R4 cV9sb2NrW3R4cWktPnR4cS5hY10pOworCWxpc3RfZGVsX2luaXQoJnR4cWktPnNjaGVkdWxlX29y ZGVyKTsKKwlzcGluX3VubG9ja19iaCgmbG9jYWwtPmFjdGl2ZV90eHFfbG9ja1t0eHFpLT50eHEu YWNdKTsKIH0KIAogdm9pZCBpZWVlODAyMTFfdHhxX3NldF9wYXJhbXMoc3RydWN0IGllZWU4MDIx MV9sb2NhbCAqbG9jYWwpCkBAIC0xNjA1LDcgKzE2MDksNyBAQCBzdGF0aWMgYm9vbCBpZWVlODAy MTFfcXVldWVfc2tiKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLAogCWllZWU4MDIxMV90 eHFfZW5xdWV1ZShsb2NhbCwgdHhxaSwgc2tiKTsKIAlzcGluX3VubG9ja19iaCgmZnEtPmxvY2sp OwogCi0JZHJ2X3dha2VfdHhfcXVldWUobG9jYWwsIHR4cWkpOworCXNjaGVkdWxlX2FuZF93YWtl X3R4cShsb2NhbCwgdHhxaSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTM2MjcsNiArMzYzMSw1 OCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqaWVlZTgwMjExX3R4X2RlcXVldWUoc3RydWN0IGllZWU4MDIx MV9odyAqaHcsCiB9CiBFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV90eF9kZXF1ZXVlKTsKIAorc3Ry dWN0IGllZWU4MDIxMV90eHEgKmllZWU4MDIxMV9uZXh0X3R4cShzdHJ1Y3QgaWVlZTgwMjExX2h3 ICpodywgdTggYWMpCit7CisJc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19s b2NhbChodyk7CisJc3RydWN0IHR4cV9pbmZvICp0eHFpID0gTlVMTDsKKworCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmxvY2FsLT5hY3RpdmVfdHhxX2xvY2tbYWNdKTsKKworCXR4cWkgPSBsaXN0X2Zp cnN0X2VudHJ5X29yX251bGwoJmxvY2FsLT5hY3RpdmVfdHhxc1thY10sCisJCQkJCXN0cnVjdCB0 eHFfaW5mbywKKwkJCQkJc2NoZWR1bGVfb3JkZXIpOworCisJaWYgKCF0eHFpIHx8IHR4cWktPnNj aGVkdWxlX3JvdW5kID09IGxvY2FsLT5zY2hlZHVsZV9yb3VuZFthY10pCisJCXJldHVybiBOVUxM OworCisJbGlzdF9kZWxfaW5pdCgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpOworCXR4cWktPnNjaGVk dWxlX3JvdW5kID0gbG9jYWwtPnNjaGVkdWxlX3JvdW5kW2FjXTsKKwlyZXR1cm4gJnR4cWktPnR4 cTsKK30KK0VYUE9SVF9TWU1CT0woaWVlZTgwMjExX25leHRfdHhxKTsKKwordm9pZCBpZWVlODAy MTFfcmV0dXJuX3R4cShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKKwkJCSAgc3RydWN0IGllZWU4 MDIxMV90eHEgKnR4cSkKK3sKKwlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3Rv X2xvY2FsKGh3KTsKKwlzdHJ1Y3QgdHhxX2luZm8gKnR4cWkgPSB0b190eHFfaW5mbyh0eHEpOwor CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbG9jYWwtPmFjdGl2ZV90eHFfbG9ja1t0eHEtPmFjXSk7 CisKKwlpZiAobGlzdF9lbXB0eSgmdHhxaS0+c2NoZWR1bGVfb3JkZXIpICYmCisJICAgICghc2ti X3F1ZXVlX2VtcHR5KCZ0eHFpLT5mcmFncykgfHwgdHhxaS0+dGluLmJhY2tsb2dfcGFja2V0cykp CisJCWxpc3RfYWRkX3RhaWwoJnR4cWktPnNjaGVkdWxlX29yZGVyLAorCQkJICAgICAgJmxvY2Fs LT5hY3RpdmVfdHhxc1t0eHEtPmFjXSk7Cit9CitFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9yZXR1 cm5fdHhxKTsKKwordm9pZCBpZWVlODAyMTFfdHhxX3NjaGVkdWxlX3N0YXJ0KHN0cnVjdCBpZWVl ODAyMTFfaHcgKmh3LCB1OCBhYykKK3sKKwlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9 IGh3X3RvX2xvY2FsKGh3KTsKKworCXNwaW5fbG9ja19iaCgmbG9jYWwtPmFjdGl2ZV90eHFfbG9j a1thY10pOworCWxvY2FsLT5zY2hlZHVsZV9yb3VuZFthY10rKzsKK30KK0VYUE9SVF9TWU1CT0wo aWVlZTgwMjExX3R4cV9zY2hlZHVsZV9zdGFydCk7CisKK3ZvaWQgaWVlZTgwMjExX3R4cV9zY2hl ZHVsZV9lbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IGFjKQoreworCXN0cnVjdCBpZWVl ODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpOworCisJc3Bpbl91bmxvY2tfYmgo JmxvY2FsLT5hY3RpdmVfdHhxX2xvY2tbYWNdKTsKK30KK0VYUE9SVF9TWU1CT0woaWVlZTgwMjEx X3R4cV9zY2hlZHVsZV9lbmQpOworCiB2b2lkIF9faWVlZTgwMjExX3N1YmlmX3N0YXJ0X3htaXQo c3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJ ICB1MzIgaW5mb19mbGFncykKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYXRoMTBrIG1haWxpbmcgbGlzdAphdGgxMGtAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2F0 aDEwawo=