* Re: [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design [not found] ` <20260425163449.547b7ed9@jic23-huawei> @ 2026-05-12 11:00 ` Guilherme Ivo Bozi 2026-05-12 11:02 ` Michal Simek 2026-05-12 11:26 ` Erim, Salih 0 siblings, 2 replies; 11+ messages in thread From: Guilherme Ivo Bozi @ 2026-05-12 11:00 UTC (permalink / raw) To: Jonathan Cameron Cc: Salih Erim, Conall O'Griofa, Michal Simek, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel > This series looks fine to me. > > Given the AMD Xilinx folk are fairly active reviewers I'm just > waiting on them taking a look. Hi, just checking in on this series since it’s been some time. Any updates from AMD Xilinx review or anything else needed from my side? -- Thanks, Guilherme Ivo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design 2026-05-12 11:00 ` [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design Guilherme Ivo Bozi @ 2026-05-12 11:02 ` Michal Simek 2026-05-12 11:26 ` Erim, Salih 1 sibling, 0 replies; 11+ messages in thread From: Michal Simek @ 2026-05-12 11:02 UTC (permalink / raw) To: Guilherme Ivo Bozi, Jonathan Cameron Cc: Salih Erim, Conall O'Griofa, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Ivo, On 5/12/26 13:00, Guilherme Ivo Bozi wrote: >> This series looks fine to me. >> >> Given the AMD Xilinx folk are fairly active reviewers I'm just >> waiting on them taking a look. > Hi, just checking in on this series since it’s been some time. > Any updates from AMD Xilinx review or anything else needed from > my side? Checking internally who can test this. Please give me some time. Thanks, Michal ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design 2026-05-12 11:00 ` [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design Guilherme Ivo Bozi 2026-05-12 11:02 ` Michal Simek @ 2026-05-12 11:26 ` Erim, Salih 1 sibling, 0 replies; 11+ messages in thread From: Erim, Salih @ 2026-05-12 11:26 UTC (permalink / raw) To: Guilherme Ivo Bozi, Jonathan Cameron Cc: O'Griofa, Conall, Simek, Michal, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Hi Guilherme, > > > This series looks fine to me. > > > > Given the AMD Xilinx folk are fairly active reviewers I'm just waiting > > on them taking a look. > Hi, just checking in on this series since it’s been some time. > Any updates from AMD Xilinx review or anything else needed from my side? No, not needed, I am reviewing and will test it. > > -- > Thanks, > Guilherme Ivo Salih. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design [not found] <20260414224245.8493-1-guilherme.bozi@usp.br> [not found] ` <20260425163449.547b7ed9@jic23-huawei> @ 2026-05-12 14:18 ` Salih Erim [not found] ` <20260414224245.8493-2-guilherme.bozi@usp.br> ` (2 subsequent siblings) 4 siblings, 0 replies; 11+ messages in thread From: Salih Erim @ 2026-05-12 14:18 UTC (permalink / raw) To: Guilherme Ivo Bozi, Conall O'Griofa, Jonathan Cameron, Michal Simek Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Guilherme, Thanks for working on this. The refactoring approach looks good overall, but all three patches have indentation issues and patch 3 has one semantic issue. Please see my comments on each patch. On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > This series addresses significant code duplication in alarm handling > logic across the Xilinx AMS IIO driver. > > To address this, the series introduces a centralized table-driven > mapping (alarm_map) that replaces multiple switch statements spread > across the driver. > > This improves: > - maintainability (single source of truth for mappings) > - readability (removes repeated switch logic) > - extensibility (new alarms require only table updates) > > No functional changes are intended. > > Series overview: > - Patch 1: fix out-of-bounds channel lookup > - Patch 2: convert mutex handling to guard(mutex) > - Patch 3: introduce table-driven alarm mapping > > v1 -> v2: > - Fixed Fixes tag format > - Replaced AMS_ALARM_INVALID with AMS_ALARM_NONE > - Changed alarm_map base_offset type > > v2 -> v3: > - Replace 'i >= num_channels' with 'i == num_channels' > - Add missing trailing comma in alarm_map array initializer > > Guilherme Ivo Bozi (3): > iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event > handling > iio: adc: xilinx-ams: use guard(mutex) for automatic locking > iio: adc: xilinx-ams: refactor alarm mapping to table-driven approach > > drivers/iio/adc/xilinx-ams.c | 190 +++++++++++++---------------------- > 1 file changed, 71 insertions(+), 119 deletions(-) > > -- > 2.47.3 > Salih ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20260414224245.8493-2-guilherme.bozi@usp.br>]
* Re: [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling [not found] ` <20260414224245.8493-2-guilherme.bozi@usp.br> @ 2026-05-12 14:22 ` Salih Erim 2026-05-12 15:40 ` Guilherme Ivo Bozi 0 siblings, 1 reply; 11+ messages in thread From: Salih Erim @ 2026-05-12 14:22 UTC (permalink / raw) To: Guilherme Ivo Bozi, Conall O'Griofa, Jonathan Cameron, Michal Simek Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Guilherme, Replies are inline. On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > ams_event_to_channel() may return a pointer past the end of > dev->channels when no matching scan_index is found. This can lead > to invalid memory access in ams_handle_event(). > > Add a bounds check in ams_event_to_channel() and return NULL when > no channel is found. Also guard the caller to safely handle this > case. > > Fixes: d5c70627a794 ("iio: adc: Add Xilinx AMS driver") > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > --- > drivers/iio/adc/xilinx-ams.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/iio/adc/xilinx-ams.c b/drivers/iio/adc/xilinx-ams.c > index 124470c92529..6191cd1b29a5 100644 > --- a/drivers/iio/adc/xilinx-ams.c > +++ b/drivers/iio/adc/xilinx-ams.c > @@ -871,6 +871,9 @@ static const struct iio_chan_spec *ams_event_to_channel(struct iio_dev *dev, > if (dev->channels[i].scan_index == scan_index) > break; > > + if (i == dev->num_channels) > + return NULL; > + The added lines use spaces for indentation instead of tabs. Salih ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling 2026-05-12 14:22 ` [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling Salih Erim @ 2026-05-12 15:40 ` Guilherme Ivo Bozi 2026-05-12 15:54 ` Jonathan Cameron 0 siblings, 1 reply; 11+ messages in thread From: Guilherme Ivo Bozi @ 2026-05-12 15:40 UTC (permalink / raw) To: Salih Erim, Conall O'Griofa, Jonathan Cameron, Michal Simek Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Salih, Replies are inline. On Tue, May 12, 2026 at 11:22 AM Salih Erim <salih.erim@amd.com> wrote: > > Hi Guilherme, > > Replies are inline. > > On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > > ams_event_to_channel() may return a pointer past the end of > > dev->channels when no matching scan_index is found. This can lead > > to invalid memory access in ams_handle_event(). > > > > Add a bounds check in ams_event_to_channel() and return NULL when > > no channel is found. Also guard the caller to safely handle this > > case. > > > > Fixes: d5c70627a794 ("iio: adc: Add Xilinx AMS driver") > > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > > --- > > drivers/iio/adc/xilinx-ams.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/iio/adc/xilinx-ams.c b/drivers/iio/adc/xilinx-ams.c > > index 124470c92529..6191cd1b29a5 100644 > > --- a/drivers/iio/adc/xilinx-ams.c > > +++ b/drivers/iio/adc/xilinx-ams.c > > @@ -871,6 +871,9 @@ static const struct iio_chan_spec *ams_event_to_channel(struct iio_dev *dev, > > if (dev->channels[i].scan_index == scan_index) > > break; > > > > + if (i == dev->num_channels) > > + return NULL; > > + > The added lines use spaces for indentation instead of tabs. I checked both locally and the raw mbox from lore.kernel.org, and the indentation uses TAB characters consistently (^I in the diff). To verify, I inspected the relevant hunk using cat -A: ^I^Iif (dev->channels[i].scan_index == scan_index) ^I^I^Ibreak; +^Iif (i == dev->num_channels) +^I^Ireturn NULL; ^Ireturn &dev->channels[i]; I could not observe any indentation issues locally or from the raw mbox. > > Salih > -- Guilherme Ivo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling 2026-05-12 15:40 ` Guilherme Ivo Bozi @ 2026-05-12 15:54 ` Jonathan Cameron 2026-05-12 18:05 ` Salih Erim 0 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2026-05-12 15:54 UTC (permalink / raw) To: Guilherme Ivo Bozi Cc: Salih Erim, Conall O'Griofa, Michal Simek, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel On Tue, 12 May 2026 12:40:05 -0300 Guilherme Ivo Bozi <guilherme.bozi@usp.br> wrote: > Hi Salih, > > Replies are inline. > > On Tue, May 12, 2026 at 11:22 AM Salih Erim <salih.erim@amd.com> wrote: > > > > Hi Guilherme, > > > > Replies are inline. > > > > On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > > > ams_event_to_channel() may return a pointer past the end of > > > dev->channels when no matching scan_index is found. This can lead > > > to invalid memory access in ams_handle_event(). > > > > > > Add a bounds check in ams_event_to_channel() and return NULL when > > > no channel is found. Also guard the caller to safely handle this > > > case. > > > > > > Fixes: d5c70627a794 ("iio: adc: Add Xilinx AMS driver") > > > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > > > --- > > > drivers/iio/adc/xilinx-ams.c | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > diff --git a/drivers/iio/adc/xilinx-ams.c b/drivers/iio/adc/xilinx-ams.c > > > index 124470c92529..6191cd1b29a5 100644 > > > --- a/drivers/iio/adc/xilinx-ams.c > > > +++ b/drivers/iio/adc/xilinx-ams.c > > > @@ -871,6 +871,9 @@ static const struct iio_chan_spec *ams_event_to_channel(struct iio_dev *dev, > > > if (dev->channels[i].scan_index == scan_index) > > > break; > > > > > > + if (i == dev->num_channels) > > > + return NULL; > > > + > > The added lines use spaces for indentation instead of tabs. > I checked both locally and the raw mbox from lore.kernel.org, and the > indentation uses TAB characters consistently (^I in the diff). > > To verify, I inspected the relevant hunk using cat -A: > > ^I^Iif (dev->channels[i].scan_index == scan_index) > ^I^I^Ibreak; > > +^Iif (i == dev->num_channels) > +^I^Ireturn NULL; > > ^Ireturn &dev->channels[i]; > > I could not observe any indentation issues locally or from the raw mbox. FWIW they look good to me as well. Salih, I'd guess you have a local issue. b4 (on git.kernel.org) is really handy for ensuring none of those occur! Jonathan > > > > > Salih > > > > -- > Guilherme Ivo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling 2026-05-12 15:54 ` Jonathan Cameron @ 2026-05-12 18:05 ` Salih Erim 0 siblings, 0 replies; 11+ messages in thread From: Salih Erim @ 2026-05-12 18:05 UTC (permalink / raw) To: Jonathan Cameron, Guilherme Ivo Bozi Cc: Conall O'Griofa, Michal Simek, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Jonathan, >> I could not observe any indentation issues locally or from the raw mbox. > FWIW they look good to me as well. Salih, I'd guess you have a local issue. > b4 (on git.kernel.org) is really handy for ensuring none of those occur! You are right, apologies for the noise. The tabs were converted to spaces by my email client during export. I will use b4 for patch retrieval going forward. There is still the u32 dead code issue in patch 3/3 (event < 0 check on a u32 parameter in ams_event_to_channel()), Guilherme has acknowledged. I am currently testing the series on ZCU102 hardware. Will follow up with my Reviewed-by and Tested-by tags on the v4. Salih > > Jonathan > >> >>> >>> Salih >>> >> >> -- >> Guilherme Ivo > ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20260414224245.8493-3-guilherme.bozi@usp.br>]
* Re: [PATCH v3 2/3] iio: adc: xilinx-ams: use guard(mutex) for automatic locking [not found] ` <20260414224245.8493-3-guilherme.bozi@usp.br> @ 2026-05-12 14:25 ` Salih Erim 0 siblings, 0 replies; 11+ messages in thread From: Salih Erim @ 2026-05-12 14:25 UTC (permalink / raw) To: Guilherme Ivo Bozi, Conall O'Griofa, Jonathan Cameron, Michal Simek Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel, Andy Shevchenko Hi, On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > Replace open-coded mutex_lock()/mutex_unlock() pairs with > guard(mutex) to simplify locking and ensure proper unlock on > all control flow paths. > > This removes explicit unlock handling, reduces boilerplate, > and avoids potential mistakes in error paths while keeping > the behavior unchanged. > > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> > --- > drivers/iio/adc/xilinx-ams.c | 24 ++++++++---------------- > 1 file changed, 8 insertions(+), 16 deletions(-) Same indentation issue -- spaces instead of tabs on all new lines. Salih ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20260414224245.8493-4-guilherme.bozi@usp.br>]
* Re: [PATCH v3 3/3] iio: adc: xilinx-ams: refactor alarm mapping to table-driven approach [not found] ` <20260414224245.8493-4-guilherme.bozi@usp.br> @ 2026-05-12 14:34 ` Salih Erim 2026-05-12 15:46 ` Guilherme Ivo Bozi 0 siblings, 1 reply; 11+ messages in thread From: Salih Erim @ 2026-05-12 14:34 UTC (permalink / raw) To: Guilherme Ivo Bozi, Conall O'Griofa, Jonathan Cameron, Michal Simek Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi, On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > Replace multiple open-coded switch statements that map between > scan_index, alarm bits, and register offsets with a centralized > table-driven approach. > > Introduce a struct-based alarm_map to describe the relationship > between scan indices and alarm offsets, and add a helper to > translate scan_index to event IDs. This removes duplicated logic > across ams_get_alarm_offset(), ams_event_to_channel(), and > ams_get_alarm_mask(). > > The new approach improves maintainability, reduces code size, > and makes it easier to extend or modify alarm mappings in the > future, while preserving existing behavior. > > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > --- > drivers/iio/adc/xilinx-ams.c | 161 +++++++++++++---------------------- > 1 file changed, 58 insertions(+), 103 deletions(-) Two issues: 1) Same tabs-vs-spaces indentation problem as patches 1 and 2. 2) In ams_event_to_channel(): > + if (event < 0 || event >= ARRAY_SIZE(alarm_map)) > + return NULL; The 'event' parameter is u32, so 'event < 0' is always false. Either drop the < 0 check or change the parameter type to int if you intend to handle negative values. Salih ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/3] iio: adc: xilinx-ams: refactor alarm mapping to table-driven approach 2026-05-12 14:34 ` [PATCH v3 3/3] iio: adc: xilinx-ams: refactor alarm mapping to table-driven approach Salih Erim @ 2026-05-12 15:46 ` Guilherme Ivo Bozi 0 siblings, 0 replies; 11+ messages in thread From: Guilherme Ivo Bozi @ 2026-05-12 15:46 UTC (permalink / raw) To: Salih Erim Cc: Conall O'Griofa, Jonathan Cameron, Michal Simek, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio, linux-arm-kernel, linux-kernel Hi Salih, On Tue, May 12, 2026 at 11:34 AM Salih Erim <salih.erim@amd.com> wrote: > > Hi, > > On 4/14/2026 11:40 PM, Guilherme Ivo Bozi wrote: > > Replace multiple open-coded switch statements that map between > > scan_index, alarm bits, and register offsets with a centralized > > table-driven approach. > > > > Introduce a struct-based alarm_map to describe the relationship > > between scan indices and alarm offsets, and add a helper to > > translate scan_index to event IDs. This removes duplicated logic > > across ams_get_alarm_offset(), ams_event_to_channel(), and > > ams_get_alarm_mask(). > > > > The new approach improves maintainability, reduces code size, > > and makes it easier to extend or modify alarm mappings in the > > future, while preserving existing behavior. > > > > Signed-off-by: Guilherme Ivo Bozi <guilherme.bozi@usp.br> > > --- > > drivers/iio/adc/xilinx-ams.c | 161 +++++++++++++---------------------- > > 1 file changed, 58 insertions(+), 103 deletions(-) > > Two issues: > > 1) Same tabs-vs-spaces indentation problem as patches 1 and 2. > > 2) In ams_event_to_channel(): > > > + if (event < 0 || event >= ARRAY_SIZE(alarm_map)) > > + return NULL; > > The 'event' parameter is u32, so 'event < 0' is always false. > Either drop the < 0 check or change the parameter type to int > if you intend to handle negative values. You are correct regarding the u32 type -- the event < 0 check is unnecessary. I will remove it in the next revision. > > Salih -- Guilherme Ivo ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-05-12 18:05 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260414224245.8493-1-guilherme.bozi@usp.br>
[not found] ` <20260425163449.547b7ed9@jic23-huawei>
2026-05-12 11:00 ` [PATCH v3 0/3] iio: adc: xilinx-ams: refactor alarm handling to table-driven design Guilherme Ivo Bozi
2026-05-12 11:02 ` Michal Simek
2026-05-12 11:26 ` Erim, Salih
2026-05-12 14:18 ` Salih Erim
[not found] ` <20260414224245.8493-2-guilherme.bozi@usp.br>
2026-05-12 14:22 ` [PATCH v3 1/3] iio: adc: xilinx-ams: fix out-of-bounds channel lookup in event handling Salih Erim
2026-05-12 15:40 ` Guilherme Ivo Bozi
2026-05-12 15:54 ` Jonathan Cameron
2026-05-12 18:05 ` Salih Erim
[not found] ` <20260414224245.8493-3-guilherme.bozi@usp.br>
2026-05-12 14:25 ` [PATCH v3 2/3] iio: adc: xilinx-ams: use guard(mutex) for automatic locking Salih Erim
[not found] ` <20260414224245.8493-4-guilherme.bozi@usp.br>
2026-05-12 14:34 ` [PATCH v3 3/3] iio: adc: xilinx-ams: refactor alarm mapping to table-driven approach Salih Erim
2026-05-12 15:46 ` Guilherme Ivo Bozi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox