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=-13.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 77B43C43387 for ; Mon, 7 Jan 2019 19:46:22 +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 36E752070C for ; Mon, 7 Jan 2019 19:46:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="l7B+lmLW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 36E752070C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de 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: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:In-Reply-To:References: List-Owner; bh=JMycF5oqHSHOy1V/DfZ0UFhn0zYRuqb589+O4MLl3IE=; b=l7B+lmLWZmxpME 5CfYBNz5nK219m4jTMRKhCthXh3dF/MpzN0DHIn4xyVDkfsEKfVnpAQgdtPGokDn34vs2tZORuNZm Bz4RGN1Gjy3axQ1Ns17d3Tubk6X/EC4jknRs+foHpl8zRPZp3LglTMtcSzRZiW1jN71MfYNIa+DNR fRK9e6n7Z9jXN8DFkVfvaOiA41nK82usdxsCyddiHcpt0QHFvwXxIfsG5ud81llCe5xGKbV/oiPZC V8I3hPt/95SXQxS/p+11ixVWXn+UIKmKgrG78s1zI3WY0cLWJbdYkxTNqFW7T18Kqvl6qkB5YQn18 vPYll1yuoE+VbDP/IcdA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1ggaqm-0006Xq-2D; Mon, 07 Jan 2019 19:46:16 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1ggaqh-0006XD-LZ for linux-arm-kernel@lists.infradead.org; Mon, 07 Jan 2019 19:46:14 +0000 Received: from pty.hi.pengutronix.de ([2001:67c:670:100:1d::c5]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ggaqV-0001e2-Aq; Mon, 07 Jan 2019 20:45:59 +0100 Received: from ukl by pty.hi.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1ggaqT-0006Iw-63; Mon, 07 Jan 2019 20:45:57 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Arnd Bergmann Subject: [PATCH] bus: ts-nbus: remove bus driver without user Date: Mon, 7 Jan 2019 20:45:24 +0100 Message-Id: <20190107194523.2772-1-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c5 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190107_114612_063413_46C59017 X-CRM114-Status: GOOD ( 27.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linus Walleij , kernel@savoirfairelinux.com, kernel@pengutronix.de, linux-arm-kernel@lists.infradead.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20OUFELLA?= 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 U2luY2UgdGhlIHRzLW5idXMgZHJpdmVyIHdhcyBpbnRyb2R1Y2VkIGluIDIwMTcgaXQgb25seSBz YXcgc29tZSByZXdvcmtpbmcKY2hhbmdlcy4gVGhlcmUgaXMgbm8gdXNlciBpbiB0aGUgdHJlZSwg bmVpdGhlciBhIG1hY2hpbmUgdGhhdCBoYXMgdGhpcwpidXMgbm9yIGEgZHJpdmVyIGZvciBhIGRl dmljZSBvbiB0aGF0IGJ1cy4gQWxzbyB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUKYXV0aG9yIGRv ZXNuJ3QgZXhpc3QgYW55IG1vcmUuCgpTbyByZW1vdmUgdGhpcyBidXMuCgpTaWduZWQtb2ZmLWJ5 OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPgotLS0K SGVsbG8sCgpJJ20gbm90IHN1cmUgd2hlcmUgdG8gc2VuZCB0aGlzIHBhdGNoIHRvLiBUaGVyZSB3 YXMgYSBwYXRjaCBzZXQgb24gdGhlCmFybS1rZXJuZWwgbGlzdCBidXQgSSBkaWRuJ3QgZmluZCB0 aGUgZmluYWwgdmVyc2lvbiBpbiBteSBhcmNoaXZlLiBBcm5kCmFwcGxpZWQgdGhlIHBhdGNoICg1 YjE0M2QyYTZlZGUgKCJidXM6IGFkZCBkcml2ZXIgZm9yIHRoZSBUZWNobm9sb2dpYwpTeXN0ZW1z IE5CVVMiKSkgc28gSSBzZW5kIGl0IHRvIGhpbSA6LSkKCkJlc3QgcmVnYXJkcwpVd2UKCiAuLi4v ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvdHMtbmJ1cy50eHQgICAgICAgfCAgNTAgLS0tCiBkcml2 ZXJzL2J1cy9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggLQogZHJpdmVy cy9idXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMv YnVzL3RzLW5idXMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDM2OSAtLS0tLS0tLS0tLS0t LS0tLS0KIGluY2x1ZGUvbGludXgvdHMtbmJ1cy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAx OCAtCiA1IGZpbGVzIGNoYW5nZWQsIDQ0NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3RzLW5idXMudHh0CiBkZWxl dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMvdHMtbmJ1cy5jCiBkZWxldGUgbW9kZSAxMDA2NDQg aW5jbHVkZS9saW51eC90cy1uYnVzLmgKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvYnVzL3RzLW5idXMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2J1cy90cy1uYnVzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MmExMGQwNjViOWZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2J1cy90cy1uYnVzLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAK LVRlY2hub2xvZ2ljIFN5c3RlbXMgTkJVUwotCi1UaGUgTkJVUyBpcyBhIGJ1cyB1c2VkIHRvIGlu dGVyZmFjZSB3aXRoIHBlcmlwaGVyYWxzIGluIHRoZSBUZWNobm9sb2dpYwotU3lzdGVtcyBGUEdB IG9uIHRoZSBUUy00NjAwIFNvTS4KLQotUmVxdWlyZWQgcHJvcGVydGllcyA6Ci0gLSBjb21wYXRp YmxlCQk6ICJ0ZWNobm9sb2dpYyx0cy1uYnVzIgotIC0gI2FkZHJlc3MtY2VsbHMJOiBtdXN0IGJl IDEKLSAtICNzaXplLWNlbGxzCQk6IG11c3QgYmUgMAotIC0gcHdtcwkJCTogVGhlIFBXTSBib3Vu ZCB0byB0aGUgRlBHQQotIC0gdHMsZGF0YS1ncGlvcwk6IFRoZSA4IEdQSU8gcGlucyBjb25uZWN0 ZWQgdG8gdGhlIGRhdGEgbGluZXMgb24gdGhlIEZQR0EKLSAtIHRzLGNzbi1ncGlvcwkJOiBUaGUg R1BJTyBwaW4gY29ubmVjdGVkIHRvIHRoZSBjc24gbGluZSBvbiB0aGUgRlBHQQotIC0gdHMsdHhy eC1ncGlvcwk6IFRoZSBHUElPIHBpbiBjb25uZWN0ZWQgdG8gdGhlIHR4cnggbGluZSBvbiB0aGUg RlBHQQotIC0gdHMsc3Ryb2JlLWdwaW9zCTogVGhlIEdQSU8gcGluIGNvbm5lY3RlZCB0byB0aGUg c3RvYmUgbGluZSBvbiB0aGUgRlBHQQotIC0gdHMsYWxlLWdwaW9zCQk6IFRoZSBHUElPIHBpbiBj b25uZWN0ZWQgdG8gdGhlIGFsZSBsaW5lIG9uIHRoZSBGUEdBCi0gLSB0cyxyZHktZ3Bpb3MJCTog VGhlIEdQSU8gcGluIGNvbm5lY3RlZCB0byB0aGUgcmR5IGxpbmUgb24gdGhlIEZQR0EKLQotQ2hp bGQgbm9kZXM6Ci0KLVRoZSBOQlVTIG5vZGUgY2FuIGNvbnRhaW4gemVybyBvciBtb3JlIGNoaWxk IG5vZGVzIHJlcHJlc2VudGluZyBwZXJpcGhlcmFscwotb24gdGhlIGJ1cy4KLQotRXhhbXBsZToK LQotCW5idXMgewotCQljb21wYXRpYmxlID0gInRlY2hub2xvZ2ljLHRzLW5idXMiOwotCQlwaW5j dHJsLTAgPSA8Jm5idXNfcGlucz47Ci0JCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkjc2l6ZS1j ZWxscyA9IDwwPjsKLQkJcHdtcyA9IDwmcHdtIDIgODM+OwotCQl0cyxkYXRhLWdwaW9zICAgPSA8 JmdwaW8wIDAgR1BJT19BQ1RJVkVfSElHSAotCQkJCSAgICZncGlvMCAxIEdQSU9fQUNUSVZFX0hJ R0gKLQkJCQkgICAmZ3BpbzAgMiBHUElPX0FDVElWRV9ISUdICi0JCQkJICAgJmdwaW8wIDMgR1BJ T19BQ1RJVkVfSElHSAotCQkJCSAgICZncGlvMCA0IEdQSU9fQUNUSVZFX0hJR0gKLQkJCQkgICAm Z3BpbzAgNSBHUElPX0FDVElWRV9ISUdICi0JCQkJICAgJmdwaW8wIDYgR1BJT19BQ1RJVkVfSElH SAotCQkJCSAgICZncGlvMCA3IEdQSU9fQUNUSVZFX0hJR0g+OwotCQl0cyxjc24tZ3Bpb3MgICAg PSA8JmdwaW8wIDE2IEdQSU9fQUNUSVZFX0hJR0g+OwotCQl0cyx0eHJ4LWdwaW9zICAgPSA8Jmdw aW8wIDI0IEdQSU9fQUNUSVZFX0hJR0g+OwotCQl0cyxzdHJvYmUtZ3Bpb3MgPSA8JmdwaW8wIDI1 IEdQSU9fQUNUSVZFX0hJR0g+OwotCQl0cyxhbGUtZ3Bpb3MgICAgPSA8JmdwaW8wIDI2IEdQSU9f QUNUSVZFX0hJR0g+OwotCQl0cyxyZHktZ3Bpb3MgICAgPSA8JmdwaW8wIDIxIEdQSU9fQUNUSVZF X0hJR0g+OwotCi0JCXdhdGNoZG9nQDJhIHsKLQkJCWNvbXBhdGlibGUgPSAiLi4uIjsKLQotCQkJ LyogLi4uICovCi0JCX07Ci0JfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYnVzL0tjb25maWcgYi9k cml2ZXJzL2J1cy9LY29uZmlnCmluZGV4IDE4NTExMTJjY2MyOS4uMjc1NDAyMTk4NTM3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2J1cy9LY29uZmlnCisrKyBiL2RyaXZlcnMvYnVzL0tjb25maWcKQEAg LTE0NywxNCArMTQ3LDYgQEAgY29uZmlnIFRJX1NZU0MKIAkgIEdlbmVyaWMgZHJpdmVyIGZvciBU ZXhhcyBJbnN0cnVtZW50cyBpbnRlcmNvbm5lY3QgdGFyZ2V0IG1vZHVsZQogCSAgZm91bmQgb24g bWFueSBUSSBTb0NzLgogCi1jb25maWcgVFNfTkJVUwotCXRyaXN0YXRlICJUZWNobm9sb2dpYyBT eXN0ZW1zIE5CVVMgRHJpdmVyIgotCWRlcGVuZHMgb24gU09DX0lNWDI4Ci0JZGVwZW5kcyBvbiBP Rl9HUElPICYmIFBXTQotCWhlbHAKLQkgIERyaXZlciBmb3IgdGhlIFRlY2hub2xvZ2ljIFN5c3Rl bXMgTkJVUyB3aGljaCBpcyB1c2VkIHRvIGludGVyZmFjZQotCSAgd2l0aCB0aGUgcGVyaXBoZXJh bHMgaW4gdGhlIEZQR0Egb2YgdGhlIFRTLTQ2MDAgU29NLgotCiBjb25maWcgVU5JUEhJRVJfU1lT VEVNX0JVUwogCXRyaXN0YXRlICJVbmlQaGllciBTeXN0ZW0gQnVzIGRyaXZlciIKIAlkZXBlbmRz IG9uIEFSQ0hfVU5JUEhJRVIgJiYgT0YKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYnVzL01ha2VmaWxl IGIvZHJpdmVycy9idXMvTWFrZWZpbGUKaW5kZXggY2EzMDBiMTkxNGNlLi4xY2IwMDFiNmZjNGYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYnVzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvYnVzL01ha2Vm aWxlCkBAIC0yNyw3ICsyNyw2IEBAIG9iai0kKENPTkZJR19TSU1QTEVfUE1fQlVTKQkrPSBzaW1w bGUtcG0tYnVzLm8KIG9iai0kKENPTkZJR19URUdSQV9BQ09OTkVDVCkJKz0gdGVncmEtYWNvbm5l Y3Qubwogb2JqLSQoQ09ORklHX1RFR1JBX0dNSSkJCSs9IHRlZ3JhLWdtaS5vCiBvYmotJChDT05G SUdfVElfU1lTQykJCSs9IHRpLXN5c2Mubwotb2JqLSQoQ09ORklHX1RTX05CVVMpCQkrPSB0cy1u YnVzLm8KIG9iai0kKENPTkZJR19VTklQSElFUl9TWVNURU1fQlVTKQkrPSB1bmlwaGllci1zeXN0 ZW0tYnVzLm8KIG9iai0kKENPTkZJR19WRVhQUkVTU19DT05GSUcpCSs9IHZleHByZXNzLWNvbmZp Zy5vCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYnVzL3RzLW5idXMuYyBiL2RyaXZlcnMvYnVzL3Rz LW5idXMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk4OWNlOTA0YTM3Li4wMDAw MDAwMDAwMDAKLS0tIGEvZHJpdmVycy9idXMvdHMtbmJ1cy5jCisrKyAvZGV2L251bGwKQEAgLTEs MzY5ICswLDAgQEAKLS8qCi0gKiBOQlVTIGRyaXZlciBmb3IgVFMtNDYwMCBiYXNlZCBib2FyZHMK LSAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTYgLSBTYXZvaXItZmFpcmUgTGludXgKLSAqIEF1dGhv cjogU2ViYXN0aWVuIEJvdXJkZWxpbiA8c2ViYXN0aWVuLmJvdXJkZWxpbkBzYXZvaXJmYWlyZWxp bnV4LmNvbT4KLSAqCi0gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgdmVyc2lvbiAyLiBUaGlzIHByb2dy YW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQotICogd2FycmFudHkgb2YgYW55IGtp bmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICoKLSAqIFRoaXMgZHJpdmVyIGltcGxl bWVudHMgYSBHUElPcyBiaXQtYmFuZ2VkIGJ1cywgY2FsbGVkIHRoZSBOQlVTIGJ5IFRlY2hub2xv Z2ljCi0gKiBTeXN0ZW1zLiBJdCBpcyB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHBlcmlw aGVyYWxzIGluIHRoZSBGUEdBIG9uIHRoZQotICogVFMtNDYwMCBTb00uCi0gKi8KLQotI2luY2x1 ZGUgPGxpbnV4L2JpdG9wcy5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KLSNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNs dWRlIDxsaW51eC9tdXRleC5oPgotI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Ci0jaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvcHdtLmg+Ci0j aW5jbHVkZSA8bGludXgvdHMtbmJ1cy5oPgotCi0jZGVmaW5lIFRTX05CVVNfRElSRUNUSU9OX0lO ICAwCi0jZGVmaW5lIFRTX05CVVNfRElSRUNUSU9OX09VVCAxCi0jZGVmaW5lIFRTX05CVVNfV1JJ VEVfQURSIDAKLSNkZWZpbmUgVFNfTkJVU19XUklURV9WQUwgMQotCi1zdHJ1Y3QgdHNfbmJ1cyB7 Ci0Jc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKLQlzdHJ1Y3QgZ3Bpb19kZXNjcyAqZGF0YTsKLQlz dHJ1Y3QgZ3Bpb19kZXNjICpjc247Ci0Jc3RydWN0IGdwaW9fZGVzYyAqdHhyeDsKLQlzdHJ1Y3Qg Z3Bpb19kZXNjICpzdHJvYmU7Ci0Jc3RydWN0IGdwaW9fZGVzYyAqYWxlOwotCXN0cnVjdCBncGlv X2Rlc2MgKnJkeTsKLQlzdHJ1Y3QgbXV0ZXggbG9jazsKLX07Ci0KLS8qCi0gKiByZXF1ZXN0IGFs bCBncGlvcyByZXF1aXJlZCBieSB0aGUgYnVzLgotICovCi1zdGF0aWMgaW50IHRzX25idXNfaW5p dF9wZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgdHNfbmJ1cwotCQkq dHNfbmJ1cykKLXsKLQl0c19uYnVzLT5kYXRhID0gZGV2bV9ncGlvZF9nZXRfYXJyYXkoJnBkZXYt PmRldiwgInRzLGRhdGEiLAotCQkJR1BJT0RfT1VUX0hJR0gpOwotCWlmIChJU19FUlIodHNfbmJ1 cy0+ZGF0YSkpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJldHJpZXZlIHRz LGRhdGEtZ3BpbyBmcm9tIGR0c1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKHRzX25idXMtPmRhdGEp OwotCX0KLQotCXRzX25idXMtPmNzbiA9IGRldm1fZ3Bpb2RfZ2V0KCZwZGV2LT5kZXYsICJ0cyxj c24iLCBHUElPRF9PVVRfSElHSCk7Ci0JaWYgKElTX0VSUih0c19uYnVzLT5jc24pKSB7Ci0JCWRl dl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZXRyaWV2ZSB0cyxjc24tZ3BpbyBmcm9tIGR0 c1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKHRzX25idXMtPmNzbik7Ci0JfQotCi0JdHNfbmJ1cy0+ dHhyeCA9IGRldm1fZ3Bpb2RfZ2V0KCZwZGV2LT5kZXYsICJ0cyx0eHJ4IiwgR1BJT0RfT1VUX0hJ R0gpOwotCWlmIChJU19FUlIodHNfbmJ1cy0+dHhyeCkpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2 LCAiZmFpbGVkIHRvIHJldHJpZXZlIHRzLHR4cngtZ3BpbyBmcm9tIGR0c1xuIik7Ci0JCXJldHVy biBQVFJfRVJSKHRzX25idXMtPnR4cngpOwotCX0KLQotCXRzX25idXMtPnN0cm9iZSA9IGRldm1f Z3Bpb2RfZ2V0KCZwZGV2LT5kZXYsICJ0cyxzdHJvYmUiLCBHUElPRF9PVVRfSElHSCk7Ci0JaWYg KElTX0VSUih0c19uYnVzLT5zdHJvYmUpKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxl ZCB0byByZXRyaWV2ZSB0cyxzdHJvYmUtZ3BpbyBmcm9tIGR0c1xuIik7Ci0JCXJldHVybiBQVFJf RVJSKHRzX25idXMtPnN0cm9iZSk7Ci0JfQotCi0JdHNfbmJ1cy0+YWxlID0gZGV2bV9ncGlvZF9n ZXQoJnBkZXYtPmRldiwgInRzLGFsZSIsIEdQSU9EX09VVF9ISUdIKTsKLQlpZiAoSVNfRVJSKHRz X25idXMtPmFsZSkpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHJldHJpZXZl IHRzLGFsZS1ncGlvIGZyb20gZHRzXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIodHNfbmJ1cy0+YWxl KTsKLQl9Ci0KLQl0c19uYnVzLT5yZHkgPSBkZXZtX2dwaW9kX2dldCgmcGRldi0+ZGV2LCAidHMs cmR5IiwgR1BJT0RfSU4pOwotCWlmIChJU19FUlIodHNfbmJ1cy0+cmR5KSkgewotCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmV0cmlldmUgdHMscmR5LWdwaW8gZnJvbSBkdHNcbiIp OwotCQlyZXR1cm4gUFRSX0VSUih0c19uYnVzLT5yZHkpOwotCX0KLQotCXJldHVybiAwOwotfQot Ci0vKgotICogdGhlIGRhdGEgZ3Bpb3MgYXJlIHVzZWQgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcg dmFsdWVzLCB0aGVpciBkaXJlY3Rpb25zCi0gKiBzaG91bGQgYmUgYWRqdXN0ZWQgYWNjb3JkaW5n bHkuCi0gKi8KLXN0YXRpYyB2b2lkIHRzX25idXNfc2V0X2RpcmVjdGlvbihzdHJ1Y3QgdHNfbmJ1 cyAqdHNfbmJ1cywgaW50IGRpcmVjdGlvbikKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkg PCA4OyBpKyspIHsKLQkJaWYgKGRpcmVjdGlvbiA9PSBUU19OQlVTX0RJUkVDVElPTl9JTikKLQkJ CWdwaW9kX2RpcmVjdGlvbl9pbnB1dCh0c19uYnVzLT5kYXRhLT5kZXNjW2ldKTsKLQkJZWxzZQot CQkJLyogd2hlbiB1c2VkIGFzIG91dHB1dCB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgZGF0YQot CQkJICogbGluZXMgYXJlIHNldCB0byBoaWdoICovCi0JCQlncGlvZF9kaXJlY3Rpb25fb3V0cHV0 KHRzX25idXMtPmRhdGEtPmRlc2NbaV0sIDEpOwotCX0KLX0KLQotLyoKLSAqIHJlc2V0IHRoZSBi dXMgaW4gaXRzIGluaXRpYWwgc3RhdGUuCi0gKiBUaGUgZGF0YSwgY3NuLCBzdHJvYmUgYW5kIGFs ZSBsaW5lcyBtdXN0IGJlIHplcm8nZWQgdG8gbGV0IHRoZSBGUEdBIGtub3dzIGEKLSAqIG5ldyB0 cmFuc2FjdGlvbiBjYW4gYmUgcHJvY2Vzcy4KLSAqLwotc3RhdGljIHZvaWQgdHNfbmJ1c19yZXNl dF9idXMoc3RydWN0IHRzX25idXMgKnRzX25idXMpCi17Ci0JREVDTEFSRV9CSVRNQVAodmFsdWVz LCA4KTsKLQotCXZhbHVlc1swXSA9IDA7Ci0KLQlncGlvZF9zZXRfYXJyYXlfdmFsdWVfY2Fuc2xl ZXAoOCwgdHNfbmJ1cy0+ZGF0YS0+ZGVzYywKLQkJCQkgICAgICAgdHNfbmJ1cy0+ZGF0YS0+aW5m bywgdmFsdWVzKTsKLQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAodHNfbmJ1cy0+Y3NuLCAwKTsK LQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAodHNfbmJ1cy0+c3Ryb2JlLCAwKTsKLQlncGlvZF9z ZXRfdmFsdWVfY2Fuc2xlZXAodHNfbmJ1cy0+YWxlLCAwKTsKLX0KLQotLyoKLSAqIGxldCB0aGUg RlBHQSBrbm93cyBpdCBjYW4gcHJvY2Vzcy4KLSAqLwotc3RhdGljIHZvaWQgdHNfbmJ1c19zdGFy dF90cmFuc2FjdGlvbihzdHJ1Y3QgdHNfbmJ1cyAqdHNfbmJ1cykKLXsKLQlncGlvZF9zZXRfdmFs dWVfY2Fuc2xlZXAodHNfbmJ1cy0+c3Ryb2JlLCAxKTsKLX0KLQotLyoKLSAqIHJlYWQgYSBieXRl IHZhbHVlIGZyb20gdGhlIGRhdGEgZ3Bpb3MuCi0gKiByZXR1cm4gMCBvbiBzdWNjZXNzIG9yIG5l Z2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCi0gKi8KLXN0YXRpYyBpbnQgdHNfbmJ1c19yZWFkX2J5 dGUoc3RydWN0IHRzX25idXMgKnRzX25idXMsIHU4ICp2YWwpCi17Ci0Jc3RydWN0IGdwaW9fZGVz Y3MgKmdwaW9zID0gdHNfbmJ1cy0+ZGF0YTsKLQlpbnQgcmV0LCBpOwotCi0JKnZhbCA9IDA7Ci0J Zm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQlyZXQgPSBncGlvZF9nZXRfdmFsdWVfY2Fuc2xl ZXAoZ3Bpb3MtPmRlc2NbaV0pOwotCQlpZiAocmV0IDwgMCkKLQkJCXJldHVybiByZXQ7Ci0JCWlm IChyZXQpCi0JCQkqdmFsIHw9IEJJVChpKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAq IHNldCB0aGUgZGF0YSBncGlvcyBhY2NvcmRpbmdseSB0byB0aGUgYnl0ZSB2YWx1ZS4KLSAqLwot c3RhdGljIHZvaWQgdHNfbmJ1c193cml0ZV9ieXRlKHN0cnVjdCB0c19uYnVzICp0c19uYnVzLCB1 OCBieXRlKQotewotCXN0cnVjdCBncGlvX2Rlc2NzICpncGlvcyA9IHRzX25idXMtPmRhdGE7Ci0J REVDTEFSRV9CSVRNQVAodmFsdWVzLCA4KTsKLQotCXZhbHVlc1swXSA9IGJ5dGU7Ci0KLQlncGlv ZF9zZXRfYXJyYXlfdmFsdWVfY2Fuc2xlZXAoOCwgZ3Bpb3MtPmRlc2MsIGdwaW9zLT5pbmZvLCB2 YWx1ZXMpOwotfQotCi0vKgotICogcmVhZGluZyB0aGUgYnVzIGNvbnNpc3RzIG9mIHJlc2V0dGlu ZyB0aGUgYnVzLCB0aGVuIG5vdGlmeWluZyB0aGUgRlBHQSB0bwotICogc2VuZCB0aGUgZGF0YSBp biB0aGUgZGF0YSBncGlvcyBhbmQgcmV0dXJuIHRoZSByZWFkIHZhbHVlLgotICogcmV0dXJuIDAg b24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgotICovCi1zdGF0aWMgaW50 IHRzX25idXNfcmVhZF9idXMoc3RydWN0IHRzX25idXMgKnRzX25idXMsIHU4ICp2YWwpCi17Ci0J dHNfbmJ1c19yZXNldF9idXModHNfbmJ1cyk7Ci0JdHNfbmJ1c19zdGFydF90cmFuc2FjdGlvbih0 c19uYnVzKTsKLQotCXJldHVybiB0c19uYnVzX3JlYWRfYnl0ZSh0c19uYnVzLCB2YWwpOwotfQot Ci0vKgotICogd3JpdGluZyB0byB0aGUgYnVzIGNvbnNpc3RzIG9mIHJlc2V0dGluZyB0aGUgYnVz LCB0aGVuIGRlZmluZSB0aGUgdHlwZSBvZgotICogY29tbWFuZCAoYWRkcmVzcy92YWx1ZSksIHdy aXRlIHRoZSBkYXRhIGFuZCBub3RpZnkgdGhlIEZQR0EgdG8gcmV0cmlldmUgdGhlCi0gKiB2YWx1 ZSBpbiB0aGUgZGF0YSBncGlvcy4KLSAqLwotc3RhdGljIHZvaWQgdHNfbmJ1c193cml0ZV9idXMo c3RydWN0IHRzX25idXMgKnRzX25idXMsIGludCBjbWQsIHU4IHZhbCkKLXsKLQl0c19uYnVzX3Jl c2V0X2J1cyh0c19uYnVzKTsKLQotCWlmIChjbWQgPT0gVFNfTkJVU19XUklURV9BRFIpCi0JCWdw aW9kX3NldF92YWx1ZV9jYW5zbGVlcCh0c19uYnVzLT5hbGUsIDEpOwotCi0JdHNfbmJ1c193cml0 ZV9ieXRlKHRzX25idXMsIHZhbCk7Ci0JdHNfbmJ1c19zdGFydF90cmFuc2FjdGlvbih0c19uYnVz KTsKLX0KLQotLyoKLSAqIHJlYWQgdGhlIHZhbHVlIGluIHRoZSBGUEdBIHJlZ2lzdGVyIGF0IHRo ZSBnaXZlbiBhZGRyZXNzLgotICogcmV0dXJuIDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJu byBvbiBmYWlsdXJlLgotICovCi1pbnQgdHNfbmJ1c19yZWFkKHN0cnVjdCB0c19uYnVzICp0c19u YnVzLCB1OCBhZHIsIHUxNiAqdmFsKQotewotCWludCByZXQsIGk7Ci0JdTggYnl0ZTsKLQotCS8q IGJ1cyBhY2Nlc3MgbXVzdCBiZSBhdG9taWMgKi8KLQltdXRleF9sb2NrKCZ0c19uYnVzLT5sb2Nr KTsKLQotCS8qIHNldCB0aGUgYnVzIGluIHJlYWQgbW9kZSAqLwotCWdwaW9kX3NldF92YWx1ZV9j YW5zbGVlcCh0c19uYnVzLT50eHJ4LCAwKTsKLQotCS8qIHdyaXRlIGFkZHJlc3MgKi8KLQl0c19u YnVzX3dyaXRlX2J1cyh0c19uYnVzLCBUU19OQlVTX1dSSVRFX0FEUiwgYWRyKTsKLQotCS8qIHNl dCB0aGUgZGF0YSBncGlvcyBkaXJlY3Rpb24gYXMgaW5wdXQgYmVmb3JlIHJlYWRpbmcgKi8KLQl0 c19uYnVzX3NldF9kaXJlY3Rpb24odHNfbmJ1cywgVFNfTkJVU19ESVJFQ1RJT05fSU4pOwotCi0J LyogcmVhZGluZyB2YWx1ZSBNU0IgZmlyc3QgKi8KLQlkbyB7Ci0JCSp2YWwgPSAwOwotCQlieXRl ID0gMDsKLQkJZm9yIChpID0gMTsgaSA+PSAwOyBpLS0pIHsKLQkJCS8qIHJlYWQgYSBieXRlIGZy b20gdGhlIGJ1cywgbGVhdmUgb24gZXJyb3IgKi8KLQkJCXJldCA9IHRzX25idXNfcmVhZF9idXMo dHNfbmJ1cywgJmJ5dGUpOwotCQkJaWYgKHJldCA8IDApCi0JCQkJZ290byBlcnI7Ci0KLQkJCS8q IGFwcGVuZCB0aGUgYnl0ZSByZWFkIHRvIHRoZSBmaW5hbCB2YWx1ZSAqLwotCQkJKnZhbCB8PSBi eXRlIDw8IChpICogOCk7Ci0JCX0KLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHRzX25idXMt PmNzbiwgMSk7Ci0JCXJldCA9IGdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcCh0c19uYnVzLT5yZHkp OwotCX0gd2hpbGUgKHJldCk7Ci0KLWVycjoKLQkvKiByZXN0b3JlIHRoZSBkYXRhIGdwaW9zIGRp cmVjdGlvbiBhcyBvdXRwdXQgYWZ0ZXIgcmVhZGluZyAqLwotCXRzX25idXNfc2V0X2RpcmVjdGlv bih0c19uYnVzLCBUU19OQlVTX0RJUkVDVElPTl9PVVQpOwotCi0JbXV0ZXhfdW5sb2NrKCZ0c19u YnVzLT5sb2NrKTsKLQotCXJldHVybiByZXQ7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTCh0c19uYnVz X3JlYWQpOwotCi0vKgotICogd3JpdGUgdGhlIGRlc2lyZWQgdmFsdWUgaW4gdGhlIEZQR0EgcmVn aXN0ZXIgYXQgdGhlIGdpdmVuIGFkZHJlc3MuCi0gKi8KLWludCB0c19uYnVzX3dyaXRlKHN0cnVj dCB0c19uYnVzICp0c19uYnVzLCB1OCBhZHIsIHUxNiB2YWwpCi17Ci0JaW50IGk7Ci0KLQkvKiBi dXMgYWNjZXNzIG11c3QgYmUgYXRvbWljICovCi0JbXV0ZXhfbG9jaygmdHNfbmJ1cy0+bG9jayk7 Ci0KLQkvKiBzZXQgdGhlIGJ1cyBpbiB3cml0ZSBtb2RlICovCi0JZ3Bpb2Rfc2V0X3ZhbHVlX2Nh bnNsZWVwKHRzX25idXMtPnR4cngsIDEpOwotCi0JLyogd3JpdGUgYWRkcmVzcyAqLwotCXRzX25i dXNfd3JpdGVfYnVzKHRzX25idXMsIFRTX05CVVNfV1JJVEVfQURSLCBhZHIpOwotCi0JLyogd3Jp dGluZyB2YWx1ZSBNU0IgZmlyc3QgKi8KLQlmb3IgKGkgPSAxOyBpID49IDA7IGktLSkKLQkJdHNf bmJ1c193cml0ZV9idXModHNfbmJ1cywgVFNfTkJVU19XUklURV9WQUwsICh1OCkodmFsID4+IChp ICogOCkpKTsKLQotCS8qIHdhaXQgZm9yIGNvbXBsZXRpb24gKi8KLQlncGlvZF9zZXRfdmFsdWVf Y2Fuc2xlZXAodHNfbmJ1cy0+Y3NuLCAxKTsKLQl3aGlsZSAoZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNs ZWVwKHRzX25idXMtPnJkeSkgIT0gMCkgewotCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAodHNf bmJ1cy0+Y3NuLCAwKTsKLQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHRzX25idXMtPmNzbiwg MSk7Ci0JfQotCi0JbXV0ZXhfdW5sb2NrKCZ0c19uYnVzLT5sb2NrKTsKLQotCXJldHVybiAwOwot fQotRVhQT1JUX1NZTUJPTF9HUEwodHNfbmJ1c193cml0ZSk7Ci0KLXN0YXRpYyBpbnQgdHNfbmJ1 c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBwd21fZGV2 aWNlICpwd207Ci0Jc3RydWN0IHB3bV9hcmdzIHBhcmdzOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9 ICZwZGV2LT5kZXY7Ci0Jc3RydWN0IHRzX25idXMgKnRzX25idXM7Ci0JaW50IHJldDsKLQotCXRz X25idXMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnRzX25idXMpLCBHRlBfS0VSTkVMKTsK LQlpZiAoIXRzX25idXMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbXV0ZXhfaW5pdCgmdHNfbmJ1 cy0+bG9jayk7Ci0KLQlyZXQgPSB0c19uYnVzX2luaXRfcGRhdGEocGRldiwgdHNfbmJ1cyk7Ci0J aWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0KLQlwd20gPSBkZXZtX3B3bV9nZXQoZGV2LCBO VUxMKTsKLQlpZiAoSVNfRVJSKHB3bSkpIHsKLQkJcmV0ID0gUFRSX0VSUihwd20pOwotCQlpZiAo cmV0ICE9IC1FUFJPQkVfREVGRVIpCi0JCQlkZXZfZXJyKGRldiwgInVuYWJsZSB0byByZXF1ZXN0 IFBXTVxuIik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcHdtX2dldF9hcmdzKHB3bSwgJnBhcmdz KTsKLQlpZiAoIXBhcmdzLnBlcmlvZCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJpbnZhbGlk IFBXTSBwZXJpb2RcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKgotCSAqIEZJWE1F OiBwd21fYXBwbHlfYXJncygpIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gc3dpdGNoaW5nIHRvCi0J ICogdGhlIGF0b21pYyBQV00gQVBJLgotCSAqLwotCXB3bV9hcHBseV9hcmdzKHB3bSk7Ci0JcmV0 ID0gcHdtX2NvbmZpZyhwd20sIHBhcmdzLnBlcmlvZCwgcGFyZ3MucGVyaW9kKTsKLQlpZiAocmV0 IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCS8qCi0JICogd2UgY2FuIG5vdyBzdGFydCB0aGUgRlBH QSBhbmQgcG9wdWxhdGUgdGhlIHBlcmlwaGVyYWxzLgotCSAqLwotCXB3bV9lbmFibGUocHdtKTsK LQl0c19uYnVzLT5wd20gPSBwd207Ci0KLQkvKgotCSAqIGxldCB0aGUgY2hpbGQgbm9kZXMgcmV0 cmlldmUgdGhpcyBpbnN0YW5jZSBvZiB0aGUgdHMtbmJ1cy4KLQkgKi8KLQlkZXZfc2V0X2RydmRh dGEoZGV2LCB0c19uYnVzKTsKLQotCXJldCA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKGRldi0+b2Zf bm9kZSwgTlVMTCwgTlVMTCwgZGV2KTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQot CWRldl9pbmZvKGRldiwgImluaXRpYWxpemVkXG4iKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0 aWMgaW50IHRzX25idXNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0J c3RydWN0IHRzX25idXMgKnRzX25idXMgPSBkZXZfZ2V0X2RydmRhdGEoJnBkZXYtPmRldik7Ci0K LQkvKiBzaHV0ZG93biB0aGUgRlBHQSAqLwotCW11dGV4X2xvY2soJnRzX25idXMtPmxvY2spOwot CXB3bV9kaXNhYmxlKHRzX25idXMtPnB3bSk7Ci0JbXV0ZXhfdW5sb2NrKCZ0c19uYnVzLT5sb2Nr KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0 c19uYnVzX29mX21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJ0ZWNobm9sb2dpYyx0cy1u YnVzIiwgfSwKLQl7IH0sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdHNfbmJ1c19vZl9t YXRjaCk7Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHRzX25idXNfZHJpdmVyID0g ewotCS5wcm9iZQkJPSB0c19uYnVzX3Byb2JlLAotCS5yZW1vdmUJCT0gdHNfbmJ1c19yZW1vdmUs Ci0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInRzX25idXMiLAotCQkub2ZfbWF0Y2hfdGFibGUg PSB0c19uYnVzX29mX21hdGNoLAotCX0sCi19OwotCi1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHRz X25idXNfZHJpdmVyKTsKLQotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTp0c19uYnVzIik7Ci1NT0RV TEVfQVVUSE9SKCJTZWJhc3RpZW4gQm91cmRlbGluIDxzZWJhc3RpZW4uYm91cmRlbGluQHNhdm9p cmZhaXJlbGludXguY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJUZWNobm9sb2dpYyBTeXN0 ZW1zIE5CVVMiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvdHMtbmJ1cy5oIGIvaW5jbHVkZS9saW51eC90cy1uYnVzLmgKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDViZDRjODIyZjdjZi4uMDAwMDAwMDAwMDAwCi0tLSBhL2luY2x1 ZGUvbGludXgvdHMtbmJ1cy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLyoKLSAq IENvcHlyaWdodCAoYykgMjAxNiAtIFNhdm9pci1mYWlyZSBMaW51eAotICogQXV0aG9yOiBTZWJh c3RpZW4gQm91cmRlbGluIDxzZWJhc3RpZW4uYm91cmRlbGluQHNhdm9pcmZhaXJlbGludXguY29t PgotICoKLSAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSB2ZXJzaW9uIDIuIFRoaXMgcHJvZ3JhbSBpcyBs aWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55Ci0gKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hl dGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKi8KLQotI2lmbmRlZiBfVFNfTkJVU19ICi0jZGVm aW5lIF9UU19OQlVTX0gKLQotc3RydWN0IHRzX25idXM7Ci0KLWV4dGVybiBpbnQgdHNfbmJ1c19y ZWFkKHN0cnVjdCB0c19uYnVzICp0c19uYnVzLCB1OCBhZHIsIHUxNiAqdmFsKTsKLWV4dGVybiBp bnQgdHNfbmJ1c193cml0ZShzdHJ1Y3QgdHNfbmJ1cyAqdHNfbmJ1cywgdTggYWRyLCB1MTYgdmFs KTsKLQotI2VuZGlmIC8qIF9UU19OQlVTX0ggKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK