public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: ysionneau@kalrayinc.com, linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>
Cc: Jonathan Borne <jborne@kalrayinc.com>,
	Julian Vetter <jvetter@kalrayinc.com>,
	Clement Leger <clement@clement-leger.fr>,
	Guillaume Thouvenin <thouveng@gmail.com>,
	Luc Michel <luc@lmichel.fr>, Jules Maselbas <jmaselbas@zdiv.net>,
	bpf@vger.kernel.org
Subject: Re: [RFC PATCH v3 35/37] kvx: Add IPI driver
Date: Mon, 22 Jul 2024 14:39:20 +0200	[thread overview]
Message-ID: <cbd74fa5-d4ad-4ed0-a680-6ff5e3b8ff84@kernel.org> (raw)
In-Reply-To: <20240722094226.21602-36-ysionneau@kalrayinc.com>

On 22/07/2024 11:41, ysionneau@kalrayinc.com wrote:
> From: Yann Sionneau <ysionneau@kalrayinc.com>
> 
> The Inter-Processor Interrupt Controller (IPI) provides a fast
> synchronization mechanism to the software. It exposes eight independent
> sets of registers that can be used to notify each processor in the cluster.
> 
> Co-developed-by: Clement Leger <clement@clement-leger.fr>
> Signed-off-by: Clement Leger <clement@clement-leger.fr>
> Co-developed-by: Guillaume Thouvenin <thouveng@gmail.com>
> Signed-off-by: Guillaume Thouvenin <thouveng@gmail.com>
> Co-developed-by: Julian Vetter <jvetter@kalrayinc.com>
> Signed-off-by: Julian Vetter <jvetter@kalrayinc.com>
> Co-developed-by: Luc Michel <luc@lmichel.fr>
> Signed-off-by: Luc Michel <luc@lmichel.fr>
> Signed-off-by: Jules Maselbas <jmaselbas@zdiv.net>
> Signed-off-by: Yann Sionneau <ysionneau@kalrayinc.com>

...

> +
> +int __init kvx_ipi_ctrl_init(struct device_node *node,
> +			     struct device_node *parent)
> +{
> +	int ret;
> +	unsigned int ipi_irq;
> +	void __iomem *ipi_base;
> +
> +	BUG_ON(!node);

Fix your code instead.

> +
> +	ipi_base = of_iomap(node, 0);
> +	BUG_ON(!ipi_base);

No, handle it by returning.

> +
> +	kvx_ipi_controller.regs = ipi_base;
> +
> +	/* Init mask for interrupts to PE0 -> PE15 */
> +	writel(KVX_IPI_CPU_MASK, kvx_ipi_controller.regs + IPI_MASK_OFFSET);
> +
> +	ipi_irq = irq_of_parse_and_map(node, 0);
> +	if (!ipi_irq) {
> +		pr_err("Failed to parse irq: %d\n", ipi_irq);
> +		return -EINVAL;
> +	}
> +
> +	ret = request_percpu_irq(ipi_irq, ipi_irq_handler,
> +						"kvx_ipi", &kvx_ipi_controller);
> +	if (ret) {
> +		pr_err("can't register interrupt %d (%d)\n",
> +						ipi_irq, ret);
> +		return ret;
> +	}
> +	kvx_ipi_controller.ipi_irq = ipi_irq;
> +
> +	ret = cpuhp_setup_state(CPUHP_AP_IRQ_KVX_STARTING,
> +				"kvx/ipi:online",
> +				kvx_ipi_starting_cpu,
> +				kvx_ipi_dying_cpu);
> +	if (ret < 0) {
> +		pr_err("Failed to setup hotplug state");
> +		return ret;
> +	}
> +
> +	set_smp_cross_call(kvx_ipi_send);
> +	pr_info("controller probed\n");

Drop this simple probe successes. This is not the way to trace system
bootup. Keep only reasonable amount, not every driver printing that its
initcall started.

Best regards,
Krzysztof


  reply	other threads:[~2024-07-22 12:39 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-22  9:41 [RFC PATCH v3 00/37] Upstream kvx Linux port ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 01/37] Documentation: kvx: Add basic documentation ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 02/37] dt-bindings: soc: kvx: Add binding for kalray,coolidge-pwr-ctrl ysionneau
2024-07-22  9:47   ` Krzysztof Kozlowski
2024-07-31 14:31     ` Yann Sionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22  9:41 ` [RFC PATCH v3 03/37] dt-bindings: Add binding for kalray,kv3-1-intc ysionneau
2024-07-22  9:51   ` Krzysztof Kozlowski
2024-07-31 14:47     ` Yann Sionneau
2024-08-07  7:55       ` Krzysztof Kozlowski
2024-07-23 20:49   ` Rob Herring
2024-07-22  9:41 ` [RFC PATCH v3 04/37] dt-bindings: Add binding for kalray,coolidge-apic-gic ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22  9:41 ` [RFC PATCH v3 05/37] dt-bindings: Add binding for kalray,coolidge-apic-mailbox ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22 20:47   ` Rob Herring
2024-09-04 15:07     ` Yann Sionneau
2024-07-22  9:41 ` [RFC PATCH v3 06/37] dt-bindings: Add binding for kalray,coolidge-itgen ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22  9:41 ` [RFC PATCH v3 07/37] dt-bindings: Add binding for kalray,coolidge-ipi-ctrl ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22 20:50   ` Rob Herring
2024-09-04 15:37     ` Yann Sionneau
2024-07-22  9:41 ` [RFC PATCH v3 08/37] dt-bindings: Add binding for kalray,coolidge-dsu-clock ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22 21:45   ` Stephen Boyd
2024-07-22  9:41 ` [RFC PATCH v3 09/37] dt-bindings: Add binding for kalray,kv3-1-timer ysionneau
2024-07-23 20:52   ` Rob Herring
2024-07-22  9:41 ` [RFC PATCH v3 10/37] dt-bindings: kalray: Add CPU bindings for Kalray kvx ysionneau
2024-07-22 18:41   ` Rob Herring (Arm)
2024-07-22 20:58   ` Rob Herring
2024-07-22  9:41 ` [RFC PATCH v3 11/37] dt-bindings: kalray: Add Kalray SoC board compatibles ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 12/37] kvx: Add ELF-related definitions ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 13/37] kvx: Add build infrastructure ysionneau
2024-07-23  9:46   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 14/37] kvx: Add CPU definition headers ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 15/37] kvx: Add atomic/locking headers ysionneau
2024-07-23  8:26   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 16/37] kvx: Add other common headers ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 17/37] kvx: Add boot and setup routines ysionneau
2024-07-23  8:44   ` Arnd Bergmann
2024-07-27 14:31   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 18/37] kvx: Add exception/interrupt handling ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 19/37] irqchip: Add irq-kvx-apic-gic driver ysionneau
2024-07-22 12:28   ` Krzysztof Kozlowski
2024-08-23 12:37     ` Yann Sionneau
2024-07-27 13:10   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 20/37] irqchip: Add irq-kvx-itgen driver ysionneau
2024-07-22 12:30   ` Krzysztof Kozlowski
2024-08-23 12:42     ` Yann Sionneau
2024-07-27 13:18   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 21/37] irqchip: Add irq-kvx-apic-mailbox driver ysionneau
2024-07-27 13:35   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 22/37] irqchip: Add kvx-core-intc core interrupt controller driver ysionneau
2024-07-22 12:32   ` Krzysztof Kozlowski
2024-08-23 12:54     ` Yann Sionneau
2024-07-27 13:37   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 23/37] kvx: Add process management ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 24/37] kvx: Add memory management ysionneau
2024-07-22 14:58   ` Christoph Hellwig
2024-07-30 13:48     ` Robin Murphy
2024-08-23 16:02     ` Yann Sionneau
2024-07-22  9:41 ` [RFC PATCH v3 25/37] kvx: Add system call support ysionneau
2024-07-23  9:20   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 26/37] kvx: Add signal handling support ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 27/37] kvx: Add ELF relocations and module support ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 28/37] kvx: Add misc common routines ysionneau
2024-07-23  8:50   ` Arnd Bergmann
2024-07-23  9:58   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 29/37] kvx: Add some library functions ysionneau
2024-07-23  9:26   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 30/37] kvx: Add multi-processor (SMP) support ysionneau
2024-07-27 14:22   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 31/37] kvx: Add kvx default config file ysionneau
2024-07-23  8:55   ` Arnd Bergmann
2024-07-22  9:41 ` [RFC PATCH v3 32/37] kvx: Add debugging related support ysionneau
2024-07-22  9:41 ` [RFC PATCH v3 33/37] kvx: Add support for cpuinfo ysionneau
2024-07-22 12:35   ` Krzysztof Kozlowski
2024-08-23 13:00     ` Yann Sionneau
2024-07-22  9:41 ` [RFC PATCH v3 34/37] kvx: Add power controller driver ysionneau
2024-07-22 12:37   ` Krzysztof Kozlowski
2024-08-23 13:07     ` Yann Sionneau
2024-07-22  9:41 ` [RFC PATCH v3 35/37] kvx: Add IPI driver ysionneau
2024-07-22 12:39   ` Krzysztof Kozlowski [this message]
2024-08-23 14:46     ` Yann Sionneau
2024-09-07 13:20       ` Krzysztof Kozlowski
2024-07-27 14:08   ` Thomas Gleixner
2024-07-22  9:41 ` [RFC PATCH v3 36/37] kvx: dts: DeviceTree for qemu emulated Coolidge SoC ysionneau
2024-07-22  9:55   ` Krzysztof Kozlowski
2024-07-22 11:12     ` Conor Dooley
2024-07-31 15:38     ` Yann Sionneau
2024-07-31 16:57       ` Krzysztof Kozlowski
2024-07-22  9:41 ` [RFC PATCH v3 37/37] Add Kalray Inc. to the list of vendor-prefixes.yaml ysionneau
2024-07-22  9:56   ` Krzysztof Kozlowski
2024-08-01  7:35     ` Yann Sionneau
2024-07-24  7:59 ` [RFC PATCH v3 00/37] Upstream kvx Linux port Arnd Bergmann
2024-07-25 10:07   ` Yann Sionneau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cbd74fa5-d4ad-4ed0-a680-6ff5e3b8ff84@kernel.org \
    --to=krzk@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=clement@clement-leger.fr \
    --cc=jborne@kalrayinc.com \
    --cc=jmaselbas@zdiv.net \
    --cc=jvetter@kalrayinc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc@lmichel.fr \
    --cc=tglx@linutronix.de \
    --cc=thouveng@gmail.com \
    --cc=ysionneau@kalrayinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox