Skip to contentSkip to conversation

Linux 5.10.252

DISCUSSION Sasha Levin 1 participant 2 messages Mar 4 Stable branch

lore
Share & tools
lore

Sasha Levin

author maintainer
#0 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I'm announcing the release of the 5.10.252 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,
Sasha

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

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAmmoMRUACgkQ3qZv95d3 LNzIvhAAjcITtYu19c5tVCwXUhgIzV0wWF+9rjR57iWfeVTAkmvK7t48dPJkEyVt BmVbUAv9sqtJl9/v5WhbxpbN5fbcyHtpZrmhdXsqzJ8++1acbEI4vacG7Ed1AVe9 pUrj8ISdmJbs227cj3alawtGJHeAtPD2MEb8XWsCT/jUbwazEj0mqf0jMCFwB9d0 g9JM7nRy2KzZudvyxcV7xXisiZhVMB/jT8Pj7RsVPrWm58/5LVrnDYHdP7eLzSgo TWgl0bJvVF5ZuFwUNjHOrD6ceywZVsa/1cafNkdiAAXR32ihq9VZTTb95IO3ZfHv haGLJEdStyczprtSHTapNesDreVb5SX3l7Whw1SuEEpm7CSgd2PPiASqIuhNYky4 CIpkrOBP0EZL5sOiaG0dTMrSONnb5tg6uCypIkcJlXqvZJvLbgXI2v/8mmRdT3X3 wHQFXhReir8FEEZmnOd7FJmRznih9WkLQMO93QZv44U0svG/e7d0K1tTIt5pJdVJ NPbAt4ekPQYN6M5HnHKl6eJPWUXsNJfLffp4ASD3JxG4Od359G96Jt+BKPhV5ngl h7mlV6XNcyxTGjxzpJEXlmOJFqob/Rg6rq88cdG9Flz+1pQftYqlx9MhxjtveJT5 3D5ZcEL1x/5bjNnjNH5Vl9A7cp4M0pIUCIEzrNOX1x1A3FGWNoo= =3ZRu
-----END PGP SIGNATURE-----

author maintainer
#1 lore raw
Makefile +1 -1
index 03bae5ace9e77..bceb0c9760a79 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 251
+SUBLEVEL = 252
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/arm/boot/dts/lpc32xx.dtsi +2 -1
index 824393e1bcfb7..bb99c09fca96a 100644
@@ -304,8 +304,9 @@ i2c2: i2c@400a8000 {
 			mpwm: mpwm@400e8000 {
 				compatible = "nxp,lpc3220-motor-pwm";
 				reg = <0x400e8000 0x78>;
+				clocks = <&clk LPC32XX_CLK_MCPWM>;
+				#pwm-cells = <3>;
 				status = "disabled";
-				#pwm-cells = <2>;
 			};
 		};
 
arch/arm/boot/dts/sun5i-a13-utoo-p66.dts +1 -0
index be486d28d04fa..428cab5a0e906 100644
@@ -102,6 +102,7 @@ &touchscreen {
 	/* The P66 uses a different EINT then the reference design */
 	interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
 	/* The icn8318 binding expects wake-gpios instead of power-gpios */
+	/delete-property/ power-gpios;
 	wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
 	touchscreen-size-x = <800>;
 	touchscreen-size-y = <480>;
arch/arm/kernel/vdso.c +1 -0
index fddd08a6e063e..5a64bbf119e22 100644
@@ -185,6 +185,7 @@ static void __init patch_vdso(void *ehdr)
 		vdso_nullpatch_one(&einfo, "__vdso_gettimeofday");
 		vdso_nullpatch_one(&einfo, "__vdso_clock_gettime");
 		vdso_nullpatch_one(&einfo, "__vdso_clock_gettime64");
+		vdso_nullpatch_one(&einfo, "__vdso_clock_getres");
 	}
 }
 
arch/arm/mach-pxa/mioa701.c +0 -1
index d3af80317f2da..a79f296e81e02 100644
@@ -577,7 +577,6 @@ static struct platform_device power_dev = {
 static struct wm97xx_batt_pdata mioa701_battery_data = {
 	.batt_aux	= WM97XX_AUX_ID1,
 	.temp_aux	= -1,
-	.charge_gpio	= -1,
 	.min_voltage	= 0xc00,
 	.max_voltage	= 0xfc0,
 	.batt_tech	= POWER_SUPPLY_TECHNOLOGY_LION,
arch/arm/mach-pxa/palm27x.c +0 -1
index 0d246a1aebbcd..6230381a7ca0c 100644
@@ -212,7 +212,6 @@ void __init palm27x_irda_init(int pwdn)
 static struct wm97xx_batt_pdata palm27x_batt_pdata = {
 	.batt_aux	= WM97XX_AUX_ID3,
 	.temp_aux	= WM97XX_AUX_ID2,
-	.charge_gpio	= -1,
 	.batt_mult	= 1000,
 	.batt_div	= 414,
 	.temp_mult	= 1,
arch/arm/mach-pxa/palmte2.c +0 -1
index e3bcf58b4e639..a2b10db4aacc4 100644
@@ -273,7 +273,6 @@ static struct platform_device power_supply = {
 static struct wm97xx_batt_pdata palmte2_batt_pdata = {
 	.batt_aux	= WM97XX_AUX_ID3,
 	.temp_aux	= WM97XX_AUX_ID2,
-	.charge_gpio	= -1,
 	.max_voltage	= PALMTE2_BAT_MAX_VOLTAGE,
 	.min_voltage	= PALMTE2_BAT_MIN_VOLTAGE,
 	.batt_mult	= 1000,
arch/arm/mm/physaddr.c +1 -1
index cf75819e4c137..4ae327bf7aa29 100644
@@ -38,7 +38,7 @@ static inline bool __virt_addr_valid(unsigned long x)
 phys_addr_t __virt_to_phys(unsigned long x)
 {
 	WARN(!__virt_addr_valid(x),
-	     "virt_to_phys used for non-linear address: %pK (%pS)\n",
+	     "virt_to_phys used for non-linear address: %px (%pS)\n",
 	     (void *)x, (void *)x);
 
 	return __virt_to_phys_nodebug(x);
arch/arm64/boot/dts/amlogic/meson-axg.dtsi +6 -0
index c892b252e5b0c..18e705169201b 100644
@@ -1761,6 +1761,9 @@ sd_emmc_b: sd@5000 {
 					<&clkc CLKID_FCLK_DIV2>;
 				clock-names = "core", "clkin0", "clkin1";
 				resets = <&reset RESET_SD_EMMC_B>;
+
+				assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+				assigned-clock-rates = <24000000>;
 			};
 
 			sd_emmc_c: mmc@7000 {
@@ -1773,6 +1776,9 @@ sd_emmc_c: mmc@7000 {
 					<&clkc CLKID_FCLK_DIV2>;
 				clock-names = "core", "clkin0", "clkin1";
 				resets = <&reset RESET_SD_EMMC_C>;
+
+				assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+				assigned-clock-rates = <24000000>;
 			};
 
 			usb2_phy1: phy@9020 {
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +9 -0
index 9dd9f7715fbe6..27ebe5cc4f39c 100644
@@ -2323,6 +2323,9 @@ sd_emmc_a: sd@ffe03000 {
 				 <&clkc CLKID_FCLK_DIV2>;
 			clock-names = "core", "clkin0", "clkin1";
 			resets = <&reset RESET_SD_EMMC_A>;
+
+			assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+			assigned-clock-rates = <24000000>;
 		};
 
 		sd_emmc_b: sd@ffe05000 {
@@ -2335,6 +2338,9 @@ sd_emmc_b: sd@ffe05000 {
 				 <&clkc CLKID_FCLK_DIV2>;
 			clock-names = "core", "clkin0", "clkin1";
 			resets = <&reset RESET_SD_EMMC_B>;
+
+			assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+			assigned-clock-rates = <24000000>;
 		};
 
 		sd_emmc_c: mmc@ffe07000 {
@@ -2347,6 +2353,9 @@ sd_emmc_c: mmc@ffe07000 {
 				 <&clkc CLKID_FCLK_DIV2>;
 			clock-names = "core", "clkin0", "clkin1";
 			resets = <&reset RESET_SD_EMMC_C>;
+
+			assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+			assigned-clock-rates = <24000000>;
 		};
 
 		usb: usb@ffe09000 {
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +9 -0
index 256c46771db78..c57a6f37bc2af 100644
@@ -779,6 +779,9 @@ &sd_emmc_a {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_A>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_b {
@@ -787,6 +790,9 @@ &sd_emmc_b {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_B>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_c {
@@ -795,6 +801,9 @@ &sd_emmc_c {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_C>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &simplefb_hdmi {
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +9 -0
index a689bd14ece99..fb6e8c466811f 100644
@@ -848,6 +848,9 @@ &sd_emmc_a {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_A>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_b {
@@ -856,6 +859,9 @@ &sd_emmc_b {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_B>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_c {
@@ -864,6 +870,9 @@ &sd_emmc_c {
 		 <&clkc CLKID_FCLK_DIV2>;
 	clock-names = "core", "clkin0", "clkin1";
 	resets = <&reset RESET_SD_EMMC_C>;
+
+	assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+	assigned-clock-rates = <24000000>;
 };
 
 &simplefb_hdmi {
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts +2 -0
index bd78378248a68..0c2cf358dcc35 100644
@@ -1687,6 +1687,8 @@ usb2-0 {
 				status = "okay";
 				vbus-supply = <&usbc_vbus>;
 				mode = "otg";
+				usb-role-switch;
+				role-switch-default-mode = "host";
 			};
 
 			usb3-0 {
arch/arm64/boot/dts/qcom/sdm630.dtsi +10 -0
index 79d260c2b3c32..cc43d014c5038 100644
@@ -460,6 +460,16 @@ qfprom: qfprom@780000 {
 			reg = <0x00780000 0x621c>;
 			#address-cells = <1>;
 			#size-cells = <1>;
+
+			qusb2_hstx_trim: hstx-trim@240 {
+				reg = <0x243 0x1>;
+				bits = <1 3>;
+			};
+
+			gpu_speed_bin: gpu-speed-bin@41a0 {
+				reg = <0x41a2 0x2>;
+				bits = <5 8>;
+			};
 		};
 
 		rng: rng@793000 {
arch/arm64/boot/dts/qcom/sdm845-db845c.dts +7 -0
index 31f4f05750940..e327e398d99ed 100644
@@ -342,6 +342,12 @@ vreg_l21a_2p95: ldo21 {
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
+		vreg_l23a_3p3: ldo23 {
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3312000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
 		vreg_l24a_3p075: ldo24 {
 			regulator-min-microvolt = <3088000>;
 			regulator-max-microvolt = <3088000>;
@@ -1039,6 +1045,7 @@ &wifi {
 	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
 	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
 	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+	vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 
 	qcom,snoc-host-cap-8bit-quirk;
 };
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +0 -4
index 3dd00ce201f54..072ce999bc725 100644
@@ -432,10 +432,6 @@ &gpu {
 	status = "okay";
 };
 
-&hdmi_sound {
-	status = "okay";
-};
-
 &i2c0 {
 	clock-frequency = <400000>;
 	i2c-scl-falling-time-ns = <4>;
arch/arm64/kernel/proton-pack.c +1 -0
index 2773bf189a3f1..94db6dcc5c8a2 100644
@@ -904,6 +904,7 @@ static u8 spectre_bhb_loop_affected(void)
 		MIDR_ALL_VERSIONS(MIDR_CORTEX_X2),
 		MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 		MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
+		MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
 		{},
 	};
 	static const struct midr_range spectre_bhb_k24_list[] = {
arch/m68k/lib/memmove.c +18 -0
index 6519f7f349f66..e33f00b02e4c0 100644
@@ -24,6 +24,15 @@ void *memmove(void *dest, const void *src, size_t n)
 			src = csrc;
 			n--;
 		}
+#if defined(CONFIG_M68000)
+		if ((long)src & 1) {
+			char *cdest = dest;
+			const char *csrc = src;
+			for (; n; n--)
+				*cdest++ = *csrc++;
+			return xdest;
+		}
+#endif
 		if (n > 2 && (long)dest & 2) {
 			short *sdest = dest;
 			const short *ssrc = src;
@@ -66,6 +75,15 @@ void *memmove(void *dest, const void *src, size_t n)
 			src = csrc;
 			n--;
 		}
+#if defined(CONFIG_M68000)
+		if ((long)src & 1) {
+			char *cdest = dest;
+			const char *csrc = src;
+			for (; n; n--)
+				*--cdest = *--csrc;
+			return xdest;
+		}
+#endif
 		if (n > 2 && (long)dest & 2) {
 			short *sdest = dest;
 			const short *ssrc = src;
arch/mips/include/asm/mach-loongson64/topology.h +1 -1
index 3414a1fd17835..89bb4deab98a6 100644
@@ -7,7 +7,7 @@
 #define cpu_to_node(cpu)	(cpu_logical_map(cpu) >> 2)
 
 extern cpumask_t __node_cpumask[];
-#define cpumask_of_node(node)	(&__node_cpumask[node])
+#define cpumask_of_node(node)	  ((node) == NUMA_NO_NODE ? cpu_all_mask : &__node_cpumask[node])
 
 struct pci_bus;
 extern int pcibus_to_node(struct pci_bus *);
arch/mips/kernel/relocate.c +13 -0
index dab8febb57419..5e014a457ad80 100644
@@ -399,7 +399,20 @@ void *__init relocate_kernel(void)
 			goto out;
 
 		/* The current thread is now within the relocated image */
+#ifndef CONFIG_CC_IS_CLANG
 		__current_thread_info = RELOCATED(&init_thread_union);
+#else
+		/*
+		 * LLVM may wrongly restore $gp ($28) in epilog even if it's
+		 * intentionally modified. Work around this by using inline
+		 * assembly to assign $gp. $gp couldn't be listed as output or
+		 * clobber, or LLVM will still restore its original value.
+		 * See also LLVM upstream issue
+		 * https://github.com/llvm/llvm-project/issues/176546
+		 */
+		asm volatile("move $28, %0" : :
+			     "r" (RELOCATED(&init_thread_union)));
+#endif
 
 		/* Return the new kernel's entry point */
 		kernel_entry = RELOCATED(start_kernel);
arch/mips/rb532/devices.c +3 -2
index 0e3c8d761a451..dc494c53767d3 100644
@@ -219,11 +219,12 @@ static struct platform_device rb532_wdt = {
 static struct plat_serial8250_port rb532_uart_res[] = {
 	{
 		.type           = PORT_16550A,
-		.membase	= (char *)KSEG1ADDR(REGBASE + UART0BASE),
+		.mapbase        = REGBASE + UART0BASE,
+		.mapsize        = 0x1000,
 		.irq		= UART0_IRQ,
 		.regshift	= 2,
 		.iotype		= UPIO_MEM,
-		.flags		= UPF_BOOT_AUTOCONF,
+		.flags		= UPF_BOOT_AUTOCONF | UPF_IOREMAP,
 	},
 	{
 		.flags		= 0,
arch/openrisc/include/asm/barrier.h +2 -0
index 7538294721bed..8e592c9909023 100644
@@ -4,6 +4,8 @@
 
 #define mb() asm volatile ("l.msync" ::: "memory")
 
+#define nop() asm volatile ("l.nop")
+
 #include <asm-generic/barrier.h>
 
 #endif /* __ASM_BARRIER_H */
arch/parisc/kernel/drivers.c +1 -1
index d11a3123f3dc4..39480881d530b 100644
@@ -435,7 +435,7 @@ struct parisc_device * __init create_tree_node(char id, struct device *parent)
 	dev->dev.dma_mask = &dev->dma_mask;
 	dev->dev.coherent_dma_mask = dev->dma_mask;
 	if (device_register(&dev->dev)) {
-		kfree(dev);
+		put_device(&dev->dev);
 		return NULL;
 	}
 
arch/parisc/kernel/process.c +3 -0
index c14ee40302d85..afe17c3ca0bfc 100644
@@ -85,6 +85,9 @@ void machine_restart(char *cmd)
 #endif
 	/* set up a new led state on systems shipped with a LED State panel */
 	pdc_chassis_send_status(PDC_CHASSIS_DIRECT_SHUTDOWN);
+
+	/* prevent interrupts during reboot */
+	set_eiem(0);
 	
 	/* "Normal" system reset */
 	pdc_do_reset();
arch/powerpc/include/asm/eeh.h +2 -0
index b1a5bba2e0b94..2c9dc733accfd 100644
@@ -289,6 +289,8 @@ void eeh_pe_dev_traverse(struct eeh_pe *root,
 void eeh_pe_restore_bars(struct eeh_pe *pe);
 const char *eeh_pe_loc_get(struct eeh_pe *pe);
 struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe);
+const char *eeh_pe_loc_get_bus(struct pci_bus *bus);
+struct pci_bus *eeh_pe_bus_get_nolock(struct eeh_pe *pe);
 
 void eeh_show_enabled(void);
 int __init eeh_init(struct eeh_ops *ops);
arch/powerpc/kernel/eeh_driver.c +6 -5
index 2f13d906e1fcb..20106e490b9c6 100644
@@ -847,7 +847,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
 
 	pci_lock_rescan_remove();
 
-	bus = eeh_pe_bus_get(pe);
+	bus = eeh_pe_bus_get_nolock(pe);
 	if (!bus) {
 		pr_err("%s: Cannot find PCI bus for PHB#%x-PE#%x\n",
 			__func__, pe->phb->global_number, pe->addr);
@@ -878,14 +878,15 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
 	/* Log the event */
 	if (pe->type & EEH_PE_PHB) {
 		pr_err("EEH: Recovering PHB#%x, location: %s\n",
-			pe->phb->global_number, eeh_pe_loc_get(pe));
+			pe->phb->global_number, eeh_pe_loc_get_bus(bus));
 	} else {
 		struct eeh_pe *phb_pe = eeh_phb_pe_get(pe->phb);
 
 		pr_err("EEH: Recovering PHB#%x-PE#%x\n",
 		       pe->phb->global_number, pe->addr);
 		pr_err("EEH: PE location: %s, PHB location: %s\n",
-		       eeh_pe_loc_get(pe), eeh_pe_loc_get(phb_pe));
+		       eeh_pe_loc_get_bus(bus),
+		       eeh_pe_loc_get_bus(eeh_pe_bus_get_nolock(phb_pe)));
 	}
 
 #ifdef CONFIG_STACKTRACE
@@ -1093,7 +1094,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
 		eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
 		eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
 
-		bus = eeh_pe_bus_get(pe);
+		bus = eeh_pe_bus_get_nolock(pe);
 		if (bus)
 			pci_hp_remove_devices(bus);
 		else
@@ -1217,7 +1218,7 @@ void eeh_handle_special_event(void)
 				    (phb_pe->state & EEH_PE_RECOVERING))
 					continue;
 
-				bus = eeh_pe_bus_get(phb_pe);
+				bus = eeh_pe_bus_get_nolock(phb_pe);
 				if (!bus) {
 					pr_err("%s: Cannot find PCI bus for "
 					       "PHB#%x-PE#%x\n",
arch/powerpc/kernel/eeh_pe.c +70 -4

102 lines not on this page · raw message

arch/s390/kernel/perf_cpum_sf.c +1 -1
index fc45f123f3bdc..0c60252a757d2 100644
@@ -887,7 +887,7 @@ static bool is_callchain_event(struct perf_event *event)
 	u64 sample_type = event->attr.sample_type;
 
 	return sample_type & (PERF_SAMPLE_CALLCHAIN | PERF_SAMPLE_REGS_USER |
-			      PERF_SAMPLE_STACK_USER);
+			      PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_STACK_USER);
 }
 
 static int cpumsf_pmu_event_init(struct perf_event *event)
arch/s390/purgatory/Makefile +1 -0
index e03f234fcfbef..efbbdc7f6e9d7 100644
@@ -28,6 +28,7 @@ KBUILD_CFLAGS += -fno-stack-protector
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 KBUILD_CFLAGS += $(CLANG_FLAGS)
 KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
+KBUILD_CFLAGS += $(call cc-option, -Wno-default-const-init-unsafe)
 KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
 
 # Since we link purgatory with -r unresolved symbols are not checked, so we
arch/sparc/include/uapi/asm/ioctls.h +4 -4
index 7fd2f5873c9e7..a8bbdf9877a41 100644
@@ -5,10 +5,10 @@
 #include <asm/ioctl.h>
 
 /* Big T */
-#define TCGETA		_IOR('T', 1, struct termio)
-#define TCSETA		_IOW('T', 2, struct termio)
-#define TCSETAW		_IOW('T', 3, struct termio)
-#define TCSETAF		_IOW('T', 4, struct termio)
+#define TCGETA          0x40125401 /* _IOR('T', 1, struct termio) */
+#define TCSETA          0x80125402 /* _IOW('T', 2, struct termio) */
+#define TCSETAW         0x80125403 /* _IOW('T', 3, struct termio) */
+#define TCSETAF         0x80125404 /* _IOW('T', 4, struct termio) */
 #define TCSBRK		_IO('T', 5)
 #define TCXONC		_IO('T', 6)
 #define TCFLSH		_IO('T', 7)
arch/sparc/kernel/process.c +24 -14
index 0442ab00518d3..7d69877511fac 100644
@@ -17,14 +17,18 @@
 
 asmlinkage long sparc_fork(struct pt_regs *regs)
 {
-	unsigned long orig_i1 = regs->u_regs[UREG_I1];
+	unsigned long orig_i1;
 	long ret;
 	struct kernel_clone_args args = {
 		.exit_signal	= SIGCHLD,
-		/* Reuse the parent's stack for the child. */
-		.stack		= regs->u_regs[UREG_FP],
 	};
 
+	synchronize_user_stack();
+
+	orig_i1 = regs->u_regs[UREG_I1];
+	/* Reuse the parent's stack for the child. */
+	args.stack = regs->u_regs[UREG_FP];
+
 	ret = kernel_clone(&args);
 
 	/* If we get an error and potentially restart the system
@@ -40,16 +44,19 @@ asmlinkage long sparc_fork(struct pt_regs *regs)
 
 asmlinkage long sparc_vfork(struct pt_regs *regs)
 {
-	unsigned long orig_i1 = regs->u_regs[UREG_I1];
+	unsigned long orig_i1;
 	long ret;
-
 	struct kernel_clone_args args = {
 		.flags		= CLONE_VFORK | CLONE_VM,
 		.exit_signal	= SIGCHLD,
-		/* Reuse the parent's stack for the child. */
-		.stack		= regs->u_regs[UREG_FP],
 	};
 
+	synchronize_user_stack();
+
+	orig_i1 = regs->u_regs[UREG_I1];
+	/* Reuse the parent's stack for the child. */
+	args.stack = regs->u_regs[UREG_FP];
+
 	ret = kernel_clone(&args);
 
 	/* If we get an error and potentially restart the system
@@ -65,15 +72,18 @@ asmlinkage long sparc_vfork(struct pt_regs *regs)
 
 asmlinkage long sparc_clone(struct pt_regs *regs)
 {
-	unsigned long orig_i1 = regs->u_regs[UREG_I1];
-	unsigned int flags = lower_32_bits(regs->u_regs[UREG_I0]);
+	unsigned long orig_i1;
+	unsigned int flags;
 	long ret;
+	struct kernel_clone_args args = {0};
 
-	struct kernel_clone_args args = {
-		.flags		= (flags & ~CSIGNAL),
-		.exit_signal	= (flags & CSIGNAL),
-		.tls		= regs->u_regs[UREG_I3],
-	};
+	synchronize_user_stack();
+
+	orig_i1 = regs->u_regs[UREG_I1];
+	flags = lower_32_bits(regs->u_regs[UREG_I0]);
+	args.flags		= (flags & ~CSIGNAL);
+	args.exit_signal	= (flags & CSIGNAL);
+	args.tls		= regs->u_regs[UREG_I3];
 
 #ifdef CONFIG_COMPAT
 	if (test_thread_flag(TIF_32BIT)) {
arch/x86/platform/pvh/head.S +2 -0
index bfd4e63a90cbe..f7713d5d07f9f 100644
@@ -69,10 +69,12 @@ SYM_CODE_START_LOCAL(pvh_start_xen)
 
 	mov $_pa(early_stack_end), %esp
 
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
 	/* Enable PAE mode. */
 	mov %cr4, %eax
 	orl $X86_CR4_PAE, %eax
 	mov %eax, %cr4
+#endif
 
 #ifdef CONFIG_X86_64
 	/* Enable Long mode. */
block/blk-mq-debugfs.c +2 -0
index 212e1e7954696..4179b9ccfa9e8 100644
@@ -905,8 +905,10 @@ void blk_mq_debugfs_register_hctxs(struct request_queue *q)
 	struct blk_mq_hw_ctx *hctx;
 	int i;
 
+	mutex_lock(&q->debugfs_mutex);
 	queue_for_each_hw_ctx(q, hctx, i)
 		blk_mq_debugfs_register_hctx(q, hctx);
+	mutex_unlock(&q->debugfs_mutex);
 }
 
 void blk_mq_debugfs_unregister_hctxs(struct request_queue *q)
drivers/acpi/acpica/exoparg3.c +18 -28

81 lines not on this page · raw message

drivers/acpi/apei/ghes.c +5 -1
index bdb23ca251e23..28651f9e6d60f 100644
@@ -28,6 +28,7 @@
 #include <linux/timer.h>
 #include <linux/cper.h>
 #include <linux/platform_device.h>
+#include <linux/minmax.h>
 #include <linux/mutex.h>
 #include <linux/ratelimit.h>
 #include <linux/vmalloc.h>
@@ -262,6 +263,7 @@ static struct ghes *ghes_new(struct acpi_hest_generic *generic)
 		error_block_length = GHES_ESTATUS_MAX_SIZE;
 	}
 	ghes->estatus = kmalloc(error_block_length, GFP_KERNEL);
+	ghes->estatus_length = error_block_length;
 	if (!ghes->estatus) {
 		rc = -ENOMEM;
 		goto err_unmap_status_addr;
@@ -333,13 +335,15 @@ static int __ghes_check_estatus(struct ghes *ghes,
 				struct acpi_hest_generic_status *estatus)
 {
 	u32 len = cper_estatus_len(estatus);
+	u32 max_len = min(ghes->generic->error_block_length,
+			  ghes->estatus_length);
 
 	if (len < sizeof(*estatus)) {
 		pr_warn_ratelimited(FW_WARN GHES_PFX "Truncated error status block!\n");
 		return -EIO;
 	}
 
-	if (len > ghes->generic->error_block_length) {
+	if (!len || len > max_len) {
 		pr_warn_ratelimited(FW_WARN GHES_PFX "Invalid error status block length!\n");
 		return -EIO;
 	}
drivers/android/binder.c +1 -1
index f75bbe7a4273c..9577193e72e64 100644
@@ -4355,7 +4355,7 @@ static int binder_thread_write(struct binder_proc *proc,
 				}
 			}
 			binder_debug(BINDER_DEBUG_DEAD_BINDER,
-				     "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n",
+				     "%d:%d BC_DEAD_BINDER_DONE %016llx found %p\n",
 				     proc->pid, thread->pid, (u64)cookie,
 				     death);
 			if (death == NULL) {
drivers/android/binder_alloc.c +3 -3
index b655bc3956c79..bacccfd0fb74c 100644
@@ -79,7 +79,7 @@ static void binder_insert_free_buffer(struct binder_alloc *alloc,
 	new_buffer_size = binder_alloc_buffer_size(alloc, new_buffer);
 
 	binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
-		     "%d: add free buffer, size %zd, at %pK\n",
+		     "%d: add free buffer, size %zd, at %p\n",
 		      alloc->pid, new_buffer_size, new_buffer);
 
 	while (*p) {
@@ -482,7 +482,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked(
 	}
 
 	binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
-		     "%d: binder_alloc_buf size %zd got buffer %pK size %zd\n",
+		     "%d: binder_alloc_buf size %zd got buffer %p size %zd\n",
 		      alloc->pid, size, buffer, buffer_size);
 
 	has_page_addr = (void __user *)
@@ -651,7 +651,7 @@ static void binder_free_buf_locked(struct binder_alloc *alloc,
 		ALIGN(buffer->extra_buffers_size, sizeof(void *));
 
 	binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
-		     "%d: binder_free_buf %pK size %zd buffer_size %zd\n",
+		     "%d: binder_free_buf %p size %zd buffer_size %zd\n",
 		      alloc->pid, buffer, size, buffer_size);
 
 	BUG_ON(buffer->free);
drivers/ata/pata_ftide010.c +3 -3
index bc30e2f305beb..4c72903575e76 100644
@@ -123,10 +123,10 @@ static const u8 mwdma_50_active_time[3] = {6, 2, 2};
 static const u8 mwdma_50_recovery_time[3] = {6, 2, 1};
 static const u8 mwdma_66_active_time[3] = {8, 3, 3};
 static const u8 mwdma_66_recovery_time[3] = {8, 2, 1};
-static const u8 udma_50_setup_time[6] = {3, 3, 2, 2, 1, 1};
+static const u8 udma_50_setup_time[6] = {3, 3, 2, 2, 1, 9};
 static const u8 udma_50_hold_time[6] = {3, 1, 1, 1, 1, 1};
-static const u8 udma_66_setup_time[7] = {4, 4, 3, 2, };
-static const u8 udma_66_hold_time[7] = {};
+static const u8 udma_66_setup_time[7] = {4, 4, 3, 2, 1, 9, 9};
+static const u8 udma_66_hold_time[7] = {4, 2, 1, 1, 1, 1, 1};
 
 /*
  * We set 66 MHz for all MWDMA modes
drivers/atm/fore200e.c +4 -0
index abe32d7324dbe..4bf949a357217 100644
@@ -379,6 +379,10 @@ fore200e_shutdown(struct fore200e* fore200e)
 	fallthrough;
     case FORE200E_STATE_IRQ:
 	free_irq(fore200e->irq, fore200e->atm_dev);
+#ifdef FORE200E_USE_TASKLET
+	tasklet_kill(&fore200e->tx_tasklet);
+	tasklet_kill(&fore200e->rx_tasklet);
+#endif
 
 	fallthrough;
     case FORE200E_STATE_ALLOC_BUF:
drivers/auxdisplay/arm-charlcd.c +1 -1
index 0b1c99cca7334..f418b133ee752 100644
@@ -323,7 +323,7 @@ static int __init charlcd_probe(struct platform_device *pdev)
 out_no_irq:
 	iounmap(lcd->virtbase);
 out_no_memregion:
-	release_mem_region(lcd->phybase, SZ_4K);
+	release_mem_region(lcd->phybase, lcd->physize);
 out_no_resource:
 	kfree(lcd);
 	return ret;
drivers/base/power/wakeirq.c +6 -3
index 4f4310724fee5..d22fc66a387d7 100644
@@ -86,13 +86,16 @@ EXPORT_SYMBOL_GPL(dev_pm_set_wake_irq);
  */
 void dev_pm_clear_wake_irq(struct device *dev)
 {
-	struct wake_irq *wirq = dev->power.wakeirq;
+	struct wake_irq *wirq;
 	unsigned long flags;
 
-	if (!wirq)
+	spin_lock_irqsave(&dev->power.lock, flags);
+	wirq = dev->power.wakeirq;
+	if (!wirq) {
+		spin_unlock_irqrestore(&dev->power.lock, flags);
 		return;
+	}
 
-	spin_lock_irqsave(&dev->power.lock, flags);
 	device_wakeup_detach_irq(dev);
 	dev->power.wakeirq = NULL;
 	spin_unlock_irqrestore(&dev->power.lock, flags);
drivers/base/power/wakeup.c +1 -3
index 8997e0227eb9d..e3b0a2db32e9b 100644
@@ -285,9 +285,7 @@ EXPORT_SYMBOL_GPL(wakeup_sources_read_unlock);
  */
 struct wakeup_source *wakeup_sources_walk_start(void)
 {
-	struct list_head *ws_head = &wakeup_sources;
-
-	return list_entry_rcu(ws_head->next, struct wakeup_source, entry);
+	return list_first_or_null_rcu(&wakeup_sources, struct wakeup_source, entry);
 }
 EXPORT_SYMBOL_GPL(wakeup_sources_walk_start);
 
drivers/block/rnbd/rnbd-srv.c +3 -0
index 9c5d52335e17c..6bec309719066 100644
@@ -535,6 +535,8 @@ static void rnbd_srv_fill_msg_open_rsp(struct rnbd_msg_open_rsp *rsp,
 {
 	struct rnbd_dev *rnbd_dev = sess_dev->rnbd_dev;
 
+	memset(rsp, 0, sizeof(*rsp));
+
 	rsp->hdr.type = cpu_to_le16(RNBD_MSG_OPEN_RSP);
 	rsp->device_id =
 		cpu_to_le32(sess_dev->device_id);
@@ -649,6 +651,7 @@ static int process_msg_sess_info(struct rtrs_srv *rtrs,
 		 srv_sess->sessname, srv_sess->ver,
 		 sess_info_msg->ver, RNBD_PROTO_VER_MAJOR);
 
+	memset(rsp, 0, sizeof(*rsp));
 	rsp->hdr.type = cpu_to_le16(RNBD_MSG_SESS_INFO_RSP);
 	rsp->ver = srv_sess->ver;
 
drivers/bluetooth/btusb.c +1 -0
index c5e4f675270c2..3010044f0810b 100644
@@ -475,6 +475,7 @@ static const struct usb_device_id blacklist_table[] = {
 
 	/* Additional Realtek 8723BU Bluetooth devices */
 	{ USB_DEVICE(0x7392, 0xa611), .driver_info = BTUSB_REALTEK },
+	{ USB_DEVICE(0x2c0a, 0x8761), .driver_info = BTUSB_REALTEK },
 
 	/* Additional Realtek 8723DE Bluetooth devices */
 	{ USB_DEVICE(0x0bda, 0xb009), .driver_info = BTUSB_REALTEK },
drivers/bus/fsl-mc/fsl-mc-bus.c +1 -5
index 4f13e7d8101bd..4471cd1606424 100644
@@ -799,11 +799,7 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
 	return 0;
 
 error_cleanup_dev:
-	kfree(mc_dev->regions);
-	if (mc_bus)
-		kfree(mc_bus);
-	else
-		kfree(mc_dev);
+	put_device(&mc_dev->dev);
 
 	return error;
 }
drivers/char/tpm/st33zp24/st33zp24.c +4 -2
index 4ec10ab5e5766..33ee4fe693796 100644
@@ -381,8 +381,10 @@ static int st33zp24_send(struct tpm_chip *chip, unsigned char *buf,
 
 	for (i = 0; i < len - 1;) {
 		burstcnt = get_burstcount(chip);
-		if (burstcnt < 0)
-			return burstcnt;
+		if (burstcnt < 0) {
+			ret = burstcnt;
+			goto out_err;
+		}
 		size = min_t(int, len - i - 1, burstcnt);
 		ret = tpm_dev->ops->send(tpm_dev->phy_id, TPM_DATA_FIFO,
 					 buf + i, size);
drivers/char/tpm/tpm_i2c_infineon.c +4 -2
index a19d32cb4e942..cabc9e1b49321 100644
@@ -543,8 +543,10 @@ static int tpm_tis_i2c_send(struct tpm_chip *chip, u8 *buf, size_t len)
 		burstcnt = get_burstcount(chip);
 
 		/* burstcnt < 0 = TPM is busy */
-		if (burstcnt < 0)
-			return burstcnt;
+		if (burstcnt < 0) {
+			rc = burstcnt;
+			goto out_err;
+		}
 
 		if (burstcnt > (len - 1 - count))
 			burstcnt = len - 1 - count;
drivers/clk/meson/gxbb.c +14 -3
index cfdb1ce6d361c..cc99a828eb4d2 100644
@@ -315,12 +315,23 @@ static struct clk_regmap gxbb_hdmi_pll = {
 	},
 };
 
+/*
+ * GXL hdmi OD dividers are POWER_OF_TWO dividers but limited to /4.
+ * A divider value of 3 should map to /8 but instead map /4 so ignore it.
+ */
+static const struct clk_div_table gxl_hdmi_pll_od_div_table[] = {
+	{ .val = 0, .div = 1 },
+	{ .val = 1, .div = 2 },
+	{ .val = 2, .div = 4 },
+	{ /* sentinel */ }
+};
+
 static struct clk_regmap gxl_hdmi_pll_od = {
 	.data = &(struct clk_regmap_div_data){
 		.offset = HHI_HDMI_PLL_CNTL + 8,
 		.shift = 21,
 		.width = 2,
-		.flags = CLK_DIVIDER_POWER_OF_TWO,
+		.table = gxl_hdmi_pll_od_div_table,
 	},
 	.hw.init = &(struct clk_init_data){
 		.name = "hdmi_pll_od",
@@ -338,7 +349,7 @@ static struct clk_regmap gxl_hdmi_pll_od2 = {
 		.offset = HHI_HDMI_PLL_CNTL + 8,
 		.shift = 23,
 		.width = 2,
-		.flags = CLK_DIVIDER_POWER_OF_TWO,
+		.table = gxl_hdmi_pll_od_div_table,
 	},
 	.hw.init = &(struct clk_init_data){
 		.name = "hdmi_pll_od2",
@@ -356,7 +367,7 @@ static struct clk_regmap gxl_hdmi_pll = {
 		.offset = HHI_HDMI_PLL_CNTL + 8,
 		.shift = 19,
 		.width = 2,
-		.flags = CLK_DIVIDER_POWER_OF_TWO,
+		.table = gxl_hdmi_pll_od_div_table,
 	},
 	.hw.init = &(struct clk_init_data){
 		.name = "hdmi_pll",
drivers/clk/microchip/clk-core.c +12 -13
index 1b4f023cdc8be..71fbaf8318f22 100644
@@ -281,14 +281,13 @@ static u8 roclk_get_parent(struct clk_hw *hw)
 
 	v = (readl(refo->ctrl_reg) >> REFO_SEL_SHIFT) & REFO_SEL_MASK;
 
-	if (!refo->parent_map)
-		return v;
-
-	for (i = 0; i < clk_hw_get_num_parents(hw); i++)
-		if (refo->parent_map[i] == v)
-			return i;
+	if (refo->parent_map) {
+		for (i = 0; i < clk_hw_get_num_parents(hw); i++)
+			if (refo->parent_map[i] == v)
+				return i;
+	}
 
-	return -EINVAL;
+	return v;
 }
 
 static unsigned long roclk_calc_rate(unsigned long parent_rate,
@@ -823,13 +822,13 @@ static u8 sclk_get_parent(struct clk_hw *hw)
 
 	v = (readl(sclk->mux_reg) >> OSC_CUR_SHIFT) & OSC_CUR_MASK;
 
-	if (!sclk->parent_map)
-		return v;
+	if (sclk->parent_map) {
+		for (i = 0; i < clk_hw_get_num_parents(hw); i++)
+			if (sclk->parent_map[i] == v)
+				return i;
+	}
 
-	for (i = 0; i < clk_hw_get_num_parents(hw); i++)
-		if (sclk->parent_map[i] == v)
-			return i;
-	return -EINVAL;
+	return v;
 }
 
 static int sclk_set_parent(struct clk_hw *hw, u8 index)
drivers/clk/qcom/common.c +1 -1
index 2af04fc4abfa9..8aef7749f167d 100644
@@ -331,7 +331,7 @@ int qcom_cc_probe_by_index(struct platform_device *pdev, int index,
 	res = platform_get_resource(pdev, IORESOURCE_MEM, index);
 	base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(base))
-		return -ENOMEM;
+		return PTR_ERR(base);
 
 	regmap = devm_regmap_init_mmio(&pdev->dev, base, desc->config);
 	if (IS_ERR(regmap))
drivers/clk/qcom/dispcc-sdm845.c +111 -109

466 lines not on this page · raw message

drivers/clk/tegra/clk-tegra124-emc.c +3 -1
index 15f728edc54b5..670bb6b0765f3 100644
@@ -529,8 +529,10 @@ struct clk *tegra_clk_register_emc(void __iomem *base, struct device_node *np,
 	tegra->hw.init = &init;
 
 	clk = clk_register(NULL, &tegra->hw);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		kfree(tegra);
 		return clk;
+	}
 
 	tegra->prev_parent = clk_hw_get_parent_by_index(
 		&tegra->hw, emc_get_parent(&tegra->hw))->clk;
drivers/clocksource/Kconfig +1 -0
index a0c6e88bebe08..6d46d44921a61 100644
@@ -240,6 +240,7 @@ config KEYSTONE_TIMER
 
 config INTEGRATOR_AP_TIMER
 	bool "Integrator-AP timer driver" if COMPILE_TEST
+	depends on OF
 	select CLKSRC_MMIO
 	help
 	  Enables support for the Integrator-AP timer.
drivers/clocksource/sh_tmu.c +0 -18
index d41df9ba3725d..0e429d28cdd4f 100644
@@ -143,16 +143,6 @@ static void sh_tmu_start_stop_ch(struct sh_tmu_channel *ch, int start)
 
 static int __sh_tmu_enable(struct sh_tmu_channel *ch)
 {
-	int ret;
-
-	/* enable clock */
-	ret = clk_enable(ch->tmu->clk);
-	if (ret) {
-		dev_err(&ch->tmu->pdev->dev, "ch%u: cannot enable clock\n",
-			ch->index);
-		return ret;
-	}
-
 	/* make sure channel is disabled */
 	sh_tmu_start_stop_ch(ch, 0);
 
@@ -174,7 +164,6 @@ static int sh_tmu_enable(struct sh_tmu_channel *ch)
 	if (ch->enable_count++ > 0)
 		return 0;
 
-	pm_runtime_get_sync(&ch->tmu->pdev->dev);
 	dev_pm_syscore_device(&ch->tmu->pdev->dev, true);
 
 	return __sh_tmu_enable(ch);
@@ -187,9 +176,6 @@ static void __sh_tmu_disable(struct sh_tmu_channel *ch)
 
 	/* disable interrupts in TMU block */
 	sh_tmu_write(ch, TCR, TCR_TPSC_CLK4);
-
-	/* stop clock */
-	clk_disable(ch->tmu->clk);
 }
 
 static void sh_tmu_disable(struct sh_tmu_channel *ch)
@@ -203,7 +189,6 @@ static void sh_tmu_disable(struct sh_tmu_channel *ch)
 	__sh_tmu_disable(ch);
 
 	dev_pm_syscore_device(&ch->tmu->pdev->dev, false);
-	pm_runtime_put(&ch->tmu->pdev->dev);
 }
 
 static void sh_tmu_set_next(struct sh_tmu_channel *ch, unsigned long delta,
@@ -552,7 +537,6 @@ static int sh_tmu_setup(struct sh_tmu_device *tmu, struct platform_device *pdev)
 		goto err_clk_unprepare;
 
 	tmu->rate = clk_get_rate(tmu->clk) / 4;
-	clk_disable(tmu->clk);
 
 	/* Map the memory resource. */
 	ret = sh_tmu_map_memory(tmu);
@@ -626,8 +610,6 @@ static int sh_tmu_probe(struct platform_device *pdev)
  out:
 	if (tmu->has_clockevent || tmu->has_clocksource)
 		pm_runtime_irq_safe(&pdev->dev);
-	else
-		pm_runtime_idle(&pdev->dev);
 
 	return 0;
 }
drivers/cpuidle/cpuidle.c +10 -0
index 1c1fa6ac9244a..87a57cee40fcb 100644
@@ -319,6 +319,16 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,
 int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
 		   bool *stop_tick)
 {
+	/*
+	 * If there is only a single idle state (or none), there is nothing
+	 * meaningful for the governor to choose. Skip the governor and
+	 * always use state 0 with the tick running.
+	 */
+	if (drv->state_count <= 1) {
+		*stop_tick = false;
+		return 0;
+	}
+
 	return cpuidle_curr_governor->select(drv, dev, stop_tick);
 }
 
drivers/crypto/cavium/cpt/cptvf_main.c +2 -1
index a15245992cf99..cbd0c111057fd 100644
@@ -183,7 +183,8 @@ static void free_command_queues(struct cpt_vf *cptvf,
 
 		hlist_for_each_entry_safe(chunk, node, &cqinfo->queue[i].chead,
 					  nextchunk) {
-			dma_free_coherent(&pdev->dev, chunk->size,
+			dma_free_coherent(&pdev->dev,
+					  chunk->size + CPT_NEXT_CHUNK_PTR_SIZE,
 					  chunk->head,
 					  chunk->dma_addr);
 			chunk->head = NULL;
drivers/crypto/ccp/psp-dev.c +11 -0
index 4bf9eaab4456f..61f5302e7cf1a 100644
@@ -251,6 +251,17 @@ struct psp_device *psp_get_master_device(void)
 	return sp ? sp->psp_data : NULL;
 }
 
+int psp_restore(struct sp_device *sp)
+{
+	struct psp_device *psp = sp->psp_data;
+	int ret = 0;
+
+	if (psp->tee_data)
+		ret = tee_restore(psp);
+
+	return ret;
+}
+
 void psp_pci_init(void)
 {
 	psp_master = psp_get_master_device();
drivers/crypto/ccp/sp-dev.c +12 -0
index 6284a15e50472..26f8e0a7865f9 100644
@@ -237,6 +237,18 @@ int sp_resume(struct sp_device *sp)
 	return 0;
 }
 
+int sp_restore(struct sp_device *sp)
+{
+	if (sp->psp_data) {
+		int ret = psp_restore(sp);
+
+		if (ret)
+			return ret;
+	}
+
+	return sp_resume(sp);
+}
+
 struct sp_device *sp_get_psp_master_device(void)
 {
 	struct sp_device *i, *ret = NULL;
drivers/crypto/ccp/sp-dev.h +3 -0
index 0218d0670eeef..c8f6e53702f7f 100644
@@ -121,6 +121,7 @@ struct sp_device *sp_get_master(void);
 
 int sp_suspend(struct sp_device *sp);
 int sp_resume(struct sp_device *sp);
+int sp_restore(struct sp_device *sp);
 int sp_request_ccp_irq(struct sp_device *sp, irq_handler_t handler,
 		       const char *name, void *data);
 void sp_free_ccp_irq(struct sp_device *sp, void *data);
@@ -161,6 +162,7 @@ int psp_dev_init(struct sp_device *sp);
 void psp_pci_init(void);
 void psp_dev_destroy(struct sp_device *sp);
 void psp_pci_exit(void);
+int psp_restore(struct sp_device *sp);
 
 #else /* !CONFIG_CRYPTO_DEV_SP_PSP */
 
@@ -168,6 +170,7 @@ static inline int psp_dev_init(struct sp_device *sp) { return 0; }
 static inline void psp_pci_init(void) { }
 static inline void psp_dev_destroy(struct sp_device *sp) { }
 static inline void psp_pci_exit(void) { }
+static inline int psp_restore(struct sp_device *sp) { return 0; }
 
 #endif /* CONFIG_CRYPTO_DEV_SP_PSP */
 
drivers/crypto/ccp/sp-pci.c +15 -1
index 8efcdd6a2eab9..16dd40e266a82 100644
@@ -282,6 +282,13 @@ static int __maybe_unused sp_pci_resume(struct device *dev)
 	return sp_resume(sp);
 }
 
+static int __maybe_unused sp_pci_restore(struct device *dev)
+{
+	struct sp_device *sp = dev_get_drvdata(dev);
+
+	return sp_restore(sp);
+}
+
 #ifdef CONFIG_CRYPTO_DEV_SP_PSP
 static const struct sev_vdata sevv1 = {
 	.cmdresp_reg		= 0x10580,
@@ -377,7 +384,14 @@ static const struct pci_device_id sp_pci_table[] = {
 };
 MODULE_DEVICE_TABLE(pci, sp_pci_table);
 
-static SIMPLE_DEV_PM_OPS(sp_pci_pm_ops, sp_pci_suspend, sp_pci_resume);
+static const struct dev_pm_ops sp_pci_pm_ops = {
+	.suspend = pm_sleep_ptr(sp_pci_suspend),
+	.resume = pm_sleep_ptr(sp_pci_resume),
+	.freeze = pm_sleep_ptr(sp_pci_suspend),
+	.thaw = pm_sleep_ptr(sp_pci_resume),
+	.poweroff = pm_sleep_ptr(sp_pci_suspend),
+	.restore_early = pm_sleep_ptr(sp_pci_restore),
+};
 
 static struct pci_driver sp_pci_driver = {
 	.name = "ccp",
drivers/crypto/ccp/tee-dev.c +5 -0
index bcb81fef42118..ff49ecbcf003e 100644
@@ -394,3 +394,8 @@ int psp_check_tee_status(void)
 	return 0;
 }
 EXPORT_SYMBOL(psp_check_tee_status);
+
+int tee_restore(struct psp_device *psp)
+{
+	return tee_init_ring(psp->tee_data);
+}
drivers/crypto/ccp/tee-dev.h +1 -0
index 49d26158b71e3..b0bf1de94ea6f 100644
@@ -122,5 +122,6 @@ struct tee_ring_cmd {
 
 int tee_dev_init(struct psp_device *psp);
 void tee_dev_destroy(struct psp_device *psp);
+int tee_restore(struct psp_device *psp);
 
 #endif /* __TEE_DEV_H__ */
drivers/crypto/marvell/octeontx/otx_cptvf_main.c +2 -1
index 228fe8e47e0ed..ba9fa4defdba3 100644
@@ -170,7 +170,8 @@ static void free_command_queues(struct otx_cptvf *cptvf,
 			chunk = list_first_entry(&cqinfo->queue[i].chead,
 					struct otx_cpt_cmd_chunk, nextchunk);
 
-			dma_free_coherent(&pdev->dev, chunk->size,
+			dma_free_coherent(&pdev->dev,
+					  chunk->size + OTX_CPT_NEXT_CHUNK_PTR_SIZE,
 					  chunk->head,
 					  chunk->dma_addr);
 			chunk->head = NULL;
drivers/dma/dma-axi-dmac.c +1 -2
index e91aeec71c811..6194ef0ac17f6 100644
@@ -221,6 +221,7 @@ static void axi_dmac_start_transfer(struct axi_dmac_chan *chan)
 			return;
 		list_move_tail(&vdesc->node, &chan->active_descs);
 		desc = to_axi_dmac_desc(vdesc);
+		chan->next_desc = desc;
 	}
 	sg = &desc->sg[desc->num_submitted];
 
@@ -238,8 +239,6 @@ static void axi_dmac_start_transfer(struct axi_dmac_chan *chan)
 		else
 			chan->next_desc = NULL;
 		flags |= AXI_DMAC_FLAG_LAST;
-	} else {
-		chan->next_desc = desc;
 	}
 
 	sg->id = axi_dmac_read(dmac, AXI_DMAC_REG_TRANSFER_ID);
drivers/dma/mediatek/mtk-uart-apdma.c +5 -5
index 0acf6a92a4ad3..c1e132a110ffb 100644
@@ -42,7 +42,7 @@
 #define VFF_STOP_CLR_B		0
 #define VFF_EN_CLR_B		0
 #define VFF_INT_EN_CLR_B	0
-#define VFF_4G_SUPPORT_CLR_B	0
+#define VFF_ADDR2_CLR_B		0
 
 /*
  * interrupt trigger level for tx
@@ -73,7 +73,7 @@
 /* TX: the buffer size SW can write. RX: the buffer size HW can write. */
 #define VFF_LEFT_SIZE		0x40
 #define VFF_DEBUG_STATUS	0x50
-#define VFF_4G_SUPPORT		0x54
+#define VFF_ADDR2		0x54
 
 struct mtk_uart_apdmadev {
 	struct dma_device ddev;
@@ -150,7 +150,7 @@ static void mtk_uart_apdma_start_tx(struct mtk_chan *c)
 		mtk_uart_apdma_write(c, VFF_INT_FLAG, VFF_TX_INT_CLR_B);
 
 		if (mtkd->support_33bits)
-			mtk_uart_apdma_write(c, VFF_4G_SUPPORT, VFF_4G_EN_B);
+			mtk_uart_apdma_write(c, VFF_ADDR2, upper_32_bits(d->addr));
 	}
 
 	mtk_uart_apdma_write(c, VFF_EN, VFF_EN_B);
@@ -193,7 +193,7 @@ static void mtk_uart_apdma_start_rx(struct mtk_chan *c)
 		mtk_uart_apdma_write(c, VFF_INT_FLAG, VFF_RX_INT_CLR_B);
 
 		if (mtkd->support_33bits)
-			mtk_uart_apdma_write(c, VFF_4G_SUPPORT, VFF_4G_EN_B);
+			mtk_uart_apdma_write(c, VFF_ADDR2, upper_32_bits(d->addr));
 	}
 
 	mtk_uart_apdma_write(c, VFF_INT_EN, VFF_RX_INT_EN_B);
@@ -299,7 +299,7 @@ static int mtk_uart_apdma_alloc_chan_resources(struct dma_chan *chan)
 	}
 
 	if (mtkd->support_33bits)
-		mtk_uart_apdma_write(c, VFF_4G_SUPPORT, VFF_4G_SUPPORT_CLR_B);
+		mtk_uart_apdma_write(c, VFF_ADDR2, VFF_ADDR2_CLR_B);
 
 err_pm:
 	pm_runtime_put_noidle(mtkd->ddev.dev);
drivers/edac/altera_edac.c +4 -7
index 681ffb9db8438..63fea769b99ac 100644
@@ -1521,8 +1521,7 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)
 		goto err_release_group_1;
 	}
 	rc = devm_request_irq(&altdev->ddev, altdev->sb_irq,
-			      prv->ecc_irq_handler,
-			      IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
+			      prv->ecc_irq_handler, IRQF_TRIGGER_HIGH,
 			      ecc_name, altdev);
 	if (rc) {
 		edac_printk(KERN_ERR, EDAC_DEVICE, "PortB SBERR IRQ error\n");
@@ -1545,8 +1544,7 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)
 		goto err_release_group_1;
 	}
 	rc = devm_request_irq(&altdev->ddev, altdev->db_irq,
-			      prv->ecc_irq_handler,
-			      IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
+			      prv->ecc_irq_handler, IRQF_TRIGGER_HIGH,
 			      ecc_name, altdev);
 	if (rc) {
 		edac_printk(KERN_ERR, EDAC_DEVICE, "PortB DBERR IRQ error\n");
@@ -1932,8 +1930,7 @@ static int altr_edac_a10_device_add(struct altr_arria10_edac *edac,
 		goto err_release_group1;
 	}
 	rc = devm_request_irq(edac->dev, altdev->sb_irq, prv->ecc_irq_handler,
-			      IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
-			      ecc_name, altdev);
+			      IRQF_TRIGGER_HIGH, ecc_name, altdev);
 	if (rc) {
 		edac_printk(KERN_ERR, EDAC_DEVICE, "No SBERR IRQ resource\n");
 		goto err_release_group1;
@@ -1955,7 +1952,7 @@ static int altr_edac_a10_device_add(struct altr_arria10_edac *edac,
 		goto err_release_group1;
 	}
 	rc = devm_request_irq(edac->dev, altdev->db_irq, prv->ecc_irq_handler,
-			      IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
+			      IRQF_TRIGGER_HIGH,
 			      ecc_name, altdev);
 	if (rc) {
 		edac_printk(KERN_ERR, EDAC_DEVICE, "No DBERR IRQ resource\n");
drivers/edac/i5000_edac.c +1 -0
index 1a6f69c859ab9..bee3877b76e4c 100644
@@ -1111,6 +1111,7 @@ static void calculate_dimm_size(struct i5000_pvt *pvt)
 
 	n = snprintf(p, space, "           ");
 	p += n;
+	space -= n;
 	for (branch = 0; branch < MAX_BRANCHES; branch++) {
 		n = snprintf(p, space, "       branch %d       | ", branch);
 		p += n;
drivers/edac/i5400_edac.c +1 -1
index 92d63eb533aee..9f11b15397c36 100644
@@ -1024,13 +1024,13 @@ static void calculate_dimm_size(struct i5400_pvt *pvt)
 		space -= n;
 	}
 
-	space -= n;
 	edac_dbg(2, "%s\n", mem_buffer);
 	p = mem_buffer;
 	space = PAGE_SIZE;
 
 	n = snprintf(p, space, "           ");
 	p += n;
+	space -= n;
 	for (branch = 0; branch < MAX_BRANCHES; branch++) {
 		n = snprintf(p, space, "       branch %d       | ", branch);
 		p += n;
drivers/firmware/efi/cper-arm.c +8 -4
index ea43589944ba5..26a12f8076359 100644
@@ -227,7 +227,8 @@ static void cper_print_arm_err_info(const char *pfx, u32 type,
 }
 
 void cper_print_proc_arm(const char *pfx,
-			 const struct cper_sec_proc_arm *proc)
+			 const struct cper_sec_proc_arm *proc,
+			 u32 length)
 {
 	int i, len, max_ctx_type;
 	struct cper_arm_err_info *err_info;
@@ -239,9 +240,12 @@ void cper_print_proc_arm(const char *pfx,
 
 	len = proc->section_length - (sizeof(*proc) +
 		proc->err_info_num * (sizeof(*err_info)));
-	if (len < 0) {
-		printk("%ssection length: %d\n", pfx, proc->section_length);
-		printk("%ssection length is too small\n", pfx);
+
+	if (len < 0 || proc->section_length > length) {
+		printk("%ssection length: %d, CPER size: %d\n",
+		       pfx, proc->section_length, length);
+		printk("%ssection length is too %s\n", pfx,
+		       (len < 0) ? "small" : "big");
 		printk("%sfirmware-generated error record is incorrect\n", pfx);
 		printk("%sERR_INFO_NUM is %d\n", pfx, proc->err_info_num);
 		return;
drivers/firmware/efi/cper.c +7 -1
index 8e24c36d7b633..2a51a072e6700 100644
@@ -524,6 +524,11 @@ static void cper_print_fw_err(const char *pfx,
 	} else {
 		offset = sizeof(*fw_err);
 	}
+	if (offset > length) {
+		printk("%s""error section length is too small: offset=%d, length=%d\n",
+		       pfx, offset, length);
+		return;
+	}
 
 	buf += offset;
 	length -= offset;
@@ -604,7 +609,8 @@ cper_estatus_print_section(const char *pfx, struct acpi_hest_generic_data *gdata
 
 		printk("%ssection_type: ARM processor error\n", newpfx);
 		if (gdata->error_data_length >= sizeof(*arm_err))
-			cper_print_proc_arm(newpfx, arm_err);
+			cper_print_proc_arm(newpfx, arm_err,
+					    gdata->error_data_length);
 		else
 			goto err_section_too_small;
 #endif
drivers/fpga/dfl.c +1 -1
index ae220365fc04f..878eec91fd07c 100644
@@ -1873,7 +1873,7 @@ static void __exit dfl_fpga_exit(void)
 	bus_unregister(&dfl_bus_type);
 }
 
-module_init(dfl_fpga_init);
+subsys_initcall(dfl_fpga_init);
 module_exit(dfl_fpga_exit);
 
 MODULE_DESCRIPTION("FPGA Device Feature List (DFL) Support");
drivers/gpio/gpio-aspeed-sgpio.c +3 -2
index 64e54f8c30d2d..2ac1140725927 100644
@@ -474,7 +474,7 @@ static const struct of_device_id aspeed_sgpio_of_table[] = {
 
 MODULE_DEVICE_TABLE(of, aspeed_sgpio_of_table);
 
-static int __init aspeed_sgpio_probe(struct platform_device *pdev)
+static int aspeed_sgpio_probe(struct platform_device *pdev)
 {
 	struct aspeed_sgpio *gpio;
 	u32 nr_gpios, sgpio_freq, sgpio_clk_div;
@@ -562,12 +562,13 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev)
 }
 
 static struct platform_driver aspeed_sgpio_driver = {
+	.probe = aspeed_sgpio_probe,
 	.driver = {
 		.name = KBUILD_MODNAME,
 		.of_match_table = aspeed_sgpio_of_table,
 	},
 };
 
-module_platform_driver_probe(aspeed_sgpio_driver, aspeed_sgpio_probe);
+module_platform_driver(aspeed_sgpio_driver);
 MODULE_DESCRIPTION("Aspeed Serial GPIO Driver");
 MODULE_LICENSE("GPL");
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +10 -0
index ff4e226739308..170fa9215e165 100644
@@ -489,6 +489,16 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
 	case CHIP_RENOIR:
 		adev->mman.keep_stolen_vga_memory = true;
 		break;
+	case CHIP_POLARIS10:
+	case CHIP_POLARIS11:
+	case CHIP_POLARIS12:
+		/* MacBookPros with switchable graphics put VRAM at 0 when
+		 * the iGPU is enabled which results in cursor issues if
+		 * the cursor ends up at 0.  Reserve vram at 0 in that case.
+		 */
+		if (adev->gmc.vram_start == 0)
+			adev->mman.keep_stolen_vga_memory = true;
+		break;
 	default:
 		adev->mman.keep_stolen_vga_memory = false;
 		break;
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +23 -22

131 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_events.c +6 -0
index 2c19b3775179b..00266e20e7ab1 100644
@@ -303,6 +303,12 @@ int kfd_event_page_set(struct kfd_process *p, void *kernel_address,
 	if (p->signal_page)
 		return -EBUSY;
 
+	if (size < KFD_SIGNAL_EVENT_LIMIT * 8) {
+		pr_err("Event page size %llu is too small, need at least %lu bytes\n",
+				size, (unsigned long)(KFD_SIGNAL_EVENT_LIMIT * 8));
+		return -EINVAL;
+	}
+
 	page = kzalloc(sizeof(*page), GFP_KERNEL);
 	if (!page)
 		return -ENOMEM;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -1
index 0aa681939b7e7..c22783b882067 100644
@@ -7958,7 +7958,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
 		 * To fix this, DC should permit updating only stream properties.
 		 */
 		for (j = 0; j < status->plane_count; j++)
-			dummy_updates[j].surface = status->plane_states[0];
+			dummy_updates[j].surface = status->plane_states[j];
 
 
 		mutex_lock(&dm->dc_lock);
drivers/gpu/drm/amd/pm/powerplay/si_dpm.c +5 -0
index ece892b16d9a7..47d18f129cac8 100644
@@ -3426,6 +3426,11 @@ static void si_apply_state_adjust_rules(struct amdgpu_device *adev,
 			max_sclk = 60000;
 			max_mclk = 80000;
 		}
+		if ((adev->pdev->device == 0x666f) &&
+		    (adev->pdev->revision == 0x00)) {
+			max_sclk = 80000;
+			max_mclk = 95000;
+		}
 	} else if (adev->asic_type == CHIP_OLAND) {
 		if ((adev->pdev->revision == 0xC7) ||
 		    (adev->pdev->revision == 0x80) ||
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c +2 -4
index 40800ec5700a8..49eaaf4031f55 100644
@@ -910,8 +910,7 @@ atmel_hlcdc_plane_atomic_duplicate_state(struct drm_plane *p)
 		return NULL;
 	}
 
-	if (copy->base.fb)
-		drm_framebuffer_get(copy->base.fb);
+	__drm_atomic_helper_plane_duplicate_state(p, &copy->base);
 
 	return &copy->base;
 }
@@ -929,8 +928,7 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
 			      state->dscrs[i]->self);
 	}
 
-	if (s->fb)
-		drm_framebuffer_put(s->fb);
+	__drm_atomic_helper_plane_destroy_state(s);
 
 	kfree(state);
 }
drivers/gpu/drm/drm_property.c +1 -1
index 6ee04803c3620..92ecda176c7bf 100644
@@ -564,7 +564,7 @@ drm_property_create_blob(struct drm_device *dev, size_t length,
 	if (!length || length > INT_MAX - sizeof(struct drm_property_blob))
 		return ERR_PTR(-EINVAL);
 
-	blob = kvzalloc(sizeof(struct drm_property_blob)+length, GFP_KERNEL);
+	blob = kvzalloc(sizeof(struct drm_property_blob) + length, GFP_KERNEL_ACCOUNT);
 	if (!blob)
 		return ERR_PTR(-ENOMEM);
 
drivers/gpu/drm/i915/display/intel_acpi.c +1 -0
index 833d0c1be4f1d..1c01d8370fe94 100644
@@ -86,6 +86,7 @@ static void intel_dsm_platform_mux_info(acpi_handle dhandle)
 
 	if (!pkg->package.count) {
 		DRM_DEBUG_DRIVER("no connection in _DSM\n");
+		ACPI_FREE(pkg);
 		return;
 	}
 
drivers/gpu/drm/radeon/si_dpm.c +5 -0
index a84df439deb2f..88ec2550ef672 100644
@@ -2972,6 +2972,11 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,
 			max_sclk = 60000;
 			max_mclk = 80000;
 		}
+		if ((rdev->pdev->device == 0x666f) &&
+		    (rdev->pdev->revision == 0x00)) {
+			max_sclk = 80000;
+			max_mclk = 95000;
+		}
 	} else if (rdev->family == CHIP_OLAND) {
 		if ((rdev->pdev->revision == 0xC7) ||
 		    (rdev->pdev->revision == 0x80) ||
drivers/hid/hid-ids.h +1 -0
index 174090489072d..4b07b8be5c43e 100644
@@ -395,6 +395,7 @@
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349	0x7349
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7	0x73f7
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C000	0xc000
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002	0xc002
 
 #define USB_VENDOR_ID_EDIFIER		0x2d99
drivers/hid/hid-logitech-hidpp.c +1 -1
index 8bdcd4027416f..98562a0ed0c33 100644
@@ -3743,7 +3743,7 @@ static int hidpp_get_report_length(struct hid_device *hdev, int id)
 
 	re = &(hdev->report_enum[HID_OUTPUT_REPORT]);
 	report = re->report_id_hash[id];
-	if (!report)
+	if (!report || !report->maxfield)
 		return 0;
 
 	return report->field[0]->report_count + 1;
drivers/hid/hid-magicmouse.c +5 -0
index 28158d2f23523..afde78319b996 100644
@@ -569,6 +569,11 @@ static int magicmouse_input_configured(struct hid_device *hdev,
 	struct magicmouse_sc *msc = hid_get_drvdata(hdev);
 	int ret;
 
+	if (!msc->input) {
+		hid_err(hdev, "magicmouse setup input failed (no input)");
+		return -EINVAL;
+	}
+
 	ret = magicmouse_setup_input(msc->input, hdev);
 	if (ret) {
 		hid_err(hdev, "magicmouse setup input failed (%d)\n", ret);
drivers/hid/hid-multitouch.c +3 -0
index 1f1e4a383a85a..227cf3f6ca227 100644
@@ -1901,6 +1901,9 @@ static const struct hid_device_id mt_devices[] = {
 	{ .driver_data = MT_CLS_EGALAX_SERIAL,
 		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
+	{ .driver_data = MT_CLS_EGALAX_SERIAL,
+		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C000) },
 	{ .driver_data = MT_CLS_EGALAX,
 		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002) },
drivers/hid/hid-pl.c +6 -1
index 93fb07ec31802..d1a1ddd933abd 100644
@@ -194,9 +194,14 @@ static int pl_probe(struct hid_device *hdev, const struct hid_device_id *id)
 		goto err;
 	}
 
-	plff_init(hdev);
+	ret = plff_init(hdev);
+	if (ret)
+		goto stop;
 
 	return 0;
+
+stop:
+	hid_hw_stop(hdev);
 err:
 	return ret;
 }
drivers/hid/hid-prodikeys.c +4 -0
index e4e9471d0f1e9..f20d29566b4da 100644
@@ -388,6 +388,10 @@ static int pcmidi_handle_report4(struct pcmidi_snd *pm, u8 *data)
 	bit_mask = (bit_mask << 8) | data[2];
 	bit_mask = (bit_mask << 8) | data[3];
 
+	/* robustness in case input_mapping hook does not get called */
+	if (!pm->input_ep82)
+		return 0;
+
 	/* break keys */
 	for (bit_index = 0; bit_index < 24; bit_index++) {
 		if (!((0x01 << bit_index) & bit_mask)) {
drivers/hwmon/ibmpex.c +2 -7
index 235d56e96879c..fe90f0536d76c 100644
@@ -282,9 +282,6 @@ static ssize_t ibmpex_high_low_store(struct device *dev,
 {
 	struct ibmpex_bmc_data *data = dev_get_drvdata(dev);
 
-	if (!data)
-		return -ENODEV;
-
 	ibmpex_reset_high_low_data(data);
 
 	return count;
@@ -517,9 +514,6 @@ static void ibmpex_bmc_delete(struct ibmpex_bmc_data *data)
 {
 	int i, j;
 
-	hwmon_device_unregister(data->hwmon_dev);
-	dev_set_drvdata(data->bmc_device, NULL);
-
 	device_remove_file(data->bmc_device,
 			   &sensor_dev_attr_reset_high_low.dev_attr);
 	device_remove_file(data->bmc_device, &sensor_dev_attr_name.dev_attr);
@@ -533,7 +527,8 @@ static void ibmpex_bmc_delete(struct ibmpex_bmc_data *data)
 		}
 
 	list_del(&data->list);
-
+	dev_set_drvdata(data->bmc_device, NULL);
+	hwmon_device_unregister(data->hwmon_dev);
 	ipmi_destroy_user(data->user);
 	kfree(data->sensors);
 	kfree(data);
drivers/hwtracing/coresight/coresight-etm3x-core.c +6 -6
index 683a69e88efda..721b2129bf1e9 100644
@@ -784,16 +784,16 @@ static int __init etm_hp_setup(void)
 {
 	int ret;
 
-	ret = cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ARM_CORESIGHT_STARTING,
-						   "arm/coresight:starting",
-						   etm_starting_cpu, etm_dying_cpu);
+	ret = cpuhp_setup_state_nocalls(CPUHP_AP_ARM_CORESIGHT_STARTING,
+					"arm/coresight:starting",
+					etm_starting_cpu, etm_dying_cpu);
 
 	if (ret)
 		return ret;
 
-	ret = cpuhp_setup_state_nocalls_cpuslocked(CPUHP_AP_ONLINE_DYN,
-						   "arm/coresight:online",
-						   etm_online_cpu, NULL);
+	ret = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
+					"arm/coresight:online",
+					etm_online_cpu, NULL);
 
 	/* HP dyn state ID returned in ret on success */
 	if (ret > 0) {
drivers/i3c/master.c +12 -9
index aff869854ef06..e47cfef8c9920 100644
@@ -656,7 +656,7 @@ static void i3c_master_free_i2c_dev(struct i2c_dev_desc *dev)
 
 static struct i2c_dev_desc *
 i3c_master_alloc_i2c_dev(struct i3c_master_controller *master,
-			 const struct i2c_dev_boardinfo *boardinfo)
+			 u16 addr, u8 lvr)
 {
 	struct i2c_dev_desc *dev;
 
@@ -665,9 +665,8 @@ i3c_master_alloc_i2c_dev(struct i3c_master_controller *master,
 		return ERR_PTR(-ENOMEM);
 
 	dev->common.master = master;
-	dev->boardinfo = boardinfo;
-	dev->addr = boardinfo->base.addr;
-	dev->lvr = boardinfo->lvr;
+	dev->addr = addr;
+	dev->lvr = lvr;
 
 	return dev;
 }
@@ -741,7 +740,7 @@ i3c_master_find_i2c_dev_by_addr(const struct i3c_master_controller *master,
 	struct i2c_dev_desc *dev;
 
 	i3c_bus_for_each_i2cdev(&master->bus, dev) {
-		if (dev->boardinfo->base.addr == addr)
+		if (dev->addr == addr)
 			return dev;
 	}
 
@@ -1731,7 +1730,9 @@ static int i3c_master_bus_init(struct i3c_master_controller *master)
 					     i2cboardinfo->base.addr,
 					     I3C_ADDR_SLOT_I2C_DEV);
 
-		i2cdev = i3c_master_alloc_i2c_dev(master, i2cboardinfo);
+		i2cdev = i3c_master_alloc_i2c_dev(master,
+						  i2cboardinfo->base.addr,
+						  i2cboardinfo->lvr);
 		if (IS_ERR(i2cdev)) {
 			ret = PTR_ERR(i2cdev);
 			goto err_detach_devs;
@@ -2220,6 +2221,7 @@ static int i3c_master_i2c_adapter_init(struct i3c_master_controller *master)
 {
 	struct i2c_adapter *adap = i3c_master_to_i2c_adapter(master);
 	struct i2c_dev_desc *i2cdev;
+	struct i2c_dev_boardinfo *i2cboardinfo;
 	int ret;
 
 	adap->dev.parent = master->dev.parent;
@@ -2239,8 +2241,8 @@ static int i3c_master_i2c_adapter_init(struct i3c_master_controller *master)
 	 * We silently ignore failures here. The bus should keep working
 	 * correctly even if one or more i2c devices are not registered.
 	 */
-	i3c_bus_for_each_i2cdev(&master->bus, i2cdev)
-		i2cdev->dev = i2c_new_client_device(adap, &i2cdev->boardinfo->base);
+	list_for_each_entry(i2cboardinfo, &master->boardinfo.i2c, node)
+		i2cdev->dev = i2c_new_client_device(adap, &i2cboardinfo->base);
 
 	return 0;
 }
@@ -2537,12 +2539,13 @@ int i3c_master_register(struct i3c_master_controller *master,
 	INIT_LIST_HEAD(&master->boardinfo.i3c);
 
 	device_initialize(&master->dev);
-	dev_set_name(&master->dev, "i3c-%d", i3cbus->id);
 
 	ret = i3c_bus_init(i3cbus);
 	if (ret)
 		goto err_put_dev;
 
+	dev_set_name(&master->dev, "i3c-%d", i3cbus->id);
+
 	ret = of_populate_i3c_bus(master);
 	if (ret)
 		goto err_put_dev;
drivers/iio/accel/sca3000.c +5 -1
index 194738660523d..10a4bf32918a7 100644
@@ -1502,7 +1502,11 @@ static int sca3000_probe(struct spi_device *spi)
 	if (ret)
 		goto error_free_irq;
 
-	return iio_device_register(indio_dev);
+	ret = iio_device_register(indio_dev);
+	if (ret)
+		goto error_free_irq;
+
+	return 0;
 
 error_free_irq:
 	if (spi->irq)
drivers/iio/gyro/itg3200_core.c +2 -0
index e9804664db734..6d006fe0e1ac1 100644
@@ -92,6 +92,8 @@ static int itg3200_read_raw(struct iio_dev *indio_dev,
 	case IIO_CHAN_INFO_RAW:
 		reg = (u8)chan->address;
 		ret = itg3200_read_reg_s16(indio_dev, reg, val);
+		if (ret)
+			return ret;
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SCALE:
 		*val = 0;
drivers/iio/gyro/mpu3050-core.c +2 -4
index 84c6ad4bcccba..7803173c50639 100644
@@ -1170,10 +1170,8 @@ int mpu3050_common_probe(struct device *dev,
 	mpu3050->regs[1].supply = mpu3050_reg_vlogic;
 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(mpu3050->regs),
 				      mpu3050->regs);
-	if (ret) {
-		dev_err(dev, "Cannot get regulators\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(dev, ret, "Cannot get regulators\n");
 
 	ret = mpu3050_power_up(mpu3050);
 	if (ret)
drivers/iio/magnetometer/ak8975.c +1 -1
index fd3a6cd16bcf1..a248a8270cb1d 100644
@@ -511,7 +511,7 @@ static int ak8975_setup_irq(struct ak8975_data *data)
 		irq = gpiod_to_irq(data->eoc_gpiod);
 
 	rc = devm_request_irq(&client->dev, irq, ak8975_irq_handler,
-			      IRQF_TRIGGER_RISING | IRQF_ONESHOT,
+			      IRQF_TRIGGER_RISING,
 			      dev_name(&client->dev), data);
 	if (rc < 0) {
 		dev_err(&client->dev, "irq %d request failed: %d\n", irq, rc);
drivers/infiniband/core/cache.c +13 -0
index 2bd9fb3195f5e..9bcc63c24a5d8 100644
@@ -931,6 +931,13 @@ static int gid_table_setup_one(struct ib_device *ib_dev)
 	if (err)
 		return err;
 
+	/*
+	 * Mark the device as ready for GID cache updates. This allows netdev
+	 * event handlers to update the GID cache even before the device is
+	 * fully registered.
+	 */
+	ib_device_enable_gid_updates(ib_dev);
+
 	rdma_roce_rescan_device(ib_dev);
 
 	return err;
@@ -1658,6 +1665,12 @@ void ib_cache_release_one(struct ib_device *device)
 
 void ib_cache_cleanup_one(struct ib_device *device)
 {
+	/*
+	 * Clear the GID updates mark first to prevent event handlers from
+	 * accessing the device while it's being torn down.
+	 */
+	ib_device_disable_gid_updates(device);
+
 	/* The cleanup function waits for all in-progress workqueue
 	 * elements and cleans up the GID cache. This function should be
 	 * called after the device was removed from the devices list and
drivers/infiniband/core/core_priv.h +3 -0
index e84b0fedaacb8..f2cdf20530ccd 100644
@@ -102,6 +102,9 @@ void ib_enum_all_roce_netdevs(roce_netdev_filter filter,
 			      roce_netdev_callback cb,
 			      void *cookie);
 
+void ib_device_enable_gid_updates(struct ib_device *device);
+void ib_device_disable_gid_updates(struct ib_device *device);
+
 typedef int (*nldev_callback)(struct ib_device *device,
 			      struct sk_buff *skb,
 			      struct netlink_callback *cb,
drivers/infiniband/core/device.c +36 -4
index 82c059cad1c88..55b303348fcb2 100644
@@ -92,6 +92,7 @@ EXPORT_SYMBOL_GPL(ib_wq);
 static DEFINE_XARRAY_FLAGS(devices, XA_FLAGS_ALLOC);
 static DECLARE_RWSEM(devices_rwsem);
 #define DEVICE_REGISTERED XA_MARK_1
+#define DEVICE_GID_UPDATES XA_MARK_2
 
 static u32 highest_client_id;
 #define CLIENT_REGISTERED XA_MARK_1
@@ -1875,9 +1876,9 @@ static int __ib_get_client_nl_info(struct ib_device *ibdev,
 
 /**
  * ib_get_client_nl_info - Fetch the nl_info from a client
- * @device - IB device
- * @client_name - Name of the client
- * @res - Result of the query
+ * @ibdev: IB device
+ * @client_name: Name of the client
+ * @res: Result of the query
  */
 int ib_get_client_nl_info(struct ib_device *ibdev, const char *client_name,
 			  struct ib_client_nl_info *res)
@@ -2300,12 +2301,43 @@ void ib_enum_all_roce_netdevs(roce_netdev_filter filter,
 	unsigned long index;
 
 	down_read(&devices_rwsem);
-	xa_for_each_marked (&devices, index, dev, DEVICE_REGISTERED)
+	xa_for_each_marked(&devices, index, dev, DEVICE_GID_UPDATES)
 		ib_enum_roce_netdev(dev, filter, filter_cookie, cb, cookie);
 	up_read(&devices_rwsem);
 }
 
 /**
+ * ib_device_enable_gid_updates - Mark device as ready for GID cache updates
+ * @device: Device to mark
+ *
+ * Called after GID table is allocated and initialized. After this mark is set,
+ * netdevice event handlers can update the device's GID cache. This allows
+ * events that arrive during device registration to be processed, avoiding
+ * stale GID entries when netdev properties change during the device
+ * registration process.
+ */
+void ib_device_enable_gid_updates(struct ib_device *device)
+{
+	down_write(&devices_rwsem);
+	xa_set_mark(&devices, device->index, DEVICE_GID_UPDATES);
+	up_write(&devices_rwsem);
+}
+
+/**
+ * ib_device_disable_gid_updates - Clear the GID updates mark
+ * @device: Device to unmark
+ *
+ * Called before GID table cleanup to prevent event handlers from accessing
+ * the device while it's being torn down.
+ */
+void ib_device_disable_gid_updates(struct ib_device *device)
+{
+	down_write(&devices_rwsem);
+	xa_clear_mark(&devices, device->index, DEVICE_GID_UPDATES);
+	up_write(&devices_rwsem);
+}
+
+/*
  * ib_enum_all_devs - enumerate all ib_devices
  * @cb: Callback to call for each found ib_device
  *
drivers/infiniband/core/rw.c +38 -15

72 lines not on this page · raw message

drivers/infiniband/core/user_mad.c +6 -2
index 063707dd4fe37..c8ad6ef39fa55 100644
@@ -514,7 +514,8 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf,
 	struct rdma_ah_attr ah_attr;
 	struct ib_ah *ah;
 	__be64 *tid;
-	int ret, data_len, hdr_len, copy_offset, rmpp_active;
+	int ret, hdr_len, copy_offset, rmpp_active;
+	size_t data_len;
 	u8 base_version;
 
 	if (count < hdr_size(file) + IB_MGMT_RMPP_HDR)
@@ -588,7 +589,10 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf,
 	}
 
 	base_version = ((struct ib_mad_hdr *)&packet->mad.data)->base_version;
-	data_len = count - hdr_size(file) - hdr_len;
+	if (check_sub_overflow(count, hdr_size(file) + hdr_len, &data_len)) {
+		ret = -EINVAL;
+		goto err_ah;
+	}
 	packet->msg = ib_create_send_mad(agent,
 					 be32_to_cpu(packet->mad.hdr.qpn),
 					 packet->mad.hdr.pkey_index, rmpp_active,
drivers/infiniband/core/uverbs_cmd.c +5 -2
index 6658de58b5144..732940483811a 100644
@@ -2017,7 +2017,10 @@ static int ib_uverbs_post_send(struct uverbs_attr_bundle *attrs)
 	if (ret)
 		return ret;
 
-	user_wr = kmalloc(cmd.wqe_size, GFP_KERNEL);
+	if (cmd.wqe_size < sizeof(struct ib_uverbs_send_wr))
+		return -EINVAL;
+
+	user_wr = kmalloc(cmd.wqe_size, GFP_KERNEL | __GFP_NOWARN);
 	if (!user_wr)
 		return -ENOMEM;
 
@@ -2207,7 +2210,7 @@ ib_uverbs_unmarshall_recv(struct uverbs_req_iter *iter, u32 wr_count,
 	if (ret)
 		return ERR_PTR(ret);
 
-	user_wr = kmalloc(wqe_size, GFP_KERNEL);
+	user_wr = kmalloc(wqe_size, GFP_KERNEL | __GFP_NOWARN);
 	if (!user_wr)
 		return ERR_PTR(-ENOMEM);
 
drivers/infiniband/hw/efa/efa_verbs.c +1 -1
index d7fccffeeb583..be6c5d4844878 100644
@@ -1495,7 +1495,7 @@ struct ib_mr *efa_reg_mr(struct ib_pd *ibpd, u64 start, u64 length,
 	int err;
 
 	if (udata && udata->inlen &&
-	    !ib_is_udata_cleared(udata, 0, sizeof(udata->inlen))) {
+	    !ib_is_udata_cleared(udata, 0, udata->inlen)) {
 		ibdev_dbg(&dev->ibdev,
 			  "Incompatible ABI params, udata not cleared\n");
 		err = -EINVAL;
drivers/infiniband/sw/rxe/rxe_srq.c +3 -0
index 41b0d1e11bafd..9d9baca269499 100644
@@ -116,6 +116,9 @@ int rxe_srq_from_init(struct rxe_dev *rxe, struct rxe_srq *srq,
 		}
 	}
 
+	srq->rq.queue = q;
+	init->attr.max_wr = srq->rq.max_wr;
+
 	return 0;
 }
 
drivers/infiniband/sw/siw/siw_qp_rx.c +2 -1
index fd721cc19682e..6b049858644e8 100644
@@ -1456,7 +1456,8 @@ int siw_tcp_rx_data(read_descriptor_t *rd_desc, struct sk_buff *skb,
 		}
 		if (unlikely(rv != 0 && rv != -EAGAIN)) {
 			if ((srx->state > SIW_GET_HDR ||
-			     qp->rx_fpdu->more_ddp_segs) && run_completion)
+			     (qp->rx_fpdu && qp->rx_fpdu->more_ddp_segs)) &&
+			    run_completion)
 				siw_rdmap_complete(qp, rv);
 
 			siw_dbg_qp(qp, "rx error %d, rx state %d\n", rv,
drivers/infiniband/ulp/rtrs/rtrs-srv.c +1 -7
index 3e6f12f98a890..bb19bbc564413 100644
@@ -239,7 +239,6 @@ static int rdma_write_sg(struct rtrs_srv_op *id)
 	size_t sg_cnt;
 	int err, offset;
 	bool need_inval;
-	u32 rkey = 0;
 	struct ib_reg_wr rwr;
 	struct ib_sge *plist;
 	struct ib_sge list;
@@ -271,11 +270,6 @@ static int rdma_write_sg(struct rtrs_srv_op *id)
 	wr->wr.num_sge	= 1;
 	wr->remote_addr	= le64_to_cpu(id->rd_msg->desc[0].addr);
 	wr->rkey	= le32_to_cpu(id->rd_msg->desc[0].key);
-	if (rkey == 0)
-		rkey = wr->rkey;
-	else
-		/* Only one key is actually used */
-		WARN_ON_ONCE(rkey != wr->rkey);
 
 	wr->wr.opcode = IB_WR_RDMA_WRITE;
 	wr->wr.wr_cqe   = &io_comp_cqe;
@@ -308,7 +302,7 @@ static int rdma_write_sg(struct rtrs_srv_op *id)
 		inv_wr.opcode = IB_WR_SEND_WITH_INV;
 		inv_wr.wr_cqe   = &io_comp_cqe;
 		inv_wr.send_flags = 0;
-		inv_wr.ex.invalidate_rkey = rkey;
+		inv_wr.ex.invalidate_rkey = wr->rkey;
 	}
 
 	imm_wr.wr.next = NULL;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +21 -10
index 9ac7b37290eb0..8ee0446c358d6 100644
@@ -438,20 +438,26 @@ static void arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu)
  */
 static void arm_smmu_cmdq_shared_lock(struct arm_smmu_cmdq *cmdq)
 {
-	int val;
-
 	/*
-	 * We can try to avoid the cmpxchg() loop by simply incrementing the
-	 * lock counter. When held in exclusive state, the lock counter is set
-	 * to INT_MIN so these increments won't hurt as the value will remain
-	 * negative.
+	 * When held in exclusive state, the lock counter is set to INT_MIN
+	 * so these increments won't hurt as the value will remain negative.
+	 * The increment will also signal the exclusive locker that there are
+	 * shared waiters.
 	 */
 	if (atomic_fetch_inc_relaxed(&cmdq->lock) >= 0)
 		return;
 
-	do {
-		val = atomic_cond_read_relaxed(&cmdq->lock, VAL >= 0);
-	} while (atomic_cmpxchg_relaxed(&cmdq->lock, val, val + 1) != val);
+	/*
+	 * Someone else is holding the lock in exclusive state, so wait
+	 * for them to finish. Since we already incremented the lock counter,
+	 * no exclusive lock can be acquired until we finish. We don't need
+	 * the return value since we only care that the exclusive lock is
+	 * released (i.e. the lock counter is non-negative).
+	 * Once the exclusive locker releases the lock, the sign bit will
+	 * be cleared and our increment will make the lock counter positive,
+	 * allowing us to proceed.
+	 */
+	atomic_cond_read_relaxed(&cmdq->lock, VAL > 0);
 }
 
 static void arm_smmu_cmdq_shared_unlock(struct arm_smmu_cmdq *cmdq)
@@ -478,9 +484,14 @@ static bool arm_smmu_cmdq_shared_tryunlock(struct arm_smmu_cmdq *cmdq)
 	__ret;								\
 })
 
+/*
+ * Only clear the sign bit when releasing the exclusive lock this will
+ * allow any shared_lock() waiters to proceed without the possibility
+ * of entering the exclusive lock in a tight loop.
+ */
 #define arm_smmu_cmdq_exclusive_unlock_irqrestore(cmdq, flags)		\
 ({									\
-	atomic_set_release(&cmdq->lock, 0);				\
+	atomic_fetch_andnot_release(INT_MIN, &cmdq->lock);		\
 	local_irq_restore(flags);					\
 })
 
drivers/iommu/intel/pasid.c +5 -4
index 586b289cf468d..49fbe1759de67 100644
@@ -268,6 +268,9 @@ struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid)
 		if (!entries)
 			return NULL;
 
+		if (!ecap_coherent(info->iommu->ecap))
+			clflush_cache_range(entries, VTD_PAGE_SIZE);
+
 		/*
 		 * The pasid directory table entry won't be freed after
 		 * allocation. No worry about the race with free and
@@ -279,10 +282,8 @@ struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid)
 			free_pgtable_page(entries);
 			goto retry;
 		}
-		if (!ecap_coherent(info->iommu->ecap)) {
-			clflush_cache_range(entries, VTD_PAGE_SIZE);
+		if (!ecap_coherent(info->iommu->ecap))
 			clflush_cache_range(&dir[dir_index].val, sizeof(*dir));
-		}
 	}
 
 	return &entries[index];
@@ -489,7 +490,7 @@ devtlb_invalidation_with_pasid(struct intel_iommu *iommu,
 	if (!info || !info->ats_enabled)
 		return;
 
-	if (pci_dev_is_disconnected(to_pci_dev(dev)))
+	if (!pci_device_is_present(to_pci_dev(dev)))
 		return;
 
 	sid = info->bus << 8 | info->devfn;
drivers/mailbox/bcm-flexrm-mailbox.c +2 -12
index e913ed1e34c63..5348ccba13079 100644
@@ -1183,14 +1183,6 @@ static int flexrm_debugfs_stats_show(struct seq_file *file, void *offset)
 
 /* ====== FlexRM interrupt handler ===== */
 
-static irqreturn_t flexrm_irq_event(int irq, void *dev_id)
-{
-	/* We only have MSI for completions so just wakeup IRQ thread */
-	/* Ring related errors will be informed via completion descriptors */
-
-	return IRQ_WAKE_THREAD;
-}
-
 static irqreturn_t flexrm_irq_thread(int irq, void *dev_id)
 {
 	flexrm_process_completions(dev_id);
@@ -1281,10 +1273,8 @@ static int flexrm_startup(struct mbox_chan *chan)
 		ret = -ENODEV;
 		goto fail_free_cmpl_memory;
 	}
-	ret = request_threaded_irq(ring->irq,
-				   flexrm_irq_event,
-				   flexrm_irq_thread,
-				   0, dev_name(ring->mbox->dev), ring);
+	ret = request_threaded_irq(ring->irq, NULL, flexrm_irq_thread,
+				   IRQF_ONESHOT, dev_name(ring->mbox->dev), ring);
 	if (ret) {
 		dev_err(ring->mbox->dev,
 			"failed to request ring%d IRQ\n", ring->num);
drivers/mailbox/sprd-mailbox.c +5 -5
index 94d9067dc8d09..96b7fc706bb9f 100644
@@ -149,6 +149,11 @@ static irqreturn_t sprd_mbox_inbox_isr(int irq, void *data)
 		return IRQ_NONE;
 	}
 
+	/* Clear FIFO delivery and overflow status first */
+	writel(fifo_sts &
+	       (SPRD_INBOX_FIFO_DELIVER_MASK | SPRD_INBOX_FIFO_OVERLOW_MASK),
+	       priv->inbox_base + SPRD_MBOX_FIFO_RST);
+
 	while (send_sts) {
 		id = __ffs(send_sts);
 		send_sts &= (send_sts - 1);
@@ -164,11 +169,6 @@ static irqreturn_t sprd_mbox_inbox_isr(int irq, void *data)
 			mbox_chan_txdone(chan, 0);
 	}
 
-	/* Clear FIFO delivery and overflow status */
-	writel(fifo_sts &
-	       (SPRD_INBOX_FIFO_DELIVER_MASK | SPRD_INBOX_FIFO_OVERLOW_MASK),
-	       priv->inbox_base + SPRD_MBOX_FIFO_RST);
-
 	/* Clear irq status */
 	writel(SPRD_MBOX_IRQ_CLR, priv->inbox_base + SPRD_MBOX_IRQ_STS);
 
drivers/md/dm-integrity.c +1 -1
index 2d5befbb13f7c..227ed3b468732 100644
@@ -2111,7 +2111,7 @@ static void dm_integrity_map_continue(struct dm_integrity_io *dio, bool from_map
 		sector_t next_sector;
 		unsigned new_pos = find_journal_node(ic, dio->range.logical_sector, &next_sector);
 		if (unlikely(new_pos != NOT_FOUND) ||
-		    unlikely(next_sector < dio->range.logical_sector - dio->range.n_sectors)) {
+		    unlikely(next_sector < dio->range.logical_sector + dio->range.n_sectors)) {
 			remove_range_unlocked(ic, &dio->range);
 			spin_unlock_irq(&ic->endio_wait.lock);
 			queue_work(ic->commit_wq, &ic->commit_work);
drivers/md/dm-mpath.c +1 -1
index bced42f082b02..2f7152f9d2562 100644
@@ -213,6 +213,7 @@ static struct multipath *alloc_multipath(struct dm_target *ti)
 		mutex_init(&m->work_mutex);
 
 		m->queue_mode = DM_TYPE_NONE;
+		m->pg_init_delay_msecs = DM_PG_INIT_DELAY_DEFAULT;
 
 		m->ti = ti;
 		ti->private = m;
@@ -245,7 +246,6 @@ static int alloc_multipath_stage2(struct dm_target *ti, struct multipath *m)
 	set_bit(MPATHF_QUEUE_IO, &m->flags);
 	atomic_set(&m->pg_init_in_progress, 0);
 	atomic_set(&m->pg_init_count, 0);
-	m->pg_init_delay_msecs = DM_PG_INIT_DELAY_DEFAULT;
 	init_waitqueue_head(&m->pg_init_wait);
 
 	return 0;
drivers/md/dm-rq.c +11 -5
index a6ea77432e34c..2689f4213d7dd 100644
@@ -110,14 +110,21 @@ static void end_clone_bio(struct bio *clone)
 	 */
 	tio->completed += nr_bytes;
 
+	if (!is_last)
+		return;
+	/*
+	 * At this moment we know this is the last bio of the cloned request,
+	 * and all cloned bios have been released, so reset the clone request's
+	 * bio pointer to avoid double free.
+	 */
+	tio->clone->bio = NULL;
+ exit:
 	/*
 	 * Update the original request.
 	 * Do not use blk_mq_end_request() here, because it may complete
 	 * the original request before the clone, and break the ordering.
 	 */
-	if (is_last)
- exit:
-		blk_update_request(tio->orig, BLK_STS_OK, tio->completed);
+	blk_update_request(tio->orig, BLK_STS_OK, tio->completed);
 }
 
 static struct dm_rq_target_io *tio_from_request(struct request *rq)
@@ -281,8 +288,7 @@ static void dm_complete_request(struct request *rq, blk_status_t error)
 	struct dm_rq_target_io *tio = tio_from_request(rq);
 
 	tio->error = error;
-	if (likely(!blk_should_fake_timeout(rq->q)))
-		blk_mq_complete_request(rq);
+	blk_mq_complete_request(rq);
 }
 
 /*
drivers/md/dm-unstripe.c +1 -1
index e18106e99426d..3a7d85094909f 100644
@@ -116,7 +116,7 @@ static void unstripe_dtr(struct dm_target *ti)
 static sector_t map_to_core(struct dm_target *ti, struct bio *bio)
 {
 	struct unstripe_c *uc = ti->private;
-	sector_t sector = bio->bi_iter.bi_sector;
+	sector_t sector = dm_target_offset(ti, bio->bi_iter.bi_sector);
 	sector_t tmp_sector = sector;
 
 	/* Shift us up to the right "row" on the stripe */
drivers/md/dm-verity-fec.c +2 -2
index 1a23d3ebf0981..41b580933f9c0 100644
@@ -550,9 +550,9 @@ void verity_fec_dtr(struct dm_verity *v)
 	mempool_exit(&f->output_pool);
 	kmem_cache_destroy(f->cache);
 
-	if (f->data_bufio)
+	if (!IS_ERR_OR_NULL(f->data_bufio))
 		dm_bufio_client_destroy(f->data_bufio);
-	if (f->bufio)
+	if (!IS_ERR_OR_NULL(f->bufio))
 		dm_bufio_client_destroy(f->bufio);
 
 	if (f->dev)
drivers/md/md-bitmap.c +2 -1
index f2ba541ed89d4..61ac67200c8f1 100644
@@ -2143,6 +2143,7 @@ int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 		memcpy(page_address(store.sb_page),
 		       page_address(bitmap->storage.sb_page),
 		       sizeof(bitmap_super_t));
+	mutex_lock(&bitmap->mddev->bitmap_info.mutex);
 	spin_lock_irq(&bitmap->counts.lock);
 	md_bitmap_file_unmap(&bitmap->storage);
 	bitmap->storage = store;
@@ -2250,7 +2251,7 @@ int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 			set_page_attr(bitmap, i, BITMAP_PAGE_DIRTY);
 	}
 	spin_unlock_irq(&bitmap->counts.lock);
-
+	mutex_unlock(&bitmap->mddev->bitmap_info.mutex);
 	if (!init) {
 		md_bitmap_unplug(bitmap);
 		bitmap->mddev->pers->quiesce(bitmap->mddev, 0);
drivers/md/raid10.c +1 -1
index 177cfc9f45d0c..94d3e7b27d6bf 100644
@@ -3148,7 +3148,6 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
 				    !test_bit(In_sync, &rdev->flags))
 					continue;
 				/* This is where we read from */
-				any_working = 1;
 				sector = r10_bio->devs[j].addr;
 
 				if (is_badblock(rdev, sector, max_sync,
@@ -3163,6 +3162,7 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
 						continue;
 					}
 				}
+				any_working = 1;
 				bio = r10_bio->devs[0].bio;
 				bio->bi_next = biolist;
 				biolist = bio;
drivers/media/dvb-core/dmxdev.c +4 -4
index 12b7f698f5623..71651086bc4d8 100644
@@ -406,11 +406,11 @@ static int dvb_dmxdev_section_callback(const u8 *buffer1, size_t buffer1_len,
 	if (dvb_vb2_is_streaming(&dmxdevfilter->vb2_ctx)) {
 		ret = dvb_vb2_fill_buffer(&dmxdevfilter->vb2_ctx,
 					  buffer1, buffer1_len,
-					  buffer_flags);
+					  buffer_flags, true);
 		if (ret == buffer1_len)
 			ret = dvb_vb2_fill_buffer(&dmxdevfilter->vb2_ctx,
 						  buffer2, buffer2_len,
-						  buffer_flags);
+						  buffer_flags, true);
 	} else {
 		ret = dvb_dmxdev_buffer_write(&dmxdevfilter->buffer,
 					      buffer1, buffer1_len);
@@ -461,10 +461,10 @@ static int dvb_dmxdev_ts_callback(const u8 *buffer1, size_t buffer1_len,
 
 	if (dvb_vb2_is_streaming(ctx)) {
 		ret = dvb_vb2_fill_buffer(ctx, buffer1, buffer1_len,
-					  buffer_flags);
+					  buffer_flags, false);
 		if (ret == buffer1_len)
 			ret = dvb_vb2_fill_buffer(ctx, buffer2, buffer2_len,
-						  buffer_flags);
+						  buffer_flags, false);
 	} else {
 		if (buffer->error) {
 			spin_unlock(&dmxdevfilter->dev->lock);
drivers/media/dvb-core/dvb_vb2.c +3 -2
index 1331f2c2237e6..c1aaa0b46c37e 100644
@@ -256,7 +256,8 @@ int dvb_vb2_is_streaming(struct dvb_vb2_ctx *ctx)
 
 int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx,
 			const unsigned char *src, int len,
-			enum dmx_buffer_flags *buffer_flags)
+			enum dmx_buffer_flags *buffer_flags,
+			bool flush)
 {
 	unsigned long flags = 0;
 	void *vbuf = NULL;
@@ -313,7 +314,7 @@ int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx,
 		}
 	}
 
-	if (ctx->nonblocking && ctx->buf) {
+	if (flush && ctx->buf) {
 		vb2_set_plane_payload(&ctx->buf->vb, 0, ll);
 		vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_DONE);
 		list_del(&ctx->buf->list);
drivers/media/i2c/adv7180.c +7 -0
index 4498d14d34291..2d689357f156c 100644
@@ -468,6 +468,13 @@ static int adv7180_g_frame_interval(struct v4l2_subdev *sd,
 		fi->interval.denominator = 25;
 	}
 
+	/*
+	 * If the de-interlacer is active, the chip produces full video frames
+	 * at the field rate.
+	 */
+	if (state->field == V4L2_FIELD_NONE)
+		fi->interval.denominator *= 2;
+
 	return 0;
 }
 
drivers/media/i2c/tw9903.c +1 -0
index f8e3ab4909d8b..37d5ab6846421 100644
@@ -229,6 +229,7 @@ static int tw9903_probe(struct i2c_client *client,
 
 	if (write_regs(sd, initial_registers) < 0) {
 		v4l2_err(client, "error initializing TW9903\n");
+		v4l2_ctrl_handler_free(hdl);
 		return -EINVAL;
 	}
 
drivers/media/i2c/tw9906.c +1 -0
index c528eb01fed0e..04fdde437907b 100644
@@ -197,6 +197,7 @@ static int tw9906_probe(struct i2c_client *client,
 
 	if (write_regs(sd, initial_registers) < 0) {
 		v4l2_err(client, "error initializing TW9906\n");
+		v4l2_ctrl_handler_free(hdl);
 		return -EINVAL;
 	}
 
drivers/media/pci/cx23885/cx23885-alsa.c +3 -1
index 9154031c087d4..e414a6e8c3b4d 100644
@@ -392,8 +392,10 @@ static int snd_cx23885_hw_params(struct snd_pcm_substream *substream,
 
 	ret = cx23885_risc_databuffer(chip->pci, &buf->risc, buf->sglist,
 				   chip->period_size, chip->num_periods, 1);
-	if (ret < 0)
+	if (ret < 0) {
+		cx23885_alsa_dma_unmap(chip);
 		goto error;
+	}
 
 	/* Loop back to start of program */
 	buf->risc.jmp[0] = cpu_to_le32(RISC_JUMP|RISC_IRQ1|RISC_CNT_INC);
drivers/media/pci/cx25821/cx25821-alsa.c +1 -0
index 608fbaf0f659a..c45bd3041155d 100644
@@ -536,6 +536,7 @@ static int snd_cx25821_hw_params(struct snd_pcm_substream *substream,
 			chip->period_size, chip->num_periods, 1);
 	if (ret < 0) {
 		pr_info("DEBUG: ERROR after cx25821_risc_databuffer_audio()\n");
+		cx25821_alsa_dma_unmap(chip);
 		goto error;
 	}
 
drivers/media/pci/cx25821/cx25821-core.c +1 -0
index a3d45287a5343..5b823124ff28b 100644
@@ -915,6 +915,7 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
 
 	if (!dev->lmmio) {
 		CX25821_ERR("ioremap failed, maybe increasing __VMALLOC_RESERVE in page.h\n");
+		release_mem_region(dev->base_io_addr, pci_resource_len(dev->pci, 0));
 		cx25821_iounmap(dev);
 		return -ENOMEM;
 	}
drivers/media/pci/cx88/cx88-alsa.c +3 -1
index 95e0cbb1277dc..bde4a50de64f9 100644
@@ -484,8 +484,10 @@ static int snd_cx88_hw_params(struct snd_pcm_substream *substream,
 
 	ret = cx88_risc_databuffer(chip->pci, &buf->risc, buf->sglist,
 				   chip->period_size, chip->num_periods, 1);
-	if (ret < 0)
+	if (ret < 0) {
+		cx88_alsa_dma_unmap(chip);
 		goto error;
+	}
 
 	/* Loop back to start of program */
 	buf->risc.jmp[0] = cpu_to_le32(RISC_JUMP | RISC_IRQ1 | RISC_CNT_INC);
drivers/media/pci/solo6x10/solo6x10-tw28.c +7 -1
index 1b7c22a9bc94f..8f53946c67928 100644
@@ -166,7 +166,7 @@ static const u8 tbl_tw2865_pal_template[] = {
 	0x64, 0x51, 0x40, 0xaf, 0xFF, 0xF0, 0x00, 0xC0,
 };
 
-#define is_tw286x(__solo, __id) (!(__solo->tw2815 & (1 << __id)))
+#define is_tw286x(__solo, __id) (!((__solo)->tw2815 & (1U << (__id))))
 
 static u8 tw_readbyte(struct solo_dev *solo_dev, int chip_id, u8 tw6x_off,
 		      u8 tw_off)
@@ -686,6 +686,9 @@ int tw28_set_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch,
 	chip_num = ch / 4;
 	ch %= 4;
 
+	if (chip_num >= TW_NUM_CHIP)
+		return -EINVAL;
+
 	if (val > 255 || val < 0)
 		return -ERANGE;
 
@@ -758,6 +761,9 @@ int tw28_get_ctrl_val(struct solo_dev *solo_dev, u32 ctrl, u8 ch,
 	chip_num = ch / 4;
 	ch %= 4;
 
+	if (chip_num >= TW_NUM_CHIP)
+		return -EINVAL;
+
 	switch (ctrl) {
 	case V4L2_CID_SHARPNESS:
 		/* Only 286x has sharpness */
drivers/media/platform/mtk-mdp/mtk_mdp_core.c +15 -2
index 976aa1f4829b8..d1061b0292e15 100644
@@ -195,11 +195,17 @@ static int mtk_mdp_probe(struct platform_device *pdev)
 	}
 
 	mdp->vpu_dev = vpu_get_plat_device(pdev);
+	if (!mdp->vpu_dev) {
+		dev_err(&pdev->dev, "Failed to get vpu device\n");
+		ret = -ENODEV;
+		goto err_vpu_get_dev;
+	}
+
 	ret = vpu_wdt_reg_handler(mdp->vpu_dev, mtk_mdp_reset_handler, mdp,
 				  VPU_RST_MDP);
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to register reset handler\n");
-		goto err_m2m_register;
+		goto err_reg_handler;
 	}
 
 	platform_set_drvdata(pdev, mdp);
@@ -207,7 +213,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
 	ret = vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to set vb2 dma mag seg size\n");
-		goto err_m2m_register;
+		goto err_reg_handler;
 	}
 
 	pm_runtime_enable(dev);
@@ -215,6 +221,12 @@ static int mtk_mdp_probe(struct platform_device *pdev)
 
 	return 0;
 
+err_reg_handler:
+	platform_device_put(mdp->vpu_dev);
+
+err_vpu_get_dev:
+	mtk_mdp_unregister_m2m_device(mdp);
+
 err_m2m_register:
 	v4l2_device_unregister(&mdp->v4l2_dev);
 
@@ -243,6 +255,7 @@ static int mtk_mdp_remove(struct platform_device *pdev)
 
 	pm_runtime_disable(&pdev->dev);
 	vb2_dma_contig_clear_max_seg_size(&pdev->dev);
+	platform_device_put(mdp->vpu_dev);
 	mtk_mdp_unregister_m2m_device(mdp);
 	v4l2_device_unregister(&mdp->v4l2_dev);
 
drivers/media/platform/omap3isp/isppreview.c +8 -13
index 607b7685c982f..64c7553bef2f9 100644
@@ -1739,22 +1739,17 @@ static void preview_try_format(struct isp_prev_device *prev,
 
 	switch (pad) {
 	case PREV_PAD_SINK:
-		/* When reading data from the CCDC, the input size has already
-		 * been mangled by the CCDC output pad so it can be accepted
-		 * as-is.
-		 *
-		 * When reading data from memory, clamp the requested width and
-		 * height. The TRM doesn't specify a minimum input height, make
+		/*
+		 * Clamp the requested width and height.
+		 * The TRM doesn't specify a minimum input height, make
 		 * sure we got enough lines to enable the noise filter and color
 		 * filter array interpolation.
 		 */
-		if (prev->input == PREVIEW_INPUT_MEMORY) {
-			fmt->width = clamp_t(u32, fmt->width, PREV_MIN_IN_WIDTH,
-					     preview_max_out_width(prev));
-			fmt->height = clamp_t(u32, fmt->height,
-					      PREV_MIN_IN_HEIGHT,
-					      PREV_MAX_IN_HEIGHT);
-		}
+		fmt->width = clamp_t(u32, fmt->width, PREV_MIN_IN_WIDTH,
+				     preview_max_out_width(prev));
+		fmt->height = clamp_t(u32, fmt->height,
+				      PREV_MIN_IN_HEIGHT,
+				      PREV_MAX_IN_HEIGHT);
 
 		fmt->colorspace = V4L2_COLORSPACE_SRGB;
 
drivers/media/platform/omap3isp/ispvideo.c +11 -3
index 8811d6dd4ee74..3304457716450 100644
@@ -148,12 +148,12 @@ static unsigned int isp_video_mbus_to_pix(const struct isp_video *video,
 	pix->width = mbus->width;
 	pix->height = mbus->height;
 
-	for (i = 0; i < ARRAY_SIZE(formats); ++i) {
+	for (i = 0; i < ARRAY_SIZE(formats) - 1; ++i) {
 		if (formats[i].code == mbus->code)
 			break;
 	}
 
-	if (WARN_ON(i == ARRAY_SIZE(formats)))
+	if (WARN_ON(i == ARRAY_SIZE(formats) - 1))
 		return 0;
 
 	min_bpl = pix->width * formats[i].bpp;
@@ -191,7 +191,7 @@ static void isp_video_pix_to_mbus(const struct v4l2_pix_format *pix,
 	/* Skip the last format in the loop so that it will be selected if no
 	 * match is found.
 	 */
-	for (i = 0; i < ARRAY_SIZE(formats) - 1; ++i) {
+	for (i = 0; i < ARRAY_SIZE(formats) - 2; ++i) {
 		if (formats[i].pixelformat == pix->pixelformat)
 			break;
 	}
@@ -1293,6 +1293,7 @@ static const struct v4l2_ioctl_ops isp_video_ioctl_ops = {
 static int isp_video_open(struct file *file)
 {
 	struct isp_video *video = video_drvdata(file);
+	struct v4l2_mbus_framefmt fmt;
 	struct isp_video_fh *handle;
 	struct vb2_queue *queue;
 	int ret = 0;
@@ -1334,6 +1335,13 @@ static int isp_video_open(struct file *file)
 
 	memset(&handle->format, 0, sizeof(handle->format));
 	handle->format.type = video->type;
+	handle->format.fmt.pix.width = 720;
+	handle->format.fmt.pix.height = 480;
+	handle->format.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY;
+	handle->format.fmt.pix.field = V4L2_FIELD_NONE;
+	handle->format.fmt.pix.colorspace = V4L2_COLORSPACE_SRGB;
+	isp_video_pix_to_mbus(&handle->format.fmt.pix, &fmt);
+	isp_video_mbus_to_pix(video, &fmt, &handle->format.fmt.pix);
 	handle->timeperframe.denominator = 1;
 
 	handle->video = video;
drivers/media/platform/qcom/venus/vdec.c +3 -3
index b18459c5290c4..60832861a9ef1 100644
@@ -1311,10 +1311,10 @@ static void vdec_buf_done(struct venus_inst *inst, unsigned int buf_type,
 				inst->drain_active = false;
 				inst->codec_state = VENUS_DEC_STATE_STOPPED;
 			}
+		} else {
+			if (!bytesused)
+				state = VB2_BUF_STATE_ERROR;
 		}
-
-		if (!bytesused)
-			state = VB2_BUF_STATE_ERROR;
 	} else {
 		vbuf->sequence = inst->sequence_out++;
 	}
drivers/media/radio/radio-keene.c +1 -1
index a35648316aa8d..05d3c4b567211 100644
@@ -338,7 +338,6 @@ static int usb_keene_probe(struct usb_interface *intf,
 	if (hdl->error) {
 		retval = hdl->error;
 
-		v4l2_ctrl_handler_free(hdl);
 		goto err_v4l2;
 	}
 	retval = v4l2_device_register(&intf->dev, &radio->v4l2_dev);
@@ -384,6 +383,7 @@ static int usb_keene_probe(struct usb_interface *intf,
 err_vdev:
 	v4l2_device_unregister(&radio->v4l2_dev);
 err_v4l2:
+	v4l2_ctrl_handler_free(&radio->hdl);
 	kfree(radio->buffer);
 	kfree(radio);
 err:
drivers/media/usb/pvrusb2/pvrusb2-hdw.c +5 -0
index 10c21580a827b..fc7eb59aa2c80 100644
@@ -3704,6 +3704,11 @@ status);
 				   "Failed to submit read-control URB status=%d",
 status);
 			hdw->ctl_read_pend_flag = 0;
+			if (hdw->ctl_write_pend_flag) {
+				usb_unlink_urb(hdw->ctl_write_urb);
+				while (hdw->ctl_write_pend_flag)
[… more lines in the raw message]

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

drivers/mfd/arizona-core.c +1 -1
index afdc490836255..18f448fa33328 100644

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

drivers/mfd/da9052-spi.c +1 -1
index 06c500bf4d57e..5faf3766a5e20 100644

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

drivers/misc/cardreader/rts5261.c +4 -0
index 471961487ff8f..536c90d4fd763 100644

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

drivers/misc/cardreader/rts5261.h +0 -23
index ebfdd236a553e..8d80f0d5d5d63 100644

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

drivers/misc/cardreader/rtsx_pcr.c +5 -0
index 358b000b3a552..4c57ecb2be404 100644

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

drivers/mmc/core/core.c +13 -2
index 0f73ee841574a..d8169c8c3f405 100644

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

drivers/mmc/core/host.h +6 -0
index 5e3b9534ffb23..ba407617ed23a 100644

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

drivers/mmc/core/sd_ops.c +47 -2

49 lines not on this page · raw message

drivers/mmc/core/sd_ops.h +1 -0
index 2194cabfcfc57..3ba7b3cf46520 100644

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

drivers/mtd/nand/raw/cadence-nand-controller.c +1 -1
index db565a0edcfd0..544cf5fe946a7 100644

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

drivers/net/bonding/bond_main.c +14 -7
index a6d552a83ca43..87e23796680b3 100644

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

drivers/net/caif/caif_serial.c +3 -2
index 39fbd0be179c2..1b6a696182f72 100644

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

drivers/net/ethernet/ec_bhf.c +1 -1
index 7c992172933bc..7bf9acfd6c32b 100644

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

drivers/net/ethernet/intel/i40e/i40e_main.c +7 -1
index f11d6166186f7..3d3816de72ec8 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +11 -0
index 3514564e2cc60..217b6873a64c6 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +9 -3
index 0a69d326f618c..971e0ae917f41 100644

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

drivers/net/ethernet/marvell/skge.c +0 -1
index 8a9c0f490bfb5..f7459b5049c52 100644

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

drivers/net/ethernet/myricom/myri10ge/myri10ge.c +27 -1
index 5a1ed4818baac..28857053f7514 100644

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

drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +4 -3
index d0a613fac9ff3..02858e8881549 100644

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

drivers/net/ethernet/ti/cpsw_new.c +5 -7
index d6f8d3e757a25..66b1620b6f5b0 100644

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

drivers/net/macvlan.c +5 -0
index cae48b1b7020f..95ae47a7a69dd 100644

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

drivers/net/usb/Kconfig +0 -1
index 867ff2ee8ecf3..e1ec0c6b33429 100644

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

drivers/net/usb/catc.c +48 -11

59 lines not on this page · raw message

drivers/net/usb/kaweth.c +0 -2
index 9b2bc1993ece2..3ebf876dd60fc 100644

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

drivers/net/usb/lan78xx.c +78 -37

115 lines not on this page · raw message

drivers/net/usb/pegasus.c +30 -5
index e3ddb990dc543..ba18ada7b60fa 100644

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

drivers/net/usb/r8152.c +2 -0
index 57565fb2c0a11..2a8fa331a9452 100644

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

drivers/net/usb/sr9700.c +4 -21
index 4d860d5bbcd73..9dbce3232d7c2 100644

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

drivers/net/usb/sr9700.h +1 -6
index ea2b4de621c86..c479908f7d823 100644

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

drivers/net/wan/farsync.c +2 -0
index 36a6958b6a0b2..473d40cf6d52a 100644

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

drivers/net/wan/fsl_ucc_hdlc.c +2 -6
index bc3650c70730a..fed3a45361330 100644

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

drivers/net/wireless/ath/ath10k/sdio.c +6 -0
index 7cb1bc8d6e01c..d87bb3275b392 100644

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

drivers/net/wireless/ath/ath10k/wmi.c +2 -2
index 6293dbc32bde4..2852d31cedd6d 100644

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

drivers/net/wireless/intel/ipw2x00/ipw2200.c +7 -1
index bb728fb24b8a4..50ccfff4452fb 100644

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

drivers/net/wireless/intel/iwlegacy/3945-mac.c +2 -0
index 55c00a07bc4d3..a9d06dd5e19ef 100644

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

drivers/net/wireless/intel/iwlegacy/4965-mac.c +2 -0
index 6e5decf79a06b..7ef27f95c5265 100644

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

drivers/net/wireless/marvell/libertas/if_usb.c +2 -0
index 2240b4db8c036..d98c81539ba53 100644

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

drivers/net/xen-netback/xenbus.c +3 -2
index 9ee9ce0493fe6..c47e327039a0a 100644

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

drivers/nfc/nxp-nci/i2c.c +1 -1
index f426dcdfcdd6a..78320d7bd2a16 100644

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

drivers/ntb/hw/mscc/ntb_hw_switchtec.c +10 -2
index c5c1963c699d9..a912ffa2289ac 100644

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

drivers/ntb/ntb_transport.c +2 -2
index 17ae14002439f..155e8be2e660e 100644

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

drivers/nvdimm/nd_virtio.c +2 -1
index 41e97c6567cf9..204d1a05f8e32 100644

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

drivers/nvdimm/virtio_pmem.c +1 -0
index 726c7354d4659..23ce47b67df50 100644

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

drivers/nvdimm/virtio_pmem.h +4 -0
index 0dddefe594c46..f72cf17f9518f 100644

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

drivers/pci/controller/pcie-mediatek.c +3 -1
index ea91d63c8be15..bab962ec7ab46 100644

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

drivers/pci/iov.c +4 -5
index a2f2b08ef7c56..f939cbada3755 100644

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

drivers/pci/pci-driver.c +8 -0
index fe15e59e7c56e..de500afdcf97c 100644

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

drivers/pci/pci.c +19 -18
index 15618b87bc4b9..82bde2a92cf6d 100644

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

drivers/pci/pci.h +1 -0
index c2fd92a9ee1ad..5079800f56ceb 100644

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

drivers/pci/pcie/portdrv_core.c +3 -3
index e3d998173433f..0ebf3b2674036 100644

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

drivers/pci/probe.c +34 -1
index 0b1ef4f2c90dd..c8dc988df4c39 100644

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

drivers/pci/quirks.c +23 -0
index ac355ae17bfee..0319aca1f762b 100644

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

drivers/phy/freescale/phy-fsl-imx8mq-usb.c +1 -0
index 62d6d6849ad60..4328396cd13de 100644

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

drivers/pinctrl/pinctrl-equilibrium.c +1 -0
index 3b6dcaa80e000..55fc9aa61f55a 100644

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

drivers/pinctrl/pinctrl-single.c +2 -0
index 07bf090420453..491a46e330b30 100644

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

drivers/platform/chrome/cros_ec_lightbar.c +1 -1
index de8dfb12e4863..235326f217a48 100644

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

drivers/power/reset/nvmem-reboot-mode.c +13 -2
index e229308d43e25..819f11bae788b 100644

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

drivers/power/supply/act8945a_charger.c +8 -8
index 5f3eb6941d058..a12cbfeca1123 100644

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

drivers/power/supply/bq25980_charger.c +6 -6
index b94ecf814e434..98950e4456c38 100644

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

drivers/power/supply/bq27xxx_battery.c +3 -3
index 1bd48e4e26d49..44198b181c962 100644

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

drivers/power/supply/cpcap-battery.c +4 -4
index 793d4ca52f8a1..e39f7f7414cb9 100644

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

drivers/power/supply/goldfish_battery.c +6 -6
index bf1754355c9fc..c7502fa8efa7b 100644

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

drivers/power/supply/rt9455_charger.c +9 -8
index a84afccd509f1..89b414fac6c3a 100644

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

drivers/power/supply/sbs-battery.c +18 -18
index b6a538ebb378f..ee8816ce0b800 100644

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

drivers/power/supply/wm97xx_battery.c +33 -36

69 lines not on this page · raw message

drivers/rapidio/rio-scan.c +2 -1
index c12941f71e2cb..dcd6619a4b027 100644

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

drivers/regulator/core.c +38 -30

68 lines not on this page · raw message

drivers/rpmsg/rpmsg_core.c +27 -39

66 lines not on this page · raw message

drivers/rtc/interface.c +1 -1
index 9d2a2637246eb..7c9487050b25b 100644

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

drivers/s390/cio/css.c +1 -1
index cf2c3c4c590f9..e5e20ea850aad 100644

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

drivers/scsi/csiostor/csio_scsi.c +2 -1
index 55e74da2f3cbe..e320ca2911e0c 100644

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

drivers/soc/qcom/cmd-db.c +4 -3
index 006bb28e2a6e5..f9bbd5cab0a05 100644

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

drivers/soc/ti/k3-socinfo.c +1 -1
index 4d89481654872..49edb3a319f05 100644

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

drivers/soc/ti/pruss.c +2 -4
index bf2ba4c8595ba..faf3f2c75c09e 100644

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

drivers/spi/spi-mem.c +10 -1
index 4682f49dc7330..5260923b6a3d6 100644

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

drivers/staging/greybus/light.c +6 -2
index 7352d7deb8ba0..af91913794ee6 100644

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

drivers/tty/serial/8250/8250_dw.c +9 -2
index bcf770f344dac..211dc88ce4e2c 100644

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

drivers/tty/serial/8250/8250_omap.c +1 -1
index 98df9d4ceaecd..e4e2bf9cd4716 100644

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

drivers/tty/serial/Kconfig +4 -4
index 1ddaa5e7d4906..b8b0af95925ed 100644

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

drivers/usb/dwc2/core.c +1 -0
index 15911ac7582b4..c888b8194f2ae 100644

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

drivers/usb/gadget/udc/bdc/bdc_core.c +2 -2
index fa1a3908ec3bb..69d11b703c8d0 100644

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

drivers/usb/gadget/udc/tegra-xudc.c +9 -3
index ca472fde0d649..b9f0f32775bad 100644

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

drivers/video/fbdev/au1200fb.c +4 -2
index 80f54111baec1..ec1d86f253904 100644

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

drivers/video/fbdev/ffb.c +13 -1
index 948b731844334..a8717c1490fc4 100644

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

drivers/video/fbdev/vt8500lcdfb.c +4 -1
index c61476247ba8d..ccd316aac4677 100644

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

drivers/video/of_display_timing.c +2 -2
index abc9ada798ee8..b4504ec497ee7 100644

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

drivers/watchdog/it87_wdt.c +12 -0
index da9e24e4a8b60..1d41b9fdcedc4 100644

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

drivers/xen/xenbus/xenbus_probe_frontend.c +1 -3
index 480944606a3c9..73cf4810715e4 100644

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

fs/btrfs/extent-tree.c +1 -1
index d652d4091b2bd..9207fe878dd20 100644

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

fs/btrfs/qgroup.c +10 -5
index bc1feb97698c9..a252f6cca0027 100644

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

fs/ceph/file.c +16 -1
index c1eafff45b194..e08805426c808 100644

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

fs/ext4/extents.c +8 -1
index 12da59c03c7cf..b0e8711fd7fd8 100644

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

fs/fat/namei_msdos.c +6 -1
index 9d062886fbc19..63a323be9179d 100644

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

fs/fat/namei_vfat.c +6 -1
index 9bc7d1602c15b..2a0d9a9c2c8f7 100644

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

fs/fs_struct.c +1 -0
index 04b3f5b9c6295..0b0f88259cc60 100644

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

fs/gfs2/bmap.c +93 -134

227 lines not on this page · raw message

fs/gfs2/bmap.h +8 -5
index aed4632d47d30..6676d863faef0 100644

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

fs/gfs2/dir.c +6 -7
index c0f2875c946c9..4517ffb7c13d2 100644

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

fs/gfs2/file.c +46 -13

59 lines not on this page · raw message

fs/gfs2/log.c +5 -1
index 7473b894e3c6c..a667d315b1568 100644

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

fs/gfs2/quota.c +2 -2
index 8c226aa286336..984ca5057d9d5 100644

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

fs/gfs2/recovery.c +2 -2
index 8f9c6480a5df4..b925ba068af50 100644

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

fs/hfsplus/bnode.c +1 -1
index 7c127922ac0c7..1fa4a1d18b7b2 100644

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

fs/hfsplus/inode.c +11 -1
index 0ba324ee7dffb..57123b206877c 100644

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

fs/hfsplus/super.c +6 -0
index 9f8945042faa8..ff9998be089a8 100644

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

fs/iomap/direct-io.c +7 -3
index 8a49c0d3a7b46..d3aa7ddbd0774 100644

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

fs/jfs/jfs_logmgr.c +1 -0
index 78fd136ac13b9..d02bca48bc7b0 100644

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

fs/jfs/namei.c +4 -2
index f155ad6650bd4..e72c48f457d86 100644

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

fs/minix/inode.c +29 -21

50 lines not on this page · raw message

fs/nfs/pnfs.c +2 -1
index c5dd301c43d7b..e0317a889a3af 100644

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

fs/nfsd/nfs4idmap.c +46 -6

52 lines not on this page · raw message

fs/nfsd/nfs4proc.c +0 -2
index ffd79abd99ea7..a4c7cab1679bd 100644

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

fs/nfsd/nfs4xdr.c +16 -0
index 4253778a97477..7022ae52b1f20 100644

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

fs/ocfs2/xattr.c +4 -0
index 051d91e230c45..7b1688e282674 100644

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

fs/overlayfs/readdir.c +1 -1
index cc1e802570644..09a5542723787 100644

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

fs/proc/array.c +1 -1
index 77b94c04e4aff..e97ad2bd7a9dc 100644

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

fs/pstore/ram_core.c +18 -0
index 5ac9b1f155a81..ccaa138a57b7c 100644

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

fs/xfs/libxfs/xfs_attr_leaf.c +41 -8

49 lines not on this page · raw message

fs/xfs/scrub/attr.c +4 -1
index 9faddb334a2c3..558f44ccb13fe 100644

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

fs/xfs/scrub/btree.c +2 -0
index debf392e05156..67833b666c6fc 100644

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

fs/xfs/scrub/common.c +4 -0
index 18876056e5e02..1fd24e68e13d8 100644

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

fs/xfs/scrub/dabtree.c +2 -0
index 653f3280e1c18..6075815f65204 100644

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

include/acpi/ghes.h +1 -0
index 292a5c40bd0c6..259ae345849f0 100644

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

include/asm-generic/audit_change_attr.h +3 -0
index 331670807cf01..6c311d4d37f4e 100644

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

include/asm-generic/audit_read.h +6 -0
index 7bb7b5a83ae2e..fb9991f53fb6f 100644

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

include/drm/drm_of.h +3 -0
index b9b093add92e7..dee5ef9dec3ff 100644

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

include/linux/clk.h +24 -24

48 lines not on this page · raw message

include/linux/cper.h +2 -1
index a31e22cc839eb..b3079f687c5c6 100644

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

include/linux/i3c/master.h +0 -1
index ea3781d730064..b31170e37655f 100644

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

include/linux/mfd/wm8350/core.h +1 -1
index a3241e4d75486..4816d4f472101 100644

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

include/linux/mmc/host.h +7 -0
index fb08b86acdbf3..dd3492f377d00 100644

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

include/linux/pm.h +51 -29

80 lines not on this page · raw message

include/linux/regulator/driver.h +1 -1
index 633e7a2ab01d0..a465350427087 100644

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

include/linux/rtsx_pci.h +23 -0
index 745f5e73f99ac..b47959f48ccd4 100644

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

include/linux/sunrpc/svc_rdma.h +2 -0
index 2b870a3f391b1..e2f316f52df66 100644

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

include/linux/wm97xx.h +0 -1
index 58e082dadc683..462854f4f286c 100644

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

include/media/dvb_vb2.h +4 -2
index 8cb88452cd6c2..0fbbfc65157e6 100644

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

include/net/bluetooth/l2cap.h +2 -0
index 7f9d0ab76b14f..17ad4577f53aa 100644

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

include/net/ipv6.h +7 -4
index 2909233427de0..d7b0710d0d9c1 100644

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

include/net/netfilter/nf_conntrack_count.h +1 -0
index 115bb7e572f7d..bf22661925b81 100644

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

include/rdma/ib_verbs.h +1 -1
index ac6ffa5618843..495bf66620a6f 100644

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

include/rdma/rw.h +2 -0
index 6ad9dc836c107..b7249929109dd 100644

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

include/uapi/linux/hyperv.h +1 -1
index 6135d92e0d47b..a9f05c61b37e7 100644

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

include/uapi/linux/netfilter_bridge.h +4 -0
index 1610fdbab98df..ad520d3e9df8f 100644

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

include/uapi/linux/vbox_vmmdev_types.h +2 -2
index f8a8d6b3c5219..436678d4fb24f 100644

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

kernel/bpf/verifier.c +7 -11
index 75251870430e4..150aa47b4a9ad 100644

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

kernel/kexec_file.c +74 -57

131 lines not on this page · raw message

kernel/sched/rt.c +5 -0
index 1289991c970e1..cc6950fc6061e 100644

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

kernel/time/hrtimer.c +1 -1
index c202488695c46..cf928eb8f2f8d 100644

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

kernel/trace/trace_events.c +0 -5
index c9fc3c442681a..da4a69e1929c5 100644

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

kernel/ucount.c +1 -1
index 8d8874f1c35e2..a1e900aa1fe4a 100644

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

mm/page_alloc.c +14 -0
index 495a350c90a52..f5190e927d8e7 100644

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

net/atm/signaling.c +54 -2

56 lines not on this page · raw message

net/bluetooth/hci_conn.c +2 -2
index 52e512f41da3c..eb70a4f44c7d1 100644

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

net/bluetooth/l2cap_core.c +69 -26

95 lines not on this page · raw message

net/core/dev.c +18 -5
index c0dc524548ee1..ab0b7df703518 100644

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

net/ipv4/fib_lookup.h +4 -2
index 818916b2a04d6..f8fe0da3d9af6 100644

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

net/ipv4/fib_trie.c +2 -2
index 671178ed41d0d..5c75591bcce00 100644

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

net/ipv4/tcp.c +3 -0
index 6ffda70e7e58e..5998e2b6f5ec7 100644

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

net/ipv6/xfrm6_policy.c +5 -2
index f5ef5e4c88df1..b504eeb592249 100644

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

net/netfilter/nf_conncount.c +40 -14

54 lines not on this page · raw message

net/netfilter/nf_conntrack_h323_asn1.c +1 -1
index 540d97715bd23..62aa22a078769 100644

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

net/netfilter/nf_conntrack_h323_main.c +5 -5
index 8ba037b76ad3a..106dea9b53a96 100644

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

net/netfilter/nf_conntrack_proto_generic.c +1 -0
index e831637bc8ca8..cb260eb3d012c 100644

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

net/netfilter/nft_connlimit.c +1 -6
index 548dd5adbe971..a2bf79bf3a893 100644

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

net/netfilter/nft_set_hash.c +7 -2
index 8656cb61dd211..3a0d3fd4e42cd 100644

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

net/netfilter/nft_set_rbtree.c +25 -5
index bbced30113e4e..e3cd66260c2d6 100644

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

net/netfilter/xt_tcpmss.c +1 -1
index 37704ab017992..0d32d4841cb32 100644

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

net/rds/connection.c +4 -0
index b4cc699c5fad3..98c0d5ff9de9c 100644

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

net/rds/send.c +4 -2
index 1923eaa91e939..131c59cd5abb0 100644

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

net/rds/tcp_listen.c +0 -5
index 3994eeef95a3c..7b6d0088ae33e 100644

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

net/sunrpc/auth_gss/auth_gss.c +3 -0
index 7ce4a6b7cfae6..5f6d67023a1b0 100644

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

net/sunrpc/auth_gss/gss_rpc_xdr.c +64 -18

82 lines not on this page · raw message

net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +51 -38

89 lines not on this page · raw message

net/sunrpc/xprtrdma/svc_rdma_transport.c +29 -17

46 lines not on this page · raw message

net/tipc/crypto.c +1 -1
index 42e7d2bc78302..003c99f6ec596 100644

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

net/vmw_vsock/vmci_transport.c +1 -1
index 912bafcf825b2..5a85e1ce2aa48 100644

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

net/wireless/core.c +3 -1
index 3b25b78896a28..cc2093f75468f 100644

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

net/wireless/wext-compat.c +1 -1
index 78f2927ead7f4..3039876c7397d 100644

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

scripts/mod/modpost.c +4 -0
index fd77ac48dcc17..379d03d0c5e6d 100644

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

security/apparmor/apparmorfs.c +9 -0
index 06eac22665656..e736936f4f0ba 100644

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

security/apparmor/net.c +4 -2
index fa0e85568450b..fbbfedd253f69 100644

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

security/apparmor/resource.c +5 -0
index 1ae4874251a96..f94e416399441 100644

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

security/smack/smackfs.c +50 -29

79 lines not on this page · raw message

sound/soc/codecs/es8328.c +8 -2
index 60ad9f3683fe9..b169af20cd61c 100644

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

sound/soc/codecs/wm8962.c +11 -1
index 272932e200d87..24e6d731942c5 100644

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

tools/perf/util/evsel_fprintf.c +6 -2
index fb498a723a006..3aedff5e6fa4d 100644

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

tools/power/cpupower/lib/cpuidle.c +1 -0
index c15d0de12357f..e7b8c56638370 100644

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

tools/spi/.gitignore +1 -0
index 14ddba3d21957..038261b34ed83 100644

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

tools/testing/selftests/drivers/net/mlxsw/tc_restrictions.sh +2 -2
index 553cb9fad5084..9547c0992d423 100755

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

tools/testing/selftests/net/forwarding/tc_actions.sh +12 -6
index 1e27031288c81..dd02ed4cacacb 100755

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

tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh +16 -10
index 0ccb1dda099ae..446e31477491c 100755

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

tools/testing/selftests/vm/charge_reserved_hugetlb.sh +2 -2
index c44226b4e0bfb..c318f4fd4f6b9 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.