Hello All,
Change Log:
Fixes a data corruption issue. Because of a typo in the driver, IO packets
were wrongly shared by the IOCTL path. This caused the whole IO command
to be replaced by an incoming IOCTL command.
This patch (generated against 2.6.9-rc2) is inlined below.
Sreenivas
---
diff -Naur linux-2.6.9-rc2-mrbug/Documentation/scsi/ChangeLog.megaraid
linux-2.6.9-rc2-fixed/Documentation/scsi/ChangeLog.megaraid
--- linux-2.6.9-rc2-mrbug/Documentation/scsi/ChangeLog.megaraid 2004-09-28
17:31:10.000000000 -0400
+++ linux-2.6.9-rc2-fixed/Documentation/scsi/ChangeLog.megaraid 2004-09-28
17:43:50.000000000 -0400
@@ -1,3 +1,11 @@
+Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker
<[email protected]>
+Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
+Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
+
+i. Fix data corruption. Because of a typo in the driver, the IO packets
+ were wrongly shared by the ioctl path. This causes a whole IO
command
+ to be replaced by an incoming ioctl command.
+
Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker
<[email protected]>
Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
diff -Naur linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.c
linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.c
--- linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.c 2004-09-28
17:31:33.000000000 -0400
+++ linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.c 2004-09-28
17:43:50.000000000 -0400
@@ -10,7 +10,7 @@
* 2 of the License, or (at your option) any later version.
*
* FILE : megaraid_mbox.c
- * Version : v2.20.3.1 (August 24 2004)
+ * Version : v2.20.4 (September 27 2004)
*
* Authors:
* Atul Mukker <[email protected]>
@@ -197,7 +197,7 @@
* ### global data ###
*/
static uint8_t megaraid_mbox_version[8] =
- { 0x02, 0x20, 0x02, 0x00, 7, 22, 20, 4 };
+ { 0x02, 0x20, 0x04, 0x00, 9, 27, 20, 4 };
/*
@@ -3562,7 +3562,7 @@
for (i = 0; i < MBOX_MAX_USER_CMDS; i++) {
scb = adapter->uscb_list + i;
- ccb = raid_dev->ccb_list + i;
+ ccb = raid_dev->uccb_list + i;
scb->ccb = (caddr_t)ccb;
ccb->mbox64 = raid_dev->umbox64 + i;
diff -Naur linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.h
linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.h
--- linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.h 2004-09-28
17:31:33.000000000 -0400
+++ linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.h 2004-09-28
17:43:50.000000000 -0400
@@ -21,8 +21,8 @@
#include "megaraid_ioctl.h"
-#define MEGARAID_VERSION "2.20.3.1"
-#define MEGARAID_EXT_VERSION "(Release Date: Tue Aug 24 09:43:35 EDT
2004)"
+#define MEGARAID_VERSION "2.20.4.0"
+#define MEGARAID_EXT_VERSION "(Release Date: Mon Sep 27 22:15:07 EDT
2004)"
/*
---
James,
Considering the criticality of this fix, we hope it make into the 2.6.9
release candidate as soon as possible. Can you update us with your views on
this.
Thanks
-Atul Mukker
LSI Logic
> -----Original Message-----
> From: Bagalkote, Sreenivas
> Sent: Tuesday, September 28, 2004 9:31 PM
> To: [email protected]; [email protected]
> Cc: [email protected]; Mukker, Atul; 'Andrew Morton';
> [email protected]; Ju, Seokmann; Doelfel, Hardy
> Subject: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
> Hello All,
>
> Change Log:
>
> Fixes a data corruption issue. Because of a typo in the driver, IO packets
> were wrongly shared by the IOCTL path. This caused the whole IO command
> to be replaced by an incoming IOCTL command.
>
> This patch (generated against 2.6.9-rc2) is inlined below.
>
> Sreenivas
>
> ---
> diff -Naur linux-2.6.9-rc2-mrbug/Documentation/scsi/ChangeLog.megaraid
> linux-2.6.9-rc2-fixed/Documentation/scsi/ChangeLog.megaraid
> --- linux-2.6.9-rc2-mrbug/Documentation/scsi/ChangeLog.megaraid
2004-09-
> 28 17:31:10.000000000 -0400
> +++ linux-2.6.9-rc2-fixed/Documentation/scsi/ChangeLog.megaraid
2004-09-
> 28 17:43:50.000000000 -0400
> @@ -1,3 +1,11 @@
> +Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker
> <[email protected]>
> +Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
> +Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
> +
> +i. Fix data corruption. Because of a typo in the driver, the IO packets
> + were wrongly shared by the ioctl path. This causes a whole IO
> command
> + to be replaced by an incoming ioctl command.
> +
> Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker
> <[email protected]>
> Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
> Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
> diff -Naur linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.c
> linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.c
> --- linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.c
2004-09-
> 28 17:31:33.000000000 -0400
> +++ linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.c
2004-09-
> 28 17:43:50.000000000 -0400
> @@ -10,7 +10,7 @@
> * 2 of the License, or (at your option) any later version.
> *
> * FILE : megaraid_mbox.c
> - * Version : v2.20.3.1 (August 24 2004)
> + * Version : v2.20.4 (September 27 2004)
> *
> * Authors:
> * Atul Mukker <[email protected]>
> @@ -197,7 +197,7 @@
> * ### global data ###
> */
> static uint8_t megaraid_mbox_version[8] =
> - { 0x02, 0x20, 0x02, 0x00, 7, 22, 20, 4 };
> + { 0x02, 0x20, 0x04, 0x00, 9, 27, 20, 4 };
>
>
> /*
> @@ -3562,7 +3562,7 @@
> for (i = 0; i < MBOX_MAX_USER_CMDS; i++) {
>
> scb = adapter->uscb_list + i;
> - ccb = raid_dev->ccb_list + i;
> + ccb = raid_dev->uccb_list + i;
>
> scb->ccb = (caddr_t)ccb;
> ccb->mbox64 = raid_dev->umbox64 + i;
> diff -Naur linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.h
> linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.h
> --- linux-2.6.9-rc2-mrbug/drivers/scsi/megaraid/megaraid_mbox.h
2004-09-
> 28 17:31:33.000000000 -0400
> +++ linux-2.6.9-rc2-fixed/drivers/scsi/megaraid/megaraid_mbox.h
2004-09-
> 28 17:43:50.000000000 -0400
> @@ -21,8 +21,8 @@
> #include "megaraid_ioctl.h"
>
>
> -#define MEGARAID_VERSION "2.20.3.1"
> -#define MEGARAID_EXT_VERSION "(Release Date: Tue Aug 24 09:43:35 EDT
> 2004)"
> +#define MEGARAID_VERSION "2.20.4.0"
> +#define MEGARAID_EXT_VERSION "(Release Date: Mon Sep 27 22:15:07 EDT
> 2004)"
>
>
> /*
> ---
On Wed, 2004-09-29 at 17:28, Mukker, Atul wrote:
> Considering the criticality of this fix, we hope it make into the 2.6.9
> release candidate as soon as possible. Can you update us with your views on
> this.
The attached patch is mangled by the emailer...do you have a pristine
version?
James
James
You should be getting it as an attachment soon.
Thanks
-Atul
> -----Original Message-----
> From: James Bottomley [mailto:[email protected]]
> Sent: Wednesday, September 29, 2004 11:16 PM
> To: Mukker, Atul
> Cc: Bagalkote, Sreenivas; '[email protected]'; 'linux-
> [email protected]'; '[email protected]'; 'Andrew Morton';
> '[email protected]'
> Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
> On Wed, 2004-09-29 at 17:28, Mukker, Atul wrote:
> > Considering the criticality of this fix, we hope it make into the 2.6.9
> > release candidate as soon as possible. Can you update us with your views
> on
> > this.
>
> The attached patch is mangled by the emailer...do you have a pristine
> version?
>
> James
James,
The submitted previous version of megaraid (2.20.3.1) had
register_ioctl32_conversion & unregister_ioctl32_conversion
defined to empty statements if CONFIG_COMPAT was _not_
defined.
But I think the preferred way was to have the occurances of
(un)register_ioctl32_conversion in the code surrounded by
#ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
only register_ioctl32_conversion has these #ifdef .. #endif. The
unregister_ioctl32_conversion doesn't.
This patch should take care of that.
Thanks,
Sreenivas
---
diff -Naur linux-error/drivers/scsi/megaraid/megaraid_mm.c
linux-fixed/drivers/scsi/megaraid/megaraid_mm.c
--- linux-error/drivers/scsi/megaraid/megaraid_mm.c 2004-10-01
08:42:09.999572008 -0700
+++ linux-fixed/drivers/scsi/megaraid/megaraid_mm.c 2004-10-01
08:42:51.383280728 -0700
@@ -1151,7 +1151,9 @@
con_log(CL_DLEVEL1 , ("exiting common mod\n"));
unregister_chrdev(majorno, "megadev");
+#ifdef CONFIG_COMPAT
unregister_ioctl32_conversion(MEGAIOCCMD);
+#endif
}
module_init(mraid_mm_init);
---
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Wednesday, September 29, 2004 11:16 PM
>To: Mukker, Atul
>Cc: Bagalkote, Sreenivas; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Wed, 2004-09-29 at 17:28, Mukker, Atul wrote:
>> Considering the criticality of this fix, we hope it make
>into the 2.6.9
>> release candidate as soon as possible. Can you update us
>with your views on
>> this.
>
>The attached patch is mangled by the emailer...do you have a pristine
>version?
>
>James
>
>
On Fri, 2004-10-01 at 16:08, Bagalkote, Sreenivas wrote:
> The submitted previous version of megaraid (2.20.3.1) had
> register_ioctl32_conversion & unregister_ioctl32_conversion
> defined to empty statements if CONFIG_COMPAT was _not_
> defined.
> But I think the preferred way was to have the occurances of
> (un)register_ioctl32_conversion in the code surrounded by
> #ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
> only register_ioctl32_conversion has these #ifdef .. #endif. The
> unregister_ioctl32_conversion doesn't.
Actually, because of the way linux/ioctl32 defines these, the #ifdef
CONFIG_COMPAT is unnecessary even around register_ioctl32_...
James
On Fri, 2004-10-01 at 16:32, Bagalkote, Sreenivas wrote:
> Without CONFIG_COMPAT around them, I get "unresolved symbol"
> for (un)register_ioctl32_conversion while loading the module.
Not in the latest -bk or -mm kernels if you check. The primitives to
allow this were added to include/linux/ioctl32.h
James
Without CONFIG_COMPAT around them, I get "unresolved symbol"
for (un)register_ioctl32_conversion while loading the module.
Thanks,
Sreenivas
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Friday, October 01, 2004 4:24 PM
>To: Bagalkote, Sreenivas
>Cc: Mukker, Atul; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'; Ju, Seokmann
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Fri, 2004-10-01 at 16:08, Bagalkote, Sreenivas wrote:
>> The submitted previous version of megaraid (2.20.3.1) had
>> register_ioctl32_conversion & unregister_ioctl32_conversion
>> defined to empty statements if CONFIG_COMPAT was _not_
>> defined.
>
>
>> But I think the preferred way was to have the occurances of
>> (un)register_ioctl32_conversion in the code surrounded by
>> #ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
>> only register_ioctl32_conversion has these #ifdef .. #endif. The
>> unregister_ioctl32_conversion doesn't.
>
>Actually, because of the way linux/ioctl32 defines these, the #ifdef
>CONFIG_COMPAT is unnecessary even around register_ioctl32_...
>
>James
>
>
On Fri, 2004-10-01 at 16:08, Bagalkote, Sreenivas wrote:
> The submitted previous version of megaraid (2.20.3.1) had
> register_ioctl32_conversion & unregister_ioctl32_conversion
> defined to empty statements if CONFIG_COMPAT was _not_
> defined.
I know that. However, when the empty statements were added to
ioctl32.h, those had to be taken out of the megaraid driver. That's
this patch in the scsi-misc-2.6 tree:
[PATCH] megaraid warning fix
The ioctl32 conversion registration stubs are in ioctl32.h now.
Signed-off-by: Andrew Morton <[email protected]>
> But I think the preferred way was to have the occurances of
> (un)register_ioctl32_conversion in the code surrounded by
> #ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
> only register_ioctl32_conversion has these #ifdef .. #endif. The
> unregister_ioctl32_conversion doesn't.
The current preferred way is to use the empty definitions in
linux/ioctl32.h which means there's no necessity for adding the #ifdef
CONFIG_COMPAT. The correct thing is to remove the #ifdef CONFIG_COMPAT
from around the register_ioctl32... part.
James
Understood. Thank you. I verified that module loads fine even without
CONFIG_COMPAT.
Thanks,
Sreenivas
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Friday, October 01, 2004 4:58 PM
>To: Bagalkote, Sreenivas
>Cc: Mukker, Atul; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'; Ju, Seokmann
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Fri, 2004-10-01 at 16:08, Bagalkote, Sreenivas wrote:
>> The submitted previous version of megaraid (2.20.3.1) had
>> register_ioctl32_conversion & unregister_ioctl32_conversion
>> defined to empty statements if CONFIG_COMPAT was _not_
>> defined.
>
>I know that. However, when the empty statements were added to
>ioctl32.h, those had to be taken out of the megaraid driver. That's
>this patch in the scsi-misc-2.6 tree:
>
> [PATCH] megaraid warning fix
>
> The ioctl32 conversion registration stubs are in ioctl32.h now.
>
> Signed-off-by: Andrew Morton <[email protected]>
>
>> But I think the preferred way was to have the occurances of
>> (un)register_ioctl32_conversion in the code surrounded by
>> #ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
>> only register_ioctl32_conversion has these #ifdef .. #endif. The
>> unregister_ioctl32_conversion doesn't.
>
>The current preferred way is to use the empty definitions in
>linux/ioctl32.h which means there's no necessity for adding the #ifdef
>CONFIG_COMPAT. The correct thing is to remove the #ifdef CONFIG_COMPAT
>from around the register_ioctl32... part.
>
>James
>
>
James,
Would you please send us your version of megaraid driver that will
most likely go into 2.6.9? We would like baseline your version and
make our internal releases off of that. I appreciate your help.
Thanks,
Sreenivas
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Friday, October 01, 2004 4:58 PM
>To: Bagalkote, Sreenivas
>Cc: Mukker, Atul; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'; Ju, Seokmann
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Fri, 2004-10-01 at 16:08, Bagalkote, Sreenivas wrote:
>> The submitted previous version of megaraid (2.20.3.1) had
>> register_ioctl32_conversion & unregister_ioctl32_conversion
>> defined to empty statements if CONFIG_COMPAT was _not_
>> defined.
>
>I know that. However, when the empty statements were added to
>ioctl32.h, those had to be taken out of the megaraid driver. That's
>this patch in the scsi-misc-2.6 tree:
>
> [PATCH] megaraid warning fix
>
> The ioctl32 conversion registration stubs are in ioctl32.h now.
>
> Signed-off-by: Andrew Morton <[email protected]>
>
>> But I think the preferred way was to have the occurances of
>> (un)register_ioctl32_conversion in the code surrounded by
>> #ifdef CONFIG_COMPAT ... #endif directly. In the kernel source
>> only register_ioctl32_conversion has these #ifdef .. #endif. The
>> unregister_ioctl32_conversion doesn't.
>
>The current preferred way is to use the empty definitions in
>linux/ioctl32.h which means there's no necessity for adding the #ifdef
>CONFIG_COMPAT. The correct thing is to remove the #ifdef CONFIG_COMPAT
>from around the register_ioctl32... part.
>
>James
>
>
On Fri, 2004-10-01 at 18:52, Bagalkote, Sreenivas wrote:
> Would you please send us your version of megaraid driver that will
> most likely go into 2.6.9? We would like baseline your version and
> make our internal releases off of that. I appreciate your help.
You can get my tree in bitkeeper here
bk://linux-scsi.bkbits.net/scsi-misc-2.6
Or, you can get it (with a slight time lag) in the -mm tree:
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
James
James,
The latest megaraid driver on bk://linux-scsi.bkbits.net/scsi-misc-2.6 still
has
CONFIG_COMPAT around register_ioctl32_conversion. Will it remain in the
source
or should it go?
Thanks,
Sreenivas
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Friday, October 01, 2004 7:09 PM
>To: Bagalkote, Sreenivas
>Cc: Mukker, Atul; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'; Ju, Seokmann
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Fri, 2004-10-01 at 18:52, Bagalkote, Sreenivas wrote:
>> Would you please send us your version of megaraid driver that will
>> most likely go into 2.6.9? We would like baseline your version and
>> make our internal releases off of that. I appreciate your help.
>
>You can get my tree in bitkeeper here
>
>bk://linux-scsi.bkbits.net/scsi-misc-2.6
>
>Or, you can get it (with a slight time lag) in the -mm tree:
>
>http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/
>
>James
>
>
On Tue, 2004-10-05 at 14:15, Bagalkote, Sreenivas wrote:
> The latest megaraid driver on bk://linux-scsi.bkbits.net/scsi-misc-2.6 still
> has
> CONFIG_COMPAT around register_ioctl32_conversion. Will it remain in the
> source
> or should it go?
I'd like to see a patch taking it out, please.
James
James,
Here is the patch that removes the CONFIG_COMPAT.
Thank you,
Sreenivas
---
diff -Naur megaraid-compat/drivers/scsi/megaraid/megaraid_mm.c
megaraid-nocompat/drivers/scsi/megaraid/megaraid_mm.c
--- megaraid-compat/drivers/scsi/megaraid/megaraid_mm.c 2004-09-28
17:33:58.000000000 -0400
+++ megaraid-nocompat/drivers/scsi/megaraid/megaraid_mm.c 2004-10-06
10:52:58.704174728 -0400
@@ -10,7 +10,7 @@
* 2 of the License, or (at your option) any later version.
*
* FILE : megaraid_mm.c
- * Version : v2.20.2.0 (August 19 2004)
+ * Version : v2.20.2.1 (Oct 06 2004)
*
* Common management module
*/
@@ -60,7 +60,7 @@
EXPORT_SYMBOL(mraid_mm_unregister_adp);
static int majorno;
-static uint32_t drvr_ver = 0x02200100;
+static uint32_t drvr_ver = 0x02200201;
static int adapters_count_g;
static struct list_head adapters_list_g;
@@ -1120,9 +1120,7 @@
INIT_LIST_HEAD(&adapters_list_g);
-#ifdef CONFIG_COMPAT
register_ioctl32_conversion(MEGAIOCCMD, mraid_mm_compat_ioctl);
-#endif
return 0;
}
diff -Naur megaraid-compat/drivers/scsi/megaraid/megaraid_mm.h
megaraid-nocompat/drivers/scsi/megaraid/megaraid_mm.h
--- megaraid-compat/drivers/scsi/megaraid/megaraid_mm.h 2004-09-28
17:33:58.000000000 -0400
+++ megaraid-nocompat/drivers/scsi/megaraid/megaraid_mm.h 2004-10-06
11:12:53.064604344 -0400
@@ -29,9 +29,9 @@
#include "megaraid_ioctl.h"
-#define LSI_COMMON_MOD_VERSION "2.20.2.0"
+#define LSI_COMMON_MOD_VERSION "2.20.2.1"
#define LSI_COMMON_MOD_EXT_VERSION \
- "(Release Date: Thu Aug 19 09:58:33 EDT 2004)"
+ "(Release Date: Wed Oct 06 11:15:29 EDT 2004)"
#define LSI_DBGLVL dbglevel
---
>-----Original Message-----
>From: James Bottomley [mailto:[email protected]]
>Sent: Tuesday, October 05, 2004 3:28 PM
>To: Bagalkote, Sreenivas
>Cc: Mukker, Atul; '[email protected]';
>'[email protected]'; '[email protected]'; 'Andrew Morton';
>'[email protected]'; Ju, Seokmann
>Subject: RE: [PATCH]: megaraid 2.20.4: Fixes a data corruption bug
>
>
>On Tue, 2004-10-05 at 14:15, Bagalkote, Sreenivas wrote:
>> The latest megaraid driver on
>bk://linux-scsi.bkbits.net/scsi-misc-2.6 still
>> has
>> CONFIG_COMPAT around register_ioctl32_conversion. Will it
>remain in the
>> source
>> or should it go?
>
>I'd like to see a patch taking it out, please.
>
>James
>
>