From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 743033B4EA1; Tue, 28 Jul 2026 07:17:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785223079; cv=none; b=FkSMHigG1LT/QF77NRypmVwaJ1bmtwNsXJDzezc3i79MWVN8zKxUMkj/Ch+geaV9AzdIR55HmDSqogalhNt/TC4XnmOcSzLEHd1GuSNlpBxspN6wVz52wGTkcoxPzwj+eoeqdfa7vcdfdiO28Qpsru8M+aosnBMKH5a3JPyE5s8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785223079; c=relaxed/simple; bh=/WCRP/2K5uixFf6KNa5E0DW6HfHtq9UlFAUjK8p37xA=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=XJQhvyEBXTJkraZGB2ND5pheNgLT5IqxgvoLS60BoezfJRL1gYGYmiVBM7103LrzaSmJ6HrAXxXitmSsAG5O5i+43atTVJK4qR87gI5T/0RACMDmPdhiqZ9rVtWxUz3f3GNslhYKqesZqWTNuicWBq/wMm9l1Bz8nDBo0iBHqRk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SfWvXH9a; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SfWvXH9a" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B3CD1F000E9; Tue, 28 Jul 2026 07:17:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785223078; bh=ZV9s5koBwDvkf6kgOQAypAmADL08e8qeJSgkZB8c9nU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=SfWvXH9ak5fOc2XdGMrBtGs+yvHPZyGbx3/yUxAxdu93m/YXUlCXaV6lu8IC/ALEB DaCmhjYRvWmONrZuP5CDeIwQIADle0iLH1/IM22OmYCJ+5P4vBX68I6GVhYvTz78PD knO+YT3il8ARWuyEfGY88alTDuzba+dFeLzWkkZoUZoWdhjNyrg+7tPiaK8V5k7qTQ 1OII7Kxlgymvtn1qGZf5+9GVjqdTJ/UnZ4aTyZRAnBZqqtbVTQvkc/s/n6eH+sQWC7 xAOgqdoHaJdFlNd+ojXYPbCqZwcuNe+CUSkmw9t2XMTZir2EaUGqTw/Nf0VQGCZ/5U FLUxQG5sK11XA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 08/12] i3c: dw-i3c-master: Add ACPI core clock frequency quirk Reply-To: sashiko-reviews@lists.linux.dev To: "Akhil R" Cc: conor+dt@kernel.org, robh@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" , devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Frank.Li@kernel.org In-Reply-To: <20260728065955.809445-9-akhilrajeev@nvidia.com> References: <20260728065955.809445-1-akhilrajeev@nvidia.com> <20260728065955.809445-9-akhilrajeev@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 28 Jul 2026 07:17:56 +0000 Message-Id: <20260728071757.5B3CD1F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: New issues: - [Medium] Dead Code / Missing Feature Implementation for DW_I3C_ACPI_SKIP_= CLK_RST Pre-existing issues: - [High] Runtime PM and Resource Cleanup Bug during driver unbind - [High] Type Confusion and Pointer Truncation for PRP0001 ACPI Devices -- --- Patch [8]: [PATCH v7 08/12] i3c: dw-i3c-master: Add ACPI core clock fre= quency quirk --- commit 7469594594011ab29fdf220e06f76b074bff94d1 Author: Akhil R i3c: dw-i3c-master: Add ACPI core clock frequency quirk Some ACPI-enumerated devices like Tegra410 do not expose the controller core clock through the clk framework. Unlike device tree, ACPI on Arm does not model clock providers. The hardware is expected to have its clocks enabled by firmware before the OS takes over. > diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i= 3c-master.c > index 29030fd9594aa..273d7a0020993 100644 > --- a/drivers/i3c/master/dw-i3c-master.c > +++ b/drivers/i3c/master/dw-i3c-master.c [ ... ] > @@ -1573,14 +1589,28 @@ int dw_i3c_common_probe(struct dw_i3c_master *mas= ter, > =20 > master->dev =3D &pdev->dev; > =20 > + if (has_acpi_companion(&pdev->dev)) { > + quirks =3D (unsigned long)device_get_match_data(&pdev->dev); [Severity: High] This isn't a bug introduced by this patch, but does this cast cause type confusion for PRP0001 ACPI devices? When an ACPI device binds to the driver using the PRP0001 OF-compatibility mechanism, device_get_match_data() delegates to the OF match table and returns a pointer to struct dw_i3c_drvdata. Because has_acpi_companion() returns true, this branch will cast that pointer directly to an unsigned long, treating the memory address as a bitmask of quirks. This could corrupt the driver state. > + } else if (pdev->dev.of_node) { > + drvdata =3D device_get_match_data(&pdev->dev); > + if (drvdata) > + quirks =3D drvdata->flags; > + } > + master->quirks =3D quirks; > + > master->regs =3D devm_platform_ioremap_resource(pdev, 0); > if (IS_ERR(master->regs)) > return PTR_ERR(master->regs); > =20 > - master->core_clk =3D devm_clk_get_enabled(&pdev->dev, NULL); > + master->core_clk =3D devm_clk_get_optional_enabled(&pdev->dev, NULL); > if (IS_ERR(master->core_clk)) > return PTR_ERR(master->core_clk); > =20 > + if (!master->core_clk && !(master->quirks & DW_I3C_ACPI_SKIP_CLK_RST)) { [Severity: Medium] Will this driver still fail to probe on ACPI platforms without a core clock? The code checks if DW_I3C_ACPI_SKIP_CLK_RST is set in master->quirks. However, it appears this quirk is never included in the driver's ACPI match table (amd_i3c_device_match). Without being populated by the ACPI matching framework, the feature seems to act as dead code. > + dev_err(&pdev->dev, "missing core clock\n"); > + return -EINVAL; > + } > + [ ... ] [Severity: High] This isn't a bug introduced by this patch, but is there a runtime PM and resource cleanup issue during driver unbind? When the device is removed (e.g., driver unbound via sysfs) while in a runtime-suspended state, or an autosuspend timer fires concurrently with the remove callback, the driver core calls pm_runtime_put_sync() before remove. This means the device may be suspended when dw_i3c_common_remove() executes. The callback unregisters the I3C master: dw_i3c_common_remove() i3c_master_unregister(&master->base) dw_i3c_master_bus_cleanup() dw_i3c_master_disable() This access to the DEVICE_CTRL MMIO register happens while the controller might be unclocked, which could cause a synchronous external abort (kernel panic). Would it be safer to wake the device via pm_runtime_get_sync() before unregistering the bus? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260728065955.8094= 45-1-akhilrajeev@nvidia.com?part=3D8 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 AC787C54F4C for ; Tue, 28 Jul 2026 07:17:59 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XeU2Q++ZfrUkNT2a/mWna33q34yYkQE2fUe+aKfwfGc=; b=KgWKBKLPTUL8+/ jhMLJhSVd9zyaZg9EG9HTnyPglc7Di2G/8AV2/3ve5Z60S3hyGgmYjwdpXY8eVj9P2GM3M7oLBybN t9nkzjNoPulE5P70og0eXzofEmwwHxFxM3il7SsFn96jNMV1GFCUqV5mHHSoLHcqHrzVQbg3bnwZs 942LFQoj4f/72Oats4BzEYGB+FdH117uWzBF9xCmVJYB3kaEuTqfgojyEdRZCJl+G/0PF7BY29dK2 r4CE/PGn2Nb5fhH3O7+3E8ozVjSVh3KX++O4Gh+k7/PcU+7F/Kp0YvU0JudKacWoxpziQFpOmflAv LAOsKiansjWXVPkD1pHg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woc4d-00000004cfF-1LD2; Tue, 28 Jul 2026 07:17:59 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1woc4c-00000004cf9-1ksV for linux-i3c@lists.infradead.org; Tue, 28 Jul 2026 07:17:58 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 2E04A41285; Tue, 28 Jul 2026 07:17:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B3CD1F000E9; Tue, 28 Jul 2026 07:17:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785223078; bh=ZV9s5koBwDvkf6kgOQAypAmADL08e8qeJSgkZB8c9nU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=SfWvXH9ak5fOc2XdGMrBtGs+yvHPZyGbx3/yUxAxdu93m/YXUlCXaV6lu8IC/ALEB DaCmhjYRvWmONrZuP5CDeIwQIADle0iLH1/IM22OmYCJ+5P4vBX68I6GVhYvTz78PD knO+YT3il8ARWuyEfGY88alTDuzba+dFeLzWkkZoUZoWdhjNyrg+7tPiaK8V5k7qTQ 1OII7Kxlgymvtn1qGZf5+9GVjqdTJ/UnZ4aTyZRAnBZqqtbVTQvkc/s/n6eH+sQWC7 xAOgqdoHaJdFlNd+ojXYPbCqZwcuNe+CUSkmw9t2XMTZir2EaUGqTw/Nf0VQGCZ/5U FLUxQG5sK11XA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 08/12] i3c: dw-i3c-master: Add ACPI core clock frequency quirk To: "Akhil R" Cc: conor+dt@kernel.org, robh@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" , devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Frank.Li@kernel.org In-Reply-To: <20260728065955.809445-9-akhilrajeev@nvidia.com> References: <20260728065955.809445-1-akhilrajeev@nvidia.com> <20260728065955.809445-9-akhilrajeev@nvidia.com> Date: Tue, 28 Jul 2026 07:17:56 +0000 Message-Id: <20260728071757.5B3CD1F000E9@smtp.kernel.org> X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtNZWRpdW1d IERlYWQgQ29kZSAvIE1pc3NpbmcgRmVhdHVyZSBJbXBsZW1lbnRhdGlvbiBmb3IgRFdfSTNDX0FD UElfU0tJUF9DTEtfUlNUCgpQcmUtZXhpc3RpbmcgaXNzdWVzOgotIFtIaWdoXSBSdW50aW1lIFBN IGFuZCBSZXNvdXJjZSBDbGVhbnVwIEJ1ZyBkdXJpbmcgZHJpdmVyIHVuYmluZAotIFtIaWdoXSBU eXBlIENvbmZ1c2lvbiBhbmQgUG9pbnRlciBUcnVuY2F0aW9uIGZvciBQUlAwMDAxIEFDUEkgRGV2 aWNlcwotLQoKLS0tIFBhdGNoIFs4XTogW1BBVENIIHY3IDA4LzEyXSBpM2M6IGR3LWkzYy1tYXN0 ZXI6IEFkZCBBQ1BJIGNvcmUgY2xvY2sgZnJlcXVlbmN5IHF1aXJrIC0tLQpjb21taXQgNzQ2OTU5 NDU5NDAxMWFiMjlmZGYyMjBlMDZmNzZiMDc0YmZmOTRkMQpBdXRob3I6IEFraGlsIFIgPGFraGls cmFqZWV2QG52aWRpYS5jb20+CgppM2M6IGR3LWkzYy1tYXN0ZXI6IEFkZCBBQ1BJIGNvcmUgY2xv Y2sgZnJlcXVlbmN5IHF1aXJrCgpTb21lIEFDUEktZW51bWVyYXRlZCBkZXZpY2VzIGxpa2UgVGVn cmE0MTAgZG8gbm90IGV4cG9zZSB0aGUgY29udHJvbGxlcgpjb3JlIGNsb2NrIHRocm91Z2ggdGhl IGNsayBmcmFtZXdvcmsuIFVubGlrZSBkZXZpY2UgdHJlZSwgQUNQSSBvbiBBcm0gZG9lcwpub3Qg bW9kZWwgY2xvY2sgcHJvdmlkZXJzLiBUaGUgaGFyZHdhcmUgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBp dHMgY2xvY2tzCmVuYWJsZWQgYnkgZmlybXdhcmUgYmVmb3JlIHRoZSBPUyB0YWtlcyBvdmVyLgoK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pM2MvbWFzdGVyL2R3LWkzYy1tYXN0ZXIuYyBiL2RyaXZl cnMvaTNjL21hc3Rlci9kdy1pM2MtbWFzdGVyLmMKPiBpbmRleCAyOTAzMGZkOTU5NGFhLi4yNzNk N2EwMDIwOTkzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaTNjL21hc3Rlci9kdy1pM2MtbWFzdGVy LmMKPiArKysgYi9kcml2ZXJzL2kzYy9tYXN0ZXIvZHctaTNjLW1hc3Rlci5jClsgLi4uIF0KPiBA QCAtMTU3MywxNCArMTU4OSwyOCBAQCBpbnQgZHdfaTNjX2NvbW1vbl9wcm9iZShzdHJ1Y3QgZHdf aTNjX21hc3RlciAqbWFzdGVyLAo+ICAKPiAgCW1hc3Rlci0+ZGV2ID0gJnBkZXYtPmRldjsKPiAg Cj4gKwlpZiAoaGFzX2FjcGlfY29tcGFuaW9uKCZwZGV2LT5kZXYpKSB7Cj4gKwkJcXVpcmtzID0g KHVuc2lnbmVkIGxvbmcpZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwoKW1NldmVy aXR5OiBIaWdoXQpUaGlzIGlzbid0IGEgYnVnIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCwgYnV0 IGRvZXMgdGhpcyBjYXN0IGNhdXNlIHR5cGUKY29uZnVzaW9uIGZvciBQUlAwMDAxIEFDUEkgZGV2 aWNlcz8KCldoZW4gYW4gQUNQSSBkZXZpY2UgYmluZHMgdG8gdGhlIGRyaXZlciB1c2luZyB0aGUg UFJQMDAwMSBPRi1jb21wYXRpYmlsaXR5Cm1lY2hhbmlzbSwgZGV2aWNlX2dldF9tYXRjaF9kYXRh KCkgZGVsZWdhdGVzIHRvIHRoZSBPRiBtYXRjaCB0YWJsZSBhbmQKcmV0dXJucyBhIHBvaW50ZXIg dG8gc3RydWN0IGR3X2kzY19kcnZkYXRhLgoKQmVjYXVzZSBoYXNfYWNwaV9jb21wYW5pb24oKSBy ZXR1cm5zIHRydWUsIHRoaXMgYnJhbmNoIHdpbGwgY2FzdCB0aGF0CnBvaW50ZXIgZGlyZWN0bHkg dG8gYW4gdW5zaWduZWQgbG9uZywgdHJlYXRpbmcgdGhlIG1lbW9yeSBhZGRyZXNzIGFzIGEKYml0 bWFzayBvZiBxdWlya3MuIFRoaXMgY291bGQgY29ycnVwdCB0aGUgZHJpdmVyIHN0YXRlLgoKPiAr CX0gZWxzZSBpZiAocGRldi0+ZGV2Lm9mX25vZGUpIHsKPiArCQlkcnZkYXRhID0gZGV2aWNlX2dl dF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwo+ICsJCWlmIChkcnZkYXRhKQo+ICsJCQlxdWlya3Mg PSBkcnZkYXRhLT5mbGFnczsKPiArCX0KPiArCW1hc3Rlci0+cXVpcmtzID0gcXVpcmtzOwo+ICsK PiAgCW1hc3Rlci0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAw KTsKPiAgCWlmIChJU19FUlIobWFzdGVyLT5yZWdzKSkKPiAgCQlyZXR1cm4gUFRSX0VSUihtYXN0 ZXItPnJlZ3MpOwo+ICAKPiAtCW1hc3Rlci0+Y29yZV9jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxl ZCgmcGRldi0+ZGV2LCBOVUxMKTsKPiArCW1hc3Rlci0+Y29yZV9jbGsgPSBkZXZtX2Nsa19nZXRf b3B0aW9uYWxfZW5hYmxlZCgmcGRldi0+ZGV2LCBOVUxMKTsKPiAgCWlmIChJU19FUlIobWFzdGVy LT5jb3JlX2NsaykpCj4gIAkJcmV0dXJuIFBUUl9FUlIobWFzdGVyLT5jb3JlX2Nsayk7Cj4gIAo+ ICsJaWYgKCFtYXN0ZXItPmNvcmVfY2xrICYmICEobWFzdGVyLT5xdWlya3MgJiBEV19JM0NfQUNQ SV9TS0lQX0NMS19SU1QpKSB7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KV2lsbCB0aGlzIGRyaXZlciBz dGlsbCBmYWlsIHRvIHByb2JlIG9uIEFDUEkgcGxhdGZvcm1zIHdpdGhvdXQgYSBjb3JlIGNsb2Nr PwoKVGhlIGNvZGUgY2hlY2tzIGlmIERXX0kzQ19BQ1BJX1NLSVBfQ0xLX1JTVCBpcyBzZXQgaW4g bWFzdGVyLT5xdWlya3MuCkhvd2V2ZXIsIGl0IGFwcGVhcnMgdGhpcyBxdWlyayBpcyBuZXZlciBp bmNsdWRlZCBpbiB0aGUgZHJpdmVyJ3MgQUNQSQptYXRjaCB0YWJsZSAoYW1kX2kzY19kZXZpY2Vf bWF0Y2gpLiBXaXRob3V0IGJlaW5nIHBvcHVsYXRlZCBieSB0aGUgQUNQSQptYXRjaGluZyBmcmFt ZXdvcmssIHRoZSBmZWF0dXJlIHNlZW1zIHRvIGFjdCBhcyBkZWFkIGNvZGUuCgo+ICsJCWRldl9l cnIoJnBkZXYtPmRldiwgIm1pc3NpbmcgY29yZSBjbG9ja1xuIik7Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwl9Cj4gKwoKWyAuLi4gXQoKW1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzbid0IGEgYnVn IGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCwgYnV0IGlzIHRoZXJlIGEgcnVudGltZSBQTSBhbmQK cmVzb3VyY2UgY2xlYW51cCBpc3N1ZSBkdXJpbmcgZHJpdmVyIHVuYmluZD8KCldoZW4gdGhlIGRl dmljZSBpcyByZW1vdmVkIChlLmcuLCBkcml2ZXIgdW5ib3VuZCB2aWEgc3lzZnMpIHdoaWxlIGlu IGEKcnVudGltZS1zdXNwZW5kZWQgc3RhdGUsIG9yIGFuIGF1dG9zdXNwZW5kIHRpbWVyIGZpcmVz IGNvbmN1cnJlbnRseSB3aXRoIHRoZQpyZW1vdmUgY2FsbGJhY2ssIHRoZSBkcml2ZXIgY29yZSBj YWxscyBwbV9ydW50aW1lX3B1dF9zeW5jKCkgYmVmb3JlIHJlbW92ZS4KClRoaXMgbWVhbnMgdGhl IGRldmljZSBtYXkgYmUgc3VzcGVuZGVkIHdoZW4gZHdfaTNjX2NvbW1vbl9yZW1vdmUoKSBleGVj dXRlcy4KVGhlIGNhbGxiYWNrIHVucmVnaXN0ZXJzIHRoZSBJM0MgbWFzdGVyOgoKZHdfaTNjX2Nv bW1vbl9yZW1vdmUoKQogICAgaTNjX21hc3Rlcl91bnJlZ2lzdGVyKCZtYXN0ZXItPmJhc2UpCiAg ICAgICAgZHdfaTNjX21hc3Rlcl9idXNfY2xlYW51cCgpCiAgICAgICAgICAgIGR3X2kzY19tYXN0 ZXJfZGlzYWJsZSgpCgpUaGlzIGFjY2VzcyB0byB0aGUgREVWSUNFX0NUUkwgTU1JTyByZWdpc3Rl ciBoYXBwZW5zIHdoaWxlIHRoZSBjb250cm9sbGVyCm1pZ2h0IGJlIHVuY2xvY2tlZCwgd2hpY2gg Y291bGQgY2F1c2UgYSBzeW5jaHJvbm91cyBleHRlcm5hbCBhYm9ydAooa2VybmVsIHBhbmljKS4K CldvdWxkIGl0IGJlIHNhZmVyIHRvIHdha2UgdGhlIGRldmljZSB2aWEgcG1fcnVudGltZV9nZXRf c3luYygpIGJlZm9yZQp1bnJlZ2lzdGVyaW5nIHRoZSBidXM/CgotLSAKU2FzaGlrbyBBSSByZXZp ZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNzI4MDY1OTU1LjgwOTQ0 NS0xLWFraGlscmFqZWV2QG52aWRpYS5jb20/cGFydD04CgotLSAKbGludXgtaTNjIG1haWxpbmcg bGlzdApsaW51eC1pM2NAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWkzYwo=