Bug #4083
openset allow-bus-device-reset=0; in sd.conf will not take effect when mpxio is enabled
0%
Description
if (un->un_f_is_fibre == TRUE) {
un->un_f_allow_bus_device_reset = TRUE;
} else {
if (ddi_getprop(DDI_DEV_T_ANY, devi, DDI_PROP_DONTPASS,
"allow-bus-device-reset", 1) != 0) {
un->un_f_allow_bus_device_reset = TRUE;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p Bus device reset "
"enabled\\n", un);
} else {
un->un_f_allow_bus_device_reset = FALSE;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p Bus device reset "
"disabled\\n", un);
}
}
/*
* Try to read the interconnect type from the HBA.
*
* Note: This driver is currently compiled as two binaries, a parallel
* scsi version (sd) and a fibre channel version (ssd). All functional
* differences are determined at compile time. In the future a single
* binary will be provided and the interconnect type will be used to
* differentiate between fibre and parallel scsi behaviors. At that time
* it will be necessary for all fibre channel HBAs to support this
* property.
*
* set un_f_is_fiber to TRUE ( default fiber )
*/
un->un_f_is_fibre = TRUE;
switch (scsi_ifgetcap(SD_ADDRESS(un), "interconnect-type", 1)) {>un_interconnect_type = SD_INTERCONNECT_SSA;
case INTERCONNECT_SSA:
un
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_SSA\\n", un);
break;
case INTERCONNECT_PARALLEL:
un->un_f_is_fibre = FALSE;
un->un_interconnect_type = SD_INTERCONNECT_PARALLEL;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_PARALLEL\\n", un);
break;
case INTERCONNECT_SAS:
un->un_f_is_fibre = FALSE;
un->un_interconnect_type = SD_INTERCONNECT_SAS;
un->un_node_type = DDI_NT_BLOCK_SAS;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_SAS\\n", un);
break;
case INTERCONNECT_SATA:
un->un_f_is_fibre = FALSE;
un->un_interconnect_type = SD_INTERCONNECT_SATA;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_SATA\\n", un);
break;
case INTERCONNECT_FIBRE:
un->un_interconnect_type = SD_INTERCONNECT_FIBRE;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_FIBRE\\n", un);
break;
case INTERCONNECT_FABRIC:
un->un_interconnect_type = SD_INTERCONNECT_FABRIC;
un->un_node_type = DDI_NT_BLOCK_FABRIC;
SD_INFO(SD_LOG_ATTACH_DETACH, un,
"sd_unit_attach: un:0x%p SD_INTERCONNECT_FABRIC\\n", un);
break;
and
scsi_vhci set interconnect-type to SD_INTERCONNECT_FABRIC
so when mpt_sas enables mpxio, sd thinks the transport is fibre channel
No data to display