On Tue, Jul 21, 2015 at 05:36:45PM +0530, Sudip Mukherjee wrote: > 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") > Still missing Cc: Chris Wilson ... Cc: Todd Previte ... here to make sure reviewers/original authors are in the loop. Anyway this is a simple enough patch, so I just pulled them both in. Thanks, Daniel > Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx> > --- > > 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 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel