1234567891011121314151617181920212223242526272829303132 |
- --- 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) {
|