From: "Joshua Peisach" <jpeisach@ubuntu.com>
To: "Sven Peter" <sven@kernel.org>, "Joshua Peisach" <jpeisach@ubuntu.com>
Cc: <asahi@lists.linux.dev>, "Janne Grunau" <j@jannau.net>,
"Lee Jones" <lee@kernel.org>, "Neal Gompa" <neal@gompa.dev>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>,
"kernel test robot" <lkp@intel.com>
Subject: Re: [PATCH] mfd: macsmc: Fix key count endianness annotation
Date: Sun, 19 Jul 2026 11:28:25 -0400 [thread overview]
Message-ID: <DK2NK6ERU0Z6.3FEOZDJN7UP74@ubuntu.com> (raw)
In-Reply-To: <07d37cf5-d49d-4507-82c8-7c6d8c9e01af@kernel.org>
On Sun Jul 19, 2026 at 11:15 AM EDT, Sven Peter wrote:
>
>
> On 7/19/26 17:02, Joshua Peisach wrote:
>> On Sun Jul 19, 2026 at 9:00 AM EDT, Sven Peter wrote:
>>> SMC firmware returns the value of the #KEY key in big-endian unlike most
>>> other keys. Reading it through apple_smc_read_u32() into a plain u32
>>> and then converting with be32_to_cpu() makes sparse complain:
>>>
>>> drivers/mfd/macsmc.c:462:26: sparse: cast to restricted __be32
>>>
>>> Read the raw value into a __be32 using apple_smc_read() instead.
>>>
>>> Fixes: e038d985c982 ("mfd: Add Apple Silicon System Management
>>> Controller")
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> Closes:
>>> https://lore.kernel.org/oe-kbuild-all/202607181046.OANjIoqR-lkp@intel.com/
>>> Signed-off-by: Sven Peter <sven@kernel.org>
>>> ---
>>> drivers/mfd/macsmc.c | 8 +++++---
>>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/mfd/macsmc.c b/drivers/mfd/macsmc.c
>>> index 358feec2d088..514cba7dc897 100644
>>> --- a/drivers/mfd/macsmc.c
>>> +++ b/drivers/mfd/macsmc.c
>>> @@ -410,7 +410,7 @@ static int apple_smc_probe(struct platform_device
>>> *pdev)
>>> {
>>> struct device *dev = &pdev->dev;
>>> struct apple_smc *smc;
>>> - u32 count;
>>> + __be32 count;
>>> int ret;
>>>
>>> smc = devm_kzalloc(dev, sizeof(*smc), GFP_KERNEL);
>>> @@ -461,8 +461,10 @@ static int apple_smc_probe(struct
>>> platform_device *pdev)
>>> dev_set_drvdata(&pdev->dev, smc);
>>> BLOCKING_INIT_NOTIFIER_HEAD(&smc->event_handlers);
>>>
>>> - ret = apple_smc_read_u32(smc, SMC_KEY(#KEY), &count);
>>> - if (ret)
>>> + ret = apple_smc_read(smc, SMC_KEY(#KEY), &count, sizeof(count));
>>> + if (ret >= 0 && ret != sizeof(count))
>>> + ret = -EINVAL;
>>> + if (ret < 0)
>>> return dev_err_probe(smc->dev, ret, "Failed to get key count");
>>> smc->key_count = be32_to_cpu(count);
>>
>> This makes sense, it just feels weird reading because u32 is.. not a
>> be32 (that gets passed into be32_to_cpu).
>
> count is __be32 now (the SMC firmware returns that value as big-endian
> because Apple likes to think different) and we read that using
> apple_smc_read now which just reads raw bytes. be32_to_cpu then converts
> that to a u32, i.e. the type of smc->key_count. There's no functional
> change here. What's weird about that?
>
>
> Sven
Pfft, brain fart. I thought you were going other way around.
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
prev parent reply other threads:[~2026-07-19 15:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-19 13:00 [PATCH] mfd: macsmc: Fix key count endianness annotation Sven Peter
2026-07-19 15:02 ` Joshua Peisach
2026-07-19 15:15 ` Sven Peter
2026-07-19 15:28 ` Joshua Peisach [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DK2NK6ERU0Z6.3FEOZDJN7UP74@ubuntu.com \
--to=jpeisach@ubuntu.com \
--cc=asahi@lists.linux.dev \
--cc=j@jannau.net \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=neal@gompa.dev \
--cc=sven@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.