From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: Robin van der Gracht <robin@protonic.nl>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH master 2/7] nvmem: bsec: correct regmap's max_register
Date: Mon, 8 Jan 2024 11:44:00 +0100 [thread overview]
Message-ID: <48a6551d-b6a9-45de-bcca-71599b39a1ba@pengutronix.de> (raw)
In-Reply-To: <20240108112958.3b582cbb@ERD993>
Hello Robin,
On 08.01.24 11:29, Robin van der Gracht wrote:
> Hi Ahmad,
>
> Comments are below.
>
> On Tue, 2 Jan 2024 18:00:55 +0100
> Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
>
>> The max_register must be a multiple of the register stride, which is not
>> the case for (384 / 4) - 1 == 95. Instead, we should be setting 380, so
>> fix the calculation to do this.
>>
>> Fixes: 094ce0ee7cdf ("nvmem: bsec: correct regmap's max_register")
>> Reported-by: Robin van der Gracht <robin@protonic.nl>
>> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> ---
>> drivers/nvmem/bsec.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/nvmem/bsec.c b/drivers/nvmem/bsec.c
>> index 889f14428d59..22e30c6c2e82 100644
>> --- a/drivers/nvmem/bsec.c
>> +++ b/drivers/nvmem/bsec.c
>> @@ -218,7 +218,7 @@ static int stm32_bsec_probe(struct device *dev)
>> priv->map_config.reg_bits = 32;
>> priv->map_config.val_bits = 32;
>> priv->map_config.reg_stride = 4;
>> - priv->map_config.max_register = (data->size / 4) - 1;
>> + priv->map_config.max_register = data->size - priv->map_config.reg_stride;
>>
>> priv->lower = data->lower;
>>
>
> This patch gives a bsec device size of 1520 bytes. Which means I'm now
> allowed to read/write beyond register 95 without an error.
>
> barebox@board:/ ls -l /dev/stm32-bsec
> crw------- 1520 /dev/stm32-bsec
>
> The device size is now in bytes, but the read/write offsets given to
> the md and mw commands is still in bytes/stride.
>
> I.e. to read register 95:
> md -l -s /dev/stm32-bsec 380+4
> 0000017c: xxxxxxxx
>
> I can now also read register 100:
> md -l -s /dev/stm32-bsec 400+4
> 00000190: 00000000 ....
>
> This doesn't seem right.
>
> max_register should probably stay 95. See doc[1]
>
> 1:https://git.pengutronix.de/cgit/barebox/tree/include/linux/regmap.h?h=v2023.12.0#n33
Did you apply the whole series? With the whole series applied I have:
barebox@Linux Automation MC-1 board:/ ls -l /dev/stm32-bsec
crw------- 384 /dev/stm32-bsec
Because there are two issues (size in bsec driver is wrong, cdev size is calculated wrong),
I need to decide which to fix first or squash them. I chose to make the size intermittently
bigger (so reading valid offsets still work) instead of making it smaller and breaking
bisect (or squashing all and making it less easy to review).
Cheers,
Ahmad
>
> Robin
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2024-01-08 10:45 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-02 17:00 [PATCH master 0/7] regmap: fix size of regmap-backed cdev and nvmem Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 1/7] regmap: fix calculation of regmap size when reg_stride != 1 Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 2/7] nvmem: bsec: correct regmap's max_register Ahmad Fatoum
2024-01-08 10:29 ` Robin van der Gracht
2024-01-08 10:44 ` Ahmad Fatoum [this message]
2024-01-08 11:17 ` Robin van der Gracht
2024-01-08 12:48 ` Robin van der Gracht
2024-01-11 7:35 ` Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 3/7] nvmem: startfive-otp: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 4/7] nvmem: imx-ocotp-ele: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 5/7] nvmem: ocotp: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 6/7] nvmem: ocotp: align OCOTP bank count with Linux Ahmad Fatoum
2024-01-02 17:01 ` [PATCH master 7/7] nvmem: regmap: Fix nvmem size Ahmad Fatoum
2024-01-08 9:43 ` [PATCH master 0/7] regmap: fix size of regmap-backed cdev and nvmem Sascha Hauer
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=48a6551d-b6a9-45de-bcca-71599b39a1ba@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=robin@protonic.nl \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox