From: Greg Kroah-Hartman Date: Mon, 1 Feb 2021 15:57:07 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v4.4.255~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=afc32d9b36cedb301709586cf14fdf952f12864e;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: arm-imx-build-suspend-imx6.s-with-arm-instruction-set.patch netfilter-nft_dynset-add-timeout-extension-to-template.patch xen-blkfront-allow-discard-nodes-to-be-optional.patch --- diff --git a/queue-4.14/arm-imx-build-suspend-imx6.s-with-arm-instruction-set.patch b/queue-4.14/arm-imx-build-suspend-imx6.s-with-arm-instruction-set.patch new file mode 100644 index 00000000000..46207110f4b --- /dev/null +++ b/queue-4.14/arm-imx-build-suspend-imx6.s-with-arm-instruction-set.patch @@ -0,0 +1,39 @@ +From a88afa46b86ff461c89cc33fc3a45267fff053e8 Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Mon, 11 Jan 2021 16:17:04 +0100 +Subject: ARM: imx: build suspend-imx6.S with arm instruction set + +From: Max Krummenacher + +commit a88afa46b86ff461c89cc33fc3a45267fff053e8 upstream. + +When the kernel is configured to use the Thumb-2 instruction set +"suspend-to-memory" fails to resume. Observed on a Colibri iMX6ULL +(i.MX 6ULL) and Apalis iMX6 (i.MX 6Q). + +It looks like the CPU resumes unconditionally in ARM instruction mode +and then chokes on the presented Thumb-2 code it should execute. + +Fix this by using the arm instruction set for all code in +suspend-imx6.S. + +Signed-off-by: Max Krummenacher +Fixes: df595746fa69 ("ARM: imx: add suspend in ocram support for i.mx6q") +Acked-by: Oleksandr Suvorov +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-imx/suspend-imx6.S | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/mach-imx/suspend-imx6.S ++++ b/arch/arm/mach-imx/suspend-imx6.S +@@ -73,6 +73,7 @@ + #define MX6Q_CCM_CCR 0x0 + + .align 3 ++ .arm + + .macro sync_l2_cache + diff --git a/queue-4.14/netfilter-nft_dynset-add-timeout-extension-to-template.patch b/queue-4.14/netfilter-nft_dynset-add-timeout-extension-to-template.patch new file mode 100644 index 00000000000..ee5f878615d --- /dev/null +++ b/queue-4.14/netfilter-nft_dynset-add-timeout-extension-to-template.patch @@ -0,0 +1,37 @@ +From 0c5b7a501e7400869ee905b4f7af3d6717802bcb Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso +Date: Sat, 16 Jan 2021 19:20:15 +0100 +Subject: netfilter: nft_dynset: add timeout extension to template + +From: Pablo Neira Ayuso + +commit 0c5b7a501e7400869ee905b4f7af3d6717802bcb upstream. + +Otherwise, the newly create element shows no timeout when listing the +ruleset. If the set definition does not specify a default timeout, then +the set element only shows the expiration time, but not the timeout. +This is a problem when restoring a stateful ruleset listing since it +skips the timeout policy entirely. + +Fixes: 22fe54d5fefc ("netfilter: nf_tables: add support for dynamic set updates") +Signed-off-by: Pablo Neira Ayuso +Signed-off-by: Greg Kroah-Hartman + +--- + net/netfilter/nft_dynset.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/net/netfilter/nft_dynset.c ++++ b/net/netfilter/nft_dynset.c +@@ -205,8 +205,10 @@ static int nft_dynset_init(const struct + nft_set_ext_add_length(&priv->tmpl, NFT_SET_EXT_EXPR, + priv->expr->ops->size); + if (set->flags & NFT_SET_TIMEOUT) { +- if (timeout || set->timeout) ++ if (timeout || set->timeout) { ++ nft_set_ext_add(&priv->tmpl, NFT_SET_EXT_TIMEOUT); + nft_set_ext_add(&priv->tmpl, NFT_SET_EXT_EXPIRATION); ++ } + } + + priv->timeout = timeout; diff --git a/queue-4.14/series b/queue-4.14/series index 93dd3b02d71..70ab05d0cd3 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -11,3 +11,6 @@ xen-fix-xenstore-initialisation-for-xs_local.patch leds-trigger-fix-potential-deadlock-with-libata.patch mt7601u-fix-kernel-crash-unplugging-the-device.patch mt7601u-fix-rx-buffer-refcounting.patch +xen-blkfront-allow-discard-nodes-to-be-optional.patch +arm-imx-build-suspend-imx6.s-with-arm-instruction-set.patch +netfilter-nft_dynset-add-timeout-extension-to-template.patch diff --git a/queue-4.14/xen-blkfront-allow-discard-nodes-to-be-optional.patch b/queue-4.14/xen-blkfront-allow-discard-nodes-to-be-optional.patch new file mode 100644 index 00000000000..5be16d66bda --- /dev/null +++ b/queue-4.14/xen-blkfront-allow-discard-nodes-to-be-optional.patch @@ -0,0 +1,77 @@ +From 0549cd67b01016b579047bce045b386202a8bcfc Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 19 Jan 2021 11:57:27 +0100 +Subject: xen-blkfront: allow discard-* nodes to be optional +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Roger Pau Monne + +commit 0549cd67b01016b579047bce045b386202a8bcfc upstream. + +This is inline with the specification described in blkif.h: + + * discard-granularity: should be set to the physical block size if + node is not present. + * discard-alignment, discard-secure: should be set to 0 if node not + present. + +This was detected as QEMU would only create the discard-granularity +node but not discard-alignment, and thus the setup done in +blkfront_setup_discard would fail. + +Fix blkfront_setup_discard to not fail on missing nodes, and also fix +blkif_set_queue_limits to set the discard granularity to the physical +block size if none is specified in xenbus. + +Fixes: ed30bf317c5ce ('xen-blkfront: Handle discard requests.') +Reported-by: Arthur Borsboom +Signed-off-by: Roger Pau Monné +Reviewed-by: Juergen Gross +Tested-By: Arthur Borsboom +Link: https://lore.kernel.org/r/20210119105727.95173-1-roger.pau@citrix.com +Signed-off-by: Juergen Gross +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/block/xen-blkfront.c | 20 +++++++------------- + 1 file changed, 7 insertions(+), 13 deletions(-) + +--- a/drivers/block/xen-blkfront.c ++++ b/drivers/block/xen-blkfront.c +@@ -937,7 +937,8 @@ static void blkif_set_queue_limits(struc + if (info->feature_discard) { + queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, rq); + blk_queue_max_discard_sectors(rq, get_capacity(gd)); +- rq->limits.discard_granularity = info->discard_granularity; ++ rq->limits.discard_granularity = info->discard_granularity ?: ++ info->physical_sector_size; + rq->limits.discard_alignment = info->discard_alignment; + if (info->feature_secdiscard) + queue_flag_set_unlocked(QUEUE_FLAG_SECERASE, rq); +@@ -2155,19 +2156,12 @@ static void blkfront_closing(struct blkf + + static void blkfront_setup_discard(struct blkfront_info *info) + { +- int err; +- unsigned int discard_granularity; +- unsigned int discard_alignment; +- + info->feature_discard = 1; +- err = xenbus_gather(XBT_NIL, info->xbdev->otherend, +- "discard-granularity", "%u", &discard_granularity, +- "discard-alignment", "%u", &discard_alignment, +- NULL); +- if (!err) { +- info->discard_granularity = discard_granularity; +- info->discard_alignment = discard_alignment; +- } ++ info->discard_granularity = xenbus_read_unsigned(info->xbdev->otherend, ++ "discard-granularity", ++ 0); ++ info->discard_alignment = xenbus_read_unsigned(info->xbdev->otherend, ++ "discard-alignment", 0); + info->feature_secdiscard = + !!xenbus_read_unsigned(info->xbdev->otherend, "discard-secure", + 0);