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 C5C5D2FD1B3; Thu, 9 Jul 2026 17:19:23 +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=1783617565; cv=none; b=B+f4aomDbkrMsOwCZArnHgoquJOoPnoYN0W8cLVxeLpOTNY1MlfvvPRn+7YmhgFIAIx5LOrgp3CmmvkdH90dgTHDkwzvSCVwsiUYeAemabyp7O09AEfkzNdVs4kWOnjVA9gu4HkEqs5fIhKIvnPnaVolzrSLpZpSAUMqvsgONlk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783617565; c=relaxed/simple; bh=0nHkn/5OroKaJJXmYKfkhRK2Blfe7GwZ6bV2Lasn1ZY=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=mV0YsJwskjq6ivAkw7lTCiiONSlNa4GICVdx3f37ZIi6kI2tlkDZMxlAw+UgZXiUhHRb5fzFZVo+90e+VUmf3QlPr2Oz20cSkRhWESJSlQsLrQXd4TGxnjbpiZDMYg8SksqXEUrbqD0r7n71WcH8+WcoVWOXxhhJCoGr/BOuyjg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XpJA2Kdm; 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="XpJA2Kdm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 325291F00A3A; Thu, 9 Jul 2026 17:19:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783617563; bh=I/APwcgRGdwy4hkrXbtaBGQerUWhJgbrlnQXqsjEeX0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=XpJA2KdmM6cHjeabRitYF0Sol+y+db66eipHSpa7xqLzMz0c7BWcyi5BNcgN2wCP4 ph3nCp4A4CBCaEh3dlqNZ4WuGgZIfqsdHmtE9BkZQWSvYEpxyJB0HaaYajiTRG7nKz fFxsssG5vO/s9TzzRKiUffq6KbZiFBOJP5vDLz7kphqZO0ikl0q6W9gVipOLydb0Yx l5ZDBDs+pyWshmOZy8SR2O4N/4aBMmQ4imEbnChPcr1bCIu1kl7ah26u1p5LEGidjl anZfi8n+m1SE37cXbvrKW+FzB8JfGuPT4GBUiPp5gPvC5ZJZYlxOu2AEj1HNE8HGEp yAsaqRs5O9kyg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 21/23] mfd: Unify style of of_device_id arrays Reply-To: sashiko-reviews@lists.linux.dev To: =?utf-8?b?VXdlIEtsZWluZS1Lw7ZuaWcgKFRoZSBDYXBhYmxlIEh1Yik=?= Cc: linux-sunxi@lists.linux.dev, lee@kernel.org, mfd@lists.linux.dev, imx@lists.linux.dev, Frank.Li@kernel.org, neil.armstrong@linaro.org, wsa+renesas@sang-engineering.com, linux-amlogic@lists.infradead.org In-Reply-To: References: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Thu, 09 Jul 2026 17:19:22 +0000 Message-Id: <20260709171923.325291F00A3A@smtp.kernel.org> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 4 potential issue(= s) to consider: Pre-existing issues: - [High] Complex platform data and child device structures passed via match= data - [High] Dynamic modification of global mfd_cell arrays introduces data rac= es - [High] Data race on global da9063_regmap_config struct during probe - [High] IRQ handler leak and subsequent Use-After-Free in twl6030_exit_irq -- --- Patch [21]: [PATCH v3 21/23] mfd: Unify style of of_device_id arrays --- commit 99f4911da67f8c43f41d211ea0ad4e7a3a4972cd Author: Uwe Kleine-K=C3=B6nig (The Capable Hub) mfd: Unify style of of_device_id arrays This commit unifies the coding style of of_device_id arrays across multiple MFD drivers. It removes trailing commas after list terminators, adds spaces before closing braces, and ensures consistent formatting. > diff --git a/drivers/mfd/da9063-i2c.c b/drivers/mfd/da9063-i2c.c > --- a/drivers/mfd/da9063-i2c.c > +++ b/drivers/mfd/da9063-i2c.c [ ... ] > @@ -361,11 +361,12 @@ static struct regmap_config da9063_regmap_config = =3D { > }; > =20 > static const struct of_device_id da9063_dt_ids[] =3D { > - { .compatible =3D "dlg,da9063", }, > - { .compatible =3D "dlg,da9063l", }, > + { .compatible =3D "dlg,da9063" }, > + { .compatible =3D "dlg,da9063l" }, > { } > }; > MODULE_DEVICE_TABLE(of, da9063_dt_ids); > + > static int da9063_i2c_probe(struct i2c_client *i2c) > { > const struct i2c_device_id *id =3D i2c_client_get_device_id(i2c); [Severity: High] This is a pre-existing issue, but does da9063_i2c_probe() mutate the shared global da9063_regmap_config struct during probe? Depending on the device variant, the probe function dynamically assigns different tables: da9063_regmap_config.rd_table =3D &da9063_ad_readable_table; Could this lead to a data race causing incorrect configuration if multiple instances of the device (or different variants) are probed at the same time? > diff --git a/drivers/mfd/rohm-bd9576.c b/drivers/mfd/rohm-bd9576.c > --- a/drivers/mfd/rohm-bd9576.c > +++ b/drivers/mfd/rohm-bd9576.c [ ... ] > @@ -167,9 +167,9 @@ static int bd957x_i2c_probe(struct i2c_client *i2c) > } > =20 > static const struct of_device_id bd957x_of_match[] =3D { > - { .compatible =3D "rohm,bd9576", .data =3D (void *)ROHM_CHIP_TYPE_BD957= 6, }, > - { .compatible =3D "rohm,bd9573", .data =3D (void *)ROHM_CHIP_TYPE_BD957= 3, }, > - { }, > + { .compatible =3D "rohm,bd9576", .data =3D (void *)ROHM_CHIP_TYPE_BD957= 6 }, > + { .compatible =3D "rohm,bd9573", .data =3D (void *)ROHM_CHIP_TYPE_BD957= 3 }, > + { } > }; [Severity: High] This isn't a bug introduced by this patch, but does the probe function for this device dynamically modify a shared global mfd_cell array? bd957x_i2c_probe() contains: regulators =3D &bd9576_mfd_cells[BD957X_REGULATOR_CELL]; regulators->resources =3D bd9576_regulator_irqs; If multiple instances of this device are probed concurrently, could they ra= ce to modify the same global array? A similar issue also seems to exist in 88pm860x-core.c and as3711.c. > diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c > --- a/drivers/mfd/simple-mfd-i2c.c > +++ b/drivers/mfd/simple-mfd-i2c.c [ ... ] > @@ -126,7 +126,7 @@ static const struct of_device_id simple_mfd_i2c_of_ma= tch[] =3D { > { .compatible =3D "maxim,max77705-battery", .data =3D &maxim_mon_max777= 05 }, > { .compatible =3D "silergy,sy7636a", .data =3D &silergy_sy7636a }, > { .compatible =3D "spacemit,p1", .data =3D &spacemit_p1 }, > - {} > + { } > }; [Severity: High] This is a pre-existing issue, but does passing complex struct pointers through the match data violate the MFD subsystem guidelines? The documentation recommends using an integer or enum ID instead to avoid memory safety hazards and initialization ordering races. This pattern appears here as well as in mc13xxx-spi.c, rk8xx-i2c.c, sec-acpm.c, sec-i2c.c, and sun6i-prcm.c. > diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c > --- a/drivers/mfd/twl6030-irq.c > +++ b/drivers/mfd/twl6030-irq.c [ ... ] > @@ -285,7 +285,7 @@ static const struct irq_domain_ops twl6030_irq_domain= _ops =3D { > static const struct of_device_id twl6030_of_match[] __maybe_unused =3D { > { .compatible =3D "ti,twl6030", .data =3D &twl6030_interrupt_mapping }, > { .compatible =3D "ti,twl6032", .data =3D &twl6032_interrupt_mapping }, > - { }, > + { } > }; > =20 > int twl6030_init_irq(struct device *dev, int irq_num) [Severity: High] This is a pre-existing issue, but is there an IRQ handler leak and potential use-after-free during device removal here? In twl6030_init_irq(), the interrupt is requested with twl6030_irq as the dev_id: status =3D request_threaded_irq(irq_num, NULL, twl6030_irq_thread, IRQF_ONESHOT, "TWL6030-PIH", twl6030_irq); However, in twl6030_exit_irq(), it appears NULL is passed to free_irq() instead of twl6030_irq: free_irq(twl6030_irq->twl_irq, NULL); Will free_irq() silently fail to remove the handler due to the mismatched dev_id, leaving the handler registered after the twl6030_irq struct is free= d? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/cover.1783615311.gi= t.u.kleine-koenig@baylibre.com?part=3D21 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 68996C43458 for ; Thu, 9 Jul 2026 17:19:33 +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=pBho2mCaQq0k2DcDPYx+mb5vrtnKJ+Oma+niEIGJdAY=; b=qxq52iqLh+gbQ6 2FkLKOmCIlK6hjsqwT4EIKrpO0jhFqJ2O/tGxiGcDgxoSvz/koY4RKwsWRgfOwDQ10mqgyaFgT0vV EHmGnQNfMzTvZPbcCbPA2VNpykqSqqbuN/qJawdgMExw7zcpTTG+VthtaAWamiPmwCawfyBoTwbaz VCxJbEwyA/XAqCic1lrOUUemCTbrR2iqBi60+F1vUa1s9/3zqa/9AYwLIx5vVAfA0geh8DZulkwNB 1omixli50lB5UkjU8Uecug8bFbCDwhULR/SGoETfFM/0WHo2IB46c6wZWRUlY76f73WVY6LfLP2nC khRnvHuuuXrlVggIDAsQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1whsPF-0000000372u-2eBq; Thu, 09 Jul 2026 17:19:25 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1whsPE-0000000372n-2E9x for linux-amlogic@lists.infradead.org; Thu, 09 Jul 2026 17:19:24 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 010B961386; Thu, 9 Jul 2026 17:19:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 325291F00A3A; Thu, 9 Jul 2026 17:19:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783617563; bh=I/APwcgRGdwy4hkrXbtaBGQerUWhJgbrlnQXqsjEeX0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=XpJA2KdmM6cHjeabRitYF0Sol+y+db66eipHSpa7xqLzMz0c7BWcyi5BNcgN2wCP4 ph3nCp4A4CBCaEh3dlqNZ4WuGgZIfqsdHmtE9BkZQWSvYEpxyJB0HaaYajiTRG7nKz fFxsssG5vO/s9TzzRKiUffq6KbZiFBOJP5vDLz7kphqZO0ikl0q6W9gVipOLydb0Yx l5ZDBDs+pyWshmOZy8SR2O4N/4aBMmQ4imEbnChPcr1bCIu1kl7ah26u1p5LEGidjl anZfi8n+m1SE37cXbvrKW+FzB8JfGuPT4GBUiPp5gPvC5ZJZYlxOu2AEj1HNE8HGEp yAsaqRs5O9kyg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 21/23] mfd: Unify style of of_device_id arrays To: =?utf-8?b?VXdlIEtsZWluZS1Lw7ZuaWcgKFRoZSBDYXBhYmxlIEh1Yik=?= Cc: linux-sunxi@lists.linux.dev, lee@kernel.org, mfd@lists.linux.dev, imx@lists.linux.dev, Frank.Li@kernel.org, neil.armstrong@linaro.org, wsa+renesas@sang-engineering.com, linux-amlogic@lists.infradead.org In-Reply-To: References: Date: Thu, 09 Jul 2026 17:19:22 +0000 Message-Id: <20260709171923.325291F00A3A@smtp.kernel.org> 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: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 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 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpQcmUtZXhpc3RpbmcgaXNzdWVzOgot IFtIaWdoXSBDb21wbGV4IHBsYXRmb3JtIGRhdGEgYW5kIGNoaWxkIGRldmljZSBzdHJ1Y3R1cmVz IHBhc3NlZCB2aWEgbWF0Y2ggZGF0YQotIFtIaWdoXSBEeW5hbWljIG1vZGlmaWNhdGlvbiBvZiBn bG9iYWwgbWZkX2NlbGwgYXJyYXlzIGludHJvZHVjZXMgZGF0YSByYWNlcwotIFtIaWdoXSBEYXRh IHJhY2Ugb24gZ2xvYmFsIGRhOTA2M19yZWdtYXBfY29uZmlnIHN0cnVjdCBkdXJpbmcgcHJvYmUK LSBbSGlnaF0gSVJRIGhhbmRsZXIgbGVhayBhbmQgc3Vic2VxdWVudCBVc2UtQWZ0ZXItRnJlZSBp biB0d2w2MDMwX2V4aXRfaXJxCi0tCgotLS0gUGF0Y2ggWzIxXTogW1BBVENIIHYzIDIxLzIzXSBt ZmQ6IFVuaWZ5IHN0eWxlIG9mIG9mX2RldmljZV9pZCBhcnJheXMgLS0tCmNvbW1pdCA5OWY0OTEx ZGE2N2Y4YzQzZjQxZDIxMWVhMGFkNGU3YTNhNDk3MmNkCkF1dGhvcjogVXdlIEtsZWluZS1Lw7Zu aWcgKFRoZSBDYXBhYmxlIEh1YikgPHUua2xlaW5lLWtvZW5pZ0BiYXlsaWJyZS5jb20+CgptZmQ6 IFVuaWZ5IHN0eWxlIG9mIG9mX2RldmljZV9pZCBhcnJheXMKClRoaXMgY29tbWl0IHVuaWZpZXMg dGhlIGNvZGluZyBzdHlsZSBvZiBvZl9kZXZpY2VfaWQgYXJyYXlzIGFjcm9zcyBtdWx0aXBsZQpN RkQgZHJpdmVycy4gSXQgcmVtb3ZlcyB0cmFpbGluZyBjb21tYXMgYWZ0ZXIgbGlzdCB0ZXJtaW5h dG9ycywgYWRkcyBzcGFjZXMKYmVmb3JlIGNsb3NpbmcgYnJhY2VzLCBhbmQgZW5zdXJlcyBjb25z aXN0ZW50IGZvcm1hdHRpbmcuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9kYTkwNjMtaTJj LmMgYi9kcml2ZXJzL21mZC9kYTkwNjMtaTJjLmMKPiAtLS0gYS9kcml2ZXJzL21mZC9kYTkwNjMt aTJjLmMKPiArKysgYi9kcml2ZXJzL21mZC9kYTkwNjMtaTJjLmMKWyAuLi4gXQo+IEBAIC0zNjEs MTEgKzM2MSwxMiBAQCBzdGF0aWMgc3RydWN0IHJlZ21hcF9jb25maWcgZGE5MDYzX3JlZ21hcF9j b25maWcgPSB7Cj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBk YTkwNjNfZHRfaWRzW10gPSB7Cj4gLQl7IC5jb21wYXRpYmxlID0gImRsZyxkYTkwNjMiLCB9LAo+ IC0JeyAuY29tcGF0aWJsZSA9ICJkbGcsZGE5MDYzbCIsIH0sCj4gKwl7IC5jb21wYXRpYmxlID0g ImRsZyxkYTkwNjMiIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gImRsZyxkYTkwNjNsIiB9LAo+ICAJ eyB9Cj4gIH07Cj4gIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGRhOTA2M19kdF9pZHMpOwo+ICsK PiAgc3RhdGljIGludCBkYTkwNjNfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMpCj4g IHsKPiAgCWNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCA9IGkyY19jbGllbnRfZ2V0X2Rl dmljZV9pZChpMmMpOwoKW1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlz c3VlLCBidXQgZG9lcyBkYTkwNjNfaTJjX3Byb2JlKCkgbXV0YXRlIHRoZSBzaGFyZWQKZ2xvYmFs IGRhOTA2M19yZWdtYXBfY29uZmlnIHN0cnVjdCBkdXJpbmcgcHJvYmU/CgpEZXBlbmRpbmcgb24g dGhlIGRldmljZSB2YXJpYW50LCB0aGUgcHJvYmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYXNzaWdu cwpkaWZmZXJlbnQgdGFibGVzOgoKICAgIGRhOTA2M19yZWdtYXBfY29uZmlnLnJkX3RhYmxlID0g JmRhOTA2M19hZF9yZWFkYWJsZV90YWJsZTsKCkNvdWxkIHRoaXMgbGVhZCB0byBhIGRhdGEgcmFj ZSBjYXVzaW5nIGluY29ycmVjdCBjb25maWd1cmF0aW9uIGlmIG11bHRpcGxlCmluc3RhbmNlcyBv ZiB0aGUgZGV2aWNlIChvciBkaWZmZXJlbnQgdmFyaWFudHMpIGFyZSBwcm9iZWQgYXQgdGhlIHNh bWUgdGltZT8KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3JvaG0tYmQ5NTc2LmMgYi9kcml2 ZXJzL21mZC9yb2htLWJkOTU3Ni5jCj4gLS0tIGEvZHJpdmVycy9tZmQvcm9obS1iZDk1NzYuYwo+ ICsrKyBiL2RyaXZlcnMvbWZkL3JvaG0tYmQ5NTc2LmMKWyAuLi4gXQo+IEBAIC0xNjcsOSArMTY3 LDkgQEAgc3RhdGljIGludCBiZDk1N3hfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMp Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJkOTU3eF9vZl9t YXRjaFtdID0gewo+IC0JeyAuY29tcGF0aWJsZSA9ICJyb2htLGJkOTU3NiIsIC5kYXRhID0gKHZv aWQgKilST0hNX0NISVBfVFlQRV9CRDk1NzYsIH0sCj4gLQl7IC5jb21wYXRpYmxlID0gInJvaG0s YmQ5NTczIiwgLmRhdGEgPSAodm9pZCAqKVJPSE1fQ0hJUF9UWVBFX0JEOTU3MywgfSwKPiAtCXsg fSwKPiArCXsgLmNvbXBhdGlibGUgPSAicm9obSxiZDk1NzYiLCAuZGF0YSA9ICh2b2lkICopUk9I TV9DSElQX1RZUEVfQkQ5NTc2IH0sCj4gKwl7IC5jb21wYXRpYmxlID0gInJvaG0sYmQ5NTczIiwg LmRhdGEgPSAodm9pZCAqKVJPSE1fQ0hJUF9UWVBFX0JEOTU3MyB9LAo+ICsJeyB9Cj4gIH07Cgpb U2V2ZXJpdHk6IEhpZ2hdClRoaXMgaXNuJ3QgYSBidWcgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNo LCBidXQgZG9lcyB0aGUgcHJvYmUgZnVuY3Rpb24gZm9yCnRoaXMgZGV2aWNlIGR5bmFtaWNhbGx5 IG1vZGlmeSBhIHNoYXJlZCBnbG9iYWwgbWZkX2NlbGwgYXJyYXk/CgpiZDk1N3hfaTJjX3Byb2Jl KCkgY29udGFpbnM6CgogICAgcmVndWxhdG9ycyA9ICZiZDk1NzZfbWZkX2NlbGxzW0JEOTU3WF9S RUdVTEFUT1JfQ0VMTF07CiAgICByZWd1bGF0b3JzLT5yZXNvdXJjZXMgPSBiZDk1NzZfcmVndWxh dG9yX2lycXM7CgpJZiBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhpcyBkZXZpY2UgYXJlIHByb2Jl ZCBjb25jdXJyZW50bHksIGNvdWxkIHRoZXkgcmFjZQp0byBtb2RpZnkgdGhlIHNhbWUgZ2xvYmFs IGFycmF5PyBBIHNpbWlsYXIgaXNzdWUgYWxzbyBzZWVtcyB0byBleGlzdCBpbgo4OHBtODYweC1j b3JlLmMgYW5kIGFzMzcxMS5jLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvc2ltcGxlLW1m ZC1pMmMuYyBiL2RyaXZlcnMvbWZkL3NpbXBsZS1tZmQtaTJjLmMKPiAtLS0gYS9kcml2ZXJzL21m ZC9zaW1wbGUtbWZkLWkyYy5jCj4gKysrIGIvZHJpdmVycy9tZmQvc2ltcGxlLW1mZC1pMmMuYwpb IC4uLiBdCj4gQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCBzaW1wbGVfbWZkX2kyY19vZl9tYXRjaFtdID0gewo+ICAJeyAuY29tcGF0aWJsZSA9ICJt YXhpbSxtYXg3NzcwNS1iYXR0ZXJ5IiwgLmRhdGEgPSAmbWF4aW1fbW9uX21heDc3NzA1IH0sCj4g IAl7IC5jb21wYXRpYmxlID0gInNpbGVyZ3ksc3k3NjM2YSIsIC5kYXRhID0gJnNpbGVyZ3lfc3k3 NjM2YSB9LAo+ICAJeyAuY29tcGF0aWJsZSA9ICJzcGFjZW1pdCxwMSIsIC5kYXRhID0gJnNwYWNl bWl0X3AxIH0sCj4gLQl7fQo+ICsJeyB9Cj4gIH07CgpbU2V2ZXJpdHk6IEhpZ2hdClRoaXMgaXMg YSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBkb2VzIHBhc3NpbmcgY29tcGxleCBzdHJ1Y3QgcG9p bnRlcnMKdGhyb3VnaCB0aGUgbWF0Y2ggZGF0YSB2aW9sYXRlIHRoZSBNRkQgc3Vic3lzdGVtIGd1 aWRlbGluZXM/IFRoZQpkb2N1bWVudGF0aW9uIHJlY29tbWVuZHMgdXNpbmcgYW4gaW50ZWdlciBv ciBlbnVtIElEIGluc3RlYWQgdG8gYXZvaWQgbWVtb3J5CnNhZmV0eSBoYXphcmRzIGFuZCBpbml0 aWFsaXphdGlvbiBvcmRlcmluZyByYWNlcy4KClRoaXMgcGF0dGVybiBhcHBlYXJzIGhlcmUgYXMg d2VsbCBhcyBpbiBtYzEzeHh4LXNwaS5jLCByazh4eC1pMmMuYywKc2VjLWFjcG0uYywgc2VjLWky Yy5jLCBhbmQgc3VuNmktcHJjbS5jLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvdHdsNjAz MC1pcnEuYyBiL2RyaXZlcnMvbWZkL3R3bDYwMzAtaXJxLmMKPiAtLS0gYS9kcml2ZXJzL21mZC90 d2w2MDMwLWlycS5jCj4gKysrIGIvZHJpdmVycy9tZmQvdHdsNjAzMC1pcnEuYwpbIC4uLiBdCj4g QEAgLTI4NSw3ICsyODUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5fb3BzIHR3 bDYwMzBfaXJxX2RvbWFpbl9vcHMgPSB7Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkIHR3bDYwMzBfb2ZfbWF0Y2hbXSBfX21heWJlX3VudXNlZCA9IHsKPiAgCXsgLmNvbXBhdGli bGUgPSAidGksdHdsNjAzMCIsIC5kYXRhID0gJnR3bDYwMzBfaW50ZXJydXB0X21hcHBpbmcgfSwK PiAgCXsgLmNvbXBhdGlibGUgPSAidGksdHdsNjAzMiIsIC5kYXRhID0gJnR3bDYwMzJfaW50ZXJy dXB0X21hcHBpbmcgfSwKPiAtCXsgfSwKPiArCXsgfQo+ICB9Owo+ICAKPiAgaW50IHR3bDYwMzBf aW5pdF9pcnEoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgaXJxX251bSkKCltTZXZlcml0eTogSGln aF0KVGhpcyBpcyBhIHByZS1leGlzdGluZyBpc3N1ZSwgYnV0IGlzIHRoZXJlIGFuIElSUSBoYW5k bGVyIGxlYWsgYW5kIHBvdGVudGlhbAp1c2UtYWZ0ZXItZnJlZSBkdXJpbmcgZGV2aWNlIHJlbW92 YWwgaGVyZT8KCkluIHR3bDYwMzBfaW5pdF9pcnEoKSwgdGhlIGludGVycnVwdCBpcyByZXF1ZXN0 ZWQgd2l0aCB0d2w2MDMwX2lycSBhcyB0aGUKZGV2X2lkOgoKICAgIHN0YXR1cyA9IHJlcXVlc3Rf dGhyZWFkZWRfaXJxKGlycV9udW0sIE5VTEwsIHR3bDYwMzBfaXJxX3RocmVhZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElSUUZfT05FU0hPVCwgIlRXTDYwMzAtUElIIiwgdHds NjAzMF9pcnEpOwoKSG93ZXZlciwgaW4gdHdsNjAzMF9leGl0X2lycSgpLCBpdCBhcHBlYXJzIE5V TEwgaXMgcGFzc2VkIHRvIGZyZWVfaXJxKCkKaW5zdGVhZCBvZiB0d2w2MDMwX2lycToKCiAgICBm cmVlX2lycSh0d2w2MDMwX2lycS0+dHdsX2lycSwgTlVMTCk7CgpXaWxsIGZyZWVfaXJxKCkgc2ls ZW50bHkgZmFpbCB0byByZW1vdmUgdGhlIGhhbmRsZXIgZHVlIHRvIHRoZSBtaXNtYXRjaGVkCmRl dl9pZCwgbGVhdmluZyB0aGUgaGFuZGxlciByZWdpc3RlcmVkIGFmdGVyIHRoZSB0d2w2MDMwX2ly cSBzdHJ1Y3QgaXMgZnJlZWQ/CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNo aWtvLmRldi8jL3BhdGNoc2V0L2NvdmVyLjE3ODM2MTUzMTEuZ2l0LnUua2xlaW5lLWtvZW5pZ0Bi YXlsaWJyZS5jb20/cGFydD0yMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWlsaW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYW1sb2dpYwo=