]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
installer: Add p suffix to path for mmcblk0 devices, etc.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 4 Sep 2014 08:59:34 +0000 (10:59 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 4 Sep 2014 08:59:34 +0000 (10:59 +0200)
src/installer/hw.c

index 3ec4d75e0e87f3666b81d6ccb63c2d6bdb6a670b..6d3389a6bb4e19b2f78ca20032b5cf3e1bf6f259 100644 (file)
@@ -357,11 +357,26 @@ static unsigned long long hw_boot_size(struct hw_destination* dest) {
        return MB2BYTES(64);
 }
 
+static int hw_device_has_p_suffix(const struct hw_destination* dest) {
+       // All RAID devices have the p suffix.
+       if (dest->is_raid)
+               return 1;
+
+       // Devices with a number at the end have the p suffix, too.
+       // e.g. mmcblk0, cciss0
+       unsigned int last_char = strlen(dest->path);
+       if ((dest->path[last_char] >= '0') && (dest->path[last_char] <= '9'))
+               return 1;
+
+       return 0;
+}
+
 static int hw_calculate_partition_table(struct hw_destination* dest) {
        char path[DEV_SIZE];
        int part_idx = 1;
 
-       snprintf(path, sizeof(path), "%s%s", dest->path, (dest->is_raid) ? "p" : "");
+       snprintf(path, sizeof(path), "%s%s", dest->path,
+               hw_device_has_p_suffix(dest) ? "p" : "");
        dest->part_boot_idx = 0;
 
        // Determine the size of the target block device