From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793201510; b=NjUXoxDQUyOgpWuiC4jyw+I7HZq7rdn71G++h5cmNOUJ/iFXZoTff5aGn3jpReYGlqpK M+LjPjRS/WFjHQaXQt3XkuBCslUMwzBV8ZT0aGtm3d9ID98oI8KyIDhQJLrh/3K+BEU7S zcFU24Rat+Nx7RtEOj1bdCFN2cA5YO7t5RCG2oj9RuLtIzL5nEMO779TrhLa3yO38FJHs 7/IKxtsrM4NziysbpULcHix5QOomQIFNGnL0ojfK655SPG+bawlUa2YvC4vyK4siHC6zB LhXDBydS/wmzxoS6dVJtD3sQ64g9uFTL030WXKWKjGbBz0yh5w6V3aeRMv01/Dr46Vw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793201510; h=Received:DKIM-Signature:Message-ID:From:Subject:Reply-To:To:Cc: In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=haffo54whZGL9CC0UchBL2ccyG/VDVgEs7sItmcLBZU=; b=O9/JzlKxgZpqgTeA3QASGUavV/6nAM/jDxfolKafj+jP3HPJn63+Jtxjug5GIuWSro/6 h6fIkHC7wusj70blm+7VaV2SZOyHuRVuUFlAgB0AoVBdTd38qVAmPzZLU2dGGOIG5SXyZ Kya3hDf92HGL3Ts74/X920mCGrUiTFU51qFtbKtIC6T0xt4HBM4Lh0/XQCuXU6cbmrxjg AjVGEiqR2hR7m4r7RJuD4tUIHHL1QmznQjXquAPhldwTqk91bX3dQLFUchgDIodw51HY1 XhZua3HpHxP5RLiAgp0gnwhIyVJOABHWlE33hSDWMgCafQSkNKrP0d+3mkxlqwqKvCw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=iFxB188l; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D842D606A31C for ; Wed, 28 Oct 2026 15:31:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=iFxB188l Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06F911F01825; Wed, 28 Oct 2026 15:31:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793201509; bh=haffo54whZGL9CC0UchBL2ccyG/VDVgEs7sItmcLBZU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=iFxB188lp9JzvowXggMC8HmYIZPQ3CNmrAMMZdF1ZZRCUwRF82V8kUxQVtMQrVx39 ubfCYvjIjFl1Uy0d/uNnywgCplz2cEgFJrah9mmWlfthtNdaSvqbwoCimbNmwJEUzt x+5AWdnRu/eTnX394DEmfDNp6LXDa8grRrzQtAKRI9LbSOtA4eXDd+7mDujvNSf/H+ O/njR42FC7AK8h5Kpm8rBbsitHs9i83uti7I0aaP/tQsNpwhhEo9avcV78ufYJ4pOO zbcs9tsXNdpDsLxvi+p+0DoisVXTvGo6DLVDklm4td7fuM7Nz4oOlXU1Q0f1+3y2/U +GTzEBMd0R9wQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v23 08/15] media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY Reply-To: sashiko-reviews@lists.linux.dev To: "Hangxiang Ma" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261028-kaanapali-camss-v23-8-95f250b18612@oss.qualcomm.com> References: <20261028-kaanapali-camss-v23-0-95f250b18612@oss.qualcomm.com> <20261028-kaanapali-camss-v23-8-95f250b18612@oss.qualcomm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 28 Oct 2026 15:31:48 +0000 X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [High] media: qcom: camss: NULL deref in msm_csiphy_subdev_init_legacy() - [Medium] media: qcom: camss: commit message describes phy driver changes -- commit 746e86a20142c7ce6cfd5e7633a02e7c5b459ec6 Author: Hangxiang Ma media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY This patch defines the csiphy subdevice resource table for Kaanapali and wires it into kaanapali_resources in camss. > media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY > =20 > Add support for the v2.4.0 two-phase CSIPHY found on Kaanapali, where > the PHY is driven by the standalone phy-qcom-mipi-csi2 DPHY driver > rather than by CAMSS. Add the mipi_csi2_dphy_3nm_kaanapali configurat= ion, > which reuses the x1e80100 lane sequence, clocks and supplies but sele= cts > the v2.4.0 common status offset, adds Kaanapali power domain and regi= ster > the "qcom,kaanapali-csi2-phy" compatible. > =20 > Reviewed-by: Bryan O'Donoghue > Signed-off-by: Hangxiang Ma [Severity: Medium] Does this commit message match the changes in this patch? The commit message states that this patch adds the mipi_csi2_dphy_3nm_kaanapali configuration and registers the "qcom,kaanapali-csi2-phy" compatible, which were added in commit 09220cf48f= 3f ("phy: qcom-mipi-csi2: Add Kaanapali support") in drivers/phy/qualcomm/, whereas this patch only populates csiphy_res_kaanapali and wires it into kaanapali_resources in drivers/media/platform/qcom/camss/camss.c. In addition, the subject and commit description refer to a "v2.4.0 two-phas= e" phy, while Kaanapali uses a 3-phase v2.4.0 phy. Could the commit subject and description be updated to reflect the camss changes here? > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/pl= atform/qcom/camss/camss.c > index a64242c66cf06..b0b63dd3d958e 100644 > --- a/drivers/media/platform/qcom/camss/camss.c > +++ b/drivers/media/platform/qcom/camss/camss.c > @@ -38,6 +38,51 @@ > =20 > static const struct parent_dev_ops vfe_parent_dev_ops; > =20 > +static const struct camss_subdev_resources csiphy_res_kaanapali[] =3D { > + /* CSIPHY0 */ > + { > + .csiphy =3D { > + .id =3D 0, > + .formats =3D &csiphy_formats_sdm845 > + }, > + }, [ ... ] > @@ -5607,8 +5652,10 @@ static const struct camss_resources kaanapali_reso= urces =3D { > .version =3D CAMSS_KAANAPALI, > .pd_name =3D "top", > .pm_clks =3D { "cpas_fast_ahb", "cpas_ahb", "gcc_axi_hf" }, > + .csiphy_res =3D csiphy_res_kaanapali, > .icc_res =3D icc_res_kaanapali, > .icc_path_num =3D ARRAY_SIZE(icc_res_kaanapali), > + .csiphy_num =3D ARRAY_SIZE(csiphy_res_kaanapali), > }; [Severity: High] Can this trigger a null pointer dereference in msm_csiphy_subdev_init_legac= y() when probing camss on Kaanapali without a remote "phy" endpoint in the devi= ce tree? Each entry in csiphy_res_kaanapali[] only initializes .csiphy.id and .csiphy.formats, leaving .csiphy.hw_ops as null because the Kaanapali phy is driven by the standalone phy-qcom-mipi-csi2 driver. However, during camss_probe() -> camss_init_subdevices() -> camss_detect_legacy_phy(), camss->legacy_phy defaults to true: drivers/media/platform/qcom/camss/camss.c:camss_detect_legacy_phy() { ... camss->legacy_phy =3D true; /* Find first remote-endpoint and determine if its a PHY */ for_each_endpoint_of_node(camss->dev->of_node, ep) { remote =3D of_graph_get_remote_port_parent(ep); if (!remote) continue; camss->legacy_phy =3D !of_node_name_eq(remote, "phy"); of_node_put(remote); of_node_put(ep); break; } } If camss is enabled without an active endpoint connected to a node named "p= hy" (for example, with unconnected ports in a base board device tree or when using only the internal test pattern generators csitpg0..2), camss->legacy_phy remains true. camss_init_subdevices() then takes the legacy initialization path for each = of the 6 csiphy_res_kaanapali entries: drivers/media/platform/qcom/camss/camss.c:camss_init_subdevices() { ... for (i =3D 0; i < camss->res->csiphy_num; i++) { if (!camss->legacy_phy) { ret =3D msm_csiphy_subdev_init(camss, i); } else { ret =3D msm_csiphy_subdev_init_legacy(camss, &camss->csiphy[i], &res->csiphy_res[i], res->csiphy_res[i].csiphy.id); } ... } And msm_csiphy_subdev_init_legacy() unconditionally dereferences csiphy->res->hw_ops: drivers/media/platform/qcom/camss/camss-csiphy.c:msm_csiphy_subdev_init_leg= acy() { ... csiphy->res =3D &res->csiphy; ret =3D csiphy->res->hw_ops->init(csiphy); ... } Should camss_init_subdevices() or camss_detect_legacy_phy() guard against taking the legacy path when res->csiphy_res[i].csiphy.hw_ops is null? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261028-kaanapali-= camss-v23-0-95f250b18612@oss.qualcomm.com?part=3D8 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA802606A31A for ; Wed, 28 Oct 2026 15:31:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=muQWYa1W; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=iFxB188l 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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=BB5xT2iEbnpY5lwtJRdi5Fc4rk630UKu6IcvtLZNqVw=; b=muQWYa1WynMHHLI/rOAZ68BYqk cVxZKM+ksqoHXHLnGMuPH5PTiqkD9bBiauiIwvc9RRcxHC2i3GALMN9IryVVL8as3GbyLgDcFzVYg Nh7E2Ok00SY/wmekNsgvlVu4035IJRLctDDUMrr5kaa4l7CgqSFg1+mAfBf+PveNUg0geWzvK8beB uaP8qfQo59oZRKQqujB2lLPHjhPCi0ILsoHfM2NuQUH/YUvKlFEqXU5FyTlccnDuron49Af73/teu tRXiTBUQsr6kkF3cW5Zb/NQiT1cwNWlq4zjO6UIgf+rT5TkCx5Hzd18SlpWmmywpBGquZh5CSeyvH T60rO1Pw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xM5d1-00000007OZl-1qb5; Wed, 28 Oct 2026 15:31:51 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xM5d0-00000007OZN-3V7f for linux-phy@lists.infradead.org; Wed, 28 Oct 2026 15:31:50 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id BC8A4601FA; Wed, 28 Oct 2026 15:31:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06F911F01825; Wed, 28 Oct 2026 15:31:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793201509; bh=haffo54whZGL9CC0UchBL2ccyG/VDVgEs7sItmcLBZU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=iFxB188lp9JzvowXggMC8HmYIZPQ3CNmrAMMZdF1ZZRCUwRF82V8kUxQVtMQrVx39 ubfCYvjIjFl1Uy0d/uNnywgCplz2cEgFJrah9mmWlfthtNdaSvqbwoCimbNmwJEUzt x+5AWdnRu/eTnX394DEmfDNp6LXDa8grRrzQtAKRI9LbSOtA4eXDd+7mDujvNSf/H+ O/njR42FC7AK8h5Kpm8rBbsitHs9i83uti7I0aaP/tQsNpwhhEo9avcV78ufYJ4pOO zbcs9tsXNdpDsLxvi+p+0DoisVXTvGo6DLVDklm4td7fuM7Nz4oOlXU1Q0f1+3y2/U +GTzEBMd0R9wQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v23 08/15] media: qcom: camss: csiphy: Add support for v2.4.0 two-phase CSIPHY To: "Hangxiang Ma" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261028-kaanapali-camss-v23-8-95f250b18612@oss.qualcomm.com> References: <20261028-kaanapali-camss-v23-0-95f250b18612@oss.qualcomm.com> <20261028-kaanapali-camss-v23-8-95f250b18612@oss.qualcomm.com> Date: Wed, 28 Oct 2026 15:31:48 +0000 X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" X-Spam-Status: No, score=-13.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIG1lZGlhOiBxY29tOiBj YW1zczogTlVMTCBkZXJlZiBpbiBtc21fY3NpcGh5X3N1YmRldl9pbml0X2xlZ2FjeSgpCi0gW01l ZGl1bV0gbWVkaWE6IHFjb206IGNhbXNzOiBjb21taXQgbWVzc2FnZSBkZXNjcmliZXMgcGh5IGRy aXZlciBjaGFuZ2VzCi0tCgpjb21taXQgNzQ2ZTg2YTIwMTQyYzdjZTZjZmQ1ZTc2MzNhMDJlN2M1 YjQ1OWVjNgpBdXRob3I6IEhhbmd4aWFuZyBNYSA8aGFuZ3hpYW5nLm1hQG9zcy5xdWFsY29tbS5j b20+CgptZWRpYTogcWNvbTogY2Ftc3M6IGNzaXBoeTogQWRkIHN1cHBvcnQgZm9yIHYyLjQuMCB0 d28tcGhhc2UgQ1NJUEhZCgpUaGlzIHBhdGNoIGRlZmluZXMgdGhlIGNzaXBoeSBzdWJkZXZpY2Ug cmVzb3VyY2UgdGFibGUgZm9yIEthYW5hcGFsaSBhbmQKd2lyZXMgaXQgaW50byBrYWFuYXBhbGlf cmVzb3VyY2VzIGluIGNhbXNzLgoKPiAgICAgbWVkaWE6IHFjb206IGNhbXNzOiBjc2lwaHk6IEFk ZCBzdXBwb3J0IGZvciB2Mi40LjAgdHdvLXBoYXNlIENTSVBIWQo+ICAgICAKPiAgICAgQWRkIHN1 cHBvcnQgZm9yIHRoZSB2Mi40LjAgdHdvLXBoYXNlIENTSVBIWSBmb3VuZCBvbiBLYWFuYXBhbGks IHdoZXJlCj4gICAgIHRoZSBQSFkgaXMgZHJpdmVuIGJ5IHRoZSBzdGFuZGFsb25lIHBoeS1xY29t LW1pcGktY3NpMiBEUEhZIGRyaXZlcgo+ICAgICByYXRoZXIgdGhhbiBieSBDQU1TUy4gQWRkIHRo ZSBtaXBpX2NzaTJfZHBoeV8zbm1fa2FhbmFwYWxpIGNvbmZpZ3VyYXRpb24sCj4gICAgIHdoaWNo IHJldXNlcyB0aGUgeDFlODAxMDAgbGFuZSBzZXF1ZW5jZSwgY2xvY2tzIGFuZCBzdXBwbGllcyBi dXQgc2VsZWN0cwo+ICAgICB0aGUgdjIuNC4wIGNvbW1vbiBzdGF0dXMgb2Zmc2V0LCBhZGRzIEth YW5hcGFsaSBwb3dlciBkb21haW4gYW5kIHJlZ2lzdGVyCj4gICAgIHRoZSAicWNvbSxrYWFuYXBh bGktY3NpMi1waHkiIGNvbXBhdGlibGUuCj4gICAgIAo+ICAgICBSZXZpZXdlZC1ieTogQnJ5YW4g TydEb25vZ2h1ZSA8YnJ5YW4ub2Rvbm9naHVlQGxpbmFyby5vcmc+Cj4gICAgIFNpZ25lZC1vZmYt Ynk6IEhhbmd4aWFuZyBNYSA8aGFuZ3hpYW5nLm1hQG9zcy5xdWFsY29tbS5jb20+CgpbU2V2ZXJp dHk6IE1lZGl1bV0KRG9lcyB0aGlzIGNvbW1pdCBtZXNzYWdlIG1hdGNoIHRoZSBjaGFuZ2VzIGlu IHRoaXMgcGF0Y2g/CgpUaGUgY29tbWl0IG1lc3NhZ2Ugc3RhdGVzIHRoYXQgdGhpcyBwYXRjaCBh ZGRzIHRoZQptaXBpX2NzaTJfZHBoeV8zbm1fa2FhbmFwYWxpIGNvbmZpZ3VyYXRpb24gYW5kIHJl Z2lzdGVycyB0aGUKInFjb20sa2FhbmFwYWxpLWNzaTItcGh5IiBjb21wYXRpYmxlLCB3aGljaCB3 ZXJlIGFkZGVkIGluIGNvbW1pdCAwOTIyMGNmNDhmM2YKKCJwaHk6IHFjb20tbWlwaS1jc2kyOiBB ZGQgS2FhbmFwYWxpIHN1cHBvcnQiKSBpbiBkcml2ZXJzL3BoeS9xdWFsY29tbS8sCndoZXJlYXMg dGhpcyBwYXRjaCBvbmx5IHBvcHVsYXRlcyBjc2lwaHlfcmVzX2thYW5hcGFsaSBhbmQgd2lyZXMg aXQgaW50bwprYWFuYXBhbGlfcmVzb3VyY2VzIGluIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNv bS9jYW1zcy9jYW1zcy5jLgoKSW4gYWRkaXRpb24sIHRoZSBzdWJqZWN0IGFuZCBjb21taXQgZGVz Y3JpcHRpb24gcmVmZXIgdG8gYSAidjIuNC4wIHR3by1waGFzZSIKcGh5LCB3aGlsZSBLYWFuYXBh bGkgdXNlcyBhIDMtcGhhc2UgdjIuNC4wIHBoeS4gQ291bGQgdGhlIGNvbW1pdCBzdWJqZWN0IGFu ZApkZXNjcmlwdGlvbiBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGNhbXNzIGNoYW5nZXMgaGVy ZT8KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1z cy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmMKPiBpbmRleCBh NjQyNDJjNjZjZjA2Li5iMGI2M2RkM2Q5NThlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1zcy5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9xY29tL2NhbXNzL2NhbXNzLmMKPiBAQCAtMzgsNiArMzgsNTEgQEAKPiAgCj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgcGFyZW50X2Rldl9vcHMgdmZlX3BhcmVudF9kZXZfb3BzOwo+ICAKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBjYW1zc19zdWJkZXZfcmVzb3VyY2VzIGNzaXBoeV9yZXNfa2FhbmFw YWxpW10gPSB7Cj4gKwkvKiBDU0lQSFkwICovCj4gKwl7Cj4gKwkJLmNzaXBoeSA9IHsKPiArCQkJ LmlkID0gMCwKPiArCQkJLmZvcm1hdHMgPSAmY3NpcGh5X2Zvcm1hdHNfc2RtODQ1Cj4gKwkJfSwK PiArCX0sCgpbIC4uLiBdCgo+IEBAIC01NjA3LDggKzU2NTIsMTAgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjYW1zc19yZXNvdXJjZXMga2FhbmFwYWxpX3Jlc291cmNlcyA9IHsKPiAgCS52ZXJzaW9u ID0gQ0FNU1NfS0FBTkFQQUxJLAo+ICAJLnBkX25hbWUgPSAidG9wIiwKPiAgCS5wbV9jbGtzID0g eyAiY3Bhc19mYXN0X2FoYiIsICJjcGFzX2FoYiIsICJnY2NfYXhpX2hmIiB9LAo+ICsJLmNzaXBo eV9yZXMgPSBjc2lwaHlfcmVzX2thYW5hcGFsaSwKPiAgCS5pY2NfcmVzID0gaWNjX3Jlc19rYWFu YXBhbGksCj4gIAkuaWNjX3BhdGhfbnVtID0gQVJSQVlfU0laRShpY2NfcmVzX2thYW5hcGFsaSks Cj4gKwkuY3NpcGh5X251bSA9IEFSUkFZX1NJWkUoY3NpcGh5X3Jlc19rYWFuYXBhbGkpLAo+ICB9 OwoKW1NldmVyaXR5OiBIaWdoXQpDYW4gdGhpcyB0cmlnZ2VyIGEgbnVsbCBwb2ludGVyIGRlcmVm ZXJlbmNlIGluIG1zbV9jc2lwaHlfc3ViZGV2X2luaXRfbGVnYWN5KCkKd2hlbiBwcm9iaW5nIGNh bXNzIG9uIEthYW5hcGFsaSB3aXRob3V0IGEgcmVtb3RlICJwaHkiIGVuZHBvaW50IGluIHRoZSBk ZXZpY2UKdHJlZT8KCkVhY2ggZW50cnkgaW4gY3NpcGh5X3Jlc19rYWFuYXBhbGlbXSBvbmx5IGlu aXRpYWxpemVzIC5jc2lwaHkuaWQgYW5kCi5jc2lwaHkuZm9ybWF0cywgbGVhdmluZyAuY3NpcGh5 Lmh3X29wcyBhcyBudWxsIGJlY2F1c2UgdGhlIEthYW5hcGFsaSBwaHkgaXMKZHJpdmVuIGJ5IHRo ZSBzdGFuZGFsb25lIHBoeS1xY29tLW1pcGktY3NpMiBkcml2ZXIuCgpIb3dldmVyLCBkdXJpbmcg Y2Ftc3NfcHJvYmUoKSAtPiBjYW1zc19pbml0X3N1YmRldmljZXMoKSAtPgpjYW1zc19kZXRlY3Rf bGVnYWN5X3BoeSgpLCBjYW1zcy0+bGVnYWN5X3BoeSBkZWZhdWx0cyB0byB0cnVlOgoKZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmM6Y2Ftc3NfZGV0ZWN0X2xlZ2FjeV9w aHkoKSB7CgkuLi4KCWNhbXNzLT5sZWdhY3lfcGh5ID0gdHJ1ZTsKCgkvKiBGaW5kIGZpcnN0IHJl bW90ZS1lbmRwb2ludCBhbmQgZGV0ZXJtaW5lIGlmIGl0cyBhIFBIWSAqLwoJZm9yX2VhY2hfZW5k cG9pbnRfb2Zfbm9kZShjYW1zcy0+ZGV2LT5vZl9ub2RlLCBlcCkgewoJCXJlbW90ZSA9IG9mX2dy YXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQoZXApOwoJCWlmICghcmVtb3RlKQoJCQljb250aW51 ZTsKCgkJY2Ftc3MtPmxlZ2FjeV9waHkgPSAhb2Zfbm9kZV9uYW1lX2VxKHJlbW90ZSwgInBoeSIp OwoJCW9mX25vZGVfcHV0KHJlbW90ZSk7CgkJb2Zfbm9kZV9wdXQoZXApOwoJCWJyZWFrOwoJfQp9 CgpJZiBjYW1zcyBpcyBlbmFibGVkIHdpdGhvdXQgYW4gYWN0aXZlIGVuZHBvaW50IGNvbm5lY3Rl ZCB0byBhIG5vZGUgbmFtZWQgInBoeSIKKGZvciBleGFtcGxlLCB3aXRoIHVuY29ubmVjdGVkIHBv cnRzIGluIGEgYmFzZSBib2FyZCBkZXZpY2UgdHJlZSBvciB3aGVuCnVzaW5nIG9ubHkgdGhlIGlu dGVybmFsIHRlc3QgcGF0dGVybiBnZW5lcmF0b3JzIGNzaXRwZzAuLjIpLApjYW1zcy0+bGVnYWN5 X3BoeSByZW1haW5zIHRydWUuCgpjYW1zc19pbml0X3N1YmRldmljZXMoKSB0aGVuIHRha2VzIHRo ZSBsZWdhY3kgaW5pdGlhbGl6YXRpb24gcGF0aCBmb3IgZWFjaCBvZgp0aGUgNiBjc2lwaHlfcmVz X2thYW5hcGFsaSBlbnRyaWVzOgoKZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2Nh bXNzLmM6Y2Ftc3NfaW5pdF9zdWJkZXZpY2VzKCkgewoJLi4uCglmb3IgKGkgPSAwOyBpIDwgY2Ft c3MtPnJlcy0+Y3NpcGh5X251bTsgaSsrKSB7CgkJaWYgKCFjYW1zcy0+bGVnYWN5X3BoeSkgewoJ CQlyZXQgPSBtc21fY3NpcGh5X3N1YmRldl9pbml0KGNhbXNzLCBpKTsKCQl9IGVsc2UgewoJCQly ZXQgPSBtc21fY3NpcGh5X3N1YmRldl9pbml0X2xlZ2FjeShjYW1zcywKCQkJCQkJCSAgICAmY2Ft c3MtPmNzaXBoeVtpXSwKCQkJCQkJCSAgICAmcmVzLT5jc2lwaHlfcmVzW2ldLAoJCQkJCQkJICAg IHJlcy0+Y3NpcGh5X3Jlc1tpXS5jc2lwaHkuaWQpOwoJCX0KCS4uLgp9CgpBbmQgbXNtX2NzaXBo eV9zdWJkZXZfaW5pdF9sZWdhY3koKSB1bmNvbmRpdGlvbmFsbHkgZGVyZWZlcmVuY2VzCmNzaXBo eS0+cmVzLT5od19vcHM6Cgpkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3Mt Y3NpcGh5LmM6bXNtX2NzaXBoeV9zdWJkZXZfaW5pdF9sZWdhY3koKSB7CgkuLi4KCWNzaXBoeS0+ cmVzID0gJnJlcy0+Y3NpcGh5OwoKCXJldCA9IGNzaXBoeS0+cmVzLT5od19vcHMtPmluaXQoY3Np cGh5KTsKCS4uLgp9CgpTaG91bGQgY2Ftc3NfaW5pdF9zdWJkZXZpY2VzKCkgb3IgY2Ftc3NfZGV0 ZWN0X2xlZ2FjeV9waHkoKSBndWFyZCBhZ2FpbnN0CnRha2luZyB0aGUgbGVnYWN5IHBhdGggd2hl biByZXMtPmNzaXBoeV9yZXNbaV0uY3NpcGh5Lmh3X29wcyBpcyBudWxsPwoKLS0gClNhc2hpa28g QUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MTAyOC1rYWFu YXBhbGktY2Ftc3MtdjIzLTAtOTVmMjUwYjE4NjEyQG9zcy5xdWFsY29tbS5jb20/cGFydD04Cgot LSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK