Hi,
This patch contains Bug Fixes for Non-Dell components.

diff -Naurp ipmitool_base/include/ipmitool/ipmi_fru.h 
01-ipmitool_opensource_fix/include/ipmitool/ipmi_fru.h
--- ipmitool_base/include/ipmitool/ipmi_fru.h   2011-08-04 
16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/include/ipmitool/ipmi_fru.h      
2011-08-04 16:48:42.000000000 +0530
@@ -59,11 +59,14 @@ enum {
         FRU_PRODUCT_SERIAL,
         FRU_PRODUCT_ASSET,
  };
+#ifdef HAVE_PRAGMA_PACK
+#pragma pack(1)
+#endif

  struct fru_info {
         uint16_t size;
         uint8_t access:1;
-};
+}ATTRIBUTE_PACKING;

  #ifdef HAVE_PRAGMA_PACK
  #pragma pack(1)
@@ -596,5 +599,9 @@ static const char * chassis_type_desc[]

  int ipmi_fru_main(struct ipmi_intf *intf, int argc, char **argv);
  int ipmi_fru_print(struct ipmi_intf *intf, struct 
sdr_record_fru_locator *fru);
+int read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, 
uint8_t id,
+                       uint32_t offset, uint32_t length, uint8_t *frubuf);
+char * get_fru_area_str(uint8_t * data, uint32_t * offset);
+

  #endif /* IPMI_FRU_H */
diff -Naurp ipmitool_base/lib/ipmi_ekanalyzer.c 
01-ipmitool_opensource_fix/lib/ipmi_ekanalyzer.c
--- ipmitool_base/lib/ipmi_ekanalyzer.c 2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_ekanalyzer.c    2011-08-04 
16:48:42.000000000 +0530
@@ -3023,11 +3023,13 @@ ipmi_ek_display_address_table_record( st
     entries = record->data[offset++];
     printf("   Addr Table Entries count: 0x%02x\n", entries);

-   for ( i = 0; i < entries; i++ ){
+   for ( i = 0; i < entries; i++ )
+   {
        printf("\tHWAddr: 0x%02x  - SiteNum: 0x%02x - SiteType: 0x%02x \n",
-               record->data[offset++],
-               record->data[offset++],
-               record->data[offset++]);
+               record->data[offset+0],
+               record->data[offset+1],
+               record->data[offset+2]);
+         offset = offset + 3;
     }
  }

@@ -3148,21 +3150,26 @@ ipmi_ek_display_shelf_ip_connection_reco
     int offset = START_DATA_OFFSET;
     if (offset > record->header.len){
        printf("   Shelf Manager IP Address: %d.%d.%d.%d\n",
-            record->data[offset++], record->data[offset++],
-            record->data[offset++], record->data[offset++]
+            record->data[offset+0], record->data[offset+1],
+            record->data[offset+2], record->data[offset+3]
           );
+         offset = offset + 4;
     }
     if (offset > record->header.len){
        printf("   Default Gateway Address: %d.%d.%d.%d\n",
-            record->data[offset++], record->data[offset++],
-            record->data[offset++], record->data[offset++]
-         );
+                               record->data[offset+0], 
record->data[offset+1],
+                               record->data[offset+2], 
record->data[offset+3]
+                        );
+         offset = offset + 4;
+
     }
     if (offset > record->header.len){
-      printf("   Subnet Mask: %d.%d.%d.%d\n", record->data[offset++],
-            record->data[offset++], record->data[offset++],
-            record->data[offset++]
-         );
+      printf("   Subnet Mask: %d.%d.%d.%d\n",
+                               record->data[offset+0], 
record->data[offset+1],
+                               record->data[offset+2], 
record->data[offset+3]
+                        );
+         offset = offset + 4;
+
     }
  }

@@ -3197,7 +3204,7 @@ ipmi_ek_display_shelf_fan_geography_reco

     while ( (fan_count > 0) && (offset <= record->header.len) ){
        printf("   Fan-to-FRU Mapping Entry: {%2x%2x%2x%2x}\n",
-                  record->data[offset], record->data[offset+1],
+                  record->data[offset+0], record->data[offset+1],
                    record->data[offset+2], record->data[offset+3]
               );
        printf("      Hardware Address:   0x%02x\n", 
record->data[offset++]);
diff -Naurp ipmitool_base/lib/ipmi_fru.c 
01-ipmitool_opensource_fix/lib/ipmi_fru.c
--- ipmitool_base/lib/ipmi_fru.c        2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_fru.c   2011-08-04 
16:48:42.000000000 +0530
@@ -2067,8 +2067,9 @@ static void ipmi_fru_picmg_ext_print(uin
                         printf("      Addr Table Entries: 0x%02x\n", 
entries);

                         for (i=0; i<entries; i++) {
-                               printf("        HWAddr: 0x%02x  - 
SiteNum: 0x%02x - SiteType: 0x%02x \n",
-                                       fru_data[offset++], 
fru_data[offset++], fru_data[offset++]);
+                               printf("                         HWAddr: 
0x%02x  - SiteNum: 0x%02x - SiteType: 0x%02x \n",
+                                        fru_data[offset+0], 
fru_data[offset+1], fru_data[offset+2]);
+                               offset = offset + 3;
                         }
                 }
                 break;
diff -Naurp ipmitool_base/lib/ipmi_mc.c 
01-ipmitool_opensource_fix/lib/ipmi_mc.c
--- ipmitool_base/lib/ipmi_mc.c 2011-08-04 16:48:43.000000000 +0530
+++ 01-ipmitool_opensource_fix/lib/ipmi_mc.c    2011-08-04 
16:48:42.000000000 +0530
@@ -69,11 +69,23 @@ ipmi_mc_reset(struct ipmi_intf * intf, i
         req.msg.cmd = cmd;
         req.msg.data_len = 0;

-       if (cmd == BMC_COLD_RESET)
+       /* Cold reset Failure message added */
+       /*
+       if (cmd == BMC_COLD_RESET)
                 intf->noanswer = 1;
+       */

         rsp = intf->sendrecv(intf, &req);

+       if (rsp == NULL) {
+               printf(" Error sending the Command .\n");
+               return -1;
+       }
+       if (rsp->ccode > 0) {
+               printf("Failed to do %s reset to MC\n",
+                              (cmd == BMC_WARM_RESET) ? "warm" : "cold");
+               return -1;
+       }
         if (cmd == BMC_COLD_RESET)
                 intf->abort = 1;

------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to