linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic
@ 2006-04-11 18:25 adam radford
  2006-04-11 18:53 ` Jeff Garzik
  0 siblings, 1 reply; 4+ messages in thread
From: adam radford @ 2006-04-11 18:25 UTC (permalink / raw)
  To: James Bottomley, SCSI Mailing List

[-- Attachment #1: Type: text/plain, Size: 1788 bytes --]

The attached patch for 2.6.17-rc2 updates the 3ware 9000 driver:

- Disable local interrupts during kmap/unmap_atomic().

Signed-off-by: Adam Radford <linuxraid@amcc.com>

James, Please apply

Thanks!

-Adam

Note: The patch is attached as an attachment, and also included
in-line below.   The below may have line-wrap issues since I'm pasting
into gmail.

diff -Naur linux-2.6.17-rc1/drivers/scsi/3w-9xxx.c
linux-2.6.17-rc2/drivers/scsi/3w-9xxx.c
--- linux-2.6.17-rc1/drivers/scsi/3w-9xxx.c	2006-04-10 15:50:35.000000000 -0700
+++ linux-2.6.17-rc2/drivers/scsi/3w-9xxx.c	2006-04-11 11:13:02.000000000 -0700
@@ -65,6 +65,7 @@
    2.26.02.005 - Fix use_sg == 0 mapping on systems with 4GB or higher.
    2.26.02.006 - Fix 9550SX pchip reset timeout.
                  Add big endian support.
+   2.26.02.007 - Disable local interrupts during kmap/unmap_atomic().
 */

 #include <linux/module.h>
@@ -88,7 +89,7 @@
 #include "3w-9xxx.h"

 /* Globals */
-#define TW_DRIVER_VERSION "2.26.02.006"
+#define TW_DRIVER_VERSION "2.26.02.007"
 static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT];
 static unsigned int twa_device_extension_count;
 static int twa_major = -1;
@@ -1942,9 +1943,13 @@
 		}
 		if (tw_dev->srb[request_id]->use_sg == 1) {
 			struct scatterlist *sg = (struct scatterlist
*)tw_dev->srb[request_id]->request_buffer;
-			char *buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
+			char *buf;
+			unsigned long flags = 0;
+			local_irq_save(flags);
+			buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
 			memcpy(buf, tw_dev->generic_buffer_virt[request_id], sg->length);
 			kunmap_atomic(buf - sg->offset, KM_IRQ0);
+			local_irq_restore(flags);
 		}
 	}
 } /* End twa_scsiop_execute_scsi_complete() */

[-- Attachment #2: 3ware_linux_2.6.17-rc2.patch --]
[-- Type: text/x-patch, Size: 1380 bytes --]

diff -Naur linux-2.6.17-rc1/drivers/scsi/3w-9xxx.c linux-2.6.17-rc2/drivers/scsi/3w-9xxx.c
--- linux-2.6.17-rc1/drivers/scsi/3w-9xxx.c	2006-04-10 15:50:35.000000000 -0700
+++ linux-2.6.17-rc2/drivers/scsi/3w-9xxx.c	2006-04-11 11:13:02.000000000 -0700
@@ -65,6 +65,7 @@
    2.26.02.005 - Fix use_sg == 0 mapping on systems with 4GB or higher.
    2.26.02.006 - Fix 9550SX pchip reset timeout.
                  Add big endian support.
+   2.26.02.007 - Disable local interrupts during kmap/unmap_atomic().
 */
 
 #include <linux/module.h>
@@ -88,7 +89,7 @@
 #include "3w-9xxx.h"
 
 /* Globals */
-#define TW_DRIVER_VERSION "2.26.02.006"
+#define TW_DRIVER_VERSION "2.26.02.007"
 static TW_Device_Extension *twa_device_extension_list[TW_MAX_SLOT];
 static unsigned int twa_device_extension_count;
 static int twa_major = -1;
@@ -1942,9 +1943,13 @@
 		}
 		if (tw_dev->srb[request_id]->use_sg == 1) {
 			struct scatterlist *sg = (struct scatterlist *)tw_dev->srb[request_id]->request_buffer;
-			char *buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
+			char *buf;
+			unsigned long flags = 0;
+			local_irq_save(flags);
+			buf = kmap_atomic(sg->page, KM_IRQ0) + sg->offset;
 			memcpy(buf, tw_dev->generic_buffer_virt[request_id], sg->length);
 			kunmap_atomic(buf - sg->offset, KM_IRQ0);
+			local_irq_restore(flags);
 		}
 	}
 } /* End twa_scsiop_execute_scsi_complete() */

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

* Re: [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic
  2006-04-11 18:25 [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic adam radford
@ 2006-04-11 18:53 ` Jeff Garzik
  2006-04-11 19:12   ` adam radford
  0 siblings, 1 reply; 4+ messages in thread
From: Jeff Garzik @ 2006-04-11 18:53 UTC (permalink / raw)
  To: adam radford; +Cc: James Bottomley, SCSI Mailing List

adam radford wrote:
> The attached patch for 2.6.17-rc2 updates the 3ware 9000 driver:
> 
> - Disable local interrupts during kmap/unmap_atomic().
> 
> Signed-off-by: Adam Radford <linuxraid@amcc.com>
> 
> James, Please apply
> 
> Thanks!
> 
> -Adam
> 
> Note: The patch is attached as an attachment, and also included
> in-line below.   The below may have line-wrap issues since I'm pasting
> into gmail.

I saw the fix go into 2.6.17-rc1-git on git-commits-head list.  Please 
check out the latest linux-2.6.git and send a patch against what's in 
there...

	Jeff




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

* Re: [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic
  2006-04-11 18:53 ` Jeff Garzik
@ 2006-04-11 19:12   ` adam radford
  2006-04-11 19:25     ` Jeff Garzik
  0 siblings, 1 reply; 4+ messages in thread
From: adam radford @ 2006-04-11 19:12 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: James Bottomley, SCSI Mailing List

On 4/11/06, Jeff Garzik <jeff@garzik.org> wrote:
> I saw the fix go into 2.6.17-rc1-git on git-commits-head list.  Please
> check out the latest linux-2.6.git and send a patch against what's in
> there...
>
>         Jeff
>

Jeff,

The patch in 2.6.17-rc1-git5 is for the 3w-xxxx driver, which is fine.
The patch I sent is the same fix for the 3w-9xxx driver.

-Adam

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

* Re: [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic
  2006-04-11 19:12   ` adam radford
@ 2006-04-11 19:25     ` Jeff Garzik
  0 siblings, 0 replies; 4+ messages in thread
From: Jeff Garzik @ 2006-04-11 19:25 UTC (permalink / raw)
  To: adam radford; +Cc: James Bottomley, SCSI Mailing List

adam radford wrote:
> On 4/11/06, Jeff Garzik <jeff@garzik.org> wrote:
>> I saw the fix go into 2.6.17-rc1-git on git-commits-head list.  Please
>> check out the latest linux-2.6.git and send a patch against what's in
>> there...
>>
>>         Jeff
>>
> 
> Jeff,
> 
> The patch in 2.6.17-rc1-git5 is for the 3w-xxxx driver, which is fine.
> The patch I sent is the same fix for the 3w-9xxx driver.

Ah!  Ignore me, then :)

	Jeff




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

end of thread, other threads:[~2006-04-11 19:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-11 18:25 [PATCH 1/1] 3ware 9000 disable local irqs during kmap_atomic adam radford
2006-04-11 18:53 ` Jeff Garzik
2006-04-11 19:12   ` adam radford
2006-04-11 19:25     ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).