Re: [PATCH 5/5]scsi:hosts.c Fix warning: variable 'rval' set butnot used

From: Justin P. Mattock
Date: Wed Jun 16 2010 - 14:14:54 EST


On 06/16/2010 10:33 AM, James Bottomley wrote:
On Wed, 2010-06-16 at 09:00 -0700, Justin P. Mattock wrote:
On 06/16/2010 08:34 AM, James Bottomley wrote:
On Tue, 2010-06-15 at 22:33 -0700, Justin P. Mattock wrote:
The below patch fixes a warning message generated by gcc 4.6.0
CC drivers/scsi/hosts.o
drivers/scsi/hosts.c: In function 'scsi_host_alloc':
drivers/scsi/hosts.c:328:6: warning: variable 'rval' set but not used

Signed-off-by: Justin P. Mattock<justinmattock@xxxxxxxxx>

---
drivers/scsi/hosts.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 6660fa9..00fd6a4 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -325,7 +325,6 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
{
struct Scsi_Host *shost;
gfp_t gfp_mask = GFP_KERNEL;
- int rval;

if (sht->unchecked_isa_dma&& privsize)
gfp_mask |= __GFP_DMA;
@@ -420,7 +419,6 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
shost->ehandler = kthread_run(scsi_error_handler, shost,
"scsi_eh_%d", shost->host_no);
if (IS_ERR(shost->ehandler)) {
- rval = PTR_ERR(shost->ehandler);
goto fail_kfree;
}

For future reference, this is less stylistically acceptable C: you've
reduced the if clause to a single statement, so the braces need
removing.

However, I don't think we should be ignoring the fact that the eh thread
failed to spawn, so I think some type of printed warning (giving the
error code) would be a much more appropriate replacement.

James





o.k. I'll give a try at that.. as a test I did this(below) seemed to
compile clean, but not sure if this is what you're asking for though:


From 8a4d6e793e0f92d180a6f48c53bbf00d2751ad01 Mon Sep 17 00:00:00 2001
From: Justin P. Mattock<justinmattock@xxxxxxxxx>
Date: Wed, 16 Jun 2010 08:58:13 -0700
Subject: [PATCH] test
Signed-off-by: Justin P. Mattock<justinmattock@xxxxxxxxx>

---
drivers/scsi/hosts.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 6660fa9..8d98a46 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -325,7 +325,6 @@ struct Scsi_Host *scsi_host_alloc(struct
scsi_host_template *sht, int privsize)
{
struct Scsi_Host *shost;
gfp_t gfp_mask = GFP_KERNEL;
- int rval;

if (sht->unchecked_isa_dma&& privsize)
gfp_mask |= __GFP_DMA;
@@ -420,7 +419,7 @@ struct Scsi_Host *scsi_host_alloc(struct
scsi_host_template *sht, int privsize)
shost->ehandler = kthread_run(scsi_error_handler, shost,
"scsi_eh_%d", shost->host_no);
if (IS_ERR(shost->ehandler)) {
- rval = PTR_ERR(shost->ehandler);
+ printk(KERN_WARNING "test.....\n")

Erm, well, as I said, error code and the fact that the thread failed to
start, so more

printk(KERN_WARNING "scsi%d: error handler thread failed to spawn, error
= %d\n", host->host_no, PTR_ERR(shost->ehandler));

James





yeah I figured the printk needed more. I was more concerned with making sure this is what you are asking for(which looks like it is).
So I added your printk but ended up getting an undeclared error:

CC drivers/scsi/hosts.o
drivers/scsi/hosts.c: In function 'scsi_host_alloc':
drivers/scsi/hosts.c:422:85: error: 'host' undeclared (first use in this function)
drivers/scsi/hosts.c:422:85: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [drivers/scsi/hosts.o] Error 1
make[1]: *** [drivers/scsi] Error 2
make: *** [drivers] Error 2


I do see a
shost->host_no
but using this seems to not satisfy the compiler:

drivers/scsi/hosts.c: In function 'scsi_host_alloc':
drivers/scsi/hosts.c:422:3: warning: format '%d' expects type 'int', but argument 3 has type 'long int'

I guess it's safe to say my newbieness is getting my a** kicked with code(all part of the learning experience..)

Justin P. Mattock
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/