This patch replaces the deprecated sti/cli routines with the corresponding
spin_lock ones.

Signed-off-by: David Chosrova <[EMAIL PROTECTED]>
Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>

diff --git a/drivers/net/irda/ep7211_ir.c b/drivers/net/irda/ep7211_ir.c
index 3189626..6edf988 100644
--- a/drivers/net/irda/ep7211_ir.c
+++ b/drivers/net/irda/ep7211_ir.c
@@ -8,6 +8,7 @@
 #include <linux/delay.h>
 #include <linux/tty.h>
 #include <linux/init.h>
+#include <linux/spinlock.h>

 #include <net/irda/irda.h>
 #include <net/irda/irda_device.h>
@@ -15,6 +16,7 @@
 #include <asm/io.h>
 #include <asm/hardware.h>

+
 #define MIN_DELAY 25      /* 15 us, but wait a little more to be sure */
 #define MAX_DELAY 10000   /* 1 ms */

@@ -23,6 +25,7 @@ static void ep7211_ir_close(dongle_t *se
 static int  ep7211_ir_change_speed(struct irda_task *task);
 static int  ep7211_ir_reset(struct irda_task *task);

+static spinlock_t ep7211_lock;
 static struct dongle_reg dongle = {
        .type = IRDA_EP7211_IR,
        .open = ep7211_ir_open,
@@ -36,7 +39,7 @@ static void ep7211_ir_open(dongle_t *sel
 {
        unsigned int syscon1, flags;

-       save_flags(flags); cli();
+       spin_lock_irqsave(&ep7211_lock, flags);

        /* Turn on the SIR encoder. */
        syscon1 = clps_readl(SYSCON1);
@@ -46,14 +49,14 @@ static void ep7211_ir_open(dongle_t *sel
        /* XXX: We should disable modem status interrupts on the first
                UART (interrupt #14). */

-       restore_flags(flags);
+       spin_lock_irqrestore(&ep7211_lock, flags);
 }

 static void ep7211_ir_close(dongle_t *self)
 {
        unsigned int syscon1, flags;

-       save_flags(flags); cli();
+       spin_lock_irqsave(&ep7211_lock, flags);

        /* Turn off the SIR encoder. */
        syscon1 = clps_readl(SYSCON1);
@@ -63,7 +66,7 @@ static void ep7211_ir_close(dongle_t *se
        /* XXX: If we've disabled the modem status interrupts, we should
                reset them back to their original state. */

-       restore_flags(flags);
+       spin_lock_irqrestore(&ep7211_lock, flags);
 }

 /*
@@ -99,6 +102,7 @@ static int ep7211_ir_reset(struct irda_t
  */
 static int __init ep7211_ir_init(void)
 {
+       spin_lock_init(&ep7211_lock);
        return irda_device_register_dongle(&dongle);
 }


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to