From: Ivan Vecera <ivecera@redhat.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
Jiri Pirko <jiri@resnulli.us>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Prathosh Satish <Prathosh.Satish@microchip.com>,
Lee Jones <lee@kernel.org>, Kees Cook <kees@kernel.org>,
Andy Shevchenko <andy@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Schmidt <mschmidt@redhat.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH net-next v4 5/8] mfd: zl3073x: Add functions to work with register mailboxes
Date: Thu, 24 Apr 2025 19:10:29 +0200 [thread overview]
Message-ID: <bd645425-b9cb-454d-8971-646501704697@redhat.com> (raw)
In-Reply-To: <5094e051-5504-48a5-b411-ed1a0d949eeb@lunn.ch>
On 24. 04. 25 6:43 odp., Andrew Lunn wrote:
>> +static int
>> +zl3073x_write_reg(struct zl3073x_dev *zldev, unsigned int reg, const void *val)
>> +{
>> + unsigned int len;
>> + u8 buf[6];
>> + int rc;
>> +
>> + /* Offset of the last item in the indexed register or offset of
>> + * the non-indexed register itself.
>> + */
>> + if (ZL_REG_OFFSET(reg) > ZL_REG_MAX_OFFSET(reg)) {
>> + dev_err(zldev->dev, "Index of out range for reg 0x%04lx\n",
>> + ZL_REG_ADDR(reg));
>> + return -EINVAL;
>> + }
>> +
>> + len = ZL_REG_SIZE(reg);
>
> I suggested you add helpers for zl3073x_write_reg_u8(),
> zl3073x_write_reg_u16(), zl3073x_write_reg_32(), and
> zl3073x_write_reg_48(). The compiler will then do type checking for
> val, ensure what you pass is actually big enough.
>
> Here you have a void *val. You have no idea how big a value that
> pointer points to, and the compiler is not helping you.
During taking 613cbb91e9ce ("media: Add MIPI CCI register access helper
functions") approach I found they are using for these functions u64
regardless of register size... Just to accommodate the biggest
possible value. I know about weakness of 'void *' usage but u64 is not
also ideal as the caller is forced to pass always 8 bytes for reading
and forced to reserve 8 bytes for each read value on stack.
> I suggest you add the individual helpers. If you decided to keep the
> register meta data, you can validate the correct helper has been
> called.
Yes, this should be easily implemented, will follow this.
Anyway, still don't know what to do with mailboxes (aka multiple atomic
register operations). Lee seems to be against the placement of this
code in MFD parent driver.
Each sequence has to be protected by some lock and this lock needs to be
placed in MFD. Yes the routines for MB access can be for example in DPLL
driver but still the locks have to be inside MFD. So they have to be
exposed to sub-devices.
Thanks,
Ivan
next prev parent reply other threads:[~2025-04-24 17:10 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-24 15:47 [PATCH net-next v4 0/8] Add Microchip ZL3073x support (part 1) Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 1/8] dt-bindings: dpll: Add DPLL device and pin Ivan Vecera
2025-04-25 7:39 ` Krzysztof Kozlowski
2025-04-25 9:36 ` Ivan Vecera
2025-04-25 9:40 ` Krzysztof Kozlowski
2025-04-24 15:47 ` [PATCH net-next v4 2/8] dt-bindings: dpll: Add support for Microchip Azurite chip family Ivan Vecera
2025-04-25 7:41 ` Krzysztof Kozlowski
2025-04-25 9:38 ` Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 3/8] mfd: Add Microchip ZL3073x support Ivan Vecera
2025-04-24 16:34 ` Andrew Lunn
2025-04-24 16:49 ` Ivan Vecera
2025-04-25 3:36 ` kernel test robot
2025-04-24 15:47 ` [PATCH net-next v4 4/8] mfd: zl3073x: Add support for devlink device info Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 5/8] mfd: zl3073x: Add functions to work with register mailboxes Ivan Vecera
2025-04-24 16:43 ` Andrew Lunn
2025-04-24 17:10 ` Ivan Vecera [this message]
2025-04-24 19:10 ` Andrew Lunn
2025-04-24 19:26 ` Ivan Vecera
2025-04-24 19:29 ` Andrew Lunn
2025-04-24 19:58 ` Ivan Vecera
2025-04-25 6:55 ` Lee Jones
2025-04-25 10:13 ` Ivan Vecera
2025-04-25 10:17 ` Lee Jones
2025-04-25 10:29 ` Ivan Vecera
2025-04-24 19:18 ` Andrew Lunn
2025-04-24 19:53 ` Ivan Vecera
2025-04-24 19:57 ` Andrew Lunn
2025-04-25 13:04 ` Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 6/8] mfd: zl3073x: Fetch invariants during probe Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 7/8] mfd: zl3073x: Add clock_id field Ivan Vecera
2025-04-24 15:47 ` [PATCH net-next v4 8/8] mfd: zl3073x: Register DPLL sub-device during init Ivan Vecera
2025-04-24 15:51 ` [PATCH net-next v4 0/8] Add Microchip ZL3073x support (part 1) Lee Jones
2025-04-24 16:29 ` Ivan Vecera
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=bd645425-b9cb-454d-8971-646501704697@redhat.com \
--to=ivecera@redhat.com \
--cc=Prathosh.Satish@microchip.com \
--cc=akpm@linux-foundation.org \
--cc=andrew@lunn.ch \
--cc=andy@kernel.org \
--cc=arkadiusz.kubalewski@intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jiri@resnulli.us \
--cc=kees@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=robh@kernel.org \
--cc=vadim.fedorenko@linux.dev \
/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