45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
--- a/arch/mips/bcm47xx/setup.c
|
|
+++ b/arch/mips/bcm47xx/setup.c
|
|
@@ -137,6 +137,7 @@ static int bcm47xx_get_sprom_ssb(struct
|
|
char prefix[10];
|
|
|
|
if (bus->bustype == SSB_BUSTYPE_PCI) {
|
|
+ memset(out, 0, sizeof(struct ssb_sprom));
|
|
snprintf(prefix, sizeof(prefix), "pci/%u/%u/",
|
|
bus->host_pci->bus->number + 1,
|
|
PCI_SLOT(bus->host_pci->devfn));
|
|
@@ -165,6 +166,7 @@ static int bcm47xx_get_invariants(struct
|
|
if (nvram_getenv("boardrev", buf, sizeof(buf)) >= 0)
|
|
iv->boardinfo.rev = (u16)simple_strtoul(buf, NULL, 0);
|
|
|
|
+ memset(&iv->sprom, 0, sizeof(struct ssb_sprom));
|
|
bcm47xx_fill_sprom(&iv->sprom, NULL);
|
|
|
|
if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0)
|
|
@@ -263,12 +265,14 @@ static int bcm47xx_get_sprom_bcma(struct
|
|
|
|
switch (bus->hosttype) {
|
|
case BCMA_HOSTTYPE_PCI:
|
|
+ memset(out, 0, sizeof(struct ssb_sprom));
|
|
snprintf(prefix, sizeof(prefix), "pci/%u/%u/",
|
|
bus->host_pci->bus->number + 1,
|
|
PCI_SLOT(bus->host_pci->devfn));
|
|
bcm47xx_fill_sprom(out, prefix);
|
|
return 0;
|
|
case BCMA_HOSTTYPE_SOC:
|
|
+ memset(out, 0, sizeof(struct ssb_sprom));
|
|
bcm47xx_fill_sprom_ethernet(out, NULL);
|
|
core = bcma_find_core(bus, BCMA_CORE_80211);
|
|
if (core) {
|
|
--- a/arch/mips/bcm47xx/sprom.c
|
|
+++ b/arch/mips/bcm47xx/sprom.c
|
|
@@ -555,8 +555,6 @@ void bcm47xx_fill_sprom_ethernet(struct
|
|
|
|
void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix)
|
|
{
|
|
- memset(sprom, 0, sizeof(struct ssb_sprom));
|
|
-
|
|
bcm47xx_fill_sprom_ethernet(sprom, prefix);
|
|
|
|
nvram_read_u8(prefix, NULL, "sromrev", &sprom->revision, 0);
|