mptfusion: Proper error handling is added after mpt_config timeout
Subsystems (2)
PATCH 11/12 mptfusion: Proper error handling is added after mpt_config timeout
Added proper error handling after mpt_config.
Now check of MPI_IOCSTATUS_CONFIG_INVALID_PAGE is added.
If error is MPI_IOCSTATUS_CONFIG_INVALID_PAGE, driver will return -ENODEV.
Signed-off-by Kashyap Desai <[email protected]>
---
drivers/message/fusion/mptsas.c +11 -5
@@ -2522,6 +2522,12 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info, cfg.action =MPI_CONFIG_ACTION_PAGE_READ_CURRENT ; error =mpt_config (ioc, &cfg); + +if (error ==MPI_IOCSTATUS_CONFIG_INVALID_PAGE ) { + error = -ENODEV ; + goto out_free_consistent; + } +if (error) goto out_free_consistent;
@@ -2598,14 +2604,14 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, cfg.action =MPI_CONFIG_ACTION_PAGE_READ_CURRENT ; error =mpt_config (ioc, &cfg); -if (error) - goto out_free_consistent; - -if (!buffer->NumPhys) { +if (error ==MPI_IOCSTATUS_CONFIG_INVALID_PAGE ) { error = -ENODEV ; goto out_free_consistent; } +if (error) + goto out_free_consistent; +/* save config data */ port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys :1 ; port_info->phy_info = kcalloc(port_info->num_phys,
@@ -2681,7 +2687,7 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,if (error ==MPI_IOCSTATUS_CONFIG_INVALID_PAGE ) { error = -ENODEV ; - goto out; + goto out_free_consistent; }if (error)