aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/mfiutil
diff options
context:
space:
mode:
authorDoug Ambrisko <ambrisko@FreeBSD.org>2012-03-28 18:35:07 +0000
committerDoug Ambrisko <ambrisko@FreeBSD.org>2012-03-28 18:35:07 +0000
commit1d8f043a7485a83ae2417337e80d69468c14d8fe (patch)
tree973bd35d869ed7b8e012dfe7155f74edd63ef37f /usr.sbin/mfiutil
parent1c59056b92cf60693bfa622db17f55194904ac2b (diff)
downloadsrc-1d8f043a7485a83ae2417337e80d69468c14d8fe.tar.gz
src-1d8f043a7485a83ae2417337e80d69468c14d8fe.zip
Now that mfi(4) header files uses the absolute number of entries to
make the mfi_array 288 bytes, remove this magic number and the calculations that go with it. Use the MFI_MAX_ROW_SIZE and sizeof(struct mfi_array) in place of the prior calculations. Change reporting a disk as "SYSTEM" when it is a "JBOD" reported by the firmware and MegaCli. A JBOD appears as /dev/mfisyspd<n>. This also means the mfiutil command to "create jbod" is now a little confusing since a RAID per drive is not really what LSI defines JBOD to be. In the future mfiutil should have an option to create real JBOD's and enable that option in RAID controllers that support it. In testing, it appears the RAID cache is not used with JBOD but is with the RAID per disk. When this is implemented more testing should be done to determine the pro's and con's of JBOD versus RAID per disk. Reviewed by: jhb
Notes
Notes: svn path=/projects/head_mfi/; revision=233621
Diffstat (limited to 'usr.sbin/mfiutil')
-rw-r--r--usr.sbin/mfiutil/mfi_config.c7
-rw-r--r--usr.sbin/mfiutil/mfi_drive.c2
2 files changed, 4 insertions, 5 deletions
diff --git a/usr.sbin/mfiutil/mfi_config.c b/usr.sbin/mfiutil/mfi_config.c
index f6f1a9da4223..985bd928e036 100644
--- a/usr.sbin/mfiutil/mfi_config.c
+++ b/usr.sbin/mfiutil/mfi_config.c
@@ -211,9 +211,8 @@ clear_config(int ac, char **av)
}
MFI_COMMAND(top, clear, clear_config);
-#define MFI_ARRAY_SIZE 288
-#define MAX_DRIVES_PER_ARRAY \
- ((MFI_ARRAY_SIZE - sizeof(struct mfi_array)) / 8)
+#define MAX_DRIVES_PER_ARRAY MFI_MAX_ROW_SIZE
+#define MFI_ARRAY_SIZE sizeof(struct mfi_array)
#define RT_RAID0 0
#define RT_RAID1 1
@@ -305,7 +304,7 @@ parse_array(int fd, int raid_type, char *array_str, struct array_info *info)
/* Validate the number of drives for this array. */
if (count >= MAX_DRIVES_PER_ARRAY) {
- warnx("Too many drives for a single array: max is %zu",
+ warnx("Too many drives for a single array: max is %d",
MAX_DRIVES_PER_ARRAY);
return (EINVAL);
}
diff --git a/usr.sbin/mfiutil/mfi_drive.c b/usr.sbin/mfiutil/mfi_drive.c
index 6341fd8b98fe..231b070134cd 100644
--- a/usr.sbin/mfiutil/mfi_drive.c
+++ b/usr.sbin/mfiutil/mfi_drive.c
@@ -149,7 +149,7 @@ mfi_pdstate(enum mfi_pd_state state)
case MFI_PD_STATE_COPYBACK:
return ("COPYBACK");
case MFI_PD_STATE_SYSTEM:
- return ("SYSTEM");
+ return ("JBOD");
default:
sprintf(buf, "PSTATE 0x%04x", state);
return (buf);