LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] cciss: firmware version is invalid
@ 2008-11-06 20:12 Tim Gardner
2008-11-06 21:11 ` Stillwell, Bryan
0 siblings, 1 reply; 5+ messages in thread
From: Tim Gardner @ 2008-11-06 20:12 UTC (permalink / raw)
To: mike.miller; +Cc: bryan.stillwell, iss_storagedev, linux-kernel
>From b659b0b0e14f5e3c049bf5c8d2883587cdbfe344 Mon Sep 17 00:00:00 2001
From: Tim Gardner <tim.gardner@canonical.com>
Date: Thu, 6 Nov 2008 12:34:25 -0700
Subject: [PATCH] cciss: Firmware Version is invalid
OriginalAuthor: bryan.stillwell@hp.com
OriginalLocation: http://launchpadlibrarian.net/18582511/cciss_firmware_version_fix.patch
Bug: https://bugs.launchpad.net/bugs/284031
Emit a CISS_INQUIRY command to read the firmware version.
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Cc: stable@kernel.org
---
drivers/block/cciss.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index b73116e..844b806 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -1631,6 +1631,7 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
int ctlr = h->ctlr;
int num_luns;
ReportLunData_struct *ld_buff = NULL;
+ InquiryData_struct *inq_buff = NULL;
int return_code;
int listlength = 0;
int i;
@@ -1651,6 +1652,26 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
h->busy_configuring = 1;
spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
+ inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
+ if (inq_buff == NULL) {
+ printk(KERN_ERR "cciss: out of memory\n");
+ return ENOMEM;
+ }
+
+ /* Get the firmware version */
+ return_code = sendcmd_withirq(CISS_INQUIRY, ctlr, inq_buff,
+ sizeof(InquiryData_struct), 0, 0 ,0, TYPE_CMD);
+ if (return_code == IO_OK) {
+ h->firm_ver[0] = inq_buff->data_byte[32];
+ h->firm_ver[1] = inq_buff->data_byte[33];
+ h->firm_ver[2] = inq_buff->data_byte[34];
+ h->firm_ver[3] = inq_buff->data_byte[35];
+ } else { /* send command failed */
+ printk(KERN_WARNING "cciss: unable to determine firmware"
+ " version of controller\n");
+ }
+
+ /* Get the number of logical volumes */
ld_buff = kzalloc(sizeof(ReportLunData_struct), GFP_KERNEL);
if (ld_buff == NULL)
goto mem_msg;
--
1.5.6.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] cciss: firmware version is invalid
2008-11-06 20:12 [PATCH] cciss: firmware version is invalid Tim Gardner
@ 2008-11-06 21:11 ` Stillwell, Bryan
2008-11-07 14:12 ` Tim Gardner
0 siblings, 1 reply; 5+ messages in thread
From: Stillwell, Bryan @ 2008-11-06 21:11 UTC (permalink / raw)
To: Tim Gardner; +Cc: Miller, Mike (OS Dev), ISS StorageDev, linux-kernel
Tim,
Thanks for getting this merged, but I believe this patch is preferred
over the original one I attached:
http://userweb.kernel.org/~akpm/mmotm/broken-out/cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
The reason for this according to Mike Miller is: "The first fix could be
called anytime something changed on the controller such as number of
logical volumes, etc. This patch will get called only once for each
controller."
Thanks,
Bryan
On Thu, 2008-11-06 at 20:12 +0000, Tim Gardner wrote:
> >From b659b0b0e14f5e3c049bf5c8d2883587cdbfe344 Mon Sep 17 00:00:00 2001
> From: Tim Gardner <tim.gardner@canonical.com>
> Date: Thu, 6 Nov 2008 12:34:25 -0700
> Subject: [PATCH] cciss: Firmware Version is invalid
> OriginalAuthor: bryan.stillwell@hp.com
> OriginalLocation: http://launchpadlibrarian.net/18582511/cciss_firmware_version_fix.patch
> Bug: https://bugs.launchpad.net/bugs/284031
>
> Emit a CISS_INQUIRY command to read the firmware version.
>
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> Cc: stable@kernel.org
> ---
> drivers/block/cciss.c | 21 +++++++++++++++++++++
> 1 files changed, 21 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
> index b73116e..844b806 100644
> --- a/drivers/block/cciss.c
> +++ b/drivers/block/cciss.c
> @@ -1631,6 +1631,7 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
> int ctlr = h->ctlr;
> int num_luns;
> ReportLunData_struct *ld_buff = NULL;
> + InquiryData_struct *inq_buff = NULL;
> int return_code;
> int listlength = 0;
> int i;
> @@ -1651,6 +1652,26 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
> h->busy_configuring = 1;
> spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
>
> + inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
> + if (inq_buff == NULL) {
> + printk(KERN_ERR "cciss: out of memory\n");
> + return ENOMEM;
> + }
> +
> + /* Get the firmware version */
> + return_code = sendcmd_withirq(CISS_INQUIRY, ctlr, inq_buff,
> + sizeof(InquiryData_struct), 0, 0 ,0, TYPE_CMD);
> + if (return_code == IO_OK) {
> + h->firm_ver[0] = inq_buff->data_byte[32];
> + h->firm_ver[1] = inq_buff->data_byte[33];
> + h->firm_ver[2] = inq_buff->data_byte[34];
> + h->firm_ver[3] = inq_buff->data_byte[35];
> + } else { /* send command failed */
> + printk(KERN_WARNING "cciss: unable to determine firmware"
> + " version of controller\n");
> + }
> +
> + /* Get the number of logical volumes */
> ld_buff = kzalloc(sizeof(ReportLunData_struct), GFP_KERNEL);
> if (ld_buff == NULL)
> goto mem_msg;
> --
> 1.5.6.3
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cciss: firmware version is invalid
2008-11-06 21:11 ` Stillwell, Bryan
@ 2008-11-07 14:12 ` Tim Gardner
2008-11-11 0:55 ` Andrew Morton
0 siblings, 1 reply; 5+ messages in thread
From: Tim Gardner @ 2008-11-07 14:12 UTC (permalink / raw)
To: Stillwell, Bryan; +Cc: Miller, Mike (OS Dev), ISS StorageDev, linux-kernel
Stillwell, Bryan wrote:
> Tim,
>
> Thanks for getting this merged, but I believe this patch is preferred
> over the original one I attached:
>
> http://userweb.kernel.org/~akpm/mmotm/broken-out/cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
>
> The reason for this according to Mike Miller is: "The first fix could be
> called anytime something changed on the controller such as number of
> logical volumes, etc. This patch will get called only once for each
> controller."
>
> Thanks,
> Bryan
applied
--
Tim Gardner tim.gardner@canonical.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cciss: firmware version is invalid
2008-11-07 14:12 ` Tim Gardner
@ 2008-11-11 0:55 ` Andrew Morton
2008-11-11 1:29 ` Tim Gardner
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2008-11-11 0:55 UTC (permalink / raw)
To: tim.gardner
Cc: tcanonical, bryan.stillwell, Mike.Miller, iss_storagedev, linux-kernel
On Fri, 07 Nov 2008 07:12:08 -0700
Tim Gardner <tcanonical@tpi.com> wrote:
> Stillwell, Bryan wrote:
> > Tim,
> >
> > Thanks for getting this merged, but I believe this patch is preferred
> > over the original one I attached:
> >
> > http://userweb.kernel.org/~akpm/mmotm/broken-out/cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
> >
> > The reason for this according to Mike Miller is: "The first fix could be
> > called anytime something changed on the controller such as number of
> > logical volumes, etc. This patch will get called only once for each
> > controller."
> >
> > Thanks,
> > Bryan
>
> applied
>
I'm all confused here.
cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
is now in mainline. Are you saying that "cciss: Firmware Version is
invalid" is preferred? That "cciss: Firmware Version is invalid"
should still be applied?
If so, "cciss: Firmware Version is invalid" will need a better title
and changelog, please. The one you have there is pretty skimpy.
reading between the lines, I'm guessing that the driver emits "Firmware
Version is invalid" messages and that this patch somehow fixes that?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cciss: firmware version is invalid
2008-11-11 0:55 ` Andrew Morton
@ 2008-11-11 1:29 ` Tim Gardner
0 siblings, 0 replies; 5+ messages in thread
From: Tim Gardner @ 2008-11-11 1:29 UTC (permalink / raw)
To: Andrew Morton
Cc: tcanonical, bryan.stillwell, Mike.Miller, iss_storagedev, linux-kernel
Andrew Morton wrote:
> On Fri, 07 Nov 2008 07:12:08 -0700
> Tim Gardner <tcanonical@tpi.com> wrote:
>
>> Stillwell, Bryan wrote:
>>> Tim,
>>>
>>> Thanks for getting this merged, but I believe this patch is preferred
>>> over the original one I attached:
>>>
>>> http://userweb.kernel.org/~akpm/mmotm/broken-out/cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
>>>
>>> The reason for this according to Mike Miller is: "The first fix could be
>>> called anytime something changed on the controller such as number of
>>> logical volumes, etc. This patch will get called only once for each
>>> controller."
>>>
>>> Thanks,
>>> Bryan
>> applied
>>
>
> I'm all confused here.
>
> cciss-fix-regression-firmware-not-displayed-in-procfs-again-and-again.patch
> is now in mainline. Are you saying that "cciss: Firmware Version is
> invalid" is preferred? That "cciss: Firmware Version is invalid"
> should still be applied?
>
> If so, "cciss: Firmware Version is invalid" will need a better title
> and changelog, please. The one you have there is pretty skimpy.
> reading between the lines, I'm guessing that the driver emits "Firmware
> Version is invalid" messages and that this patch somehow fixes that?
>
Andrew,
The patch in Linus' repo looks correct, so please drop this one. At the
time I sent the original patch I didn't realize there was another
version already staged for Linus.
rtg
--
Tim Gardner tim.gardner@canonical.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-11-11 1:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-06 20:12 [PATCH] cciss: firmware version is invalid Tim Gardner
2008-11-06 21:11 ` Stillwell, Bryan
2008-11-07 14:12 ` Tim Gardner
2008-11-11 0:55 ` Andrew Morton
2008-11-11 1:29 ` Tim Gardner
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).