aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/023-bcma-from-4.9.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2017-01-31 14:21:53 +0100
committerRafał Miłecki <rafal@milecki.pl>2017-01-31 14:31:13 +0100
commit12288d450b18fd67293122fcd41761469fe5734b (patch)
treed8081ffdaceade245a14639f4b7e84d69ed0eea9 /target/linux/generic/patches-4.4/023-bcma-from-4.9.patch
parent1a14ffaf2bd5929c20fb5d4c2d5a6fa6d2cad65e (diff)
downloadupstream-12288d450b18fd67293122fcd41761469fe5734b.tar.gz
upstream-12288d450b18fd67293122fcd41761469fe5734b.tar.bz2
upstream-12288d450b18fd67293122fcd41761469fe5734b.zip
kernel: update bcma to fix devm memory leaks
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic/patches-4.4/023-bcma-from-4.9.patch')
-rw-r--r--target/linux/generic/patches-4.4/023-bcma-from-4.9.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/023-bcma-from-4.9.patch b/target/linux/generic/patches-4.4/023-bcma-from-4.9.patch
index 0391bcb802..027054c162 100644
--- a/target/linux/generic/patches-4.4/023-bcma-from-4.9.patch
+++ b/target/linux/generic/patches-4.4/023-bcma-from-4.9.patch
@@ -80,3 +80,29 @@
/* Board types (on PCI usually equals to the subsystem dev id) */
/* BCM4313 */
+--- a/drivers/bcma/main.c
++++ b/drivers/bcma/main.c
+@@ -209,6 +209,8 @@ static void bcma_of_fill_device(struct p
+ core->dev.of_node = node;
+
+ core->irq = bcma_of_get_irq(parent, core, 0);
++
++ of_dma_configure(&core->dev, node);
+ }
+
+ unsigned int bcma_core_irq(struct bcma_device *core, int num)
+@@ -248,12 +250,12 @@ void bcma_prepare_core(struct bcma_bus *
+ core->irq = bus->host_pci->irq;
+ break;
+ case BCMA_HOSTTYPE_SOC:
+- core->dev.dma_mask = &core->dev.coherent_dma_mask;
+- if (bus->host_pdev) {
++ if (IS_ENABLED(CONFIG_OF) && bus->host_pdev) {
+ core->dma_dev = &bus->host_pdev->dev;
+ core->dev.parent = &bus->host_pdev->dev;
+ bcma_of_fill_device(bus->host_pdev, core);
+ } else {
++ core->dev.dma_mask = &core->dev.coherent_dma_mask;
+ core->dma_dev = &core->dev;
+ }
+ break;