rebase patches for eoan
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
		
							parent
							
								
									cdc3f700b8
								
							
						
					
					
						commit
						ba68212d64
					
				@ -21,7 +21,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
 1 file changed, 7 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
 | 
			
		||||
index 87f1fc9801d7..4ef868f1f244 100755
 | 
			
		||||
index 2339f86126cb..643657404049 100755
 | 
			
		||||
--- a/scripts/mkcompile_h
 | 
			
		||||
+++ b/scripts/mkcompile_h
 | 
			
		||||
@@ -33,10 +33,14 @@ else
 | 
			
		||||
 | 
			
		||||
@ -19,10 +19,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
 1 file changed, 1 insertion(+), 4 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
 | 
			
		||||
index 808e2b914015..b0ad54384826 100644
 | 
			
		||||
index d174d3a566aa..885e18c72c87 100644
 | 
			
		||||
--- a/net/bridge/br_stp_if.c
 | 
			
		||||
+++ b/net/bridge/br_stp_if.c
 | 
			
		||||
@@ -259,10 +259,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
 | 
			
		||||
@@ -256,10 +256,7 @@ bool br_stp_recalculate_bridge_id(struct net_bridge *br)
 | 
			
		||||
 		return false;
 | 
			
		||||
 
 | 
			
		||||
 	list_for_each_entry(p, &br->port_list, list) {
 | 
			
		||||
 | 
			
		||||
@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
 2 files changed, 111 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
 | 
			
		||||
index 3dda6833f586..241de26a2f17 100644
 | 
			
		||||
index 2d2b797cbaee..cf188fa76276 100644
 | 
			
		||||
--- a/Documentation/admin-guide/kernel-parameters.txt
 | 
			
		||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
 | 
			
		||||
@@ -3287,6 +3287,15 @@
 | 
			
		||||
@@ -3361,6 +3361,15 @@
 | 
			
		||||
 				Also, it enforces the PCI Local Bus spec
 | 
			
		||||
 				rule that those bits should be 0 in system reset
 | 
			
		||||
 				events (useful for kexec/kdump cases).
 | 
			
		||||
@ -75,10 +75,10 @@ index 3dda6833f586..241de26a2f17 100644
 | 
			
		||||
 				Safety option to keep boot IRQs enabled. This
 | 
			
		||||
 				should never be necessary.
 | 
			
		||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
 | 
			
		||||
index 66eac47bbdd6..315e170523d8 100644
 | 
			
		||||
index 4558d1192817..22104194fc8d 100644
 | 
			
		||||
--- a/drivers/pci/quirks.c
 | 
			
		||||
+++ b/drivers/pci/quirks.c
 | 
			
		||||
@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
 | 
			
		||||
@@ -193,6 +193,106 @@ static int __init pci_apply_final_quirks(void)
 | 
			
		||||
 }
 | 
			
		||||
 fs_initcall_sync(pci_apply_final_quirks);
 | 
			
		||||
 
 | 
			
		||||
@ -185,7 +185,7 @@ index 66eac47bbdd6..315e170523d8 100644
 | 
			
		||||
 /*
 | 
			
		||||
  * Decoding should be disabled for a PCI device during BAR sizing to avoid
 | 
			
		||||
  * conflict. But doing so may cause problems on host bridge and perhaps other
 | 
			
		||||
@@ -4564,6 +4664,8 @@ static const struct pci_dev_acs_enabled {
 | 
			
		||||
@@ -4567,6 +4667,8 @@ static const struct pci_dev_acs_enabled {
 | 
			
		||||
 	{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
 | 
			
		||||
 	/* APM X-Gene */
 | 
			
		||||
 	{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
 | 
			
		||||
 | 
			
		||||
@ -13,10 +13,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
 | 
			
		||||
index f48f911d4663..5d906fc47e98 100644
 | 
			
		||||
index c6a91b044d8d..aa972e4412f8 100644
 | 
			
		||||
--- a/virt/kvm/kvm_main.c
 | 
			
		||||
+++ b/virt/kvm/kvm_main.c
 | 
			
		||||
@@ -77,7 +77,7 @@ module_param(halt_poll_ns, uint, 0644);
 | 
			
		||||
@@ -75,7 +75,7 @@ module_param(halt_poll_ns, uint, 0644);
 | 
			
		||||
 EXPORT_SYMBOL_GPL(halt_poll_ns);
 | 
			
		||||
 
 | 
			
		||||
 /* Default doubles per-vcpu halt_poll_ns. */
 | 
			
		||||
 | 
			
		||||
@ -18,10 +18,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
 | 
			
		||||
index fb467d310c99..3759f52b5966 100644
 | 
			
		||||
index c030c96fc81a..6ca9a886cbb8 100644
 | 
			
		||||
--- a/arch/x86/kvm/vmx/vmx.c
 | 
			
		||||
+++ b/arch/x86/kvm/vmx/vmx.c
 | 
			
		||||
@@ -106,7 +106,7 @@ module_param(enable_apicv, bool, S_IRUGO);
 | 
			
		||||
@@ -103,7 +103,7 @@ module_param(enable_apicv, bool, S_IRUGO);
 | 
			
		||||
  * VMX and be a hypervisor for its own guests. If nested=0, guests may not
 | 
			
		||||
  * use VMX instructions.
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
@ -1,41 +0,0 @@
 | 
			
		||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Ilya Dryomov <idryomov@gmail.com>
 | 
			
		||||
Date: Fri, 3 May 2019 17:27:03 +0200
 | 
			
		||||
Subject: [PATCH] rbd: don't assert on writes to snapshots
 | 
			
		||||
 | 
			
		||||
The check added in commit 721c7fc701c7 ("block: fail op_is_write()
 | 
			
		||||
requests to read-only partitions") was lifted in commit a32e236eb93e
 | 
			
		||||
("Partially revert "block: fail op_is_write() requests to read-only
 | 
			
		||||
partitions"").  Basic things like user triggered writes and discards
 | 
			
		||||
are still caught, but internal kernel users can submit anything.  In
 | 
			
		||||
particular, ext4 will attempt to write to the superblock if it detects
 | 
			
		||||
errors in the filesystem, even if the filesystem is mounted read-only
 | 
			
		||||
on a read-only partition.
 | 
			
		||||
 | 
			
		||||
The assert is overkill regardless.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
 | 
			
		||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
---
 | 
			
		||||
 drivers/block/rbd.c | 8 ++++++--
 | 
			
		||||
 1 file changed, 6 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
 | 
			
		||||
index 1e92b61d0bd5..339cdd4062bb 100644
 | 
			
		||||
--- a/drivers/block/rbd.c
 | 
			
		||||
+++ b/drivers/block/rbd.c
 | 
			
		||||
@@ -3664,8 +3664,12 @@ static void rbd_queue_workfn(struct work_struct *work)
 | 
			
		||||
 		goto err_rq;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-	rbd_assert(op_type == OBJ_OP_READ ||
 | 
			
		||||
-		   rbd_dev->spec->snap_id == CEPH_NOSNAP);
 | 
			
		||||
+	if (op_type != OBJ_OP_READ && rbd_dev->spec->snap_id != CEPH_NOSNAP) {
 | 
			
		||||
+		rbd_warn(rbd_dev, "%s on read-only snapshot",
 | 
			
		||||
+			 obj_op_name(op_type));
 | 
			
		||||
+		result = -EIO;
 | 
			
		||||
+		goto err;
 | 
			
		||||
+	}
 | 
			
		||||
 
 | 
			
		||||
 	/*
 | 
			
		||||
 	 * Quit early if the mapped snapshot no longer exists.  It's
 | 
			
		||||
@ -1,103 +0,0 @@
 | 
			
		||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
Date: Wed, 3 Apr 2019 18:41:50 +0200
 | 
			
		||||
Subject: [PATCH] x86/fpu: backport copy_kernel_to_XYZ_err helpers
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
partial cherry-pick from upstream 5.2 "86/fpu: Restore from kernel
 | 
			
		||||
memory on the 64-bit path too"
 | 
			
		||||
commit 926b21f37b072ae4c117052de45a975c6d468fec
 | 
			
		||||
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
 | 
			
		||||
 | 
			
		||||
Namely, only backport the added helpers, none of the semantic changes.
 | 
			
		||||
 | 
			
		||||
relevant parts of the original commit message:
 | 
			
		||||
> In order to avoid that mess, copy the FPU state from userland, validate
 | 
			
		||||
> it and then load it. The copy_kernel_…() helpers are basically just
 | 
			
		||||
> like the old helpers except that they operate on kernel memory and the
 | 
			
		||||
> fault handler just sets the error value and the caller handles it.
 | 
			
		||||
 | 
			
		||||
Link: https://lkml.kernel.org/r/20190403164156.19645-22-bigeasy@linutronix.de
 | 
			
		||||
(partial cherry picked from commit 926b21f37b072ae4c117052de45a975c6d468fec)
 | 
			
		||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | 
			
		||||
---
 | 
			
		||||
 arch/x86/include/asm/fpu/internal.h | 43 +++++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 43 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
 | 
			
		||||
index fa2c93cb42a2..f3193ab0a2fb 100644
 | 
			
		||||
--- a/arch/x86/include/asm/fpu/internal.h
 | 
			
		||||
+++ b/arch/x86/include/asm/fpu/internal.h
 | 
			
		||||
@@ -122,6 +122,21 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
 | 
			
		||||
 	err;								\
 | 
			
		||||
 })
 | 
			
		||||
 
 | 
			
		||||
+#define kernel_insn_err(insn, output, input...)				\
 | 
			
		||||
+({									\
 | 
			
		||||
+	int err;							\
 | 
			
		||||
+	asm volatile("1:" #insn "\n\t"					\
 | 
			
		||||
+		     "2:\n"						\
 | 
			
		||||
+		     ".section .fixup,\"ax\"\n"				\
 | 
			
		||||
+		     "3:  movl $-1,%[err]\n"				\
 | 
			
		||||
+		     "    jmp  2b\n"					\
 | 
			
		||||
+		     ".previous\n"					\
 | 
			
		||||
+		     _ASM_EXTABLE(1b, 3b)				\
 | 
			
		||||
+		     : [err] "=r" (err), output				\
 | 
			
		||||
+		     : "0"(0), input);					\
 | 
			
		||||
+	err;								\
 | 
			
		||||
+})
 | 
			
		||||
+
 | 
			
		||||
 #define kernel_insn(insn, output, input...)				\
 | 
			
		||||
 	asm volatile("1:" #insn "\n\t"					\
 | 
			
		||||
 		     "2:\n"						\
 | 
			
		||||
@@ -158,6 +173,14 @@ static inline void copy_kernel_to_fxregs(struct fxregs_state *fx)
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+static inline int copy_kernel_to_fxregs_err(struct fxregs_state *fx)
 | 
			
		||||
+{
 | 
			
		||||
+	if (IS_ENABLED(CONFIG_X86_32))
 | 
			
		||||
+		return kernel_insn_err(fxrstor %[fx], "=m" (*fx), [fx] "m" (*fx));
 | 
			
		||||
+	else
 | 
			
		||||
+		return kernel_insn_err(fxrstorq %[fx], "=m" (*fx), [fx] "m" (*fx));
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 static inline int copy_user_to_fxregs(struct fxregs_state __user *fx)
 | 
			
		||||
 {
 | 
			
		||||
 	if (IS_ENABLED(CONFIG_X86_32))
 | 
			
		||||
@@ -175,6 +198,11 @@ static inline void copy_kernel_to_fregs(struct fregs_state *fx)
 | 
			
		||||
 	kernel_insn(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+static inline int copy_kernel_to_fregs_err(struct fregs_state *fx)
 | 
			
		||||
+{
 | 
			
		||||
+	return kernel_insn_err(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 static inline int copy_user_to_fregs(struct fregs_state __user *fx)
 | 
			
		||||
 {
 | 
			
		||||
 	return user_insn(frstor %[fx], "=m" (*fx), [fx] "m" (*fx));
 | 
			
		||||
@@ -400,6 +428,21 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
 | 
			
		||||
 	return err;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * Restore xstate from kernel space xsave area, return an error code instead of
 | 
			
		||||
+ * an exception.
 | 
			
		||||
+ */
 | 
			
		||||
+static inline int copy_kernel_to_xregs_err(struct xregs_state *xstate, u64 mask)
 | 
			
		||||
+{
 | 
			
		||||
+	u32 lmask = mask;
 | 
			
		||||
+	u32 hmask = mask >> 32;
 | 
			
		||||
+	int err;
 | 
			
		||||
+
 | 
			
		||||
+	XSTATE_OP(XRSTOR, xstate, lmask, hmask, err);
 | 
			
		||||
+
 | 
			
		||||
+	return err;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 /*
 | 
			
		||||
  * These must be called with preempt disabled. Returns
 | 
			
		||||
  * 'true' if the FPU state is still intact and we can
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user