Commit e402ee09 authored by Chaohai Chen's avatar Chaohai Chen Committed by Martin K. Petersen
Browse files

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: default avatarChaohai Chen <wdhh6@aliyun.com>
Link: https://lore.kernel.org/r/20250226065802.234144-1-wdhh6@aliyun.com


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent ffd6c179
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -510,22 +510,34 @@ void scsi_attach_vpd(struct scsi_device *sdev)
		return;

	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);
		if (vpd_buf->data[i] == 0x80)
			break;
		case 0x80:
			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);
		if (vpd_buf->data[i] == 0x89)
			break;
		case 0x89:
			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);
		if (vpd_buf->data[i] == 0xb1)
			break;
		case 0xb1:
			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);
		if (vpd_buf->data[i] == 0xb7)
			break;
		case 0xb7:
			scsi_update_vpd_page(sdev, 0xb7, &sdev->vpd_pgb7);
			break;
		default:
			break;
		}
	}
	kfree(vpd_buf);
}