ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/kernel/broadcom-wl/patches/100-fix_nvram_two_devices.patch b/package/kernel/broadcom-wl/patches/100-fix_nvram_two_devices.patch
new file mode 100644
index 0000000..6cf6fae
--- /dev/null
+++ b/package/kernel/broadcom-wl/patches/100-fix_nvram_two_devices.patch
@@ -0,0 +1,32 @@
+--- a/driver/nvram_stub.c
++++ b/driver/nvram_stub.c
+@@ -22,6 +22,7 @@ typedef struct _vars {
+ #define	VARS_T_OH	sizeof(vars_t)
+ 
+ static vars_t *vars = NULL;
++static int nvram_init_done = 0;
+ extern char *nvram_buf[];
+ 
+ int
+@@ -33,6 +34,10 @@ BCMATTACHFN(nvram_init)(void *si)
+ 	uint nvs, bufsz;
+ 	vars_t *new;
+ 
++	nvram_init_done++;
++	if (nvram_init_done != 1)
++		return 0;
++
+ 	osh = si_osh(sih);
+ 
+ 	nvs = R_REG(osh, &nvh->len) - sizeof(struct nvram_header);
+@@ -79,6 +84,10 @@ BCMATTACHFN(nvram_exit)(void *si)
+ 	vars_t *this, *next;
+ 	si_t *sih;
+ 
++	nvram_init_done--;
++	if (nvram_init_done != 0)
++		return;
++
+ 	sih = (si_t *)si;
+ 	this = vars;
+ 	while (this) {