All of lore.kernel.org
 help / color / mirror / Atom feed
From: Finn Thain <fthain@telegraphics.com.au>
To: afzal mohammed <afzal.mohd.ma@gmail.com>
Cc: linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org,
	Greg Ungerer <gerg@linux-m68k.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: [PATCH 06/18] m68k: Replace setup_irq() by request_irq()
Date: Thu, 13 Feb 2020 09:25:19 +1100 (AEDT)	[thread overview]
Message-ID: <alpine.LNX.2.22.394.2002130912140.8@nippy.intranet> (raw)
In-Reply-To: <1941c51a3237c4e9df6d9a5b87615cd1bba572dc.1581478324.git.afzal.mohd.ma@gmail.com>

On Wed, 12 Feb 2020, afzal mohammed wrote:

> request_irq() is preferred over setup_irq(). Existing callers of
> setup_irq() reached mostly via 'init_IRQ()' & '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>
> ---
> 
> Since cc'ing cover letter to all maintainers/reviewers would be too
> many, refer for cover letter,
>  https://lkml.kernel.org/r/cover.1581478323.git.afzal.mohd.ma@gmail.com
> 
>  arch/m68k/68000/timers.c      |  9 ++-------
>  arch/m68k/coldfire/pit.c      |  9 ++-------
>  arch/m68k/coldfire/sltimers.c | 19 +++++--------------
>  arch/m68k/coldfire/timers.c   | 19 +++++--------------
>  4 files changed, 14 insertions(+), 42 deletions(-)
> 
> diff --git a/arch/m68k/68000/timers.c b/arch/m68k/68000/timers.c
> index 71ddb4c98726..7a55d664592e 100644
> --- a/arch/m68k/68000/timers.c
> +++ b/arch/m68k/68000/timers.c
> @@ -68,12 +68,6 @@ static irqreturn_t hw_tick(int irq, void *dummy)
>  
>  /***************************************************************************/
>  
> -static struct irqaction m68328_timer_irq = {
> -	.name	 = "timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = hw_tick,
> -};
> -
>  /***************************************************************************/
>  
>  static u64 m68328_read_clk(struct clocksource *cs)
> @@ -106,7 +100,8 @@ void hw_timer_init(irq_handler_t handler)
>  	TCTL = 0;
>  
>  	/* set ISR */
> -	setup_irq(TMR_IRQ_NUM, &m68328_timer_irq);
> +	if (request_irq(TMR_IRQ_NUM, hw_tick, IRQF_TIMER, "timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "timer");

"request_irq() on timer failed" is bad grammar and doesn't convey what 
went wrong. It could be taken to mean that request_irq() was called 
because a timer went off.

Have you considered,

		pr_err("%s: request_irq() failed\n", "timer");

I think that would be more typical of error messages on UNIX. E.g.

$ grep x -- /tmp/foo
grep: /tmp/foo: No such file or directory

>  
>  	/* Restart mode, Enable int, Set clock source */
>  	TCTL = TCTL_OM | TCTL_IRQEN | CLOCK_SOURCE;
> diff --git a/arch/m68k/coldfire/pit.c b/arch/m68k/coldfire/pit.c
> index eb6f16b0e2e6..d09e253abe5a 100644
> --- a/arch/m68k/coldfire/pit.c
> +++ b/arch/m68k/coldfire/pit.c
> @@ -111,12 +111,6 @@ static irqreturn_t pit_tick(int irq, void *dummy)
>  
>  /***************************************************************************/
>  
> -static struct irqaction pit_irq = {
> -	.name	 = "timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = pit_tick,
> -};
> -
>  /***************************************************************************/
>  
>  static u64 pit_read_clk(struct clocksource *cs)
> @@ -156,7 +150,8 @@ void hw_timer_init(irq_handler_t handler)
>  	cf_pit_clockevent.min_delta_ticks = 0x3f;
>  	clockevents_register_device(&cf_pit_clockevent);
>  
> -	setup_irq(MCF_IRQ_PIT1, &pit_irq);
> +	if (request_irq(MCF_IRQ_PIT1, pit_tick, IRQF_TIMER, "timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "timer");
>  

Same here.

>  	clocksource_register_hz(&pit_clk, FREQ);
>  }
> diff --git a/arch/m68k/coldfire/sltimers.c b/arch/m68k/coldfire/sltimers.c
> index 1b11e7bacab3..2188a21e5413 100644
> --- a/arch/m68k/coldfire/sltimers.c
> +++ b/arch/m68k/coldfire/sltimers.c
> @@ -50,18 +50,14 @@ irqreturn_t mcfslt_profile_tick(int irq, void *dummy)
>  	return IRQ_HANDLED;
>  }
>  
> -static struct irqaction mcfslt_profile_irq = {
> -	.name	 = "profile timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = mcfslt_profile_tick,
> -};
> -
>  void mcfslt_profile_init(void)
>  {
>  	printk(KERN_INFO "PROFILE: lodging TIMER 1 @ %dHz as profile timer\n",
>  	       PROFILEHZ);
>  
> -	setup_irq(MCF_IRQ_PROFILER, &mcfslt_profile_irq);
> +	if (request_irq(MCF_IRQ_PROFILER, mcfslt_profile_tick, IRQF_TIMER,
> +			"profile timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "profile timer");
>  

And here.

>  	/* Set up TIMER 2 as high speed profile clock */
>  	__raw_writel(MCF_BUSCLK / PROFILEHZ - 1, PA(MCFSLT_STCNT));
> @@ -92,12 +88,6 @@ static irqreturn_t mcfslt_tick(int irq, void *dummy)
>  	return timer_interrupt(irq, dummy);
>  }
>  
> -static struct irqaction mcfslt_timer_irq = {
> -	.name	 = "timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = mcfslt_tick,
> -};
> -
>  static u64 mcfslt_read_clk(struct clocksource *cs)
>  {
>  	unsigned long flags;
> @@ -140,7 +130,8 @@ void hw_timer_init(irq_handler_t handler)
>  	mcfslt_cnt = mcfslt_cycles_per_jiffy;
>  
>  	timer_interrupt = handler;
> -	setup_irq(MCF_IRQ_TIMER, &mcfslt_timer_irq);
> +	if (request_irq(MCF_IRQ_TIMER, mcfslt_tick, IRQF_TIMER, "timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "timer");
>  

And so on.

>  	clocksource_register_hz(&mcfslt_clk, MCF_BUSCLK);
>  
> diff --git a/arch/m68k/coldfire/timers.c b/arch/m68k/coldfire/timers.c
> index 227aa5d13709..f384e92d8b1c 100644
> --- a/arch/m68k/coldfire/timers.c
> +++ b/arch/m68k/coldfire/timers.c
> @@ -82,12 +82,6 @@ static irqreturn_t mcftmr_tick(int irq, void *dummy)
>  
>  /***************************************************************************/
>  
> -static struct irqaction mcftmr_timer_irq = {
> -	.name	 = "timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = mcftmr_tick,
> -};
> -
>  /***************************************************************************/
>  
>  static u64 mcftmr_read_clk(struct clocksource *cs)
> @@ -134,7 +128,8 @@ void hw_timer_init(irq_handler_t handler)
>  
>  	timer_interrupt = handler;
>  	init_timer_irq();
> -	setup_irq(MCF_IRQ_TIMER, &mcftmr_timer_irq);
> +	if (request_irq(MCF_IRQ_TIMER, mcftmr_tick, IRQF_TIMER, "timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "timer");
>  
>  #ifdef CONFIG_HIGHPROFILE
>  	coldfire_profile_init();
> @@ -170,12 +165,6 @@ irqreturn_t coldfire_profile_tick(int irq, void *dummy)
>  
>  /***************************************************************************/
>  
> -static struct irqaction coldfire_profile_irq = {
> -	.name	 = "profile timer",
> -	.flags	 = IRQF_TIMER,
> -	.handler = coldfire_profile_tick,
> -};
> -
>  void coldfire_profile_init(void)
>  {
>  	printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n",
> @@ -188,7 +177,9 @@ void coldfire_profile_init(void)
>  	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
>  		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR));
>  
> -	setup_irq(MCF_IRQ_PROFILER, &coldfire_profile_irq);
> +	if (request_irq(MCF_IRQ_PROFILER, coldfire_profile_tick, IRQF_TIMER,
> +			"profile timer", NULL))
> +		pr_err("request_irq() on %s failed\n", "profile timer");
>  }
>  
>  /***************************************************************************/
> 


  reply	other threads:[~2020-02-12 22:25 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12  8:01 [PATCH 00/18] genirq: Remove setup_irq() afzal mohammed
2020-02-12  8:13 ` afzal mohammed
2020-02-12  8:01 ` afzal mohammed
2020-02-12  8:01 ` afzal mohammed
2020-02-12  8:02 ` [PATCH 01/18] alpha: replace setup_irq() by request_irq() afzal mohammed
2020-02-12  8:02 ` [PATCH 02/18] ARM: " afzal mohammed
2020-02-12  8:02   ` afzal mohammed
2020-02-12  8:10   ` Viresh Kumar
2020-02-12  8:10     ` Viresh Kumar
2020-02-12  8:10     ` Viresh Kumar
2020-02-12 23:27   ` Alexander Sverdlin
2020-02-12 23:27     ` Alexander Sverdlin
2020-02-12 23:27     ` Alexander Sverdlin
2020-02-12  8:02 ` [PATCH 03/18] c6x: " afzal mohammed
2020-02-13 17:37   ` Mark Salter
2020-02-12  8:03 ` [PATCH 04/18] hexagon: " afzal mohammed
2020-02-12  8:03 ` [PATCH 05/18] ia64: " afzal mohammed
2020-02-12  8:15   ` afzal mohammed
2020-02-12  8:03 ` [PATCH 06/18] m68k: Replace " afzal mohammed
2020-02-12 22:25   ` Finn Thain [this message]
2020-02-13  2:03     ` afzal mohammed
2020-02-13  7:11   ` Greg Ungerer
2020-02-14 13:07     ` afzal mohammed
2020-02-12  8:03 ` [PATCH 07/18] microblaze: " afzal mohammed
2020-02-12  8:04 ` [PATCH 08/18] MIPS: " afzal mohammed
2020-02-12  8:04   ` afzal mohammed
2020-02-12  8:04 ` [PATCH 09/18] parisc: " afzal mohammed
2020-02-12  8:04 ` [PATCH 10/18] powerpc: " afzal mohammed
2020-02-12  8:04   ` afzal mohammed
2020-02-13 10:59   ` Christophe Leroy
2020-02-13 10:59     ` Christophe Leroy
2020-02-12  8:04 ` [PATCH 11/18] s390: replace " afzal mohammed
2020-02-12  8:04 ` [PATCH 12/18] sh: " afzal mohammed
2020-02-12  8:16   ` afzal mohammed
2020-02-12  8:05 ` [PATCH 13/18] unicore32: " afzal mohammed
2020-02-12  8:05 ` [PATCH 14/18] x86: Replace " afzal mohammed
2020-02-27 10:49   ` Thomas Gleixner
2020-02-27 11:36     ` afzal mohammed
2020-02-27 13:29       ` Thomas Gleixner
2020-02-27 14:26         ` afzal mohammed
2020-02-12  8:05 ` [PATCH 15/18] xtensa: replace " afzal mohammed
2020-02-12  9:10   ` Max Filippov
2020-02-12  8:05 ` [PATCH 16/18] clocksource: Replace " afzal mohammed
2020-02-12  8:05   ` afzal mohammed
2020-02-12  8:05   ` afzal mohammed
2020-02-20 11:13   ` Daniel Lezcano
2020-02-20 11:13     ` Daniel Lezcano
2020-02-20 11:13     ` Daniel Lezcano
2020-02-20 14:48   ` Linus Walleij
2020-02-20 14:48     ` Linus Walleij
2020-02-20 14:48     ` Linus Walleij
2020-02-12  8:05 ` [PATCH 17/18] irqchip: " afzal mohammed
     [not found]   ` <8e00874d072f32496c2d0da05423bda1cadd6975.1581478324.git.afzal.mohd.ma@gmail. com>
2020-02-13 16:02     ` Paul Cercueil
2020-02-12  8:06 ` [PATCH 18/18] genirq: Remove setup_irq() and remove_irq() afzal mohammed
2020-02-20 14:49   ` Linus Walleij
2020-02-27 10:31 ` [PATCH 00/18] genirq: Remove setup_irq() Thomas Gleixner
2020-02-27 10:31   ` Thomas Gleixner
2020-02-27 10:31   ` Thomas Gleixner
2020-02-27 10:31   ` Thomas Gleixner
2020-02-27 11:07   ` afzal mohammed
2020-02-27 11:19     ` afzal mohammed
2020-02-27 11:07     ` afzal mohammed
2020-02-27 11:07     ` afzal mohammed
2020-03-21 17:43     ` afzal mohammed
2020-03-21 17:55       ` afzal mohammed
2020-03-21 17:43       ` afzal mohammed
2020-03-21 17:43       ` afzal mohammed
2020-03-27 16:08       ` [PATCH 0/6] Kill setup_irq() afzal mohammed
2020-03-27 16:20         ` afzal mohammed
2020-03-27 16:08         ` afzal mohammed
2020-03-27 16:08         ` afzal mohammed
2020-03-27 16:09         ` [PATCH v5 1/6] alpha: Replace setup_irq() by request_irq() afzal mohammed
2020-03-27 16:09         ` [PATCH v5 2/6] c6x: replace " afzal mohammed
2020-03-27 16:09         ` [PATCH v5 3/6] hexagon: " afzal mohammed
2020-03-27 16:10         ` [PATCH v5 4/6] sh: " afzal mohammed
2020-03-27 16:22           ` afzal mohammed
2020-03-27 16:10         ` [PATCH v5 5/6] unicore32: " afzal mohammed
2020-03-27 16:11         ` [PATCH v5 6/6] genirq: Remove setup_irq() and remove_irq() afzal mohammed
2020-04-11 14:10           ` afzal mohammed
2020-03-28  2:48         ` [PATCH 0/6] Kill setup_irq() Brian Cain
2020-03-28  2:48           ` Brian Cain
2020-03-28  2:48           ` Brian Cain
2020-03-28  2:48           ` Brian Cain
2020-03-28  2:48           ` Brian Cain
2020-03-28  7:32           ` afzal mohammed
2020-03-28  7:44             ` afzal mohammed
2020-03-28  7:32             ` afzal mohammed
2020-03-28  7:32             ` afzal mohammed
2020-04-02 15:03             ` Brian Cain
2020-04-02 15:03               ` Brian Cain
2020-04-02 15:03               ` Brian Cain
2020-04-02 15:03               ` Brian Cain
2020-04-02 15:03               ` Brian Cain

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=alpine.LNX.2.22.394.2002130912140.8@nippy.intranet \
    --to=fthain@telegraphics.com.au \
    --cc=afzal.mohd.ma@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=gerg@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=tglx@linutronix.de \
    /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 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.