From: Andrew Lunn <andrew@lunn.ch>
To: Ivan Vecera <ivecera@redhat.com>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>,
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 v2 07/14] mfd: zl3073x: Add components versions register defs
Date: Sun, 13 Apr 2025 21:50:48 +0200 [thread overview]
Message-ID: <83f83841-fa10-422f-9b4b-625c678a4b5e@lunn.ch> (raw)
In-Reply-To: <46ff3480-caca-4e2c-9382-2897c611758a@redhat.com>
61;8000;1cOn Fri, Apr 11, 2025 at 03:17:14PM +0200, Ivan Vecera wrote:
> On 11. 04. 25 1:19 odp., Ivan Vecera wrote:
> > The range for regmap 1: (registers 0x000-0x4FF)
> > regmap_range_cfg {
> > .range_min = 0,
> > .range_max = 10 * 128 - 1, /* 10 pages, 128 registers each */
> > .selector_reg = 0x7f, /* page selector at each page */
> > .selector_shift = 0, /* no shift in page selector */
> > .selector_mask = GENMASK(3, 0), /* 4 bits for page sel */
> > .window_start = 0, /* 128 regs from 0x00-0x7f */
> > .window_len = 128,
> > };
> >
> > The range for regmap 2: (registers 0x500-0x77F)
> > regmap_range_cfg {
> > .range_min = 10 * 128,
> > .range_max = 15 * 128 - 1, /* 5 pages, 128 registers each */
> > .selector_reg = 0x7f, /* page selector at each page */
> > .selector_shift = 0, /* no shift in page selector */
> > .selector_mask = GENMASK(3, 0), /* 4 bits for page sel */
> > .window_start = 0, /* 128 regs from 0x00-0x7f */
> > .window_len = 128,
> > };
> >
> > Is it now OK?
>
> No this is not good... I cannot use 2 ranges.
>
> This is not safe... if the caller use regmap 2 to read/write something below
> 0x500 (by mistake), no mapping is applied and value is directly used as
> register number that's wrong :-(.
>
> Should I use rather single mapping range to cover all pages and ensure at
> driver level that regmap 2 is not used for regs < 0x500?
I don't know regmap too well, but cannot your mailbox regmap have a
reg_base of 10 * 128. Going blow that would then require a negative
reg, but they are unsigned int.
One of that things the core MFD driver is about is giving you safe
access to shared registers on some sort of bus. So it could well be
your MFD exports an higher level API for mailboxs, a mailbox read and
mailbox write, etc. The regmap below it is not exposed outside of the
MFD core. And the MFD core does all the locking.
Andrew
next prev parent reply other threads:[~2025-04-13 19:51 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-09 14:42 [PATCH v2 00/14] Add Microchip ZL3073x support (part 1) Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 01/14] dt-bindings: dpll: Add device tree bindings for DPLL device and pin Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 02/14] dt-bindings: dpll: Add support for Microchip Azurite chip family Ivan Vecera
2025-04-10 7:06 ` Krzysztof Kozlowski
2025-04-10 7:45 ` Ivan Vecera
2025-04-10 13:18 ` Conor Dooley
2025-04-10 13:35 ` Ivan Vecera
2025-04-10 17:07 ` Prathosh.Satish
2025-04-10 17:36 ` Ivan Vecera
2025-04-10 18:36 ` Prathosh.Satish
2025-04-10 17:36 ` Andrew Lunn
2025-04-10 18:33 ` Ivan Vecera
2025-04-10 21:12 ` Andrew Lunn
2025-04-11 9:56 ` Ivan Vecera
2025-04-14 17:19 ` Conor Dooley
2025-04-09 14:42 ` [PATCH v2 03/14] mfd: Add Microchip ZL3073x support Ivan Vecera
2025-04-09 15:43 ` Andy Shevchenko
2025-04-10 7:19 ` Krzysztof Kozlowski
2025-04-10 7:52 ` Ivan Vecera
2025-04-10 17:50 ` Andrew Lunn
2025-04-10 18:36 ` Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 04/14] mfd: zl3073x: Register itself as devlink device Ivan Vecera
2025-04-19 12:40 ` kernel test robot
2025-04-19 14:03 ` kernel test robot
2025-04-09 14:42 ` [PATCH v2 05/14] mfd: zl3073x: Add register access helpers Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 06/14] mfd: zl3073x: Add macros for device registers access Ivan Vecera
2025-04-10 7:17 ` Krzysztof Kozlowski
2025-04-10 8:20 ` Ivan Vecera
2025-04-10 17:53 ` Andy Shevchenko
2025-04-13 10:18 ` Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 07/14] mfd: zl3073x: Add components versions register defs Ivan Vecera
2025-04-10 7:13 ` Krzysztof Kozlowski
2025-04-10 8:26 ` Ivan Vecera
2025-04-10 17:41 ` Andrew Lunn
2025-04-10 18:44 ` Ivan Vecera
2025-04-10 21:54 ` Andrew Lunn
2025-04-15 10:01 ` Ivan Vecera
2025-04-15 11:16 ` Andy Shevchenko
2025-04-15 12:57 ` Andrew Lunn
2025-04-15 14:20 ` Ivan Vecera
2025-04-10 17:50 ` Andy Shevchenko
2025-04-11 11:19 ` Ivan Vecera
2025-04-11 12:31 ` Andrew Lunn
2025-04-11 13:19 ` Ivan Vecera
2025-04-11 13:17 ` Ivan Vecera
2025-04-13 19:50 ` Andrew Lunn [this message]
2025-04-09 14:42 ` [PATCH v2 08/14] mfd: zl3073x: Implement devlink device info Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 09/14] mfd: zl3073x: Add macro to wait for register value bits to be cleared Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 10/14] mfd: zl3073x: Add functions to work with register mailboxes Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 11/14] mfd: zl3073x: Add clock_id field Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 12/14] lib: Allow modules to use strnchrnul Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 13/14] mfd: zl3073x: Load mfg file into HW if it is present Ivan Vecera
2025-04-09 14:42 ` [PATCH v2 14/14] mfd: zl3073x: Fetch invariants during probe Ivan Vecera
2025-04-10 0:17 ` [PATCH v2 00/14] Add Microchip ZL3073x support (part 1) Jakub Kicinski
2025-04-10 9:18 ` Ivan Vecera
2025-04-10 17:26 ` Andrew Lunn
2025-04-10 22:57 ` Jakub Kicinski
2025-04-11 7:45 ` Ivan Vecera
2025-04-10 7:29 ` Lee Jones
2025-04-11 7:26 ` Lee Jones
2025-04-11 8:01 ` Ivan Vecera
2025-04-11 14:27 ` Michal Schmidt
2025-04-11 14:38 ` Michal Schmidt
2025-04-11 15:58 ` Rob Herring
2025-04-15 10:28 ` Lee Jones
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=83f83841-fa10-422f-9b4b-625c678a4b5e@lunn.ch \
--to=andrew@lunn.ch \
--cc=Prathosh.Satish@microchip.com \
--cc=akpm@linux-foundation.org \
--cc=andy.shevchenko@gmail.com \
--cc=andy@kernel.org \
--cc=arkadiusz.kubalewski@intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=ivecera@redhat.com \
--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
all inboxes | Powered by JetHome®