2013/7/16 Paul Bolle <pebolle@xxxxxxxxxx>: > Building scsi_debug.o triggers a GCC warning: > drivers/scsi/scsi_debug.c: In function ‘dif_verify’: > drivers/scsi/scsi_debug.c:1755:3: warning: ‘csum’ may be used uninitialized in this function [-Wmaybe-uninitialized] > > This is a false positive. But if we transform the switch statement in > dif_compute_csum() to a straightforward if/else statement we supply GCC > with enough information to determine that csum will not be used > uninitialized. > > Signed-off-by: Paul Bolle <pebolle@xxxxxxxxxx> > --- > 0) v2 because I started to worry whether v1 would change an interface > (ie, the way the "guard" module parameter behaves). This patch is much > simpler, and doesn't change any behavior. > > 1) Still only compile tested. This one looks good to me. It would be much better if this commit log had a reference to the commit that introduced this warning as you described after '---' in v1 patch. > drivers/scsi/scsi_debug.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c > index cb4fefa..7565ec5 100644 > --- a/drivers/scsi/scsi_debug.c > +++ b/drivers/scsi/scsi_debug.c > @@ -1735,14 +1735,11 @@ static u16 dif_compute_csum(const void *buf, int len) > { > u16 csum; > > - switch (scsi_debug_guard) { > - case 1: > + if (scsi_debug_guard == 1) > csum = ip_compute_csum(buf, len); > - break; > - case 0: > + else > csum = cpu_to_be16(crc_t10dif(buf, len)); > - break; > - } > + > return csum; > } > > -- > 1.8.1.4 > > -- > 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/ -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html