The Array Rebuild Rate parameter was only getting read from Mode Page
0x24 for dual initiator adapters, which caused iprconfig to display the
wrong rate value for a single adapter setup.  This patch fixes the issue,
by fetching this value for every IOA that supports page 0x24,
independent of the current IOA setup.

Signed-off-by: Gabriel Krisman Bertazi <kris...@linux.vnet.ibm.com>
---
 iprlib.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/iprlib.c b/iprlib.c
index 09b984f..9d2a109 100644
--- a/iprlib.c
+++ b/iprlib.c
@@ -6039,6 +6039,8 @@ static void get_ioa_cap(struct ipr_ioa *ioa)
        struct ipr_mode_pages mode_pages;
        struct ipr_cache_cap_vpd cc_vpd;
 
+       memset(&mode_pages, 0, sizeof(mode_pages));
+
        ioa->af_block_size = IPR_DEFAULT_AF_BLOCK_SIZE;
        ioa->tcq_mode = ioa_get_tcq_mode(ioa);
 
@@ -6090,17 +6092,14 @@ static void get_ioa_cap(struct ipr_ioa *ioa)
                                ioa->hop_count = IPR_3BIT_HOP;
                }
 
+               rc = ipr_mode_sense(&ioa->ioa, 0x24, &mode_pages);
+               if (rc)
+                       break;
+               page24 = (struct ipr_mode_page24 *) (((u8 *)&mode_pages)
+                                                    + 
mode_pages.hdr.block_desc_len +
+                                                    sizeof(mode_pages.hdr));
+               ioa->rebuild_rate = page24->rebuild_rate;
                if (ioa_cap.dual_ioa_raid || 
ioa_cap.dual_ioa_asymmetric_access) {
-                       memset(&mode_pages, 0, sizeof(mode_pages));
-                       rc = ipr_mode_sense(&ioa->ioa, 0x24, &mode_pages);
-                       if (rc)
-                               break;
-
-                       page24 = (struct ipr_mode_page24 *) (((u8 
*)&mode_pages) +
-                                                            
mode_pages.hdr.block_desc_len +
-                                                            
sizeof(mode_pages.hdr));
-
-                       ioa->rebuild_rate = page24->rebuild_rate;
                        if (ioa_cap.disable_array_rebuild_verify) {
                                ioa->configure_rebuild_verify = 1;
                                ioa->disable_rebuild_verify =
-- 
2.1.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Iprdd-devel mailing list
Iprdd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iprdd-devel

Reply via email to