public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Fix i2c mux module refcount issues
@ 2023-10-20 15:30 Herve Codina
  2023-10-20 15:30 ` [PATCH v3 1/3] i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() Herve Codina
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Herve Codina @ 2023-10-20 15:30 UTC (permalink / raw)
  To: Wolfram Sang, Peter Rosin, Stephen Warren, Rob Herring,
	Greg Kroah-Hartman, Jonathan Cameron
  Cc: Wolfram Sang, linux-i2c, linux-kernel, Allan Nielsen,
	Horatiu Vultur, Steen Hegelund, Thomas Petazzoni, Herve Codina

Hi,

Some i2c mux drivers wrongly use the pair of_find_i2c_adapter_by_node()
/ i2c_put_adapter() to lock the parent adapter.

Indeed, i2c_put_adapter() decrements the module refcount while
of_find_i2c_adapter_by_node() does not increment it. This leads to an
overflow over zero of the parent adapter user counter.

Identified mux drivers impacted are:
- i2c-mux-gpmux
- i2c-demux-pinctrl
- i2c-mux-pinctrl

Commit 48e9743dd648 ("i2c: core: add and export of_get_i2c_adapter_by_node()
interface") introduces of_get_i2c_adapter_by_node() to correctly handle
this refcount issue.

This series fixes the 3 identified mux drivers replacing the
of_find_i2c_adapter_by_node() call by an of_get_i2c_adapter_by_node()
call.

Compare to the previous iteration
  https://lore.kernel.org/linux-kernel/20231019101017.425284-1-herve.codina@bootlin.com/
This v3 series:
 - Fixes a wrong <tab> char in a commit log message
 - Add 'Cc: stable@vger.kernel.org'
 - Add Reviewed-by tags

Best regards,
Hervé

Changes v2 -> v3
  - Patch 2
    Replace a wrong <tab> char by a <space> char in commit message

  - All patches
    Add 'Cc: stable@vger.kernel.org'
    Add 'Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>'

Changes v1 -> v2:
  - All patches
    Fix commit log
    Add relevant Fixes tag
    Add 'Acked-by: Peter Rosin <peda@axentia.se>'

Herve Codina (3):
  i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node()
  i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node()
  i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node()

 drivers/i2c/muxes/i2c-demux-pinctrl.c | 2 +-
 drivers/i2c/muxes/i2c-mux-gpmux.c     | 2 +-
 drivers/i2c/muxes/i2c-mux-pinctrl.c   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

-- 
2.41.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-10-21 17:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-20 15:30 [PATCH v3 0/3] Fix i2c mux module refcount issues Herve Codina
2023-10-20 15:30 ` [PATCH v3 1/3] i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() Herve Codina
2023-10-21 17:57   ` Wolfram Sang
2023-10-20 15:30 ` [PATCH v3 2/3] i2c: muxes: i2c-demux-pinctrl: " Herve Codina
2023-10-21 17:57   ` Wolfram Sang
2023-10-20 15:30 ` [PATCH v3 3/3] i2c: muxes: i2c-mux-gpmux: " Herve Codina
2023-10-21 17:58   ` Wolfram Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox