diff options
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/broadcom/bcm47xx_nvram.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/firmware/broadcom/bcm47xx_nvram.c b/drivers/firmware/broadcom/bcm47xx_nvram.c index 0c2f0a61b0ea..0b631e5b5b84 100644 --- a/drivers/firmware/broadcom/bcm47xx_nvram.c +++ b/drivers/firmware/broadcom/bcm47xx_nvram.c | |||
@@ -94,15 +94,14 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim) | |||
94 | 94 | ||
95 | found: | 95 | found: |
96 | __ioread32_copy(nvram_buf, header, sizeof(*header) / 4); | 96 | __ioread32_copy(nvram_buf, header, sizeof(*header) / 4); |
97 | header = (struct nvram_header *)nvram_buf; | 97 | nvram_len = ((struct nvram_header *)(nvram_buf))->len; |
98 | nvram_len = header->len; | ||
99 | if (nvram_len > size) { | 98 | if (nvram_len > size) { |
100 | pr_err("The nvram size according to the header seems to be bigger than the partition on flash\n"); | 99 | pr_err("The nvram size according to the header seems to be bigger than the partition on flash\n"); |
101 | nvram_len = size; | 100 | nvram_len = size; |
102 | } | 101 | } |
103 | if (nvram_len >= NVRAM_SPACE) { | 102 | if (nvram_len >= NVRAM_SPACE) { |
104 | pr_err("nvram on flash (%i bytes) is bigger than the reserved space in memory, will just copy the first %i bytes\n", | 103 | pr_err("nvram on flash (%i bytes) is bigger than the reserved space in memory, will just copy the first %i bytes\n", |
105 | header->len, NVRAM_SPACE - 1); | 104 | nvram_len, NVRAM_SPACE - 1); |
106 | nvram_len = NVRAM_SPACE - 1; | 105 | nvram_len = NVRAM_SPACE - 1; |
107 | } | 106 | } |
108 | /* proceed reading data after header */ | 107 | /* proceed reading data after header */ |