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 67FA3C27C75 for ; Tue, 11 Jun 2024 16:52:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=tHwlPZzjZMb3CIl3ncJ2rk1SH56QJtnDJAg6Am4UQN0=; b=GvF7rsSVfqdmS0 o5xF1Pd0Cmk7RddM92U/hH11d7k6t4Rdi88tWc8gnR1Jkf/0DxaFXf6UKrswPMGojeZYjNhqBgSQs CW0Z1RwQ5Z+FemBvAkhR8NFrUwdE6Xnb+fpvN0R6uJ+7P85fONhF1U54O549Mj1pZSMuLw7BC+SQ9 15f2a1Ueeky04LmV4wYN1koPMJTs/aPHDxH9SqmA+46QxNfdlmwzAPM1VTKlisVSCOtdXCwnTohvb VUBkXMudJluq/Oyoj9a+zKBSkgAouXu2ILgZQkQzSvxBlJGjPKxfofaEjOn6Gp9lQ0Cz+P0/aSEP0 mfcY3KuB6kpjxsaOMs3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sH4ja-00000009ZQy-1vfe; Tue, 11 Jun 2024 16:52:34 +0000 Received: from mail-qv1-xf2c.google.com ([2607:f8b0:4864:20::f2c]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sH4jS-00000009ZMd-2ssr for linux-amlogic@lists.infradead.org; Tue, 11 Jun 2024 16:52:31 +0000 Received: by mail-qv1-xf2c.google.com with SMTP id 6a1803df08f44-6b06bdbf9fdso7734226d6.0 for ; Tue, 11 Jun 2024 09:52:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1718124742; x=1718729542; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=yekUCk10zk+HE2YIl2d9Yyk2apenK6ihXk9wEFyZLB0=; b=2zBGQeVyBdJ/9+chmYOqlXnkiW7R107ZLIUjhdZlypEk4s4/oFAR3Vb0NzIL7/3Xw6 UBZ8+8f9cpq0dMpN7hVn7l8nB6DBdlE3W/GAkPwbRFHFZ8WgIlbc8tlFkqaV8VTCD6wM HJknB4Uyxa0AvxZuMX00AZ4OVjIqIwc1SycFtSC8UCO7Aqma5bOasAVe7KsWQFIkTir+ RQ7zehy+bYTJn6+aLxJ4naTBPK72XmAUCSLVVD1wphpD+yhdq4LrZItx14QEOMIh8Hus oNcdszzpeQsOQZoBk7It/++pr14MW73B8h+ifDZh0UWiZXlThcGUgGkwVNu8IAWsBNI2 P9hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718124742; x=1718729542; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yekUCk10zk+HE2YIl2d9Yyk2apenK6ihXk9wEFyZLB0=; b=klzlE48rErsV1EEctObXpKubXXXCV3BEqmgWV4LdLYJUmZWad0Qs3WoE+yCjVvg/Sk 2aW9UZA50beSnBCo6KwS+mrRVLtecbGsR0z96I9GdFwwoR+w2/fNpFYI5NSj+h4W3Frt 4gLJsvnkeb4rBAYTzpUt3jUW/vsPFWkZq2alYM3Rc0dqSjV1RjEjyfGotapuGqsxCNlT k54yK7DDQqxhidSzvvOuOCQcuRCGctLSpnsvbXWxnU383QoZbEaNZapr62rWleK1ZEmo 0wHvKEEBRvhcB8kT0wEOCpwrKpBfzGi6dP5bQ5NCilrjPDx9dIkEu/EpMkbnHRUPYYCC M5DA== X-Forwarded-Encrypted: i=1; AJvYcCUF2c6YPwWEMHGTKiLrwWyxtzVJbYKT/xKRBaZXlY6pmBR7EOGRsBz4pQxRsKvRzXPlwyOgTJYRRIKidWZ1lfdWpJiVMCfAWgQWQ7h0lBw/f6k= X-Gm-Message-State: AOJu0Yy+2wXPm5ELfAmblOBuRmskImbnFdRrPvyIr41BxZTDc/zCalXT GID9dUcgRA1JX9/zGp8fHoIYGyHpZfpmvJ+dhOELiy8hlgicGgDFRPTbmGGvGnM= X-Google-Smtp-Source: AGHT+IEK02/Y5tguqi1RkXMzMQjj5wd0lRXZ6VmQNH/VH1KpwmTv/Qs3zNXbzaQ3LPhZ7qfj+cki9g== X-Received: by 2002:a05:6214:5248:b0:6b0:7d9a:79fe with SMTP id 6a1803df08f44-6b07d9a7fc7mr64780726d6.35.1718124742093; Tue, 11 Jun 2024 09:52:22 -0700 (PDT) Received: from megalith.oryx-coho.ts.net (d24-150-219-207.home.cgocable.net. [24.150.219.207]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6b071aaa3a6sm33815806d6.47.2024.06.11.09.52.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jun 2024 09:52:21 -0700 (PDT) From: Trevor Gamblin To: Lucas Stankus , Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Dmitry Rokosov , Cosmin Tanislav , Chen-Yu Tsai , Hans de Goede , Ray Jui , Scott Branden , Broadcom internal kernel review list , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Saravanan Sekar , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , =?UTF-8?q?Nuno=20S=C3=A1?= , Linus Walleij , Jean-Baptiste Maneyrol , Crt Mori Cc: Trevor Gamblin , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-amlogic@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com Subject: [RESEND][PATCH] iio: simplify with regmap_set_bits(), regmap_clear_bits() Date: Tue, 11 Jun 2024 12:52:06 -0400 Message-ID: <20240611165214.4091591-1-tgamblin@baylibre.com> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240611_095226_988721_8B2078EC X-CRM114-Status: GOOD ( 17.12 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org U2ltcGxpZnkgdGhlIHdheSByZWdtYXAgaXMgYWNjZXNzZWQgaW4gaWlvIGRyaXZlcnMuCgpJbnN0 ZWFkIG9mIHVzaW5nIHJlZ21hcF91cGRhdGVfYml0cygpIGFuZCBwYXNzaW5nIHRoZSBtYXNrIHR3 aWNlLCB1c2UKcmVnbWFwX3NldF9iaXRzKCkuCgpJbnN0ZWFkIG9mIHVzaW5nIHJlZ21hcF91cGRh dGVfYml0cygpIGFuZCBwYXNzaW5nIHZhbCA9IDAsIHVzZQpyZWdtYXBfY2xlYXJfYml0cygpLgoK U3VnZ2VzdGVkLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQGJheWxpYnJl LmNvbT4KU2lnbmVkLW9mZi1ieTogVHJldm9yIEdhbWJsaW4gPHRnYW1ibGluQGJheWxpYnJlLmNv bT4KLS0tCkNDIGxpc3QgZ290IHN1cHByZXNzZWQgb24gZmlyc3Qgc3VibWlzc2lvbiwgc28gcmVz ZW5kaW5nLiBTb3JyeSBhYm91dAp0aGF0LgoKIGRyaXZlcnMvaWlvL2FjY2VsL2FkeGwzMTNfY29y ZS5jICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9paW8vYWNjZWwvYWR4bDMxM19zcGku YyAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2lpby9hY2NlbC9meGxzODk2MmFmLWNv cmUuYyAgICAgICAgICAgfCAgMTggKystLQogZHJpdmVycy9paW8vYWNjZWwva3hzZDkuYyAgICAg ICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2lpby9hY2NlbC9tc2EzMTEuYyAgICAg ICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvaWlvL2FkYy9hZDQxMzAuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9paW8vYWRjL2F4cDIweF9hZGMuYyAgICAg ICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2lpby9hZGMvYXhwMjg4X2FkYy5jICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvaWlvL2FkYy9iY21faXByb2NfYWRjLmMgICAg ICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9paW8vYWRjL2JlcmxpbjItYWRjLmMgICAgICAg ICAgICAgICAgIHwgIDI0ICsrLS0tCiBkcml2ZXJzL2lpby9hZGMvY3BjYXAtYWRjLmMgICAgICAg ICAgICAgICAgICAgfCAgNDQgKysrLS0tLS0KIGRyaXZlcnMvaWlvL2FkYy9mc2wtaW14MjUtZ2Nx LmMgICAgICAgICAgICAgICB8ICAxNiArKy0KIGRyaXZlcnMvaWlvL2FkYy9pbmEyeHgtYWRjLmMg ICAgICAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9paW8vYWRjL2ludGVsX21yZmxkX2Fk Yy5jICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2lpby9hZGMvbWVzb25fc2FyYWRjLmMg ICAgICAgICAgICAgICAgfCAxMDEgKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2lpby9hZGMv bXAyNjI5X2FkYy5jICAgICAgICAgICAgICAgICAgfCAgMTkgKystLQogZHJpdmVycy9paW8vYWRj L3Fjb20tc3BtaS1ycmFkYy5jICAgICAgICAgICAgIHwgIDUwICsrKysrLS0tLQogZHJpdmVycy9p aW8vYWRjL3JuNXQ2MTgtYWRjLmMgICAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2lp by9hZGMvc2MyN3h4X2FkYy5jICAgICAgICAgICAgICAgICAgfCAgNDEgKysrKy0tLQogZHJpdmVy cy9paW8vYWRjL3N0bTMyLWRmc2RtLWFkYy5jICAgICAgICAgICAgIHwgIDI5ICsrKy0tCiBkcml2 ZXJzL2lpby9kYWMvbHRjMjY4OC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRyaXZl cnMvaWlvL2RhYy9zdG0zMi1kYWMtY29yZS5jICAgICAgICAgICAgICB8ICAgNSArLQogZHJpdmVy cy9paW8vZ3lyby9ibWcxNjBfY29yZS5jICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJz L2lpby9neXJvL21wdTMwNTAtY29yZS5jICAgICAgICAgICAgICAgfCAgMzMgKysrLS0tCiBkcml2 ZXJzL2lpby9oZWFsdGgvYWZlNDQwMy5jICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIGRyaXZl cnMvaWlvL2hlYWx0aC9hZmU0NDA0LmMgICAgICAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVy cy9paW8vaGVhbHRoL21heDMwMTAwLmMgICAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJz L2lpby9oZWFsdGgvbWF4MzAxMDIuYyAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIC4uLi9pbXUv aW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9idWZmZXIuYyAgICB8ICAxNCArKy0KIC4uLi9paW8v aW11L2ludl9pY200MjYwMC9pbnZfaWNtNDI2MDBfY29yZS5jICB8ICAgOSArLQogLi4uL2lpby9p bXUvaW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9pMmMuYyAgIHwgICA0ICstCiAuLi4vaWlvL2lt dS9pbnZfaWNtNDI2MDAvaW52X2ljbTQyNjAwX3NwaS5jICAgfCAgIDQgKy0KIGRyaXZlcnMvaWlv L2xpZ2h0L2FkdXgxMDIwLmMgICAgICAgICAgICAgICAgICB8ICAxMyArKy0KIGRyaXZlcnMvaWlv L2xpZ2h0L2lxczYyMS1hbHMuYyAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9paW8v bGlnaHQvaXNsMjkwMTguYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2lpby9s aWdodC9zdF91dmlzMjVfY29yZS5jICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvaWlvL2xp Z2h0L3ZlbWw2MDMwLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9paW8vbWFn bmV0b21ldGVyL2FrODk3NC5jICAgICAgICAgICAgIHwgIDExICstCiBkcml2ZXJzL2lpby9tYWdu ZXRvbWV0ZXIvbW1jMzUyNDAuYyAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvaWlvL3ByZXNz dXJlL2JtcDI4MC1jb3JlLmMgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9paW8vcHJveGlt aXR5L3N4OTMyNC5jICAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2lpby9wcm94aW1p dHkvc3g5MzYwLmMgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvaWlvL3Byb3hpbWl0 eS9zeDk1MDAuYyAgICAgICAgICAgICAgICB8ICAxMiArLS0KIGRyaXZlcnMvaWlvL3Byb3hpbWl0 eS9zeF9jb21tb24uYyAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9paW8vdGVtcGVyYXR1 cmUvbWx4OTA2MzIuYyAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2lpby90cmlnZ2VyL3N0 bTMyLXRpbWVyLXRyaWdnZXIuYyAgICAgfCAgMzQgKysrLS0tCiA0NiBmaWxlcyBjaGFuZ2VkLCAy NzMgaW5zZXJ0aW9ucygrKSwgMzUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aWlvL2FjY2VsL2FkeGwzMTNfY29yZS5jIGIvZHJpdmVycy9paW8vYWNjZWwvYWR4bDMxM19jb3Jl LmMKaW5kZXggNGRlMGE0MWJkNjc5Li4xZGFkM2E4ZDBjMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aWlvL2FjY2VsL2FkeGwzMTNfY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2FjY2VsL2FkeGwzMTNf Y29yZS5jCkBAIC0zNjIsOCArMzYyLDggQEAgc3RhdGljIGludCBhZHhsMzEzX3NldHVwKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGFkeGwzMTNfZGF0YSAqZGF0YSwKIAkJCXJldHVybiByZXQ7 CiAKIAkJLyogRW5hYmxlcyBmdWxsIHJlc29sdXRpb24gKi8KLQkJcmV0ID0gcmVnbWFwX3VwZGF0 ZV9iaXRzKGRhdGEtPnJlZ21hcCwgQURYTDMxM19SRUdfREFUQV9GT1JNQVQsCi0JCQkJCSBBRFhM MzEzX0ZVTExfUkVTLCBBRFhMMzEzX0ZVTExfUkVTKTsKKwkJcmV0ID0gcmVnbWFwX3NldF9iaXRz KGRhdGEtPnJlZ21hcCwgQURYTDMxM19SRUdfREFUQV9GT1JNQVQsCisJCQkJICAgICAgQURYTDMx M19GVUxMX1JFUyk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvaWlvL2FjY2VsL2FkeGwzMTNfc3BpLmMgYi9kcml2ZXJzL2lpby9hY2NlbC9hZHhs MzEzX3NwaS5jCmluZGV4IGI3Y2MxNTY3OGEyYi4uOTdlYmU1NWFjYjJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2lpby9hY2NlbC9hZHhsMzEzX3NwaS5jCisrKyBiL2RyaXZlcnMvaWlvL2FjY2VsL2Fk eGwzMTNfc3BpLmMKQEAgLTU3LDggKzU3LDggQEAgc3RhdGljIGludCBhZHhsMzEzX3NwaV9zZXR1 cChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCkKIAkJCXJldHVybiBy ZXQ7CiAJfQogCi0JcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIEFEWEwzMTNfUkVH X1BPV0VSX0NUTCwKLQkJCQkgIEFEWEwzMTNfSTJDX0RJU0FCTEUsIEFEWEwzMTNfSTJDX0RJU0FC TEUpOworCXJldHVybiByZWdtYXBfc2V0X2JpdHMocmVnbWFwLCBBRFhMMzEzX1JFR19QT1dFUl9D VEwsCisJCQkgICAgICAgQURYTDMxM19JMkNfRElTQUJMRSk7CiB9CiAKIHN0YXRpYyBpbnQgYWR4 bDMxM19zcGlfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaWlvL2FjY2VsL2Z4bHM4OTYyYWYtY29yZS5jIGIvZHJpdmVycy9paW8vYWNjZWwvZnhsczg5 NjJhZi1jb3JlLmMKaW5kZXggNGZiYzAxYmRhNjJlLi5kMjVlMzE2MTM0MTMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaWlvL2FjY2VsL2Z4bHM4OTYyYWYtY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2Fj Y2VsL2Z4bHM4OTYyYWYtY29yZS5jCkBAIC0yMjgsOCArMjI4LDggQEAgc3RhdGljIGludCBmeGxz ODk2MmFmX3Bvd2VyX29mZihzdHJ1Y3QgZnhsczg5NjJhZl9kYXRhICpkYXRhKQogCiBzdGF0aWMg aW50IGZ4bHM4OTYyYWZfc3RhbmRieShzdHJ1Y3QgZnhsczg5NjJhZl9kYXRhICpkYXRhKQogewot CXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBGWExTODk2MkFGX1NFTlNf Q09ORklHMSwKLQkJCQkgIEZYTFM4OTYyQUZfU0VOU19DT05GSUcxX0FDVElWRSwgMCk7CisJcmV0 dXJuIHJlZ21hcF9jbGVhcl9iaXRzKGRhdGEtPnJlZ21hcCwgRlhMUzg5NjJBRl9TRU5TX0NPTkZJ RzEsCisJCQkJIEZYTFM4OTYyQUZfU0VOU19DT05GSUcxX0FDVElWRSk7CiB9CiAKIHN0YXRpYyBp bnQgZnhsczg5NjJhZl9hY3RpdmUoc3RydWN0IGZ4bHM4OTYyYWZfZGF0YSAqZGF0YSkKQEAgLTc4 NSw5ICs3ODUsOCBAQCBzdGF0aWMgaW50IGZ4bHM4OTYyYWZfcmVzZXQoc3RydWN0IGZ4bHM4OTYy YWZfZGF0YSAqZGF0YSkKIAl1bnNpZ25lZCBpbnQgcmVnOwogCWludCByZXQ7CiAKLQlyZXQgPSBy ZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBGWExTODk2MkFGX1NFTlNfQ09ORklHMSwK LQkJCQkgRlhMUzg5NjJBRl9TRU5TX0NPTkZJRzFfUlNULAotCQkJCSBGWExTODk2MkFGX1NFTlNf Q09ORklHMV9SU1QpOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhkYXRhLT5yZWdtYXAsIEZYTFM4 OTYyQUZfU0VOU19DT05GSUcxLAorCQkJICAgICAgRlhMUzg5NjJBRl9TRU5TX0NPTkZJRzFfUlNU KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC04MzAsOSArODI5LDggQEAgc3RhdGlj IGludCBmeGxzODk2MmFmX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19k ZXYpCiAJZnhsczg5NjJhZl9zdGFuZGJ5KGRhdGEpOwogCiAJLyogRW5hYmxlIGJ1ZmZlciBpbnRl cnJ1cHQgKi8KLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBGWExTODk2 MkFGX0lOVF9FTiwKLQkJCQkgRlhMUzg5NjJBRl9JTlRfRU5fQlVGX0VOLAotCQkJCSBGWExTODk2 MkFGX0lOVF9FTl9CVUZfRU4pOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhkYXRhLT5yZWdtYXAs IEZYTFM4OTYyQUZfSU5UX0VOLAorCQkJICAgICAgRlhMUzg5NjJBRl9JTlRfRU5fQlVGX0VOKTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC04NTEsOCArODQ5LDggQEAgc3RhdGljIGlu dCBmeGxzODk2MmFmX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYp CiAJZnhsczg5NjJhZl9zdGFuZGJ5KGRhdGEpOwogCiAJLyogRGlzYWJsZSBidWZmZXIgaW50ZXJy dXB0ICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgRlhMUzg5NjJB Rl9JTlRfRU4sCi0JCQkJIEZYTFM4OTYyQUZfSU5UX0VOX0JVRl9FTiwgMCk7CisJcmV0ID0gcmVn bWFwX2NsZWFyX2JpdHMoZGF0YS0+cmVnbWFwLCBGWExTODk2MkFGX0lOVF9FTiwKKwkJCQlGWExT ODk2MkFGX0lOVF9FTl9CVUZfRU4pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvaWlvL2FjY2VsL2t4c2Q5LmMgYi9kcml2ZXJzL2lpby9hY2NlbC9reHNk OS5jCmluZGV4IGJhOTk2NDlmZTE5NS4uMDNjZTAzMmUwNmZmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2lpby9hY2NlbC9reHNkOS5jCisrKyBiL2RyaXZlcnMvaWlvL2FjY2VsL2t4c2Q5LmMKQEAgLTM3 MCwxMCArMzcwLDggQEAgc3RhdGljIGludCBreHNkOV9wb3dlcl9kb3duKHN0cnVjdCBreHNkOV9z dGF0ZSAqc3QpCiAJICogbWFrZSBzdXJlIHdlIGNvbnNlcnZlIHBvd2VyIGV2ZW4gaWYgdGhlcmUg YXJlIG90aGVycyB1c2VycyBvbiB0aGUKIAkgKiByZWd1bGF0b3JzLgogCSAqLwotCXJldCA9IHJl Z21hcF91cGRhdGVfYml0cyhzdC0+bWFwLAotCQkJCSBLWFNEOV9SRUdfQ1RSTF9CLAotCQkJCSBL WFNEOV9DVFJMX0JfRU5BQkxFLAotCQkJCSAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJfYml0cyhz dC0+bWFwLCBLWFNEOV9SRUdfQ1RSTF9CLAorCQkJCUtYU0Q5X0NUUkxfQl9FTkFCTEUpOwogCWlm IChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FjY2VsL21z YTMxMS5jIGIvZHJpdmVycy9paW8vYWNjZWwvbXNhMzExLmMKaW5kZXggYjhkZGJmZDk4ZjExLi40 MGU2MDVjNTdhZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FjY2VsL21zYTMxMS5jCisrKyBi L2RyaXZlcnMvaWlvL2FjY2VsL21zYTMxMS5jCkBAIC0xMDM0LDEwICsxMDM0LDggQEAgc3RhdGlj IGludCBtc2EzMTFfY2hpcF9pbml0KHN0cnVjdCBtc2EzMTFfcHJpdiAqbXNhMzExKQogCQkJCSAg ICAgImZhaWxlZCB0byB1bm1hcCBtYXAwL21hcDEgaW50ZXJydXB0c1xuIik7CiAKIAkvKiBEaXNh YmxlIGFsbCBheGVzIGJ5IGRlZmF1bHQgKi8KLQllcnIgPSByZWdtYXBfdXBkYXRlX2JpdHMobXNh MzExLT5yZWdzLCBNU0EzMTFfT0RSX1JFRywKLQkJCQkgTVNBMzExX0dFTk1BU0soRl9YX0FYSVNf RElTKSB8Ci0JCQkJIE1TQTMxMV9HRU5NQVNLKEZfWV9BWElTX0RJUykgfAotCQkJCSBNU0EzMTFf R0VOTUFTSyhGX1pfQVhJU19ESVMpLCAwKTsKKwllcnIgPSByZWdtYXBfY2xlYXJfYml0cyhtc2Ez MTEtPnJlZ3MsIE1TQTMxMV9PRFJfUkVHLAorCQkJCU1TQTMxMV9HRU5NQVNLKEZfWF9BWElTX0RJ UykgfCBNU0EzMTFfR0VOTUFTSyhGX1lfQVhJU19ESVMpIHwgTVNBMzExX0dFTk1BU0soRl9aX0FY SVNfRElTKSk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBlcnIsICJj YW4ndCBlbmFibGUgYWxsIGF4ZXNcbiIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMv YWQ0MTMwLmMgYi9kcml2ZXJzL2lpby9hZGMvYWQ0MTMwLmMKaW5kZXggYWFmMWZiMGFjNDQ3Li5l MTM0ZDY0OTc4MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9hZDQxMzAuYworKysgYi9k cml2ZXJzL2lpby9hZGMvYWQ0MTMwLmMKQEAgLTE4ODMsOCArMTg4Myw4IEBAIHN0YXRpYyBpbnQg YWQ0MTMwX3NldHVwKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhzdC0+cmVnbWFwLCBBRDQxMzBf RklGT19DT05UUk9MX1JFRywKLQkJCQkgQUQ0MTMwX0ZJRk9fQ09OVFJPTF9IRUFERVJfTUFTSywg MCk7CisJcmV0ID0gcmVnbWFwX2NsZWFyX2JpdHMoc3QtPnJlZ21hcCwgQUQ0MTMwX0ZJRk9fQ09O VFJPTF9SRUcsCisJCQkJQUQ0MTMwX0ZJRk9fQ09OVFJPTF9IRUFERVJfTUFTSyk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2F4cDIweF9h ZGMuYyBiL2RyaXZlcnMvaWlvL2FkYy9heHAyMHhfYWRjLmMKaW5kZXggZDZjNTFiMGY0OGUzLi4w MGMxYTAxY2FjNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9heHAyMHhfYWRjLmMKKysr IGIvZHJpdmVycy9paW8vYWRjL2F4cDIweF9hZGMuYwpAQCAtNzEyLDkgKzcxMiw4IEBAIHN0YXRp YyBpbnQgYXhwMjB4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmVnbWFw X3dyaXRlKGluZm8tPnJlZ21hcCwgQVhQMjBYX0FEQ19FTjEsIGluZm8tPmRhdGEtPmFkY19lbjFf bWFzayk7CiAKIAlpZiAoaW5mby0+ZGF0YS0+YWRjX2VuMl9tYXNrKQotCQlyZWdtYXBfdXBkYXRl X2JpdHMoaW5mby0+cmVnbWFwLCBBWFAyMFhfQURDX0VOMiwKLQkJCQkgICBpbmZvLT5kYXRhLT5h ZGNfZW4yX21hc2ssCi0JCQkJICAgaW5mby0+ZGF0YS0+YWRjX2VuMl9tYXNrKTsKKwkJcmVnbWFw X3NldF9iaXRzKGluZm8tPnJlZ21hcCwgQVhQMjBYX0FEQ19FTjIsCisJCQkJaW5mby0+ZGF0YS0+ YWRjX2VuMl9tYXNrKTsKIAogCS8qIENvbmZpZ3VyZSBBRENzIHJhdGUgKi8KIAlpbmZvLT5kYXRh LT5hZGNfcmF0ZShpbmZvLCAxMDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2F4cDI4 OF9hZGMuYyBiL2RyaXZlcnMvaWlvL2FkYy9heHAyODhfYWRjLmMKaW5kZXggNDlmZmYxY2FiZDBk Li5mMTM1Y2YyMzYyZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9heHAyODhfYWRjLmMK KysrIGIvZHJpdmVycy9paW8vYWRjL2F4cDI4OF9hZGMuYwpAQCAtMjQ3LDggKzI0Nyw4IEBAIHN0 YXRpYyBpbnQgYXhwMjg4X2FkY19pbml0aWFsaXplKHN0cnVjdCBheHAyODhfYWRjX2luZm8gKmlu Zm8pCiAJCXJldHVybiByZXQ7CiAKIAkvKiBUdXJuIG9uIHRoZSBBREMgZm9yIGFsbCBjaGFubmVs cyBleGNlcHQgVFMsIGxlYXZlIFRTIGFzIGlzICovCi0JcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0 cyhpbmZvLT5yZWdtYXAsIEFYUDIwWF9BRENfRU4xLAotCQkJCSAgQVhQMjg4X0FEQ19FTl9NQVNL LCBBWFAyODhfQURDX0VOX01BU0spOworCXJldHVybiByZWdtYXBfc2V0X2JpdHMoaW5mby0+cmVn bWFwLCBBWFAyMFhfQURDX0VOMSwKKwkJCSAgICAgICBBWFAyODhfQURDX0VOX01BU0spOwogfQog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGlpb19pbmZvIGF4cDI4OF9hZGNfaWlvX2luZm8gPSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvYmNtX2lwcm9jX2FkYy5jIGIvZHJpdmVycy9paW8v YWRjL2JjbV9pcHJvY19hZGMuYwppbmRleCA1YmM1MTRiZDVlYmMuLjZiYzE0OWM1MTQxNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9paW8vYWRjL2JjbV9pcHJvY19hZGMuYworKysgYi9kcml2ZXJzL2lp by9hZGMvYmNtX2lwcm9jX2FkYy5jCkBAIC0zNTcsOCArMzU3LDggQEAgc3RhdGljIGludCBpcHJv Y19hZGNfZW5hYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAJaW50IHJldDsKIAogCS8q IFNldCBpX2FtdXggPSAzYicwMDAsIHNlbGVjdCBjaGFubmVsIDAgKi8KLQlyZXQgPSByZWdtYXBf dXBkYXRlX2JpdHMoYWRjX3ByaXYtPnJlZ21hcCwgSVBST0NfQU5BTE9HX0NPTlRST0wsCi0JCQkJ SVBST0NfQURDX0NIQU5ORUxfU0VMX01BU0ssIDApOworCXJldCA9IHJlZ21hcF9jbGVhcl9iaXRz KGFkY19wcml2LT5yZWdtYXAsIElQUk9DX0FOQUxPR19DT05UUk9MLAorCQkJCUlQUk9DX0FEQ19D SEFOTkVMX1NFTF9NQVNLKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoJmluZGlvX2Rldi0+ZGV2 LAogCQkJImZhaWxlZCB0byB3cml0ZSBJUFJPQ19BTkFMT0dfQ09OVFJPTCAlZFxuIiwgcmV0KTsK QEAgLTU0Myw4ICs1NDMsOCBAQCBzdGF0aWMgaW50IGlwcm9jX2FkY19wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChhZGNfcHJpdi0+aXJxbm8gPCAwKQogCQlyZXR1cm4g YWRjX3ByaXYtPmlycW5vOwogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGFkY19wcml2LT5y ZWdtYXAsIElQUk9DX1JFR0NUTDIsCi0JCQkJSVBST0NfQURDX0FVWElOX1NDQU5fRU5BLCAwKTsK KwlyZXQgPSByZWdtYXBfY2xlYXJfYml0cyhhZGNfcHJpdi0+cmVnbWFwLCBJUFJPQ19SRUdDVEwy LAorCQkJCUlQUk9DX0FEQ19BVVhJTl9TQ0FOX0VOQSk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gd3JpdGUgSVBST0NfUkVHQ1RMMiAlZFxuIiwgcmV0KTsK IAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9iZXJsaW4yLWFkYy5j IGIvZHJpdmVycy9paW8vYWRjL2JlcmxpbjItYWRjLmMKaW5kZXggYTRlN2M3ZWZmNWFjLi40Y2Rk ZGM2ZTM2ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9iZXJsaW4yLWFkYy5jCisrKyBi L2RyaXZlcnMvaWlvL2FkYy9iZXJsaW4yLWFkYy5jCkBAIC0xMjksOCArMTI5LDggQEAgc3RhdGlj IGludCBiZXJsaW4yX2FkY19yZWFkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsIGludCBjaGFu bmVsKQogCQkJCQkgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAKIAkvKiBEaXNhYmxl IHRoZSBpbnRlcnJ1cHRzICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgQkVS TElOMl9TTV9BRENfU1RBVFVTLAotCQkJICAgQkVSTElOMl9TTV9BRENfU1RBVFVTX0lOVF9FTihj aGFubmVsKSwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBCRVJMSU4yX1NN X0FEQ19TVEFUVVMsCisJCQkgIEJFUkxJTjJfU01fQURDX1NUQVRVU19JTlRfRU4oY2hhbm5lbCkp OwogCiAJaWYgKHJldCA9PSAwKQogCQlyZXQgPSAtRVRJTUVET1VUOwpAQCAtMTM5LDggKzEzOSw4 IEBAIHN0YXRpYyBpbnQgYmVybGluMl9hZGNfcmVhZChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 LCBpbnQgY2hhbm5lbCkKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZWdtYXBfdXBkYXRlX2JpdHMo cHJpdi0+cmVnbWFwLCBCRVJMSU4yX1NNX0NUUkwsCi0JCQkgICBCRVJMSU4yX1NNX0NUUkxfQURD X1NUQVJULCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5yZWdtYXAsIEJFUkxJTjJfU01f Q1RSTCwKKwkJCSAgQkVSTElOMl9TTV9DVFJMX0FEQ19TVEFSVCk7CiAKIAlkYXRhID0gcHJpdi0+ ZGF0YTsKIAlwcml2LT5kYXRhX2F2YWlsYWJsZSA9IGZhbHNlOwpAQCAtMTgwLDggKzE4MCw4IEBA IHN0YXRpYyBpbnQgYmVybGluMl9hZGNfdHNlbl9yZWFkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19k ZXYpCiAJCQkJCSAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsKIAogCS8qIERpc2FibGUg aW50ZXJydXB0cyAqLwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIEJFUkxJTjJf U01fVFNFTl9TVEFUVVMsCi0JCQkgICBCRVJMSU4yX1NNX1RTRU5fU1RBVFVTX0lOVF9FTiwgMCk7 CisJcmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBCRVJMSU4yX1NNX1RTRU5fU1RBVFVT LAorCQkJICBCRVJMSU4yX1NNX1RTRU5fU1RBVFVTX0lOVF9FTik7CiAKIAlpZiAocmV0ID09IDAp CiAJCXJldCA9IC1FVElNRURPVVQ7CkBAIC0xOTAsOCArMTkwLDggQEAgc3RhdGljIGludCBiZXJs aW4yX2FkY190c2VuX3JlYWQoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAkJcmV0dXJuIHJl dDsKIAl9CiAKLQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBCRVJMSU4yX1NNX1RT RU5fQ1RSTCwKLQkJCSAgIEJFUkxJTjJfU01fVFNFTl9DVFJMX1NUQVJULCAwKTsKKwlyZWdtYXBf Y2xlYXJfYml0cyhwcml2LT5yZWdtYXAsIEJFUkxJTjJfU01fVFNFTl9DVFJMLAorCQkJICBCRVJM SU4yX1NNX1RTRU5fQ1RSTF9TVEFSVCk7CiAKIAlkYXRhID0gcHJpdi0+ZGF0YTsKIAlwcml2LT5k YXRhX2F2YWlsYWJsZSA9IGZhbHNlOwpAQCAtMjg0LDggKzI4NCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaWlvX2luZm8gYmVybGluMl9hZGNfaW5mbyA9IHsKIAogc3RhdGljIHZvaWQgYmVybGlu Ml9hZGNfcG93ZXJkb3duKHZvaWQgKnJlZ21hcCkKIHsKLQlyZWdtYXBfdXBkYXRlX2JpdHMocmVn bWFwLCBCRVJMSU4yX1NNX0NUUkwsCi0JCQkgICBCRVJMSU4yX1NNX0NUUkxfQURDX1BPV0VSLCAw KTsKKwlyZWdtYXBfY2xlYXJfYml0cyhyZWdtYXAsIEJFUkxJTjJfU01fQ1RSTCwgQkVSTElOMl9T TV9DVFJMX0FEQ19QT1dFUik7CiAKIH0KIApAQCAtMzM5LDkgKzMzOCw4IEBAIHN0YXRpYyBpbnQg YmVybGluMl9hZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbmRpb19k ZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUoYmVybGluMl9hZGNfY2hhbm5lbHMpOwogCiAJ LyogUG93ZXIgdXAgdGhlIEFEQyAqLwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAs IEJFUkxJTjJfU01fQ1RSTCwKLQkJCSAgIEJFUkxJTjJfU01fQ1RSTF9BRENfUE9XRVIsCi0JCQkg ICBCRVJMSU4yX1NNX0NUUkxfQURDX1BPV0VSKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJpdi0+cmVn bWFwLCBCRVJMSU4yX1NNX0NUUkwsCisJCQlCRVJMSU4yX1NNX0NUUkxfQURDX1BPV0VSKTsKIAog CXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldCgmcGRldi0+ZGV2LCBiZXJsaW4yX2FkY19w b3dlcmRvd24sCiAJCQkJICAgICAgIHByaXYtPnJlZ21hcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2lpby9hZGMvY3BjYXAtYWRjLmMgYi9kcml2ZXJzL2lpby9hZGMvY3BjYXAtYWRjLmMKaW5kZXgg YjZjNGVmNzA0ODRlLi44ZmFiZjc0OGMzNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9j cGNhcC1hZGMuYworKysgYi9kcml2ZXJzL2lpby9hZGMvY3BjYXAtYWRjLmMKQEAgLTM4NSw5ICsz ODUsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY3BjYXBfYWRjX2lycV90aHJlYWQoaW50IGlycSwg dm9pZCAqZGF0YSkKIAlzdHJ1Y3QgY3BjYXBfYWRjICpkZGF0YSA9IGlpb19wcml2KGluZGlvX2Rl dik7CiAJaW50IGVycm9yOwogCi0JZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGRhdGEtPnJl ZywgQ1BDQVBfUkVHX0FEQ0MyLAotCQkJCSAgIENQQ0FQX0JJVF9BRFRSSUdfRElTLAotCQkJCSAg IENQQ0FQX0JJVF9BRFRSSUdfRElTKTsKKwllcnJvciA9IHJlZ21hcF9zZXRfYml0cyhkZGF0YS0+ cmVnLCBDUENBUF9SRUdfQURDQzIsCisJCQkJQ1BDQVBfQklUX0FEVFJJR19ESVMpOwogCWlmIChl cnJvcikKIAkJcmV0dXJuIElSUV9OT05FOwogCkBAIC00MjQsMjMgKzQyMywxNyBAQCBzdGF0aWMg dm9pZCBjcGNhcF9hZGNfc2V0dXBfY2FsaWJyYXRlKHN0cnVjdCBjcGNhcF9hZGMgKmRkYXRhLAog CWlmIChlcnJvcikKIAkJcmV0dXJuOwogCi0JZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGRh dGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MyLAotCQkJCSAgIENQQ0FQX0JJVF9BVE9YX1BTX0ZBQ1RP UiB8Ci0JCQkJICAgQ1BDQVBfQklUX0FEQ19QU19GQUNUT1IxIHwKLQkJCQkgICBDUENBUF9CSVRf QURDX1BTX0ZBQ1RPUjAsCi0JCQkJICAgMCk7CisJZXJyb3IgPSByZWdtYXBfY2xlYXJfYml0cyhk ZGF0YS0+cmVnLCBDUENBUF9SRUdfQURDQzIsCisJCQkJICBDUENBUF9CSVRfQVRPWF9QU19GQUNU T1IgfCBDUENBUF9CSVRfQURDX1BTX0ZBQ1RPUjEgfCBDUENBUF9CSVRfQURDX1BTX0ZBQ1RPUjAp OwogCWlmIChlcnJvcikKIAkJcmV0dXJuOwogCi0JZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMo ZGRhdGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MyLAotCQkJCSAgIENQQ0FQX0JJVF9BRFRSSUdfRElT LAotCQkJCSAgIENQQ0FQX0JJVF9BRFRSSUdfRElTKTsKKwllcnJvciA9IHJlZ21hcF9zZXRfYml0 cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfQURDQzIsCisJCQkJQ1BDQVBfQklUX0FEVFJJR19ESVMp OwogCWlmIChlcnJvcikKIAkJcmV0dXJuOwogCi0JZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMo ZGRhdGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MyLAotCQkJCSAgIENQQ0FQX0JJVF9BU0MsCi0JCQkJ ICAgQ1BDQVBfQklUX0FTQyk7CisJZXJyb3IgPSByZWdtYXBfc2V0X2JpdHMoZGRhdGEtPnJlZywg Q1BDQVBfUkVHX0FEQ0MyLCBDUENBUF9CSVRfQVNDKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybjsK IApAQCAtNDU1LDggKzQ0OCw4IEBAIHN0YXRpYyB2b2lkIGNwY2FwX2FkY19zZXR1cF9jYWxpYnJh dGUoc3RydWN0IGNwY2FwX2FkYyAqZGRhdGEsCiAJCWRldl9lcnIoZGRhdGEtPmRldiwKIAkJCSJU aW1lb3V0IHdhaXRpbmcgZm9yIGNhbGlicmF0aW9uIHRvIGNvbXBsZXRlXG4iKTsKIAotCWVycm9y ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19BRENDMSwKLQkJCQkg ICBDUENBUF9CSVRfQ0FMX01PREUsIDApOworCWVycm9yID0gcmVnbWFwX2NsZWFyX2JpdHMoZGRh dGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MxLAorCQkJCSAgQ1BDQVBfQklUX0NBTF9NT0RFKTsKIAlp ZiAoZXJyb3IpCiAJCXJldHVybjsKIH0KQEAgLTYwMiwyNiArNTk1LDIzIEBAIHN0YXRpYyB2b2lk IGNwY2FwX2FkY19zZXR1cF9iYW5rKHN0cnVjdCBjcGNhcF9hZGMgKmRkYXRhLAogCQlyZXR1cm47 CiAKIAlpZiAocmVxLT50aW1pbmcgPT0gQ1BDQVBfQURDX1RJTUlOR19JTU0pIHsKLQkJZXJyb3Ig PSByZWdtYXBfdXBkYXRlX2JpdHMoZGRhdGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MyLAotCQkJCQkg ICBDUENBUF9CSVRfQURUUklHX0RJUywKLQkJCQkJICAgQ1BDQVBfQklUX0FEVFJJR19ESVMpOwor CQllcnJvciA9IHJlZ21hcF9zZXRfYml0cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfQURDQzIsCisJ CQkJCUNQQ0FQX0JJVF9BRFRSSUdfRElTKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuOwogCi0J CWVycm9yID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19BRENDMiwK LQkJCQkJICAgQ1BDQVBfQklUX0FTQywKLQkJCQkJICAgQ1BDQVBfQklUX0FTQyk7CisJCWVycm9y ID0gcmVnbWFwX3NldF9iaXRzKGRkYXRhLT5yZWcsIENQQ0FQX1JFR19BRENDMiwKKwkJCQkJQ1BD QVBfQklUX0FTQyk7CiAJCWlmIChlcnJvcikKIAkJCXJldHVybjsKIAl9IGVsc2UgewotCQllcnJv ciA9IHJlZ21hcF91cGRhdGVfYml0cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfQURDQzIsCi0JCQkJ CSAgIENQQ0FQX0JJVF9BRFRSSUdfT05FU0hPVCwKLQkJCQkJICAgQ1BDQVBfQklUX0FEVFJJR19P TkVTSE9UKTsKKwkJZXJyb3IgPSByZWdtYXBfc2V0X2JpdHMoZGRhdGEtPnJlZywgQ1BDQVBfUkVH X0FEQ0MyLAorCQkJCQlDUENBUF9CSVRfQURUUklHX09ORVNIT1QpOwogCQlpZiAoZXJyb3IpCiAJ CQlyZXR1cm47CiAKLQkJZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGRhdGEtPnJlZywgQ1BD QVBfUkVHX0FEQ0MyLAotCQkJCQkgICBDUENBUF9CSVRfQURUUklHX0RJUywgMCk7CisJCWVycm9y ID0gcmVnbWFwX2NsZWFyX2JpdHMoZGRhdGEtPnJlZywgQ1BDQVBfUkVHX0FEQ0MyLAorCQkJCQkg IENQQ0FQX0JJVF9BRFRSSUdfRElTKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9mc2wtaW14MjUtZ2NxLmMgYi9kcml2ZXJzL2lpby9h ZGMvZnNsLWlteDI1LWdjcS5jCmluZGV4IGI2ODA2OTA2MzFkYi4uYjNmMDM3NTEwZTM1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvZnNsLWlteDI1LWdjcS5jCisrKyBiL2RyaXZlcnMvaWlv L2FkYy9mc2wtaW14MjUtZ2NxLmMKQEAgLTg3LDEzICs4NywxMyBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgbXgyNV9nY3FfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJcmVnbWFwX3JlYWQocHJpdi0+ cmVncywgTVgyNV9BRENRX1NSLCAmc3RhdHMpOwogCiAJaWYgKHN0YXRzICYgTVgyNV9BRENRX1NS X0VPUSkgewotCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVncywgTVgyNV9BRENRX01SLAot CQkJCSAgIE1YMjVfQURDUV9NUl9FT1FfSVJRLCBNWDI1X0FEQ1FfTVJfRU9RX0lSUSk7CisJCXJl Z21hcF9zZXRfYml0cyhwcml2LT5yZWdzLCBNWDI1X0FEQ1FfTVIsCisJCQkJTVgyNV9BRENRX01S X0VPUV9JUlEpOwogCQljb21wbGV0ZSgmcHJpdi0+Y29tcGxldGVkKTsKIAl9CiAKIAkvKiBEaXNh YmxlIGNvbnZlcnNpb24gcXVldWUgcnVuICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJl Z3MsIE1YMjVfQURDUV9DUiwgTVgyNV9BRENRX0NSX0ZRUywgMCk7CisJcmVnbWFwX2NsZWFyX2Jp dHMocHJpdi0+cmVncywgTVgyNV9BRENRX0NSLCBNWDI1X0FEQ1FfQ1JfRlFTKTsKIAogCS8qIEFj a25vd2xlZGdlIGFsbCBwb3NzaWJsZSBpcnFzICovCiAJcmVnbWFwX3dyaXRlKHByaXYtPnJlZ3Ms IE1YMjVfQURDUV9TUiwgTVgyNV9BRENRX1NSX0ZSUiB8CkBAIC0xMTUsMTEgKzExNSwxMCBAQCBz dGF0aWMgaW50IG14MjVfZ2NxX2dldF9yYXdfdmFsdWUoc3RydWN0IGRldmljZSAqZGV2LAogCXJl Z21hcF93cml0ZShwcml2LT5yZWdzLCBNWDI1X0FEQ1FfSVRFTV83XzAsCiAJCSAgICAgTVgyNV9B RENRX0lURU0oMCwgY2hhbi0+Y2hhbm5lbCkpOwogCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYt PnJlZ3MsIE1YMjVfQURDUV9NUiwgTVgyNV9BRENRX01SX0VPUV9JUlEsIDApOworCXJlZ21hcF9j bGVhcl9iaXRzKHByaXYtPnJlZ3MsIE1YMjVfQURDUV9NUiwgTVgyNV9BRENRX01SX0VPUV9JUlEp OwogCiAJLyogVHJpZ2dlciBxdWV1ZSBmb3Igb25lIHJ1biAqLwotCXJlZ21hcF91cGRhdGVfYml0 cyhwcml2LT5yZWdzLCBNWDI1X0FEQ1FfQ1IsIE1YMjVfQURDUV9DUl9GUVMsCi0JCQkgICBNWDI1 X0FEQ1FfQ1JfRlFTKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJpdi0+cmVncywgTVgyNV9BRENRX0NS LCBNWDI1X0FEQ1FfQ1JfRlFTKTsKIAogCXRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25f aW50ZXJydXB0aWJsZV90aW1lb3V0KAogCQkmcHJpdi0+Y29tcGxldGVkLCBNWDI1X0dDUV9USU1F T1VUKTsKQEAgLTI3Miw5ICsyNzEsOCBAQCBzdGF0aWMgaW50IG14MjVfZ2NxX3NldHVwX2NmZ3Mo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkgICBNWDI1X0FEQ1FfQ0ZHX1JFRk5f TUFTSywKIAkJCQkgICByZWZwIHwgcmVmbik7CiAJfQotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2 LT5yZWdzLCBNWDI1X0FEQ1FfQ1IsCi0JCQkgICBNWDI1X0FEQ1FfQ1JfRlJTVCB8IE1YMjVfQURD UV9DUl9RUlNULAotCQkJICAgTVgyNV9BRENRX0NSX0ZSU1QgfCBNWDI1X0FEQ1FfQ1JfUVJTVCk7 CisJcmVnbWFwX3NldF9iaXRzKHByaXYtPnJlZ3MsIE1YMjVfQURDUV9DUiwKKwkJCU1YMjVfQURD UV9DUl9GUlNUIHwgTVgyNV9BRENRX0NSX1FSU1QpOwogCiAJcmVnbWFwX3dyaXRlKHByaXYtPnJl Z3MsIE1YMjVfQURDUV9DUiwKIAkJICAgICBNWDI1X0FEQ1FfQ1JfUERNU0sgfCBNWDI1X0FEQ1Ff Q1JfUVNNX0ZRUyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvaW5hMnh4LWFkYy5jIGIv ZHJpdmVycy9paW8vYWRjL2luYTJ4eC1hZGMuYwppbmRleCA5ZTUyMjA3MzUyZmIuLjcyN2UzOTBi ZDk3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vYWRjL2luYTJ4eC1hZGMuYworKysgYi9kcml2 ZXJzL2lpby9hZGMvaW5hMnh4LWFkYy5jCkBAIC0xMDQ2LDggKzEwNDYsNyBAQCBzdGF0aWMgdm9p ZCBpbmEyeHhfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJaWlvX2RldmljZV91 bnJlZ2lzdGVyKGluZGlvX2Rldik7CiAKIAkvKiBQb3dlcmRvd24gKi8KLQlyZXQgPSByZWdtYXBf dXBkYXRlX2JpdHMoY2hpcC0+cmVnbWFwLCBJTkEyWFhfQ09ORklHLAotCQkJCSBJTkEyWFhfTU9E RV9NQVNLLCAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJfYml0cyhjaGlwLT5yZWdtYXAsIElOQTJY WF9DT05GSUcsIElOQTJYWF9NT0RFX01BU0spOwogCWlmIChyZXQpCiAJCWRldl93YXJuKCZjbGll bnQtPmRldiwgIkZhaWxlZCB0byBwb3dlciBkb3duIGRldmljZSAoJXBlKVxuIiwKIAkJCSBFUlJf UFRSKHJldCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL2ludGVsX21yZmxkX2FkYy5j IGIvZHJpdmVycy9paW8vYWRjL2ludGVsX21yZmxkX2FkYy5jCmluZGV4IGM3ZjQwYWU2ZTYwOC4u MDU5MGExMjZmMzIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvaW50ZWxfbXJmbGRfYWRj LmMKKysrIGIvZHJpdmVycy9paW8vYWRjL2ludGVsX21yZmxkX2FkYy5jCkBAIC04MSw4ICs4MSw4 IEBAIHN0YXRpYyBpbnQgbXJmbGRfYWRjX3NpbmdsZV9jb252KHN0cnVjdCBpaW9fZGV2ICppbmRp b19kZXYsCiAKIAlyZWluaXRfY29tcGxldGlvbigmYWRjLT5jb21wbGV0aW9uKTsKIAotCXJlZ21h cF91cGRhdGVfYml0cyhyZWdtYXAsIEJDT1ZFX01BRENJUlEsIEJDT1ZFX0FEQ0lSUV9BTEwsIDAp OwotCXJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIEJDT1ZFX01JUlFMVkwxLCBCQ09WRV9MVkwx X0FEQywgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMocmVnbWFwLCBCQ09WRV9NQURDSVJRLCBCQ09W RV9BRENJUlFfQUxMKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhyZWdtYXAsIEJDT1ZFX01JUlFMVkwx LCBCQ09WRV9MVkwxX0FEQyk7CiAKIAlyZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQocmVn bWFwLCBCQ09WRV9HUEFEQ1JFUSwgcmVxLAogCQkJCSAgICAgICAhKHJlcSAmIEJDT1ZFX0dQQURD UkVRX0JVU1kpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRjL21lc29uX3NhcmFkYy5jIGIv ZHJpdmVycy9paW8vYWRjL21lc29uX3NhcmFkYy5jCmluZGV4IDEzYjQ3M2Q4YzZjNy4uYzdhMDc4 ZGUxNjc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvbWVzb25fc2FyYWRjLmMKKysrIGIv ZHJpdmVycy9paW8vYWRjL21lc29uX3NhcmFkYy5jCkBAIC01NDYsMzUgKzU0NiwzMSBAQCBzdGF0 aWMgdm9pZCBtZXNvbl9zYXJfYWRjX3N0YXJ0X3NhbXBsZV9lbmdpbmUoc3RydWN0IGlpb19kZXYg KmluZGlvX2RldikKIAogCXJlaW5pdF9jb21wbGV0aW9uKCZwcml2LT5kb25lKTsKIAotCXJlZ21h cF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMCwKLQkJCSAgIE1F U09OX1NBUl9BRENfUkVHMF9GSUZPX0lSUV9FTiwKLQkJCSAgIE1FU09OX1NBUl9BRENfUkVHMF9G SUZPX0lSUV9FTik7CisJcmVnbWFwX3NldF9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FE Q19SRUcwLAorCQkJTUVTT05fU0FSX0FEQ19SRUcwX0ZJRk9fSVJRX0VOKTsKIAotCXJlZ21hcF91 cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMCwKLQkJCSAgIE1FU09O X1NBUl9BRENfUkVHMF9TQU1QTEVfRU5HSU5FX0VOQUJMRSwKLQkJCSAgIE1FU09OX1NBUl9BRENf UkVHMF9TQU1QTEVfRU5HSU5FX0VOQUJMRSk7CisJcmVnbWFwX3NldF9iaXRzKHByaXYtPnJlZ21h cCwgTUVTT05fU0FSX0FEQ19SRUcwLAorCQkJTUVTT05fU0FSX0FEQ19SRUcwX1NBTVBMRV9FTkdJ TkVfRU5BQkxFKTsKIAotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NB Ul9BRENfUkVHMCwKLQkJCSAgIE1FU09OX1NBUl9BRENfUkVHMF9TQU1QTElOR19TVEFSVCwKLQkJ CSAgIE1FU09OX1NBUl9BRENfUkVHMF9TQU1QTElOR19TVEFSVCk7CisJcmVnbWFwX3NldF9iaXRz KHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19SRUcwLAorCQkJTUVTT05fU0FSX0FEQ19SRUcw X1NBTVBMSU5HX1NUQVJUKTsKIH0KIAogc3RhdGljIHZvaWQgbWVzb25fc2FyX2FkY19zdG9wX3Nh bXBsZV9lbmdpbmUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIHsKIAlzdHJ1Y3QgbWVzb25f c2FyX2FkY19wcml2ICpwcml2ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKIAotCXJlZ21hcF91cGRh dGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMCwKLQkJCSAgIE1FU09OX1NB Ul9BRENfUkVHMF9GSUZPX0lSUV9FTiwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVn bWFwLCBNRVNPTl9TQVJfQURDX1JFRzAsCisJCQkgIE1FU09OX1NBUl9BRENfUkVHMF9GSUZPX0lS UV9FTik7CiAKLQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURD X1JFRzAsCi0JCQkgICBNRVNPTl9TQVJfQURDX1JFRzBfU0FNUExJTkdfU1RPUCwKLQkJCSAgIE1F U09OX1NBUl9BRENfUkVHMF9TQU1QTElOR19TVE9QKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJpdi0+ cmVnbWFwLCBNRVNPTl9TQVJfQURDX1JFRzAsCisJCQlNRVNPTl9TQVJfQURDX1JFRzBfU0FNUExJ TkdfU1RPUCk7CiAKIAkvKiB3YWl0IHVudGlsIGFsbCBtb2R1bGVzIGFyZSBzdG9wcGVkICovCiAJ bWVzb25fc2FyX2FkY193YWl0X2J1c3lfY2xlYXIoaW5kaW9fZGV2KTsKIAotCXJlZ21hcF91cGRh dGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMCwKLQkJCSAgIE1FU09OX1NB Ul9BRENfUkVHMF9TQU1QTEVfRU5HSU5FX0VOQUJMRSwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMo cHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX1JFRzAsCisJCQkgIE1FU09OX1NBUl9BRENfUkVH MF9TQU1QTEVfRU5HSU5FX0VOQUJMRSk7CiB9CiAKIHN0YXRpYyBpbnQgbWVzb25fc2FyX2FkY19s b2NrKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCkBAIC01ODYsOSArNTgyLDggQEAgc3RhdGlj IGludCBtZXNvbl9zYXJfYWRjX2xvY2soc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAogCWlm IChwcml2LT5wYXJhbS0+aGFzX2JsMzBfaW50ZWdyYXRpb24pIHsKIAkJLyogcHJldmVudCBCTDMw IGZyb20gdXNpbmcgdGhlIFNBUiBBREMgd2hpbGUgd2UgYXJlIHVzaW5nIGl0ICovCi0JCXJlZ21h cF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfREVMQVksCi0JCQkJICAg TUVTT05fU0FSX0FEQ19ERUxBWV9LRVJORUxfQlVTWSwKLQkJCQkgICBNRVNPTl9TQVJfQURDX0RF TEFZX0tFUk5FTF9CVVNZKTsKKwkJcmVnbWFwX3NldF9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05f U0FSX0FEQ19ERUxBWSwKKwkJCQlNRVNPTl9TQVJfQURDX0RFTEFZX0tFUk5FTF9CVVNZKTsKIAog CQl1ZGVsYXkoMSk7CiAKQEAgLTYxNCw4ICs2MDksOCBAQCBzdGF0aWMgdm9pZCBtZXNvbl9zYXJf YWRjX3VubG9jayhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQogCiAJaWYgKHByaXYtPnBhcmFt LT5oYXNfYmwzMF9pbnRlZ3JhdGlvbikKIAkJLyogYWxsb3cgQkwzMCB0byB1c2UgdGhlIFNBUiBB REMgYWdhaW4gKi8KLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FS X0FEQ19ERUxBWSwKLQkJCQkgICBNRVNPTl9TQVJfQURDX0RFTEFZX0tFUk5FTF9CVVNZLCAwKTsK KwkJcmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX0RFTEFZLAor CQkJCSAgTUVTT05fU0FSX0FEQ19ERUxBWV9LRVJORUxfQlVTWSk7CiAKIAltdXRleF91bmxvY2so JnByaXYtPmxvY2spOwogfQpAQCAtODY5LDE3ICs4NjQsMTYgQEAgc3RhdGljIGludCBtZXNvbl9z YXJfYWRjX2luaXQoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAkgKiBkaXNhYmxlIHRoaXMg Yml0IGFzIHNlZW1zIHRvIGJlIG9ubHkgcmVsZXZhbnQgZm9yIE1lc29uNiAoYmFzZWQKIAkgKiBv biB0aGUgdmVuZG9yIGRyaXZlciksIHdoaWNoIHdlIGRvbid0IHN1cHBvcnQgYXQgdGhlIG1vbWVu dC4KIAkgKi8KLQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURD X1JFRzAsCi0JCQkgICBNRVNPTl9TQVJfQURDX1JFRzBfQURDX1RFTVBfU0VOX1NFTCwgMCk7CisJ cmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX1JFRzAsCisJCQkg IE1FU09OX1NBUl9BRENfUkVHMF9BRENfVEVNUF9TRU5fU0VMKTsKIAogCS8qIGRpc2FibGUgYWxs IGNoYW5uZWxzIGJ5IGRlZmF1bHQgKi8KIAlyZWdtYXBfd3JpdGUocHJpdi0+cmVnbWFwLCBNRVNP Tl9TQVJfQURDX0NIQU5fTElTVCwgMHgwKTsKIAotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5y ZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMywKLQkJCSAgIE1FU09OX1NBUl9BRENfUkVHM19DVFJM X1NBTVBMSU5HX0NMT0NLX1BIQVNFLCAwKTsKLQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVn bWFwLCBNRVNPTl9TQVJfQURDX1JFRzMsCi0JCQkgICBNRVNPTl9TQVJfQURDX1JFRzNfQ05UTF9V U0VfU0NfRExZLAotCQkJICAgTUVTT05fU0FSX0FEQ19SRUczX0NOVExfVVNFX1NDX0RMWSk7CisJ cmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX1JFRzMsCisJCQkg IE1FU09OX1NBUl9BRENfUkVHM19DVFJMX1NBTVBMSU5HX0NMT0NLX1BIQVNFKTsKKwlyZWdtYXBf c2V0X2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX1JFRzMsCisJCQlNRVNPTl9TQVJf QURDX1JFRzNfQ05UTF9VU0VfU0NfRExZKTsKIAogCS8qIGRlbGF5IGJldHdlZW4gdHdvIHNhbXBs ZXMgPSAoMTArMSkgKiAxdVMgKi8KIAlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBN RVNPTl9TQVJfQURDX0RFTEFZLApAQCAtOTE0LDIxICs5MDgsMTcgQEAgc3RhdGljIGludCBtZXNv bl9zYXJfYWRjX2luaXQoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAkJCSAgIE1FU09OX1NB Ul9BRENfQ0hBTl8xMF9TV19DSEFOMV9NVVhfU0VMX01BU0ssCiAJCQkgICByZWd2YWwpOwogCi0J cmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NX LAotCQkJICAgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXX0NIQU4wX1hQX0RSSVZFX1NXLAotCQkJ ICAgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXX0NIQU4wX1hQX0RSSVZFX1NXKTsKKwlyZWdtYXBf c2V0X2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX0NIQU5fMTBfU1csCisJCQlNRVNP Tl9TQVJfQURDX0NIQU5fMTBfU1dfQ0hBTjBfWFBfRFJJVkVfU1cpOwogCi0JcmVnbWFwX3VwZGF0 ZV9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXLAotCQkJICAgTUVT T05fU0FSX0FEQ19DSEFOXzEwX1NXX0NIQU4wX1lQX0RSSVZFX1NXLAotCQkJICAgTUVTT05fU0FS X0FEQ19DSEFOXzEwX1NXX0NIQU4wX1lQX0RSSVZFX1NXKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJp di0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX0NIQU5fMTBfU1csCisJCQlNRVNPTl9TQVJfQURDX0NI QU5fMTBfU1dfQ0hBTjBfWVBfRFJJVkVfU1cpOwogCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYt PnJlZ21hcCwgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXLAotCQkJICAgTUVTT05fU0FSX0FEQ19D SEFOXzEwX1NXX0NIQU4xX1hQX0RSSVZFX1NXLAotCQkJICAgTUVTT05fU0FSX0FEQ19DSEFOXzEw X1NXX0NIQU4xX1hQX0RSSVZFX1NXKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJpdi0+cmVnbWFwLCBN RVNPTl9TQVJfQURDX0NIQU5fMTBfU1csCisJCQlNRVNPTl9TQVJfQURDX0NIQU5fMTBfU1dfQ0hB TjFfWFBfRFJJVkVfU1cpOwogCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgTUVT T05fU0FSX0FEQ19DSEFOXzEwX1NXLAotCQkJICAgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXX0NI QU4xX1lQX0RSSVZFX1NXLAotCQkJICAgTUVTT05fU0FSX0FEQ19DSEFOXzEwX1NXX0NIQU4xX1lQ X0RSSVZFX1NXKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURD X0NIQU5fMTBfU1csCisJCQlNRVNPTl9TQVJfQURDX0NIQU5fMTBfU1dfQ0hBTjFfWVBfRFJJVkVf U1cpOwogCiAJLyoKIAkgKiBzZXQgdXAgdGhlIGlucHV0IGNoYW5uZWwgbXV4ZXMgaW4gTUVTT05f U0FSX0FEQ19BVVhfU1cKQEAgLTk0NCwxMiArOTM0LDEwIEBAIHN0YXRpYyBpbnQgbWVzb25fc2Fy X2FkY19pbml0KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAJcmVnbWFwX3dyaXRlKHByaXYt PnJlZ21hcCwgTUVTT05fU0FSX0FEQ19BVVhfU1csIHJlZ3ZhbCk7CiAKIAlpZiAocHJpdi0+dGVt cGVyYXR1cmVfc2Vuc29yX2NhbGlicmF0ZWQpIHsKLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYt PnJlZ21hcCwgTUVTT05fU0FSX0FEQ19ERUxUQV8xMCwKLQkJCQkgICBNRVNPTl9TQVJfQURDX0RF TFRBXzEwX1RTX1JFVkUxLAotCQkJCSAgIE1FU09OX1NBUl9BRENfREVMVEFfMTBfVFNfUkVWRTEp OwotCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBNRVNPTl9TQVJfQURDX0RFTFRB XzEwLAotCQkJCSAgIE1FU09OX1NBUl9BRENfREVMVEFfMTBfVFNfUkVWRTAsCi0JCQkJICAgTUVT T05fU0FSX0FEQ19ERUxUQV8xMF9UU19SRVZFMCk7CisJCXJlZ21hcF9zZXRfYml0cyhwcml2LT5y ZWdtYXAsIE1FU09OX1NBUl9BRENfREVMVEFfMTAsCisJCQkJTUVTT05fU0FSX0FEQ19ERUxUQV8x MF9UU19SRVZFMSk7CisJCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9B RENfREVMVEFfMTAsCisJCQkJTUVTT05fU0FSX0FEQ19ERUxUQV8xMF9UU19SRVZFMCk7CiAKIAkJ LyoKIAkJICogc2V0IGJpdHMgWzM6MF0gb2YgdGhlIFRTQyAodGVtcGVyYXR1cmUgc2Vuc29yIGNv ZWZmaWNpZW50KQpAQCAtOTc2LDEwICs5NjQsMTAgQEAgc3RhdGljIGludCBtZXNvbl9zYXJfYWRj X2luaXQoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAkJCQkJICAgcmVndmFsKTsKIAkJfQog CX0gZWxzZSB7Ci0JCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9B RENfREVMVEFfMTAsCi0JCQkJICAgTUVTT05fU0FSX0FEQ19ERUxUQV8xMF9UU19SRVZFMSwgMCk7 Ci0JCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfREVMVEFf MTAsCi0JCQkJICAgTUVTT05fU0FSX0FEQ19ERUxUQV8xMF9UU19SRVZFMCwgMCk7CisJCXJlZ21h cF9jbGVhcl9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19ERUxUQV8xMCwKKwkJCQkg IE1FU09OX1NBUl9BRENfREVMVEFfMTBfVFNfUkVWRTEpOworCQlyZWdtYXBfY2xlYXJfYml0cyhw cml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfREVMVEFfMTAsCisJCQkJICBNRVNPTl9TQVJfQURD X0RFTFRBXzEwX1RTX1JFVkUwKTsKIAl9CiAKIAlyZWd2YWwgPSBGSUVMRF9QUkVQKE1FU09OX1NB Ul9BRENfUkVHM19DVFJMX0NPTlRfUklOR19DT1VOVEVSX0VOLApAQCAtMTA2Miw5ICsxMDUwLDgg QEAgc3RhdGljIGludCBtZXNvbl9zYXJfYWRjX2h3X2VuYWJsZShzdHJ1Y3QgaWlvX2RldiAqaW5k aW9fZGV2KQogCiAJbWVzb25fc2FyX2FkY19zZXRfYmFuZGdhcChpbmRpb19kZXYsIHRydWUpOwog Ci0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19SRUczLAot CQkJICAgTUVTT05fU0FSX0FEQ19SRUczX0FEQ19FTiwKLQkJCSAgIE1FU09OX1NBUl9BRENfUkVH M19BRENfRU4pOworCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENf UkVHMywKKwkJCU1FU09OX1NBUl9BRENfUkVHM19BRENfRU4pOwogCiAJdWRlbGF5KDUpOwogCkBA IC0xMDc5LDggKzEwNjYsOCBAQCBzdGF0aWMgaW50IG1lc29uX3Nhcl9hZGNfaHdfZW5hYmxlKHN0 cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAJcmV0dXJuIDA7CiAKIGVycl9hZGNfY2xrOgotCXJl Z21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMywKLQkJCSAg IE1FU09OX1NBUl9BRENfUkVHM19BRENfRU4sIDApOworCXJlZ21hcF9jbGVhcl9iaXRzKHByaXYt PnJlZ21hcCwgTUVTT05fU0FSX0FEQ19SRUczLAorCQkJICBNRVNPTl9TQVJfQURDX1JFRzNfQURD X0VOKTsKIAltZXNvbl9zYXJfYWRjX3NldF9iYW5kZ2FwKGluZGlvX2RldiwgZmFsc2UpOwogCXJl Z3VsYXRvcl9kaXNhYmxlKHByaXYtPnZyZWYpOwogZXJyX3ZyZWY6CkBAIC0xMTA0LDggKzEwOTEs OCBAQCBzdGF0aWMgdm9pZCBtZXNvbl9zYXJfYWRjX2h3X2Rpc2FibGUoc3RydWN0IGlpb19kZXYg KmluZGlvX2RldikKIAogCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5hZGNfY2xrKTsKIAot CXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIE1FU09OX1NBUl9BRENfUkVHMywKLQkJ CSAgIE1FU09OX1NBUl9BRENfUkVHM19BRENfRU4sIDApOworCXJlZ21hcF9jbGVhcl9iaXRzKHBy aXYtPnJlZ21hcCwgTUVTT05fU0FSX0FEQ19SRUczLAorCQkgICAgICAgICAgTUVTT05fU0FSX0FE Q19SRUczX0FEQ19FTik7CiAKIAltZXNvbl9zYXJfYWRjX3NldF9iYW5kZ2FwKGluZGlvX2Rldiwg ZmFsc2UpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvbXAyNjI5X2FkYy5jIGIvZHJp dmVycy9paW8vYWRjL21wMjYyOV9hZGMuYwppbmRleCA3YzY2YzJjZDViZTIuLjVmNjcyNzY1ZDRh MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vYWRjL21wMjYyOV9hZGMuYworKysgYi9kcml2ZXJz L2lpby9hZGMvbXAyNjI5X2FkYy5jCkBAIC0xMzEsOSArMTMxLDggQEAgc3RhdGljIGludCBtcDI2 MjlfYWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW5mby0+ZGV2ID0g ZGV2OwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGluZGlvX2Rldik7CiAKLQlyZXQgPSBy ZWdtYXBfdXBkYXRlX2JpdHMoaW5mby0+cmVnbWFwLCBNUDI2MjlfUkVHX0FEQ19DVFJMLAotCQkJ CU1QMjYyOV9BRENfU1RBUlQgfCBNUDI2MjlfQURDX0NPTlRJTlVPVVMsCi0JCQkJTVAyNjI5X0FE Q19TVEFSVCB8IE1QMjYyOV9BRENfQ09OVElOVU9VUyk7CisJcmV0ID0gcmVnbWFwX3NldF9iaXRz KGluZm8tPnJlZ21hcCwgTVAyNjI5X1JFR19BRENfQ1RSTCwKKwkJCSAgICAgIE1QMjYyOV9BRENf U1RBUlQgfCBNUDI2MjlfQURDX0NPTlRJTlVPVVMpOwogCWlmIChyZXQpIHsKIAkJZGV2X2Vycihk ZXYsICJhZGMgZW5hYmxlIGZhaWw6ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwpAQCAtMTYz LDEwICsxNjIsOSBAQCBzdGF0aWMgaW50IG1wMjYyOV9hZGNfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAlpaW9fbWFwX2FycmF5X3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsKIAog ZmFpbF9kaXNhYmxlOgotCXJlZ21hcF91cGRhdGVfYml0cyhpbmZvLT5yZWdtYXAsIE1QMjYyOV9S RUdfQURDX0NUUkwsCi0JCQkJCSBNUDI2MjlfQURDX0NPTlRJTlVPVVMsIDApOwotCXJlZ21hcF91 cGRhdGVfYml0cyhpbmZvLT5yZWdtYXAsIE1QMjYyOV9SRUdfQURDX0NUUkwsCi0JCQkJCSBNUDI2 MjlfQURDX1NUQVJULCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhpbmZvLT5yZWdtYXAsIE1QMjYy OV9SRUdfQURDX0NUUkwsCisJCQkgIE1QMjYyOV9BRENfQ09OVElOVU9VUyk7CisJcmVnbWFwX2Ns ZWFyX2JpdHMoaW5mby0+cmVnbWFwLCBNUDI2MjlfUkVHX0FEQ19DVFJMLCBNUDI2MjlfQURDX1NU QVJUKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xODAsMTAgKzE3OCw5IEBAIHN0YXRpYyB2b2lk IG1wMjYyOV9hZGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlpaW9f bWFwX2FycmF5X3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsKIAotCXJlZ21hcF91cGRhdGVfYml0cyhp bmZvLT5yZWdtYXAsIE1QMjYyOV9SRUdfQURDX0NUUkwsCi0JCQkJCSBNUDI2MjlfQURDX0NPTlRJ TlVPVVMsIDApOwotCXJlZ21hcF91cGRhdGVfYml0cyhpbmZvLT5yZWdtYXAsIE1QMjYyOV9SRUdf QURDX0NUUkwsCi0JCQkJCSBNUDI2MjlfQURDX1NUQVJULCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0 cyhpbmZvLT5yZWdtYXAsIE1QMjYyOV9SRUdfQURDX0NUUkwsCisJCQkgIE1QMjYyOV9BRENfQ09O VElOVU9VUyk7CisJcmVnbWFwX2NsZWFyX2JpdHMoaW5mby0+cmVnbWFwLCBNUDI2MjlfUkVHX0FE Q19DVFJMLCBNUDI2MjlfQURDX1NUQVJUKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgbXAyNjI5X2FkY19vZl9tYXRjaFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9p aW8vYWRjL3Fjb20tc3BtaS1ycmFkYy5jIGIvZHJpdmVycy9paW8vYWRjL3Fjb20tc3BtaS1ycmFk Yy5jCmluZGV4IDU2YTcxMzc2Njk1NC4uMTQwMmRmNjhkZDUyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2lpby9hZGMvcWNvbS1zcG1pLXJyYWRjLmMKKysrIGIvZHJpdmVycy9paW8vYWRjL3Fjb20tc3Bt aS1ycmFkYy5jCkBAIC0zNTgsMTUgKzM1OCwxNSBAQCBzdGF0aWMgaW50IHJyYWRjX2VuYWJsZV9j b250aW51b3VzX21vZGUoc3RydWN0IHJyYWRjX2NoaXAgKmNoaXApCiAJaW50IHJldDsKIAogCS8q IENsZWFyIGNoYW5uZWwgbG9nICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJl Z21hcCwgY2hpcC0+YmFzZSArIFJSX0FEQ19MT0csCi0JCQkJIFJSX0FEQ19MT0dfQ0xSX0NUUkws IFJSX0FEQ19MT0dfQ0xSX0NUUkwpOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhjaGlwLT5yZWdt YXAsIGNoaXAtPmJhc2UgKyBSUl9BRENfTE9HLAorCQkJICAgICAgUlJfQURDX0xPR19DTFJfQ1RS TCk7CiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2VycihjaGlwLT5kZXYsICJsb2cgY3RybCB1cGRh dGUgdG8gY2xlYXIgZmFpbGVkOiVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJl dCA9IHJlZ21hcF91cGRhdGVfYml0cyhjaGlwLT5yZWdtYXAsIGNoaXAtPmJhc2UgKyBSUl9BRENf TE9HLAotCQkJCSBSUl9BRENfTE9HX0NMUl9DVFJMLCAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJf Yml0cyhjaGlwLT5yZWdtYXAsIGNoaXAtPmJhc2UgKyBSUl9BRENfTE9HLAorCQkJCVJSX0FEQ19M T0dfQ0xSX0NUUkwpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoY2hpcC0+ZGV2LCAibG9n IGN0cmwgdXBkYXRlIHRvIG5vdCBjbGVhciBmYWlsZWQ6JWRcbiIsCiAJCQlyZXQpOwpAQCAtMzc0 LDkgKzM3NCw4IEBAIHN0YXRpYyBpbnQgcnJhZGNfZW5hYmxlX2NvbnRpbnVvdXNfbW9kZShzdHJ1 Y3QgcnJhZGNfY2hpcCAqY2hpcCkKIAl9CiAKIAkvKiBTd2l0Y2ggdG8gY29udGludW91cyBtb2Rl ICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwgY2hpcC0+YmFzZSAr IFJSX0FEQ19DVEwsCi0JCQkJIFJSX0FEQ19DVExfQ09OVElOVU9VU19TRUwsCi0JCQkJIFJSX0FE Q19DVExfQ09OVElOVU9VU19TRUwpOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhjaGlwLT5yZWdt YXAsIGNoaXAtPmJhc2UgKyBSUl9BRENfQ1RMLAorCQkJICAgICAgUlJfQURDX0NUTF9DT05USU5V T1VTX1NFTCk7CiAJaWYgKHJldCA8IDApCiAJCWRldl9lcnIoY2hpcC0+ZGV2LCAiVXBkYXRlIHRv IGNvbnRpbnVvdXMgbW9kZSBmYWlsZWQ6JWRcbiIsCiAJCQlyZXQpOwpAQCAtMzg5LDggKzM4OCw4 IEBAIHN0YXRpYyBpbnQgcnJhZGNfZGlzYWJsZV9jb250aW51b3VzX21vZGUoc3RydWN0IHJyYWRj X2NoaXAgKmNoaXApCiAJaW50IHJldDsKIAogCS8qIFN3aXRjaCB0byBub24gY29udGludW91cyBt b2RlICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwgY2hpcC0+YmFz ZSArIFJSX0FEQ19DVEwsCi0JCQkJIFJSX0FEQ19DVExfQ09OVElOVU9VU19TRUwsIDApOworCXJl dCA9IHJlZ21hcF9jbGVhcl9iaXRzKGNoaXAtPnJlZ21hcCwgY2hpcC0+YmFzZSArIFJSX0FEQ19D VEwsCisJCQkJUlJfQURDX0NUTF9DT05USU5VT1VTX1NFTCk7CiAJaWYgKHJldCA8IDApCiAJCWRl dl9lcnIoY2hpcC0+ZGV2LCAiVXBkYXRlIHRvIG5vbi1jb250aW51b3VzIG1vZGUgZmFpbGVkOiVk XG4iLAogCQkJcmV0KTsKQEAgLTQzNCw4ICs0MzMsOCBAQCBzdGF0aWMgaW50IHJyYWRjX3JlYWRf c3RhdHVzX2luX2NvbnRfbW9kZShzdHJ1Y3QgcnJhZGNfY2hpcCAqY2hpcCwKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwgY2hp cC0+YmFzZSArIGNoYW4tPnRyaWdnZXJfYWRkciwKLQkJCQkgY2hhbi0+dHJpZ2dlcl9tYXNrLCBj aGFuLT50cmlnZ2VyX21hc2spOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhjaGlwLT5yZWdtYXAs IGNoaXAtPmJhc2UgKyBjaGFuLT50cmlnZ2VyX2FkZHIsCisJCQkgICAgICBjaGFuLT50cmlnZ2Vy X21hc2spOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoY2hpcC0+ZGV2LAogCQkJIkZhaWxl ZCB0byBhcHBseSB0cmlnZ2VyIGZvciBjaGFubmVsICclcycgcmV0PSVkXG4iLApAQCAtNDY5LDgg KzQ2OCw4IEBAIHN0YXRpYyBpbnQgcnJhZGNfcmVhZF9zdGF0dXNfaW5fY29udF9tb2RlKHN0cnVj dCBycmFkY19jaGlwICpjaGlwLAogCXJyYWRjX2Rpc2FibGVfY29udGludW91c19tb2RlKGNoaXAp OwogCiBkaXNhYmxlX3RyaWdnZXI6Ci0JcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwg Y2hpcC0+YmFzZSArIGNoYW4tPnRyaWdnZXJfYWRkciwKLQkJCSAgIGNoYW4tPnRyaWdnZXJfbWFz aywgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMoY2hpcC0+cmVnbWFwLCBjaGlwLT5iYXNlICsgY2hh bi0+dHJpZ2dlcl9hZGRyLAorCQkJICBjaGFuLT50cmlnZ2VyX21hc2spOwogCiAJcmV0dXJuIHJl dDsKIH0KQEAgLTQ4MSwxNyArNDgwLDE2IEBAIHN0YXRpYyBpbnQgcnJhZGNfcHJlcGFyZV9iYXR0 X2lkX2NvbnZlcnNpb24oc3RydWN0IHJyYWRjX2NoaXAgKmNoaXAsCiB7CiAJaW50IHJldDsKIAot CXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhjaGlwLT5yZWdtYXAsIGNoaXAtPmJhc2UgKyBSUl9B RENfQkFUVF9JRF9DVFJMLAotCQkJCSBSUl9BRENfQkFUVF9JRF9DVFJMX0NIQU5ORUxfQ09OViwK LQkJCQkgUlJfQURDX0JBVFRfSURfQ1RSTF9DSEFOTkVMX0NPTlYpOworCXJldCA9IHJlZ21hcF9z ZXRfYml0cyhjaGlwLT5yZWdtYXAsIGNoaXAtPmJhc2UgKyBSUl9BRENfQkFUVF9JRF9DVFJMLAor CQkJICAgICAgUlJfQURDX0JBVFRfSURfQ1RSTF9DSEFOTkVMX0NPTlYpOwogCWlmIChyZXQgPCAw KSB7CiAJCWRldl9lcnIoY2hpcC0+ZGV2LCAiRW5hYmxpbmcgQkFUVCBJRCBjaGFubmVsIGZhaWxl ZDolZFxuIiwgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSByZWdtYXBfdXBkYXRl X2JpdHMoY2hpcC0+cmVnbWFwLAotCQkJCSBjaGlwLT5iYXNlICsgUlJfQURDX0JBVFRfSURfVFJJ R0dFUiwKLQkJCQkgUlJfQURDX1RSSUdHRVJfQ1RMLCBSUl9BRENfVFJJR0dFUl9DVEwpOworCXJl dCA9IHJlZ21hcF9zZXRfYml0cyhjaGlwLT5yZWdtYXAsCisJCQkgICAgICBjaGlwLT5iYXNlICsg UlJfQURDX0JBVFRfSURfVFJJR0dFUiwKKwkJCSAgICAgIFJSX0FEQ19UUklHR0VSX0NUTCk7CiAJ aWYgKHJldCA8IDApIHsKIAkJZGV2X2VycihjaGlwLT5kZXYsICJCQVRUX0lEIHRyaWdnZXIgc2V0 IGZhaWxlZDolZFxuIiwgcmV0KTsKIAkJZ290byBvdXRfZGlzYWJsZV9iYXR0X2lkOwpAQCAtNTAw LDEyICs0OTgsMTIgQEAgc3RhdGljIGludCBycmFkY19wcmVwYXJlX2JhdHRfaWRfY29udmVyc2lv bihzdHJ1Y3QgcnJhZGNfY2hpcCAqY2hpcCwKIAlyZXQgPSBycmFkY19yZWFkX3N0YXR1c19pbl9j b250X21vZGUoY2hpcCwgY2hhbl9hZGRyZXNzKTsKIAogCS8qIFJlc2V0IHJlZ2lzdGVycyBiYWNr IHRvIGRlZmF1bHQgdmFsdWVzICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwg Y2hpcC0+YmFzZSArIFJSX0FEQ19CQVRUX0lEX1RSSUdHRVIsCi0JCQkgICBSUl9BRENfVFJJR0dF Ul9DVEwsIDApOworCXJlZ21hcF9jbGVhcl9iaXRzKGNoaXAtPnJlZ21hcCwgY2hpcC0+YmFzZSAr IFJSX0FEQ19CQVRUX0lEX1RSSUdHRVIsCisJCQkgIFJSX0FEQ19UUklHR0VSX0NUTCk7CiAKIG91 dF9kaXNhYmxlX2JhdHRfaWQ6Ci0JcmVnbWFwX3VwZGF0ZV9iaXRzKGNoaXAtPnJlZ21hcCwgY2hp cC0+YmFzZSArIFJSX0FEQ19CQVRUX0lEX0NUUkwsCi0JCQkgICBSUl9BRENfQkFUVF9JRF9DVFJM X0NIQU5ORUxfQ09OViwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMoY2hpcC0+cmVnbWFwLCBjaGlw LT5iYXNlICsgUlJfQURDX0JBVFRfSURfQ1RSTCwKKwkJCSAgUlJfQURDX0JBVFRfSURfQ1RSTF9D SEFOTkVMX0NPTlYpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTk2NSw5ICs5NjMsOSBAQCBzdGF0 aWMgaW50IHJyYWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlpZiAo YmF0dF9pZF9kZWxheSA+PSAwKSB7CiAJCWJhdHRfaWRfZGVsYXkgPSBGSUVMRF9QUkVQKEJBVFRf SURfU0VUVExFX01BU0ssIGJhdHRfaWRfZGVsYXkpOwotCQlyZXQgPSByZWdtYXBfdXBkYXRlX2Jp dHMoY2hpcC0+cmVnbWFwLAotCQkJCQkgY2hpcC0+YmFzZSArIFJSX0FEQ19CQVRUX0lEX0NGRywK LQkJCQkJIGJhdHRfaWRfZGVsYXksIGJhdHRfaWRfZGVsYXkpOworCQlyZXQgPSByZWdtYXBfc2V0 X2JpdHMoY2hpcC0+cmVnbWFwLAorCQkJCSAgICAgIGNoaXAtPmJhc2UgKyBSUl9BRENfQkFUVF9J RF9DRkcsCisJCQkJICAgICAgYmF0dF9pZF9kZWxheSk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQlk ZXZfZXJyKGNoaXAtPmRldiwKIAkJCQkiQkFUVF9JRCBzZXR0bGluZyB0aW1lIGNvbmZpZyBmYWls ZWQ6JWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvcm41dDYxOC1hZGMuYyBiL2Ry aXZlcnMvaWlvL2FkYy9ybjV0NjE4LWFkYy5jCmluZGV4IDZiZjMyOTA3ZjAxZC4uY2U1ZjMwMTFm ZTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvcm41dDYxOC1hZGMuYworKysgYi9kcml2 ZXJzL2lpby9hZGMvcm41dDYxOC1hZGMuYwpAQCAtMTM3LDkgKzEzNyw4IEBAIHN0YXRpYyBpbnQg cm41dDYxOF9hZGNfcmVhZChzdHJ1Y3QgaWlvX2RldiAqaWlvX2RldiwKIAogCWluaXRfY29tcGxl dGlvbigmYWRjLT5jb252X2NvbXBsZXRpb24pOwogCS8qIHNpbmdsZSBjb252ZXJzaW9uICovCi0J cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGFkYy0+cm41dDYxOC0+cmVnbWFwLCBSTjVUNjE4X0FE Q0NOVDMsCi0JCQkJIFJONVQ2MThfQURDQ05UM19HT0RPTkUsCi0JCQkJIFJONVQ2MThfQURDQ05U M19HT0RPTkUpOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhhZGMtPnJuNXQ2MTgtPnJlZ21hcCwg Uk41VDYxOF9BRENDTlQzLAorCQkJICAgICAgUk41VDYxOF9BRENDTlQzX0dPRE9ORSk7CiAJaWYg KHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9z YzI3eHhfYWRjLmMgYi9kcml2ZXJzL2lpby9hZGMvc2MyN3h4X2FkYy5jCmluZGV4IGI0YTJlMDU3 ZDgwZi4uMjUzNWMyYzNlNjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvc2MyN3h4X2Fk Yy5jCisrKyBiL2RyaXZlcnMvaWlvL2FkYy9zYzI3eHhfYWRjLmMKQEAgLTUwOCwxMyArNTA4LDEz IEBAIHN0YXRpYyBpbnQgc2MyN3h4X2FkY19yZWFkKHN0cnVjdCBzYzI3eHhfYWRjX2RhdGEgKmRh dGEsIGludCBjaGFubmVsLAogCQl9CiAJfQogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRh dGEtPnJlZ21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9BRENfQ1RMLAotCQkJCSBTQzI3WFhfQURD X0VOLCBTQzI3WFhfQURDX0VOKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoZGF0YS0+cmVnbWFw LCBkYXRhLT5iYXNlICsgU0MyN1hYX0FEQ19DVEwsCisJCQkgICAgICBTQzI3WFhfQURDX0VOKTsK IAlpZiAocmV0KQogCQlnb3RvIHJlZ3VsYXRvcl9yZXN0b3JlOwogCi0JcmV0ID0gcmVnbWFwX3Vw ZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9BRENfSU5UX0NMUiwK LQkJCQkgU0MyN1hYX0FEQ19JUlFfQ0xSLCBTQzI3WFhfQURDX0lSUV9DTFIpOworCXJldCA9IHJl Z21hcF9zZXRfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPmJhc2UgKyBTQzI3WFhfQURDX0lOVF9D TFIsCisJCQkgICAgICBTQzI3WFhfQURDX0lSUV9DTFIpOwogCWlmIChyZXQpCiAJCWdvdG8gZGlz YWJsZV9hZGM7CiAKQEAgLTUzNyw4ICs1MzcsOCBAQCBzdGF0aWMgaW50IHNjMjd4eF9hZGNfcmVh ZChzdHJ1Y3Qgc2MyN3h4X2FkY19kYXRhICpkYXRhLCBpbnQgY2hhbm5lbCwKIAlpZiAocmV0KQog CQlnb3RvIGRpc2FibGVfYWRjOwogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJl Z21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9BRENfQ1RMLAotCQkJCSBTQzI3WFhfQURDX0NITl9S VU4sIFNDMjdYWF9BRENfQ0hOX1JVTik7CisJcmV0ID0gcmVnbWFwX3NldF9iaXRzKGRhdGEtPnJl Z21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9BRENfQ1RMLAorCQkJICAgICAgU0MyN1hYX0FEQ19D SE5fUlVOKTsKIAlpZiAocmV0KQogCQlnb3RvIGRpc2FibGVfYWRjOwogCkBAIC01NTksOCArNTU5 LDggQEAgc3RhdGljIGludCBzYzI3eHhfYWRjX3JlYWQoc3RydWN0IHNjMjd4eF9hZGNfZGF0YSAq ZGF0YSwgaW50IGNoYW5uZWwsCiAJdmFsdWUgJj0gU0MyN1hYX0FEQ19EQVRBX01BU0s7CiAKIGRp c2FibGVfYWRjOgotCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPmJhc2Ug KyBTQzI3WFhfQURDX0NUTCwKLQkJCSAgIFNDMjdYWF9BRENfRU4sIDApOworCXJlZ21hcF9jbGVh cl9iaXRzKGRhdGEtPnJlZ21hcCwgZGF0YS0+YmFzZSArIFNDMjdYWF9BRENfQ1RMLAorCQkJICBT QzI3WFhfQURDX0VOKTsKIHJlZ3VsYXRvcl9yZXN0b3JlOgogCWlmICgoZGF0YS0+dmFyX2RhdGEt PnNldF92b2xyZWYpICYmIChjaGFubmVsID09IDMwIHx8IGNoYW5uZWwgPT0gMzEpKSB7CiAJCXJl dF92b2xyZWYgPSByZWd1bGF0b3Jfc2V0X3ZvbHRhZ2UoZGF0YS0+dm9scmVmLApAQCAtNzY1LDE1 ICs3NjUsMTQgQEAgc3RhdGljIGludCBzYzI3eHhfYWRjX2VuYWJsZShzdHJ1Y3Qgc2MyN3h4X2Fk Y19kYXRhICpkYXRhKQogewogCWludCByZXQ7CiAKLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMo ZGF0YS0+cmVnbWFwLCBkYXRhLT52YXJfZGF0YS0+bW9kdWxlX2VuLAotCQkJCSBTQzI3WFhfTU9E VUxFX0FEQ19FTiwgU0MyN1hYX01PRFVMRV9BRENfRU4pOworCXJldCA9IHJlZ21hcF9zZXRfYml0 cyhkYXRhLT5yZWdtYXAsIGRhdGEtPnZhcl9kYXRhLT5tb2R1bGVfZW4sCisJCQkgICAgICBTQzI3 WFhfTU9EVUxFX0FEQ19FTik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIEVuYWJs ZSBBREMgd29yayBjbG9jayBhbmQgY29udHJvbGxlciBjbG9jayAqLwotCXJldCA9IHJlZ21hcF91 cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPnZhcl9kYXRhLT5jbGtfZW4sCi0JCQkJIFND MjdYWF9DTEtfQURDX0VOIHwgU0MyN1hYX0NMS19BRENfQ0xLX0VOLAotCQkJCSBTQzI3WFhfQ0xL X0FEQ19FTiB8IFNDMjdYWF9DTEtfQURDX0NMS19FTik7CisJcmV0ID0gcmVnbWFwX3NldF9iaXRz KGRhdGEtPnJlZ21hcCwgZGF0YS0+dmFyX2RhdGEtPmNsa19lbiwKKwkJCSAgICAgIFNDMjdYWF9D TEtfQURDX0VOIHwgU0MyN1hYX0NMS19BRENfQ0xLX0VOKTsKIAlpZiAocmV0KQogCQlnb3RvIGRp c2FibGVfYWRjOwogCkBAIC03ODksMTEgKzc4OCwxMSBAQCBzdGF0aWMgaW50IHNjMjd4eF9hZGNf ZW5hYmxlKHN0cnVjdCBzYzI3eHhfYWRjX2RhdGEgKmRhdGEpCiAJcmV0dXJuIDA7CiAKIGRpc2Fi bGVfY2xrOgotCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPnZhcl9kYXRh LT5jbGtfZW4sCi0JCQkgICBTQzI3WFhfQ0xLX0FEQ19FTiB8IFNDMjdYWF9DTEtfQURDX0NMS19F TiwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMoZGF0YS0+cmVnbWFwLCBkYXRhLT52YXJfZGF0YS0+ Y2xrX2VuLAorCQkJICBTQzI3WFhfQ0xLX0FEQ19FTiB8IFNDMjdYWF9DTEtfQURDX0NMS19FTik7 CiBkaXNhYmxlX2FkYzoKLQlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBkYXRhLT52 YXJfZGF0YS0+bW9kdWxlX2VuLAotCQkJICAgU0MyN1hYX01PRFVMRV9BRENfRU4sIDApOworCXJl Z21hcF9jbGVhcl9iaXRzKGRhdGEtPnJlZ21hcCwgZGF0YS0+dmFyX2RhdGEtPm1vZHVsZV9lbiwK KwkJCSAgU0MyN1hYX01PRFVMRV9BRENfRU4pOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTgwMywx MSArODAyLDExIEBAIHN0YXRpYyB2b2lkIHNjMjd4eF9hZGNfZGlzYWJsZSh2b2lkICpfZGF0YSkK IAlzdHJ1Y3Qgc2MyN3h4X2FkY19kYXRhICpkYXRhID0gX2RhdGE7CiAKIAkvKiBEaXNhYmxlIEFE QyB3b3JrIGNsb2NrIGFuZCBjb250cm9sbGVyIGNsb2NrICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRz KGRhdGEtPnJlZ21hcCwgZGF0YS0+dmFyX2RhdGEtPmNsa19lbiwKLQkJCSAgIFNDMjdYWF9DTEtf QURDX0VOIHwgU0MyN1hYX0NMS19BRENfQ0xLX0VOLCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhk YXRhLT5yZWdtYXAsIGRhdGEtPnZhcl9kYXRhLT5jbGtfZW4sCisJCQkgIFNDMjdYWF9DTEtfQURD X0VOIHwgU0MyN1hYX0NMS19BRENfQ0xLX0VOKTsKIAotCXJlZ21hcF91cGRhdGVfYml0cyhkYXRh LT5yZWdtYXAsIGRhdGEtPnZhcl9kYXRhLT5tb2R1bGVfZW4sCi0JCQkgICBTQzI3WFhfTU9EVUxF X0FEQ19FTiwgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMoZGF0YS0+cmVnbWFwLCBkYXRhLT52YXJf ZGF0YS0+bW9kdWxlX2VuLAorCQkJICBTQzI3WFhfTU9EVUxFX0FEQ19FTik7CiB9CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc2MyN3h4X2FkY192YXJpYW50X2RhdGEgc2MyNzMxX2RhdGEgPSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvc3RtMzItZGZzZG0tYWRjLmMgYi9kcml2ZXJzL2lp by9hZGMvc3RtMzItZGZzZG0tYWRjLmMKaW5kZXggOWE0N2QyYzg3ZjA1Li5mYWJkNjU0MjQ1ZjUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2FkYy9zdG0zMi1kZnNkbS1hZGMuYworKysgYi9kcml2 ZXJzL2lpby9hZGMvc3RtMzItZGZzZG0tYWRjLmMKQEAgLTc1OSw4ICs3NTksNyBAQCBzdGF0aWMg aW50IHN0bTMyX2Rmc2RtX3N0YXJ0X2NvbnYoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwKIAly ZXR1cm4gMDsKIAogZmlsdGVyX3VuY29uZmlndXJlOgotCXJlZ21hcF91cGRhdGVfYml0cyhyZWdt YXAsIERGU0RNX0NSMShhZGMtPmZsX2lkKSwKLQkJCSAgIERGU0RNX0NSMV9DRkdfTUFTSywgMCk7 CisJcmVnbWFwX2NsZWFyX2JpdHMocmVnbWFwLCBERlNETV9DUjEoYWRjLT5mbF9pZCksIERGU0RN X0NSMV9DRkdfTUFTSyk7CiBzdG9wX2NoYW5uZWxzOgogCXN0bTMyX2Rmc2RtX3N0b3BfY2hhbm5l bChpbmRpb19kZXYpOwogCkBAIC03NzQsOCArNzczLDcgQEAgc3RhdGljIHZvaWQgc3RtMzJfZGZz ZG1fc3RvcF9jb252KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAKIAlzdG0zMl9kZnNkbV9z dG9wX2ZpbHRlcihhZGMtPmRmc2RtLCBhZGMtPmZsX2lkKTsKIAotCXJlZ21hcF91cGRhdGVfYml0 cyhyZWdtYXAsIERGU0RNX0NSMShhZGMtPmZsX2lkKSwKLQkJCSAgIERGU0RNX0NSMV9DRkdfTUFT SywgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMocmVnbWFwLCBERlNETV9DUjEoYWRjLT5mbF9pZCks IERGU0RNX0NSMV9DRkdfTUFTSyk7CiAKIAlzdG0zMl9kZnNkbV9zdG9wX2NoYW5uZWwoaW5kaW9f ZGV2KTsKIH0KQEAgLTk1MSwxNiArOTQ5LDE0IEBAIHN0YXRpYyBpbnQgc3RtMzJfZGZzZG1fYWRj X2RtYV9zdGFydChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQogCiAJaWYgKGFkYy0+bmNvbnYg PT0gMSAmJiAhaW5kaW9fZGV2LT50cmlnKSB7CiAJCS8qIEVuYWJsZSByZWd1bGFyIERNQSB0cmFu c2ZlciovCi0JCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhhZGMtPmRmc2RtLT5yZWdtYXAsCi0J CQkJCSBERlNETV9DUjEoYWRjLT5mbF9pZCksCi0JCQkJCSBERlNETV9DUjFfUkRNQUVOX01BU0ss Ci0JCQkJCSBERlNETV9DUjFfUkRNQUVOX01BU0spOworCQlyZXQgPSByZWdtYXBfc2V0X2JpdHMo YWRjLT5kZnNkbS0+cmVnbWFwLAorCQkJCSAgICAgIERGU0RNX0NSMShhZGMtPmZsX2lkKSwKKwkJ CQkgICAgICBERlNETV9DUjFfUkRNQUVOX01BU0spOwogCX0gZWxzZSB7CiAJCS8qIEVuYWJsZSBp bmplY3RlZCBETUEgdHJhbnNmZXIqLwotCQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoYWRjLT5k ZnNkbS0+cmVnbWFwLAotCQkJCQkgREZTRE1fQ1IxKGFkYy0+ZmxfaWQpLAotCQkJCQkgREZTRE1f Q1IxX0pETUFFTl9NQVNLLAotCQkJCQkgREZTRE1fQ1IxX0pETUFFTl9NQVNLKTsKKwkJcmV0ID0g cmVnbWFwX3NldF9iaXRzKGFkYy0+ZGZzZG0tPnJlZ21hcCwKKwkJCQkgICAgICBERlNETV9DUjEo YWRjLT5mbF9pZCksCisJCQkJICAgICAgREZTRE1fQ1IxX0pETUFFTl9NQVNLKTsKIAl9CiAKIAlp ZiAocmV0IDwgMCkKQEAgLTk4MSw4ICs5NzcsOCBAQCBzdGF0aWMgdm9pZCBzdG0zMl9kZnNkbV9h ZGNfZG1hX3N0b3Aoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAlpZiAoIWFkYy0+ZG1hX2No YW4pCiAJCXJldHVybjsKIAotCXJlZ21hcF91cGRhdGVfYml0cyhhZGMtPmRmc2RtLT5yZWdtYXAs IERGU0RNX0NSMShhZGMtPmZsX2lkKSwKLQkJCSAgIERGU0RNX0NSMV9SRE1BRU5fTUFTSyB8IERG U0RNX0NSMV9KRE1BRU5fTUFTSywgMCk7CisJcmVnbWFwX2NsZWFyX2JpdHMoYWRjLT5kZnNkbS0+ cmVnbWFwLCBERlNETV9DUjEoYWRjLT5mbF9pZCksCisJCQkgIERGU0RNX0NSMV9SRE1BRU5fTUFT SyB8IERGU0RNX0NSMV9KRE1BRU5fTUFTSyk7CiAJZG1hZW5naW5lX3Rlcm1pbmF0ZV9hbGwoYWRj LT5kbWFfY2hhbik7CiB9CiAKQEAgLTEzMDUsOSArMTMwMSw4IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBzdG0zMl9kZnNkbV9pcnEoaW50IGlycSwgdm9pZCAqYXJnKQogCWlmIChzdGF0dXMgJiBERlNE TV9JU1JfUk9WUkZfTUFTSykgewogCQlpZiAoaW50X2VuICYgREZTRE1fQ1IyX1JPVlJJRV9NQVNL KQogCQkJZGV2X3dhcm4oJmluZGlvX2Rldi0+ZGV2LCAiT3ZlcnJ1biBkZXRlY3RlZFxuIik7Ci0J CXJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIERGU0RNX0lDUihhZGMtPmZsX2lkKSwKLQkJCQkg ICBERlNETV9JQ1JfQ0xSUk9WUkZfTUFTSywKLQkJCQkgICBERlNETV9JQ1JfQ0xSUk9WUkZfTUFT Syk7CisJCXJlZ21hcF9zZXRfYml0cyhyZWdtYXAsIERGU0RNX0lDUihhZGMtPmZsX2lkKSwKKwkJ CQlERlNETV9JQ1JfQ0xSUk9WUkZfTUFTSyk7CiAJfQogCiAJcmV0dXJuIElSUV9IQU5ETEVEOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vZGFjL2x0YzI2ODguYyBiL2RyaXZlcnMvaWlvL2RhYy9s dGMyNjg4LmMKaW5kZXggYzRiMWJhMzBmOTM1Li5hZjUwZDJhOTU4OTggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaWlvL2RhYy9sdGMyNjg4LmMKKysrIGIvZHJpdmVycy9paW8vZGFjL2x0YzI2ODguYwpA QCAtODYwLDkgKzg2MCw4IEBAIHN0YXRpYyBpbnQgbHRjMjY4OF9zZXR1cChzdHJ1Y3QgbHRjMjY4 OF9zdGF0ZSAqc3QsIHN0cnVjdCByZWd1bGF0b3IgKnZyZWYpCiAJCS8qIGJyaW5nIGRldmljZSBv dXQgb2YgcmVzZXQgKi8KIAkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGdwaW8sIDApOwogCX0g ZWxzZSB7Ci0JCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhzdC0+cmVnbWFwLCBMVEMyNjg4X0NN RF9DT05GSUcsCi0JCQkJCSBMVEMyNjg4X0NPTkZJR19SU1QsCi0JCQkJCSBMVEMyNjg4X0NPTkZJ R19SU1QpOworCQlyZXQgPSByZWdtYXBfc2V0X2JpdHMoc3QtPnJlZ21hcCwgTFRDMjY4OF9DTURf Q09ORklHLAorCQkJCSAgICAgIExUQzI2ODhfQ09ORklHX1JTVCk7CiAJCWlmIChyZXQpCiAJCQly ZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2RhYy9zdG0zMi1kYWMtY29y ZS5jIGIvZHJpdmVycy9paW8vZGFjL3N0bTMyLWRhYy1jb3JlLmMKaW5kZXggZTE1MGFjNzI5MTU0 Li4yZDU2NzA3Mzk5NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2RhYy9zdG0zMi1kYWMtY29y ZS5jCisrKyBiL2RyaXZlcnMvaWlvL2RhYy9zdG0zMi1kYWMtY29yZS5jCkBAIC0yMDAsOSArMjAw LDggQEAgc3RhdGljIGludCBzdG0zMl9kYWNfY29yZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQogCiAJaWYgKHByaXYtPmNvbW1vbi5oZnNlbCkgewogCQkvKiByZXN0b3JlIGhmc2VsIChtYXli ZSBsb3N0IHVuZGVyIGxvdyBwb3dlciBzdGF0ZSkgKi8KLQkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9i aXRzKHByaXYtPmNvbW1vbi5yZWdtYXAsIFNUTTMyX0RBQ19DUiwKLQkJCQkJIFNUTTMySDdfREFD X0NSX0hGU0VMLAotCQkJCQkgU1RNMzJIN19EQUNfQ1JfSEZTRUwpOworCQlyZXQgPSByZWdtYXBf c2V0X2JpdHMocHJpdi0+Y29tbW9uLnJlZ21hcCwgU1RNMzJfREFDX0NSLAorCQkJCSAgICAgIFNU TTMySDdfREFDX0NSX0hGU0VMKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9paW8vZ3lyby9ibWcxNjBfY29yZS5jIGIvZHJpdmVycy9paW8vZ3ly by9ibWcxNjBfY29yZS5jCmluZGV4IDBlMmViMGU5ODIzNS4uMTA3MjhkNWNjYWUzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2lpby9neXJvL2JtZzE2MF9jb3JlLmMKKysrIGIvZHJpdmVycy9paW8vZ3ly by9ibWcxNjBfY29yZS5jCkBAIC0yODUsOCArMjg1LDggQEAgc3RhdGljIGludCBibWcxNjBfY2hp cF9pbml0KHN0cnVjdCBibWcxNjBfZGF0YSAqZGF0YSkKIAlkYXRhLT5zbG9wZV90aHJlcyA9IHZh bDsKIAogCS8qIFNldCBkZWZhdWx0IGludGVycnVwdCBtb2RlICovCi0JcmV0ID0gcmVnbWFwX3Vw ZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgQk1HMTYwX1JFR19JTlRfRU5fMSwKLQkJCQkgQk1HMTYw X0lOVDFfQklUX09ELCAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJfYml0cyhkYXRhLT5yZWdtYXAs IEJNRzE2MF9SRUdfSU5UX0VOXzEsCisJCQkJQk1HMTYwX0lOVDFfQklUX09EKTsKIAlpZiAocmV0 IDwgMCkgewogCQlkZXZfZXJyKGRldiwgIkVycm9yIHVwZGF0aW5nIGJpdHMgaW4gcmVnX2ludF9l bl8xXG4iKTsKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2d5cm8vbXB1 MzA1MC1jb3JlLmMgYi9kcml2ZXJzL2lpby9neXJvL21wdTMwNTAtY29yZS5jCmluZGV4IGE3OTFi YTNhNjkzYS4uZmYxYzgxNTUzMDQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9neXJvL21wdTMw NTAtY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2d5cm8vbXB1MzA1MC1jb3JlLmMKQEAgLTE5Nyw4 ICsxOTcsOCBAQCBzdGF0aWMgaW50IG1wdTMwNTBfc3RhcnRfc2FtcGxpbmcoc3RydWN0IG1wdTMw NTAgKm1wdTMwNTApCiAJaW50IGk7CiAKIAkvKiBSZXNldCAqLwotCXJldCA9IHJlZ21hcF91cGRh dGVfYml0cyhtcHUzMDUwLT5tYXAsIE1QVTMwNTBfUFdSX01HTSwKLQkJCQkgTVBVMzA1MF9QV1Jf TUdNX1JFU0VULCBNUFUzMDUwX1BXUl9NR01fUkVTRVQpOworCXJldCA9IHJlZ21hcF9zZXRfYml0 cyhtcHUzMDUwLT5tYXAsIE1QVTMwNTBfUFdSX01HTSwKKwkJCSAgICAgIE1QVTMwNTBfUFdSX01H TV9SRVNFVCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtNTEzLDEyICs1MTMsOCBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgbXB1MzA1MF90cmlnZ2VyX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqcCkKIAkJCQkgIkZJRk8gb3ZlcmZsb3chIEVtcHR5aW5nIGFuZCByZXNldHRpbmcgRklGT1xu Iik7CiAJCQlmaWZvX292ZXJmbG93ID0gdHJ1ZTsKIAkJCS8qIFJlc2V0IGFuZCBlbmFibGUgdGhl IEZJRk8gKi8KLQkJCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhtcHUzMDUwLT5tYXAsCi0JCQkJ CQkgTVBVMzA1MF9VU1JfQ1RSTCwKLQkJCQkJCSBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9fRU4gfAot CQkJCQkJIE1QVTMwNTBfVVNSX0NUUkxfRklGT19SU1QsCi0JCQkJCQkgTVBVMzA1MF9VU1JfQ1RS TF9GSUZPX0VOIHwKLQkJCQkJCSBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9fUlNUKTsKKwkJCXJldCA9 IHJlZ21hcF9zZXRfYml0cyhtcHUzMDUwLT5tYXAsIE1QVTMwNTBfVVNSX0NUUkwsCisJCQkJCSAg ICAgIE1QVTMwNTBfVVNSX0NUUkxfRklGT19FTiB8IE1QVTMwNTBfVVNSX0NUUkxfRklGT19SU1Qp OwogCQkJaWYgKHJldCkgewogCQkJCWRldl9pbmZvKG1wdTMwNTAtPmRldiwgImVycm9yIHJlc2V0 dGluZyBGSUZPXG4iKTsKIAkJCQlnb3RvIG91dF90cmlnZ2VyX3VubG9jazsKQEAgLTc5OSwxMCAr Nzk1LDggQEAgc3RhdGljIGludCBtcHUzMDUwX2h3X2luaXQoc3RydWN0IG1wdTMwNTAgKm1wdTMw NTApCiAJdTY0IG90cDsKIAogCS8qIFJlc2V0ICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRz KG1wdTMwNTAtPm1hcCwKLQkJCQkgTVBVMzA1MF9QV1JfTUdNLAotCQkJCSBNUFUzMDUwX1BXUl9N R01fUkVTRVQsCi0JCQkJIE1QVTMwNTBfUFdSX01HTV9SRVNFVCk7CisJcmV0ID0gcmVnbWFwX3Nl dF9iaXRzKG1wdTMwNTAtPm1hcCwgTVBVMzA1MF9QV1JfTUdNLAorCQkJICAgICAgTVBVMzA1MF9Q V1JfTUdNX1JFU0VUKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC04NzIsOCArODY2 LDggQEAgc3RhdGljIGludCBtcHUzMDUwX3Bvd2VyX3VwKHN0cnVjdCBtcHUzMDUwICptcHUzMDUw KQogCW1zbGVlcCgyMDApOwogCiAJLyogVGFrZSBkZXZpY2Ugb3V0IG9mIHNsZWVwIG1vZGUgKi8K LQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMobXB1MzA1MC0+bWFwLCBNUFUzMDUwX1BXUl9NR00s Ci0JCQkJIE1QVTMwNTBfUFdSX01HTV9TTEVFUCwgMCk7CisJcmV0ID0gcmVnbWFwX2NsZWFyX2Jp dHMobXB1MzA1MC0+bWFwLCBNUFUzMDUwX1BXUl9NR00sCisJCQkJTVBVMzA1MF9QV1JfTUdNX1NM RUVQKTsKIAlpZiAocmV0KSB7CiAJCXJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRSht cHUzMDUwLT5yZWdzKSwgbXB1MzA1MC0+cmVncyk7CiAJCWRldl9lcnIobXB1MzA1MC0+ZGV2LCAi ZXJyb3Igc2V0dGluZyBwb3dlciBtb2RlXG4iKTsKQEAgLTg5NSw4ICs4ODksOCBAQCBzdGF0aWMg aW50IG1wdTMwNTBfcG93ZXJfZG93bihzdHJ1Y3QgbXB1MzA1MCAqbXB1MzA1MCkKIAkgKiB0aGVu IHdlIHdvdWxkIGJlIHdhc3RpbmcgcG93ZXIgdW5sZXNzIHdlIGdvIHRvIHNsZWVwIG1vZGUKIAkg KiBmaXJzdC4KIAkgKi8KLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMobXB1MzA1MC0+bWFwLCBN UFUzMDUwX1BXUl9NR00sCi0JCQkJIE1QVTMwNTBfUFdSX01HTV9TTEVFUCwgTVBVMzA1MF9QV1Jf TUdNX1NMRUVQKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMobXB1MzA1MC0+bWFwLCBNUFUzMDUw X1BXUl9NR00sCisJCQkgICAgICBNUFUzMDUwX1BXUl9NR01fU0xFRVApOwogCWlmIChyZXQpCiAJ CWRldl9lcnIobXB1MzA1MC0+ZGV2LCAiZXJyb3IgcHV0dGluZyB0byBzbGVlcFxuIik7CiAKQEAg LTk5NywxMSArOTkxLDggQEAgc3RhdGljIGludCBtcHUzMDUwX2RyZHlfdHJpZ2dlcl9zZXRfc3Rh dGUoc3RydWN0IGlpb190cmlnZ2VyICp0cmlnLAogCQkJcmV0dXJuIHJldDsKIAogCQkvKiBSZXNl dCBhbmQgZW5hYmxlIHRoZSBGSUZPICovCi0JCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhtcHUz MDUwLT5tYXAsIE1QVTMwNTBfVVNSX0NUUkwsCi0JCQkJCSBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9f RU4gfAotCQkJCQkgTVBVMzA1MF9VU1JfQ1RSTF9GSUZPX1JTVCwKLQkJCQkJIE1QVTMwNTBfVVNS X0NUUkxfRklGT19FTiB8Ci0JCQkJCSBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9fUlNUKTsKKwkJcmV0 ID0gcmVnbWFwX3NldF9iaXRzKG1wdTMwNTAtPm1hcCwgTVBVMzA1MF9VU1JfQ1RSTCwKKwkJCQkg ICAgICBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9fRU4gfCBNUFUzMDUwX1VTUl9DVFJMX0ZJRk9fUlNU KTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlv L2hlYWx0aC9hZmU0NDAzLmMgYi9kcml2ZXJzL2lpby9oZWFsdGgvYWZlNDQwMy5jCmluZGV4IDFk YmU0OGRhZTc0ZS4uNTIzMjZkYzUyMWFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9oZWFsdGgv YWZlNDQwMy5jCisrKyBiL2RyaXZlcnMvaWlvL2hlYWx0aC9hZmU0NDAzLmMKQEAgLTQyMiw5ICs0 MjIsOCBAQCBzdGF0aWMgaW50IGFmZTQ0MDNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJ c3RydWN0IGFmZTQ0MDNfZGF0YSAqYWZlID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsKIAlpbnQgcmV0 OwogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCBBRkU0NDBYX0NPTlRS T0wyLAotCQkJCSBBRkU0NDBYX0NPTlRST0wyX1BETl9BRkUsCi0JCQkJIEFGRTQ0MFhfQ09OVFJP TDJfUEROX0FGRSk7CisJcmV0ID0gcmVnbWFwX3NldF9iaXRzKGFmZS0+cmVnbWFwLCBBRkU0NDBY X0NPTlRST0wyLAorCQkJICAgICAgQUZFNDQwWF9DT05UUk9MMl9QRE5fQUZFKTsKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCkBAIC00NDksOCArNDQ4LDggQEAgc3RhdGljIGludCBhZmU0NDAz X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0g cmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCBBRkU0NDBYX0NPTlRST0wyLAotCQkJCSBB RkU0NDBYX0NPTlRST0wyX1BETl9BRkUsIDApOworCXJldCA9IHJlZ21hcF9jbGVhcl9iaXRzKGFm ZS0+cmVnbWFwLCBBRkU0NDBYX0NPTlRST0wyLAorCQkJCUFGRTQ0MFhfQ09OVFJPTDJfUEROX0FG RSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8v aGVhbHRoL2FmZTQ0MDQuYyBiL2RyaXZlcnMvaWlvL2hlYWx0aC9hZmU0NDA0LmMKaW5kZXggNzc2 OGIwN2VmN2E2Li41MWY0YmUzOWQyMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2hlYWx0aC9h ZmU0NDA0LmMKKysrIGIvZHJpdmVycy9paW8vaGVhbHRoL2FmZTQ0MDQuYwpAQCAtNDMwLDkgKzQz MCw4IEBAIHN0YXRpYyBpbnQgYWZlNDQwNF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIAlz dHJ1Y3QgYWZlNDQwNF9kYXRhICphZmUgPSBpaW9fcHJpdihpbmRpb19kZXYpOwogCWludCByZXQ7 CiAKLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRTQ0MFhfQ09OVFJP TDIsCi0JCQkJIEFGRTQ0MFhfQ09OVFJPTDJfUEROX0FGRSwKLQkJCQkgQUZFNDQwWF9DT05UUk9M Ml9QRE5fQUZFKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoYWZlLT5yZWdtYXAsIEFGRTQ0MFhf Q09OVFJPTDIsCisJCQkgICAgICBBRkU0NDBYX0NPTlRST0wyX1BETl9BRkUpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKQEAgLTQ1Nyw4ICs0NTYsOCBAQCBzdGF0aWMgaW50IGFmZTQ0MDRf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBy ZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5yZWdtYXAsIEFGRTQ0MFhfQ09OVFJPTDIsCi0JCQkJIEFG RTQ0MFhfQ09OVFJPTDJfUEROX0FGRSwgMCk7CisJcmV0ID0gcmVnbWFwX2NsZWFyX2JpdHMoYWZl LT5yZWdtYXAsIEFGRTQ0MFhfQ09OVFJPTDIsCisJCQkJQUZFNDQwWF9DT05UUk9MMl9QRE5fQUZF KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9o ZWFsdGgvbWF4MzAxMDAuYyBiL2RyaXZlcnMvaWlvL2hlYWx0aC9tYXgzMDEwMC5jCmluZGV4IDYy MzZiNGQ5NjEzNy4uYzE4NjdjMmVmOGUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9oZWFsdGgv bWF4MzAxMDAuYworKysgYi9kcml2ZXJzL2lpby9oZWFsdGgvbWF4MzAxMDAuYwpAQCAtMzYzLDkg KzM2Myw4IEBAIHN0YXRpYyBpbnQgbWF4MzAxMDBfZ2V0X3RlbXAoc3RydWN0IG1heDMwMTAwX2Rh dGEgKmRhdGEsIGludCAqdmFsKQogCWludCByZXQ7CiAKIAkvKiBzdGFydCBhY3F1aXNpdGlvbiAq LwotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIE1BWDMwMTAwX1JFR19N T0RFX0NPTkZJRywKLQkJCQkgTUFYMzAxMDBfUkVHX01PREVfQ09ORklHX1RFTVBfRU4sCi0JCQkJ IE1BWDMwMTAwX1JFR19NT0RFX0NPTkZJR19URU1QX0VOKTsKKwlyZXQgPSByZWdtYXBfc2V0X2Jp dHMoZGF0YS0+cmVnbWFwLCBNQVgzMDEwMF9SRUdfTU9ERV9DT05GSUcsCisJCQkgICAgICBNQVgz MDEwMF9SRUdfTU9ERV9DT05GSUdfVEVNUF9FTik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vaGVhbHRoL21heDMwMTAyLmMgYi9kcml2ZXJzL2lp by9oZWFsdGgvbWF4MzAxMDIuYwppbmRleCA2NjE2NzI5YWY1YjcuLjA3YTM0M2UzNWE4MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9paW8vaGVhbHRoL21heDMwMTAyLmMKKysrIGIvZHJpdmVycy9paW8v aGVhbHRoL21heDMwMTAyLmMKQEAgLTQ0OCw5ICs0NDgsOCBAQCBzdGF0aWMgaW50IG1heDMwMTAy X2dldF90ZW1wKHN0cnVjdCBtYXgzMDEwMl9kYXRhICpkYXRhLCBpbnQgKnZhbCwgYm9vbCBlbikK IAl9CiAKIAkvKiBzdGFydCBhY3F1aXNpdGlvbiAqLwotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0 cyhkYXRhLT5yZWdtYXAsIE1BWDMwMTAyX1JFR19URU1QX0NPTkZJRywKLQkJCQkgTUFYMzAxMDJf UkVHX1RFTVBfQ09ORklHX1RFTVBfRU4sCi0JCQkJIE1BWDMwMTAyX1JFR19URU1QX0NPTkZJR19U RU1QX0VOKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoZGF0YS0+cmVnbWFwLCBNQVgzMDEwMl9S RUdfVEVNUF9DT05GSUcsCisJCQkgICAgICBNQVgzMDEwMl9SRUdfVEVNUF9DT05GSUdfVEVNUF9F Tik7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2lt dS9pbnZfaWNtNDI2MDAvaW52X2ljbTQyNjAwX2J1ZmZlci5jIGIvZHJpdmVycy9paW8vaW11L2lu dl9pY200MjYwMC9pbnZfaWNtNDI2MDBfYnVmZmVyLmMKaW5kZXggNjNiODVlYzg4YzEzLi41MDlm ZTZhM2FlOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2ltdS9pbnZfaWNtNDI2MDAvaW52X2lj bTQyNjAwX2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvaWlvL2ltdS9pbnZfaWNtNDI2MDAvaW52X2lj bTQyNjAwX2J1ZmZlci5jCkBAIC0yNjIsOSArMjYyLDggQEAgaW50IGludl9pY200MjYwMF9idWZm ZXJfdXBkYXRlX3dhdGVybWFyayhzdHJ1Y3QgaW52X2ljbTQyNjAwX3N0YXRlICpzdCkKIAogCS8q IHJlc3RvcmUgd2F0ZXJtYXJrIGludGVycnVwdCAqLwogCWlmIChyZXN0b3JlKSB7Ci0JCXJldCA9 IHJlZ21hcF91cGRhdGVfYml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVF9TT1VSQ0Uw LAotCQkJCQkgSU5WX0lDTTQyNjAwX0lOVF9TT1VSQ0UwX0ZJRk9fVEhTX0lOVDFfRU4sCi0JCQkJ CSBJTlZfSUNNNDI2MDBfSU5UX1NPVVJDRTBfRklGT19USFNfSU5UMV9FTik7CisJCXJldCA9IHJl Z21hcF9zZXRfYml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVF9TT1VSQ0UwLAorCQkJ CSAgICAgIElOVl9JQ000MjYwMF9JTlRfU09VUkNFMF9GSUZPX1RIU19JTlQxX0VOKTsKIAkJaWYg KHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpAQCAtMzA2LDkgKzMwNSw4IEBAIHN0YXRpYyBpbnQg aW52X2ljbTQyNjAwX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYp CiAJfQogCiAJLyogc2V0IEZJRk8gdGhyZXNob2xkIGludGVycnVwdCAqLwotCXJldCA9IHJlZ21h cF91cGRhdGVfYml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVF9TT1VSQ0UwLAotCQkJ CSBJTlZfSUNNNDI2MDBfSU5UX1NPVVJDRTBfRklGT19USFNfSU5UMV9FTiwKLQkJCQkgSU5WX0lD TTQyNjAwX0lOVF9TT1VSQ0UwX0ZJRk9fVEhTX0lOVDFfRU4pOworCXJldCA9IHJlZ21hcF9zZXRf Yml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVF9TT1VSQ0UwLAorCQkJICAgICAgSU5W X0lDTTQyNjAwX0lOVF9TT1VSQ0UwX0ZJRk9fVEhTX0lOVDFfRU4pOwogCWlmIChyZXQpCiAJCWdv dG8gb3V0X3VubG9jazsKIApAQCAtMzYzLDggKzM2MSw4IEBAIHN0YXRpYyBpbnQgaW52X2ljbTQy NjAwX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpCiAJCWdvdG8g b3V0X3VubG9jazsKIAogCS8qIGRpc2FibGUgRklGTyB0aHJlc2hvbGQgaW50ZXJydXB0ICovCi0J cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHN0LT5tYXAsIElOVl9JQ000MjYwMF9SRUdfSU5UX1NP VVJDRTAsCi0JCQkJIElOVl9JQ000MjYwMF9JTlRfU09VUkNFMF9GSUZPX1RIU19JTlQxX0VOLCAw KTsKKwlyZXQgPSByZWdtYXBfY2xlYXJfYml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lO VF9TT1VSQ0UwLAorCQkJCUlOVl9JQ000MjYwMF9JTlRfU09VUkNFMF9GSUZPX1RIU19JTlQxX0VO KTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF91bmxvY2s7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aWlvL2ltdS9pbnZfaWNtNDI2MDAvaW52X2ljbTQyNjAwX2NvcmUuYyBiL2RyaXZlcnMvaWlvL2lt dS9pbnZfaWNtNDI2MDAvaW52X2ljbTQyNjAwX2NvcmUuYwppbmRleCA5NjExNmE2OGFiMjkuLmJi MzAyZjU1NDBjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwMC9pbnZf aWNtNDI2MDBfY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2ltdS9pbnZfaWNtNDI2MDAvaW52X2lj bTQyNjAwX2NvcmUuYwpAQCAtNDM1LDkgKzQzNSw4IEBAIHN0YXRpYyBpbnQgaW52X2ljbTQyNjAw X3NldHVwKHN0cnVjdCBpbnZfaWNtNDI2MDBfc3RhdGUgKnN0LAogCQlyZXR1cm4gcmV0OwogCiAJ Lyogc2Vuc29yIGRhdGEgaW4gYmlnLWVuZGlhbiAoZGVmYXVsdCkgKi8KLQlyZXQgPSByZWdtYXBf dXBkYXRlX2JpdHMoc3QtPm1hcCwgSU5WX0lDTTQyNjAwX1JFR19JTlRGX0NPTkZJRzAsCi0JCQkJ IElOVl9JQ000MjYwMF9JTlRGX0NPTkZJRzBfU0VOU09SX0RBVEFfRU5ESUFOLAotCQkJCSBJTlZf SUNNNDI2MDBfSU5URl9DT05GSUcwX1NFTlNPUl9EQVRBX0VORElBTik7CisJcmV0ID0gcmVnbWFw X3NldF9iaXRzKHN0LT5tYXAsIElOVl9JQ000MjYwMF9SRUdfSU5URl9DT05GSUcwLAorCQkJICAg ICAgSU5WX0lDTTQyNjAwX0lOVEZfQ09ORklHMF9TRU5TT1JfREFUQV9FTkRJQU4pOwogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTUzMiw4ICs1MzEsOCBAQCBzdGF0aWMgaW50IGludl9p Y200MjYwMF9pcnFfaW5pdChzdHJ1Y3QgaW52X2ljbTQyNjAwX3N0YXRlICpzdCwgaW50IGlycSwK IAkJcmV0dXJuIHJldDsKIAogCS8qIERlYXNzZXJ0IGFzeW5jIHJlc2V0IGZvciBwcm9wZXIgSU5U IHBpbiBvcGVyYXRpb24gKGNmIGRhdGFzaGVldCkgKi8KLQlyZXQgPSByZWdtYXBfdXBkYXRlX2Jp dHMoc3QtPm1hcCwgSU5WX0lDTTQyNjAwX1JFR19JTlRfQ09ORklHMSwKLQkJCQkgSU5WX0lDTTQy NjAwX0lOVF9DT05GSUcxX0FTWU5DX1JFU0VULCAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJfYml0 cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVF9DT05GSUcxLAorCQkJCUlOVl9JQ000MjYw MF9JTlRfQ09ORklHMV9BU1lOQ19SRVNFVCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwMC9pbnZfaWNtNDI2MDBfaTJj LmMgYi9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9pMmMuYwppbmRl eCA4ZDMzNTA0ZDc3MGYuLmViYjMxYjM4NTg4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vaW11 L2ludl9pY200MjYwMC9pbnZfaWNtNDI2MDBfaTJjLmMKKysrIGIvZHJpdmVycy9paW8vaW11L2lu dl9pY200MjYwMC9pbnZfaWNtNDI2MDBfaTJjLmMKQEAgLTI4LDggKzI4LDggQEAgc3RhdGljIGlu dCBpbnZfaWNtNDI2MDBfaTJjX2J1c19zZXR1cChzdHJ1Y3QgaW52X2ljbTQyNjAwX3N0YXRlICpz dCkKIAkJCSAgIElOVl9JQ000MjYwMF9JTlRGX0NPTkZJRzZfTUFTSywKIAkJCSAgIElOVl9JQ000 MjYwMF9JTlRGX0NPTkZJRzZfSTNDX0VOKTsKIAotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhz dC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVEZfQ09ORklHNCwKLQkJCQkgSU5WX0lDTTQyNjAw X0lOVEZfQ09ORklHNF9JM0NfQlVTX09OTFksIDApOworCXJldCA9IHJlZ21hcF9jbGVhcl9iaXRz KHN0LT5tYXAsIElOVl9JQ000MjYwMF9SRUdfSU5URl9DT05GSUc0LAorCQkJCUlOVl9JQ000MjYw MF9JTlRGX0NPTkZJRzRfSTNDX0JVU19PTkxZKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9z cGkuYyBiL2RyaXZlcnMvaWlvL2ltdS9pbnZfaWNtNDI2MDAvaW52X2ljbTQyNjAwX3NwaS5jCmlu ZGV4IGNjMmJmMTc5OWE0Ni4uZWFlNWZmN2EzY2MxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9p bXUvaW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9zcGkuYworKysgYi9kcml2ZXJzL2lpby9pbXUv aW52X2ljbTQyNjAwL2ludl9pY200MjYwMF9zcGkuYwpAQCAtMjcsOCArMjcsOCBAQCBzdGF0aWMg aW50IGludl9pY200MjYwMF9zcGlfYnVzX3NldHVwKHN0cnVjdCBpbnZfaWNtNDI2MDBfc3RhdGUg KnN0KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSByZWdtYXBfdXBkYXRlX2Jp dHMoc3QtPm1hcCwgSU5WX0lDTTQyNjAwX1JFR19JTlRGX0NPTkZJRzQsCi0JCQkJIElOVl9JQ000 MjYwMF9JTlRGX0NPTkZJRzRfSTNDX0JVU19PTkxZLCAwKTsKKwlyZXQgPSByZWdtYXBfY2xlYXJf Yml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDBfUkVHX0lOVEZfQ09ORklHNCwKKwkJCQlJTlZfSUNN NDI2MDBfSU5URl9DT05GSUc0X0kzQ19CVVNfT05MWSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbGlnaHQvYWR1eDEwMjAuYyBiL2RyaXZlcnMv aWlvL2xpZ2h0L2FkdXgxMDIwLmMKaW5kZXggYWE0YTZjNzhmMGFhLi4zNDIzMGU2OTlkMjcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2xpZ2h0L2FkdXgxMDIwLmMKKysrIGIvZHJpdmVycy9paW8v bGlnaHQvYWR1eDEwMjAuYwpAQCAtNTM5LDkgKzUzOSw4IEBAIHN0YXRpYyBpbnQgYWR1eDEwMjBf d3JpdGVfZXZlbnRfY29uZmlnKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCiAJCSAqIFRyaWdn ZXIgcHJveGltaXR5IGludGVycnVwdCB3aGVuIHRoZSBpbnRlbnNpdHkgaXMgYWJvdmUKIAkJICog b3IgYmVsb3cgdGhyZXNob2xkCiAJCSAqLwotCQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0 YS0+cmVnbWFwLCBBRFVYMTAyMF9SRUdfUFJPWF9UWVBFLAotCQkJCQkgQURVWDEwMjBfUFJPWF9U WVBFLAotCQkJCQkgQURVWDEwMjBfUFJPWF9UWVBFKTsKKwkJcmV0ID0gcmVnbWFwX3NldF9iaXRz KGRhdGEtPnJlZ21hcCwgQURVWDEwMjBfUkVHX1BST1hfVFlQRSwKKwkJCQkgICAgICBBRFVYMTAy MF9QUk9YX1RZUEUpOwogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gZmFpbDsKIApAQCAtNzQ4LDgg Kzc0Nyw4IEBAIHN0YXRpYyBpbnQgYWR1eDEwMjBfY2hpcF9pbml0KHN0cnVjdCBhZHV4MTAyMF9k YXRhICpkYXRhKQogCiAJZGV2X2RiZygmY2xpZW50LT5kZXYsICJEZXRlY3RlZCBBRFVYMTAyMCB3 aXRoIGNoaXAgaWQ6IDB4JTA0eFxuIiwgdmFsKTsKIAotCXJldCA9IHJlZ21hcF91cGRhdGVfYml0 cyhkYXRhLT5yZWdtYXAsIEFEVVgxMDIwX1JFR19TV19SRVNFVCwKLQkJCQkgQURVWDEwMjBfU1df UkVTRVQsIEFEVVgxMDIwX1NXX1JFU0VUKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoZGF0YS0+ cmVnbWFwLCBBRFVYMTAyMF9SRUdfU1dfUkVTRVQsCisJCQkgICAgICBBRFVYMTAyMF9TV19SRVNF VCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKQEAgLTc2NCw4ICs3NjMsOCBAQCBz dGF0aWMgaW50IGFkdXgxMDIwX2NoaXBfaW5pdChzdHJ1Y3QgYWR1eDEwMjBfZGF0YSAqZGF0YSkK IAkJcmV0dXJuIHJldDsKIAogCS8qIFVzZSBMRURfSVJFRiBmb3IgcHJveGltaXR5IG1vZGUgKi8K LQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBBRFVYMTAyMF9SRUdfTEVE X0NVUlJFTlQsCi0JCQkJIEFEVVgxMDIwX0xFRF9QSVJFRl9FTiwgMCk7CisJcmV0ID0gcmVnbWFw X2NsZWFyX2JpdHMoZGF0YS0+cmVnbWFwLCBBRFVYMTAyMF9SRUdfTEVEX0NVUlJFTlQsCisJCQkJ QURVWDEwMjBfTEVEX1BJUkVGX0VOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbGlnaHQvaXFzNjIxLWFscy5jIGIvZHJpdmVycy9paW8v bGlnaHQvaXFzNjIxLWFscy5jCmluZGV4IDAwNGVhODkwYTRiMi4uNmRlMzNmZWFkYTNhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2lpby9saWdodC9pcXM2MjEtYWxzLmMKKysrIGIvZHJpdmVycy9paW8v bGlnaHQvaXFzNjIxLWFscy5jCkBAIC04Niw4ICs4Niw4IEBAIHN0YXRpYyBpbnQgaXFzNjIxX2Fs c19pbml0KHN0cnVjdCBpcXM2MjFfYWxzX3ByaXZhdGUgKmlxczYyMV9hbHMpCiAJaWYgKGlxczYy MV9hbHMtPnByb3hfZW4pCiAJCWV2ZW50X21hc2sgfD0gaXFzNjJ4LT5kZXZfZGVzYy0+aXJfbWFz azsKIAotCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMoaXFzNjJ4LT5yZWdtYXAsIElRUzYyMF9H TEJMX0VWRU5UX01BU0ssCi0JCQkJICBldmVudF9tYXNrLCAwKTsKKwlyZXR1cm4gcmVnbWFwX2Ns ZWFyX2JpdHMoaXFzNjJ4LT5yZWdtYXAsIElRUzYyMF9HTEJMX0VWRU5UX01BU0ssCisJCQkJIGV2 ZW50X21hc2spOwogfQogCiBzdGF0aWMgaW50IGlxczYyMV9hbHNfbm90aWZpZXIoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICpub3RpZmllciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2xpZ2h0L2lz bDI5MDE4LmMgYi9kcml2ZXJzL2lpby9saWdodC9pc2wyOTAxOC5jCmluZGV4IDQzNDg0YzE4YjEw MS4uOGRmYzc1MGU2OGMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9saWdodC9pc2wyOTAxOC5j CisrKyBiL2RyaXZlcnMvaWlvL2xpZ2h0L2lzbDI5MDE4LmMKQEAgLTU1MCw5ICs1NTAsOSBAQCBz dGF0aWMgaW50IGlzbDI5MDE4X2NoaXBfaW5pdChzdHJ1Y3QgaXNsMjkwMThfY2hpcCAqY2hpcCkK IAkJCXJldHVybiAtRU5PREVWOwogCiAJCS8qIENsZWFyIGJyb3dub3V0IGJpdCAqLwotCQlzdGF0 dXMgPSByZWdtYXBfdXBkYXRlX2JpdHMoY2hpcC0+cmVnbWFwLAotCQkJCQkgICAgSVNMMjkwMzVf UkVHX0RFVklDRV9JRCwKLQkJCQkJICAgIElTTDI5MDM1X0JPVVRfTUFTSywgMCk7CisJCXN0YXR1 cyA9IHJlZ21hcF9jbGVhcl9iaXRzKGNoaXAtPnJlZ21hcCwKKwkJCQkJICAgSVNMMjkwMzVfUkVH X0RFVklDRV9JRCwKKwkJCQkJICAgSVNMMjkwMzVfQk9VVF9NQVNLKTsKIAkJaWYgKHN0YXR1cyA8 IDApCiAJCQlyZXR1cm4gc3RhdHVzOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2xpZ2h0 L3N0X3V2aXMyNV9jb3JlLmMgYi9kcml2ZXJzL2lpby9saWdodC9zdF91dmlzMjVfY29yZS5jCmlu ZGV4IGQ0ZTE3MDc5YjJmNC4uZmJhMzk5NzU3NGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9s aWdodC9zdF91dmlzMjVfY29yZS5jCisrKyBiL2RyaXZlcnMvaWlvL2xpZ2h0L3N0X3V2aXMyNV9j b3JlLmMKQEAgLTMzMCw4ICszMzAsOCBAQCBzdGF0aWMgaW50IHN0X3V2aXMyNV9zdXNwZW5kKHN0 cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3QgaWlvX2RldiAqaWlvX2RldiA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwogCXN0cnVjdCBzdF91dmlzMjVfaHcgKmh3ID0gaWlvX3ByaXYoaWlvX2Rldik7 CiAKLQlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKGh3LT5yZWdtYXAsIFNUX1VWSVMyNV9SRUdf Q1RSTDFfQUREUiwKLQkJCQkgIFNUX1VWSVMyNV9SRUdfT0RSX01BU0ssIDApOworCXJldHVybiBy ZWdtYXBfY2xlYXJfYml0cyhody0+cmVnbWFwLCBTVF9VVklTMjVfUkVHX0NUUkwxX0FERFIsCisJ CQkJIFNUX1VWSVMyNV9SRUdfT0RSX01BU0spOwogfQogCiBzdGF0aWMgaW50IHN0X3V2aXMyNV9y ZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbGlnaHQv dmVtbDYwMzAuYyBiL2RyaXZlcnMvaWlvL2xpZ2h0L3ZlbWw2MDMwLmMKaW5kZXggMDQzZjIzM2Q5 YmRiLi5mN2NjYmNlNDVmMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL2xpZ2h0L3ZlbWw2MDMw LmMKKysrIGIvZHJpdmVycy9paW8vbGlnaHQvdmVtbDYwMzAuYwpAQCAtMTQ0LDggKzE0NCw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHZlbWw2MDMwX2V2ZW50X2F0dHJf Z3JvdXAgPSB7CiAKIHN0YXRpYyBpbnQgdmVtbDYwMzBfYWxzX3B3cl9vbihzdHJ1Y3QgdmVtbDYw MzBfZGF0YSAqZGF0YSkKIHsKLQlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21h cCwgVkVNTDYwMzBfUkVHX0FMU19DT05GLAotCQkJCSBWRU1MNjAzMF9BTFNfU0QsIDApOworCXJl dHVybiByZWdtYXBfY2xlYXJfYml0cyhkYXRhLT5yZWdtYXAsIFZFTUw2MDMwX1JFR19BTFNfQ09O RiwKKwkJCQkgVkVNTDYwMzBfQUxTX1NEKTsKIH0KIAogc3RhdGljIGludCB2ZW1sNjAzMF9hbHNf c2h1dF9kb3duKHN0cnVjdCB2ZW1sNjAzMF9kYXRhICpkYXRhKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9paW8vbWFnbmV0b21ldGVyL2FrODk3NC5jIGIvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL2Fr ODk3NC5jCmluZGV4IGM3NGQxMTk0M2VjNy4uNzAxNzJiOTE4ZTE2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2lpby9tYWduZXRvbWV0ZXIvYWs4OTc0LmMKKysrIGIvZHJpdmVycy9paW8vbWFnbmV0b21l dGVyL2FrODk3NC5jCkBAIC0zMjcsMTAgKzMyNyw3IEBAIHN0YXRpYyBpbnQgYWs4OTc0X3RyaWdt ZWFzKHN0cnVjdCBhazg5NzQgKmFrODk3NCkKIAl9CiAKIAkvKiBGb3JjZSBhIG1lYXN1cmVtZW50 ICovCi0JcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhhazg5NzQtPm1hcCwKLQkJCQkgIEFLODk3 NF9DVFJMMywKLQkJCQkgIEFLODk3NF9DVFJMM19GT1JDRSwKLQkJCQkgIEFLODk3NF9DVFJMM19G T1JDRSk7CisJcmV0dXJuIHJlZ21hcF9zZXRfYml0cyhhazg5NzQtPm1hcCwgQUs4OTc0X0NUUkwz LCBBSzg5NzRfQ1RSTDNfRk9SQ0UpOwogfQogCiBzdGF0aWMgaW50IGFrODk3NF9hd2FpdF9kcmR5 KHN0cnVjdCBhazg5NzQgKmFrODk3NCkKQEAgLTQzOCwxMCArNDM1LDggQEAgc3RhdGljIGludCBh azg5NzRfc2VsZnRlc3Qoc3RydWN0IGFrODk3NCAqYWs4OTc0KQogCX0KIAogCS8qIFRyaWdnZXIg c2VsZi10ZXN0ICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGFrODk3NC0+bWFwLAotCQkJ QUs4OTc0X0NUUkwzLAotCQkJQUs4OTc0X0NUUkwzX1NFTEZURVNULAotCQkJQUs4OTc0X0NUUkwz X1NFTEZURVNUKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoYWs4OTc0LT5tYXAsIEFLODk3NF9D VFJMMywKKwkJCSAgICAgIEFLODk3NF9DVFJMM19TRUxGVEVTVCk7CiAJaWYgKHJldCkgewogCQlk ZXZfZXJyKGRldiwgImNvdWxkIG5vdCB3cml0ZSBDVFJMM1xuIik7CiAJCXJldHVybiByZXQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvbW1jMzUyNDAuYyBiL2RyaXZlcnMv aWlvL21hZ25ldG9tZXRlci9tbWMzNTI0MC5jCmluZGV4IDZiOWY0YjA1NjE5MS4uZWMzNWU5NTQz YTk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvbW1jMzUyNDAuYworKysg Yi9kcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvbW1jMzUyNDAuYwpAQCAtMTg2LDkgKzE4Niw4IEBA IHN0YXRpYyBpbnQgbW1jMzUyNDBfaHdfc2V0KHN0cnVjdCBtbWMzNTI0MF9kYXRhICpkYXRhLCBi b29sIHNldCkKIAkgKiBSZWNoYXJnZSB0aGUgY2FwYWNpdG9yIGF0IFZDQVAgcGluLCByZXF1ZXN0 ZWQgdG8gYmUgaXNzdWVkCiAJICogYmVmb3JlIGEgU0VUL1JFU0VUIGNvbW1hbmQuCiAJICovCi0J cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgTU1DMzUyNDBfUkVHX0NUUkww LAotCQkJCSBNTUMzNTI0MF9DVFJMMF9SRUZJTExfQklULAotCQkJCSBNTUMzNTI0MF9DVFJMMF9S RUZJTExfQklUKTsKKwlyZXQgPSByZWdtYXBfc2V0X2JpdHMoZGF0YS0+cmVnbWFwLCBNTUMzNTI0 MF9SRUdfQ1RSTDAsCisJCQkgICAgICBNTUMzNTI0MF9DVFJMMF9SRUZJTExfQklUKTsKIAlpZiAo cmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAl1c2xlZXBfcmFuZ2UoTU1DMzUyNDBfV0FJVF9DSEFS R0VfUFVNUCwgTU1DMzUyNDBfV0FJVF9DSEFSR0VfUFVNUCArIDEpOwpAQCAtMTk4LDggKzE5Nyw3 IEBAIHN0YXRpYyBpbnQgbW1jMzUyNDBfaHdfc2V0KHN0cnVjdCBtbWMzNTI0MF9kYXRhICpkYXRh LCBib29sIHNldCkKIAllbHNlCiAJCWNvaWxfYml0ID0gTU1DMzUyNDBfQ1RSTDBfUkVTRVRfQklU OwogCi0JcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIE1NQzM1MjQwX1JF R19DVFJMMCwKLQkJCQkgIGNvaWxfYml0LCBjb2lsX2JpdCk7CisJcmV0dXJuIHJlZ21hcF9zZXRf Yml0cyhkYXRhLT5yZWdtYXAsIE1NQzM1MjQwX1JFR19DVFJMMCwgY29pbF9iaXQpOwogCiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL2JtcDI4MC1jb3JlLmMgYi9kcml2ZXJz L2lpby9wcmVzc3VyZS9ibXAyODAtY29yZS5jCmluZGV4IDA5ZjUzZDk4N2M3ZC4uZWY3ZjU0Njgz OWU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9ibXAyODAtY29yZS5jCisrKyBi L2RyaXZlcnMvaWlvL3ByZXNzdXJlL2JtcDI4MC1jb3JlLmMKQEAgLTE1NjYsOCArMTU2Niw4IEBA IHN0YXRpYyBpbnQgYm1wNTgwX252bWVtX3dyaXRlKHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBv ZmZzZXQsIHZvaWQgKnZhbCwKIAkJCWdvdG8gZXhpdDsKIAogCQkvKiBEaXNhYmxlIHByb2dyYW1t aW5nIG1vZGUgYml0ICovCi0JCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAs IEJNUDU4MF9SRUdfTlZNX0FERFIsCi0JCQkJCSBCTVA1ODBfTlZNX1BST0dfRU4sIDApOworCQly ZXQgPSByZWdtYXBfY2xlYXJfYml0cyhkYXRhLT5yZWdtYXAsIEJNUDU4MF9SRUdfTlZNX0FERFIs CisJCQkJCUJNUDU4MF9OVk1fUFJPR19FTik7CiAJCWlmIChyZXQpIHsKIAkJCWRldl9lcnIoZGF0 YS0+ZGV2LCAiZXJyb3IgcmVzZXR0aW5nIG52bSB3cml0ZVxuIik7CiAJCQlnb3RvIGV4aXQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcm94aW1pdHkvc3g5MzI0LmMgYi9kcml2ZXJzL2lpby9w cm94aW1pdHkvc3g5MzI0LmMKaW5kZXggYWEwZDE0YTQ5ZDVlLi42MjlmODNjMzdkNTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvaWlvL3Byb3hpbWl0eS9zeDkzMjQuYworKysgYi9kcml2ZXJzL2lpby9w cm94aW1pdHkvc3g5MzI0LmMKQEAgLTgzNSw5ICs4MzUsOCBAQCBzdGF0aWMgaW50IHN4OTMyNF9p bml0X2NvbXBlbnNhdGlvbihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQogCWludCByZXQ7CiAK IAkvKiBydW4gdGhlIGNvbXBlbnNhdGlvbiBwaGFzZSBvbiBhbGwgY2hhbm5lbHMgKi8KLQlyZXQg PSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBTWDkzMjRfUkVHX1NUQVQyLAotCQkJ CSBTWDkzMjRfUkVHX1NUQVQyX0NPTVBTVEFUX01BU0ssCi0JCQkJIFNYOTMyNF9SRUdfU1RBVDJf Q09NUFNUQVRfTUFTSyk7CisJcmV0ID0gcmVnbWFwX3NldF9iaXRzKGRhdGEtPnJlZ21hcCwgU1g5 MzI0X1JFR19TVEFUMiwKKwkJCSAgICAgIFNYOTMyNF9SRUdfU1RBVDJfQ09NUFNUQVRfTUFTSyk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vcHJv eGltaXR5L3N4OTM2MC5jIGIvZHJpdmVycy9paW8vcHJveGltaXR5L3N4OTM2MC5jCmluZGV4IDc1 YTFjMjlmMTRlYi4uMmI5MGJmNDVhMjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9wcm94aW1p dHkvc3g5MzYwLmMKKysrIGIvZHJpdmVycy9paW8vcHJveGltaXR5L3N4OTM2MC5jCkBAIC02NzIs OSArNjcyLDggQEAgc3RhdGljIGludCBzeDkzNjBfaW5pdF9jb21wZW5zYXRpb24oc3RydWN0IGlp b19kZXYgKmluZGlvX2RldikKIAlpbnQgcmV0OwogCiAJLyogcnVuIHRoZSBjb21wZW5zYXRpb24g cGhhc2Ugb24gYWxsIGNoYW5uZWxzICovCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEt PnJlZ21hcCwgU1g5MzYwX1JFR19TVEFULAotCQkJCSBTWDkzNjBfUkVHX1NUQVRfQ09NUFNUQVRf TUFTSywKLQkJCQkgU1g5MzYwX1JFR19TVEFUX0NPTVBTVEFUX01BU0spOworCXJldCA9IHJlZ21h cF9zZXRfYml0cyhkYXRhLT5yZWdtYXAsIFNYOTM2MF9SRUdfU1RBVCwKKwkJCSAgICAgIFNYOTM2 MF9SRUdfU1RBVF9DT01QU1RBVF9NQVNLKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcm94aW1pdHkvc3g5NTAwLmMgYi9kcml2ZXJzL2lpby9w cm94aW1pdHkvc3g5NTAwLmMKaW5kZXggNTUwZTdkM2NkNWVlLi40OWY0Y2NkOGE1YzQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvaWlvL3Byb3hpbWl0eS9zeDk1MDAuYworKysgYi9kcml2ZXJzL2lpby9w cm94aW1pdHkvc3g5NTAwLmMKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0aWMgaW50IHN4OTUwMF9p bmNfdXNlcnMoc3RydWN0IHN4OTUwMF9kYXRhICpkYXRhLCBpbnQgKmNvdW50ZXIsCiAJCS8qIEJp dCBpcyBhbHJlYWR5IGFjdGl2ZSwgbm90aGluZyB0byBkby4gKi8KIAkJcmV0dXJuIDA7CiAKLQly ZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgcmVnLCBiaXRtYXNrLCBiaXRt YXNrKTsKKwlyZXR1cm4gcmVnbWFwX3NldF9iaXRzKGRhdGEtPnJlZ21hcCwgcmVnLCBiaXRtYXNr KTsKIH0KIAogc3RhdGljIGludCBzeDk1MDBfZGVjX3VzZXJzKHN0cnVjdCBzeDk1MDBfZGF0YSAq ZGF0YSwgaW50ICpjb3VudGVyLApAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBpbnQgc3g5NTAw X2RlY191c2VycyhzdHJ1Y3Qgc3g5NTAwX2RhdGEgKmRhdGEsIGludCAqY291bnRlciwKIAkJLyog VGhlcmUgYXJlIG1vcmUgdXNlcnMsIGRvIG5vdCBkZWFjdGl2YXRlLiAqLwogCQlyZXR1cm4gMDsK IAotCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCByZWcsIGJpdG1hc2ss IDApOworCXJldHVybiByZWdtYXBfY2xlYXJfYml0cyhkYXRhLT5yZWdtYXAsIHJlZywgYml0bWFz ayk7CiB9CiAKIHN0YXRpYyBpbnQgc3g5NTAwX2luY19jaGFuX3VzZXJzKHN0cnVjdCBzeDk1MDBf ZGF0YSAqZGF0YSwgaW50IGNoYW4pCkBAIC03OTUsOCArNzk1LDggQEAgc3RhdGljIGludCBzeDk1 MDBfaW5pdF9jb21wZW5zYXRpb24oc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAlpbnQgaSwg cmV0OwogCXVuc2lnbmVkIGludCB2YWw7CiAKLQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0 YS0+cmVnbWFwLCBTWDk1MDBfUkVHX1BST1hfQ1RSTDAsCi0JCQkJIFNYOTUwMF9DSEFOX01BU0ss IFNYOTUwMF9DSEFOX01BU0spOworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhkYXRhLT5yZWdtYXAs IFNYOTUwMF9SRUdfUFJPWF9DVFJMMCwKKwkJCSAgICAgIFNYOTUwMF9DSEFOX01BU0spOwogCWlm IChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCkBAIC04MTUsOCArODE1LDggQEAgc3RhdGljIGlu dCBzeDk1MDBfaW5pdF9jb21wZW5zYXRpb24oc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikKIAl9 CiAKIG91dDoKLQlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBTWDk1MDBfUkVHX1BS T1hfQ1RSTDAsCi0JCQkgICBTWDk1MDBfQ0hBTl9NQVNLLCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0 cyhkYXRhLT5yZWdtYXAsIFNYOTUwMF9SRUdfUFJPWF9DVFJMMCwKKwkJCSAgU1g5NTAwX0NIQU5f TUFTSyk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vcHJveGlt aXR5L3N4X2NvbW1vbi5jIGIvZHJpdmVycy9paW8vcHJveGltaXR5L3N4X2NvbW1vbi5jCmluZGV4 IGZlMDdkMTQ0NGFjMy4uYTk1ZTk4MTRhYWYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9wcm94 aW1pdHkvc3hfY29tbW9uLmMKKysrIGIvZHJpdmVycy9paW8vcHJveGltaXR5L3N4X2NvbW1vbi5j CkBAIC0xMTEsMTcgKzExMSwxNiBAQCBzdGF0aWMgaW50IHN4X2NvbW1vbl9lbmFibGVfaXJxKHN0 cnVjdCBzeF9jb21tb25fZGF0YSAqZGF0YSwgdW5zaWduZWQgaW50IGlycSkKIHsKIAlpZiAoIWRh dGEtPmNsaWVudC0+aXJxKQogCQlyZXR1cm4gMDsKLQlyZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRz KGRhdGEtPnJlZ21hcCwgZGF0YS0+Y2hpcF9pbmZvLT5yZWdfaXJxX21zaywKLQkJCQkgIGlycSA8 PCBkYXRhLT5jaGlwX2luZm8tPmlycV9tc2tfb2Zmc2V0LAotCQkJCSAgaXJxIDw8IGRhdGEtPmNo aXBfaW5mby0+aXJxX21za19vZmZzZXQpOworCXJldHVybiByZWdtYXBfc2V0X2JpdHMoZGF0YS0+ cmVnbWFwLCBkYXRhLT5jaGlwX2luZm8tPnJlZ19pcnFfbXNrLAorCQkJICAgICAgIGlycSA8PCBk YXRhLT5jaGlwX2luZm8tPmlycV9tc2tfb2Zmc2V0KTsKIH0KIAogc3RhdGljIGludCBzeF9jb21t b25fZGlzYWJsZV9pcnEoc3RydWN0IHN4X2NvbW1vbl9kYXRhICpkYXRhLCB1bnNpZ25lZCBpbnQg aXJxKQogewogCWlmICghZGF0YS0+Y2xpZW50LT5pcnEpCiAJCXJldHVybiAwOwotCXJldHVybiBy ZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBkYXRhLT5jaGlwX2luZm8tPnJlZ19pcnFf bXNrLAotCQkJCSAgaXJxIDw8IGRhdGEtPmNoaXBfaW5mby0+aXJxX21za19vZmZzZXQsIDApOwor CXJldHVybiByZWdtYXBfY2xlYXJfYml0cyhkYXRhLT5yZWdtYXAsIGRhdGEtPmNoaXBfaW5mby0+ cmVnX2lycV9tc2ssCisJCQkJIGlycSA8PCBkYXRhLT5jaGlwX2luZm8tPmlycV9tc2tfb2Zmc2V0 KTsKIH0KIAogc3RhdGljIGludCBzeF9jb21tb25fdXBkYXRlX2NoYW5fZW4oc3RydWN0IHN4X2Nv bW1vbl9kYXRhICpkYXRhLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vdGVtcGVyYXR1cmUvbWx4 OTA2MzIuYyBiL2RyaXZlcnMvaWlvL3RlbXBlcmF0dXJlL21seDkwNjMyLmMKaW5kZXggOGE1N2Jl MTA4NjIwLi5lN2RlMzBmNjEzZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWlvL3RlbXBlcmF0dXJl L21seDkwNjMyLmMKKysrIGIvZHJpdmVycy9paW8vdGVtcGVyYXR1cmUvbWx4OTA2MzIuYwpAQCAt MzM0LDggKzMzNCw4IEBAIHN0YXRpYyBpbnQgbWx4OTA2MzJfcGVyZm9ybV9tZWFzdXJlbWVudChz dHJ1Y3QgbWx4OTA2MzJfZGF0YSAqZGF0YSkKIAl1bnNpZ25lZCBpbnQgcmVnX3N0YXR1czsKIAlp bnQgcmV0OwogCi0JcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgTUxYOTA2 MzJfUkVHX1NUQVRVUywKLQkJCQkgTUxYOTA2MzJfU1RBVF9EQVRBX1JEWSwgMCk7CisJcmV0ID0g cmVnbWFwX2NsZWFyX2JpdHMoZGF0YS0+cmVnbWFwLCBNTFg5MDYzMl9SRUdfU1RBVFVTLAorCQkJ CU1MWDkwNjMyX1NUQVRfREFUQV9SRFkpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby90cmlnZ2VyL3N0bTMyLXRpbWVyLXRyaWdnZXIuYyBi L2RyaXZlcnMvaWlvL3RyaWdnZXIvc3RtMzItdGltZXItdHJpZ2dlci5jCmluZGV4IGQ3NjQ0NDAz MGEyOC4uMDY4NDMyOTk1NmQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby90cmlnZ2VyL3N0bTMy LXRpbWVyLXRyaWdnZXIuYworKysgYi9kcml2ZXJzL2lpby90cmlnZ2VyL3N0bTMyLXRpbWVyLXRy aWdnZXIuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBpbnQgc3RtMzJfdGltZXJfc3RhcnQo c3RydWN0IHN0bTMyX3RpbWVyX3RyaWdnZXIgKnByaXYsCiAKIAlyZWdtYXBfd3JpdGUocHJpdi0+ cmVnbWFwLCBUSU1fUFNDLCBwcmVzY2FsZXIpOwogCXJlZ21hcF93cml0ZShwcml2LT5yZWdtYXAs IFRJTV9BUlIsIHByZCAtIDEpOwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIFRJ TV9DUjEsIFRJTV9DUjFfQVJQRSwgVElNX0NSMV9BUlBFKTsKKwlyZWdtYXBfc2V0X2JpdHMocHJp di0+cmVnbWFwLCBUSU1fQ1IxLCBUSU1fQ1IxX0FSUEUpOwogCiAJLyogRm9yY2UgbWFzdGVyIG1v ZGUgdG8gdXBkYXRlIG1vZGUgKi8KIAlpZiAoc3RtMzJfdGltZXJfaXNfdHJnbzJfbmFtZSh0cmln LT5uYW1lKSkKQEAgLTE2OSwxMCArMTY5LDEwIEBAIHN0YXRpYyBpbnQgc3RtMzJfdGltZXJfc3Rh cnQoc3RydWN0IHN0bTMyX3RpbWVyX3RyaWdnZXIgKnByaXYsCiAJCQkJICAgMHgyIDw8IFRJTV9D UjJfTU1TX1NISUZUKTsKIAogCS8qIE1ha2Ugc3VyZSB0aGF0IHJlZ2lzdGVycyBhcmUgdXBkYXRl ZCAqLwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9FR1IsIFRJTV9FR1Jf VUcsIFRJTV9FR1JfVUcpOworCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9FR1Is IFRJTV9FR1JfVUcpOwogCiAJLyogRW5hYmxlIGNvbnRyb2xsZXIgKi8KLQlyZWdtYXBfdXBkYXRl X2JpdHMocHJpdi0+cmVnbWFwLCBUSU1fQ1IxLCBUSU1fQ1IxX0NFTiwgVElNX0NSMV9DRU4pOwor CXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9DUjEsIFRJTV9DUjFfQ0VOKTsKIAlt dXRleF91bmxvY2soJnByaXYtPmxvY2spOwogCiAJcmV0dXJuIDA7CkBAIC0xODksMTkgKzE4OSwx OSBAQCBzdGF0aWMgdm9pZCBzdG0zMl90aW1lcl9zdG9wKHN0cnVjdCBzdG0zMl90aW1lcl90cmln Z2VyICpwcml2LAogCiAJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7CiAJLyogU3RvcCB0aW1lciAq LwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9DUjEsIFRJTV9DUjFfQVJQ RSwgMCk7Ci0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMSwgVElNX0NS MV9DRU4sIDApOworCXJlZ21hcF9jbGVhcl9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMSwgVElN X0NSMV9BUlBFKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9DUjEsIFRJ TV9DUjFfQ0VOKTsKIAlyZWdtYXBfd3JpdGUocHJpdi0+cmVnbWFwLCBUSU1fUFNDLCAwKTsKIAly ZWdtYXBfd3JpdGUocHJpdi0+cmVnbWFwLCBUSU1fQVJSLCAwKTsKIAogCS8qIEZvcmNlIGRpc2Fi bGUgbWFzdGVyIG1vZGUgKi8KIAlpZiAoc3RtMzJfdGltZXJfaXNfdHJnbzJfbmFtZSh0cmlnLT5u YW1lKSkKLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMiwgVElNX0NS Ml9NTVMyLCAwKTsKKwkJcmVnbWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBUSU1fQ1IyLCBU SU1fQ1IyX01NUzIpOwogCWVsc2UKLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwg VElNX0NSMiwgVElNX0NSMl9NTVMsIDApOworCQlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5yZWdt YXAsIFRJTV9DUjIsIFRJTV9DUjJfTU1TKTsKIAogCS8qIE1ha2Ugc3VyZSB0aGF0IHJlZ2lzdGVy cyBhcmUgdXBkYXRlZCAqLwotCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9F R1IsIFRJTV9FR1JfVUcsIFRJTV9FR1JfVUcpOworCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdt YXAsIFRJTV9FR1IsIFRJTV9FR1JfVUcpOwogCiAJaWYgKHByaXYtPmVuYWJsZWQpIHsKIAkJcHJp di0+ZW5hYmxlZCA9IGZhbHNlOwpAQCAtNDk4LDExICs0OTgsOSBAQCBzdGF0aWMgaW50IHN0bTMy X2NvdW50ZXJfd3JpdGVfcmF3KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCiAJCQkJcHJpdi0+ ZW5hYmxlZCA9IHRydWU7CiAJCQkJY2xrX2VuYWJsZShwcml2LT5jbGspOwogCQkJfQotCQkJcmVn bWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMSwgVElNX0NSMV9DRU4sCi0JCQkJ CSAgIFRJTV9DUjFfQ0VOKTsKKwkJCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9D UjEsIFRJTV9DUjFfQ0VOKTsKIAkJfSBlbHNlIHsKLQkJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2 LT5yZWdtYXAsIFRJTV9DUjEsIFRJTV9DUjFfQ0VOLAotCQkJCQkgICAwKTsKKwkJCXJlZ21hcF9j bGVhcl9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMSwgVElNX0NSMV9DRU4pOwogCQkJaWYgKHBy aXYtPmVuYWJsZWQpIHsKIAkJCQlwcml2LT5lbmFibGVkID0gZmFsc2U7CiAJCQkJY2xrX2Rpc2Fi bGUocHJpdi0+Y2xrKTsKQEAgLTU1NSw3ICs1NTMsNyBAQCBzdGF0aWMgaW50IHN0bTMyX3NldF90 cmlnZ2VyX21vZGUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwKIHsKIAlzdHJ1Y3Qgc3RtMzJf dGltZXJfdHJpZ2dlciAqcHJpdiA9IGlpb19wcml2KGluZGlvX2Rldik7CiAKLQlyZWdtYXBfdXBk YXRlX2JpdHMocHJpdi0+cmVnbWFwLCBUSU1fU01DUiwgVElNX1NNQ1JfU01TLCBUSU1fU01DUl9T TVMpOworCXJlZ21hcF9zZXRfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9TTUNSLCBUSU1fU01DUl9T TVMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC02ODMsNyArNjgxLDcgQEAgc3RhdGljIHNzaXplX3Qg c3RtMzJfY291bnRfc2V0X3ByZXNldChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LAogCQlyZXR1 cm4gcmV0OwogCiAJLyogVElNeF9BUlIgcmVnaXN0ZXIgc2hvdWxkbid0IGJlIGJ1ZmZlcmVkIChB UlBFPTApICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMSwgVElN X0NSMV9BUlBFLCAwKTsKKwlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9DUjEs IFRJTV9DUjFfQVJQRSk7CiAJcmVnbWFwX3dyaXRlKHByaXYtPnJlZ21hcCwgVElNX0FSUiwgcHJl c2V0KTsKIAogCXJldHVybiBsZW47CkBAIC03NTcsOSArNzU1LDkgQEAgc3RhdGljIHZvaWQgc3Rt MzJfdGltZXJfZGV0ZWN0X3RyZ28yKHN0cnVjdCBzdG0zMl90aW1lcl90cmlnZ2VyICpwcml2KQog CSAqIE1hc3RlciBtb2RlIHNlbGVjdGlvbiAyIGJpdHMgY2FuIG9ubHkgYmUgd3JpdHRlbiBhbmQg cmVhZCBiYWNrIHdoZW4KIAkgKiB0aW1lciBzdXBwb3J0cyBpdC4KIAkgKi8KLQlyZWdtYXBfdXBk YXRlX2JpdHMocHJpdi0+cmVnbWFwLCBUSU1fQ1IyLCBUSU1fQ1IyX01NUzIsIFRJTV9DUjJfTU1T Mik7CisJcmVnbWFwX3NldF9iaXRzKHByaXYtPnJlZ21hcCwgVElNX0NSMiwgVElNX0NSMl9NTVMy KTsKIAlyZWdtYXBfcmVhZChwcml2LT5yZWdtYXAsIFRJTV9DUjIsICZ2YWwpOwotCXJlZ21hcF91 cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIFRJTV9DUjIsIFRJTV9DUjJfTU1TMiwgMCk7CisJcmVn bWFwX2NsZWFyX2JpdHMocHJpdi0+cmVnbWFwLCBUSU1fQ1IyLCBUSU1fQ1IyX01NUzIpOwogCXBy aXYtPmhhc190cmdvMiA9ICEhdmFsOwogfQogCkBAIC04MjAsNyArODE4LDcgQEAgc3RhdGljIHZv aWQgc3RtMzJfdGltZXJfdHJpZ2dlcl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAkvKiBDaGVjayBpZiBub2JvZHkgZWxzZSB1c2UgdGhlIHRpbWVyLCB0aGVuIGRpc2FibGUg aXQgKi8KIAlyZWdtYXBfcmVhZChwcml2LT5yZWdtYXAsIFRJTV9DQ0VSLCAmdmFsKTsKIAlpZiAo ISh2YWwgJiBUSU1fQ0NFUl9DQ1hFKSkKLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21h cCwgVElNX0NSMSwgVElNX0NSMV9DRU4sIDApOworCQlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5y ZWdtYXAsIFRJTV9DUjEsIFRJTV9DUjFfQ0VOKTsKIAogCWlmIChwcml2LT5lbmFibGVkKQogCQlj bGtfZGlzYWJsZShwcml2LT5jbGspOwpAQCAtODQxLDcgKzgzOSw3IEBAIHN0YXRpYyBpbnQgc3Rt MzJfdGltZXJfdHJpZ2dlcl9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcmVnbWFwX3Jl YWQocHJpdi0+cmVnbWFwLCBUSU1fU01DUiwgJnByaXYtPmJhay5zbWNyKTsKIAogCQkvKiBEaXNh YmxlIHRoZSB0aW1lciAqLwotCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBUSU1f Q1IxLCBUSU1fQ1IxX0NFTiwgMCk7CisJCXJlZ21hcF9jbGVhcl9iaXRzKHByaXYtPnJlZ21hcCwg VElNX0NSMSwgVElNX0NSMV9DRU4pOwogCQljbGtfZGlzYWJsZShwcml2LT5jbGspOwogCX0KIAoK YmFzZS1jb21taXQ6IDE2MTNlNjA0ZGYwY2QzNTljZjJhN2ZiZDliZTdhMGJjZmFjZmFiZDAKLS0g CjIuNDUuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFt bG9naWMK