| From e0390e128c9d8e8f6babca9527466abd291b759d Mon Sep 17 00:00:00 2001 |
| From: Steven Rostedt <srostedt@redhat.com> |
| Date: Fri, 3 Jul 2009 08:44:29 -0500 |
| Subject: [PATCH] ata: Do not disable interrupts in ide code for preempt-rt |
| |
| commit 1a62b43cbf8d17e744c4978451d053f85cf46a96 in tip. |
| |
| Use the local_irq_*_nort variants. |
| |
| Signed-off-by: Steven Rostedt <srostedt@redhat.com> |
| Signed-off-by: Ingo Molnar <mingo@elte.hu> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| |
| diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c |
| index 730ef3c..bc24dfb 100644 |
| --- a/drivers/ata/libata-sff.c |
| +++ b/drivers/ata/libata-sff.c |
| @@ -837,9 +837,9 @@ unsigned int ata_sff_data_xfer_noirq(struct ata_device *dev, unsigned char *buf, |
| unsigned long flags; |
| unsigned int consumed; |
| |
| - local_irq_save(flags); |
| + local_irq_save_nort(flags); |
| consumed = ata_sff_data_xfer(dev, buf, buflen, rw); |
| - local_irq_restore(flags); |
| + local_irq_restore_nort(flags); |
| |
| return consumed; |
| } |
| @@ -878,7 +878,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc) |
| unsigned long flags; |
| |
| /* FIXME: use a bounce buffer */ |
| - local_irq_save(flags); |
| + local_irq_save_nort(flags); |
| buf = kmap_atomic(page, KM_IRQ0); |
| |
| /* do the actual data transfer */ |
| @@ -886,7 +886,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc) |
| do_write); |
| |
| kunmap_atomic(buf, KM_IRQ0); |
| - local_irq_restore(flags); |
| + local_irq_restore_nort(flags); |
| } else { |
| buf = page_address(page); |
| ap->ops->sff_data_xfer(qc->dev, buf + offset, qc->sect_size, |
| @@ -1019,7 +1019,7 @@ next_sg: |
| unsigned long flags; |
| |
| /* FIXME: use bounce buffer */ |
| - local_irq_save(flags); |
| + local_irq_save_nort(flags); |
| buf = kmap_atomic(page, KM_IRQ0); |
| |
| /* do the actual data transfer */ |
| @@ -1027,7 +1027,7 @@ next_sg: |
| count, rw); |
| |
| kunmap_atomic(buf, KM_IRQ0); |
| - local_irq_restore(flags); |
| + local_irq_restore_nort(flags); |
| } else { |
| buf = page_address(page); |
| consumed = ap->ops->sff_data_xfer(dev, buf + offset, |
| -- |
| 1.7.1.1 |
| |