To: linus, alan Cc: lkml Subject: [PATCH] PowerMac floppy local_irq*() updates Convert PowerMac SWIM3 floppy driver to new local_irq*() framework OK for SMP?? --- swim3.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) --- linux-2.6.0/drivers/block/swim3.c Thu Oct 31 10:15:01 2002 +++ linux-m68k-2.6.0/drivers/block/swim3.c Thu Nov 7 23:18:49 2002 @@ -303,7 +303,7 @@ continue; start_request(&floppy_states[i]); } - sti(); + local_irq_enable(); } static void start_request(struct floppy_state *fs) @@ -364,7 +364,7 @@ { unsigned long flags; - save_flags(flags); cli(); + local_irq_save(flags); if (fs->timeout_pending) del_timer(&fs->timeout); fs->timeout.expires = jiffies + nticks; @@ -372,7 +372,7 @@ fs->timeout.data = (unsigned long) fs; add_timer(&fs->timeout); fs->timeout_pending = 1; - restore_flags(flags); + local_irq_restore(flags); } static inline void scan_track(struct floppy_state *fs) @@ -759,14 +759,13 @@ { unsigned long flags; - save_flags(flags); - cli(); + local_irq_save(flags); if (fs->state != idle) { ++fs->wanted; while (fs->state != available) { if (interruptible && signal_pending(current)) { --fs->wanted; - restore_flags(flags); + local_irq_restore(flags); return -EINTR; } interruptible_sleep_on(&fs->wait); @@ -774,7 +773,7 @@ --fs->wanted; } fs->state = state; - restore_flags(flags); + local_irq_restore(flags); return 0; } @@ -782,11 +781,10 @@ { unsigned long flags; - save_flags(flags); - cli(); + local_irq_save(flags); fs->state = idle; start_request(fs); - restore_flags(flags); + local_irq_restore(flags); } static int fd_eject(struct floppy_state *fs)