Refreshed all patches.
Remove upstreamed:
- 110-ARM-zynq-Use-memcpy_toio-instead-of-memcpy.patch
Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-4.9 = .195
LINUX_VERSION-4.14 = .147
-LINUX_VERSION-4.19 = .76
+LINUX_VERSION-4.19 = .77
LINUX_KERNEL_HASH-4.9.195 = 54be562a2da16eecd612f641146dc099c1aa05c0fc559c971bdfde161c929d68
LINUX_KERNEL_HASH-4.14.147 = 8fd793688c9d9d4e26fdc175be92b6e638b6a86f4150dd66edecebab0bb85b12
-LINUX_KERNEL_HASH-4.19.76 = ba4dd29902734b263a5197410363b17f30dc60bc999bd6ce90b6f5910b971e66
+LINUX_KERNEL_HASH-4.19.77 = 612b69cc494f2da1530bacac17291339e272cde7f2a7669e615f565506d5f3a9
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
struct bcm2835_dmadev {
struct dma_device ddev;
-@@ -912,6 +914,9 @@ static int bcm2835_dma_probe(struct plat
+@@ -914,6 +916,9 @@ static int bcm2835_dma_probe(struct plat
base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(base))
return PTR_ERR(base);
od->base = base;
-@@ -950,6 +955,9 @@ static int bcm2835_dma_probe(struct plat
+@@ -952,6 +957,9 @@ static int bcm2835_dma_probe(struct plat
goto err_no_dma;
}
/* get irqs for each channel that we support */
for (i = 0; i <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; i++) {
/* skip masked out channels */
-@@ -1024,6 +1032,7 @@ static int bcm2835_dma_remove(struct pla
+@@ -1026,6 +1034,7 @@ static int bcm2835_dma_remove(struct pla
{
struct bcm2835_dmadev *od = platform_get_drvdata(pdev);
dma_async_device_unregister(&od->ddev);
bcm2835_dma_free(od);
-@@ -1039,7 +1048,22 @@ static struct platform_driver bcm2835_dm
+@@ -1041,7 +1050,22 @@ static struct platform_driver bcm2835_dm
},
};
static const struct of_device_id bcm2835_dma_of_match[] = {
{ .compatible = "brcm,bcm2835-dma", },
{},
-@@ -964,6 +1064,13 @@ static int bcm2835_dma_probe(struct plat
+@@ -966,6 +1066,13 @@ static int bcm2835_dma_probe(struct plat
/* Channel 0 is used by the legacy API */
chans_available &= ~BCM2835_DMA_BULK_MASK;
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
-@@ -2930,6 +2930,10 @@ static irqreturn_t sdhci_irq(int irq, vo
+@@ -2932,6 +2932,10 @@ static irqreturn_t sdhci_irq(int irq, vo
result = IRQ_WAKE_THREAD;
}
if (!pdev->dev.dma_mask)
pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
-@@ -1020,9 +1206,13 @@ static int bcm2835_dma_probe(struct plat
+@@ -1022,9 +1208,13 @@ static int bcm2835_dma_probe(struct plat
base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(base))
return PTR_ERR(base);
od->base = base;
-@@ -1052,6 +1242,14 @@ static int bcm2835_dma_probe(struct plat
+@@ -1054,6 +1244,14 @@ static int bcm2835_dma_probe(struct plat
platform_set_drvdata(pdev, od);
/* Request DMA channel mask from device tree */
if (of_property_read_u32(pdev->dev.of_node,
"brcm,dma-channel-mask",
-@@ -1061,18 +1259,34 @@ static int bcm2835_dma_probe(struct plat
+@@ -1063,18 +1261,34 @@ static int bcm2835_dma_probe(struct plat
goto err_no_dma;
}
/* skip masked out channels */
if (!(chans_available & (1 << i))) {
irq[i] = -1;
-@@ -1095,13 +1309,17 @@ static int bcm2835_dma_probe(struct plat
+@@ -1097,13 +1311,17 @@ static int bcm2835_dma_probe(struct plat
irq[i] = platform_get_irq(pdev, i < 11 ? i : 11);
}
irq_flags = 0;
for (j = 0; j <= BCM2835_DMA_MAX_DMA_CHAN_SUPPORTED; j++)
if ((i != j) && (irq[j] == irq[i])) {
-@@ -1113,9 +1331,10 @@ static int bcm2835_dma_probe(struct plat
+@@ -1115,9 +1333,10 @@ static int bcm2835_dma_probe(struct plat
rc = bcm2835_dma_chan_init(od, i, irq[i], irq_flags);
if (rc)
goto err_no_dma;
/* Device-tree DMA controller registration */
rc = of_dma_controller_register(pdev->dev.of_node,
-@@ -1147,6 +1366,13 @@ static int bcm2835_dma_remove(struct pla
+@@ -1149,6 +1368,13 @@ static int bcm2835_dma_remove(struct pla
bcm_dmaman_remove(pdev);
dma_async_device_unregister(&od->ddev);
}
static void loop_unprepare_queue(struct loop_device *lo)
-@@ -1893,7 +1912,10 @@ static void loop_handle_cmd(struct loop_
+@@ -1894,7 +1913,10 @@ static void loop_handle_cmd(struct loop_
failed:
/* complete non-aio request */
if (!cmd->use_aio || ret) {
device, it has to decide which ones to send first, which ones to
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
-@@ -2159,7 +2159,7 @@ static int __init pktsched_init(void)
+@@ -2160,7 +2160,7 @@ static int __init pktsched_init(void)
return err;
}
+++ /dev/null
-From a801d4aa6000f7ba0ffc5ba9d841af62ec7e0bb1 Mon Sep 17 00:00:00 2001
-From: Luis Araneda <luaraneda@gmail.com>
-Date: Tue, 30 Jul 2019 00:29:03 -0400
-Subject: [RFC PATCH] ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
-
-This fixes a kernel panic (read overflow) on memcpy when
-FORTIFY_SOURCE is enabled.
-
-The computed size of memcpy args are:
-- p_size (dst): 4294967295 = (size_t) -1
-- q_size (src): 1
-- size (len): 8
-
-Additionally, the memory is marked as __iomem, so one of
-the memcpy_* functions should be used for read/write
-
-Signed-off-by: Luis Araneda <luaraneda@gmail.com>
----
-As of 2019-08-03, this patch is under review and waiting
-comments from the maintainer / author
---
- arch/arm/mach-zynq/platsmp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/mach-zynq/platsmp.c
-+++ b/arch/arm/mach-zynq/platsmp.c
-@@ -65,7 +65,7 @@ int zynq_cpun_start(u32 address, int cpu
- * 0x4: Jump by mov instruction
- * 0x8: Jumping address
- */
-- memcpy((__force void *)zero, &zynq_secondary_trampoline,
-+ memcpy_toio(zero, &zynq_secondary_trampoline,
- trampoline_size);
- writel(address, zero + trampoline_size);
-