aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@openwrt.org>2012-07-26 15:42:18 +0000
committerHauke Mehrtens <hauke@openwrt.org>2012-07-26 15:42:18 +0000
commit4209833de72938f332e4d090d3979c363e50dff7 (patch)
tree4150f82ff984b38e383f3bd8f3d21e68376e59f0 /target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch
parente32b39c0e983d744bfbd0fe50837f357b4132f90 (diff)
downloadupstream-4209833de72938f332e4d090d3979c363e50dff7.tar.gz
upstream-4209833de72938f332e4d090d3979c363e50dff7.tar.bz2
upstream-4209833de72938f332e4d090d3979c363e50dff7.zip
[kernel] bcma: update to version from wireless-testing tag master-2012-07-16
I did not add the last patch, because it add some stubs for the flash drivers and our patches have to be changed for that, if the flash support in bcma is able to do something I will integrate it. This also contains 3 additional patches fixing some bugs in bcma. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32880 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch')
-rw-r--r--target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch b/target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch
new file mode 100644
index 0000000000..dc8367b6c5
--- /dev/null
+++ b/target/linux/generic/patches-3.3/027-bcma-add-missing-iounmap-on-error-path.patch
@@ -0,0 +1,55 @@
+--- a/drivers/bcma/scan.c
++++ b/drivers/bcma/scan.c
+@@ -462,8 +462,10 @@ int bcma_bus_scan(struct bcma_bus *bus)
+ while (eromptr < eromend) {
+ struct bcma_device *other_core;
+ struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
+- if (!core)
+- return -ENOMEM;
++ if (!core) {
++ err = -ENOMEM;
++ goto out;
++ }
+ INIT_LIST_HEAD(&core->list);
+ core->bus = bus;
+
+@@ -478,7 +480,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
+ } else if (err == -ESPIPE) {
+ break;
+ }
+- return err;
++ goto out;
+ }
+
+ core->core_index = core_num++;
+@@ -494,10 +496,12 @@ int bcma_bus_scan(struct bcma_bus *bus)
+ list_add_tail(&core->list, &bus->cores);
+ }
+
++ err = 0;
++out:
+ if (bus->hosttype == BCMA_HOSTTYPE_SOC)
+ iounmap(eromptr);
+
+- return 0;
++ return err;
+ }
+
+ int __init bcma_bus_scan_early(struct bcma_bus *bus,
+@@ -537,7 +541,7 @@ int __init bcma_bus_scan_early(struct bc
+ else if (err == -ESPIPE)
+ break;
+ else if (err < 0)
+- return err;
++ goto out;
+
+ core->core_index = core_num++;
+ bus->nr_cores++;
+@@ -551,6 +555,7 @@ int __init bcma_bus_scan_early(struct bc
+ break;
+ }
+
++out:
+ if (bus->hosttype == BCMA_HOSTTYPE_SOC)
+ iounmap(eromptr);
+