aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/message/fusion/mptsas.c37
-rw-r--r--drivers/message/fusion/mptsas.h1
2 files changed, 38 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 1caf03ea8557..8963f5c44c23 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -2549,6 +2549,7 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
2549 device_info->sas_address = le64_to_cpu(sas_address); 2549 device_info->sas_address = le64_to_cpu(sas_address);
2550 device_info->device_info = 2550 device_info->device_info =
2551 le32_to_cpu(buffer->DeviceInfo); 2551 le32_to_cpu(buffer->DeviceInfo);
2552 device_info->flags = le16_to_cpu(buffer->Flags);
2552 2553
2553 out_free_consistent: 2554 out_free_consistent:
2554 pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4, 2555 pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
@@ -3840,6 +3841,13 @@ mptsas_probe_devices(MPT_ADAPTER *ioc)
3840 MPI_SAS_DEVICE_INFO_SATA_DEVICE)) == 0) 3841 MPI_SAS_DEVICE_INFO_SATA_DEVICE)) == 0)
3841 continue; 3842 continue;
3842 3843
3844 /* If there is no FW B_T mapping for this device then continue
3845 * */
3846 if (!(sas_device.flags & MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)
3847 || !(sas_device.flags &
3848 MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED))
3849 continue;
3850
3843 phy_info = mptsas_refreshing_device_handles(ioc, &sas_device); 3851 phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
3844 if (!phy_info) 3852 if (!phy_info)
3845 continue; 3853 continue;
@@ -4149,6 +4157,14 @@ mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
4149 phys_disk.PhysDiskID)) 4157 phys_disk.PhysDiskID))
4150 continue; 4158 continue;
4151 4159
4160 /* If there is no FW B_T mapping for this device then continue
4161 * */
4162 if (!(sas_device.flags & MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)
4163 || !(sas_device.flags &
4164 MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED))
4165 continue;
4166
4167
4152 phy_info = mptsas_find_phyinfo_by_sas_address(ioc, 4168 phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
4153 sas_device.sas_address); 4169 sas_device.sas_address);
4154 mptsas_add_end_device(ioc, phy_info); 4170 mptsas_add_end_device(ioc, phy_info);
@@ -4199,6 +4215,13 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
4199 (hot_plug_info->channel << 8) + 4215 (hot_plug_info->channel << 8) +
4200 hot_plug_info->id); 4216 hot_plug_info->id);
4201 4217
4218 /* If there is no FW B_T mapping for this device then break
4219 * */
4220 if (!(sas_device.flags & MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)
4221 || !(sas_device.flags &
4222 MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED))
4223 break;
4224
4202 if (!sas_device.handle) 4225 if (!sas_device.handle)
4203 return; 4226 return;
4204 4227
@@ -4241,6 +4264,13 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
4241 break; 4264 break;
4242 } 4265 }
4243 4266
4267 /* If there is no FW B_T mapping for this device then break
4268 * */
4269 if (!(sas_device.flags & MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)
4270 || !(sas_device.flags &
4271 MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED))
4272 break;
4273
4244 phy_info = mptsas_find_phyinfo_by_sas_address( 4274 phy_info = mptsas_find_phyinfo_by_sas_address(
4245 ioc, sas_device.sas_address); 4275 ioc, sas_device.sas_address);
4246 4276
@@ -4294,6 +4324,13 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
4294 break; 4324 break;
4295 } 4325 }
4296 4326
4327 /* If there is no FW B_T mapping for this device then break
4328 * */
4329 if (!(sas_device.flags & MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)
4330 || !(sas_device.flags &
4331 MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED))
4332 break;
4333
4297 phy_info = mptsas_find_phyinfo_by_sas_address(ioc, 4334 phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
4298 sas_device.sas_address); 4335 sas_device.sas_address);
4299 if (!phy_info) { 4336 if (!phy_info) {
diff --git a/drivers/message/fusion/mptsas.h b/drivers/message/fusion/mptsas.h
index 7b249edbda78..57e86ab77661 100644
--- a/drivers/message/fusion/mptsas.h
+++ b/drivers/message/fusion/mptsas.h
@@ -140,6 +140,7 @@ struct mptsas_devinfo {
140 u64 sas_address; /* WWN of this device, 140 u64 sas_address; /* WWN of this device,
141 SATA is assigned by HBA,expander */ 141 SATA is assigned by HBA,expander */
142 u32 device_info; /* bitfield detailed info about this device */ 142 u32 device_info; /* bitfield detailed info about this device */
143 u16 flags; /* sas device pg0 flags */
143}; 144};
144 145
145/* 146/*