um: irq: Remove IRQF_DISABLED
authorYong Zhang <yong.zhang0@gmail.com>
Thu, 22 Sep 2011 08:58:46 +0000 (16:58 +0800)
committerRichard Weinberger <richard@nod.at>
Sat, 24 Mar 2012 23:29:52 +0000 (00:29 +0100)
Since commit [e58aa3d2: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/line.c
arch/um/drivers/mconsole_kern.c
arch/um/drivers/net_kern.c
arch/um/drivers/port_kern.c
arch/um/drivers/random.c
arch/um/drivers/ubd_kern.c
arch/um/drivers/xterm_kern.c
arch/um/kernel/sigio.c
arch/um/kernel/time.c

index c1cf2206b84bcebb6326a48787c93f965326763b..ac9bcfbbeee1c0f061b520592380584d34f773a1 100644 (file)
@@ -347,8 +347,8 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
        int err;
 
        /*
-        * Interrupts are disabled here because we registered the interrupt with
-        * IRQF_DISABLED (see line_setup_irq).
+        * Interrupts are disabled here because genirq keep irqs disabled when
+        * calling the action handler.
         */
 
        spin_lock(&line->lock);
@@ -371,7 +371,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
 int line_setup_irq(int fd, int input, int output, struct line *line, void *data)
 {
        const struct line_driver *driver = line->driver;
-       int err = 0, flags = IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM;
+       int err = 0, flags = IRQF_SHARED | IRQF_SAMPLE_RANDOM;
 
        if (input)
                err = um_request_irq(driver->read_irq, fd, IRQ_READ,
@@ -807,7 +807,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty,
                                   .stack       = stack });
 
        if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
-                          IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+                          IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                           "winch", winch) < 0) {
                printk(KERN_ERR "register_winch_irq - failed to register "
                       "IRQ\n");
index c70e047eed72e192cd9d0a8ade7cc6f8302a9d6c..e672bd6d43e3b2aa72b4c1c51029db9510233f52 100644 (file)
@@ -773,7 +773,7 @@ static int __init mconsole_init(void)
        register_reboot_notifier(&reboot_notifier);
 
        err = um_request_irq(MCONSOLE_IRQ, sock, IRQ_READ, mconsole_interrupt,
-                            IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+                            IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                             "mconsole", (void *)sock);
        if (err) {
                printk(KERN_ERR "Failed to get IRQ for management console\n");
index a492e59883a313b7cdae28ea426c5821c21da3c0..46ffd659be82f9e0a3858bb6582a1e6882e686f0 100644 (file)
@@ -161,7 +161,7 @@ static int uml_net_open(struct net_device *dev)
        }
 
        err = um_request_irq(dev->irq, lp->fd, IRQ_READ, uml_net_interrupt,
-                            IRQF_DISABLED | IRQF_SHARED, dev->name, dev);
+                            IRQF_SHARED, dev->name, dev);
        if (err != 0) {
                printk(KERN_ERR "uml_net_open: failed to get irq(%d)\n", err);
                err = -ENETUNREACH;
index a11573be0961fd7b233a02ff40421aa3a53940c7..e31680e662a473eeee0d4e62543110b533b6d70d 100644 (file)
@@ -100,7 +100,7 @@ static int port_accept(struct port_list *port)
                  .port         = port });
 
        if (um_request_irq(TELNETD_IRQ, socket[0], IRQ_READ, pipe_interrupt,
-                         IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+                         IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                          "telnetd", conn)) {
                printk(KERN_ERR "port_accept : failed to get IRQ for "
                       "telnetd\n");
@@ -184,7 +184,7 @@ void *port_data(int port_num)
        }
 
        if (um_request_irq(ACCEPT_IRQ, fd, IRQ_READ, port_interrupt,
-                         IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+                         IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                          "port", port)) {
                printk(KERN_ERR "Failed to get IRQ for port %d\n", port_num);
                goto out_close;
index 981085a93f30c4a48539e81b0cabce905a39de53..b25296e6218ade5fdeee1d3dff4f369bce5accbe 100644 (file)
@@ -131,7 +131,7 @@ static int __init rng_init (void)
        random_fd = err;
 
        err = um_request_irq(RANDOM_IRQ, random_fd, IRQ_READ, random_interrupt,
-                            IRQF_DISABLED | IRQF_SAMPLE_RANDOM, "random",
+                            IRQF_SAMPLE_RANDOM, "random",
                             NULL);
        if (err)
                goto err_out_cleanup_hw;
index 944453a3ec9972f136060054893f7e7aaa3ea568..c884ebd07f86f6580fccac45c0c7c689521270d4 100644 (file)
@@ -1115,7 +1115,7 @@ static int __init ubd_driver_init(void){
                return 0;
        }
        err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr,
-                            IRQF_DISABLED, "ubd", ubd_devs);
+                            0, "ubd", ubd_devs);
        if(err != 0)
                printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err);
        return 0;
index b646bccef37aa8586fb95701a6c750d1246aa8c3..8bd130f0bda351e4295752f0d2d1c8e451752330 100644 (file)
@@ -50,7 +50,7 @@ int xterm_fd(int socket, int *pid_out)
        init_completion(&data->ready);
 
        err = um_request_irq(XTERM_IRQ, socket, IRQ_READ, xterm_interrupt,
-                            IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
+                            IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                             "xterm", data);
        if (err) {
                printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, "
index 2b272b63b514c1508a83c3199d7a1b926d0c8c40..2a1639255763973eaed54dfda4d20090a6e3bf5d 100644 (file)
@@ -25,7 +25,7 @@ int write_sigio_irq(int fd)
        int err;
 
        err = um_request_irq(SIGIO_WRITE_IRQ, fd, IRQ_READ, sigio_interrupt,
-                            IRQF_DISABLED|IRQF_SAMPLE_RANDOM, "write sigio",
+                            IRQF_SAMPLE_RANDOM, "write sigio",
                             NULL);
        if (err) {
                printk(KERN_ERR "write_sigio_irq : um_request_irq failed, "
index 82a6e22f1f3567d4e4c95c668c3635ed058cda4c..d1a23fb3190daa9274e033572331c7a9799d5ce4 100644 (file)
@@ -82,7 +82,7 @@ static void __init setup_itimer(void)
 {
        int err;
 
-       err = request_irq(TIMER_IRQ, um_timer, IRQF_DISABLED, "timer", NULL);
+       err = request_irq(TIMER_IRQ, um_timer, 0, "timer", NULL);
        if (err != 0)
                printk(KERN_ERR "register_timer : request_irq failed - "
                       "errno = %d\n", -err);