public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2.6.25.10 1/2] libata: fix locking for kmap_atomic
@ 2008-07-12 23:27 Jakub W. Jozwicki
  2008-07-13  8:26 ` Andrew Morton
  2008-07-13 10:25 ` Alan Cox
  0 siblings, 2 replies; 9+ messages in thread
From: Jakub W. Jozwicki @ 2008-07-12 23:27 UTC (permalink / raw)
  To: linux-kernel

Change locking surrounding kmap_atomic from local_irqsave to 
local_irqsave_nort. This fixes issues with PREEMPT_RT.
 
Signed-off-by:  Jakub Jozwicki <jozwicki@aster.pl>

--- linux-2.6.25.10/drivers/ata/libata-core.c	2008-07-03 05:46:47.000000000 
+0200
+++ linux-2.6.25.10-rt7/drivers/ata/libata-core.c	2008-07-12 
23:59:33.132140258 +0200
@@ -5157,14 +5157,14 @@
 		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 */
 		ap->ops->data_xfer(qc->dev, buf + offset, qc->sect_size, do_write);
 
 		kunmap_atomic(buf, KM_IRQ0);
-		local_irq_restore(flags);
+		local_irq_restore_nort(flags);
 	} else {
 		buf = page_address(page);
 		ap->ops->data_xfer(qc->dev, buf + offset, qc->sect_size, do_write);
@@ -5294,14 +5294,14 @@
 		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 */
 		consumed = ap->ops->data_xfer(dev,  buf + offset, count, rw);
 
 		kunmap_atomic(buf, KM_IRQ0);
-		local_irq_restore(flags);
+		local_irq_restore_nort(flags);
 	} else {
 		buf = page_address(page);
 		consumed = ap->ops->data_xfer(dev,  buf + offset, count, rw);

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-07-13 21:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-12 23:27 [PATCH 2.6.25.10 1/2] libata: fix locking for kmap_atomic Jakub W. Jozwicki
2008-07-13  8:26 ` Andrew Morton
2008-07-13 13:17   ` Jakub W. Jozwicki
2008-07-13 17:46     ` Jeremy Fitzhardinge
2008-07-13 18:53       ` Jakub W. Jozwicki
2008-07-13 21:32         ` Jeremy Fitzhardinge
2008-07-13 10:25 ` Alan Cox
2008-07-13 13:30   ` Jakub W. Jozwicki
2008-07-13 14:15     ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox