]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/infiniband/hw/ipath/ipath_eeprom.c
IB/ipath: Future proof eeprom checksum code (contents reading)
[net-next-2.6.git] / drivers / infiniband / hw / ipath / ipath_eeprom.c
index b4503e9c1e954bb4a7ff346344894818c42c9a5a..bcfa3ccb555f988cfba9e719602f130767356001 100644 (file)
@@ -596,7 +596,11 @@ void ipath_get_eeprom_info(struct ipath_devdata *dd)
                goto bail;
        }
 
-       len = offsetof(struct ipath_flash, if_future);
+       /*
+        * read full flash, not just currently used part, since it may have
+        * been written with a newer definition
+        * */
+       len = sizeof(struct ipath_flash);
        buf = vmalloc(len);
        if (!buf) {
                ipath_dev_err(dd, "Couldn't allocate memory to read %u "
@@ -737,8 +741,10 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd)
        /*
         * The quick-check above determined that there is something worthy
         * of logging, so get current contents and do a more detailed idea.
+        * read full flash, not just currently used part, since it may have
+        * been written with a newer definition
         */
-       len = offsetof(struct ipath_flash, if_future);
+       len = sizeof(struct ipath_flash);
        buf = vmalloc(len);
        ret = 1;
        if (!buf) {