All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Scally <djrscally@gmail.com>
To: linux-media@vger.kernel.org, paul.kocialkowski@bootlin.com
Cc: Yong Zhi <yong.zhi@intel.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Bingbu Cao <bingbu.cao@intel.com>,
	Dan Scally <djrscally@gmail.com>,
	Tianshu Qiu <tian.shu.qiu@intel.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	hdegoede@redhat.com, laurent.pinchart@ideasonboard.com,
	kieran.bingham@ideasonboard.com
Subject: [PATCH v3 16/16] media: i2c: ov8865: Fix lockdep error
Date: Thu, 21 Oct 2021 22:43:31 +0100	[thread overview]
Message-ID: <20211021214331.1188787-17-djrscally@gmail.com> (raw)
In-Reply-To: <20211021214331.1188787-1-djrscally@gmail.com>

From: Hans de Goede <hdegoede@redhat.com>

ov8865_state_init() calls ov8865_state_mipi_configure() which uses
__v4l2_ctrl_s_ctrl[_int64](). This means that sensor->mutex (which
is also sensor->ctrls.handler.lock) must be locked before calling
ov8865_state_init().

Note ov8865_state_mipi_configure() is also used in other places where
the lock is already held so it cannot be changed itself.

This fixes the following lockdep kernel WARN:

[   13.233413] ------------[ cut here ]------------
[   13.233421] WARNING: CPU: 0 PID: 8 at drivers/media/v4l2-core/v4l2-ctrls-api.c:833 __v4l2_ctrl_s_ctrl+0x4d/0x60 [videodev]
...
[   13.234063] Call Trace:
[   13.234074]  ov8865_state_configure+0x98b/0xc00 [ov8865]
[   13.234095]  ov8865_probe+0x4b1/0x54c [ov8865]
[   13.234117]  i2c_device_probe+0x13c/0x2d0

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v3:

	- New patch fixing a problem Hans noticed - thank you!

 drivers/media/i2c/ov8865.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/media/i2c/ov8865.c b/drivers/media/i2c/ov8865.c
index 685539744041..27179f1d5cb8 100644
--- a/drivers/media/i2c/ov8865.c
+++ b/drivers/media/i2c/ov8865.c
@@ -3073,7 +3073,9 @@ static int ov8865_probe(struct i2c_client *client)
 	if (ret)
 		goto error_mutex;
 
+	mutex_lock(&sensor->mutex);
 	ret = ov8865_state_init(sensor);
+	mutex_unlock(&sensor->mutex);
 	if (ret)
 		goto error_ctrls;
 
-- 
2.25.1


      parent reply	other threads:[~2021-10-21 21:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-21 21:43 [PATCH v3 00/16] Extensions to ov8865 driver Daniel Scally
2021-10-21 21:43 ` [PATCH v3 01/16] media: i2c: Add ACPI support to ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 02/16] media: i2c: Fix incorrect value in comment Daniel Scally
2021-10-21 21:43 ` [PATCH v3 03/16] media: i2c: Defer probe if not endpoint found Daniel Scally
2021-10-21 21:43 ` [PATCH v3 04/16] media: i2c: Support 19.2MHz input clock in ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 05/16] media: i2c: Add .get_selection() support to ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 06/16] media: i2c: Switch control to V4L2_CID_ANALOGUE_GAIN Daniel Scally
2021-10-21 21:43 ` [PATCH v3 07/16] media: i2c: Add vblank control to ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 08/16] media: i2c: Add hblank " Daniel Scally
2021-10-21 21:43 ` [PATCH v3 09/16] media: i2c: Update HTS values in ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 10/16] media: i2c: cap exposure at height + vblank " Daniel Scally
2021-10-21 21:43 ` [PATCH v3 11/16] media: i2c: Add controls from fwnode to ov8865 Daniel Scally
2021-10-21 21:43 ` [PATCH v3 12/16] media: i2c: Switch exposure control unit to lines Daniel Scally
2021-10-21 21:43 ` [PATCH v3 13/16] media: i2c: Re-order runtime pm initialisation Daniel Scally
2021-10-21 21:43 ` [PATCH v3 14/16] media: i2c: Use dev_err_probe() in ov8865 Daniel Scally
2021-10-28 14:01   ` Hans de Goede
2021-10-28 14:03     ` Daniel Scally
2021-10-21 21:43 ` [PATCH v3 15/16] media: ipu3-cio2: Add INT347A to cio2-bridge Daniel Scally
2021-10-21 21:43 ` Daniel Scally [this message]

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=20211021214331.1188787-17-djrscally@gmail.com \
    --to=djrscally@gmail.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=bingbu.cao@intel.com \
    --cc=hdegoede@redhat.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=yong.zhi@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.