[PATCH 2.6.24 1/1]S2io: Fixed the case where stats_info was accessed after free in free_shared_mem()
From: Sreenivasa Honnur <hidden>
Date: 2007-12-11 09:33:30
- Fixed the case where stats_info was accessed after free in free_shared_mem(). Signed-off-by: Surjit Reang <redacted> Signed-off-by: Sreenivasa Honnur <redacted> Signed-off-by: Ramkrishna Vepa <redacted> --- 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)); } }