+++ /dev/null
-From foo@baz Thu May 24 11:09:34 CEST 2018
-From: Marc Zyngier <marc.zyngier@arm.com>
-Date: Sun, 3 Dec 2017 17:50:00 +0000
-Subject: arm64: insn: Allow ADD/SUB (immediate) with LSL #12
-
-From: Marc Zyngier <marc.zyngier@arm.com>
-
-[ Upstream commit 11d764079c9f25d1da8e10906d54da7fefec5844 ]
-
-The encoder for ADD/SUB (immediate) can only cope with 12bit
-immediates, while there is an encoding for a 12bit immediate shifted
-by 12 bits to the left.
-
-Let's fix this small oversight by allowing the LSL_12 bit to be set.
-
-Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
-Acked-by: Catalin Marinas <catalin.marinas@arm.com>
-Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm64/kernel/insn.c | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kernel/insn.c
-+++ b/arch/arm64/kernel/insn.c
-@@ -35,6 +35,7 @@
-
- #define AARCH64_INSN_SF_BIT BIT(31)
- #define AARCH64_INSN_N_BIT BIT(22)
-+#define AARCH64_INSN_LSL_12 BIT(22)
-
- static int aarch64_insn_encoding_class[] = {
- AARCH64_INSN_CLS_UNKNOWN,
-@@ -899,9 +900,18 @@ u32 aarch64_insn_gen_add_sub_imm(enum aa
- return AARCH64_BREAK_FAULT;
- }
-
-+ /* We can't encode more than a 24bit value (12bit + 12bit shift) */
-+ if (imm & ~(BIT(24) - 1))
-+ goto out;
-+
-+ /* If we have something in the top 12 bits... */
- if (imm & ~(SZ_4K - 1)) {
-- pr_err("%s: invalid immediate encoding %d\n", __func__, imm);
-- return AARCH64_BREAK_FAULT;
-+ /* ... and in the low 12 bits -> error */
-+ if (imm & (SZ_4K - 1))
-+ goto out;
-+
-+ imm >>= 12;
-+ insn |= AARCH64_INSN_LSL_12;
- }
-
- insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
-@@ -909,6 +919,10 @@ u32 aarch64_insn_gen_add_sub_imm(enum aa
- insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
-
- return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, imm);
-+
-+out:
-+ pr_err("%s: invalid immediate encoding %d\n", __func__, imm);
-+ return AARCH64_BREAK_FAULT;
- }
-
- u32 aarch64_insn_gen_bitfield(enum aarch64_insn_register dst,
media-dmxdev-fix-error-code-for-invalid-ioctls.patch
media-don-t-let-tvp5150_get_vbi-go-out-of-vbi_ram_default-array.patch
media-ov5645-add-missing-of_node_put-in-error-path.patch
-arm64-insn-allow-add-sub-immediate-with-lsl-12.patch
media-cx23885-override-888-impactvcbe-crystal-frequency.patch
media-cx23885-set-subdev-host-data-to-clk_freq-pointer.patch
media-s3c-camif-fix-out-of-bounds-array-access.patch
+++ /dev/null
-From foo@baz Thu May 24 11:23:00 CEST 2018
-From: Marc Zyngier <marc.zyngier@arm.com>
-Date: Sun, 3 Dec 2017 17:50:00 +0000
-Subject: arm64: insn: Allow ADD/SUB (immediate) with LSL #12
-
-From: Marc Zyngier <marc.zyngier@arm.com>
-
-[ Upstream commit 11d764079c9f25d1da8e10906d54da7fefec5844 ]
-
-The encoder for ADD/SUB (immediate) can only cope with 12bit
-immediates, while there is an encoding for a 12bit immediate shifted
-by 12 bits to the left.
-
-Let's fix this small oversight by allowing the LSL_12 bit to be set.
-
-Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
-Acked-by: Catalin Marinas <catalin.marinas@arm.com>
-Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm64/kernel/insn.c | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kernel/insn.c
-+++ b/arch/arm64/kernel/insn.c
-@@ -35,6 +35,7 @@
-
- #define AARCH64_INSN_SF_BIT BIT(31)
- #define AARCH64_INSN_N_BIT BIT(22)
-+#define AARCH64_INSN_LSL_12 BIT(22)
-
- static int aarch64_insn_encoding_class[] = {
- AARCH64_INSN_CLS_UNKNOWN,
-@@ -764,9 +765,18 @@ u32 aarch64_insn_gen_add_sub_imm(enum aa
- return AARCH64_BREAK_FAULT;
- }
-
-+ /* We can't encode more than a 24bit value (12bit + 12bit shift) */
-+ if (imm & ~(BIT(24) - 1))
-+ goto out;
-+
-+ /* If we have something in the top 12 bits... */
- if (imm & ~(SZ_4K - 1)) {
-- pr_err("%s: invalid immediate encoding %d\n", __func__, imm);
-- return AARCH64_BREAK_FAULT;
-+ /* ... and in the low 12 bits -> error */
-+ if (imm & (SZ_4K - 1))
-+ goto out;
-+
-+ imm >>= 12;
-+ insn |= AARCH64_INSN_LSL_12;
- }
-
- insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
-@@ -774,6 +784,10 @@ u32 aarch64_insn_gen_add_sub_imm(enum aa
- insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
-
- return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, imm);
-+
-+out:
-+ pr_err("%s: invalid immediate encoding %d\n", __func__, imm);
-+ return AARCH64_BREAK_FAULT;
- }
-
- u32 aarch64_insn_gen_bitfield(enum aarch64_insn_register dst,
clk-samsung-exynos5250-fix-pll-rates.patch
clk-samsung-exynos3250-fix-pll-rates.patch
media-dmxdev-fix-error-code-for-invalid-ioctls.patch
-arm64-insn-allow-add-sub-immediate-with-lsl-12.patch
media-cx23885-override-888-impactvcbe-crystal-frequency.patch
media-s3c-camif-fix-out-of-bounds-array-access.patch
media-vb2-fix-videobuf2-to-map-correct-area.patch