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 X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C611FC3A59E for ; Wed, 21 Aug 2019 14:45:21 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 818B120679 for ; Wed, 21 Aug 2019 14:45:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pnfiT7Qp"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="IrzxrtmR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 818B120679 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=vdorst.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LmTeBZcYqSTFfng72txVJFevErfOhYFl0BsJsBkXZb8=; b=pnfiT7QpR4ZSK+ K46ouhXR7nUS+fHP8VuFKJ800pjmzuXbnbmZRzvKMFfD40R/lEr9CiCS+ROJ1L9i+wX998oG+dYIo +9EL+uvvFZWJAr1bjEMnhh4GHmYTkOJ0fzgSAPP6oUMJRMtGQrcl6PTQ2LXFfwAVj+dZfIYJHZzoK j+xP+GGmYrneFKgOHaa6wMFkzSqR2GBA0PpULwNEZr56nPQqi4pGAH9GDT6bRCUFeZG2hiorGv/Bk EM0JayJL0awBxG1/wiV21Kz9+zbEVwA/6zFapz9/7OK/pUw9+hPJraMGNN5L8ehSm0ke1ahyldxmF KidnZwP0Hx0Zo7lmotMw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i0RrU-00070I-N0; Wed, 21 Aug 2019 14:45:20 +0000 Received: from mx.0dd.nl ([5.2.79.48]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i0Rqn-0004zh-Oz; Wed, 21 Aug 2019 14:44:40 +0000 Received: from mail.vdorst.com (mail.vdorst.com [IPv6:fd01::250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.0dd.nl (Postfix) with ESMTPS id 4429C5FB50; Wed, 21 Aug 2019 16:44:36 +0200 (CEST) Authentication-Results: mx.0dd.nl; dkim=pass (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="IrzxrtmR"; dkim-atps=neutral Received: from pc-rene.vdorst.com (pc-rene.vdorst.com [192.168.2.125]) by mail.vdorst.com (Postfix) with ESMTPA id 0BC0D1D828DC; Wed, 21 Aug 2019 16:44:36 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.vdorst.com 0BC0D1D828DC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vdorst.com; s=default; t=1566398676; bh=C4WrFrMeWH3E9lF0sucJzBgp+1mmt4kH80GdXn+hvuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IrzxrtmRupzs5kB+kw7E+7dI7NcXUalBsgd9ab/FtN8WzjOhnDR183wGn4hC3083L orU1vnwmLbAUDYbltIJVIJoWNW0neD8PFFMojMXlrsS18eAVVsc9EAshpQ6TFr+G8H fyz8TV5AVeY/eeer1P3E4Am5CyF2ydNilrJQYbtlJV2zIXkL0ZbPy6jXd8YeB4PK4X JPhCK1iAQ9ONtZPq9Pqp2cvUR8VSA5YQTeaRW9VwbKjkS4EvgtkQ6qZG6VgIxOcgB7 eN0BJlwuUjugKKisQX98XwS5GTtmCpsMagpGmUZycMAvZ+HmcZ0YPh4O8ffV+HNFKJ DWZQgGO0p/uMw== From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= To: John Crispin , Sean Wang , Nelson Chang , "David S . Miller" , Matthias Brugger Subject: [PATCH net-next v2 2/3] net: ethernet: mediatek: Re-add support SGMII Date: Wed, 21 Aug 2019 16:43:35 +0200 Message-Id: <20190821144336.9259-3-opensource@vdorst.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190821144336.9259-1-opensource@vdorst.com> References: <20190821144336.9259-1-opensource@vdorst.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190821_074438_119936_F90257D2 X-CRM114-Status: GOOD ( 19.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Frank Wunderlich , netdev@vger.kernel.org, linux-mips@vger.kernel.org, =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= , linux-mediatek@lists.infradead.org, Stefan Roese , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org KiBSZS1hZGQgU0dNSUkgc3VwcG9ydCBidXQgbm93IHdpdGggUEhZTElOSyBBUEkgc3VwcG9ydAog IFNvIHRoZSBTR01JSSBjaGFuZ2VzIGFyZSBtb3JlIGNsZWFyCiogTW92ZSBTR01JSSBibG9jayBz ZXR1cCBmcm9tIG10a19nbWFjX3NnbWlpX3BhdGhfc2V0dXAoKSB0bwogIG10a19tYWNfY29uZmln KCkKKiBNZXJnZSBtdGtfc2V0dXBfaHdfcGF0aCgpIGludG8gbXRrX21hY19jb25maWcoKQoqIFJl bW92ZSBtZWRpYXRlayxwaHlzcGVlZCBwcm9wZXJ0eSwgZml4ZWQtbGluayBzdXBwb3J0cyBub3cg YW55IHNwZWVkIHNvCiAgc3BlZWQgPSA8MjUwMD47IGlzIG5vdyB2YWxpZCB3aXRoIFBIWUxJTksu CiogRGVtYWdpYyBTR01JSSByZWdpc3RlciB2YWx1ZXMKKiBVc2UgcGh5bGluayBzdGF0ZSB0byBz ZXR1cCBmaXhlZC1saW5rIG1vZGUKClNpZ25lZC1vZmYtYnk6IFJlbsOpIHZhbiBEb3JzdCA8b3Bl bnNvdXJjZUB2ZG9yc3QuY29tPgotLQp2MS0+djI6CiogU0dNSUkgcG9ydCBvbmx5IHN1cHBvcnQg U0dNSUkgYXQgMUdiaXQsIDEwMDBCQVNFLVggYW5kIDI1MDBCQVNFLVguCiAgQWxzbyBTR01JSSBt b2RlIG9ubHkgZG9lcyBhdXRvLW5lZ290aWF0aW9uLgoqIENoYW5nZSB2YWxpZGF0ZSgpIHRvIHN1 cHBvcnQgbXQ3Nng4IGNoYW5nZXMuCi0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsv bXRrX2V0aF9wYXRoLmMgfCAgNzUgKy0tLS0tLS0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVk aWF0ZWsvbXRrX2V0aF9zb2MuYyAgfCAxMzkgKysrKysrKysrKysrKysrLS0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuaCAgfCAgMzcgKysrKy0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lZGlhdGVrL210a19zZ21paS5jICAgIHwgIDY1ICsrKysrKy0tLQogNCBm aWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgMTIxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfcGF0aC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9wYXRoLmMKaW5kZXggMjg5NjBlNGM0 ZTQzLi5lZjExY2YzZDFjY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlh dGVrL210a19ldGhfcGF0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210 a19ldGhfcGF0aC5jCkBAIC0yMzksMTAgKzIzOSw5IEBAIHN0YXRpYyBpbnQgbXRrX2V0aF9tdXhf c2V0dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IHBhdGgpCiAJcmV0dXJuIGVycjsKIH0KIAot c3RhdGljIGludCBtdGtfZ21hY19zZ21paV9wYXRoX3NldHVwKHN0cnVjdCBtdGtfZXRoICpldGgs IGludCBtYWNfaWQpCitpbnQgbXRrX2dtYWNfc2dtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0 aCAqZXRoLCBpbnQgbWFjX2lkKQogewotCXVuc2lnbmVkIGludCB2YWwgPSAwOwotCWludCBzaWQs IGVyciwgcGF0aDsKKwlpbnQgZXJyLCBwYXRoOwogCiAJcGF0aCA9IChtYWNfaWQgPT0gMCkgPyAg TVRLX0VUSF9QQVRIX0dNQUMxX1NHTUlJIDoKIAkJCQlNVEtfRVRIX1BBVEhfR01BQzJfU0dNSUk7 CkBAIC0yNTIsMzMgKzI1MSwxMCBAQCBzdGF0aWMgaW50IG10a19nbWFjX3NnbWlpX3BhdGhfc2V0 dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19pZCkKIAlpZiAoZXJyKQogCQlyZXR1cm4g ZXJyOwogCi0JLyogVGhlIHBhdGggR01BQyB0byBTR01JSSB3aWxsIGJlIGVuYWJsZWQgb25jZSB0 aGUgU0dNSUlTWVMgaXMgYmVpbmcKLQkgKiBzZXR1cCBkb25lLgotCSAqLwotCXJlZ21hcF9yZWFk KGV0aC0+ZXRoc3lzLCBFVEhTWVNfU1lTQ0ZHMCwgJnZhbCk7Ci0KLQlyZWdtYXBfdXBkYXRlX2Jp dHMoZXRoLT5ldGhzeXMsIEVUSFNZU19TWVNDRkcwLAotCQkJICAgU1lTQ0ZHMF9TR01JSV9NQVNL LCB+KHUzMilTWVNDRkcwX1NHTUlJX01BU0spOwotCi0JLyogRGVjaWRlIGhvdyBHTUFDIGFuZCBT R01JSVNZUyBiZSBtYXBwZWQgKi8KLQlzaWQgPSAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBz LCBNVEtfU0hBUkVEX1NHTUlJKSkgPyAwIDogbWFjX2lkOwotCi0JLyogU2V0dXAgU0dNSUlTWVMg d2l0aCB0aGUgZGV0ZXJtaW5lZCBwcm9wZXJ0eSAqLwotCWlmIChNVEtfSEFTX0ZMQUdTKGV0aC0+ c2dtaWktPmZsYWdzW3NpZF0sIE1US19TR01JSV9QSFlTUEVFRF9BTikpCi0JCWVyciA9IG10a19z Z21paV9zZXR1cF9tb2RlX2FuKGV0aC0+c2dtaWksIHNpZCk7Ci0JZWxzZQotCQllcnIgPSBtdGtf c2dtaWlfc2V0dXBfbW9kZV9mb3JjZShldGgtPnNnbWlpLCBzaWQpOwotCi0JaWYgKGVycikKLQkJ cmV0dXJuIGVycjsKLQotCXJlZ21hcF91cGRhdGVfYml0cyhldGgtPmV0aHN5cywgRVRIU1lTX1NZ U0NGRzAsCi0JCQkgICBTWVNDRkcwX1NHTUlJX01BU0ssIHZhbCk7Ci0KIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKHN0cnVjdCBtdGtfZXRoICpl dGgsIGludCBtYWNfaWQpCitpbnQgbXRrX2dtYWNfZ2VwaHlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRr X2V0aCAqZXRoLCBpbnQgbWFjX2lkKQogewogCWludCBlcnIsIHBhdGggPSAwOwogCkBAIC0yOTYs NyArMjcyLDcgQEAgc3RhdGljIGludCBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKHN0cnVjdCBt dGtfZXRoICpldGgsIGludCBtYWNfaWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXRr X2dtYWNfcmdtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFjX2lkKQor aW50IG10a19nbWFjX3JnbWlpX3BhdGhfc2V0dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1h Y19pZCkKIHsKIAlpbnQgZXJyLCBwYXRoOwogCkBAIC0zMTEsNDYgKzI4NywzIEBAIHN0YXRpYyBp bnQgbXRrX2dtYWNfcmdtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFj X2lkKQogCXJldHVybiAwOwogfQogCi1pbnQgbXRrX3NldHVwX2h3X3BhdGgoc3RydWN0IG10a19l dGggKmV0aCwgaW50IG1hY19pZCwgaW50IHBoeW1vZGUpCi17Ci0JaW50IGVycjsKLQotCS8qIE5v IG11eCdpbmcgZm9yIE1UNzYyOC84OCAqLwotCWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNh cHMsIE1US19TT0NfTVQ3NjI4KSkKLQkJcmV0dXJuIDA7Ci0KLQlzd2l0Y2ggKHBoeW1vZGUpIHsK LQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9UUkdNSUk6Ci0JY2FzZSBQSFlfSU5URVJGQUNFX01P REVfUkdNSUlfVFhJRDoKLQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9SWElEOgotCWNh c2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX0lEOgotCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RF X1JHTUlJOgotCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSToKLQljYXNlIFBIWV9JTlRFUkZB Q0VfTU9ERV9SRVZNSUk6Ci0JY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUk1JSToKLQkJaWYgKE1U S19IQVNfQ0FQUyhldGgtPnNvYy0+Y2FwcywgTVRLX1JHTUlJKSkgewotCQkJZXJyID0gbXRrX2dt YWNfcmdtaWlfcGF0aF9zZXR1cChldGgsIG1hY19pZCk7Ci0JCQlpZiAoZXJyKQotCQkJCXJldHVy biBlcnI7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUk6Ci0J CWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNhcHMsIE1US19TR01JSSkpIHsKLQkJCWVyciA9 IG10a19nbWFjX3NnbWlpX3BhdGhfc2V0dXAoZXRoLCBtYWNfaWQpOwotCQkJaWYgKGVycikKLQkJ CQlyZXR1cm4gZXJyOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX0dN SUk6Ci0JCWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNhcHMsIE1US19HRVBIWSkpIHsKLQkJ CWVyciA9IG10a19nbWFjX2dlcGh5X3BhdGhfc2V0dXAoZXRoLCBtYWNfaWQpOwotCQkJaWYgKGVy cikKLQkJCQlyZXR1cm4gZXJyOwotCQl9Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWJyZWFrOwot CX0KLQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVk aWF0ZWsvbXRrX2V0aF9zb2MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19l dGhfc29jLmMKaW5kZXggZTQ2NzE3MmYyYzI2Li5mMDc2YzZiMWIzNzIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYwpAQCAtMTkzLDggKzE5Myw4IEBAIHN0 YXRpYyB2b2lkIG10a19tYWNfY29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1 bnNpZ25lZCBpbnQgbW9kZSwKIAlzdHJ1Y3QgbXRrX21hYyAqbWFjID0gY29udGFpbmVyX29mKGNv bmZpZywgc3RydWN0IG10a19tYWMsCiAJCQkJCSAgIHBoeWxpbmtfY29uZmlnKTsKIAlzdHJ1Y3Qg bXRrX2V0aCAqZXRoID0gbWFjLT5odzsKLQl1MzIgbWNyX2N1ciwgbWNyX25ldzsKLQlpbnQgdmFs LCBnZV9tb2RlID0gMDsKKwl1MzIgbWNyX2N1ciwgbWNyX25ldywgc2lkOworCWludCB2YWwsIGdl X21vZGUsIGVycjsKIAogCS8qIE1UNzZ4OCBoYXMgbm8gaGFyZHdhcmUgc2V0dGluZ3MgYmV0d2Vl biBmb3IgdGhlIE1BQyAqLwogCWlmICghTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtf U09DX01UNzYyOCkgJiYKQEAgLTIwOCwyOSArMjA4LDQyIEBAIHN0YXRpYyB2b2lkIG10a19tYWNf Y29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSwK IAkJCQkJICBNVEtfR01BQzFfVFJHTUlJKSkKIAkJCQlnb3RvIGVycl9waHk7CiAJCQkvKiBmYWxs IHRocm91Z2ggKi8KLQkJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfR01JSToKIAkJY2FzZSBQSFlf SU5URVJGQUNFX01PREVfUkdNSUlfVFhJRDoKIAkJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdN SUlfUlhJRDoKIAkJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfSUQ6CiAJCWNhc2UgUEhZ X0lOVEVSRkFDRV9NT0RFX1JHTUlJOgotCQkJYnJlYWs7CiAJCWNhc2UgUEhZX0lOVEVSRkFDRV9N T0RFX01JSToKLQkJCWdlX21vZGUgPSAxOwotCQkJYnJlYWs7CiAJCWNhc2UgUEhZX0lOVEVSRkFD RV9NT0RFX1JFVk1JSToKLQkJCWdlX21vZGUgPSAyOwotCQkJYnJlYWs7CiAJCWNhc2UgUEhZX0lO VEVSRkFDRV9NT0RFX1JNSUk6Ci0JCQlpZiAobWFjLT5pZCkKLQkJCQlnb3RvIGVycl9waHk7Ci0J CQlnZV9tb2RlID0gMzsKKwkJCWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNhcHMsIE1US19S R01JSSkpIHsKKwkJCQllcnIgPSBtdGtfZ21hY19yZ21paV9wYXRoX3NldHVwKGV0aCwgbWFjLT5p ZCk7CisJCQkJaWYgKGVycikKKwkJCQkJZ290byBpbml0X2VycjsKKwkJCX0KKwkJCWJyZWFrOwor CQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV8xMDAwQkFTRVg6CisJCWNhc2UgUEhZX0lOVEVSRkFD RV9NT0RFXzI1MDBCQVNFWDoKKwkJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUk6CisJCQlp ZiAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtfU0dNSUkpKSB7CisJCQkJZXJyID0g bXRrX2dtYWNfc2dtaWlfcGF0aF9zZXR1cChldGgsIG1hYy0+aWQpOworCQkJCWlmIChlcnIpCisJ CQkJCWdvdG8gaW5pdF9lcnI7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBQSFlfSU5URVJGQUNF X01PREVfR01JSToKKwkJCWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNhcHMsIE1US19HRVBI WSkpIHsKKwkJCQllcnIgPSBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKGV0aCwgbWFjLT5pZCk7 CisJCQkJaWYgKGVycikKKwkJCQkJZ290byBpbml0X2VycjsKKwkJCX0KIAkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZ290byBlcnJfcGh5OwogCQl9CiAKIAkJLyogU2V0dXAgY2xvY2sgZm9yIDFz dCBnbWFjICovCi0JCWlmICghbWFjLT5pZCAmJgorCQlpZiAoIW1hYy0+aWQgJiYgc3RhdGUtPmlu dGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUkgJiYKKwkJICAgICFwaHlfaW50ZXJm YWNlX21vZGVfaXNfODAyM3ooc3RhdGUtPmludGVyZmFjZSkgJiYKIAkJICAgIE1US19IQVNfQ0FQ UyhtYWMtPmh3LT5zb2MtPmNhcHMsIE1US19HTUFDMV9UUkdNSUkpKSB7CiAJCQlpZiAoTVRLX0hB U19DQVBTKG1hYy0+aHctPnNvYy0+Y2FwcywKIAkJCQkJIE1US19UUkdNSUlfTVQ3NjIxX0NMSykp IHsKQEAgLTI0NSw2ICsyNTgsMjMgQEAgc3RhdGljIHZvaWQgbXRrX21hY19jb25maWcoc3RydWN0 IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogCQkJfQogCQl9CiAK KwkJZ2VfbW9kZSA9IDA7CisJCXN3aXRjaCAoc3RhdGUtPmludGVyZmFjZSkgeworCQljYXNlIFBI WV9JTlRFUkZBQ0VfTU9ERV9NSUk6CisJCQlnZV9tb2RlID0gMTsKKwkJCWJyZWFrOworCQljYXNl IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUk6CisJCQlnZV9tb2RlID0gMjsKKwkJCWJyZWFrOwor CQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9STUlJOgorCQkJaWYgKG1hYy0+aWQpCisJCQkJZ290 byBlcnJfcGh5OworCQkJZ2VfbW9kZSA9IDM7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJy ZWFrOworCQl9CisKIAkJLyogcHV0IHRoZSBnbWFjIGludG8gdGhlIHJpZ2h0IG1vZGUgKi8KIAkJ cmVnbWFwX3JlYWQoZXRoLT5ldGhzeXMsIEVUSFNZU19TWVNDRkcwLCAmdmFsKTsKIAkJdmFsICY9 IH5TWVNDRkcwX0dFX01PREUoU1lTQ0ZHMF9HRV9NQVNLLCBtYWMtPmlkKTsKQEAgLTI1NCw2ICsy ODQsNDAgQEAgc3RhdGljIHZvaWQgbXRrX21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmln ICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogCQltYWMtPmludGVyZmFjZSA9IHN0YXRlLT5p bnRlcmZhY2U7CiAJfQogCisJLyogU0dNSUkgKi8KKwlpZiAoc3RhdGUtPmludGVyZmFjZSA9PSBQ SFlfSU5URVJGQUNFX01PREVfU0dNSUkgfHwKKwkgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgw MjN6KHN0YXRlLT5pbnRlcmZhY2UpKSB7CisJCS8qIFRoZSBwYXRoIEdNQUMgdG8gU0dNSUkgd2ls bCBiZSBlbmFibGVkIG9uY2UgdGhlIFNHTUlJU1lTIGlzCisJCSAqIGJlaW5nIHNldHVwIGRvbmUu CisJCSAqLworCQlyZWdtYXBfcmVhZChldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NGRzAsICZ2YWwp OworCisJCXJlZ21hcF91cGRhdGVfYml0cyhldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NGRzAsCisJ CQkJICAgU1lTQ0ZHMF9TR01JSV9NQVNLLAorCQkJCSAgIH4odTMyKVNZU0NGRzBfU0dNSUlfTUFT Syk7CisKKwkJLyogRGVjaWRlIGhvdyBHTUFDIGFuZCBTR01JSVNZUyBiZSBtYXBwZWQgKi8KKwkJ c2lkID0gKE1US19IQVNfQ0FQUyhldGgtPnNvYy0+Y2FwcywgTVRLX1NIQVJFRF9TR01JSSkpID8K KwkJICAgICAgIDAgOiBtYWMtPmlkOworCisJCS8qIFNldHVwIFNHTUlJU1lTIHdpdGggdGhlIGRl dGVybWluZWQgcHJvcGVydHkgKi8KKwkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVS RkFDRV9NT0RFX1NHTUlJKQorCQkJZXJyID0gbXRrX3NnbWlpX3NldHVwX21vZGVfZm9yY2UoZXRo LT5zZ21paSwgc2lkLAorCQkJCQkJCSBzdGF0ZSk7CisJCWVsc2UgaWYgKHBoeWxpbmtfYXV0b25l Z19pbmJhbmQobW9kZSkpCisJCQllcnIgPSBtdGtfc2dtaWlfc2V0dXBfbW9kZV9hbihldGgtPnNn bWlpLCBzaWQpOworCisJCWlmIChlcnIpCisJCQlnb3RvIGluaXRfZXJyOworCisJCXJlZ21hcF91 cGRhdGVfYml0cyhldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NGRzAsCisJCQkJICAgU1lTQ0ZHMF9T R01JSV9NQVNLLCB2YWwpOworCX0gZWxzZSBpZiAocGh5bGlua19hdXRvbmVnX2luYmFuZChtb2Rl KSkgeworCQlkZXZfZXJyKGV0aC0+ZGV2LAorCQkJIkluLWJhbmQgbW9kZSBub3Qgc3VwcG9ydGVk IGluIG5vbiBTR01JSSBtb2RlIVxuIik7CisJCXJldHVybjsKKwl9CisKIAkvKiBTZXR1cCBnbWFj ICovCiAJbWNyX2N1ciA9IG10a19yMzIobWFjLT5odywgTVRLX01BQ19NQ1IobWFjLT5pZCkpOwog CW1jcl9uZXcgPSBtY3JfY3VyOwpAQCAtMjY0LDYgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIG10a19t YWNfY29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9k ZSwKIAkJICAgTUFDX01DUl9CQUNLT0ZGX0VOIHwgTUFDX01DUl9CQUNLUFJfRU4gfCBNQUNfTUNS X0ZPUkNFX0xJTks7CiAKIAlzd2l0Y2ggKHN0YXRlLT5zcGVlZCkgeworCWNhc2UgU1BFRURfMjUw MDoKIAljYXNlIFNQRUVEXzEwMDA6CiAJCW1jcl9uZXcgfD0gTUFDX01DUl9TUEVFRF8xMDAwOwog CQlicmVhazsKQEAgLTI4OCw2ICszNTMsMTEgQEAgc3RhdGljIHZvaWQgbXRrX21hY19jb25maWco c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogZXJyX3Bo eToKIAlkZXZfZXJyKGV0aC0+ZGV2LCAiJXM6IEdNQUMlZCBtb2RlICVzIG5vdCBzdXBwb3J0ZWQh XG4iLCBfX2Z1bmNfXywKIAkJbWFjLT5pZCwgcGh5X21vZGVzKHN0YXRlLT5pbnRlcmZhY2UpKTsK KwlyZXR1cm47CisKK2luaXRfZXJyOgorCWRldl9lcnIoZXRoLT5kZXYsICIlczogR01BQyVkIG1v ZGUgJXMgZXJyOiAlZCFcbiIsIF9fZnVuY19fLAorCQltYWMtPmlkLCBwaHlfbW9kZXMoc3RhdGUt PmludGVyZmFjZSksIGVycik7CiB9CiAKIHN0YXRpYyBpbnQgbXRrX21hY19saW5rX3N0YXRlKHN0 cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLApAQCAtMzI2LDcgKzM5NiwxMCBAQCBzdGF0aWMg aW50IG10a19tYWNfbGlua19zdGF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKIAog c3RhdGljIHZvaWQgbXRrX21hY19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29u ZmlnKQogewotCS8qIERvIG5vdGhpbmcgKi8KKwlzdHJ1Y3QgbXRrX21hYyAqbWFjID0gY29udGFp bmVyX29mKGNvbmZpZywgc3RydWN0IG10a19tYWMsCisJCQkJCSAgIHBoeWxpbmtfY29uZmlnKTsK KworCW10a19zZ21paV9yZXN0YXJ0X2FuKG1hYy0+aHcsIG1hYy0+aWQpOwogfQogCiBzdGF0aWMg dm9pZCBtdGtfbWFjX2xpbmtfZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywgdW5z aWduZWQgaW50IG1vZGUsCkBAIC0zNjQsNyArNDM3LDEwIEBAIHN0YXRpYyB2b2lkIG10a192YWxp ZGF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKIAkgICAgIShNVEtfSEFTX0NBUFMo bWFjLT5ody0+c29jLT5jYXBzLCBNVEtfUkdNSUkpICYmCiAJICAgICAgcGh5X2ludGVyZmFjZV9t b2RlX2lzX3JnbWlpKHN0YXRlLT5pbnRlcmZhY2UpKSAmJgogCSAgICAhKE1US19IQVNfQ0FQUyht YWMtPmh3LT5zb2MtPmNhcHMsIE1US19UUkdNSUkpICYmCi0JICAgICAgIW1hYy0+aWQgJiYgc3Rh dGUtPmludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSkgeworCSAgICAgICFt YWMtPmlkICYmIHN0YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1RSR01JSSkg JiYKKwkgICAgIShNVEtfSEFTX0NBUFMobWFjLT5ody0+c29jLT5jYXBzLCBNVEtfU0dNSUkpICYm CisJICAgICAgKHN0YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJIHx8 CisJICAgICAgIHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihzdGF0ZS0+aW50ZXJmYWNlKSkp KSB7CiAJCWxpbmttb2RlX3plcm8oc3VwcG9ydGVkKTsKIAkJcmV0dXJuOwogCX0KQEAgLTM3Miwx OCArNDQ4LDI4IEBAIHN0YXRpYyB2b2lkIG10a192YWxpZGF0ZShzdHJ1Y3QgcGh5bGlua19jb25m aWcgKmNvbmZpZywKIAlwaHlsaW5rX3NldF9wb3J0X21vZGVzKG1hc2spOwogCXBoeWxpbmtfc2V0 KG1hc2ssIEF1dG9uZWcpOwogCi0JaWYgKHN0YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFD RV9NT0RFX1RSR01JSSkgewotCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7Ci0J fSBlbHNlIHsKLQkJcGh5bGlua19zZXQobWFzaywgMTBiYXNlVF9IYWxmKTsKLQkJcGh5bGlua19z ZXQobWFzaywgMTBiYXNlVF9GdWxsKTsKLQkJcGh5bGlua19zZXQobWFzaywgMTAwYmFzZVRfSGFs Zik7Ci0JCXBoeWxpbmtfc2V0KG1hc2ssIDEwMGJhc2VUX0Z1bGwpOwotCi0JCWlmIChzdGF0ZS0+ aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkpIHsKLQkJCXBoeWxpbmtfc2V0KG1h c2ssIDEwMDBiYXNlVF9IYWxmKTsKKwlpZiAoTVRLX0hBU19DQVBTKG1hYy0+aHctPnNvYy0+Y2Fw cywgTVRLX1NHTUlJKSkgeworCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNF X01PREVfMjUwMEJBU0VYKSB7CiAJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7 CiAJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVhfRnVsbCk7CisJCX0gZWxzZSB7CisJCQlw aHlsaW5rX3NldChtYXNrLCAyNTAwYmFzZVRfRnVsbCk7CisJCQlwaHlsaW5rX3NldChtYXNrLCAy NTAwYmFzZVhfRnVsbCk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoc3RhdGUtPmludGVyZmFjZSA9 PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7CisJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAw YmFzZVRfRnVsbCk7CisJCX0gZWxzZSB7CisJCQlwaHlsaW5rX3NldChtYXNrLCAxMGJhc2VUX0hh bGYpOworCQkJcGh5bGlua19zZXQobWFzaywgMTBiYXNlVF9GdWxsKTsKKwkJCXBoeWxpbmtfc2V0 KG1hc2ssIDEwMGJhc2VUX0hhbGYpOworCQkJcGh5bGlua19zZXQobWFzaywgMTAwYmFzZVRfRnVs bCk7CisKKwkJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkp IHsKKwkJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfSGFsZik7CisJCQkJcGh5bGlua19z ZXQobWFzaywgMTAwMGJhc2VUX0Z1bGwpOworCQkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNl WF9GdWxsKTsKKwkJCX0KIAkJfQogCX0KIApAQCAtMzkyLDYgKzQ3OCwxMSBAQCBzdGF0aWMgdm9p ZCBtdGtfdmFsaWRhdGUoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsCiAKIAlsaW5rbW9k ZV9hbmQoc3VwcG9ydGVkLCBzdXBwb3J0ZWQsIG1hc2spOwogCWxpbmttb2RlX2FuZChzdGF0ZS0+ YWR2ZXJ0aXNpbmcsIHN0YXRlLT5hZHZlcnRpc2luZywgbWFzayk7CisKKwkvKiBXZSBjYW4gb25s eSBvcGVyYXRlIGF0IDI1MDBCYXNlWCBvciAxMDAwQmFzZVguIElmIHJlcXVlc3RlZAorCSAqIHRv IGFkdmVydGlzZSBib3RoLCBvbmx5IHJlcG9ydCBhZHZlcnRpc2luZyBhdCAyNTAwQmFzZVguCisJ ICovCisJcGh5bGlua19oZWxwZXJfYmFzZXhfc3BlZWQoc3RhdGUpOwogfQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBtdGtfcGh5bGlua19vcHMgPSB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5oIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuaAppbmRleCA3ZjVmNTQxZGFhZDcuLjc2 YmQxMmNiODE1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRr X2V0aF9zb2MuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3Nv Yy5oCkBAIC00MTIsMTQgKzQxMiwzOCBAQAogLyogUmVnaXN0ZXIgdG8gYXV0by1uZWdvdGlhdGlv biByZXN0YXJ0ICovCiAjZGVmaW5lIFNHTVNZU19QQ1NfQ09OVFJPTF8xCTB4MAogI2RlZmluZSBT R01JSV9BTl9SRVNUQVJUCUJJVCg5KQorI2RlZmluZSBTR01JSV9JU09MQVRFCQlCSVQoMTApCisj ZGVmaW5lIFNHTUlJX0FOX0VOQUJMRQkJQklUKDEyKQorI2RlZmluZSBTR01JSV9MSU5LX1NUQVRZ UwlCSVQoMTgpCisjZGVmaW5lIFNHTUlJX0FOX0FCSUxJVFkJQklUKDE5KQorI2RlZmluZSBTR01J SV9BTl9DT01QTEVURQlCSVQoMjEpCisjZGVmaW5lIFNHTUlJX1BDU19GQVVMVAkJQklUKDIzKQor I2RlZmluZSBTR01JSV9BTl9FWFBBTlNJT05fQ0xSCUJJVCgzMCkKIAogLyogUmVnaXN0ZXIgdG8g cHJvZ3JhbW1hYmxlIGxpbmsgdGltZXIsIHRoZSB1bml0IGluIDIgKiA4bnMgKi8KICNkZWZpbmUg U0dNU1lTX1BDU19MSU5LX1RJTUVSCTB4MTgKICNkZWZpbmUgU0dNSUlfTElOS19USU1FUl9ERUZB VUxUCSgweDE4NmEwICYgR0VOTUFTSygxOSwgMCkpCiAKIC8qIFJlZ2lzdGVyIHRvIGNvbnRyb2wg cmVtb3RlIGZhdWx0ICovCi0jZGVmaW5lIFNHTVNZU19TR01JSV9NT0RFCTB4MjAKLSNkZWZpbmUg U0dNSUlfUkVNT1RFX0ZBVUxUX0RJUwlCSVQoOCkKKyNkZWZpbmUgU0dNU1lTX1NHTUlJX01PREUJ CTB4MjAKKyNkZWZpbmUgU0dNSUlfSUZfTU9ERV9CSVQwCQlCSVQoMCkKKyNkZWZpbmUgU0dNSUlf U1BFRURfRFVQTEVYX0FOCQlCSVQoMSkKKyNkZWZpbmUgU0dNSUlfU1BFRURfMTAJCQkweDAKKyNk ZWZpbmUgU0dNSUlfU1BFRURfMTAwCQkJQklUKDIpCisjZGVmaW5lIFNHTUlJX1NQRUVEXzEwMDAJ CUJJVCgzKQorI2RlZmluZSBTR01JSV9EVVBMRVhfRlVMTAkJQklUKDQpCisjZGVmaW5lIFNHTUlJ X0lGX01PREVfQklUNQkJQklUKDUpCisjZGVmaW5lIFNHTUlJX1JFTU9URV9GQVVMVF9ESVMJCUJJ VCg4KQorI2RlZmluZSBTR01JSV9DT0RFX1NZTkNfU0VUX1ZBTAkJQklUKDkpCisjZGVmaW5lIFNH TUlJX0NPREVfU1lOQ19TRVRfRU4JCUJJVCgxMCkKKyNkZWZpbmUgU0dNSUlfU0VORF9BTl9FUlJP Ul9FTgkJQklUKDExKQorI2RlZmluZSBTR01JSV9JRl9NT0RFX01BU0sJCUdFTk1BU0soNSwgMSkK KworLyogUmVnaXN0ZXIgdG8gc2V0IFNHTUlJIHNwZWVkLCBBTkEgUkdfIENvbnRyb2wgU2lnbmFs cyBJSUkqLworI2RlZmluZSBTR01TWVNfQU5BX1JHX0NTMwkweDIwMjgKKyNkZWZpbmUgUkdfUEhZ X1NQRUVEX01BU0sJKEJJVCgyKSB8IEJJVCgzKSkKKyNkZWZpbmUgUkdfUEhZX1NQRUVEXzFfMjVH CTB4MAorI2RlZmluZSBSR19QSFlfU1BFRURfM18xMjVHCUJJVCgyKQogCiAvKiBSZWdpc3RlciB0 byBwb3dlciB1cCBRUEhZICovCiAjZGVmaW5lIFNHTVNZU19RUEhZX1BXUl9TVEFURV9DVFJMIDB4 ZTgKQEAgLTg5Nyw3ICs5MjEsMTIgQEAgdTMyIG10a19yMzIoc3RydWN0IG10a19ldGggKmV0aCwg dW5zaWduZWQgcmVnKTsKIGludCBtdGtfc2dtaWlfaW5pdChzdHJ1Y3QgbXRrX3NnbWlpICpzcywg c3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJICAgdTMyIGFuYV9yZ2MzKTsKIGludCBtdGtfc2dt aWlfc2V0dXBfbW9kZV9hbihzdHJ1Y3QgbXRrX3NnbWlpICpzcywgaW50IGlkKTsKLWludCBtdGtf c2dtaWlfc2V0dXBfbW9kZV9mb3JjZShzdHJ1Y3QgbXRrX3NnbWlpICpzcywgaW50IGlkKTsKLWlu dCBtdGtfc2V0dXBfaHdfcGF0aChzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFjX2lkLCBpbnQg cGh5bW9kZSk7CitpbnQgbXRrX3NnbWlpX3NldHVwX21vZGVfZm9yY2Uoc3RydWN0IG10a19zZ21p aSAqc3MsIGludCBpZCwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRl ICpzdGF0ZSk7Cit2b2lkIG10a19zZ21paV9yZXN0YXJ0X2FuKHN0cnVjdCBtdGtfZXRoICpldGgs IGludCBtYWNfaWQpOworCitpbnQgbXRrX2dtYWNfc2dtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRr X2V0aCAqZXRoLCBpbnQgbWFjX2lkKTsKK2ludCBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKHN0 cnVjdCBtdGtfZXRoICpldGgsIGludCBtYWNfaWQpOworaW50IG10a19nbWFjX3JnbWlpX3BhdGhf c2V0dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19pZCk7CiAKICNlbmRpZiAvKiBNVEtf RVRIX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19z Z21paS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3NnbWlpLmMKaW5kZXgg ZmY1MDlkNDJkODE4Li40ZGIyN2RmYzdlYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lZGlhdGVrL210a19zZ21paS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlh dGVrL210a19zZ21paS5jCkBAIC0xNiw4ICsxNiw3IEBACiBpbnQgbXRrX3NnbWlpX2luaXQoc3Ry dWN0IG10a19zZ21paSAqc3MsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqciwgdTMyIGFuYV9yZ2MzKQog ewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7Ci0JY29uc3QgY2hhciAqc3RyOwotCWludCBpLCBl cnI7CisJaW50IGk7CiAKIAlzcy0+YW5hX3JnYzMgPSBhbmFfcmdjMzsKIApAQCAtMjksMTkgKzI4 LDYgQEAgaW50IG10a19zZ21paV9pbml0KHN0cnVjdCBtdGtfc2dtaWkgKnNzLCBzdHJ1Y3QgZGV2 aWNlX25vZGUgKnIsIHUzMiBhbmFfcmdjMykKIAkJc3MtPnJlZ21hcFtpXSA9IHN5c2Nvbl9ub2Rl X3RvX3JlZ21hcChucCk7CiAJCWlmIChJU19FUlIoc3MtPnJlZ21hcFtpXSkpCiAJCQlyZXR1cm4g UFRSX0VSUihzcy0+cmVnbWFwW2ldKTsKLQotCQllcnIgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmlu ZyhucCwgIm1lZGlhdGVrLHBoeXNwZWVkIiwgJnN0cik7Ci0JCWlmIChlcnIpCi0JCQlyZXR1cm4g ZXJyOwotCi0JCWlmICghc3RyY21wKHN0ciwgIjI1MDAiKSkKLQkJCXNzLT5mbGFnc1tpXSB8PSBN VEtfU0dNSUlfUEhZU1BFRURfMjUwMDsKLQkJZWxzZSBpZiAoIXN0cmNtcChzdHIsICIxMDAwIikp Ci0JCQlzcy0+ZmxhZ3NbaV0gfD0gTVRLX1NHTUlJX1BIWVNQRUVEXzEwMDA7Ci0JCWVsc2UgaWYg KCFzdHJjbXAoc3RyLCAiYXV0byIpKQotCQkJc3MtPmZsYWdzW2ldIHw9IE1US19TR01JSV9QSFlT UEVFRF9BTjsKLQkJZWxzZQotCQkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJcmV0dXJuIDA7CkBA IC03MywyNyArNTksNDUgQEAgaW50IG10a19zZ21paV9zZXR1cF9tb2RlX2FuKHN0cnVjdCBtdGtf c2dtaWkgKnNzLCBpbnQgaWQpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBtdGtfc2dtaWlfc2V0dXBf bW9kZV9mb3JjZShzdHJ1Y3QgbXRrX3NnbWlpICpzcywgaW50IGlkKQoraW50IG10a19zZ21paV9z ZXR1cF9tb2RlX2ZvcmNlKHN0cnVjdCBtdGtfc2dtaWkgKnNzLCBpbnQgaWQsCisJCQkgICAgICAg Y29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpCiB7CiAJdW5zaWduZWQgaW50 IHZhbDsKLQlpbnQgbW9kZTsKIAogCWlmICghc3MtPnJlZ21hcFtpZF0pCiAJCXJldHVybiAtRUlO VkFMOwogCiAJcmVnbWFwX3JlYWQoc3MtPnJlZ21hcFtpZF0sIHNzLT5hbmFfcmdjMywgJnZhbCk7 Ci0JdmFsICY9IH5HRU5NQVNLKDMsIDIpOwotCW1vZGUgPSBzcy0+ZmxhZ3NbaWRdICYgTVRLX1NH TUlJX1BIWVNQRUVEX01BU0s7Ci0JdmFsIHw9IChtb2RlID09IE1US19TR01JSV9QSFlTUEVFRF8x MDAwKSA/IDAgOiBCSVQoMik7CisJdmFsICY9IH5SR19QSFlfU1BFRURfTUFTSzsKKwlpZiAoc3Rh dGUtPmludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfMjUwMEJBU0VYKQorCQl2YWwgfD0g UkdfUEhZX1NQRUVEXzNfMTI1RzsKIAlyZWdtYXBfd3JpdGUoc3MtPnJlZ21hcFtpZF0sIHNzLT5h bmFfcmdjMywgdmFsKTsKIAogCS8qIERpc2FibGUgU0dNSUkgQU4gKi8KIAlyZWdtYXBfcmVhZChz cy0+cmVnbWFwW2lkXSwgU0dNU1lTX1BDU19DT05UUk9MXzEsICZ2YWwpOwotCXZhbCAmPSB+QklU KDEyKTsKKwl2YWwgJj0gflNHTUlJX0FOX0VOQUJMRTsKIAlyZWdtYXBfd3JpdGUoc3MtPnJlZ21h cFtpZF0sIFNHTVNZU19QQ1NfQ09OVFJPTF8xLCB2YWwpOwogCiAJLyogU0dNSUkgZm9yY2UgbW9k ZSBzZXR0aW5nICovCi0JdmFsID0gMHgzMTEyMDAxOTsKKwlyZWdtYXBfcmVhZChzcy0+cmVnbWFw W2lkXSwgU0dNU1lTX1NHTUlJX01PREUsICZ2YWwpOworCXZhbCAmPSB+U0dNSUlfSUZfTU9ERV9N QVNLOworCisJc3dpdGNoIChzdGF0ZS0+c3BlZWQpIHsKKwljYXNlIFNQRUVEXzEwOgorCQl2YWwg fD0gU0dNSUlfU1BFRURfMTA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwOgorCQl2YWwgfD0g U0dNSUlfU1BFRURfMTAwOworCQlicmVhazsKKwljYXNlIFNQRUVEXzI1MDA6CisJY2FzZSBTUEVF RF8xMDAwOgorCQl2YWwgfD0gU0dNSUlfU1BFRURfMTAwMDsKKwkJYnJlYWs7CisJfTsKKworCWlm IChzdGF0ZS0+ZHVwbGV4ID09IERVUExFWF9GVUxMKQorCQl2YWwgfD0gU0dNSUlfRFVQTEVYX0ZV TEw7CisKIAlyZWdtYXBfd3JpdGUoc3MtPnJlZ21hcFtpZF0sIFNHTVNZU19TR01JSV9NT0RFLCB2 YWwpOwogCiAJLyogUmVsZWFzZSBQSFlBIHBvd2VyIGRvd24gc3RhdGUgKi8KQEAgLTEwMywzICsx MDcsMjAgQEAgaW50IG10a19zZ21paV9zZXR1cF9tb2RlX2ZvcmNlKHN0cnVjdCBtdGtfc2dtaWkg KnNzLCBpbnQgaWQpCiAKIAlyZXR1cm4gMDsKIH0KKwordm9pZCBtdGtfc2dtaWlfcmVzdGFydF9h bihzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFjX2lkKQoreworCXN0cnVjdCBtdGtfc2dtaWkg KnNzID0gZXRoLT5zZ21paTsKKwl1bnNpZ25lZCBpbnQgdmFsLCBzaWQ7CisKKwkvKiBEZWNpZGUg aG93IEdNQUMgYW5kIFNHTUlJU1lTIGJlIG1hcHBlZCAqLworCXNpZCA9IChNVEtfSEFTX0NBUFMo ZXRoLT5zb2MtPmNhcHMsIE1US19TSEFSRURfU0dNSUkpKSA/CisJICAgICAgIDAgOiBtYWNfaWQ7 CisKKwlpZiAoIXNzLT5yZWdtYXBbc2lkXSkKKwkJcmV0dXJuOworCisJcmVnbWFwX3JlYWQoc3Mt PnJlZ21hcFtzaWRdLCBTR01TWVNfUENTX0NPTlRST0xfMSwgJnZhbCk7CisJdmFsIHw9IFNHTUlJ X0FOX1JFU1RBUlQ7CisJcmVnbWFwX3dyaXRlKHNzLT5yZWdtYXBbc2lkXSwgU0dNU1lTX1BDU19D T05UUk9MXzEsIHZhbCk7Cit9Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==