scsi: core: Use a switch statement when attaching VPD pages

The original code used if statements to update discovered VPD pages when
found. This had the side-effect of not breaking the loop when a page was
found.

Use an idiomatic switch statement instead.

Signed-off-by: Chaohai Chen <wdhh6@aliyun.com>
Link: https://lore.kernel.org/r/20250226065802.234144-1-wdhh6@aliyun.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Chaohai Chen 2025-02-26 14:58:02 +08:00 committed by Martin K. Petersen
parent ffd6c17928
commit e402ee093f

View file

@ -510,22 +510,34 @@ void scsi_attach_vpd(struct scsi_device *sdev)
return; return;
for (i = 4; i < vpd_buf->len; i++) { for (i = 4; i < vpd_buf->len; i++) {
if (vpd_buf->data[i] == 0x0) switch (vpd_buf->data[i]) {
case 0x0:
scsi_update_vpd_page(sdev, 0x0, &sdev->vpd_pg0); scsi_update_vpd_page(sdev, 0x0, &sdev->vpd_pg0);
if (vpd_buf->data[i] == 0x80) break;
case 0x80:
scsi_update_vpd_page(sdev, 0x80, &sdev->vpd_pg80); scsi_update_vpd_page(sdev, 0x80, &sdev->vpd_pg80);
if (vpd_buf->data[i] == 0x83) break;
case 0x83:
scsi_update_vpd_page(sdev, 0x83, &sdev->vpd_pg83); scsi_update_vpd_page(sdev, 0x83, &sdev->vpd_pg83);
if (vpd_buf->data[i] == 0x89) break;
case 0x89:
scsi_update_vpd_page(sdev, 0x89, &sdev->vpd_pg89); scsi_update_vpd_page(sdev, 0x89, &sdev->vpd_pg89);
if (vpd_buf->data[i] == 0xb0) break;
case 0xb0:
scsi_update_vpd_page(sdev, 0xb0, &sdev->vpd_pgb0); scsi_update_vpd_page(sdev, 0xb0, &sdev->vpd_pgb0);
if (vpd_buf->data[i] == 0xb1) break;
case 0xb1:
scsi_update_vpd_page(sdev, 0xb1, &sdev->vpd_pgb1); scsi_update_vpd_page(sdev, 0xb1, &sdev->vpd_pgb1);
if (vpd_buf->data[i] == 0xb2) break;
case 0xb2:
scsi_update_vpd_page(sdev, 0xb2, &sdev->vpd_pgb2); scsi_update_vpd_page(sdev, 0xb2, &sdev->vpd_pgb2);
if (vpd_buf->data[i] == 0xb7) break;
case 0xb7:
scsi_update_vpd_page(sdev, 0xb7, &sdev->vpd_pgb7); scsi_update_vpd_page(sdev, 0xb7, &sdev->vpd_pgb7);
break;
default:
break;
}
} }
kfree(vpd_buf); kfree(vpd_buf);
} }