- Fixed the case where stats_info was accessed after free in free_shared_mem().

Signed-off-by: Surjit Reang <[EMAIL PROTECTED]>
Signed-off-by: Sreenivasa Honnur <[EMAIL PROTECTED]>
Signed-off-by: Ramkrishna Vepa <[EMAIL PROTECTED]>
---
diff -Nurp patch_10/drivers/net/s2io.c patch_11/drivers/net/s2io.c
--- patch_10/drivers/net/s2io.c 2007-12-04 23:36:48.000000000 +0530
+++ patch_11/drivers/net/s2io.c 2007-12-08 01:05:56.000000000 +0530
@@ -84,7 +84,7 @@
 #include "s2io.h"
 #include "s2io-regs.h"
 
-#define DRV_VERSION "2.0.26.10"
+#define DRV_VERSION "2.0.26.11"
 
 /* S2io Driver name & version. */
 static char s2io_driver_name[] = "Neterion";
@@ -941,18 +941,19 @@ static void free_shared_mem(struct s2io_
                }
        }
 
+       if (nic->ufo_in_band_v) {
+               nic->mac_control.stats_info->sw_stat.mem_freed
+                       += (ufo_size * sizeof(u64));
+               kfree(nic->ufo_in_band_v);
+       }
+
        if (mac_control->stats_mem) {
+               nic->mac_control.stats_info->sw_stat.mem_freed +=
+                       mac_control->stats_mem_sz;
                pci_free_consistent(nic->pdev,
                                    mac_control->stats_mem_sz,
                                    mac_control->stats_mem,
                                    mac_control->stats_mem_phy);
-               nic->mac_control.stats_info->sw_stat.mem_freed +=
-                       mac_control->stats_mem_sz;
-       }
-       if (nic->ufo_in_band_v) {
-               kfree(nic->ufo_in_band_v);
-               nic->mac_control.stats_info->sw_stat.mem_freed
-                       += (ufo_size * sizeof(u64));
        }
 }
 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to