diff options
-rw-r--r-- | Documentation/scsi/ChangeLog.megaraid | 55 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_ioctl.h | 4 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_mm.c | 2 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_mm.h | 4 |
4 files changed, 62 insertions, 3 deletions
diff --git a/Documentation/scsi/ChangeLog.megaraid b/Documentation/scsi/ChangeLog.megaraid index 0edb048b2ea4..a056bbe67c7e 100644 --- a/Documentation/scsi/ChangeLog.megaraid +++ b/Documentation/scsi/ChangeLog.megaraid | |||
@@ -66,6 +66,61 @@ Older Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | |||
66 | Fix: MegaRAID F/W has fixed the problem and being process of release, | 66 | Fix: MegaRAID F/W has fixed the problem and being process of release, |
67 | soon. Meanwhile, driver will filter out the request. | 67 | soon. Meanwhile, driver will filter out the request. |
68 | 68 | ||
69 | 3. One of member in the data structure of the driver leads unaligne | ||
70 | issue on 64-bit platform. | ||
71 | Customer reporeted "kernel unaligned access addrss" issue when | ||
72 | application communicates with MegaRAID HBA driver. | ||
73 | Root Cause: in uioc_t structure, one of member had misaligned and it | ||
74 | led system to display the error message. | ||
75 | Fix: A patch submitted to community from following folk. | ||
76 | |||
77 | > -----Original Message----- | ||
78 | > From: linux-scsi-owner@vger.kernel.org | ||
79 | > [mailto:linux-scsi-owner@vger.kernel.org] On Behalf Of Sakurai Hiroomi | ||
80 | > Sent: Wednesday, July 12, 2006 4:20 AM | ||
81 | > To: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org | ||
82 | > Subject: Re: Help: strange messages from kernel on IA64 platform | ||
83 | > | ||
84 | > Hi, | ||
85 | > | ||
86 | > I saw same message. | ||
87 | > | ||
88 | > When GAM(Global Array Manager) is started, The following | ||
89 | > message output. | ||
90 | > kernel: kernel unaligned access to 0xe0000001fe1080d4, | ||
91 | > ip=0xa000000200053371 | ||
92 | > | ||
93 | > The uioc structure used by ioctl is defined by packed, | ||
94 | > the allignment of each member are disturbed. | ||
95 | > In a 64 bit structure, the allignment of member doesn't fit 64 bit | ||
96 | > boundary. this causes this messages. | ||
97 | > In a 32 bit structure, we don't see the message because the allinment | ||
98 | > of member fit 32 bit boundary even if packed is specified. | ||
99 | > | ||
100 | > patch | ||
101 | > I Add 32 bit dummy member to fit 64 bit boundary. I tested. | ||
102 | > We confirmed this patch fix the problem by IA64 server. | ||
103 | > | ||
104 | > ************************************************************** | ||
105 | > **************** | ||
106 | > --- linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h.orig | ||
107 | > 2006-04-03 17:13:03.000000000 +0900 | ||
108 | > +++ linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h | ||
109 | > 2006-04-03 17:14:09.000000000 +0900 | ||
110 | > @@ -132,6 +132,10 @@ | ||
111 | > /* Driver Data: */ | ||
112 | > void __user * user_data; | ||
113 | > uint32_t user_data_len; | ||
114 | > + | ||
115 | > + /* 64bit alignment */ | ||
116 | > + uint32_t pad_0xBC; | ||
117 | > + | ||
118 | > mraid_passthru_t __user *user_pthru; | ||
119 | > | ||
120 | > mraid_passthru_t *pthru32; | ||
121 | > ************************************************************** | ||
122 | > **************** | ||
123 | |||
69 | Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com> | 124 | Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com> |
70 | Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | 125 | Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) |
71 | Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | 126 | Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) |
diff --git a/drivers/scsi/megaraid/megaraid_ioctl.h b/drivers/scsi/megaraid/megaraid_ioctl.h index bdaee144a1c3..b8aa34202ec3 100644 --- a/drivers/scsi/megaraid/megaraid_ioctl.h +++ b/drivers/scsi/megaraid/megaraid_ioctl.h | |||
@@ -132,6 +132,10 @@ typedef struct uioc { | |||
132 | /* Driver Data: */ | 132 | /* Driver Data: */ |
133 | void __user * user_data; | 133 | void __user * user_data; |
134 | uint32_t user_data_len; | 134 | uint32_t user_data_len; |
135 | |||
136 | /* 64bit alignment */ | ||
137 | uint32_t pad_for_64bit_align; | ||
138 | |||
135 | mraid_passthru_t __user *user_pthru; | 139 | mraid_passthru_t __user *user_pthru; |
136 | 140 | ||
137 | mraid_passthru_t *pthru32; | 141 | mraid_passthru_t *pthru32; |
diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c index e8f534fb336b..d85b9a8f1b8d 100644 --- a/drivers/scsi/megaraid/megaraid_mm.c +++ b/drivers/scsi/megaraid/megaraid_mm.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * FILE : megaraid_mm.c | 12 | * FILE : megaraid_mm.c |
13 | * Version : v2.20.2.6 (Mar 7 2005) | 13 | * Version : v2.20.2.7 (Jul 16 2006) |
14 | * | 14 | * |
15 | * Common management module | 15 | * Common management module |
16 | */ | 16 | */ |
diff --git a/drivers/scsi/megaraid/megaraid_mm.h b/drivers/scsi/megaraid/megaraid_mm.h index 3d9e67d6849d..c8762b2b8ed1 100644 --- a/drivers/scsi/megaraid/megaraid_mm.h +++ b/drivers/scsi/megaraid/megaraid_mm.h | |||
@@ -27,9 +27,9 @@ | |||
27 | #include "megaraid_ioctl.h" | 27 | #include "megaraid_ioctl.h" |
28 | 28 | ||
29 | 29 | ||
30 | #define LSI_COMMON_MOD_VERSION "2.20.2.6" | 30 | #define LSI_COMMON_MOD_VERSION "2.20.2.7" |
31 | #define LSI_COMMON_MOD_EXT_VERSION \ | 31 | #define LSI_COMMON_MOD_EXT_VERSION \ |
32 | "(Release Date: Mon Mar 7 00:01:03 EST 2005)" | 32 | "(Release Date: Sun Jul 16 00:01:03 EST 2006)" |
33 | 33 | ||
34 | 34 | ||
35 | #define LSI_DBGLVL dbglevel | 35 | #define LSI_DBGLVL dbglevel |