kernel: bump 4.9 to 4.9.82
Refresh patches. Remove upstreamed patches: - ar7/002-MIPS-AR7-ensure-the-port-type-s-FCR-value-is-used.patch - backport/040-crypto-fix-typo-in-KPP-dependency-of-CRYPTO_ECDH.patch Remove layerscape/819-Revert-dmaengine-dmatest-move-callback-wait-queue-to.patch, it is superseded by upstream commit 297c7cc4b5651b174a62925b6c961085f04979fd. Remove pending/650-pppoe_header_pad.patch, it is superseded by upstream commit 1bd21b158e07e0b8c5a2ce832305a0ebfe42c480. Update patches that no longer apply: - ar71xx/004-register_gpio_driver_earlier.patch - hack/204-module_strip.patch - pending/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch Fixes CVE-2017-8824. Compile-tested: ar71xx. Runtime-tested: ar71xx. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
@@ -421,7 +421,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
* These are the defined Ethernet Protocol ID's.
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -6604,9 +6604,18 @@ int dev_set_mtu(struct net_device *dev,
|
||||
@@ -6615,9 +6615,18 @@ int dev_set_mtu(struct net_device *dev,
|
||||
if (new_mtu == dev->mtu)
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
--- a/drivers/cpufreq/Kconfig
|
||||
+++ b/drivers/cpufreq/Kconfig
|
||||
@@ -332,7 +332,7 @@ endif
|
||||
@@ -334,7 +334,7 @@ endif
|
||||
|
||||
config QORIQ_CPUFREQ
|
||||
tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
|
||||
|
||||
@@ -781,7 +781,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
};
|
||||
|
||||
struct tcrypt_result {
|
||||
@@ -1331,6 +1331,10 @@ static int do_test(const char *alg, u32
|
||||
@@ -1333,6 +1333,10 @@ static int do_test(const char *alg, u32
|
||||
ret += tcrypt_test("hmac(sha3-512)");
|
||||
break;
|
||||
|
||||
@@ -792,7 +792,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
case 150:
|
||||
ret += tcrypt_test("ansi_cprng");
|
||||
break;
|
||||
@@ -1392,6 +1396,9 @@ static int do_test(const char *alg, u32
|
||||
@@ -1394,6 +1398,9 @@ static int do_test(const char *alg, u32
|
||||
case 190:
|
||||
ret += tcrypt_test("authenc(hmac(sha512),cbc(des3_ede))");
|
||||
break;
|
||||
@@ -802,7 +802,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
case 200:
|
||||
test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
|
||||
speed_template_16_24_32);
|
||||
@@ -1406,9 +1413,9 @@ static int do_test(const char *alg, u32
|
||||
@@ -1408,9 +1415,9 @@ static int do_test(const char *alg, u32
|
||||
test_cipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0,
|
||||
speed_template_32_40_48);
|
||||
test_cipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0,
|
||||
@@ -814,7 +814,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
test_cipher_speed("cts(cbc(aes))", ENCRYPT, sec, NULL, 0,
|
||||
speed_template_16_24_32);
|
||||
test_cipher_speed("cts(cbc(aes))", DECRYPT, sec, NULL, 0,
|
||||
@@ -1839,9 +1846,9 @@ static int do_test(const char *alg, u32
|
||||
@@ -1841,9 +1848,9 @@ static int do_test(const char *alg, u32
|
||||
test_acipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0,
|
||||
speed_template_32_40_48);
|
||||
test_acipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0,
|
||||
@@ -23462,7 +23462,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
/*
|
||||
* Descriptor to instantiate RNG State Handle 0 in normal mode and
|
||||
@@ -270,7 +271,7 @@ static int deinstantiate_rng(struct devi
|
||||
@@ -274,7 +275,7 @@ static int deinstantiate_rng(struct devi
|
||||
/*
|
||||
* If the corresponding bit is set, then it means the state
|
||||
* handle was initialized by us, and thus it needs to be
|
||||
@@ -23471,7 +23471,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
*/
|
||||
if ((1 << sh_idx) & state_handle_mask) {
|
||||
/*
|
||||
@@ -303,20 +304,24 @@ static int caam_remove(struct platform_d
|
||||
@@ -307,20 +308,24 @@ static int caam_remove(struct platform_d
|
||||
struct device *ctrldev;
|
||||
struct caam_drv_private *ctrlpriv;
|
||||
struct caam_ctrl __iomem *ctrl;
|
||||
@@ -23504,7 +23504,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
deinstantiate_rng(ctrldev, ctrlpriv->rng4_sh_init);
|
||||
|
||||
/* Shut down debug views */
|
||||
@@ -331,8 +336,8 @@ static int caam_remove(struct platform_d
|
||||
@@ -335,8 +340,8 @@ static int caam_remove(struct platform_d
|
||||
clk_disable_unprepare(ctrlpriv->caam_ipg);
|
||||
clk_disable_unprepare(ctrlpriv->caam_mem);
|
||||
clk_disable_unprepare(ctrlpriv->caam_aclk);
|
||||
@@ -23515,7 +23515,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -366,11 +371,8 @@ static void kick_trng(struct platform_de
|
||||
@@ -370,11 +375,8 @@ static void kick_trng(struct platform_de
|
||||
*/
|
||||
val = (rd_reg32(&r4tst->rtsdctl) & RTSDCTL_ENT_DLY_MASK)
|
||||
>> RTSDCTL_ENT_DLY_SHIFT;
|
||||
@@ -23529,7 +23529,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
val = rd_reg32(&r4tst->rtsdctl);
|
||||
val = (val & ~RTSDCTL_ENT_DLY_MASK) |
|
||||
@@ -382,15 +384,12 @@ static void kick_trng(struct platform_de
|
||||
@@ -386,15 +388,12 @@ static void kick_trng(struct platform_de
|
||||
wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE);
|
||||
/* read the control register */
|
||||
val = rd_reg32(&r4tst->rtmctl);
|
||||
@@ -23548,7 +23548,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -411,28 +410,26 @@ int caam_get_era(void)
|
||||
@@ -415,28 +414,26 @@ int caam_get_era(void)
|
||||
}
|
||||
EXPORT_SYMBOL(caam_get_era);
|
||||
|
||||
@@ -23592,7 +23592,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
struct device *dev;
|
||||
struct device_node *nprop, *np;
|
||||
struct caam_ctrl __iomem *ctrl;
|
||||
@@ -452,9 +449,10 @@ static int caam_probe(struct platform_de
|
||||
@@ -456,9 +453,10 @@ static int caam_probe(struct platform_de
|
||||
|
||||
dev = &pdev->dev;
|
||||
dev_set_drvdata(dev, ctrlpriv);
|
||||
@@ -23604,7 +23604,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
/* Enable clocking */
|
||||
clk = caam_drv_identify_clk(&pdev->dev, "ipg");
|
||||
if (IS_ERR(clk)) {
|
||||
@@ -483,14 +481,16 @@ static int caam_probe(struct platform_de
|
||||
@@ -487,14 +485,16 @@ static int caam_probe(struct platform_de
|
||||
}
|
||||
ctrlpriv->caam_aclk = clk;
|
||||
|
||||
@@ -23628,7 +23628,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
ret = clk_prepare_enable(ctrlpriv->caam_ipg);
|
||||
if (ret < 0) {
|
||||
@@ -511,11 +511,13 @@ static int caam_probe(struct platform_de
|
||||
@@ -515,11 +515,13 @@ static int caam_probe(struct platform_de
|
||||
goto disable_caam_mem;
|
||||
}
|
||||
|
||||
@@ -23647,7 +23647,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
/* Get configuration properties from device tree */
|
||||
@@ -542,13 +544,13 @@ static int caam_probe(struct platform_de
|
||||
@@ -546,13 +548,13 @@ static int caam_probe(struct platform_de
|
||||
else
|
||||
BLOCK_OFFSET = PG_SIZE_64K;
|
||||
|
||||
@@ -23666,7 +23666,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
BLOCK_OFFSET * DECO_BLOCK_NUMBER
|
||||
);
|
||||
|
||||
@@ -557,12 +559,17 @@ static int caam_probe(struct platform_de
|
||||
@@ -561,12 +563,17 @@ static int caam_probe(struct platform_de
|
||||
|
||||
/*
|
||||
* Enable DECO watchdogs and, if this is a PHYS_ADDR_T_64BIT kernel,
|
||||
@@ -23689,7 +23689,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
/*
|
||||
* Read the Compile Time paramters and SCFGR to determine
|
||||
@@ -590,64 +597,69 @@ static int caam_probe(struct platform_de
|
||||
@@ -594,64 +601,69 @@ static int caam_probe(struct platform_de
|
||||
JRSTART_JR1_START | JRSTART_JR2_START |
|
||||
JRSTART_JR3_START);
|
||||
|
||||
@@ -23797,7 +23797,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
/* If no QI and no rings specified, quit and go home */
|
||||
@@ -662,8 +674,10 @@ static int caam_probe(struct platform_de
|
||||
@@ -666,8 +678,10 @@ static int caam_probe(struct platform_de
|
||||
/*
|
||||
* If SEC has RNG version >= 4 and RNG state handle has not been
|
||||
* already instantiated, do RNG instantiation
|
||||
@@ -23809,7 +23809,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
ctrlpriv->rng4_sh_init =
|
||||
rd_reg32(&ctrl->r4tst[0].rdsta);
|
||||
/*
|
||||
@@ -730,78 +744,47 @@ static int caam_probe(struct platform_de
|
||||
@@ -734,78 +748,47 @@ static int caam_probe(struct platform_de
|
||||
|
||||
/* Report "alive" for developer to see */
|
||||
dev_info(dev, "device ID = 0x%016llx (Era %d)\n", caam_id,
|
||||
@@ -23923,7 +23923,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
ctrlpriv->ctl_kek_wrap.size = KEK_KEY_SIZE * sizeof(u32);
|
||||
ctrlpriv->ctl_kek = debugfs_create_blob("kek",
|
||||
S_IRUSR |
|
||||
@@ -809,7 +792,7 @@ static int caam_probe(struct platform_de
|
||||
@@ -813,7 +796,7 @@ static int caam_probe(struct platform_de
|
||||
ctrlpriv->ctl,
|
||||
&ctrlpriv->ctl_kek_wrap);
|
||||
|
||||
@@ -23932,7 +23932,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
ctrlpriv->ctl_tkek_wrap.size = KEK_KEY_SIZE * sizeof(u32);
|
||||
ctrlpriv->ctl_tkek = debugfs_create_blob("tkek",
|
||||
S_IRUSR |
|
||||
@@ -817,7 +800,7 @@ static int caam_probe(struct platform_de
|
||||
@@ -821,7 +804,7 @@ static int caam_probe(struct platform_de
|
||||
ctrlpriv->ctl,
|
||||
&ctrlpriv->ctl_tkek_wrap);
|
||||
|
||||
@@ -23941,7 +23941,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
ctrlpriv->ctl_tdsk_wrap.size = KEK_KEY_SIZE * sizeof(u32);
|
||||
ctrlpriv->ctl_tdsk = debugfs_create_blob("tdsk",
|
||||
S_IRUSR |
|
||||
@@ -828,13 +811,17 @@ static int caam_probe(struct platform_de
|
||||
@@ -832,13 +815,17 @@ static int caam_probe(struct platform_de
|
||||
return 0;
|
||||
|
||||
caam_remove:
|
||||
@@ -23960,7 +23960,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
disable_caam_aclk:
|
||||
clk_disable_unprepare(ctrlpriv->caam_aclk);
|
||||
disable_caam_mem:
|
||||
@@ -844,17 +831,6 @@ disable_caam_ipg:
|
||||
@@ -848,17 +835,6 @@ disable_caam_ipg:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
From 8772422ee95b17d87b5cb6cb4318b7ec73f4cfcf Mon Sep 17 00:00:00 2001
|
||||
From: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
Date: Mon, 29 Jan 2018 18:04:07 +0800
|
||||
Subject: [PATCH] Revert "dmaengine: dmatest: move callback wait queue to
|
||||
thread context"
|
||||
|
||||
This reverts commit 679dbeac0b6bb551e1f3b95673695b22b2ac953d.
|
||||
---
|
||||
drivers/dma/dmatest.c | 55 ++++++++++++++++++++++-----------------------------
|
||||
1 file changed, 24 insertions(+), 31 deletions(-)
|
||||
|
||||
--- a/drivers/dma/dmatest.c
|
||||
+++ b/drivers/dma/dmatest.c
|
||||
@@ -158,12 +158,6 @@ MODULE_PARM_DESC(run, "Run the test (def
|
||||
#define PATTERN_OVERWRITE 0x20
|
||||
#define PATTERN_COUNT_MASK 0x1f
|
||||
|
||||
-/* poor man's completion - we want to use wait_event_freezable() on it */
|
||||
-struct dmatest_done {
|
||||
- bool done;
|
||||
- wait_queue_head_t *wait;
|
||||
-};
|
||||
-
|
||||
struct dmatest_thread {
|
||||
struct list_head node;
|
||||
struct dmatest_info *info;
|
||||
@@ -172,8 +166,6 @@ struct dmatest_thread {
|
||||
u8 **srcs;
|
||||
u8 **dsts;
|
||||
enum dma_transaction_type type;
|
||||
- wait_queue_head_t done_wait;
|
||||
- struct dmatest_done test_done;
|
||||
bool done;
|
||||
};
|
||||
|
||||
@@ -334,25 +326,18 @@ static unsigned int dmatest_verify(u8 **
|
||||
return error_count;
|
||||
}
|
||||
|
||||
+/* poor man's completion - we want to use wait_event_freezable() on it */
|
||||
+struct dmatest_done {
|
||||
+ bool done;
|
||||
+ wait_queue_head_t *wait;
|
||||
+};
|
||||
|
||||
static void dmatest_callback(void *arg)
|
||||
{
|
||||
struct dmatest_done *done = arg;
|
||||
- struct dmatest_thread *thread =
|
||||
- container_of(arg, struct dmatest_thread, done_wait);
|
||||
- if (!thread->done) {
|
||||
- done->done = true;
|
||||
- wake_up_all(done->wait);
|
||||
- } else {
|
||||
- /*
|
||||
- * If thread->done, it means that this callback occurred
|
||||
- * after the parent thread has cleaned up. This can
|
||||
- * happen in the case that driver doesn't implement
|
||||
- * the terminate_all() functionality and a dma operation
|
||||
- * did not occur within the timeout period
|
||||
- */
|
||||
- WARN(1, "dmatest: Kernel memory may be corrupted!!\n");
|
||||
- }
|
||||
+
|
||||
+ done->done = true;
|
||||
+ wake_up_all(done->wait);
|
||||
}
|
||||
|
||||
static unsigned int min_odd(unsigned int x, unsigned int y)
|
||||
@@ -423,8 +408,9 @@ static unsigned long long dmatest_KBs(s6
|
||||
*/
|
||||
static int dmatest_func(void *data)
|
||||
{
|
||||
+ DECLARE_WAIT_QUEUE_HEAD_ONSTACK(done_wait);
|
||||
struct dmatest_thread *thread = data;
|
||||
- struct dmatest_done *done = &thread->test_done;
|
||||
+ struct dmatest_done done = { .wait = &done_wait };
|
||||
struct dmatest_info *info;
|
||||
struct dmatest_params *params;
|
||||
struct dma_chan *chan;
|
||||
@@ -651,9 +637,9 @@ static int dmatest_func(void *data)
|
||||
continue;
|
||||
}
|
||||
|
||||
- done->done = false;
|
||||
+ done.done = false;
|
||||
tx->callback = dmatest_callback;
|
||||
- tx->callback_param = done;
|
||||
+ tx->callback_param = &done;
|
||||
cookie = tx->tx_submit(tx);
|
||||
|
||||
if (dma_submit_error(cookie)) {
|
||||
@@ -666,12 +652,21 @@ static int dmatest_func(void *data)
|
||||
}
|
||||
dma_async_issue_pending(chan);
|
||||
|
||||
- wait_event_freezable_timeout(thread->done_wait, done->done,
|
||||
+ wait_event_freezable_timeout(done_wait, done.done,
|
||||
msecs_to_jiffies(params->timeout));
|
||||
|
||||
status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
|
||||
|
||||
- if (!done->done) {
|
||||
+ if (!done.done) {
|
||||
+ /*
|
||||
+ * We're leaving the timed out dma operation with
|
||||
+ * dangling pointer to done_wait. To make this
|
||||
+ * correct, we'll need to allocate wait_done for
|
||||
+ * each test iteration and perform "who's gonna
|
||||
+ * free it this time?" dancing. For now, just
|
||||
+ * leave it dangling.
|
||||
+ */
|
||||
+ WARN(1, "dmatest: Kernel stack may be corrupted!!\n");
|
||||
dmaengine_unmap_put(um);
|
||||
result("test timed out", total_tests, src_off, dst_off,
|
||||
len, 0);
|
||||
@@ -752,7 +747,7 @@ err_thread_type:
|
||||
dmatest_KBs(runtime, total_len), ret);
|
||||
|
||||
/* terminate all transfers on specified channels */
|
||||
- if (ret || failed_tests)
|
||||
+ if (ret)
|
||||
dmaengine_terminate_all(chan);
|
||||
|
||||
thread->done = true;
|
||||
@@ -812,8 +807,6 @@ static int dmatest_add_threads(struct dm
|
||||
thread->info = info;
|
||||
thread->chan = dtc->chan;
|
||||
thread->type = type;
|
||||
- thread->test_done.wait = &thread->done_wait;
|
||||
- init_waitqueue_head(&thread->done_wait);
|
||||
smp_wmb();
|
||||
thread->task = kthread_create(dmatest_func, thread, "%s-%s%u",
|
||||
dma_chan_name(chan), op, i);
|
||||
Reference in New Issue
Block a user