All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/tilcdc: replace reference/unreference with get/put
@ 2017-09-21 19:46 ` Aishwarya Pant
  0 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:46 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

This patchset introduces drm_dev_get() and drm_dev_put() functions that are
intented to be replacements for drm_dev_{ref/unref}.

Then all usages of ref/reference and unref/unreference suffixes are replaced by
get/put reference count functions in tilcdc. The following cocci script was used
to make the tilcdc patch:

@@
expression ex;
@@

(
-drm_framebuffer_unreference(ex);
+drm_framebuffer_put(ex);
|
-drm_dev_unref(ex);
+drm_dev_put(ex);
|
-drm_framebuffer_reference(ex);
+drm_framebuffer_get(ex);
)

Aishwarya Pant (2):
  drm: introduce drm_dev_{get/put} functions
  drm/tilcdc: replace reference/unreference() with get/put

 drivers/gpu/drm/drm_drv.c            | 64 +++++++++++++++++++++++++-----------
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c |  6 ++--
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  |  2 +-
 include/drm/drm_drv.h                |  4 ++-
 4 files changed, 52 insertions(+), 24 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 0/2] drm/tilcdc: replace reference/unreference with get/put
@ 2017-09-21 19:46 ` Aishwarya Pant
  0 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:46 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

This patchset introduces drm_dev_get() and drm_dev_put() functions that are
intented to be replacements for drm_dev_{ref/unref}.

Then all usages of ref/reference and unref/unreference suffixes are replaced by
get/put reference count functions in tilcdc. The following cocci script was used
to make the tilcdc patch:

@@
expression ex;
@@

(
-drm_framebuffer_unreference(ex);
+drm_framebuffer_put(ex);
|
-drm_dev_unref(ex);
+drm_dev_put(ex);
|
-drm_framebuffer_reference(ex);
+drm_framebuffer_get(ex);
)

Aishwarya Pant (2):
  drm: introduce drm_dev_{get/put} functions
  drm/tilcdc: replace reference/unreference() with get/put

 drivers/gpu/drm/drm_drv.c            | 64 +++++++++++++++++++++++++-----------
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c |  6 ++--
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  |  2 +-
 include/drm/drm_drv.h                |  4 ++-
 4 files changed, 52 insertions(+), 24 deletions(-)

-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] drm: introduce drm_dev_{get/put} functions
  2017-09-21 19:46 ` Aishwarya Pant
@ 2017-09-21 19:47   ` Aishwarya Pant
  -1 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:47 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

Reference counting functions in the kernel typically use get/put suffixes. For
maintaining coding style consistency, introduce drm_dev_{get/put} functions
and let the old APIs (with ref/unref suffixes) remain for compatibility.

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/gpu/drm/drm_drv.c | 64 +++++++++++++++++++++++++++++++++--------------
 include/drm/drm_drv.h     |  4 ++-
 2 files changed, 48 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index be38ac7..4592314 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -286,13 +286,13 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	minor = idr_find(&drm_minors_idr, minor_id);
 	if (minor)
-		drm_dev_ref(minor->dev);
+		drm_dev_get(minor->dev);
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
 
 	if (!minor) {
 		return ERR_PTR(-ENODEV);
 	} else if (drm_dev_is_unplugged(minor->dev)) {
-		drm_dev_unref(minor->dev);
+		drm_dev_put(minor->dev);
 		return ERR_PTR(-ENODEV);
 	}
 
@@ -301,7 +301,7 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
 
 void drm_minor_release(struct drm_minor *minor)
 {
-	drm_dev_unref(minor->dev);
+	drm_dev_put(minor->dev);
 }
 
 /**
@@ -326,11 +326,11 @@ void drm_minor_release(struct drm_minor *minor)
  * When cleaning up a device instance everything needs to be done in reverse:
  * First unpublish the device instance with drm_dev_unregister(). Then clean up
  * any other resources allocated at device initialization and drop the driver's
- * reference to &drm_device using drm_dev_unref().
+ * reference to &drm_device using drm_dev_put().
  *
  * Note that the lifetime rules for &drm_device instance has still a lot of
  * historical baggage. Hence use the reference counting provided by
- * drm_dev_ref() and drm_dev_unref() only carefully.
+ * drm_dev_get() and drm_dev_put() only carefully.
  *
  * It is recommended that drivers embed &struct drm_device into their own device
  * structure, which is supported through drm_dev_init().
@@ -345,7 +345,7 @@ void drm_minor_release(struct drm_minor *minor)
  * Cleans up all DRM device, calling drm_lastclose().
  *
  * Note: Use of this function is deprecated. It will eventually go away
- * completely.  Please use drm_dev_unregister() and drm_dev_unref() explicitly
+ * completely.  Please use drm_dev_unregister() and drm_dev_put() explicitly
  * instead to make sure that the device isn't userspace accessible any more
  * while teardown is in progress, ensuring that userspace can't access an
  * inconsistent state.
@@ -360,7 +360,7 @@ void drm_put_dev(struct drm_device *dev)
 	}
 
 	drm_dev_unregister(dev);
-	drm_dev_unref(dev);
+	drm_dev_put(dev);
 }
 EXPORT_SYMBOL(drm_put_dev);
 
@@ -386,7 +386,7 @@ void drm_dev_unplug(struct drm_device *dev)
 	mutex_lock(&drm_global_mutex);
 	drm_device_set_unplugged(dev);
 	if (dev->open_count == 0)
-		drm_dev_unref(dev);
+		drm_dev_put(dev);
 	mutex_unlock(&drm_global_mutex);
 }
 EXPORT_SYMBOL(drm_dev_unplug);
@@ -475,8 +475,8 @@ static void drm_fs_inode_free(struct inode *inode)
  * initialization sequence to make sure userspace can't access an inconsistent
  * state.
  *
- * The initial ref-count of the object is 1. Use drm_dev_ref() and
- * drm_dev_unref() to take and drop further ref-counts.
+ * The initial ref-count of the object is 1. Use drm_dev_get() and
+ * drm_dev_put() to take and drop further ref-counts.
  *
  * Note that for purely virtual devices @parent can be NULL.
  *
@@ -626,8 +626,8 @@ EXPORT_SYMBOL(drm_dev_fini);
  * initialization sequence to make sure userspace can't access an inconsistent
  * state.
  *
- * The initial ref-count of the object is 1. Use drm_dev_ref() and
- * drm_dev_unref() to take and drop further ref-counts.
+ * The initial ref-count of the object is 1. Use drm_dev_get() and
+ * drm_dev_put() to take and drop further ref-counts.
  *
  * Note that for purely virtual devices @parent can be NULL.
  *
@@ -670,36 +670,62 @@ static void drm_dev_release(struct kref *ref)
 }
 
 /**
- * drm_dev_ref - Take reference of a DRM device
+ * drm_dev_get - Take reference of a DRM device
  * @dev: device to take reference of or NULL
  *
  * This increases the ref-count of @dev by one. You *must* already own a
- * reference when calling this. Use drm_dev_unref() to drop this reference
+ * reference when calling this. Use drm_dev_put() to drop this reference
  * again.
  *
  * This function never fails. However, this function does not provide *any*
  * guarantee whether the device is alive or running. It only provides a
  * reference to the object and the memory associated with it.
  */
-void drm_dev_ref(struct drm_device *dev)
+void drm_dev_get(struct drm_device *dev)
 {
 	if (dev)
 		kref_get(&dev->ref);
 }
-EXPORT_SYMBOL(drm_dev_ref);
+EXPORT_SYMBOL(drm_dev_get);
 
 /**
- * drm_dev_unref - Drop reference of a DRM device
+ * drm_dev_put - Drop reference of a DRM device
  * @dev: device to drop reference of or NULL
  *
  * This decreases the ref-count of @dev by one. The device is destroyed if the
  * ref-count drops to zero.
  */
-void drm_dev_unref(struct drm_device *dev)
+void drm_dev_put(struct drm_device *dev)
 {
 	if (dev)
 		kref_put(&dev->ref, drm_dev_release);
 }
+EXPORT_SYMBOL(drm_dev_put);
+
+/**
+ * drm_dev_ref - Take reference of a DRM device
+ * @dev: device to take reference of or NULL
+ *
+ * This is a compatibility alias for drm_dev_get() and should not be used by new
+ * code.
+ */
+void drm_dev_ref(struct drm_device *dev)
+{
+	drm_dev_get(dev);
+}
+EXPORT_SYMBOL(drm_dev_ref);
+
+/**
+ * drm_dev_unref - Drop reference of a DRM device
+ * @dev: device to drop reference of or NULL
+ *
+ * This is a compatibility alias for drm_dev_put() and should not be used by new
+ * code.
+ */
+void drm_dev_unref(struct drm_device *dev)
+{
+	drm_dev_put(dev);
+}
 EXPORT_SYMBOL(drm_dev_unref);
 
 static int create_compat_control_link(struct drm_device *dev)
@@ -839,7 +865,7 @@ EXPORT_SYMBOL(drm_dev_register);
  *
  * Unregister the DRM device from the system. This does the reverse of
  * drm_dev_register() but does not deallocate the device. The caller must call
- * drm_dev_unref() to drop their final reference.
+ * drm_dev_put() to drop their final reference.
  *
  * A special form of unregistering for hotpluggable devices is drm_dev_unplug(),
  * which can be called while there are still open users of @dev.
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 71bbaae..e574fa0 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -155,7 +155,7 @@ struct drm_driver {
 	 * reverse order of the initialization.  Similarly to the load
 	 * hook, this handler is deprecated and its usage should be
 	 * dropped in favor of an open-coded teardown function at the
-	 * driver layer.  See drm_dev_unregister() and drm_dev_unref()
+	 * driver layer.  See drm_dev_unregister() and drm_dev_put()
 	 * for the proper way to remove a &struct drm_device.
 	 *
 	 * The unload() hook is called right after unregistering
@@ -611,6 +611,8 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
 int drm_dev_register(struct drm_device *dev, unsigned long flags);
 void drm_dev_unregister(struct drm_device *dev);
 
+void drm_dev_get(struct drm_device *dev);
+void drm_dev_put(struct drm_device *dev);
 void drm_dev_ref(struct drm_device *dev);
 void drm_dev_unref(struct drm_device *dev);
 void drm_put_dev(struct drm_device *dev);
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 1/2] drm: introduce drm_dev_{get/put} functions
@ 2017-09-21 19:47   ` Aishwarya Pant
  0 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:47 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

Reference counting functions in the kernel typically use get/put suffixes. For
maintaining coding style consistency, introduce drm_dev_{get/put} functions
and let the old APIs (with ref/unref suffixes) remain for compatibility.

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/gpu/drm/drm_drv.c | 64 +++++++++++++++++++++++++++++++++--------------
 include/drm/drm_drv.h     |  4 ++-
 2 files changed, 48 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index be38ac7..4592314 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -286,13 +286,13 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	minor = idr_find(&drm_minors_idr, minor_id);
 	if (minor)
-		drm_dev_ref(minor->dev);
+		drm_dev_get(minor->dev);
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
 
 	if (!minor) {
 		return ERR_PTR(-ENODEV);
 	} else if (drm_dev_is_unplugged(minor->dev)) {
-		drm_dev_unref(minor->dev);
+		drm_dev_put(minor->dev);
 		return ERR_PTR(-ENODEV);
 	}
 
@@ -301,7 +301,7 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
 
 void drm_minor_release(struct drm_minor *minor)
 {
-	drm_dev_unref(minor->dev);
+	drm_dev_put(minor->dev);
 }
 
 /**
@@ -326,11 +326,11 @@ void drm_minor_release(struct drm_minor *minor)
  * When cleaning up a device instance everything needs to be done in reverse:
  * First unpublish the device instance with drm_dev_unregister(). Then clean up
  * any other resources allocated at device initialization and drop the driver's
- * reference to &drm_device using drm_dev_unref().
+ * reference to &drm_device using drm_dev_put().
  *
  * Note that the lifetime rules for &drm_device instance has still a lot of
  * historical baggage. Hence use the reference counting provided by
- * drm_dev_ref() and drm_dev_unref() only carefully.
+ * drm_dev_get() and drm_dev_put() only carefully.
  *
  * It is recommended that drivers embed &struct drm_device into their own device
  * structure, which is supported through drm_dev_init().
@@ -345,7 +345,7 @@ void drm_minor_release(struct drm_minor *minor)
  * Cleans up all DRM device, calling drm_lastclose().
  *
  * Note: Use of this function is deprecated. It will eventually go away
- * completely.  Please use drm_dev_unregister() and drm_dev_unref() explicitly
+ * completely.  Please use drm_dev_unregister() and drm_dev_put() explicitly
  * instead to make sure that the device isn't userspace accessible any more
  * while teardown is in progress, ensuring that userspace can't access an
  * inconsistent state.
@@ -360,7 +360,7 @@ void drm_put_dev(struct drm_device *dev)
 	}
 
 	drm_dev_unregister(dev);
-	drm_dev_unref(dev);
+	drm_dev_put(dev);
 }
 EXPORT_SYMBOL(drm_put_dev);
 
@@ -386,7 +386,7 @@ void drm_dev_unplug(struct drm_device *dev)
 	mutex_lock(&drm_global_mutex);
 	drm_device_set_unplugged(dev);
 	if (dev->open_count == 0)
-		drm_dev_unref(dev);
+		drm_dev_put(dev);
 	mutex_unlock(&drm_global_mutex);
 }
 EXPORT_SYMBOL(drm_dev_unplug);
@@ -475,8 +475,8 @@ static void drm_fs_inode_free(struct inode *inode)
  * initialization sequence to make sure userspace can't access an inconsistent
  * state.
  *
- * The initial ref-count of the object is 1. Use drm_dev_ref() and
- * drm_dev_unref() to take and drop further ref-counts.
+ * The initial ref-count of the object is 1. Use drm_dev_get() and
+ * drm_dev_put() to take and drop further ref-counts.
  *
  * Note that for purely virtual devices @parent can be NULL.
  *
@@ -626,8 +626,8 @@ EXPORT_SYMBOL(drm_dev_fini);
  * initialization sequence to make sure userspace can't access an inconsistent
  * state.
  *
- * The initial ref-count of the object is 1. Use drm_dev_ref() and
- * drm_dev_unref() to take and drop further ref-counts.
+ * The initial ref-count of the object is 1. Use drm_dev_get() and
+ * drm_dev_put() to take and drop further ref-counts.
  *
  * Note that for purely virtual devices @parent can be NULL.
  *
@@ -670,36 +670,62 @@ static void drm_dev_release(struct kref *ref)
 }
 
 /**
- * drm_dev_ref - Take reference of a DRM device
+ * drm_dev_get - Take reference of a DRM device
  * @dev: device to take reference of or NULL
  *
  * This increases the ref-count of @dev by one. You *must* already own a
- * reference when calling this. Use drm_dev_unref() to drop this reference
+ * reference when calling this. Use drm_dev_put() to drop this reference
  * again.
  *
  * This function never fails. However, this function does not provide *any*
  * guarantee whether the device is alive or running. It only provides a
  * reference to the object and the memory associated with it.
  */
-void drm_dev_ref(struct drm_device *dev)
+void drm_dev_get(struct drm_device *dev)
 {
 	if (dev)
 		kref_get(&dev->ref);
 }
-EXPORT_SYMBOL(drm_dev_ref);
+EXPORT_SYMBOL(drm_dev_get);
 
 /**
- * drm_dev_unref - Drop reference of a DRM device
+ * drm_dev_put - Drop reference of a DRM device
  * @dev: device to drop reference of or NULL
  *
  * This decreases the ref-count of @dev by one. The device is destroyed if the
  * ref-count drops to zero.
  */
-void drm_dev_unref(struct drm_device *dev)
+void drm_dev_put(struct drm_device *dev)
 {
 	if (dev)
 		kref_put(&dev->ref, drm_dev_release);
 }
+EXPORT_SYMBOL(drm_dev_put);
+
+/**
+ * drm_dev_ref - Take reference of a DRM device
+ * @dev: device to take reference of or NULL
+ *
+ * This is a compatibility alias for drm_dev_get() and should not be used by new
+ * code.
+ */
+void drm_dev_ref(struct drm_device *dev)
+{
+	drm_dev_get(dev);
+}
+EXPORT_SYMBOL(drm_dev_ref);
+
+/**
+ * drm_dev_unref - Drop reference of a DRM device
+ * @dev: device to drop reference of or NULL
+ *
+ * This is a compatibility alias for drm_dev_put() and should not be used by new
+ * code.
+ */
+void drm_dev_unref(struct drm_device *dev)
+{
+	drm_dev_put(dev);
+}
 EXPORT_SYMBOL(drm_dev_unref);
 
 static int create_compat_control_link(struct drm_device *dev)
@@ -839,7 +865,7 @@ EXPORT_SYMBOL(drm_dev_register);
  *
  * Unregister the DRM device from the system. This does the reverse of
  * drm_dev_register() but does not deallocate the device. The caller must call
- * drm_dev_unref() to drop their final reference.
+ * drm_dev_put() to drop their final reference.
  *
  * A special form of unregistering for hotpluggable devices is drm_dev_unplug(),
  * which can be called while there are still open users of @dev.
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 71bbaae..e574fa0 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -155,7 +155,7 @@ struct drm_driver {
 	 * reverse order of the initialization.  Similarly to the load
 	 * hook, this handler is deprecated and its usage should be
 	 * dropped in favor of an open-coded teardown function at the
-	 * driver layer.  See drm_dev_unregister() and drm_dev_unref()
+	 * driver layer.  See drm_dev_unregister() and drm_dev_put()
 	 * for the proper way to remove a &struct drm_device.
 	 *
 	 * The unload() hook is called right after unregistering
@@ -611,6 +611,8 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
 int drm_dev_register(struct drm_device *dev, unsigned long flags);
 void drm_dev_unregister(struct drm_device *dev);
 
+void drm_dev_get(struct drm_device *dev);
+void drm_dev_put(struct drm_device *dev);
 void drm_dev_ref(struct drm_device *dev);
 void drm_dev_unref(struct drm_device *dev);
 void drm_put_dev(struct drm_device *dev);
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] drm/tilcdc: replace reference/unreference() with get/put
  2017-09-21 19:46 ` Aishwarya Pant
@ 2017-09-21 19:47   ` Aishwarya Pant
  -1 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:47 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

For maintaining consistency with kernel coding style replace
reference/unreference in ref counting functions with get/put.

The following cocci script was used to generate the tilcdc patch:

@@
expression ex;
@@

(
-drm_framebuffer_unreference(ex);
+drm_framebuffer_put(ex);
|
-drm_dev_unref(ex);
+drm_dev_put(ex);
|
-drm_framebuffer_reference(ex);
+drm_framebuffer_get(ex);
)

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 6 +++---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index 406fe45..d2589f310 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -75,7 +75,7 @@ static void unref_worker(struct drm_flip_work *work, void *val)
 	struct drm_device *dev = tilcdc_crtc->base.dev;
 
 	mutex_lock(&dev->mode_config.mutex);
-	drm_framebuffer_unreference(val);
+	drm_framebuffer_put(val);
 	mutex_unlock(&dev->mode_config.mutex);
 }
 
@@ -456,7 +456,7 @@ static void tilcdc_crtc_set_mode(struct drm_crtc *crtc)
 
 	set_scanout(crtc, fb);
 
-	drm_framebuffer_reference(fb);
+	drm_framebuffer_get(fb);
 
 	crtc->hwmode = crtc->state->adjusted_mode;
 }
@@ -633,7 +633,7 @@ int tilcdc_crtc_update_fb(struct drm_crtc *crtc,
 		return -EBUSY;
 	}
 
-	drm_framebuffer_reference(fb);
+	drm_framebuffer_get(fb);
 
 	crtc->primary->fb = fb;
 	tilcdc_crtc->event = event;
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index b0d70f9..74276ef 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -225,7 +225,7 @@ static void tilcdc_fini(struct drm_device *dev)
 
 	pm_runtime_disable(dev->dev);
 
-	drm_dev_unref(dev);
+	drm_dev_put(dev);
 }
 
 static int tilcdc_init(struct drm_driver *ddrv, struct device *dev)
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] drm/tilcdc: replace reference/unreference() with get/put
@ 2017-09-21 19:47   ` Aishwarya Pant
  0 siblings, 0 replies; 8+ messages in thread
From: Aishwarya Pant @ 2017-09-21 19:47 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel
  Cc: outreachy-kernel

For maintaining consistency with kernel coding style replace
reference/unreference in ref counting functions with get/put.

The following cocci script was used to generate the tilcdc patch:

@@
expression ex;
@@

(
-drm_framebuffer_unreference(ex);
+drm_framebuffer_put(ex);
|
-drm_dev_unref(ex);
+drm_dev_put(ex);
|
-drm_framebuffer_reference(ex);
+drm_framebuffer_get(ex);
)

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 6 +++---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index 406fe45..d2589f310 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -75,7 +75,7 @@ static void unref_worker(struct drm_flip_work *work, void *val)
 	struct drm_device *dev = tilcdc_crtc->base.dev;
 
 	mutex_lock(&dev->mode_config.mutex);
-	drm_framebuffer_unreference(val);
+	drm_framebuffer_put(val);
 	mutex_unlock(&dev->mode_config.mutex);
 }
 
@@ -456,7 +456,7 @@ static void tilcdc_crtc_set_mode(struct drm_crtc *crtc)
 
 	set_scanout(crtc, fb);
 
-	drm_framebuffer_reference(fb);
+	drm_framebuffer_get(fb);
 
 	crtc->hwmode = crtc->state->adjusted_mode;
 }
@@ -633,7 +633,7 @@ int tilcdc_crtc_update_fb(struct drm_crtc *crtc,
 		return -EBUSY;
 	}
 
-	drm_framebuffer_reference(fb);
+	drm_framebuffer_get(fb);
 
 	crtc->primary->fb = fb;
 	tilcdc_crtc->event = event;
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index b0d70f9..74276ef 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -225,7 +225,7 @@ static void tilcdc_fini(struct drm_device *dev)
 
 	pm_runtime_disable(dev->dev);
 
-	drm_dev_unref(dev);
+	drm_dev_put(dev);
 }
 
 static int tilcdc_init(struct drm_driver *ddrv, struct device *dev)
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Outreachy kernel] [PATCH 1/2] drm: introduce drm_dev_{get/put} functions
  2017-09-21 19:47   ` Aishwarya Pant
@ 2017-09-26  5:22     ` Daniel Vetter
  -1 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2017-09-26  5:22 UTC (permalink / raw)
  To: Aishwarya Pant
  Cc: Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel,
	outreachy-kernel

On Fri, Sep 22, 2017 at 01:17:06AM +0530, Aishwarya Pant wrote:
> Reference counting functions in the kernel typically use get/put suffixes. For
> maintaining coding style consistency, introduce drm_dev_{get/put} functions
> and let the old APIs (with ref/unref suffixes) remain for compatibility.
> 
> Signed-off-by: Aishwarya Pant <aishpant@gmail.com>

Excellent idea to fill this gap, we totally overlooked this in the initial
work!

> ---
>  drivers/gpu/drm/drm_drv.c | 64 +++++++++++++++++++++++++++++++++--------------
>  include/drm/drm_drv.h     |  4 ++-

Please also update scripts/coccinelle/api/drm-get-put.cocci with this new
transformation.

>  2 files changed, 48 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index be38ac7..4592314 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -286,13 +286,13 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
>  	spin_lock_irqsave(&drm_minor_lock, flags);
>  	minor = idr_find(&drm_minors_idr, minor_id);
>  	if (minor)
> -		drm_dev_ref(minor->dev);
> +		drm_dev_get(minor->dev);
>  	spin_unlock_irqrestore(&drm_minor_lock, flags);
>  
>  	if (!minor) {
>  		return ERR_PTR(-ENODEV);
>  	} else if (drm_dev_is_unplugged(minor->dev)) {
> -		drm_dev_unref(minor->dev);
> +		drm_dev_put(minor->dev);
>  		return ERR_PTR(-ENODEV);
>  	}
>  
> @@ -301,7 +301,7 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
>  
>  void drm_minor_release(struct drm_minor *minor)
>  {
> -	drm_dev_unref(minor->dev);
> +	drm_dev_put(minor->dev);
>  }
>  
>  /**
> @@ -326,11 +326,11 @@ void drm_minor_release(struct drm_minor *minor)
>   * When cleaning up a device instance everything needs to be done in reverse:
>   * First unpublish the device instance with drm_dev_unregister(). Then clean up
>   * any other resources allocated at device initialization and drop the driver's
> - * reference to &drm_device using drm_dev_unref().
> + * reference to &drm_device using drm_dev_put().
>   *
>   * Note that the lifetime rules for &drm_device instance has still a lot of
>   * historical baggage. Hence use the reference counting provided by
> - * drm_dev_ref() and drm_dev_unref() only carefully.
> + * drm_dev_get() and drm_dev_put() only carefully.
>   *
>   * It is recommended that drivers embed &struct drm_device into their own device
>   * structure, which is supported through drm_dev_init().
> @@ -345,7 +345,7 @@ void drm_minor_release(struct drm_minor *minor)
>   * Cleans up all DRM device, calling drm_lastclose().
>   *
>   * Note: Use of this function is deprecated. It will eventually go away
> - * completely.  Please use drm_dev_unregister() and drm_dev_unref() explicitly
> + * completely.  Please use drm_dev_unregister() and drm_dev_put() explicitly
>   * instead to make sure that the device isn't userspace accessible any more
>   * while teardown is in progress, ensuring that userspace can't access an
>   * inconsistent state.
> @@ -360,7 +360,7 @@ void drm_put_dev(struct drm_device *dev)
>  	}
>  
>  	drm_dev_unregister(dev);
> -	drm_dev_unref(dev);
> +	drm_dev_put(dev);
>  }
>  EXPORT_SYMBOL(drm_put_dev);
>  
> @@ -386,7 +386,7 @@ void drm_dev_unplug(struct drm_device *dev)
>  	mutex_lock(&drm_global_mutex);
>  	drm_device_set_unplugged(dev);
>  	if (dev->open_count == 0)
> -		drm_dev_unref(dev);
> +		drm_dev_put(dev);
>  	mutex_unlock(&drm_global_mutex);
>  }
>  EXPORT_SYMBOL(drm_dev_unplug);
> @@ -475,8 +475,8 @@ static void drm_fs_inode_free(struct inode *inode)
>   * initialization sequence to make sure userspace can't access an inconsistent
>   * state.
>   *
> - * The initial ref-count of the object is 1. Use drm_dev_ref() and
> - * drm_dev_unref() to take and drop further ref-counts.
> + * The initial ref-count of the object is 1. Use drm_dev_get() and
> + * drm_dev_put() to take and drop further ref-counts.
>   *
>   * Note that for purely virtual devices @parent can be NULL.
>   *
> @@ -626,8 +626,8 @@ EXPORT_SYMBOL(drm_dev_fini);
>   * initialization sequence to make sure userspace can't access an inconsistent
>   * state.
>   *
> - * The initial ref-count of the object is 1. Use drm_dev_ref() and
> - * drm_dev_unref() to take and drop further ref-counts.
> + * The initial ref-count of the object is 1. Use drm_dev_get() and
> + * drm_dev_put() to take and drop further ref-counts.
>   *
>   * Note that for purely virtual devices @parent can be NULL.
>   *
> @@ -670,36 +670,62 @@ static void drm_dev_release(struct kref *ref)
>  }
>  
>  /**
> - * drm_dev_ref - Take reference of a DRM device
> + * drm_dev_get - Take reference of a DRM device
>   * @dev: device to take reference of or NULL
>   *
>   * This increases the ref-count of @dev by one. You *must* already own a
> - * reference when calling this. Use drm_dev_unref() to drop this reference
> + * reference when calling this. Use drm_dev_put() to drop this reference
>   * again.
>   *
>   * This function never fails. However, this function does not provide *any*
>   * guarantee whether the device is alive or running. It only provides a
>   * reference to the object and the memory associated with it.
>   */
> -void drm_dev_ref(struct drm_device *dev)
> +void drm_dev_get(struct drm_device *dev)
>  {
>  	if (dev)
>  		kref_get(&dev->ref);
>  }
> -EXPORT_SYMBOL(drm_dev_ref);
> +EXPORT_SYMBOL(drm_dev_get);
>  
>  /**
> - * drm_dev_unref - Drop reference of a DRM device
> + * drm_dev_put - Drop reference of a DRM device
>   * @dev: device to drop reference of or NULL
>   *
>   * This decreases the ref-count of @dev by one. The device is destroyed if the
>   * ref-count drops to zero.
>   */
> -void drm_dev_unref(struct drm_device *dev)
> +void drm_dev_put(struct drm_device *dev)
>  {
>  	if (dev)
>  		kref_put(&dev->ref, drm_dev_release);
>  }
> +EXPORT_SYMBOL(drm_dev_put);
> +
> +/**
> + * drm_dev_ref - Take reference of a DRM device
> + * @dev: device to take reference of or NULL
> + *
> + * This is a compatibility alias for drm_dev_get() and should not be used by new
> + * code.
> + */
> +void drm_dev_ref(struct drm_device *dev)
> +{
> +	drm_dev_get(dev);
> +}
> +EXPORT_SYMBOL(drm_dev_ref);

I think you've already converted all callers for drm_dev_ref() with this
patch here, so no need to add the compat function and risk getting new
callers. Once a conversion is done in upstream we should remove these.

Please remove.

With those 2 nits addressed I think your patch is ready for merging,
please resend with those changes.

Thanks, Daniel

> +
> +/**
> + * drm_dev_unref - Drop reference of a DRM device
> + * @dev: device to drop reference of or NULL
> + *
> + * This is a compatibility alias for drm_dev_put() and should not be used by new
> + * code.
> + */
> +void drm_dev_unref(struct drm_device *dev)
> +{
> +	drm_dev_put(dev);
> +}
>  EXPORT_SYMBOL(drm_dev_unref);
>  
>  static int create_compat_control_link(struct drm_device *dev)
> @@ -839,7 +865,7 @@ EXPORT_SYMBOL(drm_dev_register);
>   *
>   * Unregister the DRM device from the system. This does the reverse of
>   * drm_dev_register() but does not deallocate the device. The caller must call
> - * drm_dev_unref() to drop their final reference.
> + * drm_dev_put() to drop their final reference.
>   *
>   * A special form of unregistering for hotpluggable devices is drm_dev_unplug(),
>   * which can be called while there are still open users of @dev.
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 71bbaae..e574fa0 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -155,7 +155,7 @@ struct drm_driver {
>  	 * reverse order of the initialization.  Similarly to the load
>  	 * hook, this handler is deprecated and its usage should be
>  	 * dropped in favor of an open-coded teardown function at the
> -	 * driver layer.  See drm_dev_unregister() and drm_dev_unref()
> +	 * driver layer.  See drm_dev_unregister() and drm_dev_put()
>  	 * for the proper way to remove a &struct drm_device.
>  	 *
>  	 * The unload() hook is called right after unregistering
> @@ -611,6 +611,8 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
>  int drm_dev_register(struct drm_device *dev, unsigned long flags);
>  void drm_dev_unregister(struct drm_device *dev);
>  
> +void drm_dev_get(struct drm_device *dev);
> +void drm_dev_put(struct drm_device *dev);
>  void drm_dev_ref(struct drm_device *dev);
>  void drm_dev_unref(struct drm_device *dev);
>  void drm_put_dev(struct drm_device *dev);
> -- 
> 2.7.4
> 
> -- 
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/33c3c79daa7a8f9c52ee87f4d78f3a551ab96b54.1506023126.git.aishpant%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Outreachy kernel] [PATCH 1/2] drm: introduce drm_dev_{get/put} functions
@ 2017-09-26  5:22     ` Daniel Vetter
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2017-09-26  5:22 UTC (permalink / raw)
  To: Aishwarya Pant; +Cc: dri-devel, outreachy-kernel, Daniel Vetter

On Fri, Sep 22, 2017 at 01:17:06AM +0530, Aishwarya Pant wrote:
> Reference counting functions in the kernel typically use get/put suffixes. For
> maintaining coding style consistency, introduce drm_dev_{get/put} functions
> and let the old APIs (with ref/unref suffixes) remain for compatibility.
> 
> Signed-off-by: Aishwarya Pant <aishpant@gmail.com>

Excellent idea to fill this gap, we totally overlooked this in the initial
work!

> ---
>  drivers/gpu/drm/drm_drv.c | 64 +++++++++++++++++++++++++++++++++--------------
>  include/drm/drm_drv.h     |  4 ++-

Please also update scripts/coccinelle/api/drm-get-put.cocci with this new
transformation.

>  2 files changed, 48 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index be38ac7..4592314 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -286,13 +286,13 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
>  	spin_lock_irqsave(&drm_minor_lock, flags);
>  	minor = idr_find(&drm_minors_idr, minor_id);
>  	if (minor)
> -		drm_dev_ref(minor->dev);
> +		drm_dev_get(minor->dev);
>  	spin_unlock_irqrestore(&drm_minor_lock, flags);
>  
>  	if (!minor) {
>  		return ERR_PTR(-ENODEV);
>  	} else if (drm_dev_is_unplugged(minor->dev)) {
> -		drm_dev_unref(minor->dev);
> +		drm_dev_put(minor->dev);
>  		return ERR_PTR(-ENODEV);
>  	}
>  
> @@ -301,7 +301,7 @@ struct drm_minor *drm_minor_acquire(unsigned int minor_id)
>  
>  void drm_minor_release(struct drm_minor *minor)
>  {
> -	drm_dev_unref(minor->dev);
> +	drm_dev_put(minor->dev);
>  }
>  
>  /**
> @@ -326,11 +326,11 @@ void drm_minor_release(struct drm_minor *minor)
>   * When cleaning up a device instance everything needs to be done in reverse:
>   * First unpublish the device instance with drm_dev_unregister(). Then clean up
>   * any other resources allocated at device initialization and drop the driver's
> - * reference to &drm_device using drm_dev_unref().
> + * reference to &drm_device using drm_dev_put().
>   *
>   * Note that the lifetime rules for &drm_device instance has still a lot of
>   * historical baggage. Hence use the reference counting provided by
> - * drm_dev_ref() and drm_dev_unref() only carefully.
> + * drm_dev_get() and drm_dev_put() only carefully.
>   *
>   * It is recommended that drivers embed &struct drm_device into their own device
>   * structure, which is supported through drm_dev_init().
> @@ -345,7 +345,7 @@ void drm_minor_release(struct drm_minor *minor)
>   * Cleans up all DRM device, calling drm_lastclose().
>   *
>   * Note: Use of this function is deprecated. It will eventually go away
> - * completely.  Please use drm_dev_unregister() and drm_dev_unref() explicitly
> + * completely.  Please use drm_dev_unregister() and drm_dev_put() explicitly
>   * instead to make sure that the device isn't userspace accessible any more
>   * while teardown is in progress, ensuring that userspace can't access an
>   * inconsistent state.
> @@ -360,7 +360,7 @@ void drm_put_dev(struct drm_device *dev)
>  	}
>  
>  	drm_dev_unregister(dev);
> -	drm_dev_unref(dev);
> +	drm_dev_put(dev);
>  }
>  EXPORT_SYMBOL(drm_put_dev);
>  
> @@ -386,7 +386,7 @@ void drm_dev_unplug(struct drm_device *dev)
>  	mutex_lock(&drm_global_mutex);
>  	drm_device_set_unplugged(dev);
>  	if (dev->open_count == 0)
> -		drm_dev_unref(dev);
> +		drm_dev_put(dev);
>  	mutex_unlock(&drm_global_mutex);
>  }
>  EXPORT_SYMBOL(drm_dev_unplug);
> @@ -475,8 +475,8 @@ static void drm_fs_inode_free(struct inode *inode)
>   * initialization sequence to make sure userspace can't access an inconsistent
>   * state.
>   *
> - * The initial ref-count of the object is 1. Use drm_dev_ref() and
> - * drm_dev_unref() to take and drop further ref-counts.
> + * The initial ref-count of the object is 1. Use drm_dev_get() and
> + * drm_dev_put() to take and drop further ref-counts.
>   *
>   * Note that for purely virtual devices @parent can be NULL.
>   *
> @@ -626,8 +626,8 @@ EXPORT_SYMBOL(drm_dev_fini);
>   * initialization sequence to make sure userspace can't access an inconsistent
>   * state.
>   *
> - * The initial ref-count of the object is 1. Use drm_dev_ref() and
> - * drm_dev_unref() to take and drop further ref-counts.
> + * The initial ref-count of the object is 1. Use drm_dev_get() and
> + * drm_dev_put() to take and drop further ref-counts.
>   *
>   * Note that for purely virtual devices @parent can be NULL.
>   *
> @@ -670,36 +670,62 @@ static void drm_dev_release(struct kref *ref)
>  }
>  
>  /**
> - * drm_dev_ref - Take reference of a DRM device
> + * drm_dev_get - Take reference of a DRM device
>   * @dev: device to take reference of or NULL
>   *
>   * This increases the ref-count of @dev by one. You *must* already own a
> - * reference when calling this. Use drm_dev_unref() to drop this reference
> + * reference when calling this. Use drm_dev_put() to drop this reference
>   * again.
>   *
>   * This function never fails. However, this function does not provide *any*
>   * guarantee whether the device is alive or running. It only provides a
>   * reference to the object and the memory associated with it.
>   */
> -void drm_dev_ref(struct drm_device *dev)
> +void drm_dev_get(struct drm_device *dev)
>  {
>  	if (dev)
>  		kref_get(&dev->ref);
>  }
> -EXPORT_SYMBOL(drm_dev_ref);
> +EXPORT_SYMBOL(drm_dev_get);
>  
>  /**
> - * drm_dev_unref - Drop reference of a DRM device
> + * drm_dev_put - Drop reference of a DRM device
>   * @dev: device to drop reference of or NULL
>   *
>   * This decreases the ref-count of @dev by one. The device is destroyed if the
>   * ref-count drops to zero.
>   */
> -void drm_dev_unref(struct drm_device *dev)
> +void drm_dev_put(struct drm_device *dev)
>  {
>  	if (dev)
>  		kref_put(&dev->ref, drm_dev_release);
>  }
> +EXPORT_SYMBOL(drm_dev_put);
> +
> +/**
> + * drm_dev_ref - Take reference of a DRM device
> + * @dev: device to take reference of or NULL
> + *
> + * This is a compatibility alias for drm_dev_get() and should not be used by new
> + * code.
> + */
> +void drm_dev_ref(struct drm_device *dev)
> +{
> +	drm_dev_get(dev);
> +}
> +EXPORT_SYMBOL(drm_dev_ref);

I think you've already converted all callers for drm_dev_ref() with this
patch here, so no need to add the compat function and risk getting new
callers. Once a conversion is done in upstream we should remove these.

Please remove.

With those 2 nits addressed I think your patch is ready for merging,
please resend with those changes.

Thanks, Daniel

> +
> +/**
> + * drm_dev_unref - Drop reference of a DRM device
> + * @dev: device to drop reference of or NULL
> + *
> + * This is a compatibility alias for drm_dev_put() and should not be used by new
> + * code.
> + */
> +void drm_dev_unref(struct drm_device *dev)
> +{
> +	drm_dev_put(dev);
> +}
>  EXPORT_SYMBOL(drm_dev_unref);
>  
>  static int create_compat_control_link(struct drm_device *dev)
> @@ -839,7 +865,7 @@ EXPORT_SYMBOL(drm_dev_register);
>   *
>   * Unregister the DRM device from the system. This does the reverse of
>   * drm_dev_register() but does not deallocate the device. The caller must call
> - * drm_dev_unref() to drop their final reference.
> + * drm_dev_put() to drop their final reference.
>   *
>   * A special form of unregistering for hotpluggable devices is drm_dev_unplug(),
>   * which can be called while there are still open users of @dev.
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 71bbaae..e574fa0 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -155,7 +155,7 @@ struct drm_driver {
>  	 * reverse order of the initialization.  Similarly to the load
>  	 * hook, this handler is deprecated and its usage should be
>  	 * dropped in favor of an open-coded teardown function at the
> -	 * driver layer.  See drm_dev_unregister() and drm_dev_unref()
> +	 * driver layer.  See drm_dev_unregister() and drm_dev_put()
>  	 * for the proper way to remove a &struct drm_device.
>  	 *
>  	 * The unload() hook is called right after unregistering
> @@ -611,6 +611,8 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
>  int drm_dev_register(struct drm_device *dev, unsigned long flags);
>  void drm_dev_unregister(struct drm_device *dev);
>  
> +void drm_dev_get(struct drm_device *dev);
> +void drm_dev_put(struct drm_device *dev);
>  void drm_dev_ref(struct drm_device *dev);
>  void drm_dev_unref(struct drm_device *dev);
>  void drm_put_dev(struct drm_device *dev);
> -- 
> 2.7.4
> 
> -- 
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/33c3c79daa7a8f9c52ee87f4d78f3a551ab96b54.1506023126.git.aishpant%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-09-26  5:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-21 19:46 [PATCH 0/2] drm/tilcdc: replace reference/unreference with get/put Aishwarya Pant
2017-09-21 19:46 ` Aishwarya Pant
2017-09-21 19:47 ` [PATCH 1/2] drm: introduce drm_dev_{get/put} functions Aishwarya Pant
2017-09-21 19:47   ` Aishwarya Pant
2017-09-26  5:22   ` [Outreachy kernel] " Daniel Vetter
2017-09-26  5:22     ` Daniel Vetter
2017-09-21 19:47 ` [PATCH 2/2] drm/tilcdc: replace reference/unreference() with get/put Aishwarya Pant
2017-09-21 19:47   ` Aishwarya Pant

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.