diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0713-drm-gud-Free-buffers-on-device-removal.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0713-drm-gud-Free-buffers-on-device-removal.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0713-drm-gud-Free-buffers-on-device-removal.patch b/target/linux/bcm27xx/patches-5.10/950-0713-drm-gud-Free-buffers-on-device-removal.patch deleted file mode 100644 index 507b7be713..0000000000 --- a/target/linux/bcm27xx/patches-5.10/950-0713-drm-gud-Free-buffers-on-device-removal.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 888d867aa6f8fe384b37c0915eed07bb3a970fc4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org> -Date: Thu, 1 Jul 2021 19:07:47 +0200 -Subject: [PATCH] drm/gud: Free buffers on device removal -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -[ drm-misc commit f8ac863b6a93863334cefb94285daaa6617381b5 ] - -Free transfer and compression buffers on device removal instead of at -DRM device removal time. This ensures that the usual 2x8MB buffers are -released when the device is unplugged and not kept around should -userspace keep the DRM device fd open. - -At least Ubuntu 20.04 doesn't release the DRM device on unplug. - -The damage_lock mutex is not destroyed because it is used outside the -drm_dev_enter/exit block in gud_pipe_update(). AFAICT it's possible for -an open fbdev descriptor to trigger a commit after the USB device is gone. - -v2: Don't destroy damage_lock - -Reviewed-by: Linus Walleij <linus.walleij@linaro.org> -Signed-off-by: Noralf Trønnes <noralf@tronnes.org> -Link: https://patchwork.freedesktop.org/patch/msgid/20210701170748.58009-1-noralf@tronnes.org ---- - drivers/gpu/drm/gud/gud_drv.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - ---- a/drivers/gpu/drm/gud/gud_drv.c -+++ b/drivers/gpu/drm/gud/gud_drv.c -@@ -407,14 +407,15 @@ static struct drm_driver gud_drm_driver - .minor = 0, - }; - --static void gud_free_buffers_and_mutex(struct drm_device *drm, void *unused) -+static void gud_free_buffers_and_mutex(void *data) - { -- struct gud_device *gdrm = to_gud_device(drm); -+ struct gud_device *gdrm = data; - - vfree(gdrm->compress_buf); -+ gdrm->compress_buf = NULL; - kfree(gdrm->bulk_buf); -+ gdrm->bulk_buf = NULL; - mutex_destroy(&gdrm->ctrl_lock); -- mutex_destroy(&gdrm->damage_lock); - } - - static int gud_probe(struct usb_interface *intf, const struct usb_device_id *id) -@@ -468,7 +469,7 @@ static int gud_probe(struct usb_interfac - INIT_WORK(&gdrm->work, gud_flush_work); - gud_clear_damage(gdrm); - -- ret = drmm_add_action_or_reset(drm, gud_free_buffers_and_mutex, NULL); -+ ret = devm_add_action(dev, gud_free_buffers_and_mutex, gdrm); - if (ret) - return ret; - |