Re: linux-next: build failure after merge of the drm tree
From: Hamza Mahfooz
Date:  Thu Oct 06 2022 - 12:25:00 EST
On 2022-10-06 04:12, Stephen Rothwell wrote:
Hi all,
On Thu, 6 Oct 2022 09:28:10 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
I have applied the following hack for today:
From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Thu, 6 Oct 2022 09:14:26 +1100
Subject: [PATCH] fix up for drivers/gpu/drm/amd/display/dc/core/dc_stream.c
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index ae13887756bf..a5da787b7876 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -520,9 +520,9 @@ bool dc_stream_remove_writeback(struct dc *dc,
  	}
  
  	/* remove writeback info for disabled writeback pipes from stream */
-	for (i = 0, j = 0; i < stream->num_wb_info && j < MAX_DWB_PIPES; i++) {
+	for (i = 0, j = 0; i < stream->num_wb_info && i < MAX_DWB_PIPES; i++) {
  		if (stream->writeback_info[i].wb_enabled) {
-			if (i != j)
+			if ((j >= 0) && (j < i))
  				/* trim the array */
  				stream->writeback_info[j] = stream->writeback_info[i];
  			j++;
This works as well, and (in my opinion) is better:
I can confirm that this fix works on GCC 9.4, as well.
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index ae13887756bf..fb6222d4c430 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -499,7 +499,7 @@ bool dc_stream_remove_writeback(struct dc *dc,
  		struct dc_stream_state *stream,
  		uint32_t dwb_pipe_inst)
  {
-	int i = 0, j = 0;
+	unsigned int i, j;
  	if (stream == NULL) {
  		dm_error("DC: dc_stream is NULL!\n");
  		return false;
@@ -520,9 +520,9 @@ bool dc_stream_remove_writeback(struct dc *dc,
  	}
  
  	/* remove writeback info for disabled writeback pipes from stream */
-	for (i = 0, j = 0; i < stream->num_wb_info && j < MAX_DWB_PIPES; i++) {
+	for (i = 0, j = 0; i < stream->num_wb_info; i++) {
  		if (stream->writeback_info[i].wb_enabled) {
-			if (i != j)
+			if (j < i)
  				/* trim the array */
  				stream->writeback_info[j] = stream->writeback_info[i];
  			j++;
--
Hamza