dmaengine: pl330: rename _start to prevent build error

Message ID 20230523000606.9405-1-rdunlap@infradead.org
State New
Headers
Series dmaengine: pl330: rename _start to prevent build error |

Commit Message

Randy Dunlap May 23, 2023, 12:06 a.m. UTC
  "_start" is used in several arches and proably should be reserved
for ARCH usage. Using it in a driver for a private symbol can cause
a build error when it conflicts with ARCH usage of the same symbol.

Therefore rename pl330's "_start" to "_start_thread" so that there
is no conflict and no build error.

drivers/dma/pl330.c:1053:13: error: '_start' redeclared as different kind of symbol
 1053 | static bool _start(struct pl330_thread *thrd)
      |             ^~~~~~
In file included from ../include/linux/interrupt.h:21,
                 from ../drivers/dma/pl330.c:18:
arch/riscv/include/asm/sections.h:11:13: note: previous declaration of '_start' with type 'char[]'
   11 | extern char _start[];
      |             ^~~~~~

Fixes: b7d861d93945 ("DMA: PL330: Merge PL330 driver into drivers/dma/")
Fixes: ae43b3289186 ("ARM: 8202/1: dmaengine: pl330: Add runtime Power Management support v12")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Jaswinder Singh <jassisinghbrar@gmail.com>
Cc: Jaswinder Singh <jassi.brar@samsung.com>
Cc: Boojin Kim <boojin.kim@samsung.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: dmaengine@vger.kernel.org
Cc: linux-riscv@lists.infradead.org
---
 drivers/dma/pl330.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Conor Dooley May 23, 2023, 6:47 a.m. UTC | #1
Hey Randy,

On Mon, May 22, 2023 at 05:06:06PM -0700, Randy Dunlap wrote:
> "_start" is used in several arches and proably should be reserved
> for ARCH usage. Using it in a driver for a private symbol can cause
> a build error when it conflicts with ARCH usage of the same symbol.
> 
> Therefore rename pl330's "_start" to "_start_thread" so that there
> is no conflict and no build error.

_start_thread() seems pretty generic to me too, but there don't appear
to be any users & it is certainly better than the one causing build
issues!

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

> 
> drivers/dma/pl330.c:1053:13: error: '_start' redeclared as different kind of symbol
>  1053 | static bool _start(struct pl330_thread *thrd)
>       |             ^~~~~~
> In file included from ../include/linux/interrupt.h:21,
>                  from ../drivers/dma/pl330.c:18:
> arch/riscv/include/asm/sections.h:11:13: note: previous declaration of '_start' with type 'char[]'
>    11 | extern char _start[];
>       |             ^~~~~~
  
Vinod Koul May 23, 2023, 2:08 p.m. UTC | #2
On 22-05-23, 17:06, Randy Dunlap wrote:
> "_start" is used in several arches and proably should be reserved
> for ARCH usage. Using it in a driver for a private symbol can cause
> a build error when it conflicts with ARCH usage of the same symbol.
> 
> Therefore rename pl330's "_start" to "_start_thread" so that there
> is no conflict and no build error.

Why not rename to pl330_start or pl330_start_thread to ensure we will
might not conflict ever!
  
Randy Dunlap May 23, 2023, 3:20 p.m. UTC | #3
On 5/23/23 07:08, Vinod Koul wrote:
> On 22-05-23, 17:06, Randy Dunlap wrote:
>> "_start" is used in several arches and proably should be reserved
>> for ARCH usage. Using it in a driver for a private symbol can cause
>> a build error when it conflicts with ARCH usage of the same symbol.
>>
>> Therefore rename pl330's "_start" to "_start_thread" so that there
>> is no conflict and no build error.
> 
> Why not rename to pl330_start or pl330_start_thread to ensure we will
> might not conflict ever!
> 

Ok, will do. Thanks.
  

Patch

diff -- a/drivers/dma/pl330.c b/drivers/dma/pl330.c
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -1050,7 +1050,7 @@  static bool _trigger(struct pl330_thread
 	return true;
 }
 
-static bool _start(struct pl330_thread *thrd)
+static bool _start_thread(struct pl330_thread *thrd)
 {
 	switch (_state(thrd)) {
 	case PL330_STATE_FAULT_COMPLETING:
@@ -1702,7 +1702,7 @@  static int pl330_update(struct pl330_dma
 			thrd->req_running = -1;
 
 			/* Get going again ASAP */
-			_start(thrd);
+			_start_thread(thrd);
 
 			/* For now, just make a list of callbacks to be done */
 			list_add_tail(&descdone->rqd, &pl330->req_done);
@@ -2089,7 +2089,7 @@  static void pl330_tasklet(struct tasklet
 	} else {
 		/* Make sure the PL330 Channel thread is active */
 		spin_lock(&pch->thread->dmac->lock);
-		_start(pch->thread);
+		_start_thread(pch->thread);
 		spin_unlock(&pch->thread->dmac->lock);
 	}
 
@@ -2107,7 +2107,7 @@  static void pl330_tasklet(struct tasklet
 			if (power_down) {
 				pch->active = true;
 				spin_lock(&pch->thread->dmac->lock);
-				_start(pch->thread);
+				_start_thread(pch->thread);
 				spin_unlock(&pch->thread->dmac->lock);
 				power_down = false;
 			}