aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch')
-rw-r--r--target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch b/target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch
new file mode 100644
index 000000000..3778e64b8
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.3/009-bcma_reorder_sprom_fill.patch
@@ -0,0 +1,44 @@
+--- a/arch/mips/bcm47xx/setup.c
++++ b/arch/mips/bcm47xx/setup.c
+@@ -90,6 +90,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));
+@@ -111,6 +112,7 @@ static int bcm47xx_get_invariants(struct
+
+ bcm47xx_fill_ssb_boardinfo(&iv->boardinfo, NULL);
+
++ memset(&iv->sprom, 0, sizeof(struct ssb_sprom));
+ bcm47xx_fill_sprom(&iv->sprom, NULL);
+
+ if (nvram_getenv("cardbus", buf, sizeof(buf)) >= 0)
+@@ -159,12 +161,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
+@@ -557,8 +557,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);