| From 0cdc58580b37a160fac4b884266b8b7cb096f539 Mon Sep 17 00:00:00 2001 |
| From: Damien Le Moal <damien.lemoal@wdc.com> |
| Date: Wed, 17 Jul 2019 10:51:49 +0900 |
| Subject: scsi: sd_zbc: Fix compilation warning |
| |
| From: Damien Le Moal <damien.lemoal@wdc.com> |
| |
| commit 0cdc58580b37a160fac4b884266b8b7cb096f539 upstream. |
| |
| kbuild test robot gets the following compilation warning using gcc 7.4 |
| cross compilation for c6x (GCC_VERSION=7.4.0 make.cross ARCH=c6x). |
| |
| In file included from include/asm-generic/bug.h:18:0, |
| from arch/c6x/include/asm/bug.h:12, |
| from include/linux/bug.h:5, |
| from include/linux/thread_info.h:12, |
| from include/asm-generic/current.h:5, |
| from ./arch/c6x/include/generated/asm/current.h:1, |
| from include/linux/sched.h:12, |
| from include/linux/blkdev.h:5, |
| from drivers//scsi/sd_zbc.c:11: |
| drivers//scsi/sd_zbc.c: In function 'sd_zbc_read_zones': |
| >> include/linux/kernel.h:62:48: warning: 'zone_blocks' may be used |
| uninitialized in this function [-Wmaybe-uninitialized] |
| #define __round_mask(x, y) ((__typeof__(x))((y)-1)) |
| ^ |
| drivers//scsi/sd_zbc.c:464:6: note: 'zone_blocks' was declared here |
| u32 zone_blocks; |
| ^~~~~~~~~~~ |
| |
| This is a false-positive report. The variable zone_blocks is always |
| initialized in sd_zbc_check_zones() before use. It is not initialized |
| only and only if sd_zbc_check_zones() fails. |
| |
| Avoid this warning by initializing the zone_blocks variable to 0. |
| |
| Fixes: 5f832a395859 ("scsi: sd_zbc: Fix sd_zbc_check_zones() error checks") |
| Cc: Stable <stable@vger.kernel.org> |
| Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/scsi/sd_zbc.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/scsi/sd_zbc.c |
| +++ b/drivers/scsi/sd_zbc.c |
| @@ -417,7 +417,7 @@ int sd_zbc_read_zones(struct scsi_disk * |
| { |
| struct gendisk *disk = sdkp->disk; |
| unsigned int nr_zones; |
| - u32 zone_blocks; |
| + u32 zone_blocks = 0; |
| int ret; |
| |
| if (!sd_is_zoned(sdkp)) |