From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8B0A5CD37B4 for ; Sun, 17 Sep 2023 17:06:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=PWF0PgYDzS3TIacFt0J6c2F9Y/NNETlyb2lWO08HXdA=; b=lw4smlaVJihHER M+HjUkJcG9HgvE+50vCtOfMlPQUuZtjFB/X05fQpipjISUqErGxzW21/Jphs/z5EXJOc8/8rPD7k8 pfSC6+9EI1/TDYNRN+KgdXhhOQUdw/3VOda/RSaUPlT0qN3d/JOcGneBjLEezGSwcQCFabvTe+WPJ M2J2173Ym6hmWpF+/67oV1NBA0rdgn2dVMyFL14Oqku7IzlhjApp2vYTagdJcC91sr2qsWwTOP/rg RKbKob0pGRGyoPKzxsnfZogd87hQoRUj3XFivieVYAlOh/jX8M09s7etZzXl6nkDmMD0fOsuIgzv+ ADIewKIFDZZGC71BHY6g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qhvDQ-00DqDq-1K; Sun, 17 Sep 2023 17:05:48 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qhvDK-00DqDD-3D for linux-arm-kernel@lists.infradead.org; Sun, 17 Sep 2023 17:05:46 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 49F37CE0AFB; Sun, 17 Sep 2023 17:05:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09825C433C7; Sun, 17 Sep 2023 17:05:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1694970333; bh=7hFrYEgVBlKEg2RstG8XaCVqEA59jrgsdTBeE8ZhYuM=; h=From:To:Cc:Subject:Date:From; b=rNRSvpeWN6E0ap9CvJTTvrbrhzKiKZkoqv3yTUm0FFOU5xNVejTpTc8K4u55Tb+xM mf4LVmPuvyBZev9/4f+Xbz4ejXpiHUBFhn7PDOD46zxtz66gr2ZFbYgnLk3U7eG9wr t4+Dh2ZxLEuzntbdl26qWxfnjeyqIIeAVKQks5GwkIxqyJQpkwT9AiTCSNJ7go782q WRgfxknjaL8XJqtKklcxbLZRq3sw7ixnPf+FxRoyPEaGHgS0qbw0LcOb7snVHlDvtm v3VrbVbRt4GC0kVeGXKGAfggLaA1awQR/tgst/SEGg0NgVWs3y4mq+X6nRKN4lTvF8 6MIlhQXoXel7Q== From: Jisheng Zhang To: Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland Cc: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-stm32@st-md-mailman.stormreply.com, johannes@sipsolutions.net, =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Subject: [PATCH v2] net: stmmac: fix incorrect rxq|txq_stats reference Date: Mon, 18 Sep 2023 00:53:28 +0800 Message-Id: <20230917165328.3403-1-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230917_100543_440442_F6866FFD X-CRM114-Status: GOOD ( 19.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Y29tbWl0IDEzMzQ2NmMzYmJlMSAoIm5ldDogc3RtbWFjOiB1c2UgcGVyLXF1ZXVlIDY0IGJpdCBz dGF0aXN0aWNzCndoZXJlIG5lY2Vzc2FyeSIpIGNhdXNlZCBvbmUgcmVncmVzc2lvbiBhcyBmb3Vu ZCBieSBVd2UsIHRoZSBiYWNrdHJhY2UKbG9va3MgbGlrZToKCglJTkZPOiB0cnlpbmcgdG8gcmVn aXN0ZXIgbm9uLXN0YXRpYyBrZXkuCglUaGUgY29kZSBpcyBmaW5lIGJ1dCBuZWVkcyBsb2NrZGVw IGFubm90YXRpb24sIG9yIG1heWJlCgl5b3UgZGlkbid0IGluaXRpYWxpemUgdGhpcyBvYmplY3Qg YmVmb3JlIHVzZT8KCXR1cm5pbmcgb2ZmIHRoZSBsb2NraW5nIGNvcnJlY3RuZXNzIHZhbGlkYXRv ci4KCUNQVTogMCBQSUQ6IDEgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkIDYuNS4wLXJjMS0w MDQ0OS1nMTMzNDY2YzNiYmUxLWRpcnR5ICMyMQoJSGFyZHdhcmUgbmFtZTogU1RNMzIgKERldmlj ZSBUcmVlIFN1cHBvcnQpCgkgdW53aW5kX2JhY2t0cmFjZSBmcm9tIHNob3dfc3RhY2srMHgxOC8w eDFjCgkgc2hvd19zdGFjayBmcm9tIGR1bXBfc3RhY2tfbHZsKzB4NjAvMHg5MAoJIGR1bXBfc3Rh Y2tfbHZsIGZyb20gcmVnaXN0ZXJfbG9ja19jbGFzcysweDk4Yy8weDk5YwoJIHJlZ2lzdGVyX2xv Y2tfY2xhc3MgZnJvbSBfX2xvY2tfYWNxdWlyZSsweDc0LzB4MjkzYwoJIF9fbG9ja19hY3F1aXJl IGZyb20gbG9ja19hY3F1aXJlKzB4MTM0LzB4Mzk4CgkgbG9ja19hY3F1aXJlIGZyb20gc3RtbWFj X2dldF9zdGF0czY0KzB4MmFjLzB4MmZjCgkgc3RtbWFjX2dldF9zdGF0czY0IGZyb20gZGV2X2dl dF9zdGF0cysweDQ0LzB4MTMwCgkgZGV2X2dldF9zdGF0cyBmcm9tIHJ0bmxfZmlsbF9zdGF0cysw eDM4LzB4MTIwCgkgcnRubF9maWxsX3N0YXRzIGZyb20gcnRubF9maWxsX2lmaW5mbysweDgzNC8w eDE3ZjQKCSBydG5sX2ZpbGxfaWZpbmZvIGZyb20gcnRtc2dfaWZpbmZvX2J1aWxkX3NrYisweGMw LzB4MTQ0CgkgcnRtc2dfaWZpbmZvX2J1aWxkX3NrYiBmcm9tIHJ0bXNnX2lmaW5mbysweDUwLzB4 ODgKCSBydG1zZ19pZmluZm8gZnJvbSBfX2Rldl9ub3RpZnlfZmxhZ3MrMHhjMC8weGVjCgkgX19k ZXZfbm90aWZ5X2ZsYWdzIGZyb20gZGV2X2NoYW5nZV9mbGFncysweDUwLzB4NWMKCSBkZXZfY2hh bmdlX2ZsYWdzIGZyb20gaXBfYXV0b19jb25maWcrMHgyZjQvMHgxMjYwCgkgaXBfYXV0b19jb25m aWcgZnJvbSBkb19vbmVfaW5pdGNhbGwrMHg3MC8weDM1YwoJIGRvX29uZV9pbml0Y2FsbCBmcm9t IGtlcm5lbF9pbml0X2ZyZWVhYmxlKzB4MmFjLzB4MzA4Cgkga2VybmVsX2luaXRfZnJlZWFibGUg ZnJvbSBrZXJuZWxfaW5pdCsweDFjLzB4MTM4Cgkga2VybmVsX2luaXQgZnJvbSByZXRfZnJvbV9m b3JrKzB4MTQvMHgyYwoKVGhlIHJlYXNvbiBpcyB0aGUgcnhxfHR4cV9zdGF0cyBzdHJ1Y3R1cmVz IGFyZSBub3Qgd2hhdCBleHBlY3RlZApiZWNhdXNlIHN0bW1hY19vcGVuKCkgLT4gX19zdG1tYWNf b3BlbigpIHRoZSBzdHJ1Y3R1cmUgaXMgb3ZlcndyaXR0ZW4KYnkgIm1lbWNweSgmcHJpdi0+ZG1h X2NvbmYsIGRtYV9jb25mLCBzaXplb2YoKmRtYV9jb25mKSk7IgpUaGlzIGNhdXNlcyB0aGUgd2Vs bCBpbml0aWFsaXplZCBzeW5jcCBtZW1iZXIgb2YgcnhxfHR4cV9zdGF0cyBpcwpvdmVyd3JpdHRl biB1bmV4cGVjdGVkbHkgYXMgcG9pbnRlZCBvdXQgYnkgSm9oYW5uZXMgYW5kIFV3ZS4KCkZpeCB0 aGlzIGlzc3VlIGJ5IG1vdmluZyByeHF8dHhxX3N0YXRzIGJhY2sgdG8gc3RtbWFjX2V4dHJhX3N0 YXRzLiBGb3IKU01QIGNhY2hlIGZyaWVuZGx5LCB3ZSBhbHNvIG1hcmsgc3RtbWFjX3R4cV9zdGF0 cyBhbmQgc3RtbWFjX3J4cV9zdGF0cwphcyBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wLgoK Rml4ZXM6IDEzMzQ2NmMzYmJlMSAoIm5ldDogc3RtbWFjOiB1c2UgcGVyLXF1ZXVlIDY0IGJpdCBz dGF0aXN0aWNzIHdoZXJlIG5lY2Vzc2FyeSIpClNpZ25lZC1vZmYtYnk6IEppc2hlbmcgWmhhbmcg PGpzemhhbmdAa2VybmVsLm9yZz4KUmVwb3J0ZWQtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1Lmts ZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Ci0tLQoKU2luY2UgdjEKIC0gcmViYXNlIG9uIG5l dCBpbnN0ZWFkIG9mIG5ldC1uZXh0CgogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvY29tbW9uLmggIHwgICA3ICstCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3 bWFjLXN1bjhpLmMgfCAgMTYgKy0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3 bWFjNF9saWIuYyAgfCAgMTYgKy0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3 bWFjX2xpYi5jICAgfCAgMTYgKy0tCiAuLi4vZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21h YzJfZG1hLmMgICAgfCAgMTYgKy0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1h Yy9zdG1tYWMuaCAgfCAgIDIgLQogLi4uL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19l dGh0b29sLmMgIHwgIDMyICsrLS0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0 bW1hY19tYWluLmMgfCAxMjUgKysrKysrKysrKy0tLS0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDEy MCBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaAppbmRleCA0MDNjYjM5N2Q0ZDMuLjFlOTk2YzI5MDQz ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9u LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgKQEAg LTcwLDcgKzcwLDcgQEAgc3RydWN0IHN0bW1hY190eHFfc3RhdHMgewogCXU2NCB0eF90c29fZnJh bWVzOwogCXU2NCB0eF90c29fbmZyYWdzOwogCXN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDsK LX07Cit9IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7CiAKIHN0cnVjdCBzdG1tYWNfcnhx X3N0YXRzIHsKIAl1NjQgcnhfYnl0ZXM7CkBAIC03OSw3ICs3OSw3IEBAIHN0cnVjdCBzdG1tYWNf cnhxX3N0YXRzIHsKIAl1NjQgcnhfbm9ybWFsX2lycV9uOwogCXU2NCBuYXBpX3BvbGw7CiAJc3Ry dWN0IHU2NF9zdGF0c19zeW5jIHN5bmNwOwotfTsKK30gX19fX2NhY2hlbGluZV9hbGlnbmVkX2lu X3NtcDsKIAogLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2Vk IGJ5IGV0aHRvb2wgKi8KIHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgewpAQCAtMjAyLDYgKzIw Miw5IEBAIHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgewogCXVuc2lnbmVkIGxvbmcgbXRsX2Vz dF9obGJmOwogCXVuc2lnbmVkIGxvbmcgbXRsX2VzdF9idHJlOwogCXVuc2lnbmVkIGxvbmcgbXRs X2VzdF9idHJsbTsKKwkvKiBwZXIgcXVldWUgc3RhdGlzdGljcyAqLworCXN0cnVjdCBzdG1tYWNf dHhxX3N0YXRzIHR4cV9zdGF0c1tNVExfTUFYX1RYX1FVRVVFU107CisJc3RydWN0IHN0bW1hY19y eHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTsKIAl1bnNpZ25lZCBsb25nIHJ4 X2Ryb3BwZWQ7CiAJdW5zaWduZWQgbG9uZyByeF9lcnJvcnM7CiAJdW5zaWduZWQgbG9uZyB0eF9k cm9wcGVkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv ZHdtYWMtc3VuOGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFj LXN1bjhpLmMKaW5kZXggMDFlNzczNjhlZWYxLi40NjVmZjFmZDQ3ODUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYwpAQCAtNDQxLDgg KzQ0MSw4IEBAIHN0YXRpYyBpbnQgc3VuOGlfZHdtYWNfZG1hX2ludGVycnVwdChzdHJ1Y3Qgc3Rt bWFjX3ByaXYgKnByaXYsCiAJCQkJICAgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4LCB1 MzIgY2hhbiwKIAkJCQkgICAgIHUzMiBkaXIpCiB7Ci0Jc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAq cnhfcSA9ICZwcml2LT5kbWFfY29uZi5yeF9xdWV1ZVtjaGFuXTsKLQlzdHJ1Y3Qgc3RtbWFjX3R4 X3F1ZXVlICp0eF9xID0gJnByaXYtPmRtYV9jb25mLnR4X3F1ZXVlW2NoYW5dOworCXN0cnVjdCBz dG1tYWNfcnhxX3N0YXRzICpyeHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRzLnJ4cV9zdGF0c1tjaGFu XTsKKwlzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyAqdHhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy50 eHFfc3RhdHNbY2hhbl07CiAJaW50IHJldCA9IDA7CiAJdTMyIHY7CiAKQEAgLTQ1NSw5ICs0NTUs OSBAQCBzdGF0aWMgaW50IHN1bjhpX2R3bWFjX2RtYV9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19w cml2ICpwcml2LAogCiAJaWYgKHYgJiBFTUFDX1RYX0lOVCkgewogCQlyZXQgfD0gaGFuZGxlX3R4 OwotCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZ0eF9xLT50eHFfc3RhdHMuc3luY3ApOwotCQl0 eF9xLT50eHFfc3RhdHMudHhfbm9ybWFsX2lycV9uKys7Ci0JCXU2NF9zdGF0c191cGRhdGVfZW5k KCZ0eF9xLT50eHFfc3RhdHMuc3luY3ApOworCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZ0eHFf c3RhdHMtPnN5bmNwKTsKKwkJdHhxX3N0YXRzLT50eF9ub3JtYWxfaXJxX24rKzsKKwkJdTY0X3N0 YXRzX3VwZGF0ZV9lbmQoJnR4cV9zdGF0cy0+c3luY3ApOwogCX0KIAogCWlmICh2ICYgRU1BQ19U WF9ETUFfU1RPUF9JTlQpCkBAIC00NzksOSArNDc5LDkgQEAgc3RhdGljIGludCBzdW44aV9kd21h Y19kbWFfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAogCWlmICh2ICYgRU1B Q19SWF9JTlQpIHsKIAkJcmV0IHw9IGhhbmRsZV9yeDsKLQkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdp bigmcnhfcS0+cnhxX3N0YXRzLnN5bmNwKTsKLQkJcnhfcS0+cnhxX3N0YXRzLnJ4X25vcm1hbF9p cnFfbisrOwotCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmcnhfcS0+cnhxX3N0YXRzLnN5bmNwKTsK KwkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmcnhxX3N0YXRzLT5zeW5jcCk7CisJCXJ4cV9zdGF0 cy0+cnhfbm9ybWFsX2lycV9uKys7CisJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZyeHFfc3RhdHMt PnN5bmNwKTsKIAl9CiAKIAlpZiAodiAmIEVNQUNfUlhfQlVGX1VBX0lOVCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9saWIuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9saWIuYwppbmRleCA5ODBlNWY4 YTM3ZWMuLjk0NzBkM2ZkMmRlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvZHdtYWM0X2xpYi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL2R3bWFjNF9saWIuYwpAQCAtMTcxLDggKzE3MSw4IEBAIGludCBkd21hYzRfZG1h X2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgX19pb21lbSAqaW9hZGRy LAogCWNvbnN0IHN0cnVjdCBkd21hYzRfYWRkcnMgKmR3bWFjNF9hZGRycyA9IHByaXYtPnBsYXQt PmR3bWFjNF9hZGRyczsKIAl1MzIgaW50cl9zdGF0dXMgPSByZWFkbChpb2FkZHIgKyBETUFfQ0hB Tl9TVEFUVVMoZHdtYWM0X2FkZHJzLCBjaGFuKSk7CiAJdTMyIGludHJfZW4gPSByZWFkbChpb2Fk ZHIgKyBETUFfQ0hBTl9JTlRSX0VOQShkd21hYzRfYWRkcnMsIGNoYW4pKTsKLQlzdHJ1Y3Qgc3Rt bWFjX3J4X3F1ZXVlICpyeF9xID0gJnByaXYtPmRtYV9jb25mLnJ4X3F1ZXVlW2NoYW5dOwotCXN0 cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAmcHJpdi0+ZG1hX2NvbmYudHhfcXVldWVbY2hh bl07CisJc3RydWN0IHN0bW1hY19yeHFfc3RhdHMgKnJ4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMu cnhxX3N0YXRzW2NoYW5dOworCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHMgPSAm cHJpdi0+eHN0YXRzLnR4cV9zdGF0c1tjaGFuXTsKIAlpbnQgcmV0ID0gMDsKIAogCWlmIChkaXIg PT0gRE1BX0RJUl9SWCkKQEAgLTIwMSwxNSArMjAxLDE1IEBAIGludCBkd21hYzRfZG1hX2ludGVy cnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgX19pb21lbSAqaW9hZGRyLAogCX0K IAkvKiBUWC9SWCBOT1JNQUwgaW50ZXJydXB0cyAqLwogCWlmIChsaWtlbHkoaW50cl9zdGF0dXMg JiBETUFfQ0hBTl9TVEFUVVNfUkkpKSB7Ci0JCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnJ4X3Et PnJ4cV9zdGF0cy5zeW5jcCk7Ci0JCXJ4X3EtPnJ4cV9zdGF0cy5yeF9ub3JtYWxfaXJxX24rKzsK LQkJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCk7CisJCXU2NF9z dGF0c191cGRhdGVfYmVnaW4oJnJ4cV9zdGF0cy0+c3luY3ApOworCQlyeHFfc3RhdHMtPnJ4X25v cm1hbF9pcnFfbisrOworCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmcnhxX3N0YXRzLT5zeW5jcCk7 CiAJCXJldCB8PSBoYW5kbGVfcng7CiAJfQogCWlmIChsaWtlbHkoaW50cl9zdGF0dXMgJiBETUFf Q0hBTl9TVEFUVVNfVEkpKSB7Ci0JCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnR4X3EtPnR4cV9z dGF0cy5zeW5jcCk7Ci0JCXR4X3EtPnR4cV9zdGF0cy50eF9ub3JtYWxfaXJxX24rKzsKLQkJdTY0 X3N0YXRzX3VwZGF0ZV9lbmQoJnR4X3EtPnR4cV9zdGF0cy5zeW5jcCk7CisJCXU2NF9zdGF0c191 cGRhdGVfYmVnaW4oJnR4cV9zdGF0cy0+c3luY3ApOworCQl0eHFfc3RhdHMtPnR4X25vcm1hbF9p cnFfbisrOworCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmdHhxX3N0YXRzLT5zeW5jcCk7CiAJCXJl dCB8PSBoYW5kbGVfdHg7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9kd21hY19saWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2R3bWFjX2xpYi5jCmluZGV4IGFhYTA5YjE2YjAxNi4uNzkwN2Q2MmQzNDM3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hY19saWIuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hY19saWIuYwpAQCAt MTYyLDggKzE2Miw4IEBAIHN0YXRpYyB2b2lkIHNob3dfcnhfcHJvY2Vzc19zdGF0ZSh1bnNpZ25l ZCBpbnQgc3RhdHVzKQogaW50IGR3bWFjX2RtYV9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2 ICpwcml2LCB2b2lkIF9faW9tZW0gKmlvYWRkciwKIAkJCXN0cnVjdCBzdG1tYWNfZXh0cmFfc3Rh dHMgKngsIHUzMiBjaGFuLCB1MzIgZGlyKQogewotCXN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4 X3EgPSAmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVbY2hhbl07Ci0Jc3RydWN0IHN0bW1hY190eF9x dWV1ZSAqdHhfcSA9ICZwcml2LT5kbWFfY29uZi50eF9xdWV1ZVtjaGFuXTsKKwlzdHJ1Y3Qgc3Rt bWFjX3J4cV9zdGF0cyAqcnhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy5yeHFfc3RhdHNbY2hhbl07 CisJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMudHhx X3N0YXRzW2NoYW5dOwogCWludCByZXQgPSAwOwogCS8qIHJlYWQgdGhlIHN0YXR1cyByZWdpc3Rl ciAoQ1NSNSkgKi8KIAl1MzIgaW50cl9zdGF0dXMgPSByZWFkbChpb2FkZHIgKyBETUFfU1RBVFVT KTsKQEAgLTIxNSwxNiArMjE1LDE2IEBAIGludCBkd21hY19kbWFfaW50ZXJydXB0KHN0cnVjdCBz dG1tYWNfcHJpdiAqcHJpdiwgdm9pZCBfX2lvbWVtICppb2FkZHIsCiAJCQl1MzIgdmFsdWUgPSBy ZWFkbChpb2FkZHIgKyBETUFfSU5UUl9FTkEpOwogCQkJLyogdG8gc2NoZWR1bGUgTkFQSSBvbiBy ZWFsIFJJRSBldmVudC4gKi8KIAkJCWlmIChsaWtlbHkodmFsdWUgJiBETUFfSU5UUl9FTkFfUklF KSkgewotCQkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCk7 Ci0JCQkJcnhfcS0+cnhxX3N0YXRzLnJ4X25vcm1hbF9pcnFfbisrOwotCQkJCXU2NF9zdGF0c191 cGRhdGVfZW5kKCZyeF9xLT5yeHFfc3RhdHMuc3luY3ApOworCQkJCXU2NF9zdGF0c191cGRhdGVf YmVnaW4oJnJ4cV9zdGF0cy0+c3luY3ApOworCQkJCXJ4cV9zdGF0cy0+cnhfbm9ybWFsX2lycV9u Kys7CisJCQkJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnJ4cV9zdGF0cy0+c3luY3ApOwogCQkJCXJl dCB8PSBoYW5kbGVfcng7CiAJCQl9CiAJCX0KIAkJaWYgKGxpa2VseShpbnRyX3N0YXR1cyAmIERN QV9TVEFUVVNfVEkpKSB7Ci0JCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZ0eF9xLT50eHFfc3Rh dHMuc3luY3ApOwotCQkJdHhfcS0+dHhxX3N0YXRzLnR4X25vcm1hbF9pcnFfbisrOwotCQkJdTY0 X3N0YXRzX3VwZGF0ZV9lbmQoJnR4X3EtPnR4cV9zdGF0cy5zeW5jcCk7CisJCQl1NjRfc3RhdHNf dXBkYXRlX2JlZ2luKCZ0eHFfc3RhdHMtPnN5bmNwKTsKKwkJCXR4cV9zdGF0cy0+dHhfbm9ybWFs X2lycV9uKys7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmdHhxX3N0YXRzLT5zeW5jcCk7CiAJ CQlyZXQgfD0gaGFuZGxlX3R4OwogCQl9CiAJCWlmICh1bmxpa2VseShpbnRyX3N0YXR1cyAmIERN QV9TVEFUVVNfRVJJKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2R3eGdtYWMyX2RtYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvZHd4Z21hYzJfZG1hLmMKaW5kZXggZmE2OWQ2NGE4Njk0Li4zY2RlNjk1ZmVjOTEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5j CkBAIC0zMzcsOCArMzM3LDggQEAgc3RhdGljIGludCBkd3hnbWFjMl9kbWFfaW50ZXJydXB0KHN0 cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJCQkgIHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMg KngsIHUzMiBjaGFuLAogCQkJCSAgdTMyIGRpcikKIHsKLQlzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVl ICpyeF9xID0gJnByaXYtPmRtYV9jb25mLnJ4X3F1ZXVlW2NoYW5dOwotCXN0cnVjdCBzdG1tYWNf dHhfcXVldWUgKnR4X3EgPSAmcHJpdi0+ZG1hX2NvbmYudHhfcXVldWVbY2hhbl07CisJc3RydWN0 IHN0bW1hY19yeHFfc3RhdHMgKnJ4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMucnhxX3N0YXRzW2No YW5dOworCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRz LnR4cV9zdGF0c1tjaGFuXTsKIAl1MzIgaW50cl9zdGF0dXMgPSByZWFkbChpb2FkZHIgKyBYR01B Q19ETUFfQ0hfU1RBVFVTKGNoYW4pKTsKIAl1MzIgaW50cl9lbiA9IHJlYWRsKGlvYWRkciArIFhH TUFDX0RNQV9DSF9JTlRfRU4oY2hhbikpOwogCWludCByZXQgPSAwOwpAQCAtMzY3LDE1ICszNjcs MTUgQEAgc3RhdGljIGludCBkd3hnbWFjMl9kbWFfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJp diAqcHJpdiwKIAkvKiBUWC9SWCBOT1JNQUwgaW50ZXJydXB0cyAqLwogCWlmIChsaWtlbHkoaW50 cl9zdGF0dXMgJiBYR01BQ19OSVMpKSB7CiAJCWlmIChsaWtlbHkoaW50cl9zdGF0dXMgJiBYR01B Q19SSSkpIHsKLQkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnJ4X3EtPnJ4cV9zdGF0cy5zeW5j cCk7Ci0JCQlyeF9xLT5yeHFfc3RhdHMucnhfbm9ybWFsX2lycV9uKys7Ci0JCQl1NjRfc3RhdHNf dXBkYXRlX2VuZCgmcnhfcS0+cnhxX3N0YXRzLnN5bmNwKTsKKwkJCXU2NF9zdGF0c191cGRhdGVf YmVnaW4oJnJ4cV9zdGF0cy0+c3luY3ApOworCQkJcnhxX3N0YXRzLT5yeF9ub3JtYWxfaXJxX24r KzsKKwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZyeHFfc3RhdHMtPnN5bmNwKTsKIAkJCXJldCB8 PSBoYW5kbGVfcng7CiAJCX0KIAkJaWYgKGxpa2VseShpbnRyX3N0YXR1cyAmIChYR01BQ19USSB8 IFhHTUFDX1RCVSkpKSB7Ci0JCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZ0eF9xLT50eHFfc3Rh dHMuc3luY3ApOwotCQkJdHhfcS0+dHhxX3N0YXRzLnR4X25vcm1hbF9pcnFfbisrOwotCQkJdTY0 X3N0YXRzX3VwZGF0ZV9lbmQoJnR4X3EtPnR4cV9zdGF0cy5zeW5jcCk7CisJCQl1NjRfc3RhdHNf dXBkYXRlX2JlZ2luKCZ0eHFfc3RhdHMtPnN5bmNwKTsKKwkJCXR4cV9zdGF0cy0+dHhfbm9ybWFs X2lycV9uKys7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmdHhxX3N0YXRzLT5zeW5jcCk7CiAJ CQlyZXQgfD0gaGFuZGxlX3R4OwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9zdG1tYWMuaAppbmRleCAzNDAxZTg4OGE5ZjYuLmNkN2E5NzY4ZGU1ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgKQEAgLTc4LDcg Kzc4LDYgQEAgc3RydWN0IHN0bW1hY190eF9xdWV1ZSB7CiAJZG1hX2FkZHJfdCBkbWFfdHhfcGh5 OwogCWRtYV9hZGRyX3QgdHhfdGFpbF9hZGRyOwogCXUzMiBtc3M7Ci0Jc3RydWN0IHN0bW1hY190 eHFfc3RhdHMgdHhxX3N0YXRzOwogfTsKIAogc3RydWN0IHN0bW1hY19yeF9idWZmZXIgewpAQCAt MTIzLDcgKzEyMiw2IEBAIHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgewogCQl1bnNpZ25lZCBpbnQg bGVuOwogCQl1bnNpZ25lZCBpbnQgZXJyb3I7CiAJfSBzdGF0ZTsKLQlzdHJ1Y3Qgc3RtbWFjX3J4 cV9zdGF0cyByeHFfc3RhdHM7CiB9OwogCiBzdHJ1Y3Qgc3RtbWFjX2NoYW5uZWwgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMK aW5kZXggYjdhYzdhYmVjZGQzLi42YWE1YzA1NTZkMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYwpAQCAtNTQ4LDE0ICs1 NDgsMTQgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2dldF9wZXJfcXN0YXRzKHN0cnVjdCBzdG1tYWNf cHJpdiAqcHJpdiwgdTY0ICpkYXRhKQogCiAJcG9zID0gZGF0YTsKIAlmb3IgKHEgPSAwOyBxIDwg dHhfY250OyBxKyspIHsKLQkJc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSA9ICZwcml2LT5k bWFfY29uZi50eF9xdWV1ZVtxXTsKKwkJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0 cyA9ICZwcml2LT54c3RhdHMudHhxX3N0YXRzW3FdOwogCQlzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0 cyBzbmFwc2hvdDsKIAogCQlkYXRhID0gcG9zOwogCQlkbyB7Ci0JCQlzdGFydCA9IHU2NF9zdGF0 c19mZXRjaF9iZWdpbigmdHhfcS0+dHhxX3N0YXRzLnN5bmNwKTsKLQkJCXNuYXBzaG90ID0gdHhf cS0+dHhxX3N0YXRzOwotCQl9IHdoaWxlICh1NjRfc3RhdHNfZmV0Y2hfcmV0cnkoJnR4X3EtPnR4 cV9zdGF0cy5zeW5jcCwgc3RhcnQpKTsKKwkJCXN0YXJ0ID0gdTY0X3N0YXRzX2ZldGNoX2JlZ2lu KCZ0eHFfc3RhdHMtPnN5bmNwKTsKKwkJCXNuYXBzaG90ID0gKnR4cV9zdGF0czsKKwkJfSB3aGls ZSAodTY0X3N0YXRzX2ZldGNoX3JldHJ5KCZ0eHFfc3RhdHMtPnN5bmNwLCBzdGFydCkpOwogCiAJ CXAgPSAoY2hhciAqKSZzbmFwc2hvdCArIG9mZnNldG9mKHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRz LCB0eF9wa3Rfbik7CiAJCWZvciAoc3RhdCA9IDA7IHN0YXQgPCBTVE1NQUNfVFhRX1NUQVRTOyBz dGF0KyspIHsKQEAgLTU2NiwxNCArNTY2LDE0IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19nZXRfcGVy X3FzdGF0cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHU2NCAqZGF0YSkKIAogCXBvcyA9IGRh dGE7CiAJZm9yIChxID0gMDsgcSA8IHJ4X2NudDsgcSsrKSB7Ci0JCXN0cnVjdCBzdG1tYWNfcnhf cXVldWUgKnJ4X3EgPSAmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVbcV07CisJCXN0cnVjdCBzdG1t YWNfcnhxX3N0YXRzICpyeHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRzLnJ4cV9zdGF0c1txXTsKIAkJ c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgc25hcHNob3Q7CiAKIAkJZGF0YSA9IHBvczsKIAkJZG8g ewotCQkJc3RhcnQgPSB1NjRfc3RhdHNfZmV0Y2hfYmVnaW4oJnJ4X3EtPnJ4cV9zdGF0cy5zeW5j cCk7Ci0JCQlzbmFwc2hvdCA9IHJ4X3EtPnJ4cV9zdGF0czsKLQkJfSB3aGlsZSAodTY0X3N0YXRz X2ZldGNoX3JldHJ5KCZyeF9xLT5yeHFfc3RhdHMuc3luY3AsIHN0YXJ0KSk7CisJCQlzdGFydCA9 IHU2NF9zdGF0c19mZXRjaF9iZWdpbigmcnhxX3N0YXRzLT5zeW5jcCk7CisJCQlzbmFwc2hvdCA9 ICpyeHFfc3RhdHM7CisJCX0gd2hpbGUgKHU2NF9zdGF0c19mZXRjaF9yZXRyeSgmcnhxX3N0YXRz LT5zeW5jcCwgc3RhcnQpKTsKIAogCQlwID0gKGNoYXIgKikmc25hcHNob3QgKyBvZmZzZXRvZihz dHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cywgcnhfcGt0X24pOwogCQlmb3IgKHN0YXQgPSAwOyBzdGF0 IDwgU1RNTUFDX1JYUV9TVEFUUzsgc3RhdCsrKSB7CkBAIC02MzcsMTQgKzYzNywxNCBAQCBzdGF0 aWMgdm9pZCBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAogCXBvcyA9IGo7CiAJZm9yIChpID0gMDsgaSA8IHJ4X3F1ZXVlc19jb3VudDsgaSsrKSB7Ci0J CXN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EgPSAmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVb aV07CisJCXN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzICpyeHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRz LnJ4cV9zdGF0c1tpXTsKIAkJc3RydWN0IHN0bW1hY19yeHFfc3RhdHMgc25hcHNob3Q7CiAKIAkJ aiA9IHBvczsKIAkJZG8gewotCQkJc3RhcnQgPSB1NjRfc3RhdHNfZmV0Y2hfYmVnaW4oJnJ4X3Et PnJ4cV9zdGF0cy5zeW5jcCk7Ci0JCQlzbmFwc2hvdCA9IHJ4X3EtPnJ4cV9zdGF0czsKLQkJfSB3 aGlsZSAodTY0X3N0YXRzX2ZldGNoX3JldHJ5KCZyeF9xLT5yeHFfc3RhdHMuc3luY3AsIHN0YXJ0 KSk7CisJCQlzdGFydCA9IHU2NF9zdGF0c19mZXRjaF9iZWdpbigmcnhxX3N0YXRzLT5zeW5jcCk7 CisJCQlzbmFwc2hvdCA9ICpyeHFfc3RhdHM7CisJCX0gd2hpbGUgKHU2NF9zdGF0c19mZXRjaF9y ZXRyeSgmcnhxX3N0YXRzLT5zeW5jcCwgc3RhcnQpKTsKIAogCQlkYXRhW2orK10gKz0gc25hcHNo b3QucnhfcGt0X247CiAJCWRhdGFbaisrXSArPSBzbmFwc2hvdC5yeF9ub3JtYWxfaXJxX247CkBA IC02NTQsMTQgKzY1NCwxNCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogCXBvcyA9IGo7CiAJZm9yIChpID0gMDsgaSA8IHR4 X3F1ZXVlc19jb3VudDsgaSsrKSB7Ci0JCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAm cHJpdi0+ZG1hX2NvbmYudHhfcXVldWVbaV07CisJCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0 eHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRzLnR4cV9zdGF0c1tpXTsKIAkJc3RydWN0IHN0bW1hY190 eHFfc3RhdHMgc25hcHNob3Q7CiAKIAkJaiA9IHBvczsKIAkJZG8gewotCQkJc3RhcnQgPSB1NjRf c3RhdHNfZmV0Y2hfYmVnaW4oJnR4X3EtPnR4cV9zdGF0cy5zeW5jcCk7Ci0JCQlzbmFwc2hvdCA9 IHR4X3EtPnR4cV9zdGF0czsKLQkJfSB3aGlsZSAodTY0X3N0YXRzX2ZldGNoX3JldHJ5KCZ0eF9x LT50eHFfc3RhdHMuc3luY3AsIHN0YXJ0KSk7CisJCQlzdGFydCA9IHU2NF9zdGF0c19mZXRjaF9i ZWdpbigmdHhxX3N0YXRzLT5zeW5jcCk7CisJCQlzbmFwc2hvdCA9ICp0eHFfc3RhdHM7CisJCX0g d2hpbGUgKHU2NF9zdGF0c19mZXRjaF9yZXRyeSgmdHhxX3N0YXRzLT5zeW5jcCwgc3RhcnQpKTsK IAogCQlkYXRhW2orK10gKz0gc25hcHNob3QudHhfcGt0X247CiAJCWRhdGFbaisrXSArPSBzbmFw c2hvdC50eF9ub3JtYWxfaXJxX247CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCAyMjA2Nzg5ODAyYmYuLjgzYzU2N2E4OWE0NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21h aW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFp bi5jCkBAIC0yNDI2LDYgKzI0MjYsNyBAQCBzdGF0aWMgYm9vbCBzdG1tYWNfeGRwX3htaXRfemMo c3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUsIHUzMiBidWRnZXQpCiB7CiAJc3Ry dWN0IG5ldGRldl9xdWV1ZSAqbnEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKHByaXYtPmRldiwgcXVl dWUpOwogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAmcHJpdi0+ZG1hX2NvbmYudHhf cXVldWVbcXVldWVdOworCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHMgPSAmcHJp di0+eHN0YXRzLnR4cV9zdGF0c1txdWV1ZV07CiAJc3RydWN0IHhza19idWZmX3Bvb2wgKnBvb2wg PSB0eF9xLT54c2tfcG9vbDsKIAl1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLT5jdXJfdHg7CiAJ c3RydWN0IGRtYV9kZXNjICp0eF9kZXNjID0gTlVMTDsKQEAgLTI1MDUsOSArMjUwNiw5IEBAIHN0 YXRpYyBib29sIHN0bW1hY194ZHBfeG1pdF96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUz MiBxdWV1ZSwgdTMyIGJ1ZGdldCkKIAkJdHhfcS0+Y3VyX3R4ID0gU1RNTUFDX0dFVF9FTlRSWSh0 eF9xLT5jdXJfdHgsIHByaXYtPmRtYV9jb25mLmRtYV90eF9zaXplKTsKIAkJZW50cnkgPSB0eF9x LT5jdXJfdHg7CiAJfQotCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZ0 eF9xLT50eHFfc3RhdHMuc3luY3ApOwotCXR4X3EtPnR4cV9zdGF0cy50eF9zZXRfaWNfYml0ICs9 IHR4X3NldF9pY19iaXQ7Ci0JdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmdHhfcS0+ dHhxX3N0YXRzLnN5bmNwLCBmbGFncyk7CisJZmxhZ3MgPSB1NjRfc3RhdHNfdXBkYXRlX2JlZ2lu X2lycXNhdmUoJnR4cV9zdGF0cy0+c3luY3ApOworCXR4cV9zdGF0cy0+dHhfc2V0X2ljX2JpdCAr PSB0eF9zZXRfaWNfYml0OworCXU2NF9zdGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnR4cV9z dGF0cy0+c3luY3AsIGZsYWdzKTsKIAogCWlmICh0eF9kZXNjKSB7CiAJCXN0bW1hY19mbHVzaF90 eF9kZXNjcmlwdG9ycyhwcml2LCBxdWV1ZSk7CkBAIC0yNTQ3LDYgKzI1NDgsNyBAQCBzdGF0aWMg dm9pZCBzdG1tYWNfYnVtcF9kbWFfdGhyZXNob2xkKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwg dTMyIGNoYW4pCiBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYg KnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSkKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVl ICp0eF9xID0gJnByaXYtPmRtYV9jb25mLnR4X3F1ZXVlW3F1ZXVlXTsKKwlzdHJ1Y3Qgc3RtbWFj X3R4cV9zdGF0cyAqdHhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy50eHFfc3RhdHNbcXVldWVdOwog CXVuc2lnbmVkIGludCBieXRlc19jb21wbCA9IDAsIHBrdHNfY29tcGwgPSAwOwogCXVuc2lnbmVk IGludCBlbnRyeSwgeG1pdHMgPSAwLCBjb3VudCA9IDA7CiAJdTMyIHR4X3BhY2tldHMgPSAwLCB0 eF9lcnJvcnMgPSAwOwpAQCAtMjcwNiwxMSArMjcwOCwxMSBAQCBzdGF0aWMgaW50IHN0bW1hY190 eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSkK IAlpZiAodHhfcS0+ZGlydHlfdHggIT0gdHhfcS0+Y3VyX3R4KQogCQlzdG1tYWNfdHhfdGltZXJf YXJtKHByaXYsIHF1ZXVlKTsKIAotCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFz YXZlKCZ0eF9xLT50eHFfc3RhdHMuc3luY3ApOwotCXR4X3EtPnR4cV9zdGF0cy50eF9wYWNrZXRz ICs9IHR4X3BhY2tldHM7Ci0JdHhfcS0+dHhxX3N0YXRzLnR4X3BrdF9uICs9IHR4X3BhY2tldHM7 Ci0JdHhfcS0+dHhxX3N0YXRzLnR4X2NsZWFuKys7Ci0JdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJx cmVzdG9yZSgmdHhfcS0+dHhxX3N0YXRzLnN5bmNwLCBmbGFncyk7CisJZmxhZ3MgPSB1NjRfc3Rh dHNfdXBkYXRlX2JlZ2luX2lycXNhdmUoJnR4cV9zdGF0cy0+c3luY3ApOworCXR4cV9zdGF0cy0+ dHhfcGFja2V0cyArPSB0eF9wYWNrZXRzOworCXR4cV9zdGF0cy0+dHhfcGt0X24gKz0gdHhfcGFj a2V0czsKKwl0eHFfc3RhdHMtPnR4X2NsZWFuKys7CisJdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJx cmVzdG9yZSgmdHhxX3N0YXRzLT5zeW5jcCwgZmxhZ3MpOwogCiAJcHJpdi0+eHN0YXRzLnR4X2Vy cm9ycyArPSB0eF9lcnJvcnM7CiAKQEAgLTQxMTQsNiArNDExNiw3IEBAIHN0YXRpYyBuZXRkZXZf dHhfdCBzdG1tYWNfdHNvX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIAlpbnQgbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFnczsKIAl1MzIg cXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTsKIAl1bnNpZ25lZCBpbnQgZmlyc3Rf ZW50cnksIHR4X3BhY2tldHM7CisJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0czsK IAlpbnQgdG1wX3BheV9sZW4gPSAwLCBmaXJzdF90eDsKIAlzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVl ICp0eF9xOwogCWJvb2wgaGFzX3ZsYW4sIHNldF9pYzsKQEAgLTQxMjQsNiArNDEyNyw3IEBAIHN0 YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfdHNvX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAlpbnQgaTsKIAogCXR4X3EgPSAmcHJpdi0+ZG1hX2NvbmYu dHhfcXVldWVbcXVldWVdOworCXR4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMudHhxX3N0YXRzW3F1 ZXVlXTsKIAlmaXJzdF90eCA9IHR4X3EtPmN1cl90eDsKIAogCS8qIENvbXB1dGUgaGVhZGVyIGxl bmd0aHMgKi8KQEAgLTQyODIsMTMgKzQyODYsMTMgQEAgc3RhdGljIG5ldGRldl90eF90IHN0bW1h Y190c29feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CQluZXRpZl90eF9zdG9wX3F1ZXVlKG5ldGRldl9nZXRfdHhfcXVldWUocHJpdi0+ZGV2LCBxdWV1 ZSkpOwogCX0KIAotCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZ0eF9x LT50eHFfc3RhdHMuc3luY3ApOwotCXR4X3EtPnR4cV9zdGF0cy50eF9ieXRlcyArPSBza2ItPmxl bjsKLQl0eF9xLT50eHFfc3RhdHMudHhfdHNvX2ZyYW1lcysrOwotCXR4X3EtPnR4cV9zdGF0cy50 eF90c29fbmZyYWdzICs9IG5mcmFnczsKKwlmbGFncyA9IHU2NF9zdGF0c191cGRhdGVfYmVnaW5f aXJxc2F2ZSgmdHhxX3N0YXRzLT5zeW5jcCk7CisJdHhxX3N0YXRzLT50eF9ieXRlcyArPSBza2It PmxlbjsKKwl0eHFfc3RhdHMtPnR4X3Rzb19mcmFtZXMrKzsKKwl0eHFfc3RhdHMtPnR4X3Rzb19u ZnJhZ3MgKz0gbmZyYWdzOwogCWlmIChzZXRfaWMpCi0JCXR4X3EtPnR4cV9zdGF0cy50eF9zZXRf aWNfYml0Kys7Ci0JdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmdHhfcS0+dHhxX3N0 YXRzLnN5bmNwLCBmbGFncyk7CisJCXR4cV9zdGF0cy0+dHhfc2V0X2ljX2JpdCsrOworCXU2NF9z dGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnR4cV9zdGF0cy0+c3luY3AsIGZsYWdzKTsKIAog CWlmIChwcml2LT5zYXJjX3R5cGUpCiAJCXN0bW1hY19zZXRfZGVzY19zYXJjKHByaXYsIGZpcnN0 LCBwcml2LT5zYXJjX3R5cGUpOwpAQCAtNDM1OSw2ICs0MzYzLDcgQEAgc3RhdGljIG5ldGRldl90 eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiAJdTMyIHF1ZXVlID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7CiAJaW50IG5mcmFn cyA9IHNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3M7CiAJaW50IGdzbyA9IHNrYl9zaGluZm8oc2ti KS0+Z3NvX3R5cGU7CisJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0czsKIAlzdHJ1 Y3QgZG1hX2VkZXNjICp0YnNfZGVzYyA9IE5VTEw7CiAJc3RydWN0IGRtYV9kZXNjICpkZXNjLCAq Zmlyc3Q7CiAJc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTsKQEAgLTQzNjgsNiArNDM3Myw3 IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRtYV9hZGRyX3QgZGVzOwogCiAJdHhfcSA9ICZwcml2 LT5kbWFfY29uZi50eF9xdWV1ZVtxdWV1ZV07CisJdHhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy50 eHFfc3RhdHNbcXVldWVdOwogCWZpcnN0X3R4ID0gdHhfcS0+Y3VyX3R4OwogCiAJaWYgKHByaXYt PnR4X3BhdGhfaW5fbHBpX21vZGUgJiYgcHJpdi0+ZWVlX3N3X3RpbWVyX2VuKQpAQCAtNDUxOSwx MSArNDUyNSwxMSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJbmV0aWZfdHhfc3RvcF9xdWV1ZShu ZXRkZXZfZ2V0X3R4X3F1ZXVlKHByaXYtPmRldiwgcXVldWUpKTsKIAl9CiAKLQlmbGFncyA9IHU2 NF9zdGF0c191cGRhdGVfYmVnaW5faXJxc2F2ZSgmdHhfcS0+dHhxX3N0YXRzLnN5bmNwKTsKLQl0 eF9xLT50eHFfc3RhdHMudHhfYnl0ZXMgKz0gc2tiLT5sZW47CisJZmxhZ3MgPSB1NjRfc3RhdHNf dXBkYXRlX2JlZ2luX2lycXNhdmUoJnR4cV9zdGF0cy0+c3luY3ApOworCXR4cV9zdGF0cy0+dHhf Ynl0ZXMgKz0gc2tiLT5sZW47CiAJaWYgKHNldF9pYykKLQkJdHhfcS0+dHhxX3N0YXRzLnR4X3Nl dF9pY19iaXQrKzsKLQl1NjRfc3RhdHNfdXBkYXRlX2VuZF9pcnFyZXN0b3JlKCZ0eF9xLT50eHFf c3RhdHMuc3luY3AsIGZsYWdzKTsKKwkJdHhxX3N0YXRzLT50eF9zZXRfaWNfYml0Kys7CisJdTY0 X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmdHhxX3N0YXRzLT5zeW5jcCwgZmxhZ3MpOwog CiAJaWYgKHByaXYtPnNhcmNfdHlwZSkKIAkJc3RtbWFjX3NldF9kZXNjX3NhcmMocHJpdiwgZmly c3QsIHByaXYtPnNhcmNfdHlwZSk7CkBAIC00NzMwLDYgKzQ3MzYsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgaW50IHN0bW1hY19yeF9idWYyX2xlbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiBzdGF0 aWMgaW50IHN0bW1hY194ZHBfeG1pdF94ZHBmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50 IHF1ZXVlLAogCQkJCXN0cnVjdCB4ZHBfZnJhbWUgKnhkcGYsIGJvb2wgZG1hX21hcCkKIHsKKwlz dHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyAqdHhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy50eHFfc3Rh dHNbcXVldWVdOwogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAmcHJpdi0+ZG1hX2Nv bmYudHhfcXVldWVbcXVldWVdOwogCXVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtPmN1cl90eDsK IAlzdHJ1Y3QgZG1hX2Rlc2MgKnR4X2Rlc2M7CkBAIC00Nzg5LDkgKzQ3OTYsOSBAQCBzdGF0aWMg aW50IHN0bW1hY194ZHBfeG1pdF94ZHBmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IHF1 ZXVlLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCQl0eF9xLT50eF9jb3VudF9mcmFtZXMgPSAw OwogCQlzdG1tYWNfc2V0X3R4X2ljKHByaXYsIHR4X2Rlc2MpOwotCQlmbGFncyA9IHU2NF9zdGF0 c191cGRhdGVfYmVnaW5faXJxc2F2ZSgmdHhfcS0+dHhxX3N0YXRzLnN5bmNwKTsKLQkJdHhfcS0+ dHhxX3N0YXRzLnR4X3NldF9pY19iaXQrKzsKLQkJdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVz dG9yZSgmdHhfcS0+dHhxX3N0YXRzLnN5bmNwLCBmbGFncyk7CisJCWZsYWdzID0gdTY0X3N0YXRz X3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZ0eHFfc3RhdHMtPnN5bmNwKTsKKwkJdHhxX3N0YXRzLT50 eF9zZXRfaWNfYml0Kys7CisJCXU2NF9zdGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnR4cV9z dGF0cy0+c3luY3AsIGZsYWdzKTsKIAl9CiAKIAlzdG1tYWNfZW5hYmxlX2RtYV90cmFuc21pc3Np b24ocHJpdiwgcHJpdi0+aW9hZGRyKTsKQEAgLTQ5MzYsNyArNDk0Myw3IEBAIHN0YXRpYyB2b2lk IHN0bW1hY19kaXNwYXRjaF9za2JfemMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVl dWUsCiAJCQkJICAgc3RydWN0IGRtYV9kZXNjICpwLCBzdHJ1Y3QgZG1hX2Rlc2MgKm5wLAogCQkJ CSAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKQogewotCXN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4 X3EgPSAmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVbcXVldWVdOworCXN0cnVjdCBzdG1tYWNfcnhx X3N0YXRzICpyeHFfc3RhdHMgPSAmcHJpdi0+eHN0YXRzLnJ4cV9zdGF0c1txdWV1ZV07CiAJc3Ry dWN0IHN0bW1hY19jaGFubmVsICpjaCA9ICZwcml2LT5jaGFubmVsW3F1ZXVlXTsKIAl1bnNpZ25l ZCBpbnQgbGVuID0geGRwLT5kYXRhX2VuZCAtIHhkcC0+ZGF0YTsKIAllbnVtIHBrdF9oYXNoX3R5 cGVzIGhhc2hfdHlwZTsKQEAgLTQ5NjYsMTAgKzQ5NzMsMTAgQEAgc3RhdGljIHZvaWQgc3RtbWFj X2Rpc3BhdGNoX3NrYl96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSwKIAlz a2JfcmVjb3JkX3J4X3F1ZXVlKHNrYiwgcXVldWUpOwogCW5hcGlfZ3JvX3JlY2VpdmUoJmNoLT5y eHR4X25hcGksIHNrYik7CiAKLQlmbGFncyA9IHU2NF9zdGF0c191cGRhdGVfYmVnaW5faXJxc2F2 ZSgmcnhfcS0+cnhxX3N0YXRzLnN5bmNwKTsKLQlyeF9xLT5yeHFfc3RhdHMucnhfcGt0X24rKzsK LQlyeF9xLT5yeHFfc3RhdHMucnhfYnl0ZXMgKz0gbGVuOwotCXU2NF9zdGF0c191cGRhdGVfZW5k X2lycXJlc3RvcmUoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCwgZmxhZ3MpOworCWZsYWdzID0gdTY0 X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZyeHFfc3RhdHMtPnN5bmNwKTsKKwlyeHFfc3Rh dHMtPnJ4X3BrdF9uKys7CisJcnhxX3N0YXRzLT5yeF9ieXRlcyArPSBsZW47CisJdTY0X3N0YXRz X3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmcnhxX3N0YXRzLT5zeW5jcCwgZmxhZ3MpOwogfQogCiBz dGF0aWMgYm9vbCBzdG1tYWNfcnhfcmVmaWxsX3pjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwg dTMyIHF1ZXVlLCB1MzIgYnVkZ2V0KQpAQCAtNTA0Miw2ICs1MDQ5LDcgQEAgc3RhdGljIHN0cnVj dCBzdG1tYWNfeGRwX2J1ZmYgKnhza19idWZmX3RvX3N0bW1hY19jdHgoc3RydWN0IHhkcF9idWZm ICp4ZHApCiAKIHN0YXRpYyBpbnQgc3RtbWFjX3J4X3pjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJp diwgaW50IGxpbWl0LCB1MzIgcXVldWUpCiB7CisJc3RydWN0IHN0bW1hY19yeHFfc3RhdHMgKnJ4 cV9zdGF0cyA9ICZwcml2LT54c3RhdHMucnhxX3N0YXRzW3F1ZXVlXTsKIAlzdHJ1Y3Qgc3RtbWFj X3J4X3F1ZXVlICpyeF9xID0gJnByaXYtPmRtYV9jb25mLnJ4X3F1ZXVlW3F1ZXVlXTsKIAl1bnNp Z25lZCBpbnQgY291bnQgPSAwLCBlcnJvciA9IDAsIGxlbiA9IDA7CiAJaW50IGRpcnR5ID0gc3Rt bWFjX3J4X2RpcnR5KHByaXYsIHF1ZXVlKTsKQEAgLTUyMDUsOSArNTIxMyw5IEBAIHN0YXRpYyBp bnQgc3RtbWFjX3J4X3pjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGxpbWl0LCB1MzIg cXVldWUpCiAKIAlzdG1tYWNfZmluYWxpemVfeGRwX3J4KHByaXYsIHhkcF9zdGF0dXMpOwogCi0J ZmxhZ3MgPSB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luX2lycXNhdmUoJnJ4X3EtPnJ4cV9zdGF0cy5z eW5jcCk7Ci0JcnhfcS0+cnhxX3N0YXRzLnJ4X3BrdF9uICs9IGNvdW50OwotCXU2NF9zdGF0c191 cGRhdGVfZW5kX2lycXJlc3RvcmUoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCwgZmxhZ3MpOworCWZs YWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZyeHFfc3RhdHMtPnN5bmNwKTsK KwlyeHFfc3RhdHMtPnJ4X3BrdF9uICs9IGNvdW50OworCXU2NF9zdGF0c191cGRhdGVfZW5kX2ly cXJlc3RvcmUoJnJ4cV9zdGF0cy0+c3luY3AsIGZsYWdzKTsKIAogCXByaXYtPnhzdGF0cy5yeF9k cm9wcGVkICs9IHJ4X2Ryb3BwZWQ7CiAJcHJpdi0+eHN0YXRzLnJ4X2Vycm9ycyArPSByeF9lcnJv cnM7CkBAIC01MjM1LDYgKzUyNDMsNyBAQCBzdGF0aWMgaW50IHN0bW1hY19yeF96YyhzdHJ1Y3Qg c3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKQogc3RhdGljIGludCBzdG1t YWNfcngoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgbGltaXQsIHUzMiBxdWV1ZSkKIHsK IAl1MzIgcnhfZXJyb3JzID0gMCwgcnhfZHJvcHBlZCA9IDAsIHJ4X2J5dGVzID0gMCwgcnhfcGFj a2V0cyA9IDA7CisJc3RydWN0IHN0bW1hY19yeHFfc3RhdHMgKnJ4cV9zdGF0cyA9ICZwcml2LT54 c3RhdHMucnhxX3N0YXRzW3F1ZXVlXTsKIAlzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0g JnByaXYtPmRtYV9jb25mLnJ4X3F1ZXVlW3F1ZXVlXTsKIAlzdHJ1Y3Qgc3RtbWFjX2NoYW5uZWwg KmNoID0gJnByaXYtPmNoYW5uZWxbcXVldWVdOwogCXVuc2lnbmVkIGludCBjb3VudCA9IDAsIGVy cm9yID0gMCwgbGVuID0gMDsKQEAgLTU0OTYsMTEgKzU1MDUsMTEgQEAgc3RhdGljIGludCBzdG1t YWNfcngoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgbGltaXQsIHUzMiBxdWV1ZSkKIAog CXN0bW1hY19yeF9yZWZpbGwocHJpdiwgcXVldWUpOwogCi0JZmxhZ3MgPSB1NjRfc3RhdHNfdXBk YXRlX2JlZ2luX2lycXNhdmUoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCk7Ci0JcnhfcS0+cnhxX3N0 YXRzLnJ4X3BhY2tldHMgKz0gcnhfcGFja2V0czsKLQlyeF9xLT5yeHFfc3RhdHMucnhfYnl0ZXMg Kz0gcnhfYnl0ZXM7Ci0JcnhfcS0+cnhxX3N0YXRzLnJ4X3BrdF9uICs9IGNvdW50OwotCXU2NF9z dGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCwgZmxhZ3Mp OworCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZyeHFfc3RhdHMtPnN5 bmNwKTsKKwlyeHFfc3RhdHMtPnJ4X3BhY2tldHMgKz0gcnhfcGFja2V0czsKKwlyeHFfc3RhdHMt PnJ4X2J5dGVzICs9IHJ4X2J5dGVzOworCXJ4cV9zdGF0cy0+cnhfcGt0X24gKz0gY291bnQ7CisJ dTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmcnhxX3N0YXRzLT5zeW5jcCwgZmxhZ3Mp OwogCiAJcHJpdi0+eHN0YXRzLnJ4X2Ryb3BwZWQgKz0gcnhfZHJvcHBlZDsKIAlwcml2LT54c3Rh dHMucnhfZXJyb3JzICs9IHJ4X2Vycm9yczsKQEAgLTU1MTMsMTUgKzU1MjIsMTUgQEAgc3RhdGlj IGludCBzdG1tYWNfbmFwaV9wb2xsX3J4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1 ZGdldCkKIAlzdHJ1Y3Qgc3RtbWFjX2NoYW5uZWwgKmNoID0KIAkJY29udGFpbmVyX29mKG5hcGks IHN0cnVjdCBzdG1tYWNfY2hhbm5lbCwgcnhfbmFwaSk7CiAJc3RydWN0IHN0bW1hY19wcml2ICpw cml2ID0gY2gtPnByaXZfZGF0YTsKLQlzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xOworCXN0 cnVjdCBzdG1tYWNfcnhxX3N0YXRzICpyeHFfc3RhdHM7CiAJdTMyIGNoYW4gPSBjaC0+aW5kZXg7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgd29ya19kb25lOwogCi0JcnhfcSA9ICZwcml2 LT5kbWFfY29uZi5yeF9xdWV1ZVtjaGFuXTsKLQlmbGFncyA9IHU2NF9zdGF0c191cGRhdGVfYmVn aW5faXJxc2F2ZSgmcnhfcS0+cnhxX3N0YXRzLnN5bmNwKTsKLQlyeF9xLT5yeHFfc3RhdHMubmFw aV9wb2xsKys7Ci0JdTY0X3N0YXRzX3VwZGF0ZV9lbmRfaXJxcmVzdG9yZSgmcnhfcS0+cnhxX3N0 YXRzLnN5bmNwLCBmbGFncyk7CisJcnhxX3N0YXRzID0gJnByaXYtPnhzdGF0cy5yeHFfc3RhdHNb Y2hhbl07CisJZmxhZ3MgPSB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luX2lycXNhdmUoJnJ4cV9zdGF0 cy0+c3luY3ApOworCXJ4cV9zdGF0cy0+bmFwaV9wb2xsKys7CisJdTY0X3N0YXRzX3VwZGF0ZV9l bmRfaXJxcmVzdG9yZSgmcnhxX3N0YXRzLT5zeW5jcCwgZmxhZ3MpOwogCiAJd29ya19kb25lID0g c3RtbWFjX3J4KHByaXYsIGJ1ZGdldCwgY2hhbik7CiAJaWYgKHdvcmtfZG9uZSA8IGJ1ZGdldCAm JiBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgd29ya19kb25lKSkgewpAQCAtNTU0MCwxNSArNTU0 OSwxNSBAQCBzdGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfdHgoc3RydWN0IG5hcGlfc3RydWN0 ICpuYXBpLCBpbnQgYnVkZ2V0KQogCXN0cnVjdCBzdG1tYWNfY2hhbm5lbCAqY2ggPQogCQljb250 YWluZXJfb2YobmFwaSwgc3RydWN0IHN0bW1hY19jaGFubmVsLCB0eF9uYXBpKTsKIAlzdHJ1Y3Qg c3RtbWFjX3ByaXYgKnByaXYgPSBjaC0+cHJpdl9kYXRhOwotCXN0cnVjdCBzdG1tYWNfdHhfcXVl dWUgKnR4X3E7CisJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0czsKIAl1MzIgY2hh biA9IGNoLT5pbmRleDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCB3b3JrX2RvbmU7CiAK LQl0eF9xID0gJnByaXYtPmRtYV9jb25mLnR4X3F1ZXVlW2NoYW5dOwotCWZsYWdzID0gdTY0X3N0 YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZlKCZ0eF9xLT50eHFfc3RhdHMuc3luY3ApOwotCXR4X3Et PnR4cV9zdGF0cy5uYXBpX3BvbGwrKzsKLQl1NjRfc3RhdHNfdXBkYXRlX2VuZF9pcnFyZXN0b3Jl KCZ0eF9xLT50eHFfc3RhdHMuc3luY3AsIGZsYWdzKTsKKwl0eHFfc3RhdHMgPSAmcHJpdi0+eHN0 YXRzLnR4cV9zdGF0c1tjaGFuXTsKKwlmbGFncyA9IHU2NF9zdGF0c191cGRhdGVfYmVnaW5faXJx c2F2ZSgmdHhxX3N0YXRzLT5zeW5jcCk7CisJdHhxX3N0YXRzLT5uYXBpX3BvbGwrKzsKKwl1NjRf c3RhdHNfdXBkYXRlX2VuZF9pcnFyZXN0b3JlKCZ0eHFfc3RhdHMtPnN5bmNwLCBmbGFncyk7CiAK IAl3b3JrX2RvbmUgPSBzdG1tYWNfdHhfY2xlYW4ocHJpdiwgYnVkZ2V0LCBjaGFuKTsKIAl3b3Jr X2RvbmUgPSBtaW4od29ya19kb25lLCBidWRnZXQpOwpAQCAtNTU3MCwyMCArNTU3OSwyMCBAQCBz dGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfcnh0eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGks IGludCBidWRnZXQpCiAJCWNvbnRhaW5lcl9vZihuYXBpLCBzdHJ1Y3Qgc3RtbWFjX2NoYW5uZWws IHJ4dHhfbmFwaSk7CiAJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gY2gtPnByaXZfZGF0YTsK IAlpbnQgcnhfZG9uZSwgdHhfZG9uZSwgcnh0eF9kb25lOwotCXN0cnVjdCBzdG1tYWNfcnhfcXVl dWUgKnJ4X3E7Ci0Jc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTsKKwlzdHJ1Y3Qgc3RtbWFj X3J4cV9zdGF0cyAqcnhxX3N0YXRzOworCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3Rh dHM7CiAJdTMyIGNoYW4gPSBjaC0+aW5kZXg7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXJ4 X3EgPSAmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVbY2hhbl07Ci0JZmxhZ3MgPSB1NjRfc3RhdHNf dXBkYXRlX2JlZ2luX2lycXNhdmUoJnJ4X3EtPnJ4cV9zdGF0cy5zeW5jcCk7Ci0JcnhfcS0+cnhx X3N0YXRzLm5hcGlfcG9sbCsrOwotCXU2NF9zdGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnJ4 X3EtPnJ4cV9zdGF0cy5zeW5jcCwgZmxhZ3MpOworCXJ4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMu cnhxX3N0YXRzW2NoYW5dOworCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZl KCZyeHFfc3RhdHMtPnN5bmNwKTsKKwlyeHFfc3RhdHMtPm5hcGlfcG9sbCsrOworCXU2NF9zdGF0 c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnJ4cV9zdGF0cy0+c3luY3AsIGZsYWdzKTsKIAotCXR4 X3EgPSAmcHJpdi0+ZG1hX2NvbmYudHhfcXVldWVbY2hhbl07Ci0JZmxhZ3MgPSB1NjRfc3RhdHNf dXBkYXRlX2JlZ2luX2lycXNhdmUoJnR4X3EtPnR4cV9zdGF0cy5zeW5jcCk7Ci0JdHhfcS0+dHhx X3N0YXRzLm5hcGlfcG9sbCsrOwotCXU2NF9zdGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnR4 X3EtPnR4cV9zdGF0cy5zeW5jcCwgZmxhZ3MpOworCXR4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMu dHhxX3N0YXRzW2NoYW5dOworCWZsYWdzID0gdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbl9pcnFzYXZl KCZ0eHFfc3RhdHMtPnN5bmNwKTsKKwl0eHFfc3RhdHMtPm5hcGlfcG9sbCsrOworCXU2NF9zdGF0 c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnR4cV9zdGF0cy0+c3luY3AsIGZsYWdzKTsKIAogCXR4 X2RvbmUgPSBzdG1tYWNfdHhfY2xlYW4ocHJpdiwgYnVkZ2V0LCBjaGFuKTsKIAl0eF9kb25lID0g bWluKHR4X2RvbmUsIGJ1ZGdldCk7CkBAIC02OTI2LDcgKzY5MzUsNyBAQCBzdGF0aWMgdm9pZCBz dG1tYWNfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHJ0bmxfbGlu a19zdGF0czY0CiAJaW50IHE7CiAKIAlmb3IgKHEgPSAwOyBxIDwgdHhfY250OyBxKyspIHsKLQkJ c3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cyA9ICZwcml2LT5kbWFfY29uZi50eF9x dWV1ZVtxXS50eHFfc3RhdHM7CisJCXN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHMg PSAmcHJpdi0+eHN0YXRzLnR4cV9zdGF0c1txXTsKIAkJdTY0IHR4X3BhY2tldHM7CiAJCXU2NCB0 eF9ieXRlczsKIApAQCAtNjk0MSw3ICs2OTUwLDcgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2dldF9z dGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NAog CX0KIAogCWZvciAocSA9IDA7IHEgPCByeF9jbnQ7IHErKykgewotCQlzdHJ1Y3Qgc3RtbWFjX3J4 cV9zdGF0cyAqcnhxX3N0YXRzID0gJnByaXYtPmRtYV9jb25mLnJ4X3F1ZXVlW3FdLnJ4cV9zdGF0 czsKKwkJc3RydWN0IHN0bW1hY19yeHFfc3RhdHMgKnJ4cV9zdGF0cyA9ICZwcml2LT54c3RhdHMu cnhxX3N0YXRzW3FdOwogCQl1NjQgcnhfcGFja2V0czsKIAkJdTY0IHJ4X2J5dGVzOwogCkBAIC03 MzQyLDkgKzczNTEsOSBAQCBpbnQgc3RtbWFjX2R2cl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXZp Y2UsCiAJcHJpdi0+ZGV2ID0gbmRldjsKIAogCWZvciAoaSA9IDA7IGkgPCBNVExfTUFYX1JYX1FV RVVFUzsgaSsrKQotCQl1NjRfc3RhdHNfaW5pdCgmcHJpdi0+ZG1hX2NvbmYucnhfcXVldWVbaV0u cnhxX3N0YXRzLnN5bmNwKTsKKwkJdTY0X3N0YXRzX2luaXQoJnByaXYtPnhzdGF0cy5yeHFfc3Rh dHNbaV0uc3luY3ApOwogCWZvciAoaSA9IDA7IGkgPCBNVExfTUFYX1RYX1FVRVVFUzsgaSsrKQot CQl1NjRfc3RhdHNfaW5pdCgmcHJpdi0+ZG1hX2NvbmYudHhfcXVldWVbaV0udHhxX3N0YXRzLnN5 bmNwKTsKKwkJdTY0X3N0YXRzX2luaXQoJnByaXYtPnhzdGF0cy50eHFfc3RhdHNbaV0uc3luY3Ap OwogCiAJc3RtbWFjX3NldF9ldGh0b29sX29wcyhuZGV2KTsKIAlwcml2LT5wYXVzZSA9IHBhdXNl OwotLSAKMi40MC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=