All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cobalt/tick: dovetail: Fix non-SMP build
@ 2021-06-10 16:39 Jan Kiszka
  2021-06-10 16:44 ` Jan Kiszka
  2021-06-10 17:36 ` Philippe Gerum
  0 siblings, 2 replies; 4+ messages in thread
From: Jan Kiszka @ 2021-06-10 16:39 UTC (permalink / raw)
  To: Xenomai

From: Jan Kiszka <jan.kiszka@siemens.com>

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 kernel/cobalt/dovetail/tick.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/kernel/cobalt/dovetail/tick.c b/kernel/cobalt/dovetail/tick.c
index 81eaab84a..570f6a1f5 100644
--- a/kernel/cobalt/dovetail/tick.c
+++ b/kernel/cobalt/dovetail/tick.c
@@ -130,23 +130,27 @@ static void setup_proxy(struct clock_proxy_device *dev)
 	__this_cpu_write(proxy_device, dev);
 }
 
+#ifdef CONFIG_SMP
 static irqreturn_t tick_ipi_handler(int irq, void *dev_id)
 {
 	xnintr_core_clock_handler();
 
 	return IRQ_HANDLED;
 }
+#endif
 
 int pipeline_install_tick_proxy(void)
 {
 	int ret;
 
+#ifdef CONFIG_SMP
 	ret = __request_percpu_irq(TIMER_OOB_IPI,
 				tick_ipi_handler,
 				IRQF_OOB, "Xenomai timer IPI",
 				&cobalt_machine_cpudata);
 	if (ret)
 		return ret;
+#endif
 
 	/* Install the proxy tick device */
 	ret = tick_install_proxy(setup_proxy, &xnsched_realtime_cpus);
@@ -156,7 +160,9 @@ int pipeline_install_tick_proxy(void)
 	return 0;
 
 fail_proxy:
+#ifdef CONFIG_SMP
 	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
+#endif
 
 	return ret;
 }
@@ -166,5 +172,7 @@ void pipeline_uninstall_tick_proxy(void)
 	/* Uninstall the proxy tick device. */
 	tick_uninstall_proxy(&xnsched_realtime_cpus);
 
+#ifdef CONFIG_SMP
 	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
+#endif
 }
-- 
2.26.2


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

* Re: [PATCH] cobalt/tick: dovetail: Fix non-SMP build
  2021-06-10 16:39 [PATCH] cobalt/tick: dovetail: Fix non-SMP build Jan Kiszka
@ 2021-06-10 16:44 ` Jan Kiszka
  2021-06-10 16:56   ` Philippe Gerum
  2021-06-10 17:36 ` Philippe Gerum
  1 sibling, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2021-06-10 16:44 UTC (permalink / raw)
  To: Xenomai

On 10.06.21 18:39, Jan Kiszka via Xenomai wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  kernel/cobalt/dovetail/tick.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/kernel/cobalt/dovetail/tick.c b/kernel/cobalt/dovetail/tick.c
> index 81eaab84a..570f6a1f5 100644
> --- a/kernel/cobalt/dovetail/tick.c
> +++ b/kernel/cobalt/dovetail/tick.c
> @@ -130,23 +130,27 @@ static void setup_proxy(struct clock_proxy_device *dev)
>  	__this_cpu_write(proxy_device, dev);
>  }
>  
> +#ifdef CONFIG_SMP
>  static irqreturn_t tick_ipi_handler(int irq, void *dev_id)
>  {
>  	xnintr_core_clock_handler();
>  
>  	return IRQ_HANDLED;
>  }
> +#endif
>  
>  int pipeline_install_tick_proxy(void)
>  {
>  	int ret;
>  
> +#ifdef CONFIG_SMP
>  	ret = __request_percpu_irq(TIMER_OOB_IPI,
>  				tick_ipi_handler,
>  				IRQF_OOB, "Xenomai timer IPI",
>  				&cobalt_machine_cpudata);
>  	if (ret)
>  		return ret;
> +#endif
>  
>  	/* Install the proxy tick device */
>  	ret = tick_install_proxy(setup_proxy, &xnsched_realtime_cpus);
> @@ -156,7 +160,9 @@ int pipeline_install_tick_proxy(void)
>  	return 0;
>  
>  fail_proxy:
> +#ifdef CONFIG_SMP
>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
> +#endif
>  
>  	return ret;
>  }
> @@ -166,5 +172,7 @@ void pipeline_uninstall_tick_proxy(void)
>  	/* Uninstall the proxy tick device. */
>  	tick_uninstall_proxy(&xnsched_realtime_cpus);
>  
> +#ifdef CONFIG_SMP
>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
> +#endif
>  }
> 

Should have been more precise: This definitely breaks on arm, possibly
on other archs as well.

Found while diff'ing broken to (possibly) working .configs for
BeagleBone Black.

Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux


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

* Re: [PATCH] cobalt/tick: dovetail: Fix non-SMP build
  2021-06-10 16:44 ` Jan Kiszka
@ 2021-06-10 16:56   ` Philippe Gerum
  0 siblings, 0 replies; 4+ messages in thread
From: Philippe Gerum @ 2021-06-10 16:56 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai


Jan Kiszka via Xenomai <xenomai@xenomai.org> writes:

> On 10.06.21 18:39, Jan Kiszka via Xenomai wrote:
>> From: Jan Kiszka <jan.kiszka@siemens.com>
>> 
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>> ---
>>  kernel/cobalt/dovetail/tick.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>> 
>> diff --git a/kernel/cobalt/dovetail/tick.c b/kernel/cobalt/dovetail/tick.c
>> index 81eaab84a..570f6a1f5 100644
>> --- a/kernel/cobalt/dovetail/tick.c
>> +++ b/kernel/cobalt/dovetail/tick.c
>> @@ -130,23 +130,27 @@ static void setup_proxy(struct clock_proxy_device *dev)
>>  	__this_cpu_write(proxy_device, dev);
>>  }
>>  
>> +#ifdef CONFIG_SMP
>>  static irqreturn_t tick_ipi_handler(int irq, void *dev_id)
>>  {
>>  	xnintr_core_clock_handler();
>>  
>>  	return IRQ_HANDLED;
>>  }
>> +#endif
>>  
>>  int pipeline_install_tick_proxy(void)
>>  {
>>  	int ret;
>>  
>> +#ifdef CONFIG_SMP
>>  	ret = __request_percpu_irq(TIMER_OOB_IPI,
>>  				tick_ipi_handler,
>>  				IRQF_OOB, "Xenomai timer IPI",
>>  				&cobalt_machine_cpudata);
>>  	if (ret)
>>  		return ret;
>> +#endif
>>  
>>  	/* Install the proxy tick device */
>>  	ret = tick_install_proxy(setup_proxy, &xnsched_realtime_cpus);
>> @@ -156,7 +160,9 @@ int pipeline_install_tick_proxy(void)
>>  	return 0;
>>  
>>  fail_proxy:
>> +#ifdef CONFIG_SMP
>>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
>> +#endif
>>  
>>  	return ret;
>>  }
>> @@ -166,5 +172,7 @@ void pipeline_uninstall_tick_proxy(void)
>>  	/* Uninstall the proxy tick device. */
>>  	tick_uninstall_proxy(&xnsched_realtime_cpus);
>>  
>> +#ifdef CONFIG_SMP
>>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
>> +#endif
>>  }
>> 
>
> Should have been more precise: This definitely breaks on arm, possibly
> on other archs as well.
>
> Found while diff'ing broken to (possibly) working .configs for
> BeagleBone Black.
>

bbb and other A8-based SoCs are probably the only hw we have been using
with SMP off these days.

-- 
Philippe.


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

* Re: [PATCH] cobalt/tick: dovetail: Fix non-SMP build
  2021-06-10 16:39 [PATCH] cobalt/tick: dovetail: Fix non-SMP build Jan Kiszka
  2021-06-10 16:44 ` Jan Kiszka
@ 2021-06-10 17:36 ` Philippe Gerum
  1 sibling, 0 replies; 4+ messages in thread
From: Philippe Gerum @ 2021-06-10 17:36 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Xenomai


Jan Kiszka <jan.kiszka@siemens.com> writes:

> From: Jan Kiszka <jan.kiszka@siemens.com>
>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  kernel/cobalt/dovetail/tick.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/kernel/cobalt/dovetail/tick.c b/kernel/cobalt/dovetail/tick.c
> index 81eaab84a..570f6a1f5 100644
> --- a/kernel/cobalt/dovetail/tick.c
> +++ b/kernel/cobalt/dovetail/tick.c
> @@ -130,23 +130,27 @@ static void setup_proxy(struct clock_proxy_device *dev)
>  	__this_cpu_write(proxy_device, dev);
>  }
>  
> +#ifdef CONFIG_SMP
>  static irqreturn_t tick_ipi_handler(int irq, void *dev_id)
>  {
>  	xnintr_core_clock_handler();
>  
>  	return IRQ_HANDLED;
>  }
> +#endif
>  
>  int pipeline_install_tick_proxy(void)
>  {
>  	int ret;
>  
> +#ifdef CONFIG_SMP
>  	ret = __request_percpu_irq(TIMER_OOB_IPI,
>  				tick_ipi_handler,
>  				IRQF_OOB, "Xenomai timer IPI",
>  				&cobalt_machine_cpudata);
>  	if (ret)
>  		return ret;
> +#endif
>  
>  	/* Install the proxy tick device */
>  	ret = tick_install_proxy(setup_proxy, &xnsched_realtime_cpus);
> @@ -156,7 +160,9 @@ int pipeline_install_tick_proxy(void)
>  	return 0;
>  
>  fail_proxy:
> +#ifdef CONFIG_SMP
>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
> +#endif
>  
>  	return ret;
>  }
> @@ -166,5 +172,7 @@ void pipeline_uninstall_tick_proxy(void)
>  	/* Uninstall the proxy tick device. */
>  	tick_uninstall_proxy(&xnsched_realtime_cpus);
>  
> +#ifdef CONFIG_SMP
>  	free_percpu_irq(TIMER_OOB_IPI, &cobalt_machine_cpudata);
> +#endif
>  }


Ack.

-- 
Philippe.


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

end of thread, other threads:[~2021-06-10 17:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10 16:39 [PATCH] cobalt/tick: dovetail: Fix non-SMP build Jan Kiszka
2021-06-10 16:44 ` Jan Kiszka
2021-06-10 16:56   ` Philippe Gerum
2021-06-10 17:36 ` Philippe Gerum

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.