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 1BC34ECAAA1 for ; Mon, 12 Sep 2022 09:28:57 +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:To :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=aTl5nrVM6TWdZGhqpKo3H2V2sTrKR0BaCiIdPN+NbcQ=; b=fWIh4VcVmz2iyW 2RojCMYB56EuG9s8GYknFvBv3WpQ7a1yd1EBXfDru5+GgZvA/8f7qRzMk1BtCTnlG6dOuL3Ep9BPo lppjZ+ocMQ2H7m4QykuBbl/ZGpCOjZ57VsgAmLsfE0MtixPRWj2qTU+MGhkztaEk3ypBt57oOAMYN 6hW7OiPwbyQ9s0+RjJFzb0o7wvcIY6XEf+IAQP+QuIZPNS7JlBtovprb2WOn/obqoLrtWs0UR0KtZ 8ZSXtQAhniXmGlCgNNPD/XUoSqUubiGxSmnhO+JAA3CoiRCIhkNUW5nld/w31F7orhZR0hjdU2CWZ aakoEM/xWKVEFLO07ZQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oXfjB-008Fg0-BF; Mon, 12 Sep 2022 09:27:41 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oXfj2-008FZu-Rh for linux-arm-kernel@lists.infradead.org; Mon, 12 Sep 2022 09:27:38 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 52D5E61138 for ; Mon, 12 Sep 2022 09:27:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63DA0C433C1; Mon, 12 Sep 2022 09:27:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662974850; bh=IhTlDk9RJ8PMcIGhvN5LuOxHP2l88O5c9wNiwk0x0rY=; h=From:To:Subject:Date:From; b=mIAzGXRKrEiQHfh+QoL+6tZ3nmHVve/QNXC0N84jDwkGG06udOvcfIAs2FPR5sxfG QiLPaYhgEnNMIw6WmE7J5RET9xniLsO6RzUFohO0rKz5uXm4mZqT71zDyZFRbXhwKf +h0MTSG1y1uBZzFEvRLXA9NDHBEquopnjeLB8R23mi7SbnKxrMDB27xoE7bbgCmF2D SqCEb3coEggNYqTWfDo6tMkq/3QyXi5bUsWeK0xRzPOiXONj5cRj8w+V3cl3cblEJ+ N5hZLQgyF76M4Soa9Jw0kMLLQa8op9NXauzo0OMWmcwjhLoKLPvpL+P15CjTxIHgkb H0WD8E/sfOaSw== Received: by pali.im (Postfix) id 8A4B711D3; Mon, 12 Sep 2022 11:27:27 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] PCI: mvebu: Cleanup macro names Date: Mon, 12 Sep 2022 11:27:22 +0200 Message-Id: <20220912092722.24545-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220912_022733_055298_F52FD91B X-CRM114-Status: GOOD ( 21.25 ) 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 VXNlICJNVlBDSUVfIiBwcmVmaXggaW5zdGVhZCBvZiBnZW5lcmljICJQQ0lFXyIgcHJlZml4IGZv ciBwY2ktbXZlYnUuYwpzcGVjaWZpYyBtYWNyb3MuIERlZmluZSBvZmZzZXQgbWFjcm9zIGZvciBS b290IFBvcnQgcmVnaXN0ZXJzIGFuZCB1c2UKc3RhbmRhcmQgcmVnaXN0ZXIgbWFjcm9zIGZyb20g cGNpX3JlZ3MuaCB3aGVuIGFjY2Vzc2luZyBSb290IFBvcnQKcmVnaXN0ZXJzLCBsaWtlIFBDSV9W RU5ET1JfSUQsIFBDSV9DT01NQU5ELCBQQ0lfQ0xBU1NfUkVWSVNJT04sClBDSV9SRVZJU0lPTl9J RCwgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQuCgpTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8 cGFsaUBrZXJuZWwub3JnPgotLS0KVGhpcyBpcyBteSBsYXN0IHBhdGNoIGZvciBwY2ktbXZlYnUu Yy4gSXQgaXMgdGhlIGNsZWFudXAgb2YgcmVnaXN0ZXJzCm1hY3JvcyBhbmQgY2FuIGJlIGFwcGxp ZWQgb24gdG9wIG9mIGFsbCBvdGhlciBwZW5kaW5nIHBhdGNoZXMgb24gdGhlCmxpc3QuCi0tLQog ZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyB8IDQwMyArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwMCBpbnNlcnRpb25zKCspLCAyMDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUu YyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMKaW5kZXggMmVmMDRhODI0MWZj Li4yYTgzMTQ0NDI2MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12 ZWJ1LmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwpAQCAtMjgsNjQg KzI4LDYxIEBACiAvKgogICogUENJZSB1bml0IHJlZ2lzdGVyIG9mZnNldHMuCiAgKi8KLSNkZWZp bmUgUENJRV9ERVZfSURfT0ZGCQkweDAwMDAKLSNkZWZpbmUgUENJRV9DTURfT0ZGCQkweDAwMDQK LSNkZWZpbmUgUENJRV9ERVZfUkVWX09GRgkweDAwMDgKLSNkZWZpbmUgUENJRV9CQVJfTE9fT0ZG KG4pCSgweDAwMTAgKyAoKG4pIDw8IDMpKQotI2RlZmluZSBQQ0lFX0JBUl9ISV9PRkYobikJKDB4 MDAxNCArICgobikgPDwgMykpCi0jZGVmaW5lIFBDSUVfU1NERVZfSURfT0ZGCTB4MDAyYwotI2Rl ZmluZSBQQ0lFX0NBUF9QQ0lFWFBfT0ZGCTB4MDA2MAotI2RlZmluZSBQQ0lFX0NBUF9QQ0lFUlJf T0ZGCTB4MDEwMAotI2RlZmluZSBQQ0lFX0JBUl9DVFJMX09GRihuKQkoMHgxODA0ICsgKCgobikg LSAxKSAqIDQpKQotI2RlZmluZSBQQ0lFX1dJTjA0X0NUUkxfT0ZGKG4pCSgweDE4MjAgKyAoKG4p IDw8IDQpKQotI2RlZmluZSBQQ0lFX1dJTjA0X0JBU0VfT0ZGKG4pCSgweDE4MjQgKyAoKG4pIDw8 IDQpKQotI2RlZmluZSBQQ0lFX1dJTjA0X1JFTUFQX09GRihuKQkoMHgxODJjICsgKChuKSA8PCA0 KSkKLSNkZWZpbmUgUENJRV9XSU41X0NUUkxfT0ZGCTB4MTg4MAotI2RlZmluZSBQQ0lFX1dJTjVf QkFTRV9PRkYJMHgxODg0Ci0jZGVmaW5lIFBDSUVfV0lONV9SRU1BUF9PRkYJMHgxODhjCi0jZGVm aW5lIFBDSUVfQ09ORl9BRERSX09GRgkweDE4ZjgKLSNkZWZpbmUgIFBDSUVfQ09ORl9BRERSX0VO CQlCSVQoMzEpCi0jZGVmaW5lICBQQ0lFX0NPTkZfUkVHKHIpCQkoKCgocikgJiAweGYwMCkgPDwg MTYpIHwgKChyKSAmIDB4ZmMpKQotI2RlZmluZSAgUENJRV9DT05GX0JVUyhiKQkJKCgoYikgJiAw eGZmKSA8PCAxNikKLSNkZWZpbmUgIFBDSUVfQ09ORl9ERVYoZCkJCSgoKGQpICYgMHgxZikgPDwg MTEpCi0jZGVmaW5lICBQQ0lFX0NPTkZfRlVOQyhmKQkJKCgoZikgJiAweDcpIDw8IDgpCi0jZGVm aW5lICBQQ0lFX0NPTkZfQUREUihidXMsIGRldmZuLCB3aGVyZSkgXAotCShQQ0lFX0NPTkZfQlVT KGJ1cykgfCBQQ0lFX0NPTkZfREVWKFBDSV9TTE9UKGRldmZuKSkgICAgfCBcCi0JIFBDSUVfQ09O Rl9GVU5DKFBDSV9GVU5DKGRldmZuKSkgfCBQQ0lFX0NPTkZfUkVHKHdoZXJlKSB8IFwKLQkgUENJ RV9DT05GX0FERFJfRU4pCi0jZGVmaW5lIFBDSUVfQ09ORl9EQVRBX09GRgkweDE4ZmMKLSNkZWZp bmUgUENJRV9JTlRfQ0FVU0VfT0ZGCTB4MTkwMAotI2RlZmluZSBQQ0lFX0lOVF9VTk1BU0tfT0ZG CTB4MTkxMAotI2RlZmluZSAgUENJRV9JTlRfVFhSRVFfTk9MSU5LCQlCSVQoMCkKLSNkZWZpbmUg IFBDSUVfSU5UX0RFVF9DT1IJCUJJVCg4KQotI2RlZmluZSAgUENJRV9JTlRfREVUX05PTkZBVEFM CQlCSVQoOSkKLSNkZWZpbmUgIFBDSUVfSU5UX0RFVF9GQVRBTAkJQklUKDEwKQotI2RlZmluZSAg UENJRV9JTlRfRVJSX0ZBVEFMCQlCSVQoMTYpCi0jZGVmaW5lICBQQ0lFX0lOVF9FUlJfTk9ORkFU QUwJCUJJVCgxNykKLSNkZWZpbmUgIFBDSUVfSU5UX0VSUl9DT1IJCUJJVCgxOCkKLSNkZWZpbmUg IFBDSUVfSU5UX0xJTktfRkFJTAkJQklUKDIzKQotI2RlZmluZSAgUENJRV9JTlRfSU5UWChpKQkJ QklUKDI0K2kpCi0jZGVmaW5lICBQQ0lFX0lOVF9QTV9QTUUJCUJJVCgyOCkKLSNkZWZpbmUgIFBD SUVfSU5UX0RFVF9NQVNLCQkoUENJRV9JTlRfREVUX0NPUiB8IFBDSUVfSU5UX0RFVF9OT05GQVRB TCB8IFBDSUVfSU5UX0RFVF9GQVRBTCkKLSNkZWZpbmUgIFBDSUVfSU5UX0VSUl9NQVNLCQkoUENJ RV9JTlRfRVJSX0ZBVEFMIHwgUENJRV9JTlRfRVJSX05PTkZBVEFMIHwgUENJRV9JTlRfRVJSX0NP UikKLSNkZWZpbmUgIFBDSUVfSU5UX0FMTF9NQVNLCQlHRU5NQVNLKDMxLCAwKQotI2RlZmluZSBQ Q0lFX0NUUkxfT0ZGCQkweDFhMDAKLSNkZWZpbmUgIFBDSUVfQ1RSTF9YMV9NT0RFCQlCSVQoMCkK LSNkZWZpbmUgIFBDSUVfQ1RSTF9SQ19NT0RFCQlCSVQoMSkKLSNkZWZpbmUgIFBDSUVfQ1RSTF9N QVNURVJfSE9UX1JFU0VUCUJJVCgyNCkKLSNkZWZpbmUgUENJRV9TVEFUX09GRgkJMHgxYTA0Ci0j ZGVmaW5lICBQQ0lFX1NUQVRfTElOS19ET1dOCQlCSVQoMCkKLSNkZWZpbmUgIFBDSUVfU1RBVF9C VVMJCQlHRU5NQVNLKDE1LCA4KQotI2RlZmluZSAgUENJRV9TVEFUX0RFVgkJCUdFTk1BU0soMjAs IDE2KQotI2RlZmluZSBQQ0lFX1NTUExfT0ZGCQkweDFhMGMKLSNkZWZpbmUgIFBDSUVfU1NQTF9W QUxVRV9TSElGVAkJMAotI2RlZmluZSAgUENJRV9TU1BMX1ZBTFVFX01BU0sJCUdFTk1BU0soNywg MCkKLSNkZWZpbmUgIFBDSUVfU1NQTF9TQ0FMRV9TSElGVAkJOAotI2RlZmluZSAgUENJRV9TU1BM X1NDQUxFX01BU0sJCUdFTk1BU0soOSwgOCkKLSNkZWZpbmUgIFBDSUVfU1NQTF9FTkFCTEUJCUJJ VCgxNikKLSNkZWZpbmUgUENJRV9SQ19SVFNUQV9PRkYJMHgxYTE0Ci0jZGVmaW5lIFBDSUVfREVC VUdfQ1RSTF9PRkYJMHgxYTYwCi0jZGVmaW5lICBQQ0lFX0RFQlVHX1NPRlRfUkVTRVQJCUJJVCgy MCkKKyNkZWZpbmUgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfQ0ZHX09GRgkweDAwMDAKKyNkZWZpbmUg TVZQQ0lFX1JPT1RfUE9SVF9QQ0lfRVhQX09GRgkweDAwNjAKKyNkZWZpbmUgTVZQQ0lFX1JPT1Rf UE9SVF9QQ0lfRVJSX09GRgkweDAxMDAKKyNkZWZpbmUgTVZQQ0lFX0JBUl9MT19PRkYobikJCSgw eDAwMTAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBNVlBDSUVfQkFSX0hJX09GRihuKQkJKDB4MDAx NCArICgobikgPDwgMykpCisjZGVmaW5lIE1WUENJRV9CQVJfQ1RSTF9PRkYobikJCSgweDE4MDQg KyAoKChuKSAtIDEpICogNCkpCisjZGVmaW5lIE1WUENJRV9XSU4wNF9DVFJMX09GRihuKQkoMHgx ODIwICsgKChuKSA8PCA0KSkKKyNkZWZpbmUgTVZQQ0lFX1dJTjA0X0JBU0VfT0ZGKG4pCSgweDE4 MjQgKyAoKG4pIDw8IDQpKQorI2RlZmluZSBNVlBDSUVfV0lOMDRfUkVNQVBfT0ZGKG4pCSgweDE4 MmMgKyAoKG4pIDw8IDQpKQorI2RlZmluZSBNVlBDSUVfV0lONV9DVFJMX09GRgkJMHgxODgwCisj ZGVmaW5lIE1WUENJRV9XSU41X0JBU0VfT0ZGCQkweDE4ODQKKyNkZWZpbmUgTVZQQ0lFX1dJTjVf UkVNQVBfT0ZGCQkweDE4OGMKKyNkZWZpbmUgTVZQQ0lFX0NPTkZfQUREUl9PRkYJCTB4MThmOAor I2RlZmluZSAgTVZQQ0lFX0NPTkZfQUREUl9FTgkJCUJJVCgzMSkKKyNkZWZpbmUgIE1WUENJRV9D T05GX1JFRyhyKQkJCSgoKChyKSAmIDB4ZjAwKSA8PCAxNikgfCAoKHIpICYgMHhmYykpCisjZGVm aW5lICBNVlBDSUVfQ09ORl9CVVMoYikJCQkoKChiKSAmIDB4ZmYpIDw8IDE2KQorI2RlZmluZSAg TVZQQ0lFX0NPTkZfREVWKGQpCQkJKCgoZCkgJiAweDFmKSA8PCAxMSkKKyNkZWZpbmUgIE1WUENJ RV9DT05GX0ZVTkMoZikJCQkoKChmKSAmIDB4NykgPDwgOCkKKyNkZWZpbmUgIE1WUENJRV9DT05G X0FERFIoYnVzLCBkZXZmbiwgd2hlcmUpIFwKKwkoTVZQQ0lFX0NPTkZfQlVTKGJ1cykgfCBNVlBD SUVfQ09ORl9ERVYoUENJX1NMT1QoZGV2Zm4pKSAgICB8IFwKKwkgTVZQQ0lFX0NPTkZfRlVOQyhQ Q0lfRlVOQyhkZXZmbikpIHwgTVZQQ0lFX0NPTkZfUkVHKHdoZXJlKSB8IFwKKwkgTVZQQ0lFX0NP TkZfQUREUl9FTikKKyNkZWZpbmUgTVZQQ0lFX0NPTkZfREFUQV9PRkYJCTB4MThmYworI2RlZmlu ZSBNVlBDSUVfSU5UX0NBVVNFX09GRgkJMHgxOTAwCisjZGVmaW5lIE1WUENJRV9JTlRfVU5NQVNL X09GRgkJMHgxOTEwCisjZGVmaW5lICBNVlBDSUVfSU5UX1RYUkVRX05PTElOSwkJQklUKDApCisj ZGVmaW5lICBNVlBDSUVfSU5UX0RFVF9DT1IJCQlCSVQoOCkKKyNkZWZpbmUgIE1WUENJRV9JTlRf REVUX05PTkZBVEFMCQlCSVQoOSkKKyNkZWZpbmUgIE1WUENJRV9JTlRfREVUX0ZBVEFMCQkJQklU KDEwKQorI2RlZmluZSAgTVZQQ0lFX0lOVF9FUlJfRkFUQUwJCQlCSVQoMTYpCisjZGVmaW5lICBN VlBDSUVfSU5UX0VSUl9OT05GQVRBTAkJQklUKDE3KQorI2RlZmluZSAgTVZQQ0lFX0lOVF9FUlJf Q09SCQkJQklUKDE4KQorI2RlZmluZSAgTVZQQ0lFX0lOVF9MSU5LX0ZBSUwJCQlCSVQoMjMpCisj ZGVmaW5lICBNVlBDSUVfSU5UX0lOVFgoaSkJCQlCSVQoMjQraSkKKyNkZWZpbmUgIE1WUENJRV9J TlRfUE1fUE1FCQkJQklUKDI4KQorI2RlZmluZSAgTVZQQ0lFX0lOVF9ERVRfTUFTSwkJCShNVlBD SUVfSU5UX0RFVF9DT1IgfCBNVlBDSUVfSU5UX0RFVF9OT05GQVRBTCB8IE1WUENJRV9JTlRfREVU X0ZBVEFMKQorI2RlZmluZSAgTVZQQ0lFX0lOVF9FUlJfTUFTSwkJCShNVlBDSUVfSU5UX0VSUl9G QVRBTCB8IE1WUENJRV9JTlRfRVJSX05PTkZBVEFMIHwgTVZQQ0lFX0lOVF9FUlJfQ09SKQorI2Rl ZmluZSAgTVZQQ0lFX0lOVF9BTExfTUFTSwkJCUdFTk1BU0soMzEsIDApCisjZGVmaW5lIE1WUENJ RV9DVFJMX09GRgkJCTB4MWEwMAorI2RlZmluZSAgTVZQQ0lFX0NUUkxfWDFfTU9ERQkJCUJJVCgw KQorI2RlZmluZSAgTVZQQ0lFX0NUUkxfUkNfTU9ERQkJCUJJVCgxKQorI2RlZmluZSAgTVZQQ0lF X0NUUkxfTUFTVEVSX0hPVF9SRVNFVAkJQklUKDI0KQorI2RlZmluZSBNVlBDSUVfU1RBVF9PRkYJ CQkweDFhMDQKKyNkZWZpbmUgIE1WUENJRV9TVEFUX0xJTktfRE9XTgkJCUJJVCgwKQorI2RlZmlu ZSAgTVZQQ0lFX1NUQVRfQlVTCQkJR0VOTUFTSygxNSwgOCkKKyNkZWZpbmUgIE1WUENJRV9TVEFU X0RFVgkJCUdFTk1BU0soMjAsIDE2KQorI2RlZmluZSBNVlBDSUVfU1NQTF9PRkYJCQkweDFhMGMK KyNkZWZpbmUgIE1WUENJRV9TU1BMX1ZBTFVFX1NISUZUCQkwCisjZGVmaW5lICBNVlBDSUVfU1NQ TF9WQUxVRV9NQVNLCQkJR0VOTUFTSyg3LCAwKQorI2RlZmluZSAgTVZQQ0lFX1NTUExfU0NBTEVf U0hJRlQJCTgKKyNkZWZpbmUgIE1WUENJRV9TU1BMX1NDQUxFX01BU0sJCQlHRU5NQVNLKDksIDgp CisjZGVmaW5lICBNVlBDSUVfU1NQTF9FTkFCTEUJCQlCSVQoMTYpCisjZGVmaW5lIE1WUENJRV9S Q19SVFNUQV9PRkYJCTB4MWExNAorI2RlZmluZSBNVlBDSUVfREVCVUdfQ1RSTF9PRkYJCTB4MWE2 MAorI2RlZmluZSAgTVZQQ0lFX0RFQlVHX1NPRlRfUkVTRVQJCUJJVCgyMCkKIAogc3RydWN0IG12 ZWJ1X3BjaWVfcG9ydDsKIApAQCAtMTYxLDcgKzE1OCw3IEBAIHN0YXRpYyBib29sIG12ZWJ1X3Bj aWVfbGlua191cChzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCWJvb2wgbGlua19pc191 cDsKIAl1MTYgc2xvdHN0YTsKIAotCWxpbmtfaXNfdXAgPSAhKG12ZWJ1X3JlYWRsKHBvcnQsIFBD SUVfU1RBVF9PRkYpICYgUENJRV9TVEFUX0xJTktfRE9XTik7CisJbGlua19pc191cCA9ICEobXZl YnVfcmVhZGwocG9ydCwgTVZQQ0lFX1NUQVRfT0ZGKSAmIE1WUENJRV9TVEFUX0xJTktfRE9XTik7 CiAKIAlpZiAobGlua19pc191cCAhPSBwb3J0LT5saW5rX3dhc191cCkgewogCQlwb3J0LT5saW5r X3dhc191cCA9IGxpbmtfaXNfdXA7CkBAIC0xODIsNTEgKzE3OSw1MSBAQCBzdGF0aWMgYm9vbCBt dmVidV9wY2llX2xpbmtfdXAoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKIAogc3RhdGlj IHU4IG12ZWJ1X3BjaWVfZ2V0X2xvY2FsX2J1c19ucihzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpw b3J0KQogewotCXJldHVybiAobXZlYnVfcmVhZGwocG9ydCwgUENJRV9TVEFUX09GRikgJiBQQ0lF X1NUQVRfQlVTKSA+PiA4OworCXJldHVybiAobXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1NUQVRf T0ZGKSAmIE1WUENJRV9TVEFUX0JVUykgPj4gODsKIH0KIAogc3RhdGljIHZvaWQgbXZlYnVfcGNp ZV9zZXRfbG9jYWxfYnVzX25yKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQsIGludCBucikK IHsKIAl1MzIgc3RhdDsKIAotCXN0YXQgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX1NUQVRfT0ZG KTsKLQlzdGF0ICY9IH5QQ0lFX1NUQVRfQlVTOworCXN0YXQgPSBtdmVidV9yZWFkbChwb3J0LCBN VlBDSUVfU1RBVF9PRkYpOworCXN0YXQgJj0gfk1WUENJRV9TVEFUX0JVUzsKIAlzdGF0IHw9IG5y IDw8IDg7Ci0JbXZlYnVfd3JpdGVsKHBvcnQsIHN0YXQsIFBDSUVfU1RBVF9PRkYpOworCW12ZWJ1 X3dyaXRlbChwb3J0LCBzdGF0LCBNVlBDSUVfU1RBVF9PRkYpOwogfQogCiBzdGF0aWMgdm9pZCBt dmVidV9wY2llX3NldF9sb2NhbF9kZXZfbnIoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCwg aW50IG5yKQogewogCXUzMiBzdGF0OwogCi0Jc3RhdCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVf U1RBVF9PRkYpOwotCXN0YXQgJj0gflBDSUVfU1RBVF9ERVY7CisJc3RhdCA9IG12ZWJ1X3JlYWRs KHBvcnQsIE1WUENJRV9TVEFUX09GRik7CisJc3RhdCAmPSB+TVZQQ0lFX1NUQVRfREVWOwogCXN0 YXQgfD0gbnIgPDwgMTY7Ci0JbXZlYnVfd3JpdGVsKHBvcnQsIHN0YXQsIFBDSUVfU1RBVF9PRkYp OworCW12ZWJ1X3dyaXRlbChwb3J0LCBzdGF0LCBNVlBDSUVfU1RBVF9PRkYpOwogfQogCiBzdGF0 aWMgdm9pZCBtdmVidV9wY2llX2Rpc2FibGVfd2lucyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpw b3J0KQogewogCWludCBpOwogCi0JbXZlYnVfd3JpdGVsKHBvcnQsIDAsIFBDSUVfQkFSX0xPX09G RigwKSk7Ci0JbXZlYnVfd3JpdGVsKHBvcnQsIDAsIFBDSUVfQkFSX0hJX09GRigwKSk7CisJbXZl YnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9CQVJfTE9fT0ZGKDApKTsKKwltdmVidV93cml0ZWwo cG9ydCwgMCwgTVZQQ0lFX0JBUl9ISV9PRkYoMCkpOwogCiAJZm9yIChpID0gMTsgaSA8IDM7IGkr KykgewotCQltdmVidV93cml0ZWwocG9ydCwgMCwgUENJRV9CQVJfQ1RSTF9PRkYoaSkpOwotCQlt dmVidV93cml0ZWwocG9ydCwgMCwgUENJRV9CQVJfTE9fT0ZGKGkpKTsKLQkJbXZlYnVfd3JpdGVs KHBvcnQsIDAsIFBDSUVfQkFSX0hJX09GRihpKSk7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCAwLCBN VlBDSUVfQkFSX0NUUkxfT0ZGKGkpKTsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9C QVJfTE9fT0ZGKGkpKTsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9CQVJfSElfT0ZG KGkpKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0JCW12ZWJ1X3dyaXRlbChw b3J0LCAwLCBQQ0lFX1dJTjA0X0NUUkxfT0ZGKGkpKTsKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIDAs IFBDSUVfV0lOMDRfQkFTRV9PRkYoaSkpOwotCQltdmVidV93cml0ZWwocG9ydCwgMCwgUENJRV9X SU4wNF9SRU1BUF9PRkYoaSkpOworCQltdmVidV93cml0ZWwocG9ydCwgMCwgTVZQQ0lFX1dJTjA0 X0NUUkxfT0ZGKGkpKTsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9XSU4wNF9CQVNF X09GRihpKSk7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCAwLCBNVlBDSUVfV0lOMDRfUkVNQVBfT0ZG KGkpKTsKIAl9CiAKLQltdmVidV93cml0ZWwocG9ydCwgMCwgUENJRV9XSU41X0NUUkxfT0ZGKTsK LQltdmVidV93cml0ZWwocG9ydCwgMCwgUENJRV9XSU41X0JBU0VfT0ZGKTsKLQltdmVidV93cml0 ZWwocG9ydCwgMCwgUENJRV9XSU41X1JFTUFQX09GRik7CisJbXZlYnVfd3JpdGVsKHBvcnQsIDAs IE1WUENJRV9XSU41X0NUUkxfT0ZGKTsKKwltdmVidV93cml0ZWwocG9ydCwgMCwgTVZQQ0lFX1dJ TjVfQkFTRV9PRkYpOworCW12ZWJ1X3dyaXRlbChwb3J0LCAwLCBNVlBDSUVfV0lONV9SRU1BUF9P RkYpOwogfQogCiAvKgpAQCAtMjUzLDEzICsyNTAsMTMgQEAgc3RhdGljIHZvaWQgbXZlYnVfcGNp ZV9zZXR1cF93aW5zKHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCiAJCWNvbnN0IHN0cnVj dCBtYnVzX2RyYW1fd2luZG93ICpjcyA9IGRyYW0tPmNzICsgaTsKIAogCQltdmVidV93cml0ZWwo cG9ydCwgY3MtPmJhc2UgJiAweGZmZmYwMDAwLAotCQkJICAgICBQQ0lFX1dJTjA0X0JBU0VfT0ZG KGkpKTsKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIFBDSUVfV0lOMDRfUkVNQVBfT0ZGKGkpKTsK KwkJCSAgICAgTVZQQ0lFX1dJTjA0X0JBU0VfT0ZGKGkpKTsKKwkJbXZlYnVfd3JpdGVsKHBvcnQs IDAsIE1WUENJRV9XSU4wNF9SRU1BUF9PRkYoaSkpOwogCQltdmVidV93cml0ZWwocG9ydCwKIAkJ CSAgICAgKChjcy0+c2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfAogCQkJICAgICAoY3MtPm1idXNf YXR0ciA8PCA4KSB8CiAJCQkgICAgIChkcmFtLT5tYnVzX2RyYW1fdGFyZ2V0X2lkIDw8IDQpIHwg MSwKLQkJCSAgICAgUENJRV9XSU4wNF9DVFJMX09GRihpKSk7CisJCQkgICAgIE1WUENJRV9XSU4w NF9DVFJMX09GRihpKSk7CiAKIAkJc2l6ZSArPSBjcy0+c2l6ZTsKIAl9CkBAIC0yNjksMTYgKzI2 NiwxNiBAQCBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX3dpbnMoc3RydWN0IG12ZWJ1X3Bj aWVfcG9ydCAqcG9ydCkKIAkJc2l6ZSA9IDEgPDwgZmxzKHNpemUpOwogCiAJLyogU2V0dXAgQkFS WzFdIHRvIGFsbCBEUkFNIGJhbmtzLiAqLwotCW12ZWJ1X3dyaXRlbChwb3J0LCBkcmFtLT5jc1sw XS5iYXNlLCBQQ0lFX0JBUl9MT19PRkYoMSkpOwotCW12ZWJ1X3dyaXRlbChwb3J0LCAwLCBQQ0lF X0JBUl9ISV9PRkYoMSkpOworCW12ZWJ1X3dyaXRlbChwb3J0LCBkcmFtLT5jc1swXS5iYXNlLCBN VlBDSUVfQkFSX0xPX09GRigxKSk7CisJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9CQVJf SElfT0ZGKDEpKTsKIAltdmVidV93cml0ZWwocG9ydCwgKChzaXplIC0gMSkgJiAweGZmZmYwMDAw KSB8IDEsCi0JCSAgICAgUENJRV9CQVJfQ1RSTF9PRkYoMSkpOworCQkgICAgIE1WUENJRV9CQVJf Q1RSTF9PRkYoMSkpOwogCiAJLyoKIAkgKiBQb2ludCBCQVJbMF0gdG8gdGhlIGRldmljZSdzIGlu dGVybmFsIHJlZ2lzdGVycy4KIAkgKi8KLQltdmVidV93cml0ZWwocG9ydCwgcm91bmRfZG93bihw b3J0LT5yZWdzLnN0YXJ0LCBTWl8xTSksIFBDSUVfQkFSX0xPX09GRigwKSk7Ci0JbXZlYnVfd3Jp dGVsKHBvcnQsIDAsIFBDSUVfQkFSX0hJX09GRigwKSk7CisJbXZlYnVfd3JpdGVsKHBvcnQsIHJv dW5kX2Rvd24ocG9ydC0+cmVncy5zdGFydCwgU1pfMU0pLCBNVlBDSUVfQkFSX0xPX09GRigwKSk7 CisJbXZlYnVfd3JpdGVsKHBvcnQsIDAsIE1WUENJRV9CQVJfSElfT0ZGKDApKTsKIH0KIAogc3Rh dGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0 KQpAQCAtMjg2LDkgKzI4Myw5IEBAIHN0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3Ry dWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKIAl1MzIgY3RybCwgbG5rY2FwLCBjbWQsIGRldl9y ZXYsIHVubWFzaywgc3NwbDsKIAogCS8qIFNldHVwIFBDSWUgY29udHJvbGxlciB0byBSb290IENv bXBsZXggbW9kZS4gKi8KLQljdHJsID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9DVFJMX09GRik7 Ci0JY3RybCB8PSBQQ0lFX0NUUkxfUkNfTU9ERTsKLQltdmVidV93cml0ZWwocG9ydCwgY3RybCwg UENJRV9DVFJMX09GRik7CisJY3RybCA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9DVFJMX09G Rik7CisJY3RybCB8PSBNVlBDSUVfQ1RSTF9SQ19NT0RFOworCW12ZWJ1X3dyaXRlbChwb3J0LCBj dHJsLCBNVlBDSUVfQ1RSTF9PRkYpOwogCiAJLyoKIAkgKiBTZXQgTWF4aW11bSBMaW5rIFdpZHRo IHRvIFgxIG9yIFg0IGluIFJvb3QgUG9ydCdzIFBDSWUgTGluawpAQCAtMjk3LDE1ICsyOTQsMTUg QEAgc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0 ICpwb3J0KQogCSAqIGJlIHNldCB0byBudW1iZXIgb2YgU2VyRGVzIFBDSWUgbGFuZXMgKDEgb3Ig NCkuIElmIHRoaXMgcmVnaXN0ZXIgaXMKIAkgKiBub3Qgc2V0IGNvcnJlY3RseSB0aGVuIGxpbmsg d2l0aCBlbmRwb2ludCBjYXJkIGlzIG5vdCBlc3RhYmxpc2hlZC4KIAkgKi8KLQlsbmtjYXAgPSBt dmVidV9yZWFkbChwb3J0LCBQQ0lFX0NBUF9QQ0lFWFBfT0ZGICsgUENJX0VYUF9MTktDQVApOwor CWxua2NhcCA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9ST09UX1BPUlRfUENJX0VYUF9PRkYg KyBQQ0lfRVhQX0xOS0NBUCk7CiAJbG5rY2FwICY9IH5QQ0lfRVhQX0xOS0NBUF9NTFc7CiAJbG5r Y2FwIHw9IChwb3J0LT5pc194NCA/IDQgOiAxKSA8PCA0OwotCW12ZWJ1X3dyaXRlbChwb3J0LCBs bmtjYXAsIFBDSUVfQ0FQX1BDSUVYUF9PRkYgKyBQQ0lfRVhQX0xOS0NBUCk7CisJbXZlYnVfd3Jp dGVsKHBvcnQsIGxua2NhcCwgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfRVhQX09GRiArIFBDSV9FWFBf TE5LQ0FQKTsKIAogCS8qIERpc2FibGUgUm9vdCBCcmlkZ2UgSS9PIHNwYWNlLCBtZW1vcnkgc3Bh Y2UgYW5kIGJ1cyBtYXN0ZXJpbmcuICovCi0JY21kID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9D TURfT0ZGKTsKKwljbWQgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9D RkdfT0ZGICsgUENJX0NPTU1BTkQpOwogCWNtZCAmPSB+KFBDSV9DT01NQU5EX0lPIHwgUENJX0NP TU1BTkRfTUVNT1JZIHwgUENJX0NPTU1BTkRfTUFTVEVSKTsKLQltdmVidV93cml0ZWwocG9ydCwg Y21kLCBQQ0lFX0NNRF9PRkYpOworCW12ZWJ1X3dyaXRlbChwb3J0LCBjbWQsIE1WUENJRV9ST09U X1BPUlRfUENJX0NGR19PRkYgKyBQQ0lfQ09NTUFORCk7CiAKIAkvKgogCSAqIENoYW5nZSBDbGFz cyBDb2RlIG9mIFBDSSBCcmlkZ2UgZGV2aWNlIHRvIFBDSSBCcmlkZ2UgKDB4NjAwNCkKQEAgLTMx OSw3ICszMTYsNyBAQCBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX2h3KHN0cnVjdCBtdmVi dV9wY2llX3BvcnQgKnBvcnQpCiAJICogaGF2ZSB0aGUgc2FtZSBmb3JtYXQgaW4gTWFydmVsbCdz IHNwZWNpZmljYXRpb24gYXMgaW4gUENJZQogCSAqIHNwZWNpZmljYXRpb24sIGJ1dCB0aGVpciBt ZWFuaW5nIGlzIHRvdGFsbHkgZGlmZmVyZW50IGFuZCB0aGV5IGRvCiAJICogZGlmZmVyZW50IHRo aW5nczogdGhleSBhcmUgYWxpYXNlZCBpbnRvIGludGVybmFsIG12ZWJ1IHJlZ2lzdGVycwotCSAq IChlLmcuIFBDSUVfQkFSX0xPX09GRikgYW5kIHRoZXNlIHNob3VsZCBub3QgYmUgY2hhbmdlZCBv cgorCSAqIChlLmcuIE1WUENJRV9CQVJfTE9fT0ZGKSBhbmQgdGhlc2Ugc2hvdWxkIG5vdCBiZSBj aGFuZ2VkIG9yCiAJICogcmVjb25maWd1cmVkIGJ5IHBjaSBkZXZpY2UgZHJpdmVycy4KIAkgKgog CSAqIFRoZXJlZm9yZSBkcml2ZXIgdXNlcyBlbXVsYXRpb24gb2YgUENJIEJyaWRnZSB3aGljaCBl bXVsYXRlcwpAQCAtMzI4LDEwICszMjUsMTAgQEAgc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1 cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCSAqIGRpcmVjdGx5IGZvciBzaW1w bGlmaWNhdGlvbiwgYnV0IHRoZXNlIHJlZ2lzdGVycyBjYW4gYmUgYWNjZXNzZWQKIAkgKiBhbHNv IHZpYSBzdGFuZGFyZCBtdmVidSB3YXkgZm9yIGFjY2Vzc2luZyBQQ0kgY29uZmlnIHNwYWNlLgog CSAqLwotCWRldl9yZXYgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0RFVl9SRVZfT0ZGKTsKKwlk ZXZfcmV2ID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfQ0ZHX09GRiAr IFBDSV9DTEFTU19SRVZJU0lPTik7CiAJZGV2X3JldiAmPSB+MHhmZmZmZmYwMDsKIAlkZXZfcmV2 IHw9IFBDSV9DTEFTU19CUklER0VfUENJX05PUk1BTCA8PCA4OwotCW12ZWJ1X3dyaXRlbChwb3J0 LCBkZXZfcmV2LCBQQ0lFX0RFVl9SRVZfT0ZGKTsKKwltdmVidV93cml0ZWwocG9ydCwgZGV2X3Jl diwgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfQ0ZHX09GRiArIFBDSV9DTEFTU19SRVZJU0lPTik7CiAK IAkvKiBQb2ludCBQQ0llIHVuaXQgTUJVUyBkZWNvZGUgd2luZG93cyB0byBEUkFNIHNwYWNlLiAq LwogCW12ZWJ1X3BjaWVfc2V0dXBfd2lucyhwb3J0KTsKQEAgLTM0MSwyMCArMzM4LDIwIEBAIHN0 YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9y dCkKIAkgKiBQQ0llIE1lc3NhZ2Ugd2hlbiBjaGFuZ2luZyBzdGF0dXMgZnJvbSBEbF9Eb3duIHRv IERsX1VwIGFuZCB2YWxpZAogCSAqIHNsb3QgcG93ZXIgbGltaXQgd2FzIHNwZWNpZmllZC4KIAkg Ki8KLQlzc3BsID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9TU1BMX09GRik7Ci0Jc3NwbCAmPSB+ KFBDSUVfU1NQTF9WQUxVRV9NQVNLIHwgUENJRV9TU1BMX1NDQUxFX01BU0sgfCBQQ0lFX1NTUExf RU5BQkxFKTsKKwlzc3BsID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1NTUExfT0ZGKTsKKwlz c3BsICY9IH4oTVZQQ0lFX1NTUExfVkFMVUVfTUFTSyB8IE1WUENJRV9TU1BMX1NDQUxFX01BU0sg fCBNVlBDSUVfU1NQTF9FTkFCTEUpOwogCWlmIChwb3J0LT5zbG90X3Bvd2VyX2xpbWl0X3ZhbHVl KSB7Ci0JCXNzcGwgfD0gcG9ydC0+c2xvdF9wb3dlcl9saW1pdF92YWx1ZSA8PCBQQ0lFX1NTUExf VkFMVUVfU0hJRlQ7Ci0JCXNzcGwgfD0gcG9ydC0+c2xvdF9wb3dlcl9saW1pdF9zY2FsZSA8PCBQ Q0lFX1NTUExfU0NBTEVfU0hJRlQ7Ci0JCXNzcGwgfD0gUENJRV9TU1BMX0VOQUJMRTsKKwkJc3Nw bCB8PSBwb3J0LT5zbG90X3Bvd2VyX2xpbWl0X3ZhbHVlIDw8IE1WUENJRV9TU1BMX1ZBTFVFX1NI SUZUOworCQlzc3BsIHw9IHBvcnQtPnNsb3RfcG93ZXJfbGltaXRfc2NhbGUgPDwgTVZQQ0lFX1NT UExfU0NBTEVfU0hJRlQ7CisJCXNzcGwgfD0gTVZQQ0lFX1NTUExfRU5BQkxFOwogCX0KLQltdmVi dV93cml0ZWwocG9ydCwgc3NwbCwgUENJRV9TU1BMX09GRik7CisJbXZlYnVfd3JpdGVsKHBvcnQs IHNzcGwsIE1WUENJRV9TU1BMX09GRik7CiAKIAkvKiBNYXNrIGFsbCBpbnRlcnJ1cHQgc291cmNl cy4gKi8KLQltdmVidV93cml0ZWwocG9ydCwgflBDSUVfSU5UX0FMTF9NQVNLLCBQQ0lFX0lOVF9V Tk1BU0tfT0ZGKTsKKwltdmVidV93cml0ZWwocG9ydCwgfk1WUENJRV9JTlRfQUxMX01BU0ssIE1W UENJRV9JTlRfVU5NQVNLX09GRik7CiAKIAkvKiBDbGVhciBhbGwgaW50ZXJydXB0IGNhdXNlcy4g Ki8KLQltdmVidV93cml0ZWwocG9ydCwgflBDSUVfSU5UX0FMTF9NQVNLLCBQQ0lFX0lOVF9DQVVT RV9PRkYpOworCW12ZWJ1X3dyaXRlbChwb3J0LCB+TVZQQ0lFX0lOVF9BTExfTUFTSywgTVZQQ0lF X0lOVF9DQVVTRV9PRkYpOwogCiAJLyoKIAkgKiBVbm1hc2sgYWxsIGVycm9yIGludGVycnVwdHMg d2hpY2ggYXJlIGludGVybmFsbHkgZ2VuZXJhdGVkLgpAQCAtMzY1LDkgKzM2Miw5IEBAIHN0YXRp YyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkK IAkgKiBpbnRlcnJ1cHQgd2hpY2ggcmVxdWlyZXMgImVycm9yIiBpbnRlcnJ1cHQgdG8gYmUgc3Bl Y2lmaWVkIGluIERULgogCSAqLwogCWlmIChwb3J0LT5lcnJvcl9pcnEgPiAwKSB7Ci0JCXVubWFz ayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOwotCQl1bm1hc2sgfD0g UENJRV9JTlRfREVUX01BU0s7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5U X1VOTUFTS19PRkYpOworCQl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfSU5UX1VO TUFTS19PRkYpOworCQl1bm1hc2sgfD0gTVZQQ0lFX0lOVF9ERVRfTUFTSzsKKwkJbXZlYnVfd3Jp dGVsKHBvcnQsIHVubWFzaywgTVZQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKIAl9CiAKIAkvKgpAQCAt Mzc4LDkgKzM3NSw5IEBAIHN0YXRpYyB2b2lkIG12ZWJ1X3BjaWVfc2V0dXBfaHcoc3RydWN0IG12 ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKIAkgKiBTbyBlbmFibGUgdGhlc2UgaW50ZXJydXB0cyB1bmRl ciBzYW1lIGNvbmRpdGlvbnMuCiAJICovCiAJaWYgKHBvcnQtPmVycm9yX2lycSA+IDApIHsKLQkJ dW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRfVU5NQVNLX09GRik7Ci0JCXVubWFz ayB8PSBQQ0lFX0lOVF9UWFJFUV9OT0xJTksgfCBQQ0lFX0lOVF9MSU5LX0ZBSUw7Ci0JCW12ZWJ1 X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOworCQl1bm1hc2sgPSBt dmVidV9yZWFkbChwb3J0LCBNVlBDSUVfSU5UX1VOTUFTS19PRkYpOworCQl1bm1hc2sgfD0gTVZQ Q0lFX0lOVF9UWFJFUV9OT0xJTksgfCBNVlBDSUVfSU5UX0xJTktfRkFJTDsKKwkJbXZlYnVfd3Jp dGVsKHBvcnQsIHVubWFzaywgTVZQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKIAl9CiAKIAkvKgpAQCAt Mzk0LDEwICszOTEsMTAgQEAgc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3Qg bXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCSAqIGNhbGxlZCB3aGVuIHNvbWUgaW50ZXJydXB0IGlz IHRyaWdnZXJlZC4KIAkgKi8KIAlpZiAocG9ydC0+aW50eF9pcnEgPD0gMCkgewotCQl1bm1hc2sg PSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKLQkJdW5tYXNrIHw9IFBD SUVfSU5UX0lOVFgoMCkgfCBQQ0lFX0lOVF9JTlRYKDEpIHwKLQkJCSAgUENJRV9JTlRfSU5UWCgy KSB8IFBDSUVfSU5UX0lOVFgoMyk7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVf SU5UX1VOTUFTS19PRkYpOworCQl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfSU5U X1VOTUFTS19PRkYpOworCQl1bm1hc2sgfD0gTVZQQ0lFX0lOVF9JTlRYKDApIHwgTVZQQ0lFX0lO VF9JTlRYKDEpIHwKKwkJCSAgTVZQQ0lFX0lOVF9JTlRYKDIpIHwgTVZQQ0lFX0lOVF9JTlRYKDMp OworCQltdmVidV93cml0ZWwocG9ydCwgdW5tYXNrLCBNVlBDSUVfSU5UX1VOTUFTS19PRkYpOwog CX0KIH0KIApAQCAtNDIxLDcgKzQxOCw3IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9jaGlsZF9y ZF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwgaW50IHdoZXJlLAogCQlyZXR1 cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwogCiAJaWYgKHJlc291cmNlX3NpemUoJnBvcnQt PmNmZykpIHsKLQkJb2Zmc2V0ID0gUENJRV9DT05GX0FERFIoYnVzLT5udW1iZXIsIGRldmZuLCB3 aGVyZSkgJiB+UENJRV9DT05GX0FERFJfRU47CisJCW9mZnNldCA9IE1WUENJRV9DT05GX0FERFIo YnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSkgJiB+TVZQQ0lFX0NPTkZfQUREUl9FTjsKIAkJaWYg KG9mZnNldCA+PSByZXNvdXJjZV9zaXplKCZwb3J0LT5jZmcpKQogCQkJcmV0dXJuIFBDSUJJT1Nf REVWSUNFX05PVF9GT1VORDsKIApAQCAtNDI5LDEwICs0MjYsMTAgQEAgc3RhdGljIGludCBtdmVi dV9wY2llX2NoaWxkX3JkX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLCBpbnQg d2hlcmUsCiAJCWlmICghY29uZl9kYXRhKQogCQkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9G T1VORDsKIAl9IGVsc2UgewotCQljb25mX2RhdGEgPSBwb3J0LT5iYXNlICsgUENJRV9DT05GX0RB VEFfT0ZGOworCQljb25mX2RhdGEgPSBwb3J0LT5iYXNlICsgTVZQQ0lFX0NPTkZfREFUQV9PRkY7 CiAKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIFBDSUVfQ09ORl9BRERSKGJ1cy0+bnVtYmVyLCBkZXZm biwgd2hlcmUpLAotCQkJICAgICBQQ0lFX0NPTkZfQUREUl9PRkYpOworCQltdmVidV93cml0ZWwo cG9ydCwgTVZQQ0lFX0NPTkZfQUREUihidXMtPm51bWJlciwgZGV2Zm4sIHdoZXJlKSwKKwkJCSAg ICAgTVZQQ0lFX0NPTkZfQUREUl9PRkYpOwogCX0KIAogCXN3aXRjaCAoc2l6ZSkgewpAQCAtNDcz LDcgKzQ3MCw3IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9jaGlsZF93cl9jb25mKHN0cnVjdCBw Y2lfYnVzICpidXMsIHUzMiBkZXZmbiwKIAkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VO RDsKIAogCWlmIChyZXNvdXJjZV9zaXplKCZwb3J0LT5jZmcpKSB7Ci0JCW9mZnNldCA9IFBDSUVf Q09ORl9BRERSKGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpICYgflBDSUVfQ09ORl9BRERSX0VO OworCQlvZmZzZXQgPSBNVlBDSUVfQ09ORl9BRERSKGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUp ICYgfk1WUENJRV9DT05GX0FERFJfRU47CiAJCWlmIChvZmZzZXQgPj0gcmVzb3VyY2Vfc2l6ZSgm cG9ydC0+Y2ZnKSkKIAkJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAKQEAgLTQ4 MSwxMCArNDc4LDEwIEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9jaGlsZF93cl9jb25mKHN0cnVj dCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKIAkJaWYgKCFjb25mX2RhdGEpCiAJCQlyZXR1cm4g UENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwogCX0gZWxzZSB7Ci0JCWNvbmZfZGF0YSA9IHBvcnQt PmJhc2UgKyBQQ0lFX0NPTkZfREFUQV9PRkY7CisJCWNvbmZfZGF0YSA9IHBvcnQtPmJhc2UgKyBN VlBDSUVfQ09ORl9EQVRBX09GRjsKIAotCQltdmVidV93cml0ZWwocG9ydCwgUENJRV9DT05GX0FE RFIoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSksCi0JCQkgICAgIFBDSUVfQ09ORl9BRERSX09G Rik7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCBNVlBDSUVfQ09ORl9BRERSKGJ1cy0+bnVtYmVyLCBk ZXZmbiwgd2hlcmUpLAorCQkJICAgICBNVlBDSUVfQ09ORl9BRERSX09GRik7CiAJfQogCiAJc3dp dGNoIChzaXplKSB7CkBAIC02NzAsNyArNjY3LDcgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX2Jh c2VfY29uZl9yZWFkKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAogCXN3aXRjaCAo cmVnKSB7CiAJY2FzZSBQQ0lfQ09NTUFORDoKLQkJKnZhbHVlID0gbXZlYnVfcmVhZGwocG9ydCwg UENJRV9DTURfT0ZGKTsKKwkJKnZhbHVlID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1JPT1Rf UE9SVF9QQ0lfQ0ZHX09GRiArIFBDSV9DT01NQU5EKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBDSV9Q UklNQVJZX0JVUzogewpAQCAtNjk1LDEyICs2OTIsMTIgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVs X2Jhc2VfY29uZl9yZWFkKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAkJICovCiAJ CV9fbGUzMiAqY2Znc3BhY2UgPSAoX19sZTMyICopJmJyaWRnZS0+Y29uZjsKIAkJdTMyIHZhbCA9 IGxlMzJfdG9fY3B1KGNmZ3NwYWNlW1BDSV9JTlRFUlJVUFRfTElORSAvIDRdKTsKLQkJaWYgKCht dmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKSAmCi0JCSAgICAgIFBDSUVfSU5U X0VSUl9NQVNLKSA9PSBQQ0lFX0lOVF9FUlJfTUFTSykKKwkJaWYgKChtdmVidV9yZWFkbChwb3J0 LCBNVlBDSUVfSU5UX1VOTUFTS19PRkYpICYKKwkJICAgICAgTVZQQ0lFX0lOVF9FUlJfTUFTSykg PT0gTVZQQ0lFX0lOVF9FUlJfTUFTSykKIAkJCXZhbCB8PSBQQ0lfQlJJREdFX0NUTF9TRVJSIDw8 IDE2OwogCQllbHNlCiAJCQl2YWwgJj0gfihQQ0lfQlJJREdFX0NUTF9TRVJSIDw8IDE2KTsKLQkJ aWYgKG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfQ1RSTF9PRkYpICYgUENJRV9DVFJMX01BU1RFUl9I T1RfUkVTRVQpCisJCWlmIChtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfQ1RSTF9PRkYpICYgTVZQ Q0lFX0NUUkxfTUFTVEVSX0hPVF9SRVNFVCkKIAkJCXZhbCB8PSBQQ0lfQlJJREdFX0NUTF9CVVNf UkVTRVQgPDwgMTY7CiAJCWVsc2UKIAkJCXZhbCAmPSB+KFBDSV9CUklER0VfQ1RMX0JVU19SRVNF VCA8PCAxNik7CkBAIC03MjMsMTEgKzcyMCwxMSBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxfcGNp ZV9jb25mX3JlYWQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAogCiAJc3dpdGNoIChy ZWcpIHsKIAljYXNlIFBDSV9FWFBfREVWQ0FQOgotCQkqdmFsdWUgPSBtdmVidV9yZWFkbChwb3J0 LCBQQ0lFX0NBUF9QQ0lFWFBfT0ZGICsgUENJX0VYUF9ERVZDQVApOworCQkqdmFsdWUgPSBtdmVi dV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9FWFBfT0ZGICsgUENJX0VYUF9ERVZD QVApOwogCQlicmVhazsKIAogCWNhc2UgUENJX0VYUF9ERVZDVEw6Ci0JCSp2YWx1ZSA9IG12ZWJ1 X3JlYWRsKHBvcnQsIFBDSUVfQ0FQX1BDSUVYUF9PRkYgKyBQQ0lfRVhQX0RFVkNUTCk7CisJCSp2 YWx1ZSA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9ST09UX1BPUlRfUENJX0VYUF9PRkYgKyBQ Q0lfRVhQX0RFVkNUTCk7CiAJCWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQX0xOS0NBUDoKQEAgLTcz NywxMyArNzM0LDEzIEBAIG12ZWJ1X3BjaV9icmlkZ2VfZW11bF9wY2llX2NvbmZfcmVhZChzdHJ1 Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsCiAJCSAqIEFkZGl0aW9uYWxseSBlbmFibGUgRGF0 YSBMaW5rIExheWVyIExpbmsgQWN0aXZlIFJlcG9ydGluZwogCQkgKiBDYXBhYmxlIGJpdCBhcyBE TF9BY3RpdmUgaW5kaWNhdGlvbiBpcyBwcm92aWRlZCB0b28uCiAJCSAqLwotCQkqdmFsdWUgPSAo bXZlYnVfcmVhZGwocG9ydCwgUENJRV9DQVBfUENJRVhQX09GRiArIFBDSV9FWFBfTE5LQ0FQKSAm CisJCSp2YWx1ZSA9IChtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9FWFBf T0ZGICsgUENJX0VYUF9MTktDQVApICYKIAkJCSAgflBDSV9FWFBfTE5LQ0FQX0NMS1BNKSB8IFBD SV9FWFBfTE5LQ0FQX0RMTExBUkM7CiAJCWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQX0xOS0NUTDoK LQkJLyogRExfQWN0aXZlIGluZGljYXRpb24gaXMgcHJvdmlkZWQgdmlhIFBDSUVfU1RBVF9PRkYg Ki8KLQkJKnZhbHVlID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9DQVBfUENJRVhQX09GRiArIFBD SV9FWFBfTE5LQ1RMKSB8CisJCS8qIERMX0FjdGl2ZSBpbmRpY2F0aW9uIGlzIHByb3ZpZGVkIHZp YSBNVlBDSUVfU1RBVF9PRkYgKi8KKwkJKnZhbHVlID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lF X1JPT1RfUE9SVF9QQ0lfRVhQX09GRiArIFBDSV9FWFBfTE5LQ1RMKSB8CiAJCQkgKG12ZWJ1X3Bj aWVfbGlua191cChwb3J0KSA/CiAJCQkgIChQQ0lfRVhQX0xOS1NUQV9ETExMQSA8PCAxNikgOiAw KTsKIAkJYnJlYWs7CkBAIC03NTUsMTEgKzc1MiwxMSBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxf cGNpZV9jb25mX3JlYWQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAogCQkvKgogCQkg KiBXaGVuIHNsb3QgcG93ZXIgbGltaXQgd2FzIG5vdCBzcGVjaWZpZWQgaW4gRFQgdGhlbgogCQkg KiBBU1BMX0RJU0FCTEUgYml0IGlzIHN0b3JlZCBvbmx5IGluIGVtdWxhdGVkIGNvbmZpZyBzcGFj ZS4KLQkJICogT3RoZXJ3aXNlIHJlZmxlY3Qgc3RhdHVzIG9mIFBDSUVfU1NQTF9FTkFCTEUgYml0 IGluIEhXLgorCQkgKiBPdGhlcndpc2UgcmVmbGVjdCBzdGF0dXMgb2YgTVZQQ0lFX1NTUExfRU5B QkxFIGJpdCBpbiBIVy4KIAkJICovCiAJCWlmICghcG9ydC0+c2xvdF9wb3dlcl9saW1pdF92YWx1 ZSkKIAkJCXZhbCB8PSBzbG90Y3RsICYgUENJX0VYUF9TTFRDVExfQVNQTF9ESVNBQkxFOwotCQll bHNlIGlmICghKG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfU1NQTF9PRkYpICYgUENJRV9TU1BMX0VO QUJMRSkpCisJCWVsc2UgaWYgKCEobXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1NTUExfT0ZGKSAm IE1WUENJRV9TU1BMX0VOQUJMRSkpCiAJCQl2YWwgfD0gUENJX0VYUF9TTFRDVExfQVNQTF9ESVNB QkxFOwogCQkvKgogCQkgKiBIUElFIGFuZCBETExTQ0UgYml0cyBhcmUgc3RvcmVkIG9ubHkgaW4g ZW11bGF0ZWQgY29uZmlnCkBAIC03NzYsMjQgKzc3MywyNCBAQCBtdmVidV9wY2lfYnJpZGdlX2Vt dWxfcGNpZV9jb25mX3JlYWQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAogCX0KIAog CWNhc2UgUENJX0VYUF9SVENUTDoKLQkJKnZhbHVlID0gKG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVf SU5UX1VOTUFTS19PRkYpICYKLQkJCSAgUENJRV9JTlRfUE1fUE1FKSA/IFBDSV9FWFBfUlRDVExf UE1FSUUgOiAwOworCQkqdmFsdWUgPSAobXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX0lOVF9VTk1B U0tfT0ZGKSAmCisJCQkgIE1WUENJRV9JTlRfUE1fUE1FKSA/IFBDSV9FWFBfUlRDVExfUE1FSUUg OiAwOwogCQlicmVhazsKIAogCWNhc2UgUENJX0VYUF9SVFNUQToKLQkJKnZhbHVlID0gbXZlYnVf cmVhZGwocG9ydCwgUENJRV9SQ19SVFNUQV9PRkYpOworCQkqdmFsdWUgPSBtdmVidV9yZWFkbChw b3J0LCBNVlBDSUVfUkNfUlRTVEFfT0ZGKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBDSV9FWFBfREVW Q0FQMjoKLQkJKnZhbHVlID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9DQVBfUENJRVhQX09GRiAr IFBDSV9FWFBfREVWQ0FQMik7CisJCSp2YWx1ZSA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9S T09UX1BPUlRfUENJX0VYUF9PRkYgKyBQQ0lfRVhQX0RFVkNBUDIpOwogCQlicmVhazsKIAogCWNh c2UgUENJX0VYUF9ERVZDVEwyOgotCQkqdmFsdWUgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0NB UF9QQ0lFWFBfT0ZGICsgUENJX0VYUF9ERVZDVEwyKTsKKwkJKnZhbHVlID0gbXZlYnVfcmVhZGwo cG9ydCwgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfRVhQX09GRiArIFBDSV9FWFBfREVWQ1RMMik7CiAJ CWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQX0xOS0NUTDI6Ci0JCSp2YWx1ZSA9IG12ZWJ1X3JlYWRs KHBvcnQsIFBDSUVfQ0FQX1BDSUVYUF9PRkYgKyBQQ0lfRVhQX0xOS0NUTDIpOworCQkqdmFsdWUg PSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9FWFBfT0ZGICsgUENJX0VY UF9MTktDVEwyKTsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgpAQCAtODI0LDcgKzgyMSw3IEBAIG12 ZWJ1X3BjaV9icmlkZ2VfZW11bF9leHRfY29uZl9yZWFkKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwg KmJyaWRnZSwKIAljYXNlIFBDSV9FUlJfUk9PVF9DT01NQU5EOgogCWNhc2UgUENJX0VSUl9ST09U X1NUQVRVUzoKIAljYXNlIFBDSV9FUlJfUk9PVF9FUlJfU1JDOgotCQkqdmFsdWUgPSBtdmVidV9y ZWFkbChwb3J0LCBQQ0lFX0NBUF9QQ0lFUlJfT0ZGICsgcmVnKTsKKwkJKnZhbHVlID0gbXZlYnVf cmVhZGwocG9ydCwgTVZQQ0lFX1JPT1RfUE9SVF9QQ0lfRVJSX09GRiArIHJlZyk7CiAJCWJyZWFr OwogCiAJZGVmYXVsdDoKQEAgLTg0Myw3ICs4NDAsNyBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxf YmFzZV9jb25mX3dyaXRlKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAogCXN3aXRj aCAocmVnKSB7CiAJY2FzZSBQQ0lfQ09NTUFORDoKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIG5ldywg UENJRV9DTURfT0ZGKTsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIG5ldywgTVZQQ0lFX1JPT1RfUE9S VF9QQ0lfQ0ZHX09GRiArIFBDSV9DT01NQU5EKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBDSV9JT19C QVNFOgpAQCAtODg2LDI3ICs4ODMsMjcgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX2Jhc2VfY29u Zl93cml0ZShzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsCiAKIAljYXNlIFBDSV9JTlRF UlJVUFRfTElORToKIAkJaWYgKChtYXNrICYgKFBDSV9CUklER0VfQ1RMX1NFUlIgPDwgMTYpKSAm JiBwb3J0LT5lcnJvcl9pcnEgPiAwKSB7Ci0JCQl1MzIgdW5tYXNrID0gbXZlYnVfcmVhZGwocG9y dCwgUENJRV9JTlRfVU5NQVNLX09GRik7CisJCQl1MzIgdW5tYXNrID0gbXZlYnVfcmVhZGwocG9y dCwgTVZQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKIAkJCWlmIChuZXcgJiAoUENJX0JSSURHRV9DVExf U0VSUiA8PCAxNikpCi0JCQkJdW5tYXNrIHw9IFBDSUVfSU5UX0VSUl9NQVNLOworCQkJCXVubWFz ayB8PSBNVlBDSUVfSU5UX0VSUl9NQVNLOwogCQkJZWxzZQotCQkJCXVubWFzayAmPSB+UENJRV9J TlRfRVJSX01BU0s7Ci0JCQltdmVidV93cml0ZWwocG9ydCwgdW5tYXNrLCBQQ0lFX0lOVF9VTk1B U0tfT0ZGKTsKKwkJCQl1bm1hc2sgJj0gfk1WUENJRV9JTlRfRVJSX01BU0s7CisJCQltdmVidV93 cml0ZWwocG9ydCwgdW5tYXNrLCBNVlBDSUVfSU5UX1VOTUFTS19PRkYpOwogCQl9CiAJCWlmICht YXNrICYgKFBDSV9CUklER0VfQ1RMX0JVU19SRVNFVCA8PCAxNikpIHsKLQkJCXUzMiBjdHJsID0g bXZlYnVfcmVhZGwocG9ydCwgUENJRV9DVFJMX09GRik7CisJCQl1MzIgY3RybCA9IG12ZWJ1X3Jl YWRsKHBvcnQsIE1WUENJRV9DVFJMX09GRik7CiAJCQlpZiAobmV3ICYgKFBDSV9CUklER0VfQ1RM X0JVU19SRVNFVCA8PCAxNikpCi0JCQkJY3RybCB8PSBQQ0lFX0NUUkxfTUFTVEVSX0hPVF9SRVNF VDsKKwkJCQljdHJsIHw9IE1WUENJRV9DVFJMX01BU1RFUl9IT1RfUkVTRVQ7CiAJCQllbHNlCi0J CQkJY3RybCAmPSB+UENJRV9DVFJMX01BU1RFUl9IT1RfUkVTRVQ7Ci0JCQltdmVidV93cml0ZWwo cG9ydCwgY3RybCwgUENJRV9DVFJMX09GRik7CisJCQkJY3RybCAmPSB+TVZQQ0lFX0NUUkxfTUFT VEVSX0hPVF9SRVNFVDsKKwkJCW12ZWJ1X3dyaXRlbChwb3J0LCBjdHJsLCBNVlBDSUVfQ1RSTF9P RkYpOwogCQkJLyoKIAkJCSAqIFdoZW4gZHJvcHBpbmcgdG8gRGV0ZWN0IHZpYSBIb3QgUmVzZXQs IERpc2FibGUgTGluawogCQkJICogb3IgTG9vcGJhY2sgc3RhdGVzLCB0aGUgTGluayBGYWlsdXJl IGludGVycnVwdCBpcyBub3QKIAkJCSAqIGFzc2VydGVkLiBTbyB3aGVuIHNldHRpbmcgU2Vjb25k YXJ5IEJ1cyBSZXNldCAvIEhvdAogCQkJICogUmVzZXQgYml0LCBjYWxsIGxpbmsgSVJRIHRpbWVy L2hhbmRsZXIgbWFudWFsbHkuCiAJCQkgKi8KLQkJCWlmICgoY3RybCAmIFBDSUVfQ1RSTF9NQVNU RVJfSE9UX1JFU0VUKSAmJiBwb3J0LT5saW5rX3dhc191cCkgeworCQkJaWYgKChjdHJsICYgTVZQ Q0lFX0NUUkxfTUFTVEVSX0hPVF9SRVNFVCkgJiYgcG9ydC0+bGlua193YXNfdXApIHsKIAkJCQlw b3J0LT5saW5rX3dhc191cCA9IGZhbHNlOwogCQkJCS8qCiAJCQkJICogTGluayBJUlEgdGltZXIv aGFuZGxlciBpcyBhdmFpbGFibGUgb25seSB3aGVuCkBAIC05MzUsNyArOTMyLDcgQEAgbXZlYnVf cGNpX2JyaWRnZV9lbXVsX3BjaWVfY29uZl93cml0ZShzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpi cmlkZ2UsCiAKIAlzd2l0Y2ggKHJlZykgewogCWNhc2UgUENJX0VYUF9ERVZDVEw6Ci0JCW12ZWJ1 X3dyaXRlbChwb3J0LCBuZXcsIFBDSUVfQ0FQX1BDSUVYUF9PRkYgKyBQQ0lfRVhQX0RFVkNUTCk7 CisJCW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIE1WUENJRV9ST09UX1BPUlRfUENJX0VYUF9PRkYg KyBQQ0lfRVhQX0RFVkNUTCk7CiAJCWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQX0xOS0NUTDoKQEAg LTk0Niw3ICs5NDMsNyBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxfcGNpZV9jb25mX3dyaXRlKHN0 cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAkJICovCiAJCW5ldyAmPSB+UENJX0VYUF9M TktDVExfQ0xLUkVRX0VOOwogCi0JCW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIFBDSUVfQ0FQX1BD SUVYUF9PRkYgKyBQQ0lfRVhQX0xOS0NUTCk7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIE1W UENJRV9ST09UX1BPUlRfUENJX0VYUF9PRkYgKyBQQ0lfRVhQX0xOS0NUTCk7CiAJCS8qCiAJCSAq IFdoZW4gZHJvcHBpbmcgdG8gRGV0ZWN0IHZpYSBIb3QgUmVzZXQsIERpc2FibGUgTGluawogCQkg KiBvciBMb29wYmFjayBzdGF0ZXMsIHRoZSBMaW5rIEZhaWx1cmUgaW50ZXJydXB0IGlzIG5vdApA QCAtOTcwLDUyICs5NjcsNTIgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX3BjaWVfY29uZl93cml0 ZShzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsCiAKIAljYXNlIFBDSV9FWFBfU0xUQ1RM OgogCQkvKgotCQkgKiBBbGxvdyB0byBjaGFuZ2UgUENJRV9TU1BMX0VOQUJMRSBiaXQgb25seSB3 aGVuIHNsb3QgcG93ZXIKKwkJICogQWxsb3cgdG8gY2hhbmdlIE1WUENJRV9TU1BMX0VOQUJMRSBi aXQgb25seSB3aGVuIHNsb3QgcG93ZXIKIAkJICogbGltaXQgd2FzIHNwZWNpZmllZCBpbiBEVCBh bmQgY29uZmlndXJlZCBpbnRvIEhXLgogCQkgKi8KIAkJaWYgKChtYXNrICYgUENJX0VYUF9TTFRD VExfQVNQTF9ESVNBQkxFKSAmJgogCQkgICAgcG9ydC0+c2xvdF9wb3dlcl9saW1pdF92YWx1ZSkg ewotCQkJdTMyIHNzcGwgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX1NTUExfT0ZGKTsKKwkJCXUz MiBzc3BsID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX1NTUExfT0ZGKTsKIAkJCWlmIChuZXcg JiBQQ0lfRVhQX1NMVENUTF9BU1BMX0RJU0FCTEUpCi0JCQkJc3NwbCAmPSB+UENJRV9TU1BMX0VO QUJMRTsKKwkJCQlzc3BsICY9IH5NVlBDSUVfU1NQTF9FTkFCTEU7CiAJCQllbHNlCi0JCQkJc3Nw bCB8PSBQQ0lFX1NTUExfRU5BQkxFOwotCQkJbXZlYnVfd3JpdGVsKHBvcnQsIHNzcGwsIFBDSUVf U1NQTF9PRkYpOworCQkJCXNzcGwgfD0gTVZQQ0lFX1NTUExfRU5BQkxFOworCQkJbXZlYnVfd3Jp dGVsKHBvcnQsIHNzcGwsIE1WUENJRV9TU1BMX09GRik7CiAJCX0KIAkJYnJlYWs7CiAKIAljYXNl IFBDSV9FWFBfUlRTVEE6CiAJCS8qCi0JCSAqIFBNRSBTdGF0dXMgYml0IGluIFJvb3QgU3RhdHVz IFJlZ2lzdGVyIChQQ0lFX1JDX1JUU1RBX09GRikKKwkJICogUE1FIFN0YXR1cyBiaXQgaW4gUm9v dCBTdGF0dXMgUmVnaXN0ZXIgKE1WUENJRV9SQ19SVFNUQV9PRkYpCiAJCSAqIGlzIHJlYWQtb25s eSBhbmQgY2FuIGJlIGNsZWFyZWQgb25seSBieSB3cml0aW5nIDBiIHRvIHRoZQotCQkgKiBJbnRl cnJ1cHQgQ2F1c2UgUlcwQyByZWdpc3RlciAoUENJRV9JTlRfQ0FVU0VfT0ZGKS4gU28KKwkJICog SW50ZXJydXB0IENhdXNlIFJXMEMgcmVnaXN0ZXIgKE1WUENJRV9JTlRfQ0FVU0VfT0ZGKS4gU28K IAkJICogY2xlYXIgUE1FIHZpYSBJbnRlcnJ1cHQgQ2F1c2UgYW5kIGFsc28gc2V0IHBvcnQtPnBt ZV9wZW5kaW5nCiAJCSAqIHZhcmlhYmxlIHRvIGZhbHNlIHZhbHVlIHRvIHN0YXJ0IHByb2Nlc3Np bmcgUE1FIGludGVycnVwdHMKIAkJICogaW4gaW50ZXJydXB0IGhhbmRsZXIgYWdhaW4uCiAJCSAq LwogCQlpZiAobmV3ICYgUENJX0VYUF9SVFNUQV9QTUUpIHsKLQkJCW12ZWJ1X3dyaXRlbChwb3J0 LCB+UENJRV9JTlRfUE1fUE1FLCBQQ0lFX0lOVF9DQVVTRV9PRkYpOworCQkJbXZlYnVfd3JpdGVs KHBvcnQsIH5NVlBDSUVfSU5UX1BNX1BNRSwgTVZQQ0lFX0lOVF9DQVVTRV9PRkYpOwogCQkJcG9y dC0+cG1lX3BlbmRpbmcgPSBmYWxzZTsKIAkJfQogCQlicmVhazsKIAogCWNhc2UgUENJX0VYUF9S VENUTDoKIAkJaWYgKChtYXNrICYgUENJX0VYUF9SVENUTF9QTUVJRSkgJiYgcG9ydC0+ZXJyb3Jf aXJxID4gMCkgewotCQkJdTMyIHVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VO TUFTS19PRkYpOworCQkJdTMyIHVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9JTlRf VU5NQVNLX09GRik7CiAJCQlpZiAobmV3ICYgUENJX0VYUF9SVENUTF9QTUVJRSkKLQkJCQl1bm1h c2sgfD0gUENJRV9JTlRfUE1fUE1FOworCQkJCXVubWFzayB8PSBNVlBDSUVfSU5UX1BNX1BNRTsK IAkJCWVsc2UKLQkJCQl1bm1hc2sgJj0gflBDSUVfSU5UX1BNX1BNRTsKLQkJCW12ZWJ1X3dyaXRl bChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOworCQkJCXVubWFzayAmPSB+TVZQ Q0lFX0lOVF9QTV9QTUU7CisJCQltdmVidV93cml0ZWwocG9ydCwgdW5tYXNrLCBNVlBDSUVfSU5U X1VOTUFTS19PRkYpOwogCQl9CiAJCWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQX0RFVkNUTDI6Ci0J CW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIFBDSUVfQ0FQX1BDSUVYUF9PRkYgKyBQQ0lfRVhQX0RF VkNUTDIpOworCQltdmVidV93cml0ZWwocG9ydCwgbmV3LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9F WFBfT0ZGICsgUENJX0VYUF9ERVZDVEwyKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBDSV9FWFBfTE5L Q1RMMjoKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIG5ldywgUENJRV9DQVBfUENJRVhQX09GRiArIFBD SV9FWFBfTE5LQ1RMMik7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIE1WUENJRV9ST09UX1BP UlRfUENJX0VYUF9PRkYgKyBQQ0lfRVhQX0xOS0NUTDIpOwogCQlicmVhazsKIAogCWRlZmF1bHQ6 CkBAIC0xMDQ3LDcgKzEwNDQsNyBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxfZXh0X2NvbmZfd3Jp dGUoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAogCWNhc2UgUENJX0VSUl9IRUFERVJf TE9HKzEyOgogCWNhc2UgUENJX0VSUl9ST09UX0NPTU1BTkQ6CiAJY2FzZSBQQ0lfRVJSX1JPT1Rf RVJSX1NSQzoKLQkJbXZlYnVfd3JpdGVsKHBvcnQsIG5ldywgUENJRV9DQVBfUENJRVJSX09GRiAr IHJlZyk7CisJCW12ZWJ1X3dyaXRlbChwb3J0LCBuZXcsIE1WUENJRV9ST09UX1BPUlRfUENJX0VS Ul9PRkYgKyByZWcpOwogCQlicmVhazsKIAogCWRlZmF1bHQ6CkBAIC0xMDcyLDEwICsxMDY5LDEw IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX2luaXQoc3RydWN0IG12ZWJ1X3Bj aWVfcG9ydCAqcG9ydCkKIHsKIAl1bnNpZ25lZCBpbnQgYnJpZGdlX2ZsYWdzID0gUENJX0JSSURH RV9FTVVMX05PX1BSRUZNRU1fRk9SV0FSRDsKIAlzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlk Z2UgPSAmcG9ydC0+YnJpZGdlOwotCXUzMiBkZXZfaWQgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lF X0RFVl9JRF9PRkYpOwotCXUzMiBkZXZfcmV2ID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9ERVZf UkVWX09GRik7Ci0JdTMyIHNzZGV2X2lkID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9TU0RFVl9J RF9PRkYpOwotCXUzMiBwY2llX2NhcCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfQ0FQX1BDSUVY UF9PRkYpOworCXUzMiBkZXZfaWQgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JU X1BDSV9DRkdfT0ZGICsgUENJX1ZFTkRPUl9JRCk7CisJdTMyIGRldl9yZXYgPSBtdmVidV9yZWFk bChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9DRkdfT0ZGICsgUENJX1JFVklTSU9OX0lEKTsK Kwl1MzIgc3NkZXZfaWQgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9D RkdfT0ZGICsgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQpOworCXUzMiBwY2llX2NhcCA9IG12ZWJ1 X3JlYWRsKHBvcnQsIE1WUENJRV9ST09UX1BPUlRfUENJX0VYUF9PRkYpOwogCXU4IHBjaWVfY2Fw X3ZlciA9ICgocGNpZV9jYXAgPj4gMTYpICYgUENJX0VYUF9GTEFHU19WRVJTKTsKIAogCWJyaWRn ZS0+Y29uZi52ZW5kb3IgPSBjcHVfdG9fbGUxNihkZXZfaWQgJiAweGZmZmYpOwpAQCAtMTEzNiw3 ICsxMTMzLDcgQEAgc3RhdGljIGludCBtdmVidV9wY2lfYnJpZGdlX2VtdWxfaW5pdChzdHJ1Y3Qg bXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCWJyaWRnZS0+c3Vic3lzdGVtX3ZlbmRvcl9pZCA9IHNz ZGV2X2lkICYgMHhmZmZmOwogCWJyaWRnZS0+c3Vic3lzdGVtX2lkID0gc3NkZXZfaWQgPj4gMTY7 CiAJYnJpZGdlLT5oYXNfcGNpZSA9IHRydWU7Ci0JYnJpZGdlLT5wY2llX3N0YXJ0ID0gUENJRV9D QVBfUENJRVhQX09GRjsKKwlicmlkZ2UtPnBjaWVfc3RhcnQgPSBNVlBDSUVfUk9PVF9QT1JUX1BD SV9FWFBfT0ZGOwogCWJyaWRnZS0+ZGF0YSA9IHBvcnQ7CiAJYnJpZGdlLT5vcHMgPSAmbXZlYnVf cGNpX2JyaWRnZV9lbXVsX29wczsKIApAQCAtMTIxMiw5ICsxMjA5LDkgQEAgc3RhdGljIHZvaWQg bXZlYnVfcGNpZV9pbnR4X2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKIAl1MzIgdW5tYXNr OwogCiAJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5pcnFfbG9jaywgZmxhZ3MpOwotCXVu bWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYpOwotCXVubWFzayAm PSB+UENJRV9JTlRfSU5UWChod2lycSk7Ci0JbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgUENJ RV9JTlRfVU5NQVNLX09GRik7CisJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX0lO VF9VTk1BU0tfT0ZGKTsKKwl1bm1hc2sgJj0gfk1WUENJRV9JTlRfSU5UWChod2lycSk7CisJbXZl YnVfd3JpdGVsKHBvcnQsIHVubWFzaywgTVZQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKIAlyYXdfc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+aXJxX2xvY2ssIGZsYWdzKTsKIH0KIApAQCAtMTIy Niw5ICsxMjIzLDkgQEAgc3RhdGljIHZvaWQgbXZlYnVfcGNpZV9pbnR4X2lycV91bm1hc2soc3Ry dWN0IGlycV9kYXRhICpkKQogCXUzMiB1bm1hc2s7CiAKIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUo JnBvcnQtPmlycV9sb2NrLCBmbGFncyk7Ci0JdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJ RV9JTlRfVU5NQVNLX09GRik7Ci0JdW5tYXNrIHw9IFBDSUVfSU5UX0lOVFgoaHdpcnEpOwotCW12 ZWJ1X3dyaXRlbChwb3J0LCB1bm1hc2ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOworCXVubWFzayA9 IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9JTlRfVU5NQVNLX09GRik7CisJdW5tYXNrIHw9IE1W UENJRV9JTlRfSU5UWChod2lycSk7CisJbXZlYnVfd3JpdGVsKHBvcnQsIHVubWFzaywgTVZQQ0lF X0lOVF9VTk1BU0tfT0ZGKTsKIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+aXJx X2xvY2ssIGZsYWdzKTsKIH0KIApAQCAtMTM0MSwxNiArMTMzOCwxNiBAQCBzdGF0aWMgaXJxcmV0 dXJuX3QgbXZlYnVfcGNpZV9lcnJvcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJ dTMyIGNhdXNlLCB1bm1hc2ssIHN0YXR1czsKIAl1MTYgc2xvdHN0YTsKIAotCWNhdXNlID0gbXZl YnVfcmVhZGwocG9ydCwgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKLQl1bm1hc2sgPSBtdmVidV9yZWFk bChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKKwljYXVzZSA9IG12ZWJ1X3JlYWRsKHBvcnQs IE1WUENJRV9JTlRfQ0FVU0VfT0ZGKTsKKwl1bm1hc2sgPSBtdmVidV9yZWFkbChwb3J0LCBNVlBD SUVfSU5UX1VOTUFTS19PRkYpOwogCXN0YXR1cyA9IGNhdXNlICYgdW5tYXNrOwogCiAJLyogImVy cm9yIiBpbnRlcnJ1cHQgaGFuZGxlciBkb2VzIG5vdCBwcm9jZXNzIElOVFggaW50ZXJydXB0cyAq LwotCXN0YXR1cyAmPSB+KFBDSUVfSU5UX0lOVFgoMCkgfCBQQ0lFX0lOVF9JTlRYKDEpIHwKLQkJ ICAgIFBDSUVfSU5UX0lOVFgoMikgfCBQQ0lFX0lOVF9JTlRYKDMpKTsKKwlzdGF0dXMgJj0gfihN VlBDSUVfSU5UX0lOVFgoMCkgfCBNVlBDSUVfSU5UX0lOVFgoMSkgfAorCQkgICAgTVZQQ0lFX0lO VF9JTlRYKDIpIHwgTVZQQ0lFX0lOVF9JTlRYKDMpKTsKIAogCS8qIFByb2Nlc3MgUE1FIGludGVy cnVwdCAqLwotCWlmICgoc3RhdHVzICYgUENJRV9JTlRfUE1fUE1FKSAmJiAhcG9ydC0+cG1lX3Bl bmRpbmcpIHsKKwlpZiAoKHN0YXR1cyAmIE1WUENJRV9JTlRfUE1fUE1FKSAmJiAhcG9ydC0+cG1l X3BlbmRpbmcpIHsKIAkJLyoKIAkJICogRG8gbm90IGNsZWFyIFBNRSBpbnRlcnJ1cHQgYml0IGlu IENhdXNlIFJlZ2lzdGVyIGFzIGl0CiAJCSAqIGludmFsaWRhdGVzIGFsc28gY29udGVudCBvZiBS b290IFN0YXR1cyBSZWdpc3Rlci4gSW5zdGVhZApAQCAtMTM2NCwyNCArMTM2MSwyNCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgbXZlYnVfcGNpZV9lcnJvcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lk ICphcmcpCiAJfQogCiAJLyogUHJvY2VzcyBFUlIgaW50ZXJydXB0ICovCi0JaWYgKHN0YXR1cyAm IFBDSUVfSU5UX0VSUl9NQVNLKSB7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCB+UENJRV9JTlRfRVJS X01BU0ssIFBDSUVfSU5UX0NBVVNFX09GRik7CisJaWYgKHN0YXR1cyAmIE1WUENJRV9JTlRfRVJS X01BU0spIHsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIH5NVlBDSUVfSU5UX0VSUl9NQVNLLCBNVlBD SUVfSU5UX0NBVVNFX09GRik7CiAJCWlmIChnZW5lcmljX2hhbmRsZV9kb21haW5faXJxKHBvcnQt PnJwX2lycV9kb21haW4sIDApID09IC1FSU5WQUwpCiAJCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGRl diwgInVuaGFuZGxlZCBFUlIgSVJRXG4iKTsKIAl9CiAKIAkvKiBQcm9jZXNzIGxvY2FsIEVSUiBp bnRlcnJ1cHQgKi8KLQlpZiAoc3RhdHVzICYgUENJRV9JTlRfREVUX01BU0spIHsKLQkJbXZlYnVf d3JpdGVsKHBvcnQsIH5QQ0lFX0lOVF9ERVRfTUFTSywgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKKwlp ZiAoc3RhdHVzICYgTVZQQ0lFX0lOVF9ERVRfTUFTSykgeworCQltdmVidV93cml0ZWwocG9ydCwg fk1WUENJRV9JTlRfREVUX01BU0ssIE1WUENJRV9JTlRfQ0FVU0VfT0ZGKTsKIAkJaWYgKGdlbmVy aWNfaGFuZGxlX2RvbWFpbl9pcnEocG9ydC0+cnBfaXJxX2RvbWFpbiwgMCkgPT0gLUVJTlZBTCkK IAkJCWRldl9lcnJfcmF0ZWxpbWl0ZWQoZGV2LCAidW5oYW5kbGVkIEVSUiBJUlFcbiIpOwogCX0K IAogCS8qIFByb2Nlc3MgTm8gTGluayBhbmQgTGluayBGYWlsdXJlIGludGVycnVwdHMgYXMgSFAg SVJRICovCi0JaWYgKHN0YXR1cyAmIChQQ0lFX0lOVF9UWFJFUV9OT0xJTksgfCBQQ0lFX0lOVF9M SU5LX0ZBSUwpKSB7CisJaWYgKHN0YXR1cyAmIChNVlBDSUVfSU5UX1RYUkVRX05PTElOSyB8IE1W UENJRV9JTlRfTElOS19GQUlMKSkgewogCQltdmVidV93cml0ZWwocG9ydCwKLQkJCSAgICAgfihQ Q0lFX0lOVF9UWFJFUV9OT0xJTksgfCBQQ0lFX0lOVF9MSU5LX0ZBSUwpLAotCQkJICAgICBQQ0lF X0lOVF9DQVVTRV9PRkYpOworCQkJICAgICB+KE1WUENJRV9JTlRfVFhSRVFfTk9MSU5LIHwgTVZQ Q0lFX0lOVF9MSU5LX0ZBSUwpLAorCQkJICAgICBNVlBDSUVfSU5UX0NBVVNFX09GRik7CiAJCWlm IChwb3J0LT5saW5rX3dhc191cCkgewogCQkJcG9ydC0+bGlua193YXNfdXAgPSBmYWxzZTsKIAkJ CXNsb3RzdGEgPSBsZTE2X3RvX2NwdShwb3J0LT5icmlkZ2UucGNpZV9jb25mLnNsb3RzdGEpOwpA QCAtMTQwNiwxNyArMTQwMywxNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbXZlYnVfcGNpZV9pbnR4 X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAl1MzIgY2F1c2UsIHVubWFzaywgc3Rh dHVzOwogCWludCBpOwogCi0JY2F1c2UgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0lOVF9DQVVT RV9PRkYpOwotCXVubWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX1VOTUFTS19PRkYp OworCWNhdXNlID0gbXZlYnVfcmVhZGwocG9ydCwgTVZQQ0lFX0lOVF9DQVVTRV9PRkYpOworCXVu bWFzayA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9JTlRfVU5NQVNLX09GRik7CiAJc3RhdHVz ID0gY2F1c2UgJiB1bm1hc2s7CiAKIAkvKiAiaW50eCIgaW50ZXJydXB0IGhhbmRsZXIgcHJvY2Vz cyBvbmx5IElOVFggaW50ZXJydXB0cyAqLwotCXN0YXR1cyAmPSBQQ0lFX0lOVF9JTlRYKDApIHwg UENJRV9JTlRfSU5UWCgxKSB8Ci0JCSAgUENJRV9JTlRfSU5UWCgyKSB8IFBDSUVfSU5UX0lOVFgo Myk7CisJc3RhdHVzICY9IE1WUENJRV9JTlRfSU5UWCgwKSB8IE1WUENJRV9JTlRfSU5UWCgxKSB8 CisJCSAgTVZQQ0lFX0lOVF9JTlRYKDIpIHwgTVZQQ0lFX0lOVF9JTlRYKDMpOwogCiAJLyogUHJv Y2VzcyBsZWdhY3kgSU5UeCBpbnRlcnJ1cHRzICovCiAJZm9yIChpID0gMDsgaSA8IFBDSV9OVU1f SU5UWDsgaSsrKSB7Ci0JCWlmICghKHN0YXR1cyAmIFBDSUVfSU5UX0lOVFgoaSkpKQorCQlpZiAo IShzdGF0dXMgJiBNVlBDSUVfSU5UX0lOVFgoaSkpKQogCQkJY29udGludWU7CiAKIAkJaWYgKGdl bmVyaWNfaGFuZGxlX2RvbWFpbl9pcnEocG9ydC0+aW50eF9pcnFfZG9tYWluLCBpKSA9PSAtRUlO VkFMKQpAQCAtMTU5OSw3ICsxNTk2LDcgQEAgc3RhdGljIGludCBtdmVidV9wY2llX3N1c3BlbmQo c3RydWN0IGRldmljZSAqZGV2KQogCQlzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gcGNp ZS0+cG9ydHMgKyBpOwogCQlpZiAoIXBvcnQtPmJhc2UpCiAJCQljb250aW51ZTsKLQkJcG9ydC0+ c2F2ZWRfcGNpZV9zdGF0ID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9TVEFUX09GRik7CisJCXBv cnQtPnNhdmVkX3BjaWVfc3RhdCA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9TVEFUX09GRik7 CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0xNjE1LDcgKzE2MTIsNyBAQCBzdGF0aWMgaW50IG12ZWJ1 X3BjaWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJc3RydWN0IG12ZWJ1X3BjaWVfcG9y dCAqcG9ydCA9IHBjaWUtPnBvcnRzICsgaTsKIAkJaWYgKCFwb3J0LT5iYXNlKQogCQkJY29udGlu dWU7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCBwb3J0LT5zYXZlZF9wY2llX3N0YXQsIFBDSUVfU1RB VF9PRkYpOworCQltdmVidV93cml0ZWwocG9ydCwgcG9ydC0+c2F2ZWRfcGNpZV9zdGF0LCBNVlBD SUVfU1RBVF9PRkYpOwogCQltdmVidV9wY2llX3NldHVwX2h3KHBvcnQpOwogCX0KIApAQCAtMjE2 NSwxNSArMjE2MiwxNSBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQljb250aW51ZTsKIAogCQkvKiBEaXNhYmxlIFJvb3QgQnJp ZGdlIEkvTyBzcGFjZSwgbWVtb3J5IHNwYWNlIGFuZCBidXMgbWFzdGVyaW5nLiAqLwotCQljbWQg PSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX0NNRF9PRkYpOworCQljbWQgPSBtdmVidV9yZWFkbChw b3J0LCBNVlBDSUVfUk9PVF9QT1JUX1BDSV9DRkdfT0ZGICsgUENJX0NPTU1BTkQpOwogCQljbWQg Jj0gfihQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSB8IFBDSV9DT01NQU5EX01B U1RFUik7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCBjbWQsIFBDSUVfQ01EX09GRik7CisJCW12ZWJ1 X3dyaXRlbChwb3J0LCBjbWQsIE1WUENJRV9ST09UX1BPUlRfUENJX0NGR19PRkYgKyBQQ0lfQ09N TUFORCk7CiAKIAkJLyogTWFzayBhbGwgaW50ZXJydXB0IHNvdXJjZXMuICovCi0JCW12ZWJ1X3dy aXRlbChwb3J0LCB+UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX1VOTUFTS19PRkYpOworCQlt dmVidV93cml0ZWwocG9ydCwgfk1WUENJRV9JTlRfQUxMX01BU0ssIE1WUENJRV9JTlRfVU5NQVNL X09GRik7CiAKIAkJLyogQ2xlYXIgYWxsIGludGVycnVwdCBjYXVzZXMuICovCi0JCW12ZWJ1X3dy aXRlbChwb3J0LCB+UENJRV9JTlRfQUxMX01BU0ssIFBDSUVfSU5UX0NBVVNFX09GRik7CisJCW12 ZWJ1X3dyaXRlbChwb3J0LCB+TVZQQ0lFX0lOVF9BTExfTUFTSywgTVZQQ0lFX0lOVF9DQVVTRV9P RkYpOwogCiAJCS8qIFJlbW92ZSBJUlEgZG9tYWlucy4gKi8KIAkJaWYgKHBvcnQtPmludHhfaXJx X2RvbWFpbikgewpAQCAtMjE5OSw5ICsyMTk2LDkgQEAgc3RhdGljIGludCBtdmVidV9wY2llX3Jl bW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlwY2lfYnJpZGdlX2VtdWxfY2xl YW51cCgmcG9ydC0+YnJpZGdlKTsKIAogCQkvKiBEaXNhYmxlIHNlbmRpbmcgU2V0X1Nsb3RfUG93 ZXJfTGltaXQgUENJZSBNZXNzYWdlLiAqLwotCQlzc3BsID0gbXZlYnVfcmVhZGwocG9ydCwgUENJ RV9TU1BMX09GRik7Ci0JCXNzcGwgJj0gfihQQ0lFX1NTUExfVkFMVUVfTUFTSyB8IFBDSUVfU1NQ TF9TQ0FMRV9NQVNLIHwgUENJRV9TU1BMX0VOQUJMRSk7Ci0JCW12ZWJ1X3dyaXRlbChwb3J0LCBz c3BsLCBQQ0lFX1NTUExfT0ZGKTsKKwkJc3NwbCA9IG12ZWJ1X3JlYWRsKHBvcnQsIE1WUENJRV9T U1BMX09GRik7CisJCXNzcGwgJj0gfihNVlBDSUVfU1NQTF9WQUxVRV9NQVNLIHwgTVZQQ0lFX1NT UExfU0NBTEVfTUFTSyB8IE1WUENJRV9TU1BMX0VOQUJMRSk7CisJCW12ZWJ1X3dyaXRlbChwb3J0 LCBzc3BsLCBNVlBDSUVfU1NQTF9PRkYpOwogCiAJCS8qIERpc2FibGUgYW5kIGNsZWFyIEJBUnMg YW5kIHdpbmRvd3MuICovCiAJCW12ZWJ1X3BjaWVfZGlzYWJsZV93aW5zKHBvcnQpOwotLSAKMi4y MC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=