While creating the debugfs file we are setting the inode->i_private to
dev. That same dev is passed to these functions as private of struct
seq_file via single_open(). Moreover single_open is setting
file->private_data->private to dev.
So at this point it can never be NULL.
This check was added by commit eb3394faeb97 ("drm/i915: Add debugfs test
control files for Displayport compliance testing")

Signed-off-by: Sudip Mukherjee <sudip at vectorindia.org>
---

v3: removed the check in i915_displayport_test_active_write also
v2: removed null check
v1 was drm/i915: fix possible null pointer dereference

 drivers/gpu/drm/i915/i915_debugfs.c | 21 +--------------------
 1 file changed, 1 insertion(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index bc817da..ffce62e 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -4028,24 +4028,14 @@ static ssize_t 
i915_displayport_test_active_write(struct file *file,
 {
        char *input_buffer;
        int status = 0;
-       struct seq_file *m;
        struct drm_device *dev;
        struct drm_connector *connector;
        struct list_head *connector_list;
        struct intel_dp *intel_dp;
        int val = 0;

-       m = file->private_data;
-       if (!m) {
-               status = -ENODEV;
-               return status;
-       }
-       dev = m->private;
+       dev = ((struct seq_file *)file->private_data)->private;

-       if (!dev) {
-               status = -ENODEV;
-               return status;
-       }
        connector_list = &dev->mode_config.connector_list;

        if (len == 0)
@@ -4103,9 +4093,6 @@ static int i915_displayport_test_active_show(struct 
seq_file *m, void *data)
        struct list_head *connector_list = &dev->mode_config.connector_list;
        struct intel_dp *intel_dp;

-       if (!dev)
-               return -ENODEV;
-
        list_for_each_entry(connector, connector_list, head) {

                if (connector->connector_type !=
@@ -4150,9 +4137,6 @@ static int i915_displayport_test_data_show(struct 
seq_file *m, void *data)
        struct list_head *connector_list = &dev->mode_config.connector_list;
        struct intel_dp *intel_dp;

-       if (!dev)
-               return -ENODEV;
-
        list_for_each_entry(connector, connector_list, head) {

                if (connector->connector_type !=
@@ -4192,9 +4176,6 @@ static int i915_displayport_test_type_show(struct 
seq_file *m, void *data)
        struct list_head *connector_list = &dev->mode_config.connector_list;
        struct intel_dp *intel_dp;

-       if (!dev)
-               return -ENODEV;
-
        list_for_each_entry(connector, connector_list, head) {

                if (connector->connector_type !=
-- 
1.8.1.2

Reply via email to