From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BC31C433F5 for ; Tue, 15 Feb 2022 12:20:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237643AbiBOMUc (ORCPT ); Tue, 15 Feb 2022 07:20:32 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:58216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237602AbiBOMUN (ORCPT ); Tue, 15 Feb 2022 07:20:13 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADC141074E9 for ; Tue, 15 Feb 2022 04:20:03 -0800 (PST) Date: Tue, 15 Feb 2022 12:20:01 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1644927602; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6EkZXOJTuxAkyR8LfeR2YZf2FtCMnvC9xbG7avkNmCg=; b=OL4CN/ZR+FX7o0qrHwwc0MWtv7657sM3Edf5NQQeCzsTvcmCCZEjj7gvvYmUrSFHGB7D1q 8dBB5R3en3WmzaMbou1N77l34NKCOlpy2Khq30Hq4GFPRGme90OPt5kQRGTsX4vZ5AeO6F +VAZX2eHRTnyd8p6LS3JwbpKZyZfdswQGbcmliCBfitAc3TjmDWrFog9fQkB+8CKt2sw6p pkM1kjJI4mOc0WZVEXX5jhXoNwJGuvAhhctKxs40hcE5j/meftIgGzCLJ62nZDGNxt5//Q JgHYuicW+RAM0LOc1vuaYZs/ALR+9O/cqPjbfy23M/ToWE0dPq1MF6ULF+Rs+w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1644927602; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6EkZXOJTuxAkyR8LfeR2YZf2FtCMnvC9xbG7avkNmCg=; b=e7R7LH1CPovTGCD9uADzPRVfiAox6MI0qfAvz/FQ0PkAJRnt9QRPJvLFxJQ9UdDgIhcGD6 SxSMzTlf1GT4aVDg== From: "irqchip-bot for Marc Zyngier" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-kernel@vger.kernel.org Subject: [irqchip: irq/irqchip-next] genirq: Allow irq_chip registration functions to take a const irq_chip Cc: Marc Zyngier , Linus Walleij , tglx@linutronix.de In-Reply-To: <20220209162607.1118325-3-maz@kernel.org> References: <20220209162607.1118325-3-maz@kernel.org> MIME-Version: 1.0 Message-ID: <164492760128.16921.3052527730052600260.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the irq/irqchip-next branch of irqchip: Commit-ID: 393e1280f765661cf39785e967676a4e57324126 Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/393e1280f765661cf39785e967676a4e57324126 Author: Marc Zyngier AuthorDate: Wed, 09 Feb 2022 16:25:59 Committer: Marc Zyngier CommitterDate: Tue, 15 Feb 2022 11:10:21 genirq: Allow irq_chip registration functions to take a const irq_chip In order to let a const irqchip be fed to the irqchip layer, adjust the various prototypes. An extra cast in irq_set_chip()() is required to avoid a warning. Signed-off-by: Marc Zyngier Acked-by: Linus Walleij Link: https://lore.kernel.org/r/20220209162607.1118325-3-maz@kernel.org --- include/linux/irq.h | 7 ++++--- kernel/irq/chip.c | 9 +++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/include/linux/irq.h b/include/linux/irq.h index 2cb2e2a..f92788c 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -710,10 +710,11 @@ extern struct irq_chip no_irq_chip; extern struct irq_chip dummy_irq_chip; extern void -irq_set_chip_and_handler_name(unsigned int irq, struct irq_chip *chip, +irq_set_chip_and_handler_name(unsigned int irq, const struct irq_chip *chip, irq_flow_handler_t handle, const char *name); -static inline void irq_set_chip_and_handler(unsigned int irq, struct irq_chip *chip, +static inline void irq_set_chip_and_handler(unsigned int irq, + const struct irq_chip *chip, irq_flow_handler_t handle) { irq_set_chip_and_handler_name(irq, chip, handle, NULL); @@ -803,7 +804,7 @@ static inline void irq_set_percpu_devid_flags(unsigned int irq) } /* Set/get chip/data for an IRQ: */ -extern int irq_set_chip(unsigned int irq, struct irq_chip *chip); +extern int irq_set_chip(unsigned int irq, const struct irq_chip *chip); extern int irq_set_handler_data(unsigned int irq, void *data); extern int irq_set_chip_data(unsigned int irq, void *data); extern int irq_set_irq_type(unsigned int irq, unsigned int type); diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 24b6f2b..54af0de 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -38,7 +38,7 @@ struct irqaction chained_action = { * @irq: irq number * @chip: pointer to irq chip description structure */ -int irq_set_chip(unsigned int irq, struct irq_chip *chip) +int irq_set_chip(unsigned int irq, const struct irq_chip *chip) { unsigned long flags; struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); @@ -46,10 +46,7 @@ int irq_set_chip(unsigned int irq, struct irq_chip *chip) if (!desc) return -EINVAL; - if (!chip) - chip = &no_irq_chip; - - desc->irq_data.chip = chip; + desc->irq_data.chip = (struct irq_chip *)(chip ?: &no_irq_chip); irq_put_desc_unlock(desc, flags); /* * For !CONFIG_SPARSE_IRQ make the irq show up in @@ -1073,7 +1070,7 @@ irq_set_chained_handler_and_data(unsigned int irq, irq_flow_handler_t handle, EXPORT_SYMBOL_GPL(irq_set_chained_handler_and_data); void -irq_set_chip_and_handler_name(unsigned int irq, struct irq_chip *chip, +irq_set_chip_and_handler_name(unsigned int irq, const struct irq_chip *chip, irq_flow_handler_t handle, const char *name) { irq_set_chip(irq, chip);