From: afzal mohammed <afzal.mohd.ma@gmail.com> To: linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de> Subject: [PATCH v2 12/18] sh: replace setup_irq() by request_irq() Date: Mon, 24 Feb 2020 00:51:59 +0000 [thread overview] Message-ID: <331ffab9c0b56f9c6d1b7f6afdb9c95ab285402c.1582471508.git.afzal.mohd.ma@gmail.com> (raw) In-Reply-To: <cover.1582471508.git.afzal.mohd.ma@gmail.com> request_irq() is preferred over setup_irq(). The early boot setup_irq() invocations happen either via 'init_IRQ()' or 'time_init()', while memory allocators are ready by 'mm_init()'. Per tglx[1], setup_irq() existed in olden days when allocators were not ready by the time early interrupts were initialized. Hence replace setup_irq() by request_irq(). Seldom remove_irq() usage has been observed coupled with setup_irq(), wherever that has been found, it too has been replaced by free_irq(). [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com> --- v2: * Replace pr_err("request_irq() on %s failed" by pr_err("%s: request_irq() failed" * Commit message massage arch/sh/boards/mach-cayman/irq.c | 18 ++++++------------ arch/sh/drivers/dma/dma-pvr2.c | 9 +++------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/arch/sh/boards/mach-cayman/irq.c b/arch/sh/boards/mach-cayman/irq.c index 3b6ea2d99013..57d015f3c075 100644 --- a/arch/sh/boards/mach-cayman/irq.c +++ b/arch/sh/boards/mach-cayman/irq.c @@ -40,16 +40,6 @@ static irqreturn_t cayman_interrupt_pci2(int irq, void *dev_id) return IRQ_NONE; } -static struct irqaction cayman_action_smsc = { - .name = "Cayman SMSC Mux", - .handler = cayman_interrupt_smsc, -}; - -static struct irqaction cayman_action_pci2 = { - .name = "Cayman PCI2 Mux", - .handler = cayman_interrupt_pci2, -}; - static void enable_cayman_irq(struct irq_data *data) { unsigned int irq = data->irq; @@ -149,6 +139,10 @@ void init_cayman_irq(void) } /* Setup the SMSC interrupt */ - setup_irq(SMSC_IRQ, &cayman_action_smsc); - setup_irq(PCI2_IRQ, &cayman_action_pci2); + if (request_irq(SMSC_IRQ, cayman_interrupt_smsc, 0, "Cayman SMSC Mux", + NULL)) + pr_err("%s: request_irq() failed\n", "Cayman SMSC Mux"); + if (request_irq(PCI2_IRQ, cayman_interrupt_pci2, 0, "Cayman PCI2 Mux", + NULL)) + pr_err("%s: request_irq() failed\n", "Cayman PCI2 Mux"); } diff --git a/arch/sh/drivers/dma/dma-pvr2.c b/arch/sh/drivers/dma/dma-pvr2.c index b5dbd1f75768..0e5aa558a5f2 100644 --- a/arch/sh/drivers/dma/dma-pvr2.c +++ b/arch/sh/drivers/dma/dma-pvr2.c @@ -64,11 +64,6 @@ static int pvr2_xfer_dma(struct dma_channel *chan) return 0; } -static struct irqaction pvr2_dma_irq = { - .name = "pvr2 DMA handler", - .handler = pvr2_dma_interrupt, -}; - static struct dma_ops pvr2_dma_ops = { .request = pvr2_request_dma, .get_residue = pvr2_get_dma_residue, @@ -84,7 +79,9 @@ static struct dma_info pvr2_dma_info = { static int __init pvr2_dma_init(void) { - setup_irq(HW_EVENT_PVR2_DMA, &pvr2_dma_irq); + if (request_irq(HW_EVENT_PVR2_DMA, pvr2_dma_interrupt, 0, + "pvr2 DMA handler", NULL)) + pr_err("%s: request_irq() failed\n", "pvr2 DMA handler"); request_dma(PVR2_CASCADE_CHAN, "pvr2 cascade"); return register_dmac(&pvr2_dma_info); -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: afzal mohammed <afzal.mohd.ma@gmail.com> To: linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, Thomas Gleixner <tglx@linutronix.de>, Arnd Bergmann <arnd@arndb.de> Subject: [PATCH v2 12/18] sh: replace setup_irq() by request_irq() Date: Mon, 24 Feb 2020 06:21:56 +0530 [thread overview] Message-ID: <331ffab9c0b56f9c6d1b7f6afdb9c95ab285402c.1582471508.git.afzal.mohd.ma@gmail.com> (raw) In-Reply-To: <cover.1582471508.git.afzal.mohd.ma@gmail.com> request_irq() is preferred over setup_irq(). The early boot setup_irq() invocations happen either via 'init_IRQ()' or 'time_init()', while memory allocators are ready by 'mm_init()'. Per tglx[1], setup_irq() existed in olden days when allocators were not ready by the time early interrupts were initialized. Hence replace setup_irq() by request_irq(). Seldom remove_irq() usage has been observed coupled with setup_irq(), wherever that has been found, it too has been replaced by free_irq(). [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com> --- v2: * Replace pr_err("request_irq() on %s failed" by pr_err("%s: request_irq() failed" * Commit message massage arch/sh/boards/mach-cayman/irq.c | 18 ++++++------------ arch/sh/drivers/dma/dma-pvr2.c | 9 +++------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/arch/sh/boards/mach-cayman/irq.c b/arch/sh/boards/mach-cayman/irq.c index 3b6ea2d99013..57d015f3c075 100644 --- a/arch/sh/boards/mach-cayman/irq.c +++ b/arch/sh/boards/mach-cayman/irq.c @@ -40,16 +40,6 @@ static irqreturn_t cayman_interrupt_pci2(int irq, void *dev_id) return IRQ_NONE; } -static struct irqaction cayman_action_smsc = { - .name = "Cayman SMSC Mux", - .handler = cayman_interrupt_smsc, -}; - -static struct irqaction cayman_action_pci2 = { - .name = "Cayman PCI2 Mux", - .handler = cayman_interrupt_pci2, -}; - static void enable_cayman_irq(struct irq_data *data) { unsigned int irq = data->irq; @@ -149,6 +139,10 @@ void init_cayman_irq(void) } /* Setup the SMSC interrupt */ - setup_irq(SMSC_IRQ, &cayman_action_smsc); - setup_irq(PCI2_IRQ, &cayman_action_pci2); + if (request_irq(SMSC_IRQ, cayman_interrupt_smsc, 0, "Cayman SMSC Mux", + NULL)) + pr_err("%s: request_irq() failed\n", "Cayman SMSC Mux"); + if (request_irq(PCI2_IRQ, cayman_interrupt_pci2, 0, "Cayman PCI2 Mux", + NULL)) + pr_err("%s: request_irq() failed\n", "Cayman PCI2 Mux"); } diff --git a/arch/sh/drivers/dma/dma-pvr2.c b/arch/sh/drivers/dma/dma-pvr2.c index b5dbd1f75768..0e5aa558a5f2 100644 --- a/arch/sh/drivers/dma/dma-pvr2.c +++ b/arch/sh/drivers/dma/dma-pvr2.c @@ -64,11 +64,6 @@ static int pvr2_xfer_dma(struct dma_channel *chan) return 0; } -static struct irqaction pvr2_dma_irq = { - .name = "pvr2 DMA handler", - .handler = pvr2_dma_interrupt, -}; - static struct dma_ops pvr2_dma_ops = { .request = pvr2_request_dma, .get_residue = pvr2_get_dma_residue, @@ -84,7 +79,9 @@ static struct dma_info pvr2_dma_info = { static int __init pvr2_dma_init(void) { - setup_irq(HW_EVENT_PVR2_DMA, &pvr2_dma_irq); + if (request_irq(HW_EVENT_PVR2_DMA, pvr2_dma_interrupt, 0, + "pvr2 DMA handler", NULL)) + pr_err("%s: request_irq() failed\n", "pvr2 DMA handler"); request_dma(PVR2_CASCADE_CHAN, "pvr2 cascade"); return register_dmac(&pvr2_dma_info); -- 2.25.1
next prev parent reply other threads:[~2020-02-24 0:51 UTC|newest] Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-24 0:47 [PATCH v2 00/18] genirq: Remove setup_irq() afzal mohammed 2020-02-24 0:59 ` afzal mohammed 2020-02-24 0:47 ` afzal mohammed 2020-02-24 0:48 ` [PATCH v2 01/18] alpha: replace setup_irq() by request_irq() afzal mohammed 2020-02-24 0:49 ` [PATCH v2 02/18] ARM: " afzal mohammed 2020-02-24 0:49 ` afzal mohammed 2020-02-24 10:13 ` Lubomir Rintel 2020-02-24 10:13 ` Lubomir Rintel 2020-02-26 16:31 ` Tony Lindgren 2020-02-26 16:31 ` Tony Lindgren 2020-02-24 0:49 ` [PATCH v2 03/18] c6x: " afzal mohammed 2020-02-24 0:49 ` [PATCH v2 04/18] hexagon: " afzal mohammed 2020-02-24 0:49 ` [PATCH v2 05/18] ia64: " afzal mohammed 2020-02-24 0:49 ` afzal mohammed 2020-02-24 0:50 ` [PATCH v2 06/18] m68k: Replace " afzal mohammed 2020-02-26 0:42 ` Greg Ungerer 2020-02-26 1:11 ` Finn Thain 2020-02-26 2:11 ` Greg Ungerer 2020-02-26 6:39 ` Finn Thain 2020-02-26 12:26 ` Greg Ungerer 2020-02-26 22:31 ` Finn Thain 2020-02-27 6:37 ` Greg Ungerer 2020-02-27 22:19 ` Finn Thain 2020-02-27 8:18 ` afzal mohammed 2020-02-27 8:32 ` Geert Uytterhoeven 2020-02-27 12:06 ` afzal mohammed 2020-02-27 22:38 ` Finn Thain 2020-02-29 12:41 ` afzal mohammed 2020-02-28 7:05 ` Greg Ungerer 2020-02-29 12:47 ` afzal mohammed 2020-02-29 13:15 ` afzal mohammed 2020-02-29 23:11 ` Finn Thain 2020-03-01 1:05 ` afzal mohammed 2020-03-01 3:26 ` Finn Thain 2020-03-01 6:13 ` afzal mohammed 2020-03-02 6:26 ` Finn Thain 2020-03-04 1:24 ` afzal mohammed 2020-02-24 0:50 ` [PATCH v2 07/18] microblaze: " afzal mohammed 2020-02-24 0:50 ` [PATCH v2 08/18] MIPS: " afzal mohammed 2020-02-24 0:50 ` afzal mohammed 2020-02-24 0:51 ` [PATCH v2 09/18] parisc: " afzal mohammed 2020-02-24 0:51 ` [PATCH v2 10/18] powerpc: " afzal mohammed 2020-02-24 0:51 ` afzal mohammed 2020-02-24 0:51 ` [PATCH v2 11/18] s390: replace " afzal mohammed 2020-02-24 0:51 ` afzal mohammed [this message] 2020-02-24 0:51 ` [PATCH v2 12/18] sh: " afzal mohammed 2020-02-24 0:52 ` [PATCH v2 13/18] unicore32: " afzal mohammed 2020-02-24 0:52 ` [PATCH v2 14/18] x86: Replace " afzal mohammed 2020-02-24 0:52 ` [PATCH v2 15/18] xtensa: replace " afzal mohammed 2020-02-24 0:52 ` [PATCH v2 16/18] clocksource: Replace " afzal mohammed 2020-02-24 0:52 ` afzal mohammed 2020-02-24 0:52 ` afzal mohammed 2020-02-25 2:52 ` kbuild test robot 2020-02-25 2:52 ` kbuild test robot 2020-02-25 2:52 ` kbuild test robot 2020-02-25 2:52 ` kbuild test robot 2020-02-25 7:51 ` afzal mohammed 2020-02-25 7:51 ` afzal mohammed 2020-02-25 7:51 ` afzal mohammed 2020-02-27 10:59 ` [PATCH v3 " afzal mohammed 2020-02-27 10:59 ` afzal mohammed 2020-02-27 10:59 ` afzal mohammed 2020-02-27 11:18 ` Daniel Lezcano 2020-02-27 11:18 ` Daniel Lezcano 2020-02-27 11:18 ` Daniel Lezcano 2020-03-12 6:48 ` [PATCH v4] clocksource/drivers/timer-cs5535: request irq with non-NULL dev_id afzal mohammed 2020-03-12 6:48 ` afzal mohammed 2020-03-12 6:48 ` afzal mohammed 2020-03-12 7:10 ` afzal mohammed 2020-03-12 7:10 ` afzal mohammed 2020-03-12 7:10 ` afzal mohammed 2020-03-12 18:23 ` Daniel Lezcano 2020-03-12 18:23 ` Daniel Lezcano 2020-03-12 18:23 ` Daniel Lezcano 2020-03-19 8:47 ` [tip: timers/core] clocksource/drivers/timer-cs5535: Request " tip-bot2 for afzal mohammed 2020-04-16 16:08 ` [PATCH v4] clocksource/drivers/timer-cs5535: request " patchwork-bot+linux-amlogic 2020-02-24 0:53 ` [PATCH v2 17/18] irqchip: Replace setup_irq() by request_irq() afzal mohammed 2020-02-24 0:53 ` [PATCH v2 18/18] genirq: Remove setup_irq() and remove_irq() afzal mohammed
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=331ffab9c0b56f9c6d1b7f6afdb9c95ab285402c.1582471508.git.afzal.mohd.ma@gmail.com \ --to=afzal.mohd.ma@gmail.com \ --cc=arnd@arndb.de \ --cc=dalias@libc.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=ysato@users.sourceforge.jp \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.