Commit cbd224e0 authored by Maximilian Luz's avatar Maximilian Luz Committed by Hans de Goede

platform/surface: aggregator_cdev: Add lockdep support

Mark functions with locking requirements via the corresponding lockdep
calls for debugging and documentary purposes.
Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20210604134755.535590-7-luzmaximilian@gmail.comSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent e8e298a6
...@@ -139,6 +139,8 @@ static int ssam_cdev_notifier_register(struct ssam_cdev_client *client, u8 tc, i ...@@ -139,6 +139,8 @@ static int ssam_cdev_notifier_register(struct ssam_cdev_client *client, u8 tc, i
struct ssam_cdev_notifier *nf; struct ssam_cdev_notifier *nf;
int status; int status;
lockdep_assert_held_read(&client->cdev->lock);
/* Validate notifier target category. */ /* Validate notifier target category. */
if (!ssh_rqid_is_event(rqid)) if (!ssh_rqid_is_event(rqid))
return -EINVAL; return -EINVAL;
...@@ -188,6 +190,8 @@ static int ssam_cdev_notifier_unregister(struct ssam_cdev_client *client, u8 tc) ...@@ -188,6 +190,8 @@ static int ssam_cdev_notifier_unregister(struct ssam_cdev_client *client, u8 tc)
const u16 event = ssh_rqid_to_event(rqid); const u16 event = ssh_rqid_to_event(rqid);
int status; int status;
lockdep_assert_held_read(&client->cdev->lock);
/* Validate notifier target category. */ /* Validate notifier target category. */
if (!ssh_rqid_is_event(rqid)) if (!ssh_rqid_is_event(rqid))
return -EINVAL; return -EINVAL;
...@@ -257,6 +261,8 @@ static long ssam_cdev_request(struct ssam_cdev_client *client, struct ssam_cdev_ ...@@ -257,6 +261,8 @@ static long ssam_cdev_request(struct ssam_cdev_client *client, struct ssam_cdev_
void __user *rspdata; void __user *rspdata;
int status = 0, ret = 0, tmp; int status = 0, ret = 0, tmp;
lockdep_assert_held_read(&client->cdev->lock);
ret = copy_struct_from_user(&rqst, sizeof(rqst), r, sizeof(*r)); ret = copy_struct_from_user(&rqst, sizeof(rqst), r, sizeof(*r));
if (ret) if (ret)
goto out; goto out;
...@@ -367,6 +373,8 @@ static long ssam_cdev_notif_register(struct ssam_cdev_client *client, ...@@ -367,6 +373,8 @@ static long ssam_cdev_notif_register(struct ssam_cdev_client *client,
struct ssam_cdev_notifier_desc desc; struct ssam_cdev_notifier_desc desc;
long ret; long ret;
lockdep_assert_held_read(&client->cdev->lock);
ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d)); ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d));
if (ret) if (ret)
return ret; return ret;
...@@ -380,6 +388,8 @@ static long ssam_cdev_notif_unregister(struct ssam_cdev_client *client, ...@@ -380,6 +388,8 @@ static long ssam_cdev_notif_unregister(struct ssam_cdev_client *client,
struct ssam_cdev_notifier_desc desc; struct ssam_cdev_notifier_desc desc;
long ret; long ret;
lockdep_assert_held_read(&client->cdev->lock);
ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d)); ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d));
if (ret) if (ret)
return ret; return ret;
...@@ -395,6 +405,8 @@ static long ssam_cdev_event_enable(struct ssam_cdev_client *client, ...@@ -395,6 +405,8 @@ static long ssam_cdev_event_enable(struct ssam_cdev_client *client,
struct ssam_event_id id; struct ssam_event_id id;
long ret; long ret;
lockdep_assert_held_read(&client->cdev->lock);
/* Read descriptor from user-space. */ /* Read descriptor from user-space. */
ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d)); ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d));
if (ret) if (ret)
...@@ -421,6 +433,8 @@ static long ssam_cdev_event_disable(struct ssam_cdev_client *client, ...@@ -421,6 +433,8 @@ static long ssam_cdev_event_disable(struct ssam_cdev_client *client,
struct ssam_event_id id; struct ssam_event_id id;
long ret; long ret;
lockdep_assert_held_read(&client->cdev->lock);
/* Read descriptor from user-space. */ /* Read descriptor from user-space. */
ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d)); ret = copy_struct_from_user(&desc, sizeof(desc), d, sizeof(*d));
if (ret) if (ret)
...@@ -513,6 +527,8 @@ static int ssam_cdev_device_release(struct inode *inode, struct file *filp) ...@@ -513,6 +527,8 @@ static int ssam_cdev_device_release(struct inode *inode, struct file *filp)
static long __ssam_cdev_device_ioctl(struct ssam_cdev_client *client, unsigned int cmd, static long __ssam_cdev_device_ioctl(struct ssam_cdev_client *client, unsigned int cmd,
unsigned long arg) unsigned long arg)
{ {
lockdep_assert_held_read(&client->cdev->lock);
switch (cmd) { switch (cmd) {
case SSAM_CDEV_REQUEST: case SSAM_CDEV_REQUEST:
return ssam_cdev_request(client, (struct ssam_cdev_request __user *)arg); return ssam_cdev_request(client, (struct ssam_cdev_request __user *)arg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment