On Wed, Oct 24 2007 at 11:59 +0200, Jean Delvare <[EMAIL PROTECTED]> wrote:
> In 2.6.24-rc1 I see the following warning:
> drivers/scsi/sym53c8xx_2/sym_glue.c: In function "sym_eh_handler":
> drivers/scsi/sym53c8xx_2/sym_glue.c:612: warning: "io_reset" may be used
> uninitialized in this function
>
> Although gcc is wrong and the code is actually correct, it can easily
> be made more obvious to keep the compiler quiet.
>
> Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
> ---
> drivers/scsi/sym53c8xx_2/sym_glue.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> --- linux-2.6.24-rc1.orig/drivers/scsi/sym53c8xx_2/sym_glue.c 2007-10-24
> 09:59:46.000000000 +0200
> +++ linux-2.6.24-rc1/drivers/scsi/sym53c8xx_2/sym_glue.c 2007-10-24
> 11:53:14.000000000 +0200
> @@ -609,8 +609,8 @@ static int sym_eh_handler(int op, char *
> */
> #define WAIT_FOR_PCI_RECOVERY 35
> if (pci_channel_offline(pdev)) {
> - struct completion *io_reset;
> - int finished_reset = 0;
> + struct completion *io_reset = NULL;
> + int finished_reset;
> init_completion(&eh_done);
> spin_lock_irq(shost->host_lock);
> /* Make sure we didn't race */
> @@ -618,15 +618,14 @@ static int sym_eh_handler(int op, char *
> if (!sym_data->io_reset)
> sym_data->io_reset = &eh_done;
> io_reset = sym_data->io_reset;
> - } else {
> - finished_reset = 1;
> }
> spin_unlock_irq(shost->host_lock);
> - if (!finished_reset)
> + if (io_reset) {
> finished_reset = wait_for_completion_timeout(io_reset,
> WAIT_FOR_PCI_RECOVERY*HZ);
> - if (!finished_reset)
> - return SCSI_FAILED;
> + if (!finished_reset)
> + return SCSI_FAILED;
> + }
> }
>
> spin_lock_irq(shost->host_lock);
>
>
I think you should use uninitialized_var and not brute = NULL;
This is because, than uninitialized_var can be tested for in
the future and removed if no longer relevant. And also for
the user of the code it is easier to understand.
Boaz
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html