/*
* Tuning suggestions on these parameters should go to
- * dm-devel@redhat.com
- *
+ * dm-devel@redhat.com (subscribers-only, see README)
+ *
* You are welcome to claim maintainership over a controller
* family. Please mail the currently enlisted maintainer and
* the upstream package maintainer.
+ *
+ * Please, use the TEMPLATE below to add new hardware.
+ *
+ * WARNING:
+ *
+ * Devices with a proprietary handler must also be included in
+ * the kernel side. Currently at drivers/scsi/scsi_dh.c
*/
static struct hwentry default_hw[] = {
/*
- * Apple controller family
+ * Apple
*
* Maintainer : Shyam Sundar
* Mail : g.shyamsundar@yahoo.co.in
*/
{
- .vendor = "APPLE*",
- .product = "Xserve RAID ",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .vendor = "APPLE",
+ .product = "Xserve RAID",
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DEFAULT_CHECKER,
- .prio_name = DEFAULT_PRIO,
},
/*
- * StorageWorks controller family
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
+ * HPE
*/
{
.vendor = "3PARdata",
.product = "VV",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
- .pgpolicy = MULTIBUS,
- .pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DEFAULT_CHECKER,
- .prio_name = DEFAULT_PRIO,
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .hwhandler = "1 alua",
+ .prio_name = PRIO_ALUA,
+ .no_path_retry = 18,
},
{
+ /* RA8000 / ESA12000 */
.vendor = "DEC",
.product = "HSG80",
- .getuid = DEFAULT_GETUID,
.features = "1 queue_if_no_path",
- .hwhandler = "1 hp-sw",
- .selector = DEFAULT_SELECTOR,
+ .hwhandler = "1 hp_sw",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
.checker_name = HP_SW,
.prio_name = PRIO_HP_SW,
},
{
+ /* VIRTUAL ARRAY 7400 */
.vendor = "HP",
.product = "A6189A",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
},
{
- /* MSA 1000/MSA1500 EVA 3000/5000 with old firmware */
+ /* MSA 1000/1500 and EVA 3000/5000, with old firmware */
.vendor = "(COMPAQ|HP)",
- .product = "(MSA|HSV)1.0.*",
- .getuid = DEFAULT_GETUID,
+ .product = "(MSA|HSV)1[01]0",
.features = "1 queue_if_no_path",
- .hwhandler = "1 hp-sw",
- .selector = DEFAULT_SELECTOR,
+ .hwhandler = "1 hp_sw",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
+ .minio = 100,
.checker_name = HP_SW,
.prio_name = PRIO_HP_SW,
},
{
/* MSA 1000/1500 with new firmware */
- .vendor = "HP",
+ .vendor = "(COMPAQ|HP)",
.product = "MSA VOLUME",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
+ .minio = 100,
.prio_name = PRIO_ALUA,
},
{
- .vendor = "HP",
- .product = "MSA2000s*",
- .getuid = "/sbin/cciss_id %n",
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
+ .vendor = "(COMPAQ|HP)",
+ .product = "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
},
{
- /* EVA 3000/5000 with new firmware, EVA 4000/6000/8000 */
- .vendor = "(COMPAQ|HP)",
- .product = "HSV1[01]1|HSV2[01]0|HSV300",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ /* MSA2000 family with old firmware */
+ .vendor = "HP",
+ .product = "(MSA2[02]12fc|MSA2012i)",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .no_path_retry = 18,
+ .minio = 100,
+ },
+ {
+ /* MSA2000 family with new firmware */
+ .vendor = "HP",
+ .product = "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
+ .no_path_retry = 18,
+ .minio = 100,
.prio_name = PRIO_ALUA,
},
{
- /* HP MSA2000 product family */
+ /* MSA 1040/2040 family */
.vendor = "HP",
- .product = "MSA2[02]12*",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
- .pgpolicy = MULTIBUS,
+ .product = "MSA [12]040 SA[NS]",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 18,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
+ },
+ {
+ /* SAN Virtualization Services Platform */
+ .vendor = "HP",
+ .product = "HSVX700",
+ .hwhandler = "1 alua",
+ .pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
},
{
- /* HP Smart Array */
+ /* Smart Array */
.vendor = "HP",
- .product = "LOGICAL VOLUME.*",
- .getuid = "/lib/udev/scsi_id -n -g -u -s /block/%n",
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .product = "LOGICAL VOLUME",
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = 12,
- .minio = DEFAULT_MINIO,
- .checker_name = CCISS_TUR,
- .prio_name = DEFAULT_PRIO,
+ },
+ {
+ /* P2000 family */
+ .vendor = "HP",
+ .product = "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 18,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
},
/*
- * DDN controller family
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
+ * DataDirect Networks
*/
{
.vendor = "DDN",
.product = "SAN DataDirector",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
},
/*
- * EMC / Clariion controller family
- *
- * Maintainer : Edward Goggin, EMC
- * Mail : egoggin@emc.com
+ * EMC
*/
{
+ /* Symmetrix / DMX / VMAX */
.vendor = "EMC",
.product = "SYMMETRIX",
- .getuid = "/lib/udev/scsi_id -g -u -ppre-spc3-83 -s /block/%n",
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
+ .no_path_retry = 6,
},
{
- .vendor = "DGC",
- .product = ".*",
+ /* DGC CLARiiON CX/AX and EMC VNX */
+ .vendor = "^DGC",
+ .product = "^(RAID|DISK|VRAID)",
.bl_product = "LUNZ",
- .getuid = DEFAULT_GETUID,
.features = "1 queue_if_no_path",
.hwhandler = "1 emc",
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = (300 / DEFAULT_CHECKINT),
- .minio = DEFAULT_MINIO,
.checker_name = EMC_CLARIION,
.prio_name = PRIO_EMC,
},
+ {
+ /* Invista / VPLEX */
+ .vendor = "EMC",
+ .product = "Invista",
+ .bl_product = "LUNZ",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .no_path_retry = 5,
+ },
+ {
+ .vendor = "XtremIO",
+ .product = "XtremApp",
+ .selector = "queue-length 0",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ },
/*
- * Fujitsu controller family
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
+ * DELL
+ */
+ {
+ .vendor = "COMPELNT",
+ .product = "Compellent Vol",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .no_path_retry = NO_PATH_RETRY_QUEUE,
+ },
+ {
+ .vendor = "DELL",
+ .product = "MD3000",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ .vendor = "DELL",
+ .product = "(MD32xx|MD36xx)",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ .vendor = "DELL",
+ .product = "(MD34xx|MD38xx)",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ /*
+ * Fujitsu
*/
{
.vendor = "FSC",
.product = "CentricStor",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_SERIAL,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
+ },
+ {
+ .vendor = "FUJITSU",
+ .product = "ETERNUS_DX(H|L|M|400|8000)",
+ .features = "1 queue_if_no_path",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 10,
+ .prio_name = PRIO_ALUA,
+ },
+ {
+ /* FibreCAT S80 */
+ .vendor = "(EUROLOGC|EuroLogc)",
+ .product = "FC2502",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
},
/*
- * Hitachi controller family
+ * Hitachi
*
* Maintainer : Matthias Rudolph
* Mail : matthias.rudolph@hds.com
*/
{
+ /* USP-V, HUS VM, VSP, VSP G1000 and VSP GX00 families */
.vendor = "(HITACHI|HP)",
- .product = "OPEN-.*",
- .getuid = DEFAULT_GETUID,
- .features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .product = "^OPEN-",
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
},
{
+ /* AMS 2000 and HUS 100 families */
.vendor = "HITACHI",
- .product = "DF.*",
- .getuid = DEFAULT_GETUID,
+ .product = "^DF",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
.prio_name = PRIO_HDS,
},
/*
- * IBM controller family
+ * IBM
*
- * Maintainer : Hannes Reinecke, SuSE
+ * Maintainer : Hannes Reinecke
* Mail : hare@suse.de
*/
{
.vendor = "IBM",
.product = "ProFibre 4000R",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
},
{
- /* IBM FAStT 1722-600 */
+ /* DS4300 / FAStT600 */
.vendor = "IBM",
- .product = "1722-600",
- .getuid = DEFAULT_GETUID,
- .features = "1 queue_if_no_path",
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .product = "^1722-600",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
- .pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = 300,
- .minio = DEFAULT_MINIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
- /* IBM DS4400 / FAStT700 */
+ /* DS4100 / FAStT100 */
.vendor = "IBM",
- .product = "1742",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .product = "^1724",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
- .pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
- /* IBM DS4700 */
+ /* DS3200 / DS3300 / DS3400 / Boot DS */
.vendor = "IBM",
- .product = "1814",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .product = "^1726",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
+ .no_path_retry = 30,
+ },
+ {
+ /* DS4400 / DS4500 / FAStT700 / FAStT900 */
+ .vendor = "IBM",
+ .product = "^1742",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
- /* IBM DS4800 */
+ /* DS3500 / DS3512 / DS3524 */
.vendor = "IBM",
- .product = "1815",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
+ .product = "^1746",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
.hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ /* DCS3860 */
+ .vendor = "IBM",
+ .product = "^1813",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
+ .no_path_retry = 30,
+ },
+ {
+ /* DS3950 / DS4200 / DS4700 / DS5020 */
+ .vendor = "IBM",
+ .product = "^1814",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
- /* IBM Netfinity Fibre Channel RAID Controller Unit */
+ /* DS4800 */
.vendor = "IBM",
- .product = "3526",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
+ .product = "^1815",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
.hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ /* DS5000 / DS5100 / DS5300 / DCS3700 */
+ .vendor = "IBM",
+ .product = "^1818",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
+ .no_path_retry = 30,
+ },
+ {
+ /* Netfinity Fibre Channel RAID Controller Unit */
+ .vendor = "IBM",
+ .product = "^3526",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
- /* IBM DS4200 / FAStT200 */
+ /* DS4200 / FAStT200 */
.vendor = "IBM",
- .product = "3542",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .product = "^3542",
.pgpolicy = GROUP_BY_SERIAL,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
},
{
- /* IBM ESS F20 aka Shark */
+ /* Enterprise Storage Server / Shark family */
.vendor = "IBM",
- .product = "2105(800|F20)",
- .getuid = DEFAULT_GETUID,
+ .product = "^2105",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_SERIAL,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
},
{
- /* IBM DS6000 */
+ /* DS6000 */
.vendor = "IBM",
- .product = "1750500",
- .getuid = DEFAULT_GETUID,
+ .product = "^1750500",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
.prio_name = PRIO_ALUA,
},
{
- /* IBM DS8000 */
+ /* DS8000 */
.vendor = "IBM",
- .product = "2107900",
- .getuid = DEFAULT_GETUID,
+ .product = "^2107900",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
},
{
- /* IBM SAN Volume Controller */
+ /* Storwize family / SAN Volume Controller / Flex System V7000 */
.vendor = "IBM",
- .product = "2145",
- .getuid = DEFAULT_GETUID,
+ .product = "^2145",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
.prio_name = PRIO_ALUA,
},
{
- /* IBM S/390 ECKD DASD */
.vendor = "IBM",
.product = "S/390 DASD ECKD",
- .bl_product = "S/390.*",
- .getuid = "/sbin/dasdinfo -u -b %n",
+ .bl_product = "S/390",
+ .uid_attribute = "ID_UID",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
},
- /*
- * NETAPP controller family
- *
- * Maintainer : Dave Wysochanski
- * Mail : davidw@netapp.com
- */
{
- .vendor = "NETAPP",
- .product = "LUN.*",
- .getuid = DEFAULT_GETUID,
+ .vendor = "IBM",
+ .product = "S/390 DASD FBA",
+ .bl_product = "S/390",
+ .uid_attribute = "ID_UID",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ },
+ {
+ /* Power RAID */
+ .vendor = "IBM",
+ .product = "^IPR",
+ .features = "1 queue_if_no_path",
+ .hwhandler = "1 alua",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = 128,
- .checker_name = DIRECTIO,
- .prio_name = PRIO_NETAPP,
+ .prio_name = PRIO_ALUA,
},
- /*
- * IBM NSeries (NETAPP) controller family
- *
- * Maintainer : Dave Wysochanski
- * Mail : davidw@netapp.com
- */
{
+ /* SAS RAID Controller Module (RSSM) */
.vendor = "IBM",
- .product = "Nseries.*",
- .getuid = DEFAULT_GETUID,
+ .product = "1820N00",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = NO_PATH_RETRY_QUEUE,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
+ },
+ {
+ /* XIV Storage System */
+ .vendor = "IBM",
+ .product = "2810XIV",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .minio = 15,
+ },
+ /*
+ * IBM Power Virtual SCSI Devices
+ *
+ * Maintainer : Brian King
+ * Mail : brking@linux.vnet.ibm.com
+ */
+ {
+ .vendor = "AIX",
+ .product = "VDASD",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .no_path_retry = (300 / DEFAULT_CHECKINT),
+ },
+ {
+ /* 3303 NVDISK */
+ .vendor = "IBM",
+ .product = "3303[ ]+NVDISK",
+ .pgfailback = FAILBACK_UNDEF,
+ .no_path_retry = (300 / DEFAULT_CHECKINT),
+ },
+ {
+ .vendor = "AIX",
+ .product = "NVDISK",
+ .hwhandler = "1 alua",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
+ .no_path_retry = (300 / DEFAULT_CHECKINT),
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+ * NetApp
+ */
+ {
+ /*
+ * ONTAP family
+ *
+ * Maintainer : Martin George
+ * Mail : marting@netapp.com
+ */
+ .vendor = "NETAPP",
+ .product = "LUN",
+ .features = "3 queue_if_no_path pg_init_retries 50",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .flush_on_last_del = FLUSH_ENABLED,
.minio = 128,
- .checker_name = DIRECTIO,
- .prio_name = PRIO_NETAPP,
+ .dev_loss = MAX_DEV_LOSS_TMO,
+ .prio_name = PRIO_ONTAP,
+ },
+ {
+ /*
+ * SANtricity(RDAC) family
+ *
+ * Maintainer : Sean Stewart
+ * Mail : sean.stewart@netapp.com
+ */
+ .vendor = "(NETAPP|LSI|ENGENIO)",
+ .product = "INF-01-00",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
/*
- * Pillar Data controller family
+ * Nexenta
*
- * Maintainer : Srinivasan Ramani
- * Mail : sramani@pillardata.com
+ * Maintainer : Yacine Kheddache
+ * Mail : yacine@alyseo.com
*/
{
- .vendor = "Pillar",
- .product = "Axiom.*",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
- .pgpolicy = GROUP_BY_PRIO,
+ .vendor = "NEXENTA",
+ .product = "COMSTAR",
+ .features = "1 queue_if_no_path",
+ .pgpolicy = GROUP_BY_SERIAL,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
- .prio_name = PRIO_ALUA,
+ .no_path_retry = 30,
+ .minio = 128,
},
/*
- * SGI arrays
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
+ * SGI
*/
{
.vendor = "SGI",
- .product = "TP9[13]00",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
+ .product = "TP9100",
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
},
{
.vendor = "SGI",
- .product = "TP9[45]00",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .product = "TP9[345]00",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
- .pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
{
+ /* InfiniteStorage ??? */
.vendor = "SGI",
- .product = "IS.*",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .product = "IS",
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
- .pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
.checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
/*
- * STK arrays
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
+ * NEC
+ */
+ {
+ /* M-Series */
+ .vendor = "NEC",
+ .product = "DISK ARRAY",
+ .hwhandler = "1 alua",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+ * Oracle
*/
+ /*
+ * Pillar Data / Oracle FS
+ *
+ * Maintainer : Srinivasan Ramani
+ * Mail : srinivas.ramani@oracle.com
+ */
+ {
+ .vendor = "^Pillar",
+ .product = "^Axiom",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .prio_name = PRIO_ALUA,
+ },
+ {
+ .vendor = "^Oracle",
+ .product = "^Oracle FS",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .prio_name = PRIO_ALUA,
+ },
+ /* Sun - StorageTek */
{
.vendor = "STK",
.product = "OPENstorage D280",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .bl_product = "Universal Xport",
.pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = TUR,
+ .no_path_retry = 30,
+ },
+ {
+ .vendor = "STK",
+ .product = "FLEXLINE 380",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
.prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
- /*
- * SUN arrays
- *
- * Maintainer : Christophe Varoqui
- * Mail : christophe.varoqui@free.fr
- */
{
.vendor = "SUN",
.product = "(StorEdge 3510|T4)",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
- .minio = DEFAULT_MINIO,
- .checker_name = DIRECTIO,
- .prio_name = DEFAULT_PRIO,
+ },
+ {
+ .vendor = "SUN",
+ .product = "STK6580_6780",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ /* 6140 */
+ .vendor = "SUN",
+ .product = "CSM200_R",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ /* 2510 / 2530 / 2540 */
+ .vendor = "SUN",
+ .product = "LCSM100_[IEFS]",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
+ },
+ {
+ .vendor = "SUN",
+ .product = "SUN_6180",
+ .bl_product = "Universal Xport",
+ .pgpolicy = GROUP_BY_PRIO,
+ .checker_name = RDAC,
+ .features = "2 pg_init_retries 50",
+ .hwhandler = "1 rdac",
+ .prio_name = PRIO_RDAC,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 30,
},
/*
- * Pivot3 RAIGE
+ * Pivot3
*
- * Maintainer : Bart Brooks, Pivot3
+ * Maintainer : Bart Brooks
* Mail : bartb@pivot3.com
*/
{
.vendor = "PIVOT3",
.product = "RAIGE VOLUME",
- .getuid = "/sbin/scsi_id -p 0x80 -g -u -s /block/%n",
.features = "1 queue_if_no_path",
- .hwhandler = DEFAULT_HWHANDLER,
- .selector = DEFAULT_SELECTOR,
.pgpolicy = MULTIBUS,
.pgfailback = FAILBACK_UNDEF,
- .rr_weight = RR_WEIGHT_NONE,
- .no_path_retry = NO_PATH_RETRY_UNDEF,
.minio = 100,
- .checker_name = TUR,
- .prio_name = DEFAULT_PRIO,
},
+ /*
+ * Intel
+ */
{
- .vendor = "SUN",
- .product = "CSM200_R",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .vendor = "(Intel|INTEL)",
+ .product = "Multi-Flex",
+ .hwhandler = "1 alua",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
- .checker_name = RDAC,
- .prio_name = PRIO_RDAC,
+ .prio_name = PRIO_ALUA,
},
- /* SUN/LSI 2540 */
+ /*
+ * Linux-IO Target
+ */
{
- .vendor = "SUN",
- .product = "LCSM100_F",
- .getuid = DEFAULT_GETUID,
- .features = DEFAULT_FEATURES,
- .hwhandler = "1 rdac",
- .selector = DEFAULT_SELECTOR,
+ .vendor = "(LIO-ORG|SUSE)",
+ .product = "RBD",
+ .hwhandler = "1 alua",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 12,
+ .minio = 100,
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+ * DataCore
+ */
+ {
+ .vendor = "DataCore",
+ .product = "SANmelody",
.pgpolicy = GROUP_BY_PRIO,
.pgfailback = -FAILBACK_IMMEDIATE,
- .rr_weight = RR_WEIGHT_NONE,
.no_path_retry = NO_PATH_RETRY_QUEUE,
- .minio = DEFAULT_MINIO,
- .checker_name = RDAC,
- .prio_name = PRIO_RDAC,
+ .prio_name = PRIO_ALUA,
+ },
+ {
+ .vendor = "DataCore",
+ .product = "Virtual Disk",
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = NO_PATH_RETRY_QUEUE,
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+ * Pure Storage
+ */
+ {
+ .vendor = "PURE",
+ .product = "FlashArray",
+ .selector = "queue-length 0",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ .fast_io_fail = 10,
+ .dev_loss = 60,
},
/*
+ * Huawei
+ */
+ {
+ /* OceanStor V3 */
+ .vendor = "(HUAWEI|HUASY)",
+ .product = "XSG1",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ },
+ /*
+ * Red Hat
+ *
+ * Maintainer: Mike Christie
+ * Mail: mchristi@redhat.com
+ */
+ {
+ .vendor = "Ceph",
+ .product = "RBD",
+ .no_path_retry = NO_PATH_RETRY_FAIL,
+ .checker_name = RBD,
+ .deferred_remove = DEFERRED_REMOVE_ON,
+ },
+ /*
+ * Kove
+ */
+ {
+ .vendor = "KOVE",
+ .product = "XPD",
+ .pgpolicy = MULTIBUS,
+ .pgfailback = FAILBACK_UNDEF,
+ },
+#if 0
+ /*
+ * Copy this TEMPLATE to add new hardware.
+ *
+ * Keep only mandatory and modified attributes.
+ * Attributes with default values must be removed.
+ * Only .vendor and .product are mandatory, all other are optional.
+ * .vendor, .product, .revision and .bl_product are POSIX Extended regex
+ *
+ * COMPANY_NAME
+ *
+ * Maintainer : XXX
+ * Mail : XXX
+ */
+ {
+ /* If product-ID is different from marketing name add a comment */
+ .vendor = "VENDOR",
+ .product = "PRODUCT",
+ .revision = "REVISION",
+ .bl_product = "BL_PRODUCT",
+ .pgpolicy = FAILOVER,
+ .uid_attribute = "ID_SERIAL",
+ .selector = "service-time 0",
+ .checker_name = TUR,
+ .features = "0",
+ .hwhandler = "0",
+ .prio_name = "const",
+ .prio_args = "",
+ .pgfailback = -FAILBACK_MANUAL,
+ .rr_weight = RR_WEIGHT_NONE,
+ .no_path_retry = NO_PATH_RETRY_UNDEF,
+ .minio = 1000,
+ .minio_rq = 1,
+ .flush_on_last_del = FLUSH_DISABLED,
+ .fast_io_fail = 5,
+ .dev_loss = 600,
+ .retain_hwhandler = RETAIN_HWHANDLER_ON,
+ .detect_prio = DETECT_PRIO_ON,
+ .deferred_remove = DEFERRED_REMOVE_OFF,
+ .delay_watch_checks = DELAY_CHECKS_OFF,
+ .delay_wait_checks = DELAY_CHECKS_OFF,
+ },
+#endif
+ /*
* EOL
*/
{
.vendor = NULL,
.product = NULL,
- .getuid = NULL,
- .features = NULL,
- .hwhandler = NULL,
- .selector = NULL,
- .pgpolicy = 0,
- .pgfailback = 0,
- .rr_weight = 0,
- .no_path_retry = 0,
- .minio = 0,
- .checker_name = NULL,
- .prio_name = NULL,
},
};
struct hwentry * hwe = default_hw;
while (hwe->vendor) {
- hwe->prio = prio_lookup(hwe->prio_name);
r += store_hwe(hw, hwe);
hwe++;
}