| From: George Kashperko <george@znau.edu.ua> | 
 |  | 
 | Release nvram variables buffer. | 
 | Prevent block reserved by alloc_etherdev from being freed. | 
 | Signed-off-by: George Kashperko <george@znau.edu.ua> | 
 | --- | 
 | --- | 
 | --- a/driver/siutils.c | 
 | +++ b/driver/siutils.c | 
 | @@ -647,7 +647,10 @@ si_detach(si_t *sih) | 
 |  #if !defined(BCMBUSTYPE) || (BCMBUSTYPE == SI_BUS) | 
 |  	if (sii != &ksii) | 
 |  #endif	/* !BCMBUSTYPE || (BCMBUSTYPE == SI_BUS) */ | 
 | -		MFREE(sii->osh, sii, sizeof(si_info_t)); | 
 | +		do { | 
 | +			MFREE(sii->osh, sii, sizeof(si_info_t)); | 
 | +			nvram_exit((void *)&(sii->pub)); | 
 | +		} while (0); | 
 |  } | 
 |   | 
 |  void * | 
 | --- a/driver/wl_linux.c | 
 | +++ b/driver/wl_linux.c | 
 | @@ -1477,7 +1477,6 @@ wl_free_if(wl_info_t *wl, wl_if_t *wlif) | 
 |  		free_netdev(wlif->dev); | 
 |  #endif | 
 |  	} | 
 | -	MFREE(wl->osh, wlif, sizeof(wl_if_t)); | 
 |  } | 
 |   | 
 |  #ifdef AP |