diff mbox

[v2,04/40] drm: Constify the drm_mm API

Message ID 20161216074718.32500-5-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson Dec. 16, 2016, 7:46 a.m. UTC
Mark up the pointers as constant through the API where appropriate.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/drm_mm.c            | 24 ++++++++++++------------
 drivers/gpu/drm/i915/i915_gem_gtt.c |  2 +-
 include/drm/drm_mm.h                | 27 +++++++++++++--------------
 3 files changed, 26 insertions(+), 27 deletions(-)

Comments

Daniel Vetter Dec. 16, 2016, 1:45 p.m. UTC | #1
On Fri, Dec 16, 2016 at 07:46:42AM +0000, Chris Wilson wrote:
> Mark up the pointers as constant through the API where appropriate.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Ok merged this and the patch right before, then Chris told me on irc that
I need to stop because he's mixing a v3 of this series.
-Daniel

> ---
>  drivers/gpu/drm/drm_mm.c            | 24 ++++++++++++------------
>  drivers/gpu/drm/i915/i915_gem_gtt.c |  2 +-
>  include/drm/drm_mm.h                | 27 +++++++++++++--------------
>  3 files changed, 26 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
> index 6e0735539545..7573661302a4 100644
> --- a/drivers/gpu/drm/drm_mm.c
> +++ b/drivers/gpu/drm/drm_mm.c
> @@ -174,9 +174,9 @@ INTERVAL_TREE_DEFINE(struct drm_mm_node, rb,
>  		     START, LAST, static inline, drm_mm_interval_tree)
>  
>  struct drm_mm_node *
> -__drm_mm_interval_first(struct drm_mm *mm, u64 start, u64 last)
> +__drm_mm_interval_first(const struct drm_mm *mm, u64 start, u64 last)
>  {
> -	return drm_mm_interval_tree_iter_first(&mm->interval_tree,
> +	return drm_mm_interval_tree_iter_first((struct rb_root *)&mm->interval_tree,
>  					       start, last);
>  }
>  EXPORT_SYMBOL(__drm_mm_interval_first);
> @@ -881,9 +881,9 @@ EXPORT_SYMBOL(drm_mm_scan_remove_block);
>   * True if the allocator is completely free, false if there's still a node
>   * allocated in it.
>   */
> -bool drm_mm_clean(struct drm_mm * mm)
> +bool drm_mm_clean(const struct drm_mm *mm)
>  {
> -	struct list_head *head = __drm_mm_nodes(mm);
> +	const struct list_head *head = __drm_mm_nodes(mm);
>  
>  	return (head->next->next == head);
>  }
> @@ -897,7 +897,7 @@ EXPORT_SYMBOL(drm_mm_clean);
>   *
>   * Note that @mm must be cleared to 0 before calling this function.
>   */
> -void drm_mm_init(struct drm_mm * mm, u64 start, u64 size)
> +void drm_mm_init(struct drm_mm *mm, u64 start, u64 size)
>  {
>  	INIT_LIST_HEAD(&mm->hole_stack);
>  	mm->scanned_blocks = 0;
> @@ -936,8 +936,8 @@ void drm_mm_takedown(struct drm_mm *mm)
>  }
>  EXPORT_SYMBOL(drm_mm_takedown);
>  
> -static u64 drm_mm_debug_hole(struct drm_mm_node *entry,
> -				     const char *prefix)
> +static u64 drm_mm_debug_hole(const struct drm_mm_node *entry,
> +			     const char *prefix)
>  {
>  	u64 hole_start, hole_end, hole_size;
>  
> @@ -958,9 +958,9 @@ static u64 drm_mm_debug_hole(struct drm_mm_node *entry,
>   * @mm: drm_mm allocator to dump
>   * @prefix: prefix to use for dumping to dmesg
>   */
> -void drm_mm_debug_table(struct drm_mm *mm, const char *prefix)
> +void drm_mm_debug_table(const struct drm_mm *mm, const char *prefix)
>  {
> -	struct drm_mm_node *entry;
> +	const struct drm_mm_node *entry;
>  	u64 total_used = 0, total_free = 0, total = 0;
>  
>  	total_free += drm_mm_debug_hole(&mm->head_node, prefix);
> @@ -979,7 +979,7 @@ void drm_mm_debug_table(struct drm_mm *mm, const char *prefix)
>  EXPORT_SYMBOL(drm_mm_debug_table);
>  
>  #if defined(CONFIG_DEBUG_FS)
> -static u64 drm_mm_dump_hole(struct seq_file *m, struct drm_mm_node *entry)
> +static u64 drm_mm_dump_hole(struct seq_file *m, const struct drm_mm_node *entry)
>  {
>  	u64 hole_start, hole_end, hole_size;
>  
> @@ -1000,9 +1000,9 @@ static u64 drm_mm_dump_hole(struct seq_file *m, struct drm_mm_node *entry)
>   * @m: seq_file to dump to
>   * @mm: drm_mm allocator to dump
>   */
> -int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm)
> +int drm_mm_dump_table(struct seq_file *m, const struct drm_mm *mm)
>  {
> -	struct drm_mm_node *entry;
> +	const struct drm_mm_node *entry;
>  	u64 total_used = 0, total_free = 0, total = 0;
>  
>  	total_free += drm_mm_dump_hole(m, &mm->head_node);
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 4d82f38a000b..97fd66e4e3d0 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2699,7 +2699,7 @@ void i915_gem_gtt_finish_pages(struct drm_i915_gem_object *obj,
>  	dma_unmap_sg(kdev, pages->sgl, pages->nents, PCI_DMA_BIDIRECTIONAL);
>  }
>  
> -static void i915_gtt_color_adjust(struct drm_mm_node *node,
> +static void i915_gtt_color_adjust(const struct drm_mm_node *node,
>  				  unsigned long color,
>  				  u64 *start,
>  				  u64 *end)
> diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
> index 0cc1b78c9ec2..5c7f15875b6a 100644
> --- a/include/drm/drm_mm.h
> +++ b/include/drm/drm_mm.h
> @@ -102,7 +102,8 @@ struct drm_mm {
>  	u64 scan_end;
>  	struct drm_mm_node *prev_scanned_node;
>  
> -	void (*color_adjust)(struct drm_mm_node *node, unsigned long color,
> +	void (*color_adjust)(const struct drm_mm_node *node,
> +			     unsigned long color,
>  			     u64 *start, u64 *end);
>  };
>  
> @@ -116,7 +117,7 @@ struct drm_mm {
>   * Returns:
>   * True if the @node is allocated.
>   */
> -static inline bool drm_mm_node_allocated(struct drm_mm_node *node)
> +static inline bool drm_mm_node_allocated(const struct drm_mm_node *node)
>  {
>  	return node->allocated;
>  }
> @@ -131,12 +132,12 @@ static inline bool drm_mm_node_allocated(struct drm_mm_node *node)
>   * Returns:
>   * True if the @mm is initialized.
>   */
> -static inline bool drm_mm_initialized(struct drm_mm *mm)
> +static inline bool drm_mm_initialized(const struct drm_mm *mm)
>  {
>  	return mm->hole_stack.next;
>  }
>  
> -static inline u64 __drm_mm_hole_node_start(struct drm_mm_node *hole_node)
> +static inline u64 __drm_mm_hole_node_start(const struct drm_mm_node *hole_node)
>  {
>  	return hole_node->start + hole_node->size;
>  }
> @@ -152,13 +153,13 @@ static inline u64 __drm_mm_hole_node_start(struct drm_mm_node *hole_node)
>   * Returns:
>   * Start of the subsequent hole.
>   */
> -static inline u64 drm_mm_hole_node_start(struct drm_mm_node *hole_node)
> +static inline u64 drm_mm_hole_node_start(const struct drm_mm_node *hole_node)
>  {
>  	BUG_ON(!hole_node->hole_follows);
>  	return __drm_mm_hole_node_start(hole_node);
>  }
>  
> -static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
> +static inline u64 __drm_mm_hole_node_end(const struct drm_mm_node *hole_node)
>  {
>  	return list_next_entry(hole_node, node_list)->start;
>  }
> @@ -174,7 +175,7 @@ static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
>   * Returns:
>   * End of the subsequent hole.
>   */
> -static inline u64 drm_mm_hole_node_end(struct drm_mm_node *hole_node)
> +static inline u64 drm_mm_hole_node_end(const struct drm_mm_node *hole_node)
>  {
>  	return __drm_mm_hole_node_end(hole_node);
>  }
> @@ -314,14 +315,12 @@ static inline int drm_mm_insert_node_in_range(struct drm_mm *mm,
>  
>  void drm_mm_remove_node(struct drm_mm_node *node);
>  void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
> -void drm_mm_init(struct drm_mm *mm,
> -		 u64 start,
> -		 u64 size);
> +void drm_mm_init(struct drm_mm *mm, u64 start, u64 size);
>  void drm_mm_takedown(struct drm_mm *mm);
> -bool drm_mm_clean(struct drm_mm *mm);
> +bool drm_mm_clean(const struct drm_mm *mm);
>  
>  struct drm_mm_node *
> -__drm_mm_interval_first(struct drm_mm *mm, u64 start, u64 last);
> +__drm_mm_interval_first(const struct drm_mm *mm, u64 start, u64 last);
>  
>  /**
>   * drm_mm_for_each_node_in_range - iterator to walk over a range of
> @@ -355,9 +354,9 @@ void drm_mm_init_scan_with_range(struct drm_mm *mm,
>  bool drm_mm_scan_add_block(struct drm_mm_node *node);
>  bool drm_mm_scan_remove_block(struct drm_mm_node *node);
>  
> -void drm_mm_debug_table(struct drm_mm *mm, const char *prefix);
> +void drm_mm_debug_table(const struct drm_mm *mm, const char *prefix);
>  #ifdef CONFIG_DEBUG_FS
> -int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm);
> +int drm_mm_dump_table(struct seq_file *m, const struct drm_mm *mm);
>  #endif
>  
>  #endif
> -- 
> 2.11.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
index 6e0735539545..7573661302a4 100644
--- a/drivers/gpu/drm/drm_mm.c
+++ b/drivers/gpu/drm/drm_mm.c
@@ -174,9 +174,9 @@  INTERVAL_TREE_DEFINE(struct drm_mm_node, rb,
 		     START, LAST, static inline, drm_mm_interval_tree)
 
 struct drm_mm_node *
-__drm_mm_interval_first(struct drm_mm *mm, u64 start, u64 last)
+__drm_mm_interval_first(const struct drm_mm *mm, u64 start, u64 last)
 {
-	return drm_mm_interval_tree_iter_first(&mm->interval_tree,
+	return drm_mm_interval_tree_iter_first((struct rb_root *)&mm->interval_tree,
 					       start, last);
 }
 EXPORT_SYMBOL(__drm_mm_interval_first);
@@ -881,9 +881,9 @@  EXPORT_SYMBOL(drm_mm_scan_remove_block);
  * True if the allocator is completely free, false if there's still a node
  * allocated in it.
  */
-bool drm_mm_clean(struct drm_mm * mm)
+bool drm_mm_clean(const struct drm_mm *mm)
 {
-	struct list_head *head = __drm_mm_nodes(mm);
+	const struct list_head *head = __drm_mm_nodes(mm);
 
 	return (head->next->next == head);
 }
@@ -897,7 +897,7 @@  EXPORT_SYMBOL(drm_mm_clean);
  *
  * Note that @mm must be cleared to 0 before calling this function.
  */
-void drm_mm_init(struct drm_mm * mm, u64 start, u64 size)
+void drm_mm_init(struct drm_mm *mm, u64 start, u64 size)
 {
 	INIT_LIST_HEAD(&mm->hole_stack);
 	mm->scanned_blocks = 0;
@@ -936,8 +936,8 @@  void drm_mm_takedown(struct drm_mm *mm)
 }
 EXPORT_SYMBOL(drm_mm_takedown);
 
-static u64 drm_mm_debug_hole(struct drm_mm_node *entry,
-				     const char *prefix)
+static u64 drm_mm_debug_hole(const struct drm_mm_node *entry,
+			     const char *prefix)
 {
 	u64 hole_start, hole_end, hole_size;
 
@@ -958,9 +958,9 @@  static u64 drm_mm_debug_hole(struct drm_mm_node *entry,
  * @mm: drm_mm allocator to dump
  * @prefix: prefix to use for dumping to dmesg
  */
-void drm_mm_debug_table(struct drm_mm *mm, const char *prefix)
+void drm_mm_debug_table(const struct drm_mm *mm, const char *prefix)
 {
-	struct drm_mm_node *entry;
+	const struct drm_mm_node *entry;
 	u64 total_used = 0, total_free = 0, total = 0;
 
 	total_free += drm_mm_debug_hole(&mm->head_node, prefix);
@@ -979,7 +979,7 @@  void drm_mm_debug_table(struct drm_mm *mm, const char *prefix)
 EXPORT_SYMBOL(drm_mm_debug_table);
 
 #if defined(CONFIG_DEBUG_FS)
-static u64 drm_mm_dump_hole(struct seq_file *m, struct drm_mm_node *entry)
+static u64 drm_mm_dump_hole(struct seq_file *m, const struct drm_mm_node *entry)
 {
 	u64 hole_start, hole_end, hole_size;
 
@@ -1000,9 +1000,9 @@  static u64 drm_mm_dump_hole(struct seq_file *m, struct drm_mm_node *entry)
  * @m: seq_file to dump to
  * @mm: drm_mm allocator to dump
  */
-int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm)
+int drm_mm_dump_table(struct seq_file *m, const struct drm_mm *mm)
 {
-	struct drm_mm_node *entry;
+	const struct drm_mm_node *entry;
 	u64 total_used = 0, total_free = 0, total = 0;
 
 	total_free += drm_mm_dump_hole(m, &mm->head_node);
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 4d82f38a000b..97fd66e4e3d0 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2699,7 +2699,7 @@  void i915_gem_gtt_finish_pages(struct drm_i915_gem_object *obj,
 	dma_unmap_sg(kdev, pages->sgl, pages->nents, PCI_DMA_BIDIRECTIONAL);
 }
 
-static void i915_gtt_color_adjust(struct drm_mm_node *node,
+static void i915_gtt_color_adjust(const struct drm_mm_node *node,
 				  unsigned long color,
 				  u64 *start,
 				  u64 *end)
diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
index 0cc1b78c9ec2..5c7f15875b6a 100644
--- a/include/drm/drm_mm.h
+++ b/include/drm/drm_mm.h
@@ -102,7 +102,8 @@  struct drm_mm {
 	u64 scan_end;
 	struct drm_mm_node *prev_scanned_node;
 
-	void (*color_adjust)(struct drm_mm_node *node, unsigned long color,
+	void (*color_adjust)(const struct drm_mm_node *node,
+			     unsigned long color,
 			     u64 *start, u64 *end);
 };
 
@@ -116,7 +117,7 @@  struct drm_mm {
  * Returns:
  * True if the @node is allocated.
  */
-static inline bool drm_mm_node_allocated(struct drm_mm_node *node)
+static inline bool drm_mm_node_allocated(const struct drm_mm_node *node)
 {
 	return node->allocated;
 }
@@ -131,12 +132,12 @@  static inline bool drm_mm_node_allocated(struct drm_mm_node *node)
  * Returns:
  * True if the @mm is initialized.
  */
-static inline bool drm_mm_initialized(struct drm_mm *mm)
+static inline bool drm_mm_initialized(const struct drm_mm *mm)
 {
 	return mm->hole_stack.next;
 }
 
-static inline u64 __drm_mm_hole_node_start(struct drm_mm_node *hole_node)
+static inline u64 __drm_mm_hole_node_start(const struct drm_mm_node *hole_node)
 {
 	return hole_node->start + hole_node->size;
 }
@@ -152,13 +153,13 @@  static inline u64 __drm_mm_hole_node_start(struct drm_mm_node *hole_node)
  * Returns:
  * Start of the subsequent hole.
  */
-static inline u64 drm_mm_hole_node_start(struct drm_mm_node *hole_node)
+static inline u64 drm_mm_hole_node_start(const struct drm_mm_node *hole_node)
 {
 	BUG_ON(!hole_node->hole_follows);
 	return __drm_mm_hole_node_start(hole_node);
 }
 
-static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
+static inline u64 __drm_mm_hole_node_end(const struct drm_mm_node *hole_node)
 {
 	return list_next_entry(hole_node, node_list)->start;
 }
@@ -174,7 +175,7 @@  static inline u64 __drm_mm_hole_node_end(struct drm_mm_node *hole_node)
  * Returns:
  * End of the subsequent hole.
  */
-static inline u64 drm_mm_hole_node_end(struct drm_mm_node *hole_node)
+static inline u64 drm_mm_hole_node_end(const struct drm_mm_node *hole_node)
 {
 	return __drm_mm_hole_node_end(hole_node);
 }
@@ -314,14 +315,12 @@  static inline int drm_mm_insert_node_in_range(struct drm_mm *mm,
 
 void drm_mm_remove_node(struct drm_mm_node *node);
 void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
-void drm_mm_init(struct drm_mm *mm,
-		 u64 start,
-		 u64 size);
+void drm_mm_init(struct drm_mm *mm, u64 start, u64 size);
 void drm_mm_takedown(struct drm_mm *mm);
-bool drm_mm_clean(struct drm_mm *mm);
+bool drm_mm_clean(const struct drm_mm *mm);
 
 struct drm_mm_node *
-__drm_mm_interval_first(struct drm_mm *mm, u64 start, u64 last);
+__drm_mm_interval_first(const struct drm_mm *mm, u64 start, u64 last);
 
 /**
  * drm_mm_for_each_node_in_range - iterator to walk over a range of
@@ -355,9 +354,9 @@  void drm_mm_init_scan_with_range(struct drm_mm *mm,
 bool drm_mm_scan_add_block(struct drm_mm_node *node);
 bool drm_mm_scan_remove_block(struct drm_mm_node *node);
 
-void drm_mm_debug_table(struct drm_mm *mm, const char *prefix);
+void drm_mm_debug_table(const struct drm_mm *mm, const char *prefix);
 #ifdef CONFIG_DEBUG_FS
-int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm);
+int drm_mm_dump_table(struct seq_file *m, const struct drm_mm *mm);
 #endif
 
 #endif