From 81f3845f34bc3c647ea333265c830e7d91329c1b Mon Sep 17 00:00:00 2001 From: Eduard Shishkin Date: Tue, 5 Nov 2024 14:15:07 +0100 Subject: [PATCH] zipl/src: Use definitions for the fixed string values Use definitions for the fixed string values provided by util_proc Suggested-by: Steffen Eiden Signed-off-by: Eduard Shishkin Reviewed-by: Steffen Eiden Signed-off-by: Steffen Eiden --- include/lib/util_proc.h | 7 ++++++- zipl/src/disk.c | 21 ++++++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/include/lib/util_proc.h b/include/lib/util_proc.h index 706f800b..2f544f65 100644 --- a/include/lib/util_proc.h +++ b/include/lib/util_proc.h @@ -14,7 +14,6 @@ #include #include - struct util_proc_part_entry { dev_t device; size_t blockcount; @@ -27,6 +26,12 @@ struct util_proc_dev_entry { char *name; }; +#define UTIL_PROC_DEV_ENTRY_DASD "dasd" +#define UTIL_PROC_DEV_ENTRY_VIRTBLK "virtblk" +#define UTIL_PROC_DEV_ENTRY_SD "sd" +#define UTIL_PROC_DEV_ENTRY_BLKEXT "blkext" +#define UTIL_PROC_DEV_ENTRY_MD "md" + int util_proc_part_get_entry(dev_t device, struct util_proc_part_entry *entry); void util_proc_part_free_entry(struct util_proc_part_entry *entry); int util_proc_dev_get_entry(dev_t dev, int blockdev, diff --git a/zipl/src/disk.c b/zipl/src/disk.c index fbbf1f91..3fc71626 100644 --- a/zipl/src/disk.c +++ b/zipl/src/disk.c @@ -406,7 +406,7 @@ static int disk_set_info_auto(struct disk_info *data, data->partnum = stats->st_rdev & DASD_PARTN_MASK; data->device = stats->st_rdev & ~DASD_PARTN_MASK; } - } else if (strcmp(data->drv_name, "dasd") == 0) { + } else if (strcmp(data->drv_name, UTIL_PROC_DEV_ENTRY_DASD) == 0) { /* Driver name is 'dasd' */ if (ioctl(fd, BIODASDINFO, &dasd_info)) { error_reason("Could not determine DASD type"); @@ -417,15 +417,15 @@ static int disk_set_info_auto(struct disk_info *data, return -1; data->partnum = stats->st_rdev & DASD_PARTN_MASK; data->device = stats->st_rdev & ~DASD_PARTN_MASK; - } else if (strcmp(data->drv_name, "sd") == 0) { + } else if (strcmp(data->drv_name, UTIL_PROC_DEV_ENTRY_SD) == 0) { /* Driver name is 'sd' */ data->devno = -1; data->type = disk_type_scsi; data->partnum = stats->st_rdev & SCSI_PARTN_MASK; data->device = stats->st_rdev & ~SCSI_PARTN_MASK; - } else if (strcmp(data->drv_name, "virtblk") == 0) { - + } else if (strcmp(data->drv_name, UTIL_PROC_DEV_ENTRY_VIRTBLK) == 0) { + /* Driver name is 'virtblk' */ if (ioctl(fd, HDIO_GETGEO, &data->geo) != 0) perror("Could not retrieve disk geometry information."); if (ioctl(fd, BLKSSZGET, &data->phy_block_size) != 0) @@ -436,9 +436,9 @@ static int disk_set_info_auto(struct disk_info *data, "determined."); return -1; } - /* NVMe path, driver name is 'blkext' */ - } else if (strcmp(data->drv_name, "blkext") == 0 && + } else if (strcmp(data->drv_name, UTIL_PROC_DEV_ENTRY_BLKEXT) == 0 && ioctl(fd, NVME_IOCTL_ID) >= 0) { + /* NVMe path, driver name is 'blkext' */ data->devno = -1; data->type = disk_type_scsi; data->is_nvme = 1; @@ -498,10 +498,13 @@ static void set_driver_name(int fd, struct disk_info *info, dev_t device) if (util_proc_dev_get_entry(device, 1, &dev_entry) == 0) { mdu_array_info_t array; - if (strcmp(dev_entry.name, "blkext") == 0 && + if (strcmp(dev_entry.name, UTIL_PROC_DEV_ENTRY_BLKEXT) == 0 && ioctl(fd, GET_ARRAY_INFO, &array) >= 0) - /* it is actually an md-partition */ - info->drv_name = misc_strdup("md"); + /* + * Driver name is 'blkext', + * it is actually an md-partition + */ + info->drv_name = misc_strdup(UTIL_PROC_DEV_ENTRY_MD); else info->drv_name = misc_strdup(dev_entry.name); util_proc_dev_free_entry(&dev_entry);