Received: by 2002:ab2:7855:0:b0:1f9:5764:f03e with SMTP id m21csp940314lqp; Thu, 23 May 2024 04:57:56 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWxBrWeS1YQmrGGqKjdyVRsIakIVOrvUF80q1k8bck9OpK2PnrKbyMfVP4Cb5IvQcTrbrm93bVVKnex6ckzUIVvh1U0JVciy90D0wzN6w== X-Google-Smtp-Source: AGHT+IEWopknlJTkmu7VmGtez01TJrCE28HOOvFjaVY9bpDPGtVMeLrzrt8wkUSqGPxTg+jU98Ce X-Received: by 2002:a05:6a20:6a2c:b0:1b0:1025:2e3 with SMTP id adf61e73a8af0-1b1f8a8b4b1mr5411723637.57.1716465476546; Thu, 23 May 2024 04:57:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716465476; cv=pass; d=google.com; s=arc-20160816; b=WzDERkd8JFWhgWB+gtZdUItJHDRDH2svQiW9mBqEZVAE1wjQ0nmdWZfvvBVAwMvaVu 4IyfCfFRD+0cZCYSjdpQNwyTUTw8AuYhpQQTLzT5XmZZlTT4Iz1rpQ1Kh29zGmYBgl9e g7Zizoyj7b/vhNgJKfwBjpB/ZwxE7GOOo6lKs6RvsW46JoKvy+7ntmZ6LkOrF/jYZvfu Ro/YCQyf5Oo0EIJNQJ4rcqLhZyuIpa85L/sPBZMEQWcZ979ll9oigZrUMRaTBtr/amjw LTyLYTX/Azygw3de2MbC+g3r9gVcGiV3UR7tquj4zDZz/t3JLYD26o8P1SKk3TTmsWrs hxMw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:mime-version:list-unsubscribe:list-subscribe:list-id :precedence:content-transfer-encoding:references:in-reply-to:subject :cc:to:from:date:dkim-signature; bh=HLUpdqLD5QtZWk9t9vj+pobgWEtQMfsfaykp8VajVlo=; fh=2/YKnn9SqQtg8tB4RjcV6DdpxKx2fwbqGnSKDKyDDbU=; b=N5QL4/G592FKUCSBkCBrMFuskU9W1MnG9YjwvC8CO338oIRTbhMM4+RbnIC38e4Sn4 ab78CpPNqilUntJg5l4khiQOQ7e3UZolwrMbZIjg9XsO4FIUjc1ho5Rg9Z/4P19Fu0cS pMDhdnMEA+S26AgdgX2TgIFxkXVjp0L37xyl+6IhTqbeWiZb9ilCctuioXkmH/266hms wLNnfttNPrBdzs+wTaWthH86xB8fRp6WN+mKF78iULfNPwNYOFi1i54KH9ct+yeZ9B4+ cGSvOMQV4TTLP9RzoL8bnYQ5iSAENGtoS2BnYE7QQTP7U0/CI1XHeIBHW1i7oKYbC2J/ rWRA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=neutral (body hash did not verify) header.i=@163.com header.s=s110527 header.b=P92JTHks; arc=pass (i=1 spf=pass spfdomain=163.com dmarc=pass fromdomain=163.com); spf=pass (google.com: domain of linux-kernel+bounces-187422-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-187422-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=163.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id 41be03b00d2f7-659a7c4db23si524773a12.865.2024.05.23.04.57.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 04:57:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-187422-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@163.com header.s=s110527 header.b=P92JTHks; arc=pass (i=1 spf=pass spfdomain=163.com dmarc=pass fromdomain=163.com); spf=pass (google.com: domain of linux-kernel+bounces-187422-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-187422-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=163.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id C9B4AB21F72 for ; Thu, 23 May 2024 11:56:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3BA9F13C66A; Thu, 23 May 2024 11:56:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=163.com header.i=@163.com header.b="P92JTHks" Received: from m15.mail.163.com (m15.mail.163.com [45.254.50.219]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BD4BF13BAFA; Thu, 23 May 2024 11:56:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.254.50.219 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716465390; cv=none; b=nAXj8Op3+kqe6JTDf1/+vyRfqbTkCacKMN48p5ypyYxqEms1QWP1vGYEYhBUhzgefEaxe5Q4UT2QmCD2mn5Ln5yL/+y4zOg8C0WKOET6qBqMZpXF3Rr0sKc1APgn8+pJYYuxpZxPvP9sCFUcX3B9OGgUjgnIbAj4t+PTDz0HePc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716465390; c=relaxed/simple; bh=HLUpdqLD5QtZWk9t9vj+pobgWEtQMfsfaykp8VajVlo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=frvK6FR6WXq6TgBBdkMpzVKvPtXS6ATQEf+0YTXtji1JQDIQ74ICfMJaH7YcMvPgIFHy/twAaavWQraQXI1oYG1gDEMmdMeP9FbwysXpKo/yVLkDNjPJWYkEmf2ZTtFGPNmPUCfG3oVPbodzdfIFx/JGt9O7C0svL29mIJYSXRY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=fail (1024-bit key) header.d=163.com header.i=@163.com header.b=P92JTHks reason="signature verification failed"; arc=none smtp.client-ip=45.254.50.219 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=V6cevaGoPw+p5C0OrBR3ZD1EyVTB935HFGAJvdvz56Q=; b=P 92JTHks+2rYrvOhqiGYRtgwiYaHpdc5s9L3FxCValYsHsfeAOKb0a7pp0Hhs0l0W XuWmSIOWgl0ep9B5oiB0Zrcy6bUlUG7szsLt+79h67N5v4ytKWMf6tp/R46W49CS vQ/DFvKGft1y0T/GISSREChEWDOM4Sg12WCDjYVUA8= Received: from andyshrk$163.com ( [58.22.7.114] ) by ajax-webmail-wmsvr-40-140 (Coremail) ; Thu, 23 May 2024 19:55:05 +0800 (CST) Date: Thu, 23 May 2024 19:55:05 +0800 (CST) From: "Andy Yan" To: "Maxime Ripard" Cc: "Maarten Lankhorst" , "Thomas Zimmermann" , "David Airlie" , "Daniel Vetter" , "Jonathan Corbet" , "Sandy Huang" , =?UTF-8?Q?Heiko_St=C3=BCbner?= , "Chen-Yu Tsai" , "Jernej Skrabec" , "Samuel Holland" , "Andy Yan" , "Hans Verkuil" , "Sebastian Wick" , =?UTF-8?Q?Ville_Syrj=C3=A4l=C3=A4?= , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev Subject: Re:[PATCH v14 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20230109(dcb5de15) Copyright (c) 2002-2024 www.mailtech.cn 163com In-Reply-To: <20240521-kms-hdmi-connector-state-v14-27-51950db4fedb@kernel.org> References: <20240521-kms-hdmi-connector-state-v14-0-51950db4fedb@kernel.org> <20240521-kms-hdmi-connector-state-v14-27-51950db4fedb@kernel.org> X-NTES-SC: AL_Qu2aBPiduksr4ymeZukZnEobh+Y5UcK2s/ki2YFXN5k0hyXJ/ikYenh9A3Hv6sSAAhCNtx+aahdTwOZ2U4pBc5pQllFmDAbxV490Oz+WsKrE Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <39167029.a47a.18fa54e0976.Coremail.andyshrk@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:_____wD33zyaLk9mkPwSAA--.58260W X-CM-SenderInfo: 5dqg52xkunqiywtou0bp/xtbBEB-nXmVOEJRWqQABsn X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CgpIaSBNYXhpbWXvvIwKCkF0IDIwMjQtMDUtMjEgMTg6MTQ6MDAsICJNYXhpbWUgUmlwYXJkIiA8 bXJpcGFyZEBrZXJuZWwub3JnPiB3cm90ZToKPlRoZSBuZXcgSERNSSBjb25uZWN0b3IgaW5mcmFz dHJ1Y3R1cmUgYWxsb3dzIHRvIHJlbW92ZSBzb21lIGJvaWxlcnBsYXRlLAo+ZXNwZWNpYWxseSB0 byBnZW5lcmF0ZSBpbmZvZnJhbWVzLiBMZXQncyBzd2l0Y2ggdG8gaXQuCj4KPlJldmlld2VkLWJ5 OiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgo+QWNrZWQtYnk6IEhlaWtvIFN0dWVi bmVyIDxoZWlrb0BzbnRlY2guZGU+Cj5TaWduZWQtb2ZmLWJ5OiBNYXhpbWUgUmlwYXJkIDxtcmlw YXJkQGtlcm5lbC5vcmc+CgpBY2tlZC1ieTogQW5keSBZYW4gPGFuZHlzaHJrQDE2My5jb20+CgoK Cj4tLS0KPiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZyAgICAgICB8ICAgMyArCj4g ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jICAgfCAxNzIgKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2hkbWlf ZW5jLmMgfCAgIDMgKwo+IDMgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTA5IGRl bGV0aW9ucygtKQo+Cj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25m aWcgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZwo+aW5kZXggMWJmM2UyODI5Y2Qw Li43ZGY4NzVlMzg1MTcgMTAwNjQ0Cj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2Nv bmZpZwo+KysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWcKPkBAIC03MiwxMCAr NzIsMTMgQEAgY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJCj4gCSAgZW5hYmxlIE1JUEkgRFNJ IG9uIFJLMzI4OCBvciBSSzMzOTkgYmFzZWQgU29DLCB5b3Ugc2hvdWxkCj4gCSAgc2VsZWN0IHRo aXMgb3B0aW9uLgo+IAo+IGNvbmZpZyBST0NLQ0hJUF9JTk5PX0hETUkKPiAJYm9vbCAiUm9ja2No aXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgSW5ub3NpbGljb24gSERNSSIKPisJc2VsZWN0IERS TV9ESVNQTEFZX0hETUlfSEVMUEVSCj4rCXNlbGVjdCBEUk1fRElTUExBWV9IRE1JX1NUQVRFX0hF TFBFUgo+KwlzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSCj4gCWhlbHAKPiAJICBUaGlzIHNlbGVj dHMgc3VwcG9ydCBmb3IgUm9ja2NoaXAgU29DIHNwZWNpZmljIGV4dGVuc2lvbnMKPiAJICBmb3Ig dGhlIElubm9zaWxpY29uIEhETUkgZHJpdmVyLiBJZiB5b3Ugd2FudCB0byBlbmFibGUKPiAJICBI RE1JIG9uIFJLMzAzNiBiYXNlZCBTb0MsIHlvdSBzaG91bGQgc2VsZWN0IHRoaXMgb3B0aW9uLgo+ IAo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+aW5kZXggM2RmMmNmY2Y5OTk4Li4y MjQxZTUzYTI5NDYgMTAwNjQ0Cj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19o ZG1pLmMKPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+QEAgLTIw LDEwICsyMCwxMyBAQAo+ICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAjaW5jbHVkZSA8ZHJt L2RybV9vZi5oPgo+ICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgo+ICNpbmNsdWRl IDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Cj4gCj4rI2luY2x1ZGUgPGRybS9kaXNwbGF5 L2RybV9oZG1pX2hlbHBlci5oPgo+KyNpbmNsdWRlIDxkcm0vZGlzcGxheS9kcm1faGRtaV9zdGF0 ZV9oZWxwZXIuaD4KPisKPiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgo+IAo+ICNpbmNs dWRlICJpbm5vX2hkbWkuaCIKPiAKPiAjZGVmaW5lIElOTk9fSERNSV9NSU5fVE1EU19DTE9DSyAg MjUwMDAwMDBVCj5AQCAtNjUsMTMgKzY4LDExIEBAIHN0cnVjdCBpbm5vX2hkbWkgewo+IAljb25z dCBzdHJ1Y3QgaW5ub19oZG1pX3ZhcmlhbnQgKnZhcmlhbnQ7Cj4gfTsKPiAKPiBzdHJ1Y3QgaW5u b19oZG1pX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCWJh c2U7Cj4tCXVuc2lnbmVkIGludAkJCWVuY19vdXRfZm9ybWF0Owo+IAl1bnNpZ25lZCBpbnQJCQlj b2xvcmltZXRyeTsKPi0JYm9vbAkJCQlyZ2JfbGltaXRlZF9yYW5nZTsKPiB9Owo+IAo+IHN0YXRp YyBzdHJ1Y3QgaW5ub19oZG1pICplbmNvZGVyX3RvX2lubm9faGRtaShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCj4gewo+IAlzdHJ1Y3Qgcm9ja2NoaXBfZW5jb2RlciAqcmtlbmNvZGVyID0g dG9fcm9ja2NoaXBfZW5jb2RlcihlbmNvZGVyKTsKPkBAIC0yNTUsOTAgKzI1Niw1MyBAQCBzdGF0 aWMgdm9pZCBpbm5vX2hkbWlfcmVzZXQoc3RydWN0IGlubm9faGRtaSAqaGRtaSkKPiAJaGRtaV9t b2RiKGhkbWksIEhETUlfU1lTX0NUUkwsIG1zaywgdmFsKTsKPiAKPiAJaW5ub19oZG1pX3N0YW5k YnkoaGRtaSk7Cj4gfQo+IAo+LXN0YXRpYyB2b2lkIGlubm9faGRtaV9kaXNhYmxlX2ZyYW1lKHN0 cnVjdCBpbm5vX2hkbWkgKmhkbWksCj4tCQkJCSAgICBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUg dHlwZSkKPitzdGF0aWMgaW50IGlubm9faGRtaV9kaXNhYmxlX2ZyYW1lKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4rCQkJCSAgIGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBl KQo+IHsKPi0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZoZG1pLT5jb25uZWN0 b3I7Cj4tCj4tCWlmICh0eXBlICE9IEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJKSB7Cj4tCQlkcm1f ZXJyKGNvbm5lY3Rvci0+ZGV2LAo+LQkJCSJVbnN1cHBvcnRlZCBpbmZvZnJhbWUgdHlwZTogJXVc biIsIHR5cGUpOwo+LQkJcmV0dXJuOwo+LQl9Cj4tCj4tCWhkbWlfd3JpdGViKGhkbWksIEhETUlf Q09OVFJPTF9QQUNLRVRfQlVGX0lOREVYLCBJTkZPRlJBTUVfQVZJKTsKPi19Cj4tCj4tc3RhdGlj IGludCBpbm5vX2hkbWlfdXBsb2FkX2ZyYW1lKHN0cnVjdCBpbm5vX2hkbWkgKmhkbWksCj4tCQkJ CSAgdW5pb24gaGRtaV9pbmZvZnJhbWUgKmZyYW1lLCBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUg dHlwZSkKPi17Cj4tCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaGRtaS0+Y29u bmVjdG9yOwo+LQl1OCBwYWNrZWRfZnJhbWVbSERNSV9NQVhJTVVNX0lORk9fRlJBTUVfU0laRV07 Cj4tCXNzaXplX3QgcmMsIGk7Cj4rCXN0cnVjdCBpbm5vX2hkbWkgKmhkbWkgPSBjb25uZWN0b3Jf dG9faW5ub19oZG1pKGNvbm5lY3Rvcik7Cj4gCj4gCWlmICh0eXBlICE9IEhETUlfSU5GT0ZSQU1F X1RZUEVfQVZJKSB7Cj4gCQlkcm1fZXJyKGNvbm5lY3Rvci0+ZGV2LAo+IAkJCSJVbnN1cHBvcnRl ZCBpbmZvZnJhbWUgdHlwZTogJXVcbiIsIHR5cGUpOwo+IAkJcmV0dXJuIDA7Cj4gCX0KPiAKPi0J aW5ub19oZG1pX2Rpc2FibGVfZnJhbWUoaGRtaSwgdHlwZSk7Cj4rCWhkbWlfd3JpdGViKGhkbWks IEhETUlfQ09OVFJPTF9QQUNLRVRfQlVGX0lOREVYLCBJTkZPRlJBTUVfQVZJKTsKPiAKPi0JcmMg PSBoZG1pX2luZm9mcmFtZV9wYWNrKGZyYW1lLCBwYWNrZWRfZnJhbWUsCj4tCQkJCSBzaXplb2Yo cGFja2VkX2ZyYW1lKSk7Cj4tCWlmIChyYyA8IDApCj4tCQlyZXR1cm4gcmM7Cj4rCXJldHVybiAw Owo+K30KPiAKPi0JZm9yIChpID0gMDsgaSA8IHJjOyBpKyspCj4rc3RhdGljIGludCBpbm5vX2hk bWlfdXBsb2FkX2ZyYW1lKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4rCQkJCSAg ZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4rCQkJCSAgY29uc3QgdTggKmJ1ZmZlciwg c2l6ZV90IGxlbikKPit7Cj4rCXN0cnVjdCBpbm5vX2hkbWkgKmhkbWkgPSBjb25uZWN0b3JfdG9f aW5ub19oZG1pKGNvbm5lY3Rvcik7Cj4rCXU4IHBhY2tlZF9mcmFtZVtIRE1JX01BWElNVU1fSU5G T19GUkFNRV9TSVpFXTsKPisJc3NpemVfdCBpOwo+Kwo+KwlpZiAodHlwZSAhPSBIRE1JX0lORk9G UkFNRV9UWVBFX0FWSSkgewo+KwkJZHJtX2Vycihjb25uZWN0b3ItPmRldiwKPisJCQkiVW5zdXBw b3J0ZWQgaW5mb2ZyYW1lIHR5cGU6ICV1XG4iLCB0eXBlKTsKPisJCXJldHVybiAwOwo+Kwl9Cj4r Cj4rCWlubm9faGRtaV9kaXNhYmxlX2ZyYW1lKGNvbm5lY3RvciwgdHlwZSk7Cj4rCj4rCWZvciAo aSA9IDA7IGkgPCBsZW47IGkrKykKPiAJCWhkbWlfd3JpdGViKGhkbWksIEhETUlfQ09OVFJPTF9Q QUNLRVRfQUREUiArIGksCj4gCQkJICAgIHBhY2tlZF9mcmFtZVtpXSk7Cj4gCj4gCXJldHVybiAw Owo+IH0KPiAKPi1zdGF0aWMgaW50IGlubm9faGRtaV9jb25maWdfdmlkZW9fYXZpKHN0cnVjdCBp bm5vX2hkbWkgKmhkbWksCj4tCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+LXsKPi0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZoZG1pLT5jb25uZWN0 b3I7Cj4tCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlID0gY29ubmVjdG9y LT5zdGF0ZTsKPi0Jc3RydWN0IGlubm9faGRtaV9jb25uZWN0b3Jfc3RhdGUgKmlubm9fY29ubl9z dGF0ZSA9Cj4tCQkJCQl0b19pbm5vX2hkbWlfY29ubl9zdGF0ZShjb25uX3N0YXRlKTsKPi0JdW5p b24gaGRtaV9pbmZvZnJhbWUgZnJhbWU7Cj4tCWludCByYzsKPi0KPi0JcmMgPSBkcm1faGRtaV9h dmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZS5hdmksCj4tCQkJCQkJICAgICAg JmhkbWktPmNvbm5lY3RvciwKPi0JCQkJCQkgICAgICBtb2RlKTsKPi0JaWYgKHJjKSB7Cj4tCQlp bm5vX2hkbWlfZGlzYWJsZV9mcmFtZShoZG1pLCBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSSk7Cj4t CQlyZXR1cm4gcmM7Cj4tCX0KPi0KPi0JaWYgKGlubm9fY29ubl9zdGF0ZS0+ZW5jX291dF9mb3Jt YXQgPT0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NCkKPi0JCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0g SERNSV9DT0xPUlNQQUNFX1lVVjQ0NDsKPi0JZWxzZSBpZiAoaW5ub19jb25uX3N0YXRlLT5lbmNf b3V0X2Zvcm1hdCA9PSBIRE1JX0NPTE9SU1BBQ0VfWVVWNDIyKQo+LQkJZnJhbWUuYXZpLmNvbG9y c3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfWVVWNDIyOwo+LQllbHNlCj4tCQlmcmFtZS5hdmkuY29s b3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9SR0I7Cj4tCj4tCWlmIChpbm5vX2Nvbm5fc3RhdGUt PmVuY19vdXRfZm9ybWF0ID09IEhETUlfQ09MT1JTUEFDRV9SR0IpIHsKPi0JCWRybV9oZG1pX2F2 aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2UoJmZyYW1lLmF2aSwKPi0JCQkJCQkgICBjb25uZWN0b3Is IG1vZGUsCj4tCQkJCQkJICAgaW5ub19jb25uX3N0YXRlLT5yZ2JfbGltaXRlZF9yYW5nZSA/Cj4t CQkJCQkJICAgSERNSV9RVUFOVElaQVRJT05fUkFOR0VfTElNSVRFRCA6Cj4tCQkJCQkJICAgSERN SV9RVUFOVElaQVRJT05fUkFOR0VfRlVMTCk7Cj4tCX0gZWxzZSB7Cj4tCQlmcmFtZS5hdmkucXVh bnRpemF0aW9uX3JhbmdlID0gSERNSV9RVUFOVElaQVRJT05fUkFOR0VfREVGQVVMVDsKPi0JCWZy YW1lLmF2aS55Y2NfcXVhbnRpemF0aW9uX3JhbmdlID0KPi0JCQlIRE1JX1lDQ19RVUFOVElaQVRJ T05fUkFOR0VfTElNSVRFRDsKPi0JfQo+LQo+LQlyZXR1cm4gaW5ub19oZG1pX3VwbG9hZF9mcmFt ZShoZG1pLCAmZnJhbWUsIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJKTsKPi19Cj4rc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hkbWlfZnVuY3MgaW5ub19oZG1pX2hkbWlfY29ubmVj dG9yX2Z1bmNzID0gewo+KwkuY2xlYXJfaW5mb2ZyYW1lCT0gaW5ub19oZG1pX2Rpc2FibGVfZnJh bWUsCj4rCS53cml0ZV9pbmZvZnJhbWUJPSBpbm5vX2hkbWlfdXBsb2FkX2ZyYW1lLAo+K307Cj4g Cj4gc3RhdGljIGludCBpbm5vX2hkbWlfY29uZmlnX3ZpZGVvX2NzYyhzdHJ1Y3QgaW5ub19oZG1p ICpoZG1pKQo+IHsKPiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZoZG1pLT5j b25uZWN0b3I7Cj4gCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlID0gY29u bmVjdG9yLT5zdGF0ZTsKPkBAIC0zNTksMTIgKzMyMywxMiBAQCBzdGF0aWMgaW50IGlubm9faGRt aV9jb25maWdfdmlkZW9fY3NjKHN0cnVjdCBpbm5vX2hkbWkgKmhkbWkpCj4gCXZhbHVlID0gdl9W SURFT19JTlBVVF9CSVRTKFZJREVPX0lOUFVUXzhCSVRTKSB8Cj4gCQl2X1ZJREVPX09VVFBVVF9D T0xPUigwKSB8Cj4gCQl2X1ZJREVPX0lOUFVUX0NTUCgwKTsKPiAJaGRtaV93cml0ZWIoaGRtaSwg SERNSV9WSURFT19DT05UUkwyLCB2YWx1ZSk7Cj4gCj4tCWlmIChpbm5vX2Nvbm5fc3RhdGUtPmVu Y19vdXRfZm9ybWF0ID09IEhETUlfQ09MT1JTUEFDRV9SR0IpIHsKPi0JCWlmIChpbm5vX2Nvbm5f c3RhdGUtPnJnYl9saW1pdGVkX3JhbmdlKSB7Cj4rCWlmIChjb25uX3N0YXRlLT5oZG1pLm91dHB1 dF9mb3JtYXQgPT0gSERNSV9DT0xPUlNQQUNFX1JHQikgewo+KwkJaWYgKGNvbm5fc3RhdGUtPmhk bWkuaXNfbGltaXRlZF9yYW5nZSkgewo+IAkJCWNzY19tb2RlID0gQ1NDX1JHQl8wXzI1NV9UT19S R0JfMTZfMjM1XzhCSVQ7Cj4gCQkJYXV0b19jc2MgPSBBVVRPX0NTQ19ESVNBQkxFOwo+IAkJCWMw X2MyX2NoYW5nZSA9IEMwX0MyX0NIQU5HRV9ESVNBQkxFOwo+IAkJCWNzY19lbmFibGUgPSB2X0NT Q19FTkFCTEU7Cj4gCj5AQCAtMzc4LDE4ICszNDIsMTggQEAgc3RhdGljIGludCBpbm5vX2hkbWlf Y29uZmlnX3ZpZGVvX2NzYyhzdHJ1Y3QgaW5ub19oZG1pICpoZG1pKQo+IAkJCQkgIHZfVklERU9f QzBfQzJfU1dBUChDMF9DMl9DSEFOR0VfRElTQUJMRSkpOwo+IAkJCXJldHVybiAwOwo+IAkJfQo+ IAl9IGVsc2Ugewo+IAkJaWYgKGlubm9fY29ubl9zdGF0ZS0+Y29sb3JpbWV0cnkgPT0gSERNSV9D T0xPUklNRVRSWV9JVFVfNjAxKSB7Cj4tCQkJaWYgKGlubm9fY29ubl9zdGF0ZS0+ZW5jX291dF9m b3JtYXQgPT0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NCkgewo+KwkJCWlmIChjb25uX3N0YXRlLT5o ZG1pLm91dHB1dF9mb3JtYXQgPT0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NCkgewo+IAkJCQljc2Nf bW9kZSA9IENTQ19SR0JfMF8yNTVfVE9fSVRVNjAxXzE2XzIzNV84QklUOwo+IAkJCQlhdXRvX2Nz YyA9IEFVVE9fQ1NDX0RJU0FCTEU7Cj4gCQkJCWMwX2MyX2NoYW5nZSA9IEMwX0MyX0NIQU5HRV9E SVNBQkxFOwo+IAkJCQljc2NfZW5hYmxlID0gdl9DU0NfRU5BQkxFOwo+IAkJCX0KPiAJCX0gZWxz ZSB7Cj4tCQkJaWYgKGlubm9fY29ubl9zdGF0ZS0+ZW5jX291dF9mb3JtYXQgPT0gSERNSV9DT0xP UlNQQUNFX1lVVjQ0NCkgewo+KwkJCWlmIChjb25uX3N0YXRlLT5oZG1pLm91dHB1dF9mb3JtYXQg PT0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NCkgewo+IAkJCQljc2NfbW9kZSA9IENTQ19SR0JfMF8y NTVfVE9fSVRVNzA5XzE2XzIzNV84QklUOwo+IAkJCQlhdXRvX2NzYyA9IEFVVE9fQ1NDX0RJU0FC TEU7Cj4gCQkJCWMwX2MyX2NoYW5nZSA9IEMwX0MyX0NIQU5HRV9ESVNBQkxFOwo+IAkJCQljc2Nf ZW5hYmxlID0gdl9DU0NfRU5BQkxFOwo+IAkJCX0KPkBAIC00NjAsNDMgKzQyNCw1MiBAQCBzdGF0 aWMgaW50IGlubm9faGRtaV9jb25maWdfdmlkZW9fdGltaW5nKHN0cnVjdCBpbm5vX2hkbWkgKmhk bWksCj4gCj4gCXJldHVybiAwOwo+IH0KPiAKPiBzdGF0aWMgaW50IGlubm9faGRtaV9zZXR1cChz dHJ1Y3QgaW5ub19oZG1pICpoZG1pLAo+LQkJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlKQo+KwkJCSAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiB7Cj4tCXN0cnVj dCBkcm1fZGlzcGxheV9pbmZvICpkaXNwbGF5ID0gJmhkbWktPmNvbm5lY3Rvci5kaXNwbGF5X2lu Zm87Cj4tCXVuc2lnbmVkIGxvbmcgbXBpeGVsY2xvY2sgPSBtb2RlLT5jbG9jayAqIDEwMDA7Cj4r CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaGRtaS0+Y29ubmVjdG9yOwo+Kwlz dHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGlzcGxheSA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5m bzsKPisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+KwlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwo+Kwo+KwluZXdfY29ubl9zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4r CWlmIChXQVJOX09OKCFuZXdfY29ubl9zdGF0ZSkpCj4rCQlyZXR1cm4gLUVJTlZBTDsKPisKPisJ bmV3X2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgbmV3 X2Nvbm5fc3RhdGUtPmNydGMpOwo+KwlpZiAoV0FSTl9PTighbmV3X2NydGNfc3RhdGUpKQo+KwkJ cmV0dXJuIC1FSU5WQUw7Cj4gCj4gCS8qIE11dGUgdmlkZW8gYW5kIGF1ZGlvIG91dHB1dCAqLwo+ IAloZG1pX21vZGIoaGRtaSwgSERNSV9BVl9NVVRFLCBtX0FVRElPX01VVEUgfCBtX1ZJREVPX0JM QUNLLAo+IAkJICB2X0FVRElPX01VVEUoMSkgfCB2X1ZJREVPX01VVEUoMSkpOwo+IAo+IAkvKiBT ZXQgSERNSSBNb2RlICovCj4gCWhkbWlfd3JpdGViKGhkbWksIEhETUlfSERDUF9DVFJMLAo+IAkJ ICAgIHZfSERNSV9EVkkoZGlzcGxheS0+aXNfaGRtaSkpOwo+IAo+LQlpbm5vX2hkbWlfY29uZmln X3ZpZGVvX3RpbWluZyhoZG1pLCBtb2RlKTsKPisJaW5ub19oZG1pX2NvbmZpZ192aWRlb190aW1p bmcoaGRtaSwgJm5ld19jcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlKTsKPiAKPiAJaW5ub19oZG1p X2NvbmZpZ192aWRlb19jc2MoaGRtaSk7Cj4gCj4tCWlmIChkaXNwbGF5LT5pc19oZG1pKQo+LQkJ aW5ub19oZG1pX2NvbmZpZ192aWRlb19hdmkoaGRtaSwgbW9kZSk7Cj4rCWRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9oZG1pX3VwZGF0ZV9pbmZvZnJhbWVzKGNvbm5lY3Rvciwgc3RhdGUpOwo+ IAo+IAkvKgo+IAkgKiBXaGVuIElQIGNvbnRyb2xsZXIgaGF2ZSBjb25maWd1cmVkIHRvIGFuIGFj Y3VyYXRlIHZpZGVvCj4gCSAqIHRpbWluZywgdGhlbiB0aGUgVE1EUyBjbG9jayBzb3VyY2Ugd291 bGQgYmUgc3dpdGNoZWQgdG8KPiAJICogRENMS19MQ0RDLCBzbyB3ZSBuZWVkIHRvIGluaXQgdGhl IFRNRFMgcmF0ZSB0byBtb2RlIHBpeGVsCj4gCSAqIGNsb2NrIHJhdGUsIGFuZCByZWNvbmZpZ3Vy ZSB0aGUgRERDIGNsb2NrLgo+IAkgKi8KPi0JaW5ub19oZG1pX2kyY19pbml0KGhkbWksIG1waXhl bGNsb2NrKTsKPisJaW5ub19oZG1pX2kyY19pbml0KGhkbWksIG5ld19jb25uX3N0YXRlLT5oZG1p LnRtZHNfY2hhcl9yYXRlKTsKPiAKPiAJLyogVW5tdXRlIHZpZGVvIGFuZCBhdWRpbyBvdXRwdXQg Ki8KPiAJaGRtaV9tb2RiKGhkbWksIEhETUlfQVZfTVVURSwgbV9BVURJT19NVVRFIHwgbV9WSURF T19CTEFDSywKPiAJCSAgdl9BVURJT19NVVRFKDApIHwgdl9WSURFT19NVVRFKDApKTsKPiAKPi0J aW5ub19oZG1pX3Bvd2VyX3VwKGhkbWksIG1waXhlbGNsb2NrKTsKPisJaW5ub19oZG1pX3Bvd2Vy X3VwKGhkbWksIG5ld19jb25uX3N0YXRlLT5oZG1pLnRtZHNfY2hhcl9yYXRlKTsKPiAKPiAJcmV0 dXJuIDA7Cj4gfQo+IAo+IHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cyBpbm5vX2hkbWlfZGlz cGxheV9tb2RlX3ZhbGlkKHN0cnVjdCBpbm5vX2hkbWkgKmhkbWksCj5AQCAtNTMzLDIyICs1MDYs MTIgQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIGlubm9faGRtaV9kaXNwbGF5X21vZGVf dmFsaWQoc3RydWN0IGlubm9faGRtaSAqaGRtaSwKPiAKPiBzdGF0aWMgdm9pZCBpbm5vX2hkbWlf ZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IAkJCQkgICAgIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiB7Cj4gCXN0cnVjdCBpbm5vX2hkbWkgKmhk bWkgPSBlbmNvZGVyX3RvX2lubm9faGRtaShlbmNvZGVyKTsKPi0Jc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4tCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZTsKPiAKPi0JY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUo c3RhdGUsICZoZG1pLT5jb25uZWN0b3IpOwo+LQlpZiAoV0FSTl9PTighY29ubl9zdGF0ZSkpCj4t CQlyZXR1cm47Cj4tCj4tCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0 ZShzdGF0ZSwgY29ubl9zdGF0ZS0+Y3J0Yyk7Cj4tCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlKSkK Pi0JCXJldHVybjsKPi0KPi0JaW5ub19oZG1pX3NldHVwKGhkbWksICZjcnRjX3N0YXRlLT5hZGp1 c3RlZF9tb2RlKTsKPisJaW5ub19oZG1pX3NldHVwKGhkbWksIHN0YXRlKTsKPiB9Cj4gCj4gc3Rh dGljIHZvaWQgaW5ub19oZG1pX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4gCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiB7Cj5A QCAtNTYxLDExICs1MjQsMTAgQEAgc3RhdGljIGludAo+IGlubm9faGRtaV9lbmNvZGVyX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gCQkJICAgICAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gewo+IAlzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSAq cyA9IHRvX3JvY2tjaGlwX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4tCXN0cnVjdCBpbm5vX2hk bWkgKmhkbWkgPSBlbmNvZGVyX3RvX2lubm9faGRtaShlbmNvZGVyKTsKPiAJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiAJdTggdmlj ID0gZHJtX21hdGNoX2NlYV9tb2RlKG1vZGUpOwo+IAlzdHJ1Y3QgaW5ub19oZG1pX2Nvbm5lY3Rv cl9zdGF0ZSAqaW5ub19jb25uX3N0YXRlID0KPiAJCQkJCXRvX2lubm9faGRtaV9jb25uX3N0YXRl KGNvbm5fc3RhdGUpOwo+IAo+QEAgLTU3OCwxNiArNTQwLDExIEBAIGlubm9faGRtaV9lbmNvZGVy X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gCSAgICB2aWMgPT0g MTcgfHwgdmljID09IDE4KQo+IAkJaW5ub19jb25uX3N0YXRlLT5jb2xvcmltZXRyeSA9IEhETUlf Q09MT1JJTUVUUllfSVRVXzYwMTsKPiAJZWxzZQo+IAkJaW5ub19jb25uX3N0YXRlLT5jb2xvcmlt ZXRyeSA9IEhETUlfQ09MT1JJTUVUUllfSVRVXzcwOTsKPiAKPi0JaW5ub19jb25uX3N0YXRlLT5l bmNfb3V0X2Zvcm1hdCA9IEhETUlfQ09MT1JTUEFDRV9SR0I7Cj4tCWlubm9fY29ubl9zdGF0ZS0+ cmdiX2xpbWl0ZWRfcmFuZ2UgPQo+LQkJZHJtX2RlZmF1bHRfcmdiX3F1YW50X3JhbmdlKG1vZGUp ID09IEhETUlfUVVBTlRJWkFUSU9OX1JBTkdFX0xJTUlURUQ7Cj4tCj4tCXJldHVybiAgaW5ub19o ZG1pX2Rpc3BsYXlfbW9kZV92YWxpZChoZG1pLAo+LQkJCQkmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRf bW9kZSkgPT0gTU9ERV9PSyA/IDAgOiAtRUlOVkFMOwo+KwlyZXR1cm4gMDsKPiB9Cj4gCj4gc3Rh dGljIHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgaW5ub19oZG1pX2VuY29kZXJfaGVs cGVyX2Z1bmNzID0gewo+IAkuYXRvbWljX2NoZWNrCT0gaW5ub19oZG1pX2VuY29kZXJfYXRvbWlj X2NoZWNrLAo+IAkuYXRvbWljX2VuYWJsZQk9IGlubm9faGRtaV9lbmNvZGVyX2VuYWJsZSwKPkBA IC02MjcsMTYgKzU4NCwxMCBAQCBpbm5vX2hkbWlfY29ubmVjdG9yX21vZGVfdmFsaWQoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAJc3RydWN0IGlubm9faGRtaSAqaGRtaSA9IGNv bm5lY3Rvcl90b19pbm5vX2hkbWkoY29ubmVjdG9yKTsKPiAKPiAJcmV0dXJuICBpbm5vX2hkbWlf ZGlzcGxheV9tb2RlX3ZhbGlkKGhkbWksIG1vZGUpOwo+IH0KPiAKPi1zdGF0aWMgdm9pZCBpbm5v X2hkbWlfY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK Pi17Cj4tCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+LQlkcm1fY29ubmVj dG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPi19Cj4tCj4gc3RhdGljIHZvaWQKPiBpbm5vX2hkbWlf Y29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiAJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUpCj4gewo+IAlzdHJ1Y3Qg aW5ub19oZG1pX2Nvbm5lY3Rvcl9zdGF0ZSAqaW5ub19jb25uX3N0YXRlID0KPkBAIC02NTgsMTQg KzYwOSwxMyBAQCBzdGF0aWMgdm9pZCBpbm5vX2hkbWlfY29ubmVjdG9yX3Jlc2V0KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gCWlubm9fY29ubl9zdGF0ZSA9IGt6YWxsb2Moc2l6 ZW9mKCppbm5vX2Nvbm5fc3RhdGUpLCBHRlBfS0VSTkVMKTsKPiAJaWYgKCFpbm5vX2Nvbm5fc3Rh dGUpCj4gCQlyZXR1cm47Cj4gCj4gCV9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0 KGNvbm5lY3RvciwgJmlubm9fY29ubl9zdGF0ZS0+YmFzZSk7Cj4rCV9fZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2hkbWlfcmVzZXQoY29ubmVjdG9yLCBjb25uZWN0b3ItPnN0YXRlKTsKPiAK PiAJaW5ub19jb25uX3N0YXRlLT5jb2xvcmltZXRyeSA9IEhETUlfQ09MT1JJTUVUUllfSVRVXzcw OTsKPi0JaW5ub19jb25uX3N0YXRlLT5lbmNfb3V0X2Zvcm1hdCA9IEhETUlfQ09MT1JTUEFDRV9S R0I7Cj4tCWlubm9fY29ubl9zdGF0ZS0+cmdiX2xpbWl0ZWRfcmFuZ2UgPSBmYWxzZTsKPiB9Cj4g Cj4gc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICoKPiBpbm5vX2hkbWlfY29ubmVj dG9yX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IHsK PkBAIC02ODcsMTcgKzYzNywxNyBAQCBpbm5vX2hkbWlfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IH0KPiAKPiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgaW5ub19oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9IHsK PiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMs Cj4gCS5kZXRlY3QgPSBpbm5vX2hkbWlfY29ubmVjdG9yX2RldGVjdCwKPi0JLmRlc3Ryb3kgPSBp bm5vX2hkbWlfY29ubmVjdG9yX2Rlc3Ryb3ksCj4gCS5yZXNldCA9IGlubm9faGRtaV9jb25uZWN0 b3JfcmVzZXQsCj4gCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW5ub19oZG1pX2Nvbm5lY3Rv cl9kdXBsaWNhdGVfc3RhdGUsCj4gCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGlubm9faGRtaV9j b25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiB9Owo+IAo+IHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MgaW5ub19oZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4r CS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVjaywK PiAJLmdldF9tb2RlcyA9IGlubm9faGRtaV9jb25uZWN0b3JfZ2V0X21vZGVzLAo+IAkubW9kZV92 YWxpZCA9IGlubm9faGRtaV9jb25uZWN0b3JfbW9kZV92YWxpZCwKPiB9Owo+IAo+IHN0YXRpYyBp bnQgaW5ub19oZG1pX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBpbm5v X2hkbWkgKmhkbWkpCj5AQCAtNzIxLDE0ICs2NzEsMTggQEAgc3RhdGljIGludCBpbm5vX2hkbWlf cmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGlubm9faGRtaSAqaGRtaSkK PiAKPiAJaGRtaS0+Y29ubmVjdG9yLnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7Cj4g Cj4gCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmaGRtaS0+Y29ubmVjdG9yLAo+IAkJCQkgJmlu bm9faGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPi0JZHJtX2Nvbm5lY3Rvcl9pbml0X3dp dGhfZGRjKGRybSwgJmhkbWktPmNvbm5lY3RvciwKPi0JCQkJICAgICZpbm5vX2hkbWlfY29ubmVj dG9yX2Z1bmNzLAo+LQkJCQkgICAgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAo+LQkJCQkgICAg aGRtaS0+ZGRjKTsKPisJZHJtbV9jb25uZWN0b3JfaGRtaV9pbml0KGRybSwgJmhkbWktPmNvbm5l Y3RvciwKPisJCQkJICJSb2NrY2hpcCIsICJJbm5vIEhETUkiLAo+KwkJCQkgJmlubm9faGRtaV9j b25uZWN0b3JfZnVuY3MsCj4rCQkJCSAmaW5ub19oZG1pX2hkbWlfY29ubmVjdG9yX2Z1bmNzLAo+ KwkJCQkgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAo+KwkJCQkgaGRtaS0+ZGRjLAo+KwkJCQkg QklUKEhETUlfQ09MT1JTUEFDRV9SR0IpLAo+KwkJCQkgOCk7Cj4gCj4gCWRybV9jb25uZWN0b3Jf YXR0YWNoX2VuY29kZXIoJmhkbWktPmNvbm5lY3RvciwgZW5jb2Rlcik7Cj4gCj4gCXJldHVybiAw Owo+IH0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCj5pbmRleCAyNDViMzRh ZGNhNWEuLjFjNmNkYTJiZmIxNCAxMDA2NDQKPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9oZG1pX2VuYy5jCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9l bmMuYwo+QEAgLTI0LDEwICsyNCwxMyBAQAo+ICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Cj4g I2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPiAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxw ZXIuaD4KPiAjaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgo+IAo+KyNpbmNs dWRlIDxkcm0vZGlzcGxheS9kcm1faGRtaV9oZWxwZXIuaD4KPisjaW5jbHVkZSA8ZHJtL2Rpc3Bs YXkvZHJtX2hkbWlfc3RhdGVfaGVscGVyLmg+Cj4rCj4gI2luY2x1ZGUgInN1bjRpX2JhY2tlbmQu aCIKPiAjaW5jbHVkZSAic3VuNGlfY3J0Yy5oIgo+ICNpbmNsdWRlICJzdW40aV9kcnYuaCIKPiAj aW5jbHVkZSAic3VuNGlfaGRtaS5oIgo+IAo+Cj4tLSAKPjIuNDUuMAo+Cj4KPl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj5saW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdAo+bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj5odHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK