diff options
Diffstat (limited to 'drivers/message')
-rw-r--r-- | drivers/message/fusion/mptsas.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index 77f21e068da0..ac000e83db0e 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c | |||
@@ -2523,6 +2523,12 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info, | |||
2523 | cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT; | 2523 | cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT; |
2524 | 2524 | ||
2525 | error = mpt_config(ioc, &cfg); | 2525 | error = mpt_config(ioc, &cfg); |
2526 | |||
2527 | if (error == MPI_IOCSTATUS_CONFIG_INVALID_PAGE) { | ||
2528 | error = -ENODEV; | ||
2529 | goto out_free_consistent; | ||
2530 | } | ||
2531 | |||
2526 | if (error) | 2532 | if (error) |
2527 | goto out_free_consistent; | 2533 | goto out_free_consistent; |
2528 | 2534 | ||
@@ -2599,14 +2605,14 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, | |||
2599 | cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT; | 2605 | cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT; |
2600 | 2606 | ||
2601 | error = mpt_config(ioc, &cfg); | 2607 | error = mpt_config(ioc, &cfg); |
2602 | if (error) | 2608 | if (error == MPI_IOCSTATUS_CONFIG_INVALID_PAGE) { |
2603 | goto out_free_consistent; | ||
2604 | |||
2605 | if (!buffer->NumPhys) { | ||
2606 | error = -ENODEV; | 2609 | error = -ENODEV; |
2607 | goto out_free_consistent; | 2610 | goto out_free_consistent; |
2608 | } | 2611 | } |
2609 | 2612 | ||
2613 | if (error) | ||
2614 | goto out_free_consistent; | ||
2615 | |||
2610 | /* save config data */ | 2616 | /* save config data */ |
2611 | port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; | 2617 | port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; |
2612 | port_info->phy_info = kcalloc(port_info->num_phys, | 2618 | port_info->phy_info = kcalloc(port_info->num_phys, |
@@ -2682,7 +2688,7 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, | |||
2682 | 2688 | ||
2683 | if (error == MPI_IOCSTATUS_CONFIG_INVALID_PAGE) { | 2689 | if (error == MPI_IOCSTATUS_CONFIG_INVALID_PAGE) { |
2684 | error = -ENODEV; | 2690 | error = -ENODEV; |
2685 | goto out; | 2691 | goto out_free_consistent; |
2686 | } | 2692 | } |
2687 | 2693 | ||
2688 | if (error) | 2694 | if (error) |