* [PATCH] staging: media: atomisp: Add lock asserts for mutex protection
@ 2025-08-15 17:09 Abdelrahman Fekry
2025-08-15 20:03 ` Dan Carpenter
0 siblings, 1 reply; 2+ messages in thread
From: Abdelrahman Fekry @ 2025-08-15 17:09 UTC (permalink / raw)
To: hansg, mchehab, sakari.ailus, andy, gregkh
Cc: linux-media, linux-kernel, linux-staging, linux-kernel-mentees,
skhan, dan.carpenter, Abdelrahman Fekry, Hans de Goede
Add lockdep_assert_held(&isp->mutex) to critical functions accessing
shared device state. This enforces proper locking and detects violations.
Suggested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Abdelrahman Fekry <abdelrahmanfekry375@gmail.com>
---
.../staging/media/atomisp/pci/atomisp_cmd.c | 3 ++
.../media/atomisp/pci/atomisp_compat_css20.c | 31 +++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index 3a4eb4f6d3be..48ca33e1c92d 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -3794,6 +3794,7 @@ int atomisp_try_fmt(struct atomisp_device *isp, struct v4l2_pix_format *f,
const struct atomisp_format_bridge **fmt_ret,
const struct atomisp_format_bridge **snr_fmt_ret)
{
+ lockdep_assert_held(&isp->mutex);
const struct atomisp_format_bridge *fmt, *snr_fmt;
struct atomisp_sub_device *asd = &isp->asd;
struct v4l2_mbus_framefmt ffmt = { };
@@ -4324,6 +4325,8 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev, const struct v4l2_p
int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
{
struct atomisp_device *isp = video_get_drvdata(vdev);
+ lockdep_assert_held(&isp->mutex);
+
struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
struct atomisp_sub_device *asd = pipe->asd;
const struct atomisp_format_bridge *format_bridge;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index be5f37f4a6fd..915c4c9ea9e2 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -1447,6 +1447,9 @@ int atomisp_css_input_set_resolution(struct atomisp_sub_device *asd,
enum atomisp_input_stream_id stream_id,
struct v4l2_mbus_framefmt *ffmt)
{
+ struct aromisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
struct ia_css_stream_config *s_config =
&asd->stream_env[stream_id].stream_config;
@@ -1519,6 +1522,10 @@ int atomisp_css_set_default_isys_config(struct atomisp_sub_device *asd,
enum atomisp_input_stream_id stream_id,
struct v4l2_mbus_framefmt *ffmt)
{
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
+
int i;
struct ia_css_stream_config *s_config =
&asd->stream_env[stream_id].stream_config;
@@ -1621,6 +1628,9 @@ void atomisp_css_input_set_two_pixels_per_clock(
void atomisp_css_enable_dz(struct atomisp_sub_device *asd, bool enable)
{
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
int i;
for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++)
@@ -1631,6 +1641,9 @@ void atomisp_css_enable_dz(struct atomisp_sub_device *asd, bool enable)
void atomisp_css_capture_set_mode(struct atomisp_sub_device *asd,
enum ia_css_capture_mode mode)
{
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
struct atomisp_stream_env *stream_env =
&asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL];
@@ -1646,6 +1659,9 @@ void atomisp_css_capture_set_mode(struct atomisp_sub_device *asd,
void atomisp_css_input_set_mode(struct atomisp_sub_device *asd,
enum ia_css_input_mode mode)
{
+ struct aromisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
unsigned int size_mem_words;
int i;
@@ -1690,6 +1706,10 @@ void atomisp_css_input_set_mode(struct atomisp_sub_device *asd,
void atomisp_css_capture_enable_online(struct atomisp_sub_device *asd,
unsigned short stream_index, bool enable)
{
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
+
struct atomisp_stream_env *stream_env =
&asd->stream_env[stream_index];
@@ -1726,6 +1746,10 @@ int atomisp_css_input_configure_port(
{
int i;
struct atomisp_stream_env *stream_env;
+
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
/*
* Calculate rx_count as follows:
* Input: mipi_freq : CSI-2 bus frequency in Hz
@@ -1760,6 +1784,10 @@ int atomisp_css_input_configure_port(
void atomisp_css_stop(struct atomisp_sub_device *asd, bool in_reset)
{
+ struct atomisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
+
unsigned long irqflags;
unsigned int i;
@@ -1815,6 +1843,9 @@ void atomisp_css_continuous_set_num_raw_frames(
struct atomisp_sub_device *asd,
int num_frames)
{
+ struct aromisp_device *isp = asd->isp;
+
+ lockdep_assert_held(&isp->mutex);
if (asd->enable_raw_buffer_lock->val) {
asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL]
.stream_config.init_num_cont_raw_buf =
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] staging: media: atomisp: Add lock asserts for mutex protection
2025-08-15 17:09 [PATCH] staging: media: atomisp: Add lock asserts for mutex protection Abdelrahman Fekry
@ 2025-08-15 20:03 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2025-08-15 20:03 UTC (permalink / raw)
To: Abdelrahman Fekry
Cc: hansg, mchehab, sakari.ailus, andy, gregkh, linux-media,
linux-kernel, linux-staging, linux-kernel-mentees, skhan,
Hans de Goede
On Fri, Aug 15, 2025 at 08:09:01PM +0300, Abdelrahman Fekry wrote:
> Add lockdep_assert_held(&isp->mutex) to critical functions accessing
> shared device state. This enforces proper locking and detects violations.
>
> Suggested-by: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Abdelrahman Fekry <abdelrahmanfekry375@gmail.com>
> ---
> .../staging/media/atomisp/pci/atomisp_cmd.c | 3 ++
> .../media/atomisp/pci/atomisp_compat_css20.c | 31 +++++++++++++++++++
> 2 files changed, 34 insertions(+)
>
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
> index 3a4eb4f6d3be..48ca33e1c92d 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
> @@ -3794,6 +3794,7 @@ int atomisp_try_fmt(struct atomisp_device *isp, struct v4l2_pix_format *f,
> const struct atomisp_format_bridge **fmt_ret,
> const struct atomisp_format_bridge **snr_fmt_ret)
> {
> + lockdep_assert_held(&isp->mutex);
This should go after the declarations.
> const struct atomisp_format_bridge *fmt, *snr_fmt;
> struct atomisp_sub_device *asd = &isp->asd;
> struct v4l2_mbus_framefmt ffmt = { };
> @@ -4324,6 +4325,8 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev, const struct v4l2_p
> int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
> {
> struct atomisp_device *isp = video_get_drvdata(vdev);
> + lockdep_assert_held(&isp->mutex);
Same. Etc...
> +
> struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
> struct atomisp_sub_device *asd = pipe->asd;
> const struct atomisp_format_bridge *format_bridge;
[ snip ]
> @@ -1726,6 +1746,10 @@ int atomisp_css_input_configure_port(
> {
> int i;
> struct atomisp_stream_env *stream_env;
> +
No blank line here.
> + struct atomisp_device *isp = asd->isp;
> +
> + lockdep_assert_held(&isp->mutex);
> /*
> * Calculate rx_count as follows:
> * Input: mipi_freq : CSI-2 bus frequency in Hz
regards,
dan carpenter
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-08-15 20:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-15 17:09 [PATCH] staging: media: atomisp: Add lock asserts for mutex protection Abdelrahman Fekry
2025-08-15 20:03 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).