Skip to content
Snippets Groups Projects
Commit 048f5851 authored by Anshuman Gupta's avatar Anshuman Gupta Committed by Ramalingam C
Browse files

tests/kms_content_protection: Fix uevent subtest


Parameters initialized at udev_init were not passed back to
caller. Hence uevent were not captured.

v2: Using double pointer for udev_monitor and udev. [Ram]

Cc: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: default avatarAnshuman Gupta <anshuman.gupta@intel.com>
Signed-off-by: default avatarRamalingam C <ramalingam.c@intel.com>
Reviewed-by: default avatarRamalingam C <ramalingam.c@intel.com>
Link: https://patchwork.freedesktop.org/patch/344864/?series=70773&rev=2
parent 91983e0f
No related branches found
No related tags found
No related merge requests found
......@@ -165,24 +165,24 @@ static void hdcp_udev_fini(struct udev_monitor *uevent_monitor,
udev_unref(udev);
}
static int hdcp_udev_init(struct udev_monitor *uevent_monitor,
struct udev *udev)
static int hdcp_udev_init(struct udev_monitor **uevent_monitor,
struct udev **udev, int *udev_fd)
{
int ret = -EINVAL;
udev = udev_new();
if (!udev) {
*udev = udev_new();
if (!*udev) {
igt_info("failed to create udev object\n");
goto out;
}
uevent_monitor = udev_monitor_new_from_netlink(udev, "udev");
if (!uevent_monitor) {
*uevent_monitor = udev_monitor_new_from_netlink(*udev, "udev");
if (!*uevent_monitor) {
igt_info("failed to create udev event monitor\n");
goto out;
}
ret = udev_monitor_filter_add_match_subsystem_devtype(uevent_monitor,
ret = udev_monitor_filter_add_match_subsystem_devtype(*uevent_monitor,
"drm",
"drm_minor");
if (ret < 0) {
......@@ -190,16 +190,23 @@ static int hdcp_udev_init(struct udev_monitor *uevent_monitor,
goto out;
}
ret = udev_monitor_enable_receiving(uevent_monitor);
ret = udev_monitor_enable_receiving(*uevent_monitor);
if (ret < 0) {
igt_info("failed to enable udev event reception\n");
goto out;
}
return udev_monitor_get_fd(uevent_monitor);
*udev_fd = udev_monitor_get_fd(*uevent_monitor);
if (*udev_fd < 0) {
igt_info("failed to get udev_fd on uevent monitor\n");
ret = *udev_fd;
goto out;
}
return ret;
out:
hdcp_udev_fini(uevent_monitor, udev);
hdcp_udev_fini(*uevent_monitor, *udev);
return ret;
}
......@@ -214,8 +221,7 @@ static bool wait_for_hdcp_event(uint32_t conn_id, uint32_t prop_id,
struct epoll_event event, events[MAX_EVENTS];
bool ret = false;
udev_fd = hdcp_udev_init(uevent_monitor, udev);
if (udev_fd < 0)
if (hdcp_udev_init(&uevent_monitor, &udev, &udev_fd) < 0)
return false;
epoll_fd = epoll_create1(0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment