From 1543e317f1da31b75942316931e8f491a8920811 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 04 Jan 2024 10:08:02 +0000
Subject: [PATCH] disable FB
---
kernel/drivers/gpu/drm/drm_property.c | 32 ++++++++++++--------------------
1 files changed, 12 insertions(+), 20 deletions(-)
diff --git a/kernel/drivers/gpu/drm/drm_property.c b/kernel/drivers/gpu/drm/drm_property.c
index 6532a9d..6ee0480 100644
--- a/kernel/drivers/gpu/drm/drm_property.c
+++ b/kernel/drivers/gpu/drm/drm_property.c
@@ -21,13 +21,15 @@
*/
#include <linux/export.h>
-#include <drm/drmP.h>
+#include <linux/uaccess.h>
+
+#include <drm/drm_crtc.h>
+#include <drm/drm_drv.h>
+#include <drm/drm_file.h>
+#include <drm/drm_framebuffer.h>
#include <drm/drm_property.h>
#include "drm_crtc_internal.h"
-
-#define MAX_BLOB_PROP_SIZE (PAGE_SIZE * 30)
-#define MAX_BLOB_PROP_COUNT 250
/**
* DOC: overview
@@ -467,7 +469,7 @@
uint64_t __user *values_ptr;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
- return -EINVAL;
+ return -EOPNOTSUPP;
property = drm_property_find(dev, file_priv, out_resp->prop_id);
if (!property)
@@ -559,8 +561,7 @@
struct drm_property_blob *blob;
int ret;
- if (!length || length > MAX_BLOB_PROP_SIZE -
- sizeof(struct drm_property_blob))
+ if (!length || length > INT_MAX - sizeof(struct drm_property_blob))
return ERR_PTR(-EINVAL);
blob = kvzalloc(sizeof(struct drm_property_blob)+length, GFP_KERNEL);
@@ -761,7 +762,7 @@
int ret = 0;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
- return -EINVAL;
+ return -EOPNOTSUPP;
blob = drm_property_lookup_blob(dev, out_resp->blob_id);
if (!blob)
@@ -786,19 +787,10 @@
void *data, struct drm_file *file_priv)
{
struct drm_mode_create_blob *out_resp = data;
- struct drm_property_blob *blob, *bt;
+ struct drm_property_blob *blob;
int ret = 0;
- u32 count = 0;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
- return -EINVAL;
-
- mutex_lock(&dev->mode_config.blob_lock);
- list_for_each_entry(bt, &file_priv->blobs, head_file)
- count++;
- mutex_unlock(&dev->mode_config.blob_lock);
-
- if (count >= MAX_BLOB_PROP_COUNT)
return -EOPNOTSUPP;
blob = drm_property_create_blob(dev, out_resp->length, NULL);
@@ -836,7 +828,7 @@
int ret = 0;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
- return -EINVAL;
+ return -EOPNOTSUPP;
blob = drm_property_lookup_blob(dev, out_resp->blob_id);
if (!blob)
@@ -879,7 +871,7 @@
* value doesn't become invalid part way through the property update due to
* race). The value returned by reference via 'obj' should be passed back
* to drm_property_change_valid_put() after the property is set (and the
- * object to which the property is attached has a chance to take it's own
+ * object to which the property is attached has a chance to take its own
* reference).
*/
bool drm_property_change_valid_get(struct drm_property *property,
--
Gitblit v1.6.2