Skip to contentSkip to conversation

Linux 5.10.27

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 30, 2021 Stable branch

lore
Share & tools
lore
author maintainer
#1 lore raw
In reply to Greg Kroah-Hartman
Documentation/virt/kvm/api.rst +4 -2
index a5d27553d59c..cd8a58556804 100644
@@ -4810,8 +4810,10 @@ If an MSR access is not permitted through the filtering, it generates a
 allows user space to deflect and potentially handle various MSR accesses
 into user space.
 
-If a vCPU is in running state while this ioctl is invoked, the vCPU may
-experience inconsistent filtering behavior on MSR accesses.
+Note, invoking this ioctl with a vCPU is running is inherently racy.  However,
+KVM does guarantee that vCPUs will see either the previous filter or the new
+filter, e.g. MSRs with identical settings in both the old and new filter will
+have deterministic behavior.
 
 
 5. The kvm_run structure
Makefile +3 -2
index d4b87e604762..4801cc25e347 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 26
+SUBLEVEL = 27
 EXTRAVERSION =
 NAME = Dare mighty things
 
@@ -265,7 +265,8 @@ no-dot-config-targets := $(clean-targets) \
 			 $(version_h) headers headers_% archheaders archscripts \
 			 %asm-generic kernelversion %src-pkg dt_binding_check \
 			 outputmakefile
-no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease
+no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease \
+			  image_name
 single-targets := %.a %.i %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
 
 config-build	:=
arch/arm/boot/dts/at91-sam9x60ek.dts +0 -8
index 73b6b1f89de9..775ceb3acb6c 100644
@@ -334,14 +334,6 @@ ethernet-phy@0 {
 };
 
 &pinctrl {
-	atmel,mux-mask = <
-			 /*	A	B	C	*/
-			 0xFFFFFE7F 0xC0E0397F 0xEF00019D	/* pioA */
-			 0x03FFFFFF 0x02FC7E68 0x00780000	/* pioB */
-			 0xffffffff 0xF83FFFFF 0xB800F3FC	/* pioC */
-			 0x003FFFFF 0x003F8000 0x00000000	/* pioD */
-			 >;
-
 	adc {
 		pinctrl_adc_default: adc_default {
 			atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
arch/arm/boot/dts/at91-sama5d27_som1.dtsi +2 -2
index b1f994c0ae79..e4824abb385a 100644
@@ -84,8 +84,8 @@ macb0: ethernet@f8008000 {
 				pinctrl-0 = <&pinctrl_macb0_default>;
 				phy-mode = "rmii";
 
-				ethernet-phy@0 {
-					reg = <0x0>;
+				ethernet-phy@7 {
+					reg = <0x7>;
 					interrupt-parent = <&pioA>;
 					interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
 					pinctrl-names = "default";
arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dts +1 -0
index ecbb2cc5b9ab..79cc45728cd2 100644
@@ -14,5 +14,6 @@ / {
 };
 
 &gpmi {
+	fsl,use-minimum-ecc;
 	status = "okay";
 };
arch/arm/boot/dts/sam9x60.dtsi +9 -0
index 84066c1298df..ec45ced3cde6 100644
@@ -606,6 +606,15 @@ pinctrl: pinctrl@fffff400 {
 				compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
 				ranges = <0xfffff400 0xfffff400 0x800>;
 
+				/* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
+				atmel,mux-mask = <
+						 /*	A	B	C	*/
+						 0xffffffff 0xffe03fff 0xef00019d	/* pioA */
+						 0x03ffffff 0x02fc7e7f 0x00780000	/* pioB */
+						 0xffffffff 0xffffffff 0xf83fffff	/* pioC */
+						 0x003fffff 0x003f8000 0x00000000	/* pioD */
+						 >;
+
 				pioA: gpio@fffff400 {
 					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
 					reg = <0xfffff400 0x200>;
arch/arm/mach-omap2/sr_device.c +58 -17

115 lines not on this page · raw message

arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +1 -0
index 6a2c09199047..5fd3ea2028c6 100644
@@ -192,6 +192,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +1 -0
index 0464b8aa4bc4..b1b9544d8e7f 100644
@@ -322,6 +322,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <0 75 0x4>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +1 -0
index 0b4545012d43..acf2ae2e151a 100644
@@ -325,6 +325,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/kernel/crash_dump.c +2 -0
index e6e284265f19..58303a9ec32c 100644
@@ -64,5 +64,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
 ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos)
 {
 	memcpy(buf, phys_to_virt((phys_addr_t)*ppos), count);
+	*ppos += count;
+
 	return count;
 }
arch/arm64/kernel/stacktrace.c +5 -4
index fa56af1a59c3..dbce0dcf4cc0 100644
@@ -199,8 +199,9 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
 
 #ifdef CONFIG_STACKTRACE
 
-void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
-		     struct task_struct *task, struct pt_regs *regs)
+noinline void arch_stack_walk(stack_trace_consume_fn consume_entry,
+			      void *cookie, struct task_struct *task,
+			      struct pt_regs *regs)
 {
 	struct stackframe frame;
 
@@ -208,8 +209,8 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		start_backtrace(&frame, regs->regs[29], regs->pc);
 	else if (task == current)
 		start_backtrace(&frame,
-				(unsigned long)__builtin_frame_address(0),
-				(unsigned long)arch_stack_walk);
+				(unsigned long)__builtin_frame_address(1),
+				(unsigned long)__builtin_return_address(0));
 	else
 		start_backtrace(&frame, thread_saved_fp(task),
 				thread_saved_pc(task));
arch/ia64/include/asm/syscall.h +1 -1
index 6c6f16e409a8..0d23c0049301 100644
@@ -32,7 +32,7 @@ static inline void syscall_rollback(struct task_struct *task,
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	return regs->r10 == -1 ? regs->r8:0;
+	return regs->r10 == -1 ? -regs->r8:0;
 }
 
 static inline long syscall_get_return_value(struct task_struct *task,
arch/ia64/kernel/ptrace.c +18 -6
index 75c070aed81e..dad3a605cb7e 100644
@@ -2010,27 +2010,39 @@ static void syscall_get_set_args_cb(struct unw_frame_info *info, void *data)
 {
 	struct syscall_get_set_args *args = data;
 	struct pt_regs *pt = args->regs;
-	unsigned long *krbs, cfm, ndirty;
+	unsigned long *krbs, cfm, ndirty, nlocals, nouts;
 	int i, count;
 
 	if (unw_unwind_to_user(info) < 0)
 		return;
 
+	/*
+	 * We get here via a few paths:
+	 * - break instruction: cfm is shared with caller.
+	 *   syscall args are in out= regs, locals are non-empty.
+	 * - epsinstruction: cfm is set by br.call
+	 *   locals don't exist.
+	 *
+	 * For both cases argguments are reachable in cfm.sof - cfm.sol.
+	 * CFM: [ ... | sor: 17..14 | sol : 13..7 | sof : 6..0 ]
+	 */
 	cfm = pt->cr_ifs;
+	nlocals = (cfm >> 7) & 0x7f; /* aka sol */
+	nouts = (cfm & 0x7f) - nlocals; /* aka sof - sol */
 	krbs = (unsigned long *)info->task + IA64_RBS_OFFSET/8;
 	ndirty = ia64_rse_num_regs(krbs, krbs + (pt->loadrs >> 19));
 
 	count = 0;
 	if (in_syscall(pt))
-		count = min_t(int, args->n, cfm & 0x7f);
+		count = min_t(int, args->n, nouts);
 
+	/* Iterate over outs. */
 	for (i = 0; i < count; i++) {
+		int j = ndirty + nlocals + i + args->i;
 		if (args->rw)
-			*ia64_rse_skip_regs(krbs, ndirty + i + args->i) =
-				args->args[i];
+			*ia64_rse_skip_regs(krbs, j) = args->args[i];
 		else
-			args->args[i] = *ia64_rse_skip_regs(krbs,
-				ndirty + i + args->i);
+			args->args[i] = *ia64_rse_skip_regs(krbs, j);
 	}
 
 	if (!args->rw) {
arch/powerpc/include/asm/dcr-native.h +4 -4
index 7141ccea8c94..a92059964579 100644
@@ -53,8 +53,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
 #define mfdcr(rn)						\
 	({unsigned int rval;					\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mfdcr %0," __stringify(rn)	\
-		              : "=r" (rval));			\
+		asm volatile("mfdcr %0, %1" : "=r" (rval)	\
+			      : "n" (rn));			\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		rval = mfdcrx(rn);				\
 	else							\
@@ -64,8 +64,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
 #define mtdcr(rn, v)						\
 do {								\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mtdcr " __stringify(rn) ",%0"	\
-			      : : "r" (v)); 			\
+		asm volatile("mtdcr %0, %1"			\
+			      : : "n" (rn), "r" (v));		\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		mtdcrx(rn, v);					\
 	else							\
arch/sparc/kernel/traps_64.c +6 -7
index d92e5eaa4c1d..a850dccd78ea 100644
@@ -275,14 +275,13 @@ bool is_no_fault_exception(struct pt_regs *regs)
 			asi = (regs->tstate >> 24); /* saved %asi       */
 		else
 			asi = (insn >> 5);	    /* immediate asi    */
-		if ((asi & 0xf2) == ASI_PNF) {
-			if (insn & 0x1000000) {     /* op3[5:4]=3       */
-				handle_ldf_stq(insn, regs);
-				return true;
-			} else if (insn & 0x200000) { /* op3[2], stores */
+		if ((asi & 0xf6) == ASI_PNF) {
+			if (insn & 0x200000)        /* op3[2], stores   */
 				return false;
-			}
-			handle_ld_nf(insn, regs);
+			if (insn & 0x1000000)       /* op3[5:4]=3 (fp)  */
+				handle_ldf_stq(insn, regs);
+			else
+				handle_ld_nf(insn, regs);
 			return true;
 		}
 	}
arch/x86/include/asm/kvm_host.h +9 -5
index 7e5f33a0d0e2..02d4c74d30e2 100644
@@ -890,6 +890,12 @@ enum kvm_irqchip_mode {
 	KVM_IRQCHIP_SPLIT,        /* created with KVM_CAP_SPLIT_IRQCHIP */
 };
 
+struct kvm_x86_msr_filter {
+	u8 count;
+	bool default_allow:1;
+	struct msr_bitmap_range ranges[16];
+};
+
 #define APICV_INHIBIT_REASON_DISABLE    0
 #define APICV_INHIBIT_REASON_HYPERV     1
 #define APICV_INHIBIT_REASON_NESTED     2
@@ -985,14 +991,12 @@ struct kvm_arch {
 	bool guest_can_read_msr_platform_info;
 	bool exception_payload_enabled;
 
+	bool bus_lock_detection_enabled;
+
 	/* Deflect RDMSR and WRMSR to user space when they trigger a #GP */
 	u32 user_space_msr_mask;
 
-	struct {
-		u8 count;
-		bool default_allow:1;
-		struct msr_bitmap_range ranges[16];
-	} msr_filter;
+	struct kvm_x86_msr_filter __rcu *msr_filter;
 
 	struct kvm_pmu_event_filter *pmu_event_filter;
 	struct task_struct *nx_lpage_recovery_thread;
arch/x86/include/asm/static_call.h +7 -0
index c37f11999d0c..cbb67b6030f9 100644
@@ -37,4 +37,11 @@
 #define ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name)			\
 	__ARCH_DEFINE_STATIC_CALL_TRAMP(name, "ret; nop; nop; nop; nop")
 
+
+#define ARCH_ADD_TRAMP_KEY(name)					\
+	asm(".pushsection .static_call_tramp_key, \"a\"		\n"	\
+	    ".long " STATIC_CALL_TRAMP_STR(name) " - .		\n"	\
+	    ".long " STATIC_CALL_KEY_STR(name) " - .		\n"	\
+	    ".popsection					\n")
+
 #endif /* _ASM_STATIC_CALL_H */
arch/x86/include/asm/xen/page.h +0 -12
index ab09af613788..5941e18edd5a 100644
@@ -86,18 +86,6 @@ clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 }
 #endif
 
-/*
- * The maximum amount of extra memory compared to the base size.  The
- * main scaling factor is the size of struct page.  At extreme ratios
- * of base:extra, all the base memory can be filled with page
- * structures for the extra memory, leaving no space for anything
- * else.
- *
- * 10x seems like a reasonable balance between scaling flexibility and
- * leaving a practically usable system.
- */
-#define XEN_EXTRA_MEM_RATIO	(10)
-
 /*
  * Helper functions to write or read unsigned long values to/from
  * memory, when the access may fault.
arch/x86/kvm/x86.c +65 -44

187 lines not on this page · raw message

arch/x86/mm/mem_encrypt.c +1 -1
index f80d10d39cf6..cc85e199108e 100644
@@ -231,7 +231,7 @@ static void __init __set_clr_pte_enc(pte_t *kpte, int level, bool enc)
 	if (pgprot_val(old_prot) == pgprot_val(new_prot))
 		return;
 
-	pa = pfn << page_level_shift(level);
+	pa = pfn << PAGE_SHIFT;
 	size = page_level_size(level);
 
 	/*
arch/x86/xen/p2m.c +2 -5
index 60da7e793385..56e0f290fef6 100644
@@ -98,8 +98,8 @@ EXPORT_SYMBOL_GPL(xen_p2m_size);
 unsigned long xen_max_p2m_pfn __read_mostly;
 EXPORT_SYMBOL_GPL(xen_max_p2m_pfn);
 
-#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT
-#define P2M_LIMIT CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT
+#ifdef CONFIG_XEN_MEMORY_HOTPLUG_LIMIT
+#define P2M_LIMIT CONFIG_XEN_MEMORY_HOTPLUG_LIMIT
 #else
 #define P2M_LIMIT 0
 #endif
@@ -416,9 +416,6 @@ void __init xen_vmalloc_p2m_tree(void)
 	xen_p2m_last_pfn = xen_max_p2m_pfn;
 
 	p2m_limit = (phys_addr_t)P2M_LIMIT * 1024 * 1024 * 1024 / PAGE_SIZE;
-	if (!p2m_limit && IS_ENABLED(CONFIG_XEN_UNPOPULATED_ALLOC))
-		p2m_limit = xen_start_info->nr_pages * XEN_EXTRA_MEM_RATIO;
-
 	vm.flags = VM_ALLOC;
 	vm.size = ALIGN(sizeof(unsigned long) * max(xen_max_p2m_pfn, p2m_limit),
 			PMD_SIZE * PMDS_PER_MID_PAGE);
arch/x86/xen/setup.c +14 -2
index 1a3b75652fa4..8bfc10330107 100644
@@ -59,6 +59,18 @@ static struct {
 } xen_remap_buf __initdata __aligned(PAGE_SIZE);
 static unsigned long xen_remap_mfn __initdata = INVALID_P2M_ENTRY;
 
+/*
+ * The maximum amount of extra memory compared to the base size.  The
+ * main scaling factor is the size of struct page.  At extreme ratios
+ * of base:extra, all the base memory can be filled with page
+ * structures for the extra memory, leaving no space for anything
+ * else.
+ *
+ * 10x seems like a reasonable balance between scaling flexibility and
+ * leaving a practically usable system.
+ */
+#define EXTRA_MEM_RATIO		(10)
+
 static bool xen_512gb_limit __initdata = IS_ENABLED(CONFIG_XEN_512GB);
 
 static void __init xen_parse_512gb(void)
@@ -778,13 +790,13 @@ char * __init xen_memory_setup(void)
 		extra_pages += max_pages - max_pfn;
 
 	/*
-	 * Clamp the amount of extra memory to a XEN_EXTRA_MEM_RATIO
+	 * Clamp the amount of extra memory to a EXTRA_MEM_RATIO
 	 * factor the base size.
 	 *
 	 * Make sure we have no memory above max_pages, as this area
 	 * isn't handled by the p2m management.
 	 */
-	extra_pages = min3(XEN_EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)),
+	extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)),
 			   extra_pages, max_pages - max_pfn);
 	i = 0;
 	addr = xen_e820_table.entries[0].addr;
block/blk-cgroup-rwstat.c +2 -1
index 85d5790ac49b..3304e841df7c 100644
@@ -109,6 +109,7 @@ void blkg_rwstat_recursive_sum(struct blkcg_gq *blkg, struct blkcg_policy *pol,
 
 	lockdep_assert_held(&blkg->q->queue_lock);
 
+	memset(sum, 0, sizeof(*sum));
 	rcu_read_lock();
 	blkg_for_each_descendant_pre(pos_blkg, pos_css, blkg) {
 		struct blkg_rwstat *rwstat;
@@ -122,7 +123,7 @@ void blkg_rwstat_recursive_sum(struct blkcg_gq *blkg, struct blkcg_policy *pol,
 			rwstat = (void *)pos_blkg + off;
 
 		for (i = 0; i < BLKG_RWSTAT_NR; i++)
-			sum->cnt[i] = blkg_rwstat_read_counter(rwstat, i);
+			sum->cnt[i] += blkg_rwstat_read_counter(rwstat, i);
 	}
 	rcu_read_unlock();
 }
block/blk-merge.c +8 -0
index 97b7c2821565..7cdd56696647 100644
@@ -375,6 +375,14 @@ unsigned int blk_recalc_rq_segments(struct request *rq)
 	switch (bio_op(rq->bio)) {
 	case REQ_OP_DISCARD:
 	case REQ_OP_SECURE_ERASE:
+		if (queue_max_discard_segments(rq->q) > 1) {
+			struct bio *bio = rq->bio;
+
+			for_each_bio(bio)
+				nr_phys_segs++;
+			return nr_phys_segs;
+		}
+		return 1;
 	case REQ_OP_WRITE_ZEROES:
 		return 0;
 	case REQ_OP_WRITE_SAME:
block/blk-zoned.c +1 -1
index 4676c6f00489..ab7d7ebcf6dd 100644
@@ -240,7 +240,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op,
 		 */
 		if (op == REQ_OP_ZONE_RESET &&
 		    blkdev_allow_reset_all_zones(bdev, sector, nr_sectors)) {
-			bio->bi_opf = REQ_OP_ZONE_RESET_ALL;
+			bio->bi_opf = REQ_OP_ZONE_RESET_ALL | REQ_SYNC;
 			break;
 		}
 
block/genhd.c +1 -3
index ec6264e2ed67..796baf761202 100644
@@ -732,10 +732,8 @@ static void register_disk(struct device *parent, struct gendisk *disk,
 	disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj);
 	disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
 
-	if (disk->flags & GENHD_FL_HIDDEN) {
-		dev_set_uevent_suppress(ddev, 0);
+	if (disk->flags & GENHD_FL_HIDDEN)
 		return;
-	}
 
 	disk_scan_partitions(disk);
 
drivers/acpi/acpica/nsaccess.c +1 -2
index 3f045b5953b2..a0c1a665dfc1 100644
@@ -99,13 +99,12 @@ acpi_status acpi_ns_root_initialize(void)
 		 * just create and link the new node(s) here.
 		 */
 		new_node =
-		    ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_namespace_node));
+		    acpi_ns_create_node(*ACPI_CAST_PTR(u32, init_val->name));
 		if (!new_node) {
 			status = AE_NO_MEMORY;
 			goto unlock_and_exit;
 		}
 
-		ACPI_COPY_NAMESEG(new_node->name.ascii, init_val->name);
 		new_node->descriptor_type = ACPI_DESC_TYPE_NAMED;
 		new_node->type = init_val->type;
 
drivers/acpi/internal.h +5 -1
index aee023ad0237..a958ad60a339 100644
@@ -9,6 +9,8 @@
 #ifndef _ACPI_INTERNAL_H_
 #define _ACPI_INTERNAL_H_
 
+#include <linux/idr.h>
+
 #define PREFIX "ACPI: "
 
 int early_acpi_osi_init(void);
@@ -96,9 +98,11 @@ void acpi_scan_table_handler(u32 event, void *table, void *context);
 
 extern struct list_head acpi_bus_id_list;
 
+#define ACPI_MAX_DEVICE_INSTANCES	4096
+
 struct acpi_device_bus_id {
 	const char *bus_id;
-	unsigned int instance_no;
+	struct ida instance_ida;
 	struct list_head node;
 };
 
drivers/acpi/scan.c +53 -35

128 lines not on this page · raw message

drivers/acpi/video_detect.c +1 -0
index 811d298637cb..83cd4c95faf0 100644
@@ -147,6 +147,7 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		},
 	},
 	{
+	.callback = video_detect_force_vendor,
 	.ident = "Sony VPCEH3U1E",
 	.matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
drivers/atm/eni.c +2 -1
index 316a9947541f..b574cce98dc3 100644
@@ -2260,7 +2260,8 @@ static int eni_init_one(struct pci_dev *pci_dev,
 	return rc;
 
 err_eni_release:
-	eni_do_release(dev);
+	dev->phy = NULL;
+	iounmap(ENI_DEV(dev)->ioaddr);
 err_unregister:
 	atm_dev_deregister(dev);
 err_free_consistent:
drivers/atm/idt77105.c +2 -2
index 3c081b6171a8..bfca7b8a6f31 100644
@@ -262,7 +262,7 @@ static int idt77105_start(struct atm_dev *dev)
 {
 	unsigned long flags;
 
-	if (!(dev->dev_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	PRIV(dev)->dev = dev;
 	spin_lock_irqsave(&idt77105_priv_lock, flags);
@@ -337,7 +337,7 @@ static int idt77105_stop(struct atm_dev *dev)
                 else
                     idt77105_all = walk->next;
 	        dev->phy = NULL;
-                dev->dev_data = NULL;
+                dev->phy_data = NULL;
                 kfree(walk);
                 break;
             }
drivers/atm/lanai.c +4 -1
index ac811cfa6843..92edd100a394 100644
@@ -2234,6 +2234,7 @@ static int lanai_dev_open(struct atm_dev *atmdev)
 	conf1_write(lanai);
 #endif
 	iounmap(lanai->base);
+	lanai->base = NULL;
     error_pci:
 	pci_disable_device(lanai->pci);
     error:
@@ -2246,6 +2247,8 @@ static int lanai_dev_open(struct atm_dev *atmdev)
 static void lanai_dev_close(struct atm_dev *atmdev)
 {
 	struct lanai_dev *lanai = (struct lanai_dev *) atmdev->dev_data;
+	if (lanai->base==NULL)
+		return;
 	printk(KERN_INFO DEV_LABEL "(itf %d): shutting down interface\n",
 	    lanai->number);
 	lanai_timed_poll_stop(lanai);
@@ -2553,7 +2556,7 @@ static int lanai_init_one(struct pci_dev *pci,
 	struct atm_dev *atmdev;
 	int result;
 
-	lanai = kmalloc(sizeof(*lanai), GFP_KERNEL);
+	lanai = kzalloc(sizeof(*lanai), GFP_KERNEL);
 	if (lanai == NULL) {
 		printk(KERN_ERR DEV_LABEL
 		       ": couldn't allocate dev_data structure!\n");
drivers/atm/uPD98402.c +1 -1
index 7850758b5bb8..239852d85558 100644
@@ -211,7 +211,7 @@ static void uPD98402_int(struct atm_dev *dev)
 static int uPD98402_start(struct atm_dev *dev)
 {
 	DPRINTK("phy_start\n");
-	if (!(dev->dev_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	spin_lock_init(&PRIV(dev)->lock);
 	memset(&PRIV(dev)->sonet_stats,0,sizeof(struct k_sonet_stats));
drivers/base/power/runtime.c +39 -6

87 lines not on this page · raw message

drivers/block/umem.c +4 -1
index 2b95d7b33b91..5eb44e4a91ee 100644
@@ -877,6 +877,7 @@ static int mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	if (card->mm_pages[0].desc == NULL ||
 	    card->mm_pages[1].desc == NULL) {
 		dev_printk(KERN_ERR, &card->dev->dev, "alloc failed\n");
+		ret = -ENOMEM;
 		goto failed_alloc;
 	}
 	reset_page(&card->mm_pages[0]);
@@ -888,8 +889,10 @@ static int mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	spin_lock_init(&card->lock);
 
 	card->queue = blk_alloc_queue(NUMA_NO_NODE);
-	if (!card->queue)
+	if (!card->queue) {
+		ret = -ENOMEM;
 		goto failed_alloc;
+	}
 
 	tasklet_init(&card->tasklet, process_page, (unsigned long)card);
 
drivers/block/xen-blkback/blkback.c +1 -1
index da16121140ca..3874233f7194 100644
@@ -891,7 +891,7 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
 out:
 	for (i = last_map; i < num; i++) {
 		/* Don't zap current batch's valid persistent grants. */
-		if(i >= last_map + segs_to_map)
+		if(i >= map_until)
 			pages[i]->persistent_gnt = NULL;
 		pages[i]->handle = BLKBACK_INVALID_HANDLE;
 	}
drivers/bus/omap_l3_noc.c +2 -2
index b040447575ad..dcfb32ee5cb6 100644
@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev)
 	 */
 	l3->debug_irq = platform_get_irq(pdev, 0);
 	ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
-			       0x0, "l3-dbg-irq", l3);
+			       IRQF_NO_THREAD, "l3-dbg-irq", l3);
 	if (ret) {
 		dev_err(l3->dev, "request_irq failed for %d\n",
 			l3->debug_irq);
@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev)
 
 	l3->app_irq = platform_get_irq(pdev, 1);
 	ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
-			       0x0, "l3-app-irq", l3);
+			       IRQF_NO_THREAD, "l3-app-irq", l3);
 	if (ret)
 		dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
 
drivers/clk/qcom/gcc-sc7180.c +2 -2
index b080739ab0c3..7e80dbd4a3f9 100644
@@ -620,7 +620,7 @@ static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
 		.name = "gcc_sdcc1_apps_clk_src",
 		.parent_data = gcc_parent_data_1,
 		.num_parents = 5,
-		.ops = &clk_rcg2_ops,
+		.ops = &clk_rcg2_floor_ops,
 	},
 };
 
@@ -642,7 +642,7 @@ static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
 		.name = "gcc_sdcc1_ice_core_clk_src",
 		.parent_data = gcc_parent_data_0,
 		.num_parents = 4,
-		.ops = &clk_rcg2_floor_ops,
+		.ops = &clk_rcg2_ops,
 	},
 };
 
drivers/cpufreq/cpufreq-dt-platdev.c +2 -0
index 3776d960f405..1c192a42f11e 100644
@@ -103,6 +103,8 @@ static const struct of_device_id whitelist[] __initconst = {
 static const struct of_device_id blacklist[] __initconst = {
 	{ .compatible = "allwinner,sun50i-h6", },
 
+	{ .compatible = "arm,vexpress", },
+
 	{ .compatible = "calxeda,highbank", },
 	{ .compatible = "calxeda,ecx-2000", },
 
drivers/gpio/gpiolib-acpi.c +1 -1
index 49a1f8ce4baa..863f059bc498 100644
@@ -174,7 +174,7 @@ static void acpi_gpiochip_request_irq(struct acpi_gpio_chip *acpi_gpio,
 	int ret, value;
 
 	ret = request_threaded_irq(event->irq, NULL, event->handler,
-				   event->irqflags, "ACPI:Event", event);
+				   event->irqflags | IRQF_ONESHOT, "ACPI:Event", event);
 	if (ret) {
 		dev_err(acpi_gpio->chip->parent,
 			"Failed to setup interrupt handler for %d\n",
drivers/gpu/drm/Kconfig +1 -0
index 16f73c102394..ca868271f4c4 100644
@@ -239,6 +239,7 @@ source "drivers/gpu/drm/arm/Kconfig"
 config DRM_RADEON
 	tristate "ATI Radeon"
 	depends on DRM && PCI && MMU
+	depends on AGP || !AGP
 	select FW_LOADER
         select DRM_KMS_HELPER
         select DRM_TTM
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +1 -0
index 1a880cb48d19..a2425f7ca759 100644
@@ -1093,6 +1093,7 @@ static const struct pci_device_id pciidlist[] = {
 	{0x1002, 0x73A3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73AB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73AE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
+	{0x1002, 0x73AF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73BF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 
 	{0, 0, 0}
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +1 -1
index e2c2eb45a793..1ea8af48ae2f 100644
@@ -146,7 +146,7 @@ static int amdgpufb_create_pinned_object(struct amdgpu_fbdev *rfbdev,
 	size = mode_cmd->pitches[0] * height;
 	aligned_size = ALIGN(size, PAGE_SIZE);
 	ret = amdgpu_gem_object_create(adev, aligned_size, 0, domain, flags,
-				       ttm_bo_type_kernel, NULL, &gobj);
+				       ttm_bo_type_device, NULL, &gobj);
 	if (ret) {
 		pr_err("failed to allocate framebuffer (%d)\n", aligned_size);
 		return -ENOMEM;
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.c +1 -2
index 15c2ff264ff6..1a347484cf2a 100644
@@ -341,8 +341,7 @@ void enc2_hw_init(struct link_encoder *enc)
 	} else {
 		AUX_REG_WRITE(AUX_DPHY_RX_CONTROL0, 0x103d1110);
 
-		AUX_REG_WRITE(AUX_DPHY_TX_CONTROL, 0x21c4d);
-
+		AUX_REG_WRITE(AUX_DPHY_TX_CONTROL, 0x21c7a);
 	}
 
 	//AUX_DPHY_TX_REF_CONTROL'AUX_TX_REF_DIV HW default is 0x32;
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +1 -1
index b5fe2a008bd4..7ed4d7c8734f 100644
@@ -295,7 +295,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn2_1_soc = {
 	.num_banks = 8,
 	.num_chans = 4,
 	.vmm_page_size_bytes = 4096,
-	.dram_clock_change_latency_us = 11.72,
+	.dram_clock_change_latency_us = 23.84,
 	.return_bus_width_bytes = 64,
 	.dispclk_dppclk_vco_speed_mhz = 3600,
 	.xfc_bus_transport_time_us = 4,
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +54 -0

72 lines not on this page · raw message

drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c +63 -11

118 lines not on this page · raw message

drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c +24 -0
index 62076035029a..e68651fb7ca4 100644
@@ -133,6 +133,7 @@ static void vega12_set_default_registry_data(struct pp_hwmgr *hwmgr)
 	data->registry_data.auto_wattman_debug = 0;
 	data->registry_data.auto_wattman_sample_period = 100;
 	data->registry_data.auto_wattman_threshold = 50;
+	data->registry_data.pcie_dpm_key_disabled = !(hwmgr->feature_mask & PP_PCIE_DPM_MASK);
 }
 
 static int vega12_set_features_platform_caps(struct pp_hwmgr *hwmgr)
@@ -539,6 +540,29 @@ static int vega12_override_pcie_parameters(struct pp_hwmgr *hwmgr)
 		pp_table->PcieLaneCount[i] = pcie_width_arg;
 	}
 
+	/* override to the highest if it's disabled from ppfeaturmask */
+	if (data->registry_data.pcie_dpm_key_disabled) {
+		for (i = 0; i < NUM_LINK_LEVELS; i++) {
+			smu_pcie_arg = (i << 16) | (pcie_gen << 8) | pcie_width;
+			ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+				PPSMC_MSG_OverridePcieParameters, smu_pcie_arg,
+				NULL);
+			PP_ASSERT_WITH_CODE(!ret,
+				"[OverridePcieParameters] Attempt to override pcie params failed!",
+				return ret);
+
+			pp_table->PcieGenSpeed[i] = pcie_gen;
+			pp_table->PcieLaneCount[i] = pcie_width;
+		}
+		ret = vega12_enable_smc_features(hwmgr,
+				false,
+				data->smu_features[GNLD_DPM_LINK].smu_feature_bitmap);
+		PP_ASSERT_WITH_CODE(!ret,
+				"Attempt to Disable DPM LINK Failed!",
+				return ret);
+		data->smu_features[GNLD_DPM_LINK].enabled = false;
+		data->smu_features[GNLD_DPM_LINK].supported = false;
+	}
 	return 0;
 }
 
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c +25 -0
index 251979c059c8..60cde0c52825 100644
@@ -171,6 +171,7 @@ static void vega20_set_default_registry_data(struct pp_hwmgr *hwmgr)
 	data->registry_data.gfxoff_controlled_by_driver = 1;
 	data->gfxoff_allowed = false;
 	data->counter_gfxoff = 0;
+	data->registry_data.pcie_dpm_key_disabled = !(hwmgr->feature_mask & PP_PCIE_DPM_MASK);
 }
 
 static int vega20_set_features_platform_caps(struct pp_hwmgr *hwmgr)
@@ -885,6 +886,30 @@ static int vega20_override_pcie_parameters(struct pp_hwmgr *hwmgr)
 		pp_table->PcieLaneCount[i] = pcie_width_arg;
 	}
 
+	/* override to the highest if it's disabled from ppfeaturmask */
+	if (data->registry_data.pcie_dpm_key_disabled) {
+		for (i = 0; i < NUM_LINK_LEVELS; i++) {
+			smu_pcie_arg = (i << 16) | (pcie_gen << 8) | pcie_width;
+			ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+				PPSMC_MSG_OverridePcieParameters, smu_pcie_arg,
+				NULL);
+			PP_ASSERT_WITH_CODE(!ret,
+				"[OverridePcieParameters] Attempt to override pcie params failed!",
+				return ret);
+
+			pp_table->PcieGenSpeed[i] = pcie_gen;
+			pp_table->PcieLaneCount[i] = pcie_width;
+		}
+		ret = vega20_enable_smc_features(hwmgr,
+				false,
+				data->smu_features[GNLD_DPM_LINK].smu_feature_bitmap);
+		PP_ASSERT_WITH_CODE(!ret,
+				"Attempt to Disable DPM LINK Failed!",
+				return ret);
+		data->smu_features[GNLD_DPM_LINK].enabled = false;
+		data->smu_features[GNLD_DPM_LINK].supported = false;
+	}
+
 	return 0;
 }
 
drivers/gpu/drm/etnaviv/etnaviv_gem.c +1 -1
index d1533bdc1335..2b7e85318a76 100644
@@ -675,7 +675,7 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
 		struct page **pages = pvec + pinned;
 
 		ret = pin_user_pages_fast(ptr, num_pages,
-					  !userptr->ro ? FOLL_WRITE : 0, pages);
+					  FOLL_WRITE | FOLL_FORCE, pages);
 		if (ret < 0) {
 			unpin_user_pages(pvec, pinned);
 			kvfree(pvec);
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +12 -1
index 7fb36b12fe7a..6614f6736486 100644
@@ -316,7 +316,18 @@ void i915_vma_revoke_fence(struct i915_vma *vma)
 	WRITE_ONCE(fence->vma, NULL);
 	vma->fence = NULL;
 
-	with_intel_runtime_pm_if_in_use(fence_to_uncore(fence)->rpm, wakeref)
+	/*
+	 * Skip the write to HW if and only if the device is currently
+	 * suspended.
+	 *
+	 * If the driver does not currently hold a wakeref (if_in_use == 0),
+	 * the device may currently be runtime suspended, or it may be woken
+	 * up before the suspend takes place. If the device is not suspended
+	 * (powered down) and we skip clearing the fence register, the HW is
+	 * left in an undefined state where we may end up with multiple
+	 * registers overlapping.
+	 */
+	with_intel_runtime_pm_if_active(fence_to_uncore(fence)->rpm, wakeref)
 		fence_write(fence);
 }
 
drivers/gpu/drm/i915/intel_runtime_pm.c +24 -5
index 153ca9e65382..8b725efb2254 100644
@@ -412,12 +412,20 @@ intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm)
 }
 
 /**
- * intel_runtime_pm_get_if_in_use - grab a runtime pm reference if device in use
+ * __intel_runtime_pm_get_if_active - grab a runtime pm reference if device is active
  * @rpm: the intel_runtime_pm structure
+ * @ignore_usecount: get a ref even if dev->power.usage_count is 0
  *
  * This function grabs a device-level runtime pm reference if the device is
- * already in use and ensures that it is powered up. It is illegal to try
- * and access the HW should intel_runtime_pm_get_if_in_use() report failure.
+ * already active and ensures that it is powered up. It is illegal to try
+ * and access the HW should intel_runtime_pm_get_if_active() report failure.
+ *
+ * If @ignore_usecount=true, a reference will be acquired even if there is no
+ * user requiring the device to be powered up (dev->power.usage_count == 0).
+ * If the function returns false in this case then it's guaranteed that the
+ * device's runtime suspend hook has been called already or that it will be
+ * called (and hence it's also guaranteed that the device's runtime resume
+ * hook will be called eventually).
  *
  * Any runtime pm reference obtained by this function must have a symmetric
  * call to intel_runtime_pm_put() to release the reference again.
@@ -425,7 +433,8 @@ intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm)
  * Returns: the wakeref cookie to pass to intel_runtime_pm_put(), evaluates
  * as True if the wakeref was acquired, or False otherwise.
  */
-intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
+static intel_wakeref_t __intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm,
+							bool ignore_usecount)
 {
 	if (IS_ENABLED(CONFIG_PM)) {
 		/*
@@ -434,7 +443,7 @@ intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
 		 * function, since the power state is undefined. This applies
 		 * atm to the late/early system suspend/resume handlers.
 		 */
-		if (pm_runtime_get_if_in_use(rpm->kdev) <= 0)
+		if (pm_runtime_get_if_active(rpm->kdev, ignore_usecount) <= 0)
 			return 0;
 	}
 
@@ -443,6 +452,16 @@ intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
 	return track_intel_runtime_pm_wakeref(rpm);
 }
 
+intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
+{
+	return __intel_runtime_pm_get_if_active(rpm, false);
+}
+
+intel_wakeref_t intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm)
+{
+	return __intel_runtime_pm_get_if_active(rpm, true);
+}
+
 /**
  * intel_runtime_pm_get_noresume - grab a runtime pm reference
  * @rpm: the intel_runtime_pm structure
drivers/gpu/drm/i915/intel_runtime_pm.h +5 -0
index ae64ff14c642..1e4ddd11c12b 100644
@@ -177,6 +177,7 @@ void intel_runtime_pm_driver_release(struct intel_runtime_pm *rpm);
 
 intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm);
+intel_wakeref_t intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_noresume(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_raw(struct intel_runtime_pm *rpm);
 
@@ -188,6 +189,10 @@ intel_wakeref_t intel_runtime_pm_get_raw(struct intel_runtime_pm *rpm);
 	for ((wf) = intel_runtime_pm_get_if_in_use(rpm); (wf); \
 	     intel_runtime_pm_put((rpm), (wf)), (wf) = 0)
 
+#define with_intel_runtime_pm_if_active(rpm, wf) \
+	for ((wf) = intel_runtime_pm_get_if_active(rpm); (wf); \
+	     intel_runtime_pm_put((rpm), (wf)), (wf) = 0)
+
 void intel_runtime_pm_put_unchecked(struct intel_runtime_pm *rpm);
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
 void intel_runtime_pm_put(struct intel_runtime_pm *rpm, intel_wakeref_t wref);
drivers/gpu/drm/msm/dsi/pll/dsi_pll.c +1 -1
index a45fe95aff49..3dc65877fa10 100644
@@ -163,7 +163,7 @@ struct msm_dsi_pll *msm_dsi_pll_init(struct platform_device *pdev,
 		break;
 	case MSM_DSI_PHY_7NM:
 	case MSM_DSI_PHY_7NM_V4_1:
-		pll = msm_dsi_pll_7nm_init(pdev, id);
+		pll = msm_dsi_pll_7nm_init(pdev, type, id);
 		break;
 	default:
 		pll = ERR_PTR(-ENXIO);
drivers/gpu/drm/msm/dsi/pll/dsi_pll.h +4 -2
index 3405982a092c..bbecb1de5678 100644
@@ -117,10 +117,12 @@ msm_dsi_pll_10nm_init(struct platform_device *pdev, int id)
 }
 #endif
 #ifdef CONFIG_DRM_MSM_DSI_7NM_PHY
-struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id);
+struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id);
 #else
 static inline struct msm_dsi_pll *
-msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
+msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id)
 {
 	return ERR_PTR(-ENODEV);
 }
drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c +3 -2
index 93bf142e4a4e..c1f6708367ae 100644
@@ -852,7 +852,8 @@ static int pll_7nm_register(struct dsi_pll_7nm *pll_7nm)
 	return ret;
 }
 
-struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
+struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id)
 {
 	struct dsi_pll_7nm *pll_7nm;
 	struct msm_dsi_pll *pll;
@@ -885,7 +886,7 @@ struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
 	pll = &pll_7nm->base;
 	pll->min_rate = 1000000000UL;
 	pll->max_rate = 3500000000UL;
-	if (pll->type == MSM_DSI_PHY_7NM_V4_1) {
+	if (type == MSM_DSI_PHY_7NM_V4_1) {
 		pll->min_rate = 600000000UL;
 		pll->max_rate = (unsigned long)5000000000ULL;
 		/* workaround for max rate overflowing on 32-bit builds: */
drivers/gpu/drm/msm/msm_drv.c +12 -0
index 3d0adfa6736a..b38ebccad42f 100644
@@ -1079,6 +1079,10 @@ static int __maybe_unused msm_pm_resume(struct device *dev)
 static int __maybe_unused msm_pm_prepare(struct device *dev)
 {
 	struct drm_device *ddev = dev_get_drvdata(dev);
+	struct msm_drm_private *priv = ddev ? ddev->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return 0;
 
 	return drm_mode_config_helper_suspend(ddev);
 }
@@ -1086,6 +1090,10 @@ static int __maybe_unused msm_pm_prepare(struct device *dev)
 static void __maybe_unused msm_pm_complete(struct device *dev)
 {
 	struct drm_device *ddev = dev_get_drvdata(dev);
+	struct msm_drm_private *priv = ddev ? ddev->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return;
 
 	drm_mode_config_helper_resume(ddev);
 }
@@ -1318,6 +1326,10 @@ static int msm_pdev_remove(struct platform_device *pdev)
 static void msm_pdev_shutdown(struct platform_device *pdev)
 {
 	struct drm_device *drm = platform_get_drvdata(pdev);
+	struct msm_drm_private *priv = drm ? drm->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return;
 
 	drm_atomic_helper_shutdown(drm);
 }
drivers/infiniband/hw/cxgb4/cm.c +2 -2
index 8769e7aa097f..81903749d241 100644
@@ -3610,13 +3610,13 @@ int c4iw_destroy_listen(struct iw_cm_id *cm_id)
 	    ep->com.local_addr.ss_family == AF_INET) {
 		err = cxgb4_remove_server_filter(
 			ep->com.dev->rdev.lldi.ports[0], ep->stid,
-			ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+			ep->com.dev->rdev.lldi.rxq_ids[0], false);
 	} else {
 		struct sockaddr_in6 *sin6;
 		c4iw_init_wr_wait(ep->com.wr_waitp);
 		err = cxgb4_remove_server(
 				ep->com.dev->rdev.lldi.ports[0], ep->stid,
-				ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+				ep->com.dev->rdev.lldi.rxq_ids[0], true);
 		if (err)
 			goto done;
 		err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
drivers/irqchip/irq-ingenic-tcu.c +1 -0
index 7a7222d4c19c..b938d1d04d96 100644
@@ -179,5 +179,6 @@ static int __init ingenic_tcu_irq_init(struct device_node *np,
 }
 IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init);
+IRQCHIP_DECLARE(jz4760_tcu_irq, "ingenic,jz4760-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init);
drivers/irqchip/irq-ingenic.c +1 -0
index b61a8901ef72..ea36bb00be80 100644
@@ -155,6 +155,7 @@ static int __init intc_2chip_of_init(struct device_node *node,
 {
 	return ingenic_intc_of_init(node, 2);
 }
+IRQCHIP_DECLARE(jz4760_intc, "ingenic,jz4760-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4770_intc, "ingenic,jz4770-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4775_intc, "ingenic,jz4775-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4780_intc, "ingenic,jz4780-intc", intc_2chip_of_init);
drivers/md/dm-ioctl.c +1 -1
index 5e306bba4375..1ca65b434f1f 100644
@@ -529,7 +529,7 @@ static int list_devices(struct file *filp, struct dm_ioctl *param, size_t param_
 	 * Grab our output buffer.
 	 */
 	nl = orig_nl = get_result_buffer(param, param_size, &len);
-	if (len < needed) {
+	if (len < needed || len < sizeof(nl->dev)) {
 		param->flags |= DM_BUFFER_FULL_FLAG;
 		goto out;
 	}
drivers/md/dm-table.c +25 -8
index 9b824c21580a..5c590895c14c 100644
@@ -1387,6 +1387,13 @@ static int device_not_zoned_model(struct dm_target *ti, struct dm_dev *dev,
 	return !q || blk_queue_zoned_model(q) != *zoned_model;
 }
 
+/*
+ * Check the device zoned model based on the target feature flag. If the target
+ * has the DM_TARGET_ZONED_HM feature flag set, host-managed zoned devices are
+ * also accepted but all devices must have the same zoned model. If the target
+ * has the DM_TARGET_MIXED_ZONED_MODEL feature set, the devices can have any
+ * zoned model with all zoned devices having the same zone size.
+ */
 static bool dm_table_supports_zoned_model(struct dm_table *t,
 					  enum blk_zoned_model zoned_model)
 {
@@ -1396,13 +1403,15 @@ static bool dm_table_supports_zoned_model(struct dm_table *t,
 	for (i = 0; i < dm_table_get_num_targets(t); i++) {
 		ti = dm_table_get_target(t, i);
 
-		if (zoned_model == BLK_ZONED_HM &&
-		    !dm_target_supports_zoned_hm(ti->type))
-			return false;
-
-		if (!ti->type->iterate_devices ||
-		    ti->type->iterate_devices(ti, device_not_zoned_model, &zoned_model))
-			return false;
+		if (dm_target_supports_zoned_hm(ti->type)) {
+			if (!ti->type->iterate_devices ||
+			    ti->type->iterate_devices(ti, device_not_zoned_model,
+						      &zoned_model))
+				return false;
+		} else if (!dm_target_supports_mixed_zoned_model(ti->type)) {
+			if (zoned_model == BLK_ZONED_HM)
+				return false;
+		}
 	}
 
 	return true;
@@ -1414,9 +1423,17 @@ static int device_not_matches_zone_sectors(struct dm_target *ti, struct dm_dev *
 	struct request_queue *q = bdev_get_queue(dev->bdev);
 	unsigned int *zone_sectors = data;
 
+	if (!blk_queue_is_zoned(q))
+		return 0;
+
 	return !q || blk_queue_zone_sectors(q) != *zone_sectors;
 }
 
+/*
+ * Check consistency of zoned model and zone sectors across all targets. For
+ * zone sectors, if the destination device is a zoned block device, it shall
+ * have the specified zone_sectors.
+ */
 static int validate_hardware_zoned_model(struct dm_table *table,
 					 enum blk_zoned_model zoned_model,
 					 unsigned int zone_sectors)
@@ -1435,7 +1452,7 @@ static int validate_hardware_zoned_model(struct dm_table *table,
 		return -EINVAL;
 
 	if (dm_table_any_dev_attr(table, device_not_matches_zone_sectors, &zone_sectors)) {
-		DMERR("%s: zone sectors is not consistent across all devices",
+		DMERR("%s: zone sectors is not consistent across all zoned devices",
 		      dm_device_name(table->md));
 		return -EINVAL;
 	}
drivers/md/dm-verity-target.c +1 -1
index 6b8e5bdd8526..808a98ef624c 100644
@@ -34,7 +34,7 @@
 #define DM_VERITY_OPT_IGN_ZEROES	"ignore_zero_blocks"
 #define DM_VERITY_OPT_AT_MOST_ONCE	"check_at_most_once"
 
-#define DM_VERITY_OPTS_MAX		(2 + DM_VERITY_OPTS_FEC + \
+#define DM_VERITY_OPTS_MAX		(3 + DM_VERITY_OPTS_FEC + \
 					 DM_VERITY_ROOT_HASH_VERIFICATION_OPTS)
 
 static unsigned dm_verity_prefetch_cluster = DM_VERITY_DEFAULT_PREFETCH_SIZE;
drivers/md/dm-zoned-target.c +1 -1
index 697f9de37355..7e88df64d197 100644
@@ -1143,7 +1143,7 @@ static int dmz_message(struct dm_target *ti, unsigned int argc, char **argv,
 static struct target_type dmz_type = {
 	.name		 = "zoned",
 	.version	 = {2, 0, 0},
-	.features	 = DM_TARGET_SINGLETON | DM_TARGET_ZONED_HM,
+	.features	 = DM_TARGET_SINGLETON | DM_TARGET_MIXED_ZONED_MODEL,
 	.module		 = THIS_MODULE,
 	.ctr		 = dmz_ctr,
 	.dtr		 = dmz_dtr,
drivers/misc/habanalabs/common/device.c +2 -0
index 71b3a4d5adc6..7b0bf470795c 100644
@@ -106,6 +106,8 @@ static int hl_device_release_ctrl(struct inode *inode, struct file *filp)
 	list_del(&hpriv->dev_node);
 	mutex_unlock(&hdev->fpriv_list_lock);
 
+	put_pid(hpriv->taskpid);
+
 	kfree(hpriv);
 
 	return 0;
drivers/net/bonding/bond_main.c +2 -6
index 6d5a39af1097..47afc5938c26 100644
@@ -3918,15 +3918,11 @@ static int bond_neigh_init(struct neighbour *n)
 
 	rcu_read_lock();
 	slave = bond_first_slave_rcu(bond);
-	if (!slave) {
-		ret = -EINVAL;
+	if (!slave)
 		goto out;
-	}
 	slave_ops = slave->dev->netdev_ops;
-	if (!slave_ops->ndo_neigh_setup) {
-		ret = -EINVAL;
+	if (!slave_ops->ndo_neigh_setup)
 		goto out;
-	}
 
 	/* TODO: find another way [1] to implement this.
 	 * Passing a zeroed structure is fragile,
drivers/net/can/c_can/c_can.c +1 -23
index 1a9e9b9a4bf6..6c75e5897620 100644
@@ -212,18 +212,6 @@ static const struct can_bittiming_const c_can_bittiming_const = {
 	.brp_inc = 1,
 };
 
-static inline void c_can_pm_runtime_enable(const struct c_can_priv *priv)
-{
-	if (priv->device)
-		pm_runtime_enable(priv->device);
-}
-
-static inline void c_can_pm_runtime_disable(const struct c_can_priv *priv)
-{
-	if (priv->device)
-		pm_runtime_disable(priv->device);
-}
-
 static inline void c_can_pm_runtime_get_sync(const struct c_can_priv *priv)
 {
 	if (priv->device)
@@ -1335,7 +1323,6 @@ static const struct net_device_ops c_can_netdev_ops = {
 
 int register_c_can_dev(struct net_device *dev)
 {
-	struct c_can_priv *priv = netdev_priv(dev);
 	int err;
 
 	/* Deactivate pins to prevent DRA7 DCAN IP from being
@@ -1345,28 +1332,19 @@ int register_c_can_dev(struct net_device *dev)
 	 */
 	pinctrl_pm_select_sleep_state(dev->dev.parent);
 
-	c_can_pm_runtime_enable(priv);
-
 	dev->flags |= IFF_ECHO;	/* we support local echo */
 	dev->netdev_ops = &c_can_netdev_ops;
 
 	err = register_candev(dev);
-	if (err)
-		c_can_pm_runtime_disable(priv);
-	else
+	if (!err)
 		devm_can_led_init(dev);
-
 	return err;
 }
 EXPORT_SYMBOL_GPL(register_c_can_dev);
 
 void unregister_c_can_dev(struct net_device *dev)
 {
-	struct c_can_priv *priv = netdev_priv(dev);
-
 	unregister_candev(dev);
-
-	c_can_pm_runtime_disable(priv);
 }
 EXPORT_SYMBOL_GPL(unregister_c_can_dev);
 
drivers/net/can/c_can/c_can_pci.c +2 -1
index 406b4847e5dc..7efb60b50876 100644
@@ -239,12 +239,13 @@ static void c_can_pci_remove(struct pci_dev *pdev)
 {
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct c_can_priv *priv = netdev_priv(dev);
+	void __iomem *addr = priv->base;
 
 	unregister_c_can_dev(dev);
 
 	free_c_can_dev(dev);
 
-	pci_iounmap(pdev, priv->base);
+	pci_iounmap(pdev, addr);
 	pci_disable_msi(pdev);
 	pci_clear_master(pdev);
 	pci_release_regions(pdev);
drivers/net/can/c_can/c_can_platform.c +5 -1
index 05f425ceb53a..47b251b1607c 100644
@@ -29,6 +29,7 @@
 #include <linux/list.h>
 #include <linux/io.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/clk.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
@@ -386,6 +387,7 @@ static int c_can_plat_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, dev);
 	SET_NETDEV_DEV(dev, &pdev->dev);
 
+	pm_runtime_enable(priv->device);
 	ret = register_c_can_dev(dev);
 	if (ret) {
 		dev_err(&pdev->dev, "registering %s failed (err=%d)\n",
@@ -398,6 +400,7 @@ static int c_can_plat_probe(struct platform_device *pdev)
 	return 0;
 
 exit_free_device:
+	pm_runtime_disable(priv->device);
 	free_c_can_dev(dev);
 exit:
 	dev_err(&pdev->dev, "probe failed\n");
@@ -408,9 +411,10 @@ static int c_can_plat_probe(struct platform_device *pdev)
 static int c_can_plat_remove(struct platform_device *pdev)
 {
 	struct net_device *dev = platform_get_drvdata(pdev);
+	struct c_can_priv *priv = netdev_priv(dev);
 
 	unregister_c_can_dev(dev);
-
+	pm_runtime_disable(priv->device);
 	free_c_can_dev(dev);
 
 	return 0;
drivers/net/can/dev.c +1 -0
index 24cd3c1027ec..dc9b4aae3abb 100644
@@ -1255,6 +1255,7 @@ static void can_dellink(struct net_device *dev, struct list_head *head)
 
 static struct rtnl_link_ops can_link_ops __read_mostly = {
 	.kind		= "can",
+	.netns_refund	= true,
 	.maxtype	= IFLA_CAN_MAX,
 	.policy		= can_policy,
 	.setup		= can_setup,
drivers/net/can/flexcan.c +7 -1
index d712c6fdbc87..7cbaac238ff6 100644
@@ -658,9 +658,15 @@ static int flexcan_chip_disable(struct flexcan_priv *priv)
 static int flexcan_chip_freeze(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int timeout = 1000 * 1000 * 10 / priv->can.bittiming.bitrate;
+	unsigned int timeout;
+	u32 bitrate = priv->can.bittiming.bitrate;
 	u32 reg;
 
+	if (bitrate)
+		timeout = 1000 * 1000 * 10 / bitrate;
+	else
+		timeout = FLEXCAN_TIMEOUT_US / 10;
+
 	reg = priv->read(&regs->mcr);
 	reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
 	priv->write(reg, &regs->mcr);
drivers/net/can/kvaser_pciefd.c +4 -0
index 43151dd6cb1c..99323c273aa5 100644
@@ -57,6 +57,7 @@ MODULE_DESCRIPTION("CAN driver for Kvaser CAN/PCIe devices");
 #define KVASER_PCIEFD_KCAN_STAT_REG 0x418
 #define KVASER_PCIEFD_KCAN_MODE_REG 0x41c
 #define KVASER_PCIEFD_KCAN_BTRN_REG 0x420
+#define KVASER_PCIEFD_KCAN_BUS_LOAD_REG 0x424
 #define KVASER_PCIEFD_KCAN_BTRD_REG 0x428
 #define KVASER_PCIEFD_KCAN_PWM_REG 0x430
 /* Loopback control register */
@@ -949,6 +950,9 @@ static int kvaser_pciefd_setup_can_ctrls(struct kvaser_pciefd *pcie)
 		timer_setup(&can->bec_poll_timer, kvaser_pciefd_bec_poll_timer,
 			    0);
 
+		/* Disable Bus load reporting */
+		iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_BUS_LOAD_REG);
+
 		tx_npackets = ioread32(can->reg_base +
 				       KVASER_PCIEFD_KCAN_TX_NPACKETS_REG);
 		if (((tx_npackets >> KVASER_PCIEFD_KCAN_TX_NPACKETS_MAX_SHIFT) &
drivers/net/can/m_can/m_can.c +1 -4
index 3c1e37975168..6f0bf5db885c 100644
@@ -502,9 +502,6 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
 	}
 
 	while ((rxfs & RXFS_FFL_MASK) && (quota > 0)) {
-		if (rxfs & RXFS_RFL)
-			netdev_warn(dev, "Rx FIFO 0 Message Lost\n");
-
 		m_can_read_fifo(dev, rxfs);
 
 		quota--;
@@ -885,7 +882,7 @@ static int m_can_rx_peripheral(struct net_device *dev)
 {
 	struct m_can_classdev *cdev = netdev_priv(dev);
 
-	m_can_rx_handler(dev, 1);
+	m_can_rx_handler(dev, M_CAN_NAPI_WEIGHT);
 
 	m_can_enable_all_interrupts(cdev);
 
drivers/net/dsa/b53/b53_common.c +7 -7
index f504b6858ed2..52100d4fe5a2 100644
@@ -1070,13 +1070,6 @@ static int b53_setup(struct dsa_switch *ds)
 			b53_disable_port(ds, port);
 	}
 
-	/* Let DSA handle the case were multiple bridges span the same switch
-	 * device and different VLAN awareness settings are requested, which
-	 * would be breaking filtering semantics for any of the other bridge
-	 * devices. (not hardware supported)
-	 */
-	ds->vlan_filtering_is_global = true;
-
 	return b53_setup_devlink_resources(ds);
 }
 
@@ -2627,6 +2620,13 @@ struct b53_device *b53_switch_alloc(struct device *base,
 	ds->configure_vlan_while_not_filtering = true;
 	ds->untag_bridge_pvid = true;
 	dev->vlan_enabled = ds->configure_vlan_while_not_filtering;
+	/* Let DSA handle the case were multiple bridges span the same switch
+	 * device and different VLAN awareness settings are requested, which
+	 * would be breaking filtering semantics for any of the other bridge
+	 * devices. (not hardware supported)
+	 */
+	ds->vlan_filtering_is_global = true;
+
 	mutex_init(&dev->reg_mutex);
 	mutex_init(&dev->stats_mutex);
 
drivers/net/dsa/bcm_sf2.c +4 -2
index edb0a1027b38..510324916e91 100644
@@ -584,8 +584,10 @@ static u32 bcm_sf2_sw_get_phy_flags(struct dsa_switch *ds, int port)
 	 * in bits 15:8 and the patch level in bits 7:0 which is exactly what
 	 * the REG_PHY_REVISION register layout is.
 	 */
-
-	return priv->hw_params.gphy_rev;
+	if (priv->int_phy_mask & BIT(port))
+		return priv->hw_params.gphy_rev;
+	else
+		return 0;
 }
 
 static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,
drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +1 -1
index 1b7e8c91b541..423d6d78d15c 100644
@@ -727,7 +727,7 @@ static int chcr_ktls_cpl_set_tcb_rpl(struct adapter *adap, unsigned char *input)
 		kvfree(tx_info);
 		return 0;
 	}
-	tx_info->open_state = false;
+	tx_info->open_state = CH_KTLS_OPEN_SUCCESS;
 	spin_unlock(&tx_info->lock);
 
 	complete(&tx_info->completion);
drivers/net/ethernet/davicom/dm9000.c +1 -1
index ba7f857d1710..ae09cac87602 100644
@@ -1510,7 +1510,7 @@ dm9000_probe(struct platform_device *pdev)
 		goto out;
 	}
 
-	db->irq_wake = platform_get_irq(pdev, 1);
+	db->irq_wake = platform_get_irq_optional(pdev, 1);
 	if (db->irq_wake >= 0) {
 		dev_dbg(db->dev, "wakeup irq %d\n", db->irq_wake);
 
drivers/net/ethernet/faraday/ftgmac100.c +1 -0
index 80fb1f537bb3..c9c380c50879 100644
@@ -1308,6 +1308,7 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget)
 	 */
 	if (unlikely(priv->need_mac_restart)) {
 		ftgmac100_start_hw(priv);
+		priv->need_mac_restart = false;
 
 		/* Re-enable "bad" interrupts */
 		iowrite32(FTGMAC100_INT_BAD,
drivers/net/ethernet/freescale/enetc/enetc_hw.h +2 -0
index 21a6ce415cb2..2b90a345507b 100644
@@ -234,6 +234,8 @@ enum enetc_bdr_type {TX, RX};
 #define ENETC_PM0_MAXFRM	0x8014
 #define ENETC_SET_TX_MTU(val)	((val) << 16)
 #define ENETC_SET_MAXFRM(val)	((val) & 0xffff)
+#define ENETC_PM0_RX_FIFO	0x801c
+#define ENETC_PM0_RX_FIFO_VAL	1
 
 #define ENETC_PM_IMDIO_BASE	0x8030
 
drivers/net/ethernet/freescale/enetc/enetc_pf.c +6 -0
index 83187cd59fdd..68133563a40c 100644
@@ -490,6 +490,12 @@ static void enetc_configure_port_mac(struct enetc_hw *hw)
 
 	enetc_port_wr(hw, ENETC_PM1_CMD_CFG, ENETC_PM0_CMD_PHY_TX_EN |
 		      ENETC_PM0_CMD_TXP	| ENETC_PM0_PROMISC);
+
+	/* On LS1028A, the MAC RX FIFO defaults to 2, which is too high
+	 * and may lead to RX lock-up under traffic. Set it to 1 instead,
+	 * as recommended by the hardware team.
+	 */
+	enetc_port_wr(hw, ENETC_PM0_RX_FIFO, ENETC_PM0_RX_FIFO_VAL);
 }
 
 static void enetc_mac_config(struct enetc_hw *hw, phy_interface_t phy_mode)
drivers/net/ethernet/freescale/fec_ptp.c +7 -0
index 2e344aada4c6..1753807cbf97 100644
@@ -377,9 +377,16 @@ static int fec_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)
 	u64 ns;
 	unsigned long flags;
 
+	mutex_lock(&adapter->ptp_clk_mutex);
+	/* Check the ptp clock */
+	if (!adapter->ptp_clk_on) {
+		mutex_unlock(&adapter->ptp_clk_mutex);
+		return -EINVAL;
+	}
 	spin_lock_irqsave(&adapter->tmreg_lock, flags);
 	ns = timecounter_read(&adapter->tc);
 	spin_unlock_irqrestore(&adapter->tmreg_lock, flags);
+	mutex_unlock(&adapter->ptp_clk_mutex);
 
 	*ts = ns_to_timespec64(ns);
 
drivers/net/ethernet/freescale/gianfar.c +15 -0
index d391a45cebb6..4fab2ee5bbf5 100644
@@ -2391,6 +2391,10 @@ static bool gfar_add_rx_frag(struct gfar_rx_buff *rxb, u32 lstatus,
 		if (lstatus & BD_LFLAG(RXBD_LAST))
 			size -= skb->len;
 
+		WARN(size < 0, "gianfar: rx fragment size underflow");
+		if (size < 0)
+			return false;
+
 		skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page,
 				rxb->page_offset + RXBUF_ALIGNMENT,
 				size, GFAR_RXB_TRUESIZE);
@@ -2553,6 +2557,17 @@ static int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue,
 		if (lstatus & BD_LFLAG(RXBD_EMPTY))
 			break;
 
+		/* lost RXBD_LAST descriptor due to overrun */
+		if (skb &&
+		    (lstatus & BD_LFLAG(RXBD_FIRST))) {
+			/* discard faulty buffer */
+			dev_kfree_skb(skb);
+			skb = NULL;
+			rx_queue->stats.rx_dropped++;
+
+			/* can continue normally */
+		}
+
 		/* order rx buffer descriptor reads */
 		rmb();
 
drivers/net/ethernet/hisilicon/hns/hns_enet.c +3 -1
index 858cb293152a..8bce5f1510be 100644
@@ -1663,8 +1663,10 @@ static int hns_nic_clear_all_rx_fetch(struct net_device *ndev)
 			for (j = 0; j < fetch_num; j++) {
 				/* alloc one skb and init */
 				skb = hns_assemble_skb(ndev);
-				if (!skb)
+				if (!skb) {
+					ret = -ENOMEM;
 					goto out;
+				}
 				rd = &tx_ring_data(priv, skb->queue_mapping);
 				hns_nic_net_xmit_hw(ndev, skb, rd);
 
drivers/net/ethernet/intel/e1000e/82571.c +2 -0
index 88faf05e23ba..0b1e890dd583 100644
@@ -899,6 +899,8 @@ static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, bool active)
 	} else {
 		data &= ~IGP02E1000_PM_D0_LPLU;
 		ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data);
+		if (ret_val)
+			return ret_val;
 		/* LPLU and SmartSpeed are mutually exclusive.  LPLU is used
 		 * during Dx states where the power conservation is most
 		 * important.  During driver activity we should enable
drivers/net/ethernet/intel/e1000e/netdev.c +5 -1
index e9b82c209c2d..a0948002ddf8 100644
@@ -5974,15 +5974,19 @@ static void e1000_reset_task(struct work_struct *work)
 	struct e1000_adapter *adapter;
 	adapter = container_of(work, struct e1000_adapter, reset_task);
 
+	rtnl_lock();
 	/* don't run the task if already down */
-	if (test_bit(__E1000_DOWN, &adapter->state))
+	if (test_bit(__E1000_DOWN, &adapter->state)) {
+		rtnl_unlock();
 		return;
+	}
 
 	if (!(adapter->flags & FLAG_RESTART_NOW)) {
 		e1000e_dump(adapter);
 		e_err("Reset adapter unexpectedly\n");
 	}
 	e1000e_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
drivers/net/ethernet/intel/iavf/iavf_main.c +2 -1
index 0a867d64d467..dc5b3c06d1e0 100644
@@ -1776,7 +1776,8 @@ static int iavf_init_get_resources(struct iavf_adapter *adapter)
 		goto err_alloc;
 	}
 
-	if (iavf_process_config(adapter))
+	err = iavf_process_config(adapter);
+	if (err)
 		goto err_alloc;
 	adapter->current_op = VIRTCHNL_OP_UNKNOWN;
 
drivers/net/ethernet/intel/igb/igb.h +2 -2
index aaa954aae574..7bda8c5edea5 100644
@@ -748,8 +748,8 @@ void igb_ptp_suspend(struct igb_adapter *adapter);
 void igb_ptp_rx_hang(struct igb_adapter *adapter);
 void igb_ptp_tx_hang(struct igb_adapter *adapter);
 void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb);
-void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
-			 struct sk_buff *skb);
+int igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
+			struct sk_buff *skb);
 int igb_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr);
 int igb_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr);
 void igb_set_flag_queue_pairs(struct igb_adapter *, const u32);
drivers/net/ethernet/intel/igb/igb_main.c +21 -12
index 0d343d050973..fecfcfcf161c 100644
@@ -8232,7 +8232,8 @@ static inline bool igb_page_is_reserved(struct page *page)
 	return (page_to_nid(page) != numa_mem_id()) || page_is_pfmemalloc(page);
 }
 
-static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer)
+static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,
+				  int rx_buf_pgcnt)
 {
 	unsigned int pagecnt_bias = rx_buffer->pagecnt_bias;
 	struct page *page = rx_buffer->page;
@@ -8243,7 +8244,7 @@ static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer)
 
 #if (PAGE_SIZE < 8192)
 	/* if we are only owner of page we can reuse it */
-	if (unlikely((page_ref_count(page) - pagecnt_bias) > 1))
+	if (unlikely((rx_buf_pgcnt - pagecnt_bias) > 1))
 		return false;
 #else
 #define IGB_LAST_OFFSET \
@@ -8319,9 +8320,10 @@ static struct sk_buff *igb_construct_skb(struct igb_ring *rx_ring,
 		return NULL;
 
 	if (unlikely(igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP))) {
-		igb_ptp_rx_pktstamp(rx_ring->q_vector, xdp->data, skb);
-		xdp->data += IGB_TS_HDR_LEN;
-		size -= IGB_TS_HDR_LEN;
+		if (!igb_ptp_rx_pktstamp(rx_ring->q_vector, xdp->data, skb)) {
+			xdp->data += IGB_TS_HDR_LEN;
+			size -= IGB_TS_HDR_LEN;
+		}
 	}
 
 	/* Determine available headroom for copy */
@@ -8382,8 +8384,8 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 
 	/* pull timestamp out of packet data */
 	if (igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP)) {
-		igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb);
-		__skb_pull(skb, IGB_TS_HDR_LEN);
+		if (!igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb))
+			__skb_pull(skb, IGB_TS_HDR_LEN);
 	}
 
 	/* update buffer offset */
@@ -8632,11 +8634,17 @@ static unsigned int igb_rx_offset(struct igb_ring *rx_ring)
 }
 
 static struct igb_rx_buffer *igb_get_rx_buffer(struct igb_ring *rx_ring,
-					       const unsigned int size)
+					       const unsigned int size, int *rx_buf_pgcnt)
 {
 	struct igb_rx_buffer *rx_buffer;
 
 	rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean];
+	*rx_buf_pgcnt =
+#if (PAGE_SIZE < 8192)
+		page_count(rx_buffer->page);
+#else
+		0;
+#endif
 	prefetchw(rx_buffer->page);
 
 	/* we are reusing so sync this buffer for CPU use */
@@ -8652,9 +8660,9 @@ static struct igb_rx_buffer *igb_get_rx_buffer(struct igb_ring *rx_ring,
 }
 
 static void igb_put_rx_buffer(struct igb_ring *rx_ring,
-			      struct igb_rx_buffer *rx_buffer)
+			      struct igb_rx_buffer *rx_buffer, int rx_buf_pgcnt)
 {
-	if (igb_can_reuse_rx_page(rx_buffer)) {
+	if (igb_can_reuse_rx_page(rx_buffer, rx_buf_pgcnt)) {
 		/* hand second half of page back to the ring */
 		igb_reuse_rx_page(rx_ring, rx_buffer);
 	} else {
@@ -8681,6 +8689,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 	u16 cleaned_count = igb_desc_unused(rx_ring);
 	unsigned int xdp_xmit = 0;
 	struct xdp_buff xdp;
+	int rx_buf_pgcnt;
 
 	xdp.rxq = &rx_ring->xdp_rxq;
 
@@ -8711,7 +8720,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 		 */
 		dma_rmb();
 
-		rx_buffer = igb_get_rx_buffer(rx_ring, size);
+		rx_buffer = igb_get_rx_buffer(rx_ring, size, &rx_buf_pgcnt);
 
 		/* retrieve a buffer from the ring */
 		if (!skb) {
@@ -8754,7 +8763,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 			break;
 		}
 
-		igb_put_rx_buffer(rx_ring, rx_buffer);
+		igb_put_rx_buffer(rx_ring, rx_buffer, rx_buf_pgcnt);
 		cleaned_count++;
 
 		/* fetch next buffer in frame if non-eop */
drivers/net/ethernet/intel/igb/igb_ptp.c +24 -7
index 7cc5428c3b3d..86a576201f5f 100644
@@ -856,6 +856,9 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
 	dev_kfree_skb_any(skb);
 }
 
+#define IGB_RET_PTP_DISABLED 1
+#define IGB_RET_PTP_INVALID 2
+
 /**
  * igb_ptp_rx_pktstamp - retrieve Rx per packet timestamp
  * @q_vector: Pointer to interrupt specific structure
@@ -864,19 +867,29 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
  *
  * This function is meant to retrieve a timestamp from the first buffer of an
  * incoming frame.  The value is stored in little endian format starting on
- * byte 8.
+ * byte 8
+ *
+ * Returns: 0 if success, nonzero if failure
  **/
-void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
-			 struct sk_buff *skb)
+int igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
+			struct sk_buff *skb)
 {
-	__le64 *regval = (__le64 *)va;
 	struct igb_adapter *adapter = q_vector->adapter;
+	__le64 *regval = (__le64 *)va;
 	int adjust = 0;
 
+	if (!(adapter->ptp_flags & IGB_PTP_ENABLED))
+		return IGB_RET_PTP_DISABLED;
+
 	/* The timestamp is recorded in little endian format.
 	 * DWORD: 0        1        2        3
 	 * Field: Reserved Reserved SYSTIML  SYSTIMH
 	 */
+
+	/* check reserved dwords are zero, be/le doesn't matter for zero */
+	if (regval[0])
+		return IGB_RET_PTP_INVALID;
+
 	igb_ptp_systim_to_hwtstamp(adapter, skb_hwtstamps(skb),
 				   le64_to_cpu(regval[1]));
 
@@ -896,6 +909,8 @@ void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
 	}
 	skb_hwtstamps(skb)->hwtstamp =
 		ktime_sub_ns(skb_hwtstamps(skb)->hwtstamp, adjust);
+
+	return 0;
 }
 
 /**
@@ -906,13 +921,15 @@ void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
  * This function is meant to retrieve a timestamp from the internal registers
  * of the adapter and store it in the skb.
  **/
-void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector,
-			 struct sk_buff *skb)
+void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb)
 {
 	struct igb_adapter *adapter = q_vector->adapter;
 	struct e1000_hw *hw = &adapter->hw;
-	u64 regval;
 	int adjust = 0;
+	u64 regval;
+
+	if (!(adapter->ptp_flags & IGB_PTP_ENABLED))
+		return;
 
 	/* If this bit is set, then the RX registers contain the time stamp. No
 	 * other packet will be time stamped until we read these registers, so
drivers/net/ethernet/intel/igc/igc.h +1 -1
index 35baae900c1f..6dca67d9c25d 100644
@@ -545,7 +545,7 @@ void igc_ptp_init(struct igc_adapter *adapter);
 void igc_ptp_reset(struct igc_adapter *adapter);
 void igc_ptp_suspend(struct igc_adapter *adapter);
 void igc_ptp_stop(struct igc_adapter *adapter);
-void igc_ptp_rx_pktstamp(struct igc_q_vector *q_vector, void *va,
+void igc_ptp_rx_pktstamp(struct igc_q_vector *q_vector, __le32 *va,
 			 struct sk_buff *skb);
 int igc_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr);
 int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr);
drivers/net/ethernet/intel/igc/igc_ethtool.c +4 -3
index ec8cd69d4992..da259cd59add 100644
@@ -1695,6 +1695,9 @@ static int igc_ethtool_get_link_ksettings(struct net_device *netdev,
 						     Autoneg);
 	}
 
+	/* Set pause flow control settings */
+	ethtool_link_ksettings_add_link_mode(cmd, supported, Pause);
+
 	switch (hw->fc.requested_mode) {
 	case igc_fc_full:
 		ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
@@ -1709,9 +1712,7 @@ static int igc_ethtool_get_link_ksettings(struct net_device *netdev,
 						     Asym_Pause);
 		break;
 	default:
-		ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
-		ethtool_link_ksettings_add_link_mode(cmd, advertising,
-						     Asym_Pause);
+		break;
 	}
 
 	status = pm_runtime_suspended(&adapter->pdev->dev) ?
drivers/net/ethernet/intel/igc/igc_main.c +9 -0
index b673ac1199bb..7b822cdcc6c5 100644
@@ -3846,10 +3846,19 @@ static void igc_reset_task(struct work_struct *work)
 
 	adapter = container_of(work, struct igc_adapter, reset_task);
 
+	rtnl_lock();
+	/* If we're already down or resetting, just bail */
+	if (test_bit(__IGC_DOWN, &adapter->state) ||
+	    test_bit(__IGC_RESETTING, &adapter->state)) {
+		rtnl_unlock();
+		return;
+	}
+
 	igc_rings_dump(adapter);
 	igc_regs_dump(adapter);
 	netdev_err(adapter->netdev, "Reset adapter\n");
 	igc_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
drivers/net/ethernet/intel/igc/igc_ptp.c +40 -32

86 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +4 -2
index f3f449f53920..278fc866fad4 100644
@@ -9582,8 +9582,10 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
 	ixgbe_atr_compute_perfect_hash_82599(&input->filter, mask);
 	err = ixgbe_fdir_write_perfect_filter_82599(hw, &input->filter,
 						    input->sw_idx, queue);
-	if (!err)
-		ixgbe_update_ethtool_fdir_entry(adapter, input, input->sw_idx);
+	if (err)
+		goto err_out_w_lock;
+
+	ixgbe_update_ethtool_fdir_entry(adapter, input, input->sw_idx);
 	spin_unlock(&adapter->fdir_perfect_lock);
 
 	if ((uhtid != 0x800) && (adapter->jump_tables[uhtid]))
drivers/net/ethernet/marvell/octeontx2/af/npc.h +31 -0
index 91a9d00e4fb5..407b9477da24 100644
@@ -140,6 +140,15 @@ enum npc_kpu_lh_ltype {
 	NPC_LT_LH_CUSTOM1 = 0xF,
 };
 
+/* NPC port kind defines how the incoming or outgoing packets
+ * are processed. NPC accepts packets from up to 64 pkinds.
+ * Software assigns pkind for each incoming port such as CGX
+ * Ethernet interfaces, LBK interfaces, etc.
+ */
+enum npc_pkind_type {
+	NPC_TX_DEF_PKIND = 63ULL,	/* NIX-TX PKIND */
+};
+
 struct npc_kpu_profile_cam {
 	u8 state;
 	u8 state_mask;
@@ -300,6 +309,28 @@ struct nix_rx_action {
 /* NPC_AF_INTFX_KEX_CFG field masks */
 #define NPC_PARSE_NIBBLE		GENMASK_ULL(30, 0)
 
+/* NPC_PARSE_KEX_S nibble definitions for each field */
+#define NPC_PARSE_NIBBLE_CHAN		GENMASK_ULL(2, 0)
+#define NPC_PARSE_NIBBLE_ERRLEV		BIT_ULL(3)
+#define NPC_PARSE_NIBBLE_ERRCODE	GENMASK_ULL(5, 4)
+#define NPC_PARSE_NIBBLE_L2L3_BCAST	BIT_ULL(6)
+#define NPC_PARSE_NIBBLE_LA_FLAGS	GENMASK_ULL(8, 7)
+#define NPC_PARSE_NIBBLE_LA_LTYPE	BIT_ULL(9)
+#define NPC_PARSE_NIBBLE_LB_FLAGS	GENMASK_ULL(11, 10)
+#define NPC_PARSE_NIBBLE_LB_LTYPE	BIT_ULL(12)
+#define NPC_PARSE_NIBBLE_LC_FLAGS	GENMASK_ULL(14, 13)
+#define NPC_PARSE_NIBBLE_LC_LTYPE	BIT_ULL(15)
+#define NPC_PARSE_NIBBLE_LD_FLAGS	GENMASK_ULL(17, 16)
+#define NPC_PARSE_NIBBLE_LD_LTYPE	BIT_ULL(18)
+#define NPC_PARSE_NIBBLE_LE_FLAGS	GENMASK_ULL(20, 19)
+#define NPC_PARSE_NIBBLE_LE_LTYPE	BIT_ULL(21)
+#define NPC_PARSE_NIBBLE_LF_FLAGS	GENMASK_ULL(23, 22)
+#define NPC_PARSE_NIBBLE_LF_LTYPE	BIT_ULL(24)
+#define NPC_PARSE_NIBBLE_LG_FLAGS	GENMASK_ULL(26, 25)
+#define NPC_PARSE_NIBBLE_LG_LTYPE	BIT_ULL(27)
+#define NPC_PARSE_NIBBLE_LH_FLAGS	GENMASK_ULL(29, 28)
+#define NPC_PARSE_NIBBLE_LH_LTYPE	BIT_ULL(30)
+
 /* NIX Receive Vtag Action Structure */
 #define VTAG0_VALID_BIT		BIT_ULL(15)
 #define VTAG0_TYPE_MASK		GENMASK_ULL(14, 12)
drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h +83 -14

127 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +3 -1
index e1f918960730..644d28b0692b 100644
@@ -2151,8 +2151,10 @@ static void rvu_unregister_interrupts(struct rvu *rvu)
 		    INTR_MASK(rvu->hw->total_pfs) & ~1ULL);
 
 	for (irq = 0; irq < rvu->num_vec; irq++) {
-		if (rvu->irq_allocated[irq])
+		if (rvu->irq_allocated[irq]) {
 			free_irq(pci_irq_vector(rvu->pdev, irq), rvu);
+			rvu->irq_allocated[irq] = false;
+		}
 	}
 
 	pci_free_irq_vectors(rvu->pdev);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +31 -17

95 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +4 -0
index 21a89dd76d3c..f6a3cf3e6f23 100644
@@ -1129,6 +1129,10 @@ int rvu_mbox_handler_nix_lf_alloc(struct rvu *rvu,
 	/* Config Rx pkt length, csum checks and apad  enable / disable */
 	rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf), req->rx_cfg);
 
+	/* Configure pkind for TX parse config */
+	cfg = NPC_TX_DEF_PKIND;
+	rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_PARSE_CFG(nixlf), cfg);
+
 	intf = is_afvf(pcifunc) ? NIX_INTF_TYPE_LBK : NIX_INTF_TYPE_CGX;
 	err = nix_interface_init(rvu, pcifunc, intf, nixlf);
 	if (err)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +1 -1
index 511b01dd03ed..169ae491f978 100644
@@ -2035,10 +2035,10 @@ int rvu_mbox_handler_npc_mcam_free_counter(struct rvu *rvu,
 		index = find_next_bit(mcam->bmap, mcam->bmap_entries, entry);
 		if (index >= mcam->bmap_entries)
 			break;
+		entry = index + 1;
 		if (mcam->entry2cntr_map[index] != req->cntr)
 			continue;
 
-		entry = index + 1;
 		npc_unmap_mcam_entry_and_cntr(rvu, mcam, blkaddr,
 					      index, req->cntr);
 	}
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +5 -0
index 66f1a212f1f4..9fef9be015e5 100644
@@ -1616,6 +1616,7 @@ int otx2_stop(struct net_device *netdev)
 	struct otx2_nic *pf = netdev_priv(netdev);
 	struct otx2_cq_poll *cq_poll = NULL;
 	struct otx2_qset *qset = &pf->qset;
+	struct otx2_rss_info *rss;
 	int qidx, vec, wrk;
 
 	netif_carrier_off(netdev);
@@ -1628,6 +1629,10 @@ int otx2_stop(struct net_device *netdev)
 	/* First stop packet Rx/Tx */
 	otx2_rxtx_enable(pf, false);
 
+	/* Clear RSS enable flag */
+	rss = &pf->hw.rss_info;
+	rss->enable = false;
+
 	/* Cleanup Queue IRQ */
 	vec = pci_irq_vector(pf->pdev,
 			     pf->hw.nix_msixoff + NIX_LF_QINT_VEC_START);
drivers/net/ethernet/mellanox/mlx5/core/en.h +4 -3
index 2f05b0f9de01..9da34f82d466 100644
@@ -90,14 +90,15 @@ struct page_pool;
 				    MLX5_MPWRQ_LOG_WQE_SZ - PAGE_SHIFT : 0)
 #define MLX5_MPWRQ_PAGES_PER_WQE		BIT(MLX5_MPWRQ_WQE_PAGE_ORDER)
 
-#define MLX5_MTT_OCTW(npages) (ALIGN(npages, 8) / 2)
+#define MLX5_ALIGN_MTTS(mtts)		(ALIGN(mtts, 8))
+#define MLX5_ALIGNED_MTTS_OCTW(mtts)	((mtts) / 2)
+#define MLX5_MTT_OCTW(mtts)		(MLX5_ALIGNED_MTTS_OCTW(MLX5_ALIGN_MTTS(mtts)))
 /* Add another page to MLX5E_REQUIRED_WQE_MTTS as a buffer between
  * WQEs, This page will absorb write overflow by the hardware, when
  * receiving packets larger than MTU. These oversize packets are
  * dropped by the driver at a later stage.
  */
-#define MLX5E_REQUIRED_WQE_MTTS		(ALIGN(MLX5_MPWRQ_PAGES_PER_WQE + 1, 8))
-#define MLX5E_LOG_ALIGNED_MPWQE_PPW	(ilog2(MLX5E_REQUIRED_WQE_MTTS))
+#define MLX5E_REQUIRED_WQE_MTTS		(MLX5_ALIGN_MTTS(MLX5_MPWRQ_PAGES_PER_WQE + 1))
 #define MLX5E_REQUIRED_MTTS(wqes)	(wqes * MLX5E_REQUIRED_WQE_MTTS)
 #define MLX5E_MAX_RQ_NUM_MTTS	\
 	((1 << 16) * 2) /* So that MLX5_MTT_OCTW(num_mtts) fits into u16 */
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +2 -1
index 24e2c0d955b9..b42396df3111 100644
@@ -1182,7 +1182,8 @@ int mlx5_tc_ct_add_no_trk_match(struct mlx5_flow_spec *spec)
 
 	mlx5e_tc_match_to_reg_get_match(spec, CTSTATE_TO_REG,
 					&ctstate, &ctstate_mask);
-	if (ctstate_mask)
+
+	if ((ctstate & ctstate_mask) == MLX5_CT_STATE_TRK_BIT)
 		return -EOPNOTSUPP;
 
 	ctstate_mask |= MLX5_CT_STATE_TRK_BIT;
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c +4 -0
index e472ed0eacfb..7ed3f9f79f11 100644
@@ -227,6 +227,10 @@ static int mlx5e_tc_tun_parse_geneve_options(struct mlx5e_priv *priv,
 	option_key = (struct geneve_opt *)&enc_opts.key->data[0];
 	option_mask = (struct geneve_opt *)&enc_opts.mask->data[0];
 
+	if (option_mask->opt_class == 0 && option_mask->type == 0 &&
+	    !memchr_inv(option_mask->opt_data, 0, option_mask->length * 4))
+		return 0;
+
 	if (option_key->length > max_tlv_option_data_len) {
 		NL_SET_ERR_MSG_MOD(extack,
 				   "Matching on GENEVE options: unsupported option len");
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +5 -1
index b8622440243b..bcd05457647e 100644
@@ -1873,6 +1873,7 @@ static int set_pflag_rx_cqe_compress(struct net_device *netdev,
 {
 	struct mlx5e_priv *priv = netdev_priv(netdev);
 	struct mlx5_core_dev *mdev = priv->mdev;
+	int err;
 
 	if (!MLX5_CAP_GEN(mdev, cqe_compression))
 		return -EOPNOTSUPP;
@@ -1882,7 +1883,10 @@ static int set_pflag_rx_cqe_compress(struct net_device *netdev,
 		return -EINVAL;
 	}
 
-	mlx5e_modify_rx_cqe_compression_locked(priv, enable);
+	err = mlx5e_modify_rx_cqe_compression_locked(priv, enable);
+	if (err)
+		return err;
+
 	priv->channels.params.rx_cqe_compress_def = enable;
 
 	return 0;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +13 -4
index 6394f9d8c685..e2006c6053c9 100644
@@ -303,9 +303,9 @@ static int mlx5e_create_rq_umr_mkey(struct mlx5_core_dev *mdev, struct mlx5e_rq
 				     rq->wqe_overflow.addr);
 }
 
-static inline u64 mlx5e_get_mpwqe_offset(struct mlx5e_rq *rq, u16 wqe_ix)
+static u64 mlx5e_get_mpwqe_offset(u16 wqe_ix)
 {
-	return (wqe_ix << MLX5E_LOG_ALIGNED_MPWQE_PPW) << PAGE_SHIFT;
+	return MLX5E_REQUIRED_MTTS(wqe_ix) << PAGE_SHIFT;
 }
 
 static void mlx5e_init_frags_partition(struct mlx5e_rq *rq)
@@ -544,7 +544,7 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,
 				mlx5_wq_ll_get_wqe(&rq->mpwqe.wq, i);
 			u32 byte_count =
 				rq->mpwqe.num_strides << rq->mpwqe.log_stride_sz;
-			u64 dma_offset = mlx5e_get_mpwqe_offset(rq, i);
+			u64 dma_offset = mlx5e_get_mpwqe_offset(i);
 
 			wqe->data[0].addr = cpu_to_be64(dma_offset + rq->buff.headroom);
 			wqe->data[0].byte_count = cpu_to_be32(byte_count);
@@ -3666,10 +3666,17 @@ mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 	}
 
 	if (mlx5e_is_uplink_rep(priv)) {
+		struct mlx5e_vport_stats *vstats = &priv->stats.vport;
+
 		stats->rx_packets = PPORT_802_3_GET(pstats, a_frames_received_ok);
 		stats->rx_bytes   = PPORT_802_3_GET(pstats, a_octets_received_ok);
 		stats->tx_packets = PPORT_802_3_GET(pstats, a_frames_transmitted_ok);
 		stats->tx_bytes   = PPORT_802_3_GET(pstats, a_octets_transmitted_ok);
+
+		/* vport multicast also counts packets that are dropped due to steering
+		 * or rx out of buffer
+		 */
+		stats->multicast = VPORT_COUNTER_GET(vstats, received_eth_multicast.packets);
 	} else {
 		mlx5e_fold_sw_stats64(priv, stats);
 	}
@@ -4494,8 +4501,10 @@ static int mlx5e_xdp_set(struct net_device *netdev, struct bpf_prog *prog)
 		struct mlx5e_channel *c = priv->channels.c[i];
 
 		mlx5e_rq_replace_xdp_prog(&c->rq, prog);
-		if (test_bit(MLX5E_CHANNEL_STATE_XSK, c->state))
+		if (test_bit(MLX5E_CHANNEL_STATE_XSK, c->state)) {
+			bpf_prog_inc(prog);
 			mlx5e_rq_replace_xdp_prog(&c->xskrq, prog);
+		}
 	}
 
 unlock:
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +2 -2
index 6d2ba8b84187..7e1f8660dfec 100644
@@ -506,7 +506,6 @@ static int mlx5e_alloc_rx_mpwqe(struct mlx5e_rq *rq, u16 ix)
 	struct mlx5e_icosq *sq = &rq->channel->icosq;
 	struct mlx5_wq_cyc *wq = &sq->wq;
 	struct mlx5e_umr_wqe *umr_wqe;
-	u16 xlt_offset = ix << (MLX5E_LOG_ALIGNED_MPWQE_PPW - 1);
 	u16 pi;
 	int err;
 	int i;
@@ -537,7 +536,8 @@ static int mlx5e_alloc_rx_mpwqe(struct mlx5e_rq *rq, u16 ix)
 	umr_wqe->ctrl.opmod_idx_opcode =
 		cpu_to_be32((sq->pc << MLX5_WQE_CTRL_WQE_INDEX_SHIFT) |
 			    MLX5_OPCODE_UMR);
-	umr_wqe->uctrl.xlt_offset = cpu_to_be16(xlt_offset);
+	umr_wqe->uctrl.xlt_offset =
+		cpu_to_be16(MLX5_ALIGNED_MTTS_OCTW(MLX5E_REQUIRED_MTTS(ix)));
 
 	sq->db.wqe_info[pi] = (struct mlx5e_icosq_wqe_info) {
 		.wqe_type   = MLX5E_ICOSQ_WQE_UMR_RX,
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +43 -11

73 lines not on this page · raw message

drivers/net/ethernet/netronome/nfp/flower/metadata.c +17 -7
index 5defd31d481c..aa06fcb38f8b 100644
@@ -327,8 +327,14 @@ int nfp_compile_flow_metadata(struct nfp_app *app,
 		goto err_free_ctx_entry;
 	}
 
+	/* Do net allocate a mask-id for pre_tun_rules. These flows are used to
+	 * configure the pre_tun table and are never actually send to the
+	 * firmware as an add-flow message. This causes the mask-id allocation
+	 * on the firmware to get out of sync if allocated here.
+	 */
 	new_mask_id = 0;
-	if (!nfp_check_mask_add(app, nfp_flow->mask_data,
+	if (!nfp_flow->pre_tun_rule.dev &&
+	    !nfp_check_mask_add(app, nfp_flow->mask_data,
 				nfp_flow->meta.mask_len,
 				&nfp_flow->meta.flags, &new_mask_id)) {
 		NL_SET_ERR_MSG_MOD(extack, "invalid entry: cannot allocate a new mask id");
@@ -359,7 +365,8 @@ int nfp_compile_flow_metadata(struct nfp_app *app,
 			goto err_remove_mask;
 		}
 
-		if (!nfp_check_mask_remove(app, nfp_flow->mask_data,
+		if (!nfp_flow->pre_tun_rule.dev &&
+		    !nfp_check_mask_remove(app, nfp_flow->mask_data,
 					   nfp_flow->meta.mask_len,
 					   NULL, &new_mask_id)) {
 			NL_SET_ERR_MSG_MOD(extack, "invalid entry: cannot release mask id");
@@ -374,8 +381,10 @@ int nfp_compile_flow_metadata(struct nfp_app *app,
 	return 0;
 
 err_remove_mask:
-	nfp_check_mask_remove(app, nfp_flow->mask_data, nfp_flow->meta.mask_len,
-			      NULL, &new_mask_id);
+	if (!nfp_flow->pre_tun_rule.dev)
+		nfp_check_mask_remove(app, nfp_flow->mask_data,
+				      nfp_flow->meta.mask_len,
+				      NULL, &new_mask_id);
 err_remove_rhash:
 	WARN_ON_ONCE(rhashtable_remove_fast(&priv->stats_ctx_table,
 					    &ctx_entry->ht_node,
@@ -406,9 +415,10 @@ int nfp_modify_flow_metadata(struct nfp_app *app,
 
 	__nfp_modify_flow_metadata(priv, nfp_flow);
 
-	nfp_check_mask_remove(app, nfp_flow->mask_data,
-			      nfp_flow->meta.mask_len, &nfp_flow->meta.flags,
-			      &new_mask_id);
+	if (!nfp_flow->pre_tun_rule.dev)
+		nfp_check_mask_remove(app, nfp_flow->mask_data,
+				      nfp_flow->meta.mask_len, &nfp_flow->meta.flags,
+				      &new_mask_id);
 
 	/* Update flow payload with mask ids. */
 	nfp_flow->unmasked_data[NFP_FL_MASK_ID_LOCATION] = new_mask_id;
drivers/net/ethernet/netronome/nfp/flower/offload.c +18 -0
index 1c59aff2163c..d72225d64a75 100644
@@ -1142,6 +1142,12 @@ nfp_flower_validate_pre_tun_rule(struct nfp_app *app,
 		return -EOPNOTSUPP;
 	}
 
+	if (!(key_layer & NFP_FLOWER_LAYER_IPV4) &&
+	    !(key_layer & NFP_FLOWER_LAYER_IPV6)) {
+		NL_SET_ERR_MSG_MOD(extack, "unsupported pre-tunnel rule: match on ipv4/ipv6 eth_type must be present");
+		return -EOPNOTSUPP;
+	}
+
 	/* Skip fields known to exist. */
 	mask += sizeof(struct nfp_flower_meta_tci);
 	ext += sizeof(struct nfp_flower_meta_tci);
@@ -1152,6 +1158,13 @@ nfp_flower_validate_pre_tun_rule(struct nfp_app *app,
 	mask += sizeof(struct nfp_flower_in_port);
 	ext += sizeof(struct nfp_flower_in_port);
 
+	/* Ensure destination MAC address matches pre_tun_dev. */
+	mac = (struct nfp_flower_mac_mpls *)ext;
+	if (memcmp(&mac->mac_dst[0], flow->pre_tun_rule.dev->dev_addr, 6)) {
+		NL_SET_ERR_MSG_MOD(extack, "unsupported pre-tunnel rule: dest MAC must match output dev MAC");
+		return -EOPNOTSUPP;
+	}
+
 	/* Ensure destination MAC address is fully matched. */
 	mac = (struct nfp_flower_mac_mpls *)mask;
 	if (!is_broadcast_ether_addr(&mac->mac_dst[0])) {
@@ -1159,6 +1172,11 @@ nfp_flower_validate_pre_tun_rule(struct nfp_app *app,
 		return -EOPNOTSUPP;
 	}
 
+	if (mac->mpls_lse) {
+		NL_SET_ERR_MSG_MOD(extack, "unsupported pre-tunnel rule: MPLS not supported");
+		return -EOPNOTSUPP;
+	}
+
 	mask += sizeof(struct nfp_flower_mac_mpls);
 	ext += sizeof(struct nfp_flower_mac_mpls);
 	if (key_layer & NFP_FLOWER_LAYER_IPV4 ||
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +13 -2
index 7248d248f604..d19c02e99114 100644
@@ -16,8 +16,9 @@
 #define NFP_FL_MAX_ROUTES               32
 
 #define NFP_TUN_PRE_TUN_RULE_LIMIT	32
-#define NFP_TUN_PRE_TUN_RULE_DEL	0x1
-#define NFP_TUN_PRE_TUN_IDX_BIT		0x8
+#define NFP_TUN_PRE_TUN_RULE_DEL	BIT(0)
+#define NFP_TUN_PRE_TUN_IDX_BIT		BIT(3)
+#define NFP_TUN_PRE_TUN_IPV6_BIT	BIT(7)
 
 /**
  * struct nfp_tun_pre_run_rule - rule matched before decap
@@ -1268,6 +1269,7 @@ int nfp_flower_xmit_pre_tun_flow(struct nfp_app *app,
 {
 	struct nfp_flower_priv *app_priv = app->priv;
 	struct nfp_tun_offloaded_mac *mac_entry;
+	struct nfp_flower_meta_tci *key_meta;
 	struct nfp_tun_pre_tun_rule payload;
 	struct net_device *internal_dev;
 	int err;
@@ -1290,6 +1292,15 @@ int nfp_flower_xmit_pre_tun_flow(struct nfp_app *app,
 	if (!mac_entry)
 		return -ENOENT;
 
+	/* Set/clear IPV6 bit. cpu_to_be16() swap will lead to MSB being
+	 * set/clear for port_idx.
+	 */
+	key_meta = (struct nfp_flower_meta_tci *)flow->unmasked_data;
+	if (key_meta->nfp_flow_key_layer & NFP_FLOWER_LAYER_IPV6)
+		mac_entry->index |= NFP_TUN_PRE_TUN_IPV6_BIT;
+	else
+		mac_entry->index &= ~NFP_TUN_PRE_TUN_IPV6_BIT;
+
 	payload.port_idx = cpu_to_be16(mac_entry->index);
 
 	/* Copy mac id and vlan to flow - dev may not exist at delete time. */
drivers/net/ethernet/pensando/ionic/ionic_txrx.c +7 -6
index a81feffb09b8..909eca14f647 100644
@@ -1077,15 +1077,17 @@ static int ionic_tx_descs_needed(struct ionic_queue *q, struct sk_buff *skb)
 {
 	int sg_elems = q->lif->qtype_info[IONIC_QTYPE_TXQ].max_sg_elems;
 	struct ionic_tx_stats *stats = q_to_tx_stats(q);
+	int ndescs;
 	int err;
 
-	/* If TSO, need roundup(skb->len/mss) descs */
+	/* Each desc is mss long max, so a descriptor for each gso_seg */
 	if (skb_is_gso(skb))
-		return (skb->len / skb_shinfo(skb)->gso_size) + 1;
+		ndescs = skb_shinfo(skb)->gso_segs;
+	else
+		ndescs = 1;
 
-	/* If non-TSO, just need 1 desc and nr_frags sg elems */
 	if (skb_shinfo(skb)->nr_frags <= sg_elems)
-		return 1;
+		return ndescs;
 
 	/* Too many frags, so linearize */
 	err = skb_linearize(skb);
@@ -1094,8 +1096,7 @@ static int ionic_tx_descs_needed(struct ionic_queue *q, struct sk_buff *skb)
 
 	stats->linearize++;
 
-	/* Need 1 desc and zero sg elems */
-	return 1;
+	return ndescs;
 }
 
 static int ionic_maybe_stop_tx(struct ionic_queue *q, int ndescs)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c +3 -0
index 7760a3394e93..7ecb3dfe30bd 100644
@@ -1425,6 +1425,7 @@ void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter)
 
 	if (fw_dump->tmpl_hdr == NULL || current_version > prev_version) {
 		vfree(fw_dump->tmpl_hdr);
+		fw_dump->tmpl_hdr = NULL;
 
 		if (qlcnic_83xx_md_check_extended_dump_capability(adapter))
 			extended = !qlcnic_83xx_extend_md_capab(adapter);
@@ -1443,6 +1444,8 @@ void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter)
 			struct qlcnic_83xx_dump_template_hdr *hdr;
 
 			hdr = fw_dump->tmpl_hdr;
+			if (!hdr)
+				return;
 			hdr->drv_cap_mask = 0x1f;
 			fw_dump->cap_mask = 0x1f;
 			dev_info(&pdev->dev,
drivers/net/ethernet/realtek/r8169_main.c +4 -2
index 1591715c9717..d634da20b4f9 100644
@@ -4726,6 +4726,9 @@ static void rtl8169_down(struct rtl8169_private *tp)
 
 	rtl8169_update_counters(tp);
 
+	pci_clear_master(tp->pci_dev);
+	rtl_pci_commit(tp);
+
 	rtl8169_cleanup(tp, true);
 
 	rtl_pll_power_down(tp);
@@ -4733,6 +4736,7 @@ static void rtl8169_down(struct rtl8169_private *tp)
 
 static void rtl8169_up(struct rtl8169_private *tp)
 {
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/socionext/netsec.c +6 -3
index 1503cc9ec6e2..ef3634d1b9f7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +2 -0
index a5e0eff4a387..9f5ccf1a0a54 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c +42 -8

50 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/enh_desc.c +6 -3
index d02cec296f51..6650edfab5bc 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/hwif.h +2 -1
index afe7ec496545..b0b84244ef10 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/norm_desc.c +6 -3
index f083360e4ba6..98ef43f35802 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +38 -19

57 lines not on this page · raw message

drivers/net/ethernet/sun/niu.c +0 -2
index 68695d4afacd..707ccdd03b19 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/tehuti/tehuti.c +1 -0
index b8f4f419173f..d054c6e83b1c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/xilinx/xilinx_axienet.h +3 -0
index f34c7903ff52..7326ad4d5e1c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +90 -35

125 lines not on this page · raw message

drivers/net/ipa/ipa_qmi.c +2 -0
index 5090f0f923ad..1a87a49538c5 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/broadcom.c +108 -39

147 lines not on this page · raw message

drivers/net/phy/dp83822.c +3 -0
index c162c9551bd1..a9b058bb1be8 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/dp83869.c +4 -0
index cf6dec7b7d8e..a9daff88006b 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/lxt.c +1 -0
index fec58ad69e02..cb8e4f0215fe 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/marvell.c +1 -0
index 5aec673a0120..5dbdaf0f5f09 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/marvell10g.c +2 -0
index 1901ba277413..b1bb9b8e1e4e 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/micrel.c +11 -3
index 47ae1d1723c5..9b0bc8b74bc0 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phy.c +1 -1
index 49e96ca585ff..28ddaad721ed 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phy_device.c +9 -0
index 2d4eed2d61ce..85f3cde5ffd0 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phylink.c +1 -1
index fe2296fdda19..6072e87ed6c3 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/cdc-phonet.c +2 -0
index dba847f28096..2520421946a6 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/r8152.c +10 -30
index 88f177aca342..f5010f8ac1ec 100644

Lines of this file are not shown. View the raw message.

drivers/net/veth.c +1 -2
index 8c737668008a..be18b243642f 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/fsl_ucc_hdlc.c +6 -2
index dca97cd7c4e7..7eac6a3e1cde 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/hdlc_x25.c +41 -1

42 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/dma.c +6 -9
index 262c40dc14a6..665a03ebf9ef 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/core.c +11 -4
index de846aaa8728..610d2bc43ea2 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/fc.c +2 -1
index fab068c8ba02..41257daf7464 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +1 -0
index 99c59f93a064..4dca58f4afdf 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/rdma.c +2 -3
index 06b6b742bb21..6c1f3ab7649c 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/intel-vbtn.c +10 -2
index 30a9062d2b4b..a90c32d072da 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/qcom-rpmh-regulator.c +2 -2
index 52e4396d4071..c3036591b259 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt3sas/mpt3sas_base.c +6 -2
index bb940cbcbb5d..ac25ec5f9738 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qedi/qedi_main.c +1 -0
index 47ad64b06623..69c5b5ee2169 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_target.c +5 -8
index a27a625839e6..dcae8f071c35 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/tcm_qla2xxx.c +0 -4
index 61017acd3458..7405fab324c8 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufs-qcom.c +10 -0
index a244c8ae1b4e..20182e39cb28 100644

Lines of this file are not shown. View the raw message.

drivers/soc/ti/omap_prm.c +5 -1
index c8b14b3a171f..fb067b5e4a97 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8192e/Kconfig +1 -0
index 03fcc23516fd..6e7d84ac06f5 100644

Lines of this file are not shown. View the raw message.

drivers/xen/Kconfig +2 -2
index 41645fe6ad48..ea0efd290c37 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/qgroup.c +10 -2
index cd9b1a16489b..4bac32a274ce 100644

Lines of this file are not shown. View the raw message.

fs/cachefiles/rdwr.c +3 -4
index e027c718ca01..8ffc40e84a59 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifsglob.h +2 -2
index 3295516af2ae..248ee81e0151 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifspdu.h +5 -0
index 593d826820c3..a843422942b1 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2glob.h +1 -0
index 99a1951a01ec..d9a990c99121 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2ops.c +20 -7
index 02998c79bb90..46d247c722ee 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2pdu.c +2 -4
index c6f8bc6729aa..d1d550647cd6 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2transport.c +28 -9
index ebccd71cc60a..e6fa76ab70be 100644

Lines of this file are not shown. View the raw message.

fs/cifs/transport.c +1 -1
index 7b45b3b79df5..503a0056b60f 100644

Lines of this file are not shown. View the raw message.

fs/ext4/mballoc.c +9 -2
index e67d5de6f28c..b6229fe1aa23 100644

Lines of this file are not shown. View the raw message.

fs/ext4/xattr.c +4 -0
index 469847179573..5462f26907c1 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/log.c +4 -0
index 2e9314091c81..1955dea999f7 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/trans.c +2 -0
index 6d4bf7ea7b3b..7f850ff6a05d 100644

Lines of this file are not shown. View the raw message.

fs/io_uring.c +3 -1
index 06e9c2181995..dde290eb7dd0 100644

Lines of this file are not shown. View the raw message.

fs/nfs/Kconfig +1 -1
index e2a488d403a6..14a72224b657 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs3xdr.c +2 -1
index 69971f6c840d..dff6b52d26a8 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4proc.c +3 -0
index ba2dfba4854b..15ac6b6893e7 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/export.c +6 -2
index eb02072d28dd..723763746238 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/id.c +4 -2
index 11581bf31af4..ea5387679723 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/squashfs_fs.h +1 -0
index 8d64edb80ebf..b3fdc8212c5f 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/xattr_id.c +4 -2
index ead66670b41a..087cab8c78f4 100644

Lines of this file are not shown. View the raw message.

include/acpi/acpi_bus.h +1 -0
index 6d1879bf9440..37dac195adbb 100644

Lines of this file are not shown. View the raw message.

include/asm-generic/vmlinux.lds.h +4 -1
index 34d8287cd774..d7efbc5490e8 100644

Lines of this file are not shown. View the raw message.

include/linux/bpf.h +5 -4
index 76322b6452c8..dd236ef59db3 100644

Lines of this file are not shown. View the raw message.

include/linux/brcmphy.h +4 -0
index d0bd226d6bd9..54665952d6ad 100644

Lines of this file are not shown. View the raw message.

include/linux/device-mapper.h +14 -1
index d2d7f9b6a276..50cc070cb1f7 100644

Lines of this file are not shown. View the raw message.

include/linux/hugetlb_cgroup.h +13 -2
index 2ad6e92f124a..0bff345c4bc6 100644

Lines of this file are not shown. View the raw message.

include/linux/if_macvlan.h +2 -1
index a367ead4bf4b..e11555989090 100644

Lines of this file are not shown. View the raw message.

include/linux/memcontrol.h +2 -4
index 922a7f600465..c691b1ac95f8 100644

Lines of this file are not shown. View the raw message.

include/linux/mm.h +14 -1
index b8eadd9f9680..08a48d3eaeaa 100644

Lines of this file are not shown. View the raw message.

include/linux/mm_types.h +1 -0
index 915f4f100383..3433ecc9c1f7 100644

Lines of this file are not shown. View the raw message.

include/linux/mmu_notifier.h +5 -5
index b8200782dede..1a6a9eb6d3fa 100644

Lines of this file are not shown. View the raw message.

include/linux/mutex.h +1 -1
index dcd185cbfe79..4d671fba3cab 100644

Lines of this file are not shown. View the raw message.

include/linux/netfilter/x_tables.h +2 -5
index 8ebb64193757..8ec48466410a 100644

Lines of this file are not shown. View the raw message.

include/linux/pagemap.h +0 -1
index d5570deff400..b032f094a782 100644

Lines of this file are not shown. View the raw message.

include/linux/phy.h +2 -0
index 56563e5e0dc7..08725a262f32 100644

Lines of this file are not shown. View the raw message.

include/linux/static_call.h +20 -23

43 lines not on this page · raw message

include/linux/static_call_types.h +50 -0

50 lines not on this page · raw message

include/linux/u64_stats_sync.h +4 -3
index c6abb79501b3..e81856c0ba13 100644

Lines of this file are not shown. View the raw message.

include/linux/usermode_driver.h +1 -0
index 073a9e0ec07d..ad970416260d 100644

Lines of this file are not shown. View the raw message.

include/net/dst.h +11 -0
index 8ea8812b0b41..acd15c544cf3 100644

Lines of this file are not shown. View the raw message.

include/net/inet_connection_sock.h +1 -1
index 111d7771b208..aa92af3dd444 100644

Lines of this file are not shown. View the raw message.

include/net/netfilter/nf_tables.h +3 -0
index c1c0a4ff92ae..ed4a9d098164 100644

Lines of this file are not shown. View the raw message.

include/net/nexthop.h +24 -0
index 2fd76a9b6dc8..4c8c9fe9a3f0 100644

Lines of this file are not shown. View the raw message.

include/net/red.h +9 -1
index 932f0d79d60c..9e6647c4ccd1 100644

Lines of this file are not shown. View the raw message.

include/net/rtnetlink.h +2 -0
index e2091bb2b3a8..4da61c950e93 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/psample.h +1 -4
index aea26ab1431c..bff5032c98df 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/bpf_inode_storage.c +1 -1
index c2a501cd90eb..a4ac48c7dada 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/preload/bpf_preload_kern.c +15 -4
index 79c5772465f1..53736e52c1df 100644

Lines of this file are not shown. View the raw message.

kernel/fork.c +8 -0
index c675fdbd3dce..7c044d377926 100644

Lines of this file are not shown. View the raw message.

kernel/gcov/clang.c +69 -0

69 lines not on this page · raw message

kernel/power/energy_model.c +1 -1
index c1ff7fa030ab..994ca8353543 100644

Lines of this file are not shown. View the raw message.

kernel/static_call.c +63 -8

71 lines not on this page · raw message

kernel/trace/ftrace.c +38 -5

43 lines not on this page · raw message

kernel/usermode_driver.c +15 -6
index 0b35212ffc3d..bb7bb3b478ab 100644

Lines of this file are not shown. View the raw message.

mm/huge_memory.c +1 -1
index 4a78514830d5..d9ade23ac2b2 100644

Lines of this file are not shown. View the raw message.

mm/hugetlb.c +37 -4

41 lines not on this page · raw message

mm/hugetlb_cgroup.c +8 -2
index 9182848dda3e..1348819f546c 100644

Lines of this file are not shown. View the raw message.

mm/memcontrol.c +8 -9
index d6966f1ebc7a..d72d2b90474a 100644

Lines of this file are not shown. View the raw message.

mm/mmu_notifier.c +23 -0
index 5654dd19addc..07f42a7a6065 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +1 -0
index 690f79c781cf..7ffa706e5c30 100644

Lines of this file are not shown. View the raw message.

mm/z3fold.c +15 -1
index 0152ad9931a8..8ae944eeb8e2 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_switchdev.c +2 -0
index 015209bf44aa..3c42095fa75f 100644

Lines of this file are not shown. View the raw message.

net/can/isotp.c +8 -10
index 8bd565f2073e..ea1e227b8e54 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +13 -1
index 75ca6c6d01d6..62ff7121b22d 100644

Lines of this file are not shown. View the raw message.

net/core/drop_monitor.c +23 -0
index 571f191c06d9..db65ce62b625 100644

Lines of this file are not shown. View the raw message.

net/core/dst.c +42 -17

59 lines not on this page · raw message

net/core/flow_dissector.c +1 -1
index e21950a2c897..c79be25b2e0c 100644

Lines of this file are not shown. View the raw message.

net/dccp/ipv6.c +5 -0
index 78ee1b5acf1f..49f4034bf126 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_connection_sock.c +5 -2
index 48d2b615edc2..1dfa561e8f98 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/arp_tables.c +8 -8
index c576a63d09db..d1e04d2b5170 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/ip_tables.c +8 -8
index e8f6f9d86237..f15bc21d7301 100644

Lines of this file are not shown. View the raw message.

net/ipv4/route.c +8 -37

45 lines not on this page · raw message

net/ipv4/tcp_minisocks.c +5 -2
index 495dda2449fe..f0f67b25c97a 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_fib.c +1 -1
index f43e27555725..1fb79dbde0cb 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_input.c +0 -10
index e96304d8a4a7..06d60662717d 100644

Lines of this file are not shown. View the raw message.

net/ipv6/netfilter/ip6_tables.c +8 -8
index 0d453fa9e327..2e2119bfcf13 100644

Lines of this file are not shown. View the raw message.

net/ipv6/route.c +9 -27
index 7e0ce7af8234..fa276448d5a2 100644

Lines of this file are not shown. View the raw message.

net/ipv6/tcp_ipv6.c +5 -0
index 991dc36f95ff..3f9bb6dd1f98 100644

Lines of this file are not shown. View the raw message.

net/mac80211/cfg.c +2 -2
index 7276e66ae435..2bf6271d9e3f 100644

Lines of this file are not shown. View the raw message.

net/mac80211/ibss.c +2 -0
index 1f552f374e97..a7ac53a2f00d 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mlme.c +1 -1
index 6adfcb9c06dc..3f483e84d5df 100644

Lines of this file are not shown. View the raw message.

net/mac80211/util.c +1 -1
index 94e624e9439b..d8f9fb0646a4 100644

Lines of this file are not shown. View the raw message.

net/mptcp/subflow.c +5 -0
index 16adba172fb9..6317b9bc8681 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_netlink.c +1 -0
index 3d0fd33be018..c1bfd8181341 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_flow_table_core.c +1 -1
index 4a4acbba78ff..b03feb6e1226 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +18 -1
index 8739ef135156..978a968d7aed 100644

Lines of this file are not shown. View the raw message.

net/netfilter/x_tables.c +34 -15

49 lines not on this page · raw message

net/qrtr/qrtr.c +5 -0
index 54031ee079a2..45fbf5f4dcd2 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_flower.c +1 -1
index 46c1b3e9f66a..14316ba9b3b3 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_choke.c +4 -3
index 50f680f03a54..2adbd945bf15 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_gred.c +1 -1
index e0bc77533acc..f4132dc25ac0 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_red.c +5 -2
index b4ae34d7aa96..40adf1f07a82 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_sfq.c +1 -1
index b25e51440623..066754a18569 100644

Lines of this file are not shown. View the raw message.

net/tipc/node.c +8 -3
index 83978d5dae59..e4452d55851f 100644

Lines of this file are not shown. View the raw message.

net/vmw_vsock/af_vsock.c +1 -0
index 791955f5e7ec..cf86c1376b1a 100644

Lines of this file are not shown. View the raw message.

scripts/dummy-tools/gcc +5 -0
index 33487e99d83e..11c9f045ee4b 100755

Lines of this file are not shown. View the raw message.

security/integrity/iint.c +8 -0
index 1d20003243c3..0ba01847e836 100644

Lines of this file are not shown. View the raw message.

security/selinux/include/security.h +11 -4
index 3cc8bab31ea8..63ca6e79daeb 100644

Lines of this file are not shown. View the raw message.

security/selinux/selinuxfs.c +6 -7
index 4bde570d56a2..2b745ae8cb98 100644

Lines of this file are not shown. View the raw message.

security/selinux/ss/services.c +39 -24

63 lines not on this page · raw message

sound/hda/intel-nhlt.c +5 -0
index d053beccfaec..e2237239d922 100644

Lines of this file are not shown. View the raw message.

tools/include/linux/static_call_types.h +50 -0

50 lines not on this page · raw message

tools/lib/bpf/Makefile +1 -1
index 55bd78b3496f..310f647c2d5b 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/btf_dump.c +1 -1
index 2f9d685bd522..0911aea4cdbe 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/libbpf.c +2 -1
index b954db52bb80..95eef7ebdac5 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/netlink.c +1 -1
index 4dd73de00b6f..d2cb28e9ef52 100644

Lines of this file are not shown. View the raw message.

tools/objtool/check.c +15 -2
index dc24aac08edd..5c83f73ad668 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/auxtrace.c +0 -4
index 42a85c86421d..d8ada6a3c555 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/synthetic-events.c +5 -4
index d9c624377da7..b4cf6dd57dd6 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/arm64/fp/sve-ptrace.c +1 -1
index b2282be6f938..612d3899614a 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/progs/test_tunnel_kern.c +2 -4
index 9afe947cfae9..ba6eadfec565 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh +1 -1
index ce6bea9675c0..0ccb1dda099a 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/reuseaddr_ports_exhausted.c +16 -16
index 7b01b7c2ec10..066efd30e294 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.27 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/virt/kvm/api.rst                                 |    6 
 Makefile                                                       |    5 
 arch/arm/boot/dts/at91-sam9x60ek.dts                           |    8 
 arch/arm/boot/dts/at91-sama5d27_som1.dtsi                      |    4 
 arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dts               |    1 
 arch/arm/boot/dts/sam9x60.dtsi                                 |    9 
 arch/arm/mach-omap2/sr_device.c                                |   75 +++--
 arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi                 |    1 
 arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi                 |    1 
 arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi                 |    1 
 arch/arm64/kernel/crash_dump.c                                 |    2 
 arch/arm64/kernel/stacktrace.c                                 |    9 
 arch/ia64/include/asm/syscall.h                                |    2 
 arch/ia64/kernel/ptrace.c                                      |   24 +
 arch/powerpc/include/asm/dcr-native.h                          |    8 
 arch/sparc/kernel/traps_64.c                                   |   13 
 arch/x86/include/asm/kvm_host.h                                |   14 
 arch/x86/include/asm/static_call.h                             |    7 
 arch/x86/include/asm/xen/page.h                                |   12 
 arch/x86/kvm/x86.c                                             |  109 ++++---
 arch/x86/mm/mem_encrypt.c                                      |    2 
 arch/x86/xen/p2m.c                                             |    7 
 arch/x86/xen/setup.c                                           |   16 -
 block/blk-cgroup-rwstat.c                                      |    3 
 block/blk-merge.c                                              |    8 
 block/blk-zoned.c                                              |    2 
 block/genhd.c                                                  |    4 
 drivers/acpi/acpica/nsaccess.c                                 |    3 
 drivers/acpi/internal.h                                        |    6 
 drivers/acpi/scan.c                                            |   88 +++--
 drivers/acpi/video_detect.c                                    |    1 
 drivers/atm/eni.c                                              |    3 
 drivers/atm/idt77105.c                                         |    4 
 drivers/atm/lanai.c                                            |    5 
 drivers/atm/uPD98402.c                                         |    2 
 drivers/base/power/runtime.c                                   |   45 ++-
 drivers/block/umem.c                                           |    5 
 drivers/block/xen-blkback/blkback.c                            |    2 
 drivers/bus/omap_l3_noc.c                                      |    4 
 drivers/clk/qcom/gcc-sc7180.c                                  |    4 
 drivers/cpufreq/cpufreq-dt-platdev.c                           |    2 
 drivers/gpio/gpiolib-acpi.c                                    |    2 
 drivers/gpu/drm/Kconfig                                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c                         |    2 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.c      |    3 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c          |    2 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c            |   54 +++
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c          |   74 ++++-
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c          |   24 +
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c          |   25 +
 drivers/gpu/drm/etnaviv/etnaviv_gem.c                          |    2 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                   |   13 
 drivers/gpu/drm/i915/intel_runtime_pm.c                        |   29 +
 drivers/gpu/drm/i915/intel_runtime_pm.h                        |    5 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll.c                          |    2 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll.h                          |    6 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c                      |    5 
 drivers/gpu/drm/msm/msm_drv.c                                  |   12 
 drivers/infiniband/hw/cxgb4/cm.c                               |    4 
 drivers/irqchip/irq-ingenic-tcu.c                              |    1 
 drivers/irqchip/irq-ingenic.c                                  |    1 
 drivers/md/dm-ioctl.c                                          |    2 
 drivers/md/dm-table.c                                          |   33 +-
 drivers/md/dm-verity-target.c                                  |    2 
 drivers/md/dm-zoned-target.c                                   |    2 
 drivers/misc/habanalabs/common/device.c                        |    2 
 drivers/net/bonding/bond_main.c                                |    8 
 drivers/net/can/c_can/c_can.c                                  |   24 -
 drivers/net/can/c_can/c_can_pci.c                              |    3 
 drivers/net/can/c_can/c_can_platform.c                         |    6 
 drivers/net/can/dev.c                                          |    1 
 drivers/net/can/flexcan.c                                      |    8 
 drivers/net/can/kvaser_pciefd.c                                |    4 
 drivers/net/can/m_can/m_can.c                                  |    5 
 drivers/net/dsa/b53/b53_common.c                               |   14 
 drivers/net/dsa/bcm_sf2.c                                      |    6 
 drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c |    2 
 drivers/net/ethernet/davicom/dm9000.c                          |    2 
 drivers/net/ethernet/faraday/ftgmac100.c                       |    1 
 drivers/net/ethernet/freescale/enetc/enetc_hw.h                |    2 
 drivers/net/ethernet/freescale/enetc/enetc_pf.c                |    6 
 drivers/net/ethernet/freescale/fec_ptp.c                       |    7 
 drivers/net/ethernet/freescale/gianfar.c                       |   15 +
 drivers/net/ethernet/hisilicon/hns/hns_enet.c                  |    4 
 drivers/net/ethernet/intel/e1000e/82571.c                      |    2 
 drivers/net/ethernet/intel/e1000e/netdev.c                     |    6 
 drivers/net/ethernet/intel/iavf/iavf_main.c                    |    3 
 drivers/net/ethernet/intel/igb/igb.h                           |    4 
 drivers/net/ethernet/intel/igb/igb_main.c                      |   33 +-
 drivers/net/ethernet/intel/igb/igb_ptp.c                       |   31 +-
 drivers/net/ethernet/intel/igc/igc.h                           |    2 
 drivers/net/ethernet/intel/igc/igc_ethtool.c                   |    7 
 drivers/net/ethernet/intel/igc/igc_main.c                      |    9 
 drivers/net/ethernet/intel/igc/igc_ptp.c                       |   72 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c                  |    6 
 drivers/net/ethernet/marvell/octeontx2/af/npc.h                |   31 ++
 drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h        |   97 +++++-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c                |    4 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c        |   48 ++-
 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c            |    4 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c            |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c           |    5 
 drivers/net/ethernet/mellanox/mlx5/core/en.h                   |    7 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c             |    3 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c     |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c           |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |   17 -
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c                |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                |   54 ++-
 drivers/net/ethernet/netronome/nfp/flower/metadata.c           |   24 +
 drivers/net/ethernet/netronome/nfp/flower/offload.c            |   18 +
 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c        |   15 -
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c               |   13 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c           |    3 
 drivers/net/ethernet/realtek/r8169_main.c                      |    6 
 drivers/net/ethernet/socionext/netsec.c                        |    9 
 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c              |    2 
 drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c             |   50 ++-
 drivers/net/ethernet/stmicro/stmmac/enh_desc.c                 |    9 
 drivers/net/ethernet/stmicro/stmmac/hwif.h                     |    3 
 drivers/net/ethernet/stmicro/stmmac/norm_desc.c                |    9 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c              |   57 ++-
 drivers/net/ethernet/sun/niu.c                                 |    2 
 drivers/net/ethernet/tehuti/tehuti.c                           |    1 
 drivers/net/ethernet/xilinx/xilinx_axienet.h                   |    3 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c              |  125 ++++++--
 drivers/net/ipa/ipa_qmi.c                                      |    2 
 drivers/net/phy/broadcom.c                                     |  147 +++++++---
 drivers/net/phy/dp83822.c                                      |    3 
 drivers/net/phy/dp83869.c                                      |    4 
 drivers/net/phy/lxt.c                                          |    1 
 drivers/net/phy/marvell.c                                      |    1 
 drivers/net/phy/marvell10g.c                                   |    2 
 drivers/net/phy/micrel.c                                       |   14 
 drivers/net/phy/phy.c                                          |    2 
 drivers/net/phy/phy_device.c                                   |    9 
 drivers/net/phy/phylink.c                                      |    2 
 drivers/net/usb/cdc-phonet.c                                   |    2 
 drivers/net/usb/r8152.c                                        |   40 --
 drivers/net/veth.c                                             |    3 
 drivers/net/wan/fsl_ucc_hdlc.c                                 |    8 
 drivers/net/wan/hdlc_x25.c                                     |   42 ++
 drivers/net/wireless/mediatek/mt76/dma.c                       |   15 -
 drivers/nvme/host/core.c                                       |   15 -
 drivers/nvme/host/fc.c                                         |    3 
 drivers/nvme/host/pci.c                                        |    1 
 drivers/nvme/target/rdma.c                                     |    5 
 drivers/platform/x86/intel-vbtn.c                              |   12 
 drivers/regulator/qcom-rpmh-regulator.c                        |    4 
 drivers/scsi/mpt3sas/mpt3sas_base.c                            |    8 
 drivers/scsi/qedi/qedi_main.c                                  |    1 
 drivers/scsi/qla2xxx/qla_target.c                              |   13 
 drivers/scsi/qla2xxx/tcm_qla2xxx.c                             |    4 
 drivers/scsi/ufs/ufs-qcom.c                                    |   10 
 drivers/soc/ti/omap_prm.c                                      |    6 
 drivers/staging/rtl8192e/Kconfig                               |    1 
 drivers/xen/Kconfig                                            |    4 
 fs/btrfs/qgroup.c                                              |   12 
 fs/cachefiles/rdwr.c                                           |    7 
 fs/cifs/cifsglob.h                                             |    4 
 fs/cifs/cifspdu.h                                              |    5 
 fs/cifs/smb2glob.h                                             |    1 
 fs/cifs/smb2ops.c                                              |   27 +
 fs/cifs/smb2pdu.c                                              |    6 
 fs/cifs/smb2transport.c                                        |   37 +-
 fs/cifs/transport.c                                            |    2 
 fs/ext4/mballoc.c                                              |   11 
 fs/ext4/xattr.c                                                |    4 
 fs/gfs2/log.c                                                  |    4 
 fs/gfs2/trans.c                                                |    2 
 fs/io_uring.c                                                  |    4 
 fs/nfs/Kconfig                                                 |    2 
 fs/nfs/nfs3xdr.c                                               |    3 
 fs/nfs/nfs4proc.c                                              |    3 
 fs/squashfs/export.c                                           |    8 
 fs/squashfs/id.c                                               |    6 
 fs/squashfs/squashfs_fs.h                                      |    1 
 fs/squashfs/xattr_id.c                                         |    6 
 include/acpi/acpi_bus.h                                        |    1 
 include/asm-generic/vmlinux.lds.h                              |    5 
 include/linux/bpf.h                                            |    9 
 include/linux/brcmphy.h                                        |    4 
 include/linux/device-mapper.h                                  |   15 -
 include/linux/hugetlb_cgroup.h                                 |   15 -
 include/linux/if_macvlan.h                                     |    3 
 include/linux/memcontrol.h                                     |    6 
 include/linux/mm.h                                             |   15 -
 include/linux/mm_types.h                                       |    1 
 include/linux/mmu_notifier.h                                   |   10 
 include/linux/mutex.h                                          |    2 
 include/linux/netfilter/x_tables.h                             |    7 
 include/linux/pagemap.h                                        |    1 
 include/linux/phy.h                                            |    2 
 include/linux/static_call.h                                    |   43 +-
 include/linux/static_call_types.h                              |   50 +++
 include/linux/u64_stats_sync.h                                 |    7 
 include/linux/usermode_driver.h                                |    1 
 include/net/dst.h                                              |   11 
 include/net/inet_connection_sock.h                             |    2 
 include/net/netfilter/nf_tables.h                              |    3 
 include/net/nexthop.h                                          |   24 +
 include/net/red.h                                              |   10 
 include/net/rtnetlink.h                                        |    2 
 include/uapi/linux/psample.h                                   |    5 
 kernel/bpf/bpf_inode_storage.c                                 |    2 
 kernel/bpf/preload/bpf_preload_kern.c                          |   19 +
 kernel/fork.c                                                  |    8 
 kernel/gcov/clang.c                                            |   69 ++++
 kernel/power/energy_model.c                                    |    2 
 kernel/static_call.c                                           |   71 ++++
 kernel/trace/ftrace.c                                          |   43 ++
 kernel/usermode_driver.c                                       |   21 +
 mm/huge_memory.c                                               |    2 
 mm/hugetlb.c                                                   |   41 ++
 mm/hugetlb_cgroup.c                                            |   10 
 mm/memcontrol.c                                                |   17 -
 mm/mmu_notifier.c                                              |   23 +
 mm/page_alloc.c                                                |    1 
 mm/z3fold.c                                                    |   16 +
 net/bridge/br_switchdev.c                                      |    2 
 net/can/isotp.c                                                |   18 -
 net/core/dev.c                                                 |   14 
 net/core/drop_monitor.c                                        |   23 +
 net/core/dst.c                                                 |   59 ++--
 net/core/flow_dissector.c                                      |    2 
 net/dccp/ipv6.c                                                |    5 
 net/ipv4/inet_connection_sock.c                                |    7 
 net/ipv4/netfilter/arp_tables.c                                |   16 -
 net/ipv4/netfilter/ip_tables.c                                 |   16 -
 net/ipv4/route.c                                               |   45 ---
 net/ipv4/tcp_minisocks.c                                       |    7 
 net/ipv6/ip6_fib.c                                             |    2 
 net/ipv6/ip6_input.c                                           |   10 
 net/ipv6/netfilter/ip6_tables.c                                |   16 -
 net/ipv6/route.c                                               |   36 --
 net/ipv6/tcp_ipv6.c                                            |    5 
 net/mac80211/cfg.c                                             |    4 
 net/mac80211/ibss.c                                            |    2 
 net/mac80211/mlme.c                                            |    2 
 net/mac80211/util.c                                            |    2 
 net/mptcp/subflow.c                                            |    5 
 net/netfilter/nf_conntrack_netlink.c                           |    1 
 net/netfilter/nf_flow_table_core.c                             |    2 
 net/netfilter/nf_tables_api.c                                  |   19 +
 net/netfilter/x_tables.c                                       |   49 ++-
 net/qrtr/qrtr.c                                                |    5 
 net/sched/cls_flower.c                                         |    2 
 net/sched/sch_choke.c                                          |    7 
 net/sched/sch_gred.c                                           |    2 
 net/sched/sch_red.c                                            |    7 
 net/sched/sch_sfq.c                                            |    2 
 net/tipc/node.c                                                |   11 
 net/vmw_vsock/af_vsock.c                                       |    1 
 scripts/dummy-tools/gcc                                        |    5 
 security/integrity/iint.c                                      |    8 
 security/selinux/include/security.h                            |   15 -
 security/selinux/selinuxfs.c                                   |   13 
 security/selinux/ss/services.c                                 |   63 ++--
 sound/hda/intel-nhlt.c                                         |    5 
 tools/include/linux/static_call_types.h                        |   50 +++
 tools/lib/bpf/Makefile                                         |    2 
 tools/lib/bpf/btf_dump.c                                       |    2 
 tools/lib/bpf/libbpf.c                                         |    3 
 tools/lib/bpf/netlink.c                                        |    2 
 tools/objtool/check.c                                          |   17 +
 tools/perf/util/auxtrace.c                                     |    4 
 tools/perf/util/synthetic-events.c                             |    9 
 tools/testing/selftests/arm64/fp/sve-ptrace.c                  |    2 
 tools/testing/selftests/bpf/progs/test_tunnel_kern.c           |    6 
 tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh      |    2 
 tools/testing/selftests/net/reuseaddr_ports_exhausted.c        |   32 +-
 272 files changed, 2578 insertions(+), 970 deletions(-)

Adrian Hunter (1):
perf auxtrace: Fix auxtrace queue conflict

Alaa Hleihel (1):
net/mlx5e: Allow to match on MPLS parameters only for MPLS over UDP

Alex Deucher (2):
drm/amdgpu/display: restore AUX_DPHY_TX_CONTROL for DCN2.x drm/amdgpu: Add additional Sienna Cichlid PCI ID

Alex Elder (1):
net: ipa: terminate message handler arrays

Alex Marginean (1):
net: enetc: set MAC RX FIFO to recommended value

Alexander Lobakin (1):
flow_dissector: fix byteorder of dissected ICMP ID

Alexander Ovechkin (1):
tcp: relookup sock for RST+ACK packets handled by obsolete req sock

Alexei Starovoitov (1):
ftrace: Fix modify_ftrace_direct.

Andre Guedes (1):
igc: Fix igc_ptp_rx_pktstamp()

Andrey Konovalov (1):
kasan: fix per-page tags for non-page_alloc pages

Andy Shevchenko (1):
ACPI: scan: Use unique number for instance_no

Angelo Dureghello (1):
can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate

Arnd Bergmann (1):
ch_ktls: fix enum-conversion warning

Aurelien Aptel (1):
cifs: ask for more credit on async read/write code paths

Aya Levin (1):
net/mlx5e: Fix error path for ethtool set-priv-flag

Bart Van Assche (1):
scsi: Revert "qla2xxx: Make sure that aborted commands are freed"

Bob Peterson (1):
gfs2: fix use-after-free in trans_drain

Brian Norris (1):
mac80211: Allow HE operation to be longer than expected.

Carlos Llamas (1):
selftests/net: fix warnings on reuseaddr_ports_exhausted

Chaitanya Kulkarni (1):
nvme-core: check ctrl css before setting up zns

Chris Chiu (1):
ACPI: video: Add missing callback back for Sony VPCEH3U1E

Christian König (1):
drm/radeon: fix AGP dependency

Christoph Hellwig (1):
nvme: fix the nsid value to print in nvme_validate_or_alloc_ns

Claudiu Beznea (1):
ARM: dts: at91-sama5d27_som1: fix phy address to 7

Colin Ian King (1):
octeontx2-af: Fix memory leak of object buf

Corentin Labbe (1):
net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes

Damien Le Moal (1):
block: Fix REQ_OP_ZONE_RESET_ALL handling

Daniel Borkmann (2):
net: Consolidate common blackhole dst ops
net, bpf: Fix ip6ip6 crash with collect_md populated skbs

Daniel Vetter (1):
drm/etnaviv: Use FOLL_FORCE for userptr

Daniel Wagner (1):
block: Suppress uevent for hidden device when removed

David Brazdil (1):
selinux: vsock: Set SID for socket returned by accept()

David Jeffery (1):
block: recalculate segment count for multi-segment discards correctly

David S. Miller (1):
Revert "net: bonding: fix error return code of bond_neigh_init()"

Denis Efremov (1):
sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count

Dima Chumak (1):
net/mlx5e: Offload tuple rewrite for non-CT flows

Dinghao Liu (2):
ixgbe: Fix memleak in ixgbe_configure_clsu32
e1000e: Fix error handling in e1000_set_d0_lplu_state_82571

Dmitry Baryshkov (2):
drm/msm/dsi: fix check-before-set in the 7nm dsi_pll code drm/msm: fix shutdown hook in case GPU components failed to bind

Dmitry Monakhov (1):
nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a

Douglas Anderson (1):
clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk

Dylan Hung (1):
ftgmac100: Restart MAC HW once

Eric Dumazet (4):
macvlan: macvlan_count_rx() needs to be aware of preemption
net: sched: validate stab values
net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
tipc: better validate user input in tipc_nl_retrieve_key()

Fabio Estevam (1):
drm/msm: Fix suspend/resume on i.MX5

Federico Pellegrin (1):
ARM: dts: at91: sam9x60: fix mux-mask for PA7 so it can be set to A, B and C

Felix Fietkau (1):
mt76: fix tx skb error handling in mt76_dma_tx_queue_skb

Fenghua Yu (1):
mm/fork: clear PASID for new mm

Filipe Manana (1):
btrfs: fix sleep while in non-sleep context during qgroup removal

Florian Fainelli (5):
net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
net: phy: broadcom: Add power down exit reset state delay
net: phy: broadcom: Avoid forward for bcm54xx_config_clock_delay()
net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M
net: dsa: b53: VLAN filtering is global to all users

Florian Westphal (1):
netfilter: ctnetlink: fix dump of the expect mask attribute

Frank Sorenson (1):
NFS: Correct size calculation for create reply length

Geetha sowjanya (2):
octeontx2-af: Fix irq free in rvu teardown
octeontx2-pf: Clear RSS enable flag on interace down

Georgi Valkov (1):
libbpf: Fix INSTALL flag order

Greg Kroah-Hartman (1):

      Linux 5.10.27

Grygorii Strashko (1):
bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD

Hangbin Liu (2):
selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed
selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value

Hannes Reinecke (4):
nvme: simplify error logic in nvme_validate_ns()
nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted

Hans de Goede (1):
platform/x86: intel-vbtn: Stop reporting SW_DOCK events

Hariprasad Kelam (1):
octeontx2-af: fix infinite loop in unmapping NPC counter

Hayes Wang (2):
Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
r8152: limit the RX buffer size of RTL8153A for USB 2.0

Heiko Thiery (1):
net: fec: ptp: avoid register access when ipg clock is disabled

Heiner Kallweit (1):
r8169: fix DMA being used after buffer free if WoL is enabled

Horia Geantă (3):
arm64: dts: ls1046a: mark crypto engine dma coherent
arm64: dts: ls1012a: mark crypto engine dma coherent
arm64: dts: ls1043a: mark crypto engine dma coherent

Hugh Dickins (1):
mm/memcg: fix 5.10 backport of splitting page memcg

Huy Nguyen (1):
net/mlx5: Add back multicast stats for uplink representor

Ian Rogers (1):
perf synthetic events: Avoid write of uninitialized memory when generating PERF_RECORD_MMAP* records

Ido Schimmel (2):
psample: Fix user API breakage
drop_monitor: Perform cleanup upon probe registration failure

Imre Deak (1):
drm/i915: Fix the GT fence revocation runtime PM logic

Isaku Yamahata (1):
x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()

J. Bruce Fields (1):
nfs: we don't support removing system.nfs4_acl

Jakub Kicinski (1):
ipv6: weaken the v4mapped source check

Jan Beulich (1):
xen-blkback: don't leak persistent grants from xen_blkbk_map()

Jan Kara (1):
ext4: add reclaim checks to xattr code

Jean-Philippe Brucker (1):
libbpf: Fix BTF dump of pointer-to-array-of-struct

JeongHyeon Lee (1):
dm verity: fix DM_VERITY_OPTS_MAX value

Jesse Brandeburg (1):
igb: check timestamp validity

Jia-Ju Bai (6):
net: tehuti: fix error return code in bdx_probe()
net: intel: iavf: fix error return code of iavf_init_get_resources()
net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
net: wan: fix error return code of uhdlc_init()
scsi: qedi: Fix error return code of qedi_alloc_global_queues()
scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()

Jimmy Assarsson (1):
can: kvaser_pciefd: Always disable bus load reporting

Jiri Bohac (1):
net: check all name nodes in __dev_alloc_name

Jiri Slaby (1):
kbuild: dummy-tools: fix inverted tests for gcc

Joakim Zhang (1):
net: stmmac: fix dma physical address of descriptor when display ring

Johan Hovold (1):
net: cdc-phonet: fix data-interface release on probe failure

Johannes Berg (1):
mac80211: fix rate mask reset

Josh Poimboeuf (1):
static_call: Allow module use without exposing static_call_key

Julian Braha (1):
staging: rtl8192e: fix kconfig dependency on CRYPTO

Kenneth Feng (1):
drm/amd/pm: workaround for audio noise issue

Kumar Kartikeya Dwivedi (1):
libbpf: Use SOCK_CLOEXEC when opening the netlink socket

Li RongQing (1):
igb: avoid premature Rx buffer reuse

Louis Peens (3):
nfp: flower: fix unsupported pre_tunnel flows
nfp: flower: add ipv6 bit to pre_tunnel control message
nfp: flower: fix pre_tun mask id allocation

Lukasz Luba (1):
PM: EM: postpone creating the debugfs dir till fs_initcall

Lv Yunlong (2):
nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template

Maciej Fijalkowski (1):
veth: Store queue_mapping independently of XDP prog presence

Maor Dickman (1):
net/mlx5e: Don't match on Geneve options in case option masks are all zero

Marc Kleine-Budde (3):
can: isotp: isotp_setsockopt(): only allow to set low level TX flags for CAN-FD
can: isotp: TX-path: ensure that CAN frame flags are initialized
can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"

Mark Brown (1):
kselftest: arm64: Fix exit code of sve-ptrace

Mark Pearson (1):
ALSA: hda: ignore invalid NHLT table

Mark Rutland (1):
arm64: stacktrace: don't trace arch_stack_walk()

Mark Tomlinson (3):
Revert "netfilter: x_tables: Switch synchronization to RCU"
netfilter: x_tables: Use correct memory barriers. Revert "netfilter: x_tables: Update remaining dereference to RCU"

Markus Theil (1):
mac80211: fix double free in ibss_leave

Martin Willi (1):
can: dev: Move device back to init netns on owning netns delete

Masahiro Yamada (1):
kbuild: add image_name to no-sync-config-targets

Matthew Wilcox (Oracle) (1):
fs/cachefiles: Remove wait_bit_key layout dependency

Maxim Mikityanskiy (1):
net/mlx5e: When changing XDP program without reset, take refs for XSK RQs

Mian Yousaf Kaukab (1):
netsec: restore phy power state after controller reset

Miaohe Lin (1):
hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings

Michael Braun (1):
gianfar: fix jumbo packets+napi+rx overrun crash

Michael Ellerman (1):
powerpc/4xx: Fix build errors from mfdcr()

Michael Walle (1):

      net: phy: introduce phydev->port

Mikulas Patocka (1):
dm ioctl: fix out of bounds array access when no devices

Mimi Zohar (1):
integrity: double check iint_cache was initialized

Muhammad Husaini Zulkifli (2):
igc: Fix Pause Frame Advertising
igc: Fix Supported Pause Frame Link Setting

Namhyung Kim (1):
libbpf: Fix error path in bpf_object__elf_init()

Nick Desaulniers (1):
gcov: fix clang-11+ support

Nicolas Ferre (1):
ARM: dts: at91: sam9x60: fix mux-mask to match product's datasheet

Nirmoy Das (1):
drm/amdgpu: fb BO should be ttm_bo_type_device

Nitin Rawat (1):
scsi: ufs: ufs-qcom: Disable interrupt in reset path

Oliver Hartkopp (1):
can: isotp: tx-path: zero initialize outgoing CAN frames

Ondrej Mosnacek (2):
selinux: don't log MAC_POLICY_LOAD record on failed policy load
selinux: fix variable scope issue in live sidtab conversion

Ong Boon Leong (1):
net: phylink: Fix phylink_err() function name error in phylink_major_config

Pablo Neira Ayuso (2):
netfilter: nftables: report EOPNOTSUPP on unsupported flowtable flags
netfilter: nftables: allow to update flowtable flags

Paul Cercueil (2):
net: davicom: Use platform_get_irq_optional() irqchip/ingenic: Add support for the JZ4760

Paulo Alcantara (1):
cifs: change noisy error message to FYI

Pavel Begunkov (1):
io_uring: fix provide_buffers sign extension

Pavel Tatashin (1):
arm64: kdump: update ppos when reading elfcorehdr

Peter Zijlstra (4):
u64_stats,lockdep: Fix u64_stats_init() vs lockdep
static_call: Pull some static_call declarations to the type headers
static_call: Fix the module key fixup
static_call: Fix static_call_set_init()

Phillip Lougher (1):
squashfs: fix xattr id and id lookup sanity checks

Potnuri Bharat Teja (1):
RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server

Rafael J. Wysocki (2):
PM: runtime: Defer suspending suppliers
ACPI: scan: Rearrange memory allocation in acpi_device_add()

Rakesh Babu (1):
octeontx2-af: Formatting debugfs entry rsrc_alloc.

Rob Gardner (1):
sparc64: Fix opcode filtering in handling of no fault loads

Robert Hancock (3):
net: axienet: Properly handle PCS/PMA PHY for 1000BaseX mode
net: axienet: Fix probe error cleanup
net: phy: broadcom: Set proper 1000BaseX/SGMII interface mode for BCM54616S

Roger Pau Monne (2):
xen/x86: make XEN_BALLOON_MEMORY_HOTPLUG_LIMIT depend on MEMORY_HOTPLUG Revert "xen: fix p2m size in dom0 for disabled memory hotplug case"

Sabyrzhan Tasbolatov (1):
fs/ext4: fix integer overflow in s_log_groups_per_flex

Sasha Levin (1):
bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs

Sasha Neftin (1):
igc: reinit_locked() should be called with rtnl_lock

Sean Christopherson (2):
KVM: x86: Protect userspace MSR filter with SRCU, and set atomically-ish mm/mmu_notifiers: ensure range_end() is paired with range_start()

Sean Nyekjaer (1):
squashfs: fix inode lookup sanity checks

Sergei Trofimovich (2):
ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign

Shannon Nelson (1):
ionic: linearize tso skb with too many frags

Shin'ichiro Kawasaki (1):
dm table: Fix zoned model check and zone sectors check

Shyam Prasad N (1):
cifs: Adjust key sizes and key generation routines for AES256 encryption

Stanislaw Kardach (1):
octeontx2-af: Modify default KEX profile to extract TX packet fields

Stephane Grosjean (1):
can: peak_usb: add forgotten supported devices

Steve French (1):
smb3: fix cached file size problems in duplicate extents (reflink)

Subbaraya Sundeep (1):
octeontx2-af: Remove TOS field from MKEX TX

Sudeep Holla (1):
cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev

Sung Lee (1):
drm/amd/display: Revert dram_clock_change_latency for DCN2.1

Tal Lossos (1):
bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF

Tariq Toukan (1):
net/mlx5e: RX, Mind the MPWQE gaps when calculating offsets

Thomas Gleixner (1):
locking/mutex: Fix non debug version of mutex_lock_io_nested()

Thomas Hebb (1):
z3fold: prevent reclaim/free race for headless pages

Timo Rothenpieler (1):
nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default

Tomer Tayar (1):
habanalabs: Call put_pid() when releasing control device

Tong Zhang (6):
atm: eni: dont release is never initialized
atm: lanai: dont run lanai_dev_close if not open
atm: uPD98402: fix incorrect allocation
atm: idt77252: fix null-ptr-dereference
can: c_can_pci: c_can_pci_remove(): fix use-after-free
can: c_can: move runtime PM enable/disable to c_can_platform

Tony Lindgren (2):
ARM: OMAP2+: Fix smartreflex init regression after dropping legacy data
soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva

Torin Cooper-Bennun (2):
can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors

Vegard Nossum (1):
ACPICA: Always create namespace nodes using acpi_ns_create_node()

Vitaly Lifshits (1):

      e1000e: add rtnl_lock() to e1000_reset_task

Vladimir Oltean (1):
net: bridge: don't notify switchdev for local FDB addresses

Wei Wang (1):
ipv6: fix suspecious RCU usage warning

Wei Yongjun (1):
umem: fix error return code in mm_pci_probe()

Xie He (1):

      net: hdlc_x25: Prevent racing between "x25_close" and "x25_xmit"/"x25_rx"

Xunlei Pang (1):
blk-cgroup: Fix the recursive blkg rwstat

Yang Li (1):
gpiolib: acpi: Add missing IRQF_ONESHOT

Yinjun Zhang (1):
netfilter: flowtable: Make sure GC works periodically in idle system

Zhou Guanghui (2):
mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument mm/memcg: set memcg when splitting page

Zqiang (1):
bpf: Fix umd memory leak in copy_process()

dillon min (1):
ARM: dts: imx6ull: fix ubi filesystem mount failed

satya priya (1):
regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck

wenxu (1):
net/sched: cls_flower: fix only mask bit check in the validate_ct_state