Skip to contentSkip to conversation

Linux 5.10.168

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Feb 15, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.168 kernel.

All users of the 5.10 kernel series must upgrade.

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

thanks,

greg k-h

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

 Makefile                                                    |    2 
 arch/arm64/boot/dts/amlogic/meson-axg.dtsi                  |    4 
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi           |    6 
 arch/arm64/boot/dts/amlogic/meson-gx.dtsi                   |    6 
 arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h              |    2 
 arch/parisc/kernel/firmware.c                               |    5 
 arch/parisc/kernel/ptrace.c                                 |   15 
 arch/powerpc/perf/imc-pmu.c                                 |   14 
 arch/riscv/Makefile                                         |    3 
 arch/riscv/mm/cacheflush.c                                  |    4 
 arch/x86/include/asm/debugreg.h                             |   26 
 drivers/ata/libata-core.c                                   |    2 
 drivers/bus/sunxi-rsb.c                                     |    8 
 drivers/firewire/core-cdev.c                                |    4 
 drivers/firmware/efi/efi.c                                  |    2 
 drivers/firmware/efi/memattr.c                              |    2 
 drivers/fpga/stratix10-soc.c                                |    4 
 drivers/fsi/fsi-sbefifo.c                                   |    6 
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c                  |    9 
 drivers/gpu/drm/vc4/vc4_hdmi.c                              |    3 
 drivers/i2c/busses/i2c-mxs.c                                |    4 
 drivers/i2c/busses/i2c-rk3x.c                               |   44 
 drivers/iio/accel/hid-sensor-accel-3d.c                     |    1 
 drivers/iio/adc/berlin2-adc.c                               |    4 
 drivers/iio/adc/stm32-dfsdm-adc.c                           |    1 
 drivers/iio/adc/twl6030-gpadc.c                             |   32 
 drivers/iio/imu/fxos8700_core.c                             |  111 -
 drivers/infiniband/hw/hfi1/file_ops.c                       |    7 
 drivers/infiniband/hw/usnic/usnic_uiom.c                    |    8 
 drivers/infiniband/ulp/ipoib/ipoib_main.c                   |    8 
 drivers/infiniband/ulp/rtrs/rtrs-clt.c                      |    2 
 drivers/input/serio/i8042-x86ia64io.h                       | 1188 +++++++-----
 drivers/net/bonding/bond_debugfs.c                          |    2 
 drivers/net/ethernet/intel/ice/ice_main.c                   |    2 
 drivers/net/ethernet/intel/igc/igc_ptp.c                    |   14 
 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c    |    3 
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c     |   13 
 drivers/net/ethernet/mscc/ocelot_flower.c                   |   24 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c             |   15 
 drivers/net/ethernet/qlogic/qede/qede_fp.c                  |   10 
 drivers/net/ethernet/sfc/efx.c                              |    5 
 drivers/net/phy/dp83822.c                                   |    6 
 drivers/net/phy/meson-gxl.c                                 |    4 
 drivers/net/usb/plusb.c                                     |    4 
 drivers/net/virtio_net.c                                    |    8 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c |   17 
 drivers/nvmem/core.c                                        |    8 
 drivers/nvmem/qcom-spmi-sdam.c                              |    1 
 drivers/of/address.c                                        |   21 
 drivers/pinctrl/aspeed/pinctrl-aspeed.c                     |    2 
 drivers/pinctrl/intel/pinctrl-intel.c                       |   16 
 drivers/pinctrl/pinctrl-single.c                            |    2 
 drivers/platform/x86/dell-wmi.c                             |    3 
 drivers/scsi/iscsi_tcp.c                                    |    9 
 drivers/scsi/scsi_scan.c                                    |    7 
 drivers/spi/spi-dw-core.c                                   |    2 
 drivers/target/target_core_file.c                           |    4 
 drivers/target/target_core_tmr.c                            |    4 
 drivers/tty/serial/8250/8250_dma.c                          |   26 
 drivers/tty/vt/vc_screen.c                                  |    9 
 drivers/usb/core/quirks.c                                   |    3 
 drivers/usb/dwc3/dwc3-qcom.c                                |   10 
 drivers/usb/gadget/function/f_fs.c                          |    4 
 drivers/usb/typec/altmodes/displayport.c                    |    8 
 drivers/vhost/net.c                                         |    3 
 drivers/vhost/vhost.c                                       |    3 
 drivers/vhost/vhost.h                                       |    1 
 drivers/video/fbdev/core/fbcon.c                            |    7 
 drivers/video/fbdev/smscufx.c                               |   46 
 drivers/watchdog/diag288_wdt.c                              |   15 
 drivers/xen/pvcalls-back.c                                  |    8 
 fs/btrfs/volumes.c                                          |   22 
 fs/btrfs/zlib.c                                             |    2 
 fs/ceph/mds_client.c                                        |    6 
 fs/cifs/file.c                                              |    4 
 fs/f2fs/gc.c                                                |   18 
 fs/proc/task_mmu.c                                          |    4 
 fs/squashfs/squashfs_fs.h                                   |    2 
 fs/squashfs/squashfs_fs_sb.h                                |    2 
 fs/squashfs/xattr.h                                         |    4 
 fs/squashfs/xattr_id.c                                      |    4 
 include/linux/hugetlb.h                                     |   19 
 include/linux/nvmem-provider.h                              |    4 
 include/linux/util_macros.h                                 |   12 
 include/uapi/linux/ip.h                                     |    1 
 include/uapi/linux/ipv6.h                                   |    1 
 kernel/bpf/verifier.c                                       |  102 -
 kernel/trace/bpf_trace.c                                    |    3 
 kernel/trace/trace.c                                        |    3 
 mm/gup.c                                                    |    2 
 mm/hugetlb.c                                                |    6 
 mm/memory-failure.c                                         |    2 
 mm/memory_hotplug.c                                         |    2 
 mm/mempolicy.c                                              |    5 
 mm/migrate.c                                                |    7 
 mm/page_alloc.c                                             |    5 
 mm/swapfile.c                                               |    1 
 net/bridge/br_netfilter_hooks.c                             |    1 
 net/can/j1939/address-claim.c                               |   40 
 net/can/j1939/transport.c                                   |    4 
 net/ipv4/tcp_bpf.c                                          |    4 
 net/netrom/af_netrom.c                                      |    5 
 net/openvswitch/datapath.c                                  |   12 
 net/qrtr/ns.c                                               |    5 
 net/rds/message.c                                           |    6 
 net/x25/af_x25.c                                            |    6 
 net/xfrm/xfrm_compat.c                                      |    4 
 net/xfrm/xfrm_input.c                                       |    3 
 sound/pci/hda/patch_realtek.c                               |    3 
 sound/pci/hda/patch_via.c                                   |    3 
 sound/pci/lx6464es/lx_core.c                                |   11 
 sound/synth/emux/emux_nrpn.c                                |    3 
 tools/testing/selftests/net/forwarding/lib.sh               |    4 
 tools/testing/selftests/net/udpgso_bench.sh                 |   24 
 tools/testing/selftests/net/udpgso_bench_rx.c               |    4 
 tools/testing/selftests/net/udpgso_bench_tx.c               |   36 
 116 files changed, 1510 insertions(+), 797 deletions(-)

Al Viro (4):
WRITE is "data source", not destination...
READ is "data destination", not source...
fix iov_iter_bvec() "direction" argument
fix "direction" argument of iov_iter_kvec()

Alan Stern (1):
net: USB: Fix wrong-direction WARNING in plusb.c

Alexander Egorenkov (2):
watchdog: diag288_wdt: do not use stack buffers for hardware data
watchdog: diag288_wdt: fix __diag288() inline assembly

Alexander Potapenko (1):
btrfs: zlib: zero-initialize zlib workspace

Anand Jain (1):
btrfs: free device in btrfs_close_devices for a single device filesystem

Anastasia Belova (1):
xfrm: compat: change expression for switch in xfrm_xlate64

Andre Kalb (1):

      net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices

Andreas Kemnade (2):
iio:adc:twl6030: Enable measurements of VUSB, VBAT and others iio:adc:twl6030: Enable measurement of VAC

Andreas Schwab (1):
riscv: disable generation of unwind tables

Andrei Gherzan (4):
selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking

Andy Shevchenko (1):
pinctrl: intel: Restore the pins that used to be in Direct IRQ mode

Anirudh Venkataramanan (1):
ice: Do not use WQ_MEM_RECLAIM flag for workqueue

Anton Gusev (1):
efi: fix potential NULL deref in efi_mem_reserve_persistent

Ard Biesheuvel (1):
efi: Accept version 2 of memory attributes table

Artemii Karasev (2):
ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()

Bhaskar Upadhaya (1):
qede: add netpoll support for qede driver

Carlos Song (9):
iio: imu: fxos8700: fix ACCEL measurement range selection
iio: imu: fxos8700: fix incomplete ACCEL and MAGN channels readback
iio: imu: fxos8700: fix IMU data bits returned to user space
iio: imu: fxos8700: fix map label of channel type to MAGN sensor
iio: imu: fxos8700: fix swapped ACCEL and MAGN channels readback
iio: imu: fxos8700: fix incorrect ODR mode readback
iio: imu: fxos8700: fix failed initialization ODR mode assignment
iio: imu: fxos8700: remove definition FXOS8700_CTRL_ODR_MIN
iio: imu: fxos8700: fix MAGN sensor scale and unit

Chao Yu (1):
f2fs: fix to do sanity check on i_extra_isize in is_alive()

Chris Healy (1):
net: phy: meson-gxl: Add generic dummy stubs for MMD register access

Christian Hopps (1):
xfrm: fix bug with DSCP copy to v6 from v4 tunnel

Christophe Kerello (1):
nvmem: core: Fix a conflict between MTD and NVMEM on wp-gpios property

Damien Le Moal (1):
ata: libata: Fix sata_down_spd_limit() when no link speed is reported

Dan Carpenter (1):
ALSA: pci: lx6464es: fix a debug loop

David Chen (1):
Fix page corruption caused by racy check in __free_pages

Dean Luick (1):
IB/hfi1: Restore allocated resources on failed copyout

Devid Antonio Filoni (1):
can: j1939: do not wait 250 ms if the same addr was already claimed

Dmitry Perchanov (1):
iio: hid: fix the retval in accel_3d_capture_sample

Dongliang Mu (1):
fbdev: smscufx: fix error handling code in ufx_usb_probe

Dragos Tatulea (2):
IB/IPoIB: Fix legacy IPoIB due to wrong number of queues net/mlx5e: IPoIB, Show unknown speed instead of error

Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Add Positivo N14KP6-TG

Eduard Zingerman (1):
bpf: Fix to preserve reg parent/live fields when copying range info

Eric Auger (1):
vhost/net: Clear the pending messages when the backend is removed

Eric Dumazet (1):
xfrm/compat: prevent potential spectre v1 gadget in xfrm_xlate32_attr()

Fedor Pchelkin (2):
squashfs: harden sanity check in squashfs_read_xattr_id_table
net: openvswitch: fix flow memory leak in ovs_flow_cmd_new

Florian Westphal (1):
netfilter: br_netfilter: disable sabotage_in hook after first suppression

George Kennedy (1):
vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF

Greg Kroah-Hartman (1):

      Linux 5.10.168

Guillaume Pinot (1):
ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro 360

Guo Ren (1):
riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte

Hangbin Liu (1):
selftests: forwarding: lib: quote the sysctl values

Hans Verkuil (1):
drm/vc4: hdmi: make CEC adapter name unique

Heiner Kallweit (4):
net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive

Helge Deller (2):
parisc: Fix return code of pdc_iodc_print()
parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case

Herton R. Krzesinski (1):
uapi: add missing ip/ipv6 header dependencies for linux/stddef.h

Hyunwoo Kim (2):
netrom: Fix use-after-free caused by accept on already connected socket net/x25: Fix to not accept on connected socket

Ilpo Järvinen (2):
serial: 8250_dma: Fix DMA Rx completion race
serial: 8250_dma: Fix DMA Rx rearm race

Jakub Sitnicki (1):
bpf, sockmap: Check for any of tcp_bpf_prots when cloning a listener

Joel Stanley (1):
pinctrl: aspeed: Fix confusing types in return value

Joerg Roedel (1):
x86/debug: Fix stack recursion caused by wrongly ordered DR7 accesses

Johan Hovold (1):
nvmem: qcom-spmi-sdam: fix module autoloading

Josef Bacik (1):
btrfs: limit device extents to the device size

Koba Ko (1):

      platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table

Longlong Xia (1):
mm/swapfile: add cond_resched() in get_swap_pages()

Magnus Karlsson (2):
virtio-net: execute xdp_do_flush() before napi_complete_done()
qede: execute xdp_do_flush() before napi_complete_done()

Mark Brown (1):
of/address: Return an error when no valid dma-ranges are found

Mark Pearson (1):
usb: core: add quirk for Alcor Link AK9563 smartcard reader

Martin K. Petersen (1):
scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT"

Martin KaFai Lau (2):
bpf: Support <8-byte scalar spill and refill
bpf: Do not reject when the stack read size is different from the tracked scalar size

Maurizio Lombardi (1):
scsi: target: core: Fix warning on RT kernels

Maxim Korotkov (1):
pinctrl: single: fix potential NULL dereference

Miaohe Lin (1):
mm/migration: return errno when isolate_huge_page failed

Michael Ellerman (1):
powerpc/imc-pmu: Revert nest_init_lock to being a mutex

Michael Walle (1):
nvmem: core: fix cell removal on error

Mike Christie (1):
scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress

Mike Kravetz (2):
mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
migrate: hugetlb: check for hugetlb shared PMD in node migration

Minsuk Kang (1):
wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads

Natalia Petrova (1):
net: qrtr: free memory on error path in radix_tree_insert()

Neel Patel (1):
ionic: clean interrupt before enabling queue to avoid credit race

Neil Armstrong (1):
usb: dwc3: qcom: enable vbus override when in OTG dr-mode

Olivier Moysan (1):
iio: adc: stm32-dfsdm: fill module aliases

Parav Pandit (1):
virtio-net: Keep stop() to follow mirror sequence of open()

Paul Chaignon (1):
bpf: Fix incorrect state pruning for <8B spill/fill

Phillip Lougher (1):
Squashfs: fix handling and sanity checking of xattr_ids count

Pierluigi Passaro (1):
arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX

Pietro Borrello (1):
rds: rds_rm_zerocopy_callback() use list_first_entry()

Prashant Malani (1):
usb: typec: altmodes/displayport: Fix probe pin assign check

Qi Zheng (1):
bonding: fix error checking in bond_debug_reregister()

Randy Dunlap (1):
i2c: rk3x: fix a bunch of kernel-doc warnings

Rob Clark (1):
drm/i915: Fix potential bit_17 double-free

Russell King (Oracle) (1):

      nvmem: core: initialise nvmem->id early

Samuel Thibault (1):
fbcon: Check font dimension limits

Serge Semin (1):
spi: dw: Fix wrong FIFO level setting for long xfers

Shay Drory (2):
net/mlx5: fw_tracer, Clear load bit when freeing string DBs buffers net/mlx5: fw_tracer, Zero consumer index when reloading the tracer

Shiju Jose (1):
tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw

Stefan Wahren (1):
i2c: mxs: suppress probe-deferral error message

Takashi Sakamoto (1):
firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region

Tom Rix (1):
igc: return an error if the mac type is unknown in igc_ptp_systim_to_hwtstamp()

Udipto Goswami (1):
usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait

Victor Shyba (1):
ALSA: hda/realtek: Add Acer Predator PH315-54

Vladimir Oltean (1):
net: mscc: ocelot: fix VCAP filters not matching on MAC with "protocol 802.1Q"

Werner Sembach (4):
Input: i8042 - move __initconst to fix code styling warning
Input: i8042 - merge quirk tables
Input: i8042 - add TUXEDO devices to i8042 quirk tables
Input: i8042 - add Clevo PCX0DX to i8042 quirk table

Wesley Cheng (1):
usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API

Xiongfeng Wang (1):
iio: adc: berlin2-adc: Add missing of_node_put() in error path

Xiubo Li (1):
ceph: flush cap releases when the session is flushed

Yang Yingliang (1):
RDMA/usnic: use iommu_map_atomic() under spin_lock()

Yonghong Song (1):
bpf: Fix a possible task gone issue with bpf_send_signal[_thread]() helpers

Yuan Can (1):
bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()

ZhaoLong Wang (1):

      cifs: Fix use-after-free in rdata->read_into_pages()

Zheng Yongjun (1):
fpga: stratix10-soc: Fix return value check in s10_ops_write_init()

Ziyang Xuan (1):
can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate

Íñigo Huguet (1):
sfc: correctly advertise tunneled IPv6 segmentation

author maintainer
#1 lore raw
Makefile +1 -1
index 84b78e657357..af3270277fd0 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 167
+SUBLEVEL = 168
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/arm64/boot/dts/amlogic/meson-axg.dtsi +2 -2
index fae48efae83e..5c75fbf0d470 100644
@@ -1754,7 +1754,7 @@ apb: bus@ffe00000 {
 			sd_emmc_b: sd@5000 {
 				compatible = "amlogic,meson-axg-mmc";
 				reg = <0x0 0x5000 0x0 0x800>;
-				interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 				clocks = <&clkc CLKID_SD_EMMC_B>,
 					<&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -1766,7 +1766,7 @@ sd_emmc_b: sd@5000 {
 			sd_emmc_c: mmc@7000 {
 				compatible = "amlogic,meson-axg-mmc";
 				reg = <0x0 0x7000 0x0 0x800>;
-				interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 				clocks = <&clkc CLKID_SD_EMMC_C>,
 					<&clkc CLKID_SD_EMMC_C_CLK0>,
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +3 -3
index 075153a4d49f..2091db7c9b8a 100644
@@ -2317,7 +2317,7 @@ uart_A: serial@24000 {
 		sd_emmc_a: sd@ffe03000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe03000 0x0 0x800>;
-			interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_A>,
 				 <&clkc CLKID_SD_EMMC_A_CLK0>,
@@ -2329,7 +2329,7 @@ sd_emmc_a: sd@ffe03000 {
 		sd_emmc_b: sd@ffe05000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe05000 0x0 0x800>;
-			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_B>,
 				 <&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -2341,7 +2341,7 @@ sd_emmc_b: sd@ffe05000 {
 		sd_emmc_c: mmc@ffe07000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe07000 0x0 0x800>;
-			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_C>,
 				 <&clkc CLKID_SD_EMMC_C_CLK0>,
arch/arm64/boot/dts/amlogic/meson-gx.dtsi +3 -3
index 47cbb0a1eb18..88a7db5c55a0 100644
@@ -595,21 +595,21 @@ apb: apb@d0000000 {
 			sd_emmc_a: mmc@70000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x70000 0x0 0x800>;
-				interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 
 			sd_emmc_b: mmc@72000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x72000 0x0 0x800>;
-				interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 
 			sd_emmc_c: mmc@74000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x74000 0x0 0x800>;
-				interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 		};
arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h +1 -1
index a003e6af3353..56271abfb7e0 100644
@@ -601,7 +601,7 @@
 #define MX8MM_IOMUXC_UART1_RXD_GPIO5_IO22                                   0x234 0x49C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_UART1_RXD_TPSMP_HDATA24                                0x234 0x49C 0x000 0x7 0x0
 #define MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX                                 0x238 0x4A0 0x000 0x0 0x0
-#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX                                 0x238 0x4A0 0x4F4 0x0 0x0
+#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX                                 0x238 0x4A0 0x4F4 0x0 0x1
 #define MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI                                  0x238 0x4A0 0x000 0x1 0x0
 #define MX8MM_IOMUXC_UART1_TXD_GPIO5_IO23                                   0x238 0x4A0 0x000 0x5 0x0
 #define MX8MM_IOMUXC_UART1_TXD_TPSMP_HDATA25                                0x238 0x4A0 0x000 0x7 0x0
arch/parisc/kernel/firmware.c +3 -2
index 665b70086685..7ed28ddcaba7 100644
@@ -1230,7 +1230,7 @@ static char __attribute__((aligned(64))) iodc_dbuf[4096];
  */
 int pdc_iodc_print(const unsigned char *str, unsigned count)
 {
-	unsigned int i;
+	unsigned int i, found = 0;
 	unsigned long flags;
 
 	for (i = 0; i < count;) {
@@ -1239,6 +1239,7 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
 			iodc_dbuf[i+0] = '\r';
 			iodc_dbuf[i+1] = '\n';
 			i += 2;
+			found = 1;
 			goto print;
 		default:
 			iodc_dbuf[i] = str[i];
@@ -1255,7 +1256,7 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
                     __pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);
         spin_unlock_irqrestore(&pdc_lock, flags);
 
-	return i;
+	return i - found;
 }
 
 #if !defined(BOOTLOADER)
arch/parisc/kernel/ptrace.c +13 -2
index 2127974982df..df9b9f0591bf 100644
@@ -127,6 +127,12 @@ long arch_ptrace(struct task_struct *child, long request,
 	unsigned long tmp;
 	long ret = -EIO;
 
+	unsigned long user_regs_struct_size = sizeof(struct user_regs_struct);
+#ifdef CONFIG_64BIT
+	if (is_compat_task())
+		user_regs_struct_size /= 2;
+#endif
+
 	switch (request) {
 
 	/* Read the word at location addr in the USER area.  For ptraced
@@ -182,14 +188,14 @@ long arch_ptrace(struct task_struct *child, long request,
 		return copy_regset_to_user(child,
 					   task_user_regset_view(current),
 					   REGSET_GENERAL,
-					   0, sizeof(struct user_regs_struct),
+					   0, user_regs_struct_size,
 					   datap);
 
 	case PTRACE_SETREGS:	/* Set all gp regs in the child. */
 		return copy_regset_from_user(child,
 					     task_user_regset_view(current),
 					     REGSET_GENERAL,
-					     0, sizeof(struct user_regs_struct),
+					     0, user_regs_struct_size,
 					     datap);
 
 	case PTRACE_GETFPREGS:	/* Get the child FPU state. */
@@ -303,6 +309,11 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
 			}
 		}
 		break;
+	case PTRACE_GETREGS:
+	case PTRACE_SETREGS:
+	case PTRACE_GETFPREGS:
+	case PTRACE_SETFPREGS:
+		return arch_ptrace(child, request, addr, data);
 
 	default:
 		ret = compat_ptrace_request(child, request, addr, data);
arch/powerpc/perf/imc-pmu.c +7 -7
index e42c2fe3dd36..b773c411aa5c 100644
@@ -21,7 +21,7 @@
  * Used to avoid races in counting the nest-pmu units during hotplug
  * register and unregister
  */
-static DEFINE_SPINLOCK(nest_init_lock);
+static DEFINE_MUTEX(nest_init_lock);
 static DEFINE_PER_CPU(struct imc_pmu_ref *, local_nest_imc_refc);
 static struct imc_pmu **per_nest_pmu_arr;
 static cpumask_t nest_imc_cpumask;
@@ -1621,7 +1621,7 @@ static void imc_common_mem_free(struct imc_pmu *pmu_ptr)
 static void imc_common_cpuhp_mem_free(struct imc_pmu *pmu_ptr)
 {
 	if (pmu_ptr->domain == IMC_DOMAIN_NEST) {
-		spin_lock(&nest_init_lock);
+		mutex_lock(&nest_init_lock);
 		if (nest_pmus == 1) {
 			cpuhp_remove_state(CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE);
 			kfree(nest_imc_refc);
@@ -1631,7 +1631,7 @@ static void imc_common_cpuhp_mem_free(struct imc_pmu *pmu_ptr)
 
 		if (nest_pmus > 0)
 			nest_pmus--;
-		spin_unlock(&nest_init_lock);
+		mutex_unlock(&nest_init_lock);
 	}
 
 	/* Free core_imc memory */
@@ -1788,11 +1788,11 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id
 		* rest. To handle the cpuhotplug callback unregister, we track
 		* the number of nest pmus in "nest_pmus".
 		*/
-		spin_lock(&nest_init_lock);
+		mutex_lock(&nest_init_lock);
 		if (nest_pmus == 0) {
 			ret = init_nest_pmu_ref();
 			if (ret) {
-				spin_unlock(&nest_init_lock);
+				mutex_unlock(&nest_init_lock);
 				kfree(per_nest_pmu_arr);
 				per_nest_pmu_arr = NULL;
 				goto err_free_mem;
@@ -1800,7 +1800,7 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id
 			/* Register for cpu hotplug notification. */
 			ret = nest_pmu_cpumask_init();
 			if (ret) {
-				spin_unlock(&nest_init_lock);
+				mutex_unlock(&nest_init_lock);
 				kfree(nest_imc_refc);
 				kfree(per_nest_pmu_arr);
 				per_nest_pmu_arr = NULL;
@@ -1808,7 +1808,7 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id
 			}
 		}
 		nest_pmus++;
-		spin_unlock(&nest_init_lock);
+		mutex_unlock(&nest_init_lock);
 		break;
 	case IMC_DOMAIN_CORE:
 		ret = core_imc_pmu_cpumask_init();
arch/riscv/Makefile +3 -0
index 1bb1bf1141cc..9446282b52ba 100644
@@ -74,6 +74,9 @@ ifeq ($(CONFIG_PERF_EVENTS),y)
         KBUILD_CFLAGS += -fno-omit-frame-pointer
 endif
 
+# Avoid generating .eh_frame sections.
+KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
+
 KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
 KBUILD_AFLAGS_MODULE += $(call as-option,-Wa$(comma)-mno-relax)
 
arch/riscv/mm/cacheflush.c +3 -1
index 89f81067e09e..2ae1201cff88 100644
@@ -85,7 +85,9 @@ void flush_icache_pte(pte_t pte)
 {
 	struct page *page = pte_page(pte);
 
-	if (!test_and_set_bit(PG_dcache_clean, &page->flags))
+	if (!test_bit(PG_dcache_clean, &page->flags)) {
 		flush_icache_all();
+		set_bit(PG_dcache_clean, &page->flags);
+	}
 }
 #endif /* CONFIG_MMU */
arch/x86/include/asm/debugreg.h +24 -2
index cfdf307ddc01..9ed8343c9b3c 100644
@@ -39,7 +39,20 @@ static __always_inline unsigned long native_get_debugreg(int regno)
 		asm("mov %%db6, %0" :"=r" (val));
 		break;
 	case 7:
-		asm("mov %%db7, %0" :"=r" (val));
+		/*
+		 * Apply __FORCE_ORDER to DR7 reads to forbid re-ordering them
+		 * with other code.
+		 *
+		 * This is needed because a DR7 access can cause a #VC exception
+		 * when running under SEV-ES. Taking a #VC exception is not a
+		 * safe thing to do just anywhere in the entry code and
+		 * re-ordering might place the access into an unsafe location.
+		 *
+		 * This happened in the NMI handler, where the DR7 read was
+		 * re-ordered to happen before the call to sev_es_ist_enter(),
+		 * causing stack recursion.
+		 */
+		asm volatile("mov %%db7, %0" : "=r" (val) : __FORCE_ORDER);
 		break;
 	default:
 		BUG();
@@ -66,7 +79,16 @@ static __always_inline void native_set_debugreg(int regno, unsigned long value)
 		asm("mov %0, %%db6"	::"r" (value));
 		break;
 	case 7:
-		asm("mov %0, %%db7"	::"r" (value));
+		/*
+		 * Apply __FORCE_ORDER to DR7 writes to forbid re-ordering them
+		 * with other code.
+		 *
+		 * While is didn't happen with a DR7 write (see the DR7 read
+		 * comment above which explains where it happened), add the
+		 * __FORCE_ORDER here too to avoid similar problems in the
+		 * future.
+		 */
+		asm volatile("mov %0, %%db7"	::"r" (value), __FORCE_ORDER);
 		break;
 	default:
 		BUG();
drivers/ata/libata-core.c +1 -1
index d13474c6d181..14150767be44 100644
@@ -3051,7 +3051,7 @@ int sata_down_spd_limit(struct ata_link *link, u32 spd_limit)
 	 */
 	if (spd > 1)
 		mask &= (1 << (spd - 1)) - 1;
-	else
+	else if (link->sata_spd)
 		return -EINVAL;
 
 	/* were we already at the bottom? */
drivers/bus/sunxi-rsb.c +7 -1
index f8c29b888e6b..98cbb18f17fa 100644
@@ -781,7 +781,13 @@ static int __init sunxi_rsb_init(void)
 		return ret;
 	}
 
-	return platform_driver_register(&sunxi_rsb_driver);
+	ret = platform_driver_register(&sunxi_rsb_driver);
+	if (ret) {
+		bus_unregister(&sunxi_rsb_bus);
+		return ret;
+	}
+
+	return 0;
 }
 module_init(sunxi_rsb_init);
 
drivers/firewire/core-cdev.c +3 -1
index b0cc3f1e9bb0..16ea847ade5f 100644
@@ -818,8 +818,10 @@ static int ioctl_send_response(struct client *client, union ioctl_arg *arg)
 
 	r = container_of(resource, struct inbound_transaction_resource,
 			 resource);
-	if (is_fcp_request(r->request))
+	if (is_fcp_request(r->request)) {
+		kfree(r->data);
 		goto out;
+	}
 
 	if (a->length != fw_get_response_length(r->request)) {
 		ret = -EINVAL;
drivers/firmware/efi/efi.c +2 -0
index a2765d668856..332739f3eded 100644
@@ -950,6 +950,8 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size)
 	/* first try to find a slot in an existing linked list entry */
 	for (prsv = efi_memreserve_root->next; prsv; ) {
 		rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB);
+		if (!rsv)
+			return -ENOMEM;
 		index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size);
 		if (index < rsv->size) {
 			rsv->entry[index].base = addr;
drivers/firmware/efi/memattr.c +1 -1
index 0a9aba5f9cef..f178b2984dfb 100644
@@ -33,7 +33,7 @@ int __init efi_memattr_init(void)
 		return -ENOMEM;
 	}
 
-	if (tbl->version > 1) {
+	if (tbl->version > 2) {
 		pr_warn("Unexpected EFI Memory Attributes table version %d\n",
 			tbl->version);
 		goto unmap;
drivers/fpga/stratix10-soc.c +2 -2
index 9e34bbbce26e..7a8269b52723 100644
@@ -213,9 +213,9 @@ static int s10_ops_write_init(struct fpga_manager *mgr,
 	/* Allocate buffers from the service layer's pool. */
 	for (i = 0; i < NUM_SVC_BUFS; i++) {
 		kbuf = stratix10_svc_allocate_memory(priv->chan, SVC_BUF_SIZE);
-		if (!kbuf) {
+		if (IS_ERR(kbuf)) {
 			s10_free_buffers(mgr);
-			ret = -ENOMEM;
+			ret = PTR_ERR(kbuf);
 			goto init_done;
 		}
 
drivers/fsi/fsi-sbefifo.c +3 -3
index 84cb965bfed5..97045a8d9422 100644
@@ -640,7 +640,7 @@ static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo)
 	}
         ffdc_iov.iov_base = ffdc;
 	ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE;
-        iov_iter_kvec(&ffdc_iter, WRITE, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
+        iov_iter_kvec(&ffdc_iter, READ, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
 	cmd[0] = cpu_to_be32(2);
 	cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC);
 	rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter);
@@ -737,7 +737,7 @@ int sbefifo_submit(struct device *dev, const __be32 *command, size_t cmd_len,
 	rbytes = (*resp_len) * sizeof(__be32);
 	resp_iov.iov_base = response;
 	resp_iov.iov_len = rbytes;
-        iov_iter_kvec(&resp_iter, WRITE, &resp_iov, 1, rbytes);
+        iov_iter_kvec(&resp_iter, READ, &resp_iov, 1, rbytes);
 
 	/* Perform the command */
 	mutex_lock(&sbefifo->lock);
@@ -817,7 +817,7 @@ static ssize_t sbefifo_user_read(struct file *file, char __user *buf,
 	/* Prepare iov iterator */
 	resp_iov.iov_base = buf;
 	resp_iov.iov_len = len;
-	iov_iter_init(&resp_iter, WRITE, &resp_iov, 1, len);
+	iov_iter_init(&resp_iter, READ, &resp_iov, 1, len);
 
 	/* Perform the command */
 	mutex_lock(&sbefifo->lock);
drivers/gpu/drm/i915/gem/i915_gem_tiling.c +5 -4
index ffcaee74a249..545fa703d975 100644
@@ -296,10 +296,6 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj,
 	spin_unlock(&obj->vma.lock);
 
 	obj->tiling_and_stride = tiling | stride;
-	i915_gem_object_unlock(obj);
-
-	/* Force the fence to be reacquired for GTT access */
-	i915_gem_object_release_mmap_gtt(obj);
 
 	/* Try to preallocate memory required to save swizzling on put-pages */
 	if (i915_gem_object_needs_bit17_swizzle(obj)) {
@@ -312,6 +308,11 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj,
 		obj->bit_17 = NULL;
 	}
 
+	i915_gem_object_unlock(obj);
+
+	/* Force the fence to be reacquired for GTT access */
+	i915_gem_object_release_mmap_gtt(obj);
+
 	return 0;
 }
 
drivers/gpu/drm/vc4/vc4_hdmi.c +2 -1
index 08175c3dd374..539ebf85fd7c 100644
@@ -1491,7 +1491,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi)
 		return 0;
 
 	vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
-						  vc4_hdmi, "vc4",
+						  vc4_hdmi,
+						  vc4_hdmi->variant->card_name,
 						  CEC_CAP_DEFAULTS |
 						  CEC_CAP_CONNECTOR_INFO, 1);
 	ret = PTR_ERR_OR_ZERO(vc4_hdmi->cec_adap);
drivers/i2c/busses/i2c-mxs.c +2 -2
index c4b08a924461..abad24808e85 100644
@@ -842,8 +842,8 @@ static int mxs_i2c_probe(struct platform_device *pdev)
 	/* Setup the DMA */
 	i2c->dmach = dma_request_chan(dev, "rx-tx");
 	if (IS_ERR(i2c->dmach)) {
-		dev_err(dev, "Failed to request dma\n");
-		return PTR_ERR(i2c->dmach);
+		return dev_err_probe(dev, PTR_ERR(i2c->dmach),
+				     "Failed to request dma\n");
 	}
 
 	platform_set_drvdata(pdev, i2c);
drivers/i2c/busses/i2c-rk3x.c +22 -22

123 lines not on this page · raw message

drivers/iio/accel/hid-sensor-accel-3d.c +1 -0
index f05840d17fb7..8d929a4f9110 100644
@@ -277,6 +277,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev,
 			hid_sensor_convert_timestamp(
 					&accel_state->common_attributes,
 					*(int64_t *)raw_data);
+		ret = 0;
 	break;
 	default:
 		break;
drivers/iio/adc/berlin2-adc.c +3 -1
index 8b04b95b7b7a..fa2c87946e16 100644
@@ -289,8 +289,10 @@ static int berlin2_adc_probe(struct platform_device *pdev)
 	int ret;
 
 	indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv));
-	if (!indio_dev)
+	if (!indio_dev) {
+		of_node_put(parent_np);
 		return -ENOMEM;
+	}
 
 	priv = iio_priv(indio_dev);
 	platform_set_drvdata(pdev, indio_dev);
drivers/iio/adc/stm32-dfsdm-adc.c +1 -0
index 9234f14167b7..171d73efb2f8 100644
@@ -1521,6 +1521,7 @@ static const struct of_device_id stm32_dfsdm_adc_match[] = {
 	},
 	{}
 };
+MODULE_DEVICE_TABLE(of, stm32_dfsdm_adc_match);
 
 static int stm32_dfsdm_adc_probe(struct platform_device *pdev)
 {
drivers/iio/adc/twl6030-gpadc.c +32 -0
index 256177b15c51..024bdc1ef77e 100644
@@ -57,6 +57,18 @@
 #define TWL6030_GPADCS				BIT(1)
 #define TWL6030_GPADCR				BIT(0)
 
+#define USB_VBUS_CTRL_SET			0x04
+#define USB_ID_CTRL_SET				0x06
+
+#define TWL6030_MISC1				0xE4
+#define VBUS_MEAS				0x01
+#define ID_MEAS					0x01
+
+#define VAC_MEAS                0x04
+#define VBAT_MEAS               0x02
+#define BB_MEAS                 0x01
+
+
 /**
  * struct twl6030_chnl_calib - channel calibration
  * @gain:		slope coefficient for ideal curve
@@ -927,6 +939,26 @@ static int twl6030_gpadc_probe(struct platform_device *pdev)
 		return ret;
 	}
 
+	ret = twl_i2c_write_u8(TWL_MODULE_USB, VBUS_MEAS, USB_VBUS_CTRL_SET);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
+	ret = twl_i2c_write_u8(TWL_MODULE_USB, ID_MEAS, USB_ID_CTRL_SET);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
+	ret = twl_i2c_write_u8(TWL6030_MODULE_ID0,
+				VBAT_MEAS | BB_MEAS | VAC_MEAS,
+				TWL6030_MISC1);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
 	indio_dev->name = DRIVER_NAME;
 	indio_dev->info = &twl6030_gpadc_iio_info;
 	indio_dev->modes = INDIO_DIRECT_MODE;
drivers/iio/imu/fxos8700_core.c +89 -22

201 lines not on this page · raw message

drivers/infiniband/hw/hfi1/file_ops.c +5 -2
index d84b1098762c..7828fb593120 100644
@@ -1359,12 +1359,15 @@ static int user_exp_rcv_setup(struct hfi1_filedata *fd, unsigned long arg,
 		addr = arg + offsetof(struct hfi1_tid_info, tidcnt);
 		if (copy_to_user((void __user *)addr, &tinfo.tidcnt,
 				 sizeof(tinfo.tidcnt)))
-			return -EFAULT;
+			ret = -EFAULT;
 
 		addr = arg + offsetof(struct hfi1_tid_info, length);
-		if (copy_to_user((void __user *)addr, &tinfo.length,
+		if (!ret && copy_to_user((void __user *)addr, &tinfo.length,
 				 sizeof(tinfo.length)))
 			ret = -EFAULT;
+
+		if (ret)
+			hfi1_user_exp_rcv_invalid(fd, &tinfo);
 	}
 
 	return ret;
drivers/infiniband/hw/usnic/usnic_uiom.c +4 -4
index 760b254ba42d..48a57568cad6 100644
@@ -281,8 +281,8 @@ static int usnic_uiom_map_sorted_intervals(struct list_head *intervals,
 				size = pa_end - pa_start + PAGE_SIZE;
 				usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x",
 					va_start, &pa_start, size, flags);
-				err = iommu_map(pd->domain, va_start, pa_start,
-							size, flags);
+				err = iommu_map_atomic(pd->domain, va_start,
+						       pa_start, size, flags);
 				if (err) {
 					usnic_err("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n",
 						va_start, &pa_start, size, err);
@@ -298,8 +298,8 @@ static int usnic_uiom_map_sorted_intervals(struct list_head *intervals,
 				size = pa - pa_start + PAGE_SIZE;
 				usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x\n",
 					va_start, &pa_start, size, flags);
-				err = iommu_map(pd->domain, va_start, pa_start,
-						size, flags);
+				err = iommu_map_atomic(pd->domain, va_start,
+						       pa_start, size, flags);
 				if (err) {
 					usnic_err("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n",
 						va_start, &pa_start, size, err);
drivers/infiniband/ulp/ipoib/ipoib_main.c +8 -0
index abfab89423f4..35322d23fc34 100644
@@ -2188,6 +2188,14 @@ int ipoib_intf_init(struct ib_device *hca, u8 port, const char *name,
 		rn->attach_mcast = ipoib_mcast_attach;
 		rn->detach_mcast = ipoib_mcast_detach;
 		rn->hca = hca;
+
+		rc = netif_set_real_num_tx_queues(dev, 1);
+		if (rc)
+			goto out;
+
+		rc = netif_set_real_num_rx_queues(dev, 1);
+		if (rc)
+			goto out;
 	}
 
 	priv->rn_ops = dev->netdev_ops;
drivers/infiniband/ulp/rtrs/rtrs-clt.c +1 -1
index 5c39e4c4bef7..1a5805260778 100644
@@ -902,7 +902,7 @@ static void rtrs_clt_init_req(struct rtrs_clt_io_req *req,
 	req->need_inv_comp = false;
 	req->inv_errno = 0;
 
-	iov_iter_kvec(&iter, READ, vec, 1, usr_len);
+	iov_iter_kvec(&iter, WRITE, vec, 1, usr_len);
 	len = _copy_from_iter(req->iu->buf, usr_len, &iter);
 	WARN_ON(len != usr_len);
 
drivers/input/serio/i8042-x86ia64io.h +707 -481

1,715 lines not on this page · raw message

drivers/net/bonding/bond_debugfs.c +1 -1
index f3f86ef68ae0..8b6cf2bf9025 100644
@@ -76,7 +76,7 @@ void bond_debug_reregister(struct bonding *bond)
 
 	d = debugfs_rename(bonding_debug_root, bond->debug_dir,
 			   bonding_debug_root, bond->dev->name);
-	if (d) {
+	if (!IS_ERR(d)) {
 		bond->debug_dir = d;
 	} else {
 		netdev_warn(bond->dev, "failed to reregister, so just unregister old one\n");
drivers/net/ethernet/intel/ice/ice_main.c +1 -1
index f193709c8efc..c1465096239b 100644
@@ -4853,7 +4853,7 @@ static int __init ice_module_init(void)
 	pr_info("%s\n", ice_driver_string);
 	pr_info("%s\n", ice_copyright);
 
-	ice_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, KBUILD_MODNAME);
+	ice_wq = alloc_workqueue("%s", 0, 0, KBUILD_MODNAME);
 	if (!ice_wq) {
 		pr_err("Failed to create workqueue\n");
 		return -ENOMEM;
drivers/net/ethernet/intel/igc/igc_ptp.c +9 -5
index 4ab46eee3d93..ef53f7665b58 100644
@@ -134,10 +134,12 @@ static int igc_ptp_feature_enable_i225(struct ptp_clock_info *ptp,
  *
  * We need to convert the system time value stored in the RX/TXSTMP registers
  * into a hwtstamp which can be used by the upper level timestamping functions.
+ *
+ * Returns 0 on success.
  **/
-static void igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter,
-				       struct skb_shared_hwtstamps *hwtstamps,
-				       u64 systim)
+static int igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter,
+				      struct skb_shared_hwtstamps *hwtstamps,
+				      u64 systim)
 {
 	switch (adapter->hw.mac.type) {
 	case igc_i225:
@@ -147,8 +149,9 @@ static void igc_ptp_systim_to_hwtstamp(struct igc_adapter *adapter,
 						systim & 0xFFFFFFFF);
 		break;
 	default:
-		break;
+		return -EINVAL;
 	}
+	return 0;
 }
 
 /**
@@ -372,7 +375,8 @@ static void igc_ptp_tx_hwtstamp(struct igc_adapter *adapter)
 
 	regval = rd32(IGC_TXSTMPL);
 	regval |= (u64)rd32(IGC_TXSTMPH) << 32;
-	igc_ptp_systim_to_hwtstamp(adapter, &shhwtstamps, regval);
+	if (igc_ptp_systim_to_hwtstamp(adapter, &shhwtstamps, regval))
+		return;
 
 	switch (adapter->link_speed) {
 	case SPEED_10:
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +2 -1
index f800e1ca5ba6..40d7bfca3749 100644
@@ -64,6 +64,7 @@ static int mlx5_query_mtrc_caps(struct mlx5_fw_tracer *tracer)
 			MLX5_GET(mtrc_cap, out, num_string_trace);
 	tracer->str_db.num_string_db = MLX5_GET(mtrc_cap, out, num_string_db);
 	tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner);
+	tracer->str_db.loaded = false;
 
 	for (i = 0; i < tracer->str_db.num_string_db; i++) {
 		mtrc_cap_sp = MLX5_ADDR_OF(mtrc_cap, out, string_db_param[i]);
@@ -756,6 +757,7 @@ static int mlx5_fw_tracer_set_mtrc_conf(struct mlx5_fw_tracer *tracer)
 	if (err)
 		mlx5_core_warn(dev, "FWTracer: Failed to set tracer configurations %d\n", err);
 
+	tracer->buff.consumer_index = 0;
 	return err;
 }
 
@@ -820,7 +822,6 @@ static void mlx5_fw_tracer_ownership_change(struct work_struct *work)
 	mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner);
 	if (tracer->owner) {
 		tracer->owner = false;
-		tracer->buff.consumer_index = 0;
 		return;
 	}
 
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c +5 -8
index cac8f085b16d..2cf7f0fc170b 100644
@@ -166,16 +166,16 @@ static inline int mlx5_ptys_rate_enum_to_int(enum mlx5_ptys_rate rate)
 	}
 }
 
-static int mlx5i_get_speed_settings(u16 ib_link_width_oper, u16 ib_proto_oper)
+static u32 mlx5i_get_speed_settings(u16 ib_link_width_oper, u16 ib_proto_oper)
 {
 	int rate, width;
 
 	rate = mlx5_ptys_rate_enum_to_int(ib_proto_oper);
 	if (rate < 0)
-		return -EINVAL;
+		return SPEED_UNKNOWN;
 	width = mlx5_ptys_width_enum_to_int(ib_link_width_oper);
 	if (width < 0)
-		return -EINVAL;
+		return SPEED_UNKNOWN;
 
 	return rate * width;
 }
@@ -198,16 +198,13 @@ static int mlx5i_get_link_ksettings(struct net_device *netdev,
 	ethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);
 
 	speed = mlx5i_get_speed_settings(ib_link_width_oper, ib_proto_oper);
-	if (speed < 0)
-		return -EINVAL;
+	link_ksettings->base.speed = speed;
+	link_ksettings->base.duplex = speed == SPEED_UNKNOWN ? DUPLEX_UNKNOWN : DUPLEX_FULL;
 
-	link_ksettings->base.duplex = DUPLEX_FULL;
 	link_ksettings->base.port = PORT_OTHER;
 
 	link_ksettings->base.autoneg = AUTONEG_DISABLE;
 
-	link_ksettings->base.speed = speed;
-
 	return 0;
 }
 
drivers/net/ethernet/mscc/ocelot_flower.c +12 -12
index b221b83ec5a6..e56e540ce05c 100644
@@ -468,6 +468,18 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
 		flow_rule_match_control(rule, &match);
 	}
 
+	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) {
+		struct flow_match_vlan match;
+
+		flow_rule_match_vlan(rule, &match);
+		filter->key_type = OCELOT_VCAP_KEY_ANY;
+		filter->vlan.vid.value = match.key->vlan_id;
+		filter->vlan.vid.mask = match.mask->vlan_id;
+		filter->vlan.pcp.value[0] = match.key->vlan_priority;
+		filter->vlan.pcp.mask[0] = match.mask->vlan_priority;
+		match_protocol = false;
+	}
+
 	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) {
 		struct flow_match_eth_addrs match;
 
@@ -600,18 +612,6 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
 		match_protocol = false;
 	}
 
-	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) {
-		struct flow_match_vlan match;
-
-		flow_rule_match_vlan(rule, &match);
-		filter->key_type = OCELOT_VCAP_KEY_ANY;
-		filter->vlan.vid.value = match.key->vlan_id;
-		filter->vlan.vid.mask = match.mask->vlan_id;
-		filter->vlan.pcp.value[0] = match.key->vlan_priority;
-		filter->vlan.pcp.mask[0] = match.mask->vlan_priority;
-		match_protocol = false;
-	}
-
 finished_key_parsing:
 	if (match_protocol && proto != ETH_P_ALL) {
 		if (filter->block_id == VCAP_ES0) {
drivers/net/ethernet/pensando/ionic/ionic_lif.c +12 -3
index cb12d0171517..fcd4213c99b8 100644
@@ -257,6 +257,7 @@ static int ionic_qcq_enable(struct ionic_qcq *qcq)
 			.oper = IONIC_Q_ENABLE,
 		},
 	};
+	int ret;
 
 	idev = &lif->ionic->idev;
 	dev = lif->ionic->dev;
@@ -264,16 +265,24 @@ static int ionic_qcq_enable(struct ionic_qcq *qcq)
 	dev_dbg(dev, "q_enable.index %d q_enable.qtype %d\n",
 		ctx.cmd.q_control.index, ctx.cmd.q_control.type);
 
+	if (qcq->flags & IONIC_QCQ_F_INTR)
+		ionic_intr_clean(idev->intr_ctrl, qcq->intr.index);
+
+	ret = ionic_adminq_post_wait(lif, &ctx);
+	if (ret)
+		return ret;
+
+	if (qcq->napi.poll)
+		napi_enable(&qcq->napi);
+
 	if (qcq->flags & IONIC_QCQ_F_INTR) {
 		irq_set_affinity_hint(qcq->intr.vector,
 				      &qcq->intr.affinity_mask);
-		napi_enable(&qcq->napi);
-		ionic_intr_clean(idev->intr_ctrl, qcq->intr.index);
 		ionic_intr_mask(idev->intr_ctrl, qcq->intr.index,
 				IONIC_INTR_MASK_CLEAR);
 	}
 
-	return ionic_adminq_post_wait(lif, &ctx);
+	return 0;
 }
 
 static int ionic_qcq_disable(struct ionic_qcq *qcq, bool send_to_hw)
drivers/net/ethernet/qlogic/qede/qede_fp.c +6 -4
index d210632676d3..a632de208a7d 100644
@@ -1456,7 +1456,12 @@ int qede_poll(struct napi_struct *napi, int budget)
 	rx_work_done = (likely(fp->type & QEDE_FASTPATH_RX) &&
 			qede_has_rx_work(fp->rxq)) ?
 			qede_rx_int(fp, budget) : 0;
-	if (rx_work_done < budget) {
+
+	if (fp->xdp_xmit & QEDE_XDP_REDIRECT)
+		xdp_do_flush();
+
+	/* Handle case where we are called by netpoll with a budget of 0 */
+	if (rx_work_done < budget || !budget) {
 		if (!qede_poll_is_more_work(fp)) {
 			napi_complete_done(napi, rx_work_done);
 
@@ -1474,9 +1479,6 @@ int qede_poll(struct napi_struct *napi, int budget)
 		qede_update_tx_producer(fp->xdp_tx);
 	}
 
-	if (fp->xdp_xmit & QEDE_XDP_REDIRECT)
-		xdp_do_flush_map();
-
 	return rx_work_done;
 }
 
drivers/net/ethernet/sfc/efx.c +4 -1
index 718308076341..29c8d2c99004 100644
@@ -1047,8 +1047,11 @@ static int efx_pci_probe_post_io(struct efx_nic *efx)
 	/* Determine netdevice features */
 	net_dev->features |= (efx->type->offload_features | NETIF_F_SG |
 			      NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_RXALL);
-	if (efx->type->offload_features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM))
+	if (efx->type->offload_features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM)) {
 		net_dev->features |= NETIF_F_TSO6;
+		if (efx_has_cap(efx, TX_TSO_V2_ENCAP))
+			net_dev->hw_enc_features |= NETIF_F_TSO6;
+	}
 	/* Check whether device supports TSO */
 	if (!efx->type->tso_versions || !efx->type->tso_versions(efx))
 		net_dev->features &= ~NETIF_F_ALL_TSO;
drivers/net/phy/dp83822.c +4 -2
index db651649e0b8..81412999445d 100644
@@ -247,7 +247,8 @@ static int dp83822_config_intr(struct phy_device *phydev)
 				DP83822_ENERGY_DET_INT_EN |
 				DP83822_LINK_QUAL_INT_EN);
 
-		if (!dp83822->fx_enabled)
+		/* Private data pointer is NULL on DP83825/26 */
+		if (!dp83822 || !dp83822->fx_enabled)
 			misr_status |= DP83822_ANEG_COMPLETE_INT_EN |
 				       DP83822_DUP_MODE_CHANGE_INT_EN |
 				       DP83822_SPEED_CHANGED_INT_EN;
@@ -267,7 +268,8 @@ static int dp83822_config_intr(struct phy_device *phydev)
 				DP83822_PAGE_RX_INT_EN |
 				DP83822_EEE_ERROR_CHANGE_INT_EN);
 
-		if (!dp83822->fx_enabled)
+		/* Private data pointer is NULL on DP83825/26 */
+		if (!dp83822 || !dp83822->fx_enabled)
 			misr_status |= DP83822_ANEG_ERR_INT_EN |
 				       DP83822_WOL_PKT_INT_EN;
 
drivers/net/phy/meson-gxl.c +4 -0
index e8f2ca625837..39151ec6f65e 100644
@@ -235,6 +235,8 @@ static struct phy_driver meson_gxl_phy[] = {
 		.config_intr	= meson_gxl_config_intr,
 		.suspend        = genphy_suspend,
 		.resume         = genphy_resume,
+		.read_mmd	= genphy_read_mmd_unsupported,
+		.write_mmd	= genphy_write_mmd_unsupported,
 	}, {
 		PHY_ID_MATCH_EXACT(0x01803301),
 		.name		= "Meson G12A Internal PHY",
@@ -245,6 +247,8 @@ static struct phy_driver meson_gxl_phy[] = {
 		.config_intr	= meson_gxl_config_intr,
 		.suspend        = genphy_suspend,
 		.resume         = genphy_resume,
+		.read_mmd	= genphy_read_mmd_unsupported,
+		.write_mmd	= genphy_write_mmd_unsupported,
 	},
 };
 
drivers/net/usb/plusb.c +1 -3
index 17c9c63b8eeb..ce7862dac2b7 100644
@@ -57,9 +57,7 @@
 static inline int
 pl_vendor_req(struct usbnet *dev, u8 req, u8 val, u8 index)
 {
-	return usbnet_read_cmd(dev, req,
-				USB_DIR_IN | USB_TYPE_VENDOR |
-				USB_RECIP_DEVICE,
+	return usbnet_write_cmd(dev, req, USB_TYPE_VENDOR | USB_RECIP_DEVICE,
 				val, index, NULL, 0);
 }
 
drivers/net/virtio_net.c +4 -4
index c942cd6a2c65..d53321116136 100644
@@ -1525,13 +1525,13 @@ static int virtnet_poll(struct napi_struct *napi, int budget)
 
 	received = virtnet_receive(rq, budget, &xdp_xmit);
 
+	if (xdp_xmit & VIRTIO_XDP_REDIR)
+		xdp_do_flush();
+
 	/* Out of packets? */
 	if (received < budget)
 		virtqueue_napi_complete(napi, rq->vq, received);
 
-	if (xdp_xmit & VIRTIO_XDP_REDIR)
-		xdp_do_flush();
-
 	if (xdp_xmit & VIRTIO_XDP_TX) {
 		sq = virtnet_xdp_get_sq(vi);
 		if (virtqueue_kick_prepare(sq->vq) && virtqueue_notify(sq->vq)) {
@@ -1928,8 +1928,8 @@ static int virtnet_close(struct net_device *dev)
 	cancel_delayed_work_sync(&vi->refill);
 
 	for (i = 0; i < vi->max_queue_pairs; i++) {
-		xdp_rxq_info_unreg(&vi->rq[i].xdp_rxq);
 		napi_disable(&vi->rq[i].napi);
+		xdp_rxq_info_unreg(&vi->rq[i].xdp_rxq);
 		virtnet_napi_tx_disable(&vi->sq[i].napi);
 	}
 
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +17 -0
index c2b6e5c966d0..0a069bc7f156 100644
@@ -90,6 +90,9 @@
 #define BRCMF_ASSOC_PARAMS_FIXED_SIZE \
 	(sizeof(struct brcmf_assoc_params_le) - sizeof(u16))
 
+#define BRCMF_MAX_CHANSPEC_LIST \
+	(BRCMF_DCMD_MEDLEN / sizeof(__le32) - 1)
+
 static bool check_vif_up(struct brcmf_cfg80211_vif *vif)
 {
 	if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) {
@@ -6459,6 +6462,13 @@ static int brcmf_construct_chaninfo(struct brcmf_cfg80211_info *cfg,
 			band->channels[i].flags = IEEE80211_CHAN_DISABLED;
 
 	total = le32_to_cpu(list->count);
+	if (total > BRCMF_MAX_CHANSPEC_LIST) {
+		bphy_err(drvr, "Invalid count of channel Spec. (%u)\n",
+			 total);
+		err = -EINVAL;
+		goto fail_pbuf;
+	}
+
 	for (i = 0; i < total; i++) {
 		ch.chspec = (u16)le32_to_cpu(list->element[i]);
 		cfg->d11inf.decchspec(&ch);
@@ -6604,6 +6614,13 @@ static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg)
 		band = cfg_to_wiphy(cfg)->bands[NL80211_BAND_2GHZ];
 		list = (struct brcmf_chanspec_list *)pbuf;
 		num_chan = le32_to_cpu(list->count);
+		if (num_chan > BRCMF_MAX_CHANSPEC_LIST) {
+			bphy_err(drvr, "Invalid count of channel Spec. (%u)\n",
+				 num_chan);
+			kfree(pbuf);
+			return -EINVAL;
+		}
+
 		for (i = 0; i < num_chan; i++) {
 			ch.chspec = (u16)le32_to_cpu(list->element[i]);
 			cfg->d11inf.decchspec(&ch);
drivers/nvmem/core.c +4 -4
index 21d89d80d083..48fbe49e3772 100644
@@ -625,9 +625,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 		return ERR_PTR(rval);
 	}
 
+	nvmem->id = rval;
+
 	if (config->wp_gpio)
 		nvmem->wp_gpio = config->wp_gpio;
-	else
+	else if (!config->ignore_wp)
 		nvmem->wp_gpio = gpiod_get_optional(config->dev, "wp",
 						    GPIOD_OUT_HIGH);
 	if (IS_ERR(nvmem->wp_gpio)) {
@@ -640,7 +642,6 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	kref_init(&nvmem->refcnt);
 	INIT_LIST_HEAD(&nvmem->cells);
 
-	nvmem->id = rval;
 	nvmem->owner = config->owner;
 	if (!nvmem->owner && config->dev->driver)
 		nvmem->owner = config->dev->driver->owner;
@@ -694,7 +695,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	if (config->cells) {
 		rval = nvmem_add_cells(nvmem, config->cells, config->ncells);
 		if (rval)
-			goto err_teardown_compat;
+			goto err_remove_cells;
 	}
 
 	rval = nvmem_add_cells_from_table(nvmem);
@@ -711,7 +712,6 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 
 err_remove_cells:
 	nvmem_device_remove_all_cells(nvmem);
-err_teardown_compat:
 	if (config->compat)
 		nvmem_sysfs_remove_compat(nvmem, config);
 err_device_del:
drivers/nvmem/qcom-spmi-sdam.c +1 -0
index f6e9f96933ca..1549bfcc4c2d 100644
@@ -166,6 +166,7 @@ static const struct of_device_id sdam_match_table[] = {
 	{ .compatible = "qcom,spmi-sdam" },
 	{},
 };
+MODULE_DEVICE_TABLE(of, sdam_match_table);
 
 static struct platform_driver sdam_driver = {
 	.driver = {
drivers/of/address.c +15 -6
index 73ddf2540f3f..f686fb5011b8 100644
@@ -990,8 +990,19 @@ int of_dma_get_range(struct device_node *np, const struct bus_dma_region **map)
 	}
 
 	of_dma_range_parser_init(&parser, node);
-	for_each_of_range(&parser, &range)
+	for_each_of_range(&parser, &range) {
+		if (range.cpu_addr == OF_BAD_ADDR) {
+			pr_err("translation of DMA address(%llx) to CPU address failed node(%pOF)\n",
+			       range.bus_addr, node);
+			continue;
+		}
 		num_ranges++;
+	}
+
+	if (!num_ranges) {
+		ret = -EINVAL;
+		goto out;
+	}
 
 	r = kcalloc(num_ranges + 1, sizeof(*r), GFP_KERNEL);
 	if (!r) {
@@ -1000,18 +1011,16 @@ int of_dma_get_range(struct device_node *np, const struct bus_dma_region **map)
 	}
 
 	/*
-	 * Record all info in the generic DMA ranges array for struct device.
+	 * Record all info in the generic DMA ranges array for struct device,
+	 * returning an error if we don't find any parsable ranges.
 	 */
 	*map = r;
 	of_dma_range_parser_init(&parser, node);
 	for_each_of_range(&parser, &range) {
 		pr_debug("dma_addr(%llx) cpu_addr(%llx) size(%llx)\n",
 			 range.bus_addr, range.cpu_addr, range.size);
-		if (range.cpu_addr == OF_BAD_ADDR) {
-			pr_err("translation of DMA address(%llx) to CPU address failed node(%pOF)\n",
-			       range.bus_addr, node);
+		if (range.cpu_addr == OF_BAD_ADDR)
 			continue;
-		}
 		r->cpu_start = range.cpu_addr;
 		r->dma_start = range.bus_addr;
 		r->size = range.size;
drivers/pinctrl/aspeed/pinctrl-aspeed.c +1 -1
index e792318c3894..d26d85954627 100644
@@ -121,7 +121,7 @@ static int aspeed_disable_sig(struct aspeed_pinmux_data *ctx,
 	int ret = 0;
 
 	if (!exprs)
-		return true;
+		return -EINVAL;
 
 	while (*exprs && !ret) {
 		ret = aspeed_sig_expr_disable(ctx, *exprs);
drivers/pinctrl/intel/pinctrl-intel.c +13 -3
index db9087c129c0..2ef9e2d8fd9c 100644
@@ -1606,6 +1606,12 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_
 EXPORT_SYMBOL_GPL(intel_pinctrl_get_soc_data);
 
 #ifdef CONFIG_PM_SLEEP
+static bool __intel_gpio_is_direct_irq(u32 value)
+{
+	return (value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) &&
+	       (__intel_gpio_get_gpio_mode(value) == PADCFG0_PMODE_GPIO);
+}
+
 static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int pin)
 {
 	const struct pin_desc *pd = pin_desc_get(pctrl->pctldev, pin);
@@ -1639,8 +1645,7 @@ static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int
 	 * See https://bugzilla.kernel.org/show_bug.cgi?id=214749.
 	 */
 	value = readl(intel_get_padcfg(pctrl, pin, PADCFG0));
-	if ((value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) &&
-	    (__intel_gpio_get_gpio_mode(value) == PADCFG0_PMODE_GPIO))
+	if (__intel_gpio_is_direct_irq(value))
 		return true;
 
 	return false;
@@ -1770,7 +1775,12 @@ int intel_pinctrl_resume_noirq(struct device *dev)
 	for (i = 0; i < pctrl->soc->npins; i++) {
 		const struct pinctrl_pin_desc *desc = &pctrl->soc->pins[i];
 
-		if (!intel_pinctrl_should_save(pctrl, desc->number))
+		if (!(intel_pinctrl_should_save(pctrl, desc->number) ||
+		      /*
+		       * If the firmware mangled the register contents too much,
+		       * check the saved value for the Direct IRQ mode.
+		       */
+		      __intel_gpio_is_direct_irq(pads[i].padcfg0)))
 			continue;
 
 		intel_restore_padcfg(pctrl, desc->number, PADCFG0, pads[i].padcfg0);
drivers/pinctrl/pinctrl-single.c +2 -0
index d139cd9e6d13..22e471933b37 100644
@@ -372,6 +372,8 @@ static int pcs_set_mux(struct pinctrl_dev *pctldev, unsigned fselector,
 	if (!pcs->fmask)
 		return 0;
 	function = pinmux_generic_get_function(pctldev, fselector);
+	if (!function)
+		return -EINVAL;
 	func = function->data;
 	if (!func)
 		return -EINVAL;
drivers/platform/x86/dell-wmi.c +3 -0
index bbdb3e860892..6ef327a80ccf 100644
@@ -259,6 +259,9 @@ static const struct key_entry dell_wmi_keymap_type_0010[] = {
 	{ KE_KEY,    0x57, { KEY_BRIGHTNESSDOWN } },
 	{ KE_KEY,    0x58, { KEY_BRIGHTNESSUP } },
 
+	/*Speaker Mute*/
+	{ KE_KEY, 0x109, { KEY_MUTE} },
+
 	/* Mic mute */
 	{ KE_KEY, 0x150, { KEY_MICMUTE } },
 
drivers/scsi/iscsi_tcp.c +6 -3
index 6485c1aa9e74..252d7881f99c 100644

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

drivers/scsi/scsi_scan.c +3 -4
index 8e474b145249..6f7c4d41c51d 100644

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

drivers/spi/spi-dw-core.c +1 -1
index c33866f747db..aa116cee1fd8 100644

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

drivers/target/target_core_file.c +2 -2
index 7143d03f0e02..18fbbe510d01 100644

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

drivers/target/target_core_tmr.c +2 -2
index e4513ef09159..3efd5a3bd69d 100644

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

drivers/tty/serial/8250/8250_dma.c +23 -3
index b3c3f7e5851a..33ce4b218d9e 100644

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

drivers/tty/vt/vc_screen.c +5 -4
index 1850bacdb5b0..f566eb1839dc 100644

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

drivers/usb/core/quirks.c +3 -0
index 6d24d138cc77..4ac1c22f13be 100644

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

drivers/usb/dwc3/dwc3-qcom.c +5 -5
index 528e36cc58ea..dac13fe97811 100644

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

drivers/usb/gadget/function/f_fs.c +3 -1
index 94000fd190e5..8c48c9f801be 100644

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

drivers/usb/typec/altmodes/displayport.c +4 -4
index eed719cf5552..e8eaca5a84db 100644

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

drivers/vhost/net.c +3 -0
index 5beb20768b20..b9c8e4025214 100644

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

drivers/vhost/vhost.c +2 -1
index da00a5c57db6..1f9a1554ce5f 100644

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

drivers/vhost/vhost.h +1 -0
index b063324c7669..8f80d6b0d843 100644

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

drivers/video/fbdev/core/fbcon.c +5 -2
index 27828435dd4f..6d58c8a5cb44 100644

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

drivers/video/fbdev/smscufx.c +31 -15

46 lines not on this page · raw message

drivers/watchdog/diag288_wdt.c +12 -3
index aafc8d98bf9f..370f648cb4b1 100644

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

drivers/xen/pvcalls-back.c +4 -4
index a7d293fa8d14..3b5a8e2c4d47 100644

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

fs/btrfs/volumes.c +20 -2
index d4d89e0738ff..15435f983180 100644

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

fs/btrfs/zlib.c +1 -1
index 05615a1099db..673d74d7f718 100644

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

fs/ceph/mds_client.c +6 -0
index fa51872ff850..87a9e9096421 100644

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

fs/cifs/file.c +2 -2
index 144064dc0d38..5fe85dc0e265 100644

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

fs/f2fs/gc.c +12 -6
index ce6a2a247804..66ac048cc899 100644

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

fs/proc/task_mmu.c +1 -3
index 8b75a04836b6..39b1038076c3 100644

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

fs/squashfs/squashfs_fs.h +1 -1
index b3fdc8212c5f..95f8e8901768 100644

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

fs/squashfs/squashfs_fs_sb.h +1 -1
index 166e98806265..8f9445e290e7 100644

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

fs/squashfs/xattr.h +2 -2
index d8a270d3ac4c..f1a463d8bfa0 100644

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

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

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

include/linux/hugetlb.h +16 -3
index 955b19dc28a8..c0ba379574a4 100644

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

include/linux/nvmem-provider.h +3 -1
index 06409a6c40bc..39ec67689898 100644

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

include/linux/util_macros.h +12 -0
index 72299f261b25..43db6e47503c 100644

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

include/uapi/linux/ip.h +1 -0
index d2f143393780..860bbf6bf29c 100644

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

include/uapi/linux/ipv6.h +1 -0
index 766ab5c8ee65..d44d0483fd73 100644

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

kernel/bpf/verifier.c +70 -32

102 lines not on this page · raw message

kernel/trace/bpf_trace.c +2 -1
index ab4f51716645..94e51d36fb49 100644

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

kernel/trace/trace.c +0 -3
index f06d48be5a96..8637eab2986e 100644

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

mm/gup.c +1 -1
index 6d5e4fd55d32..11307a8b20d5 100644

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

mm/hugetlb.c +3 -3
index 3499b3803384..81949f6d29af 100644

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

mm/memory-failure.c +1 -1
index aef267c6a724..b21dd4a79392 100644

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

mm/memory_hotplug.c +1 -1
index 6275b1c05f11..f0633f9a9116 100644

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

mm/mempolicy.c +3 -2
index f9f47449e8dd..6c98585f20df 100644

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

mm/migrate.c +4 -3
index b716b8fa2c3f..fcb7eb6a6eca 100644

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

mm/page_alloc.c +4 -1
index a56f2b9df5a0..1fd41b91a1a8 100644

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

mm/swapfile.c +1 -0
index 5af6b0f770de..d87d6971afc9 100644

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

net/bridge/br_netfilter_hooks.c +1 -0
index a718204c4bfd..f3c7cfba31e1 100644

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

net/can/j1939/address-claim.c +40 -0
index f33c47327927..ca4ad6cdd5cb 100644

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

net/can/j1939/transport.c +0 -4
index 78f6a9110699..57d6aac7f435 100644

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

net/ipv4/tcp_bpf.c +2 -2
index 6a1685461f89..926e29e84b40 100644

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

net/netrom/af_netrom.c +5 -0
index e5c8a295e640..5c04da4cfbad 100644

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

net/openvswitch/datapath.c +6 -6
index 435f7f1be614..b625ab5e9a43 100644

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

net/qrtr/ns.c +4 -1
index e760d4a38faf..fe81e0385168 100644

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

net/rds/message.c +3 -3
index 799034e0f513..b363ef13c75e 100644

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

net/x25/af_x25.c +6 -0
index d231d4620c38..161dc194e634 100644

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

net/xfrm/xfrm_compat.c +3 -1
index a0f62fa02e06..8cbf45a8bcdc 100644

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

net/xfrm/xfrm_input.c +1 -2
index 77e82033ad70..fef99a1c5df1 100644

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

sound/pci/hda/patch_realtek.c +3 -0
index cfd86389d37f..d66d2cf7708e 100644

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

sound/pci/hda/patch_via.c +3 -0
index a188901a83bb..29abc96dc146 100644

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

sound/pci/lx6464es/lx_core.c +5 -6
index f884f5a6a61c..a49a3254f967 100644

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

sound/synth/emux/emux_nrpn.c +3 -0
index 7eed5791972c..a7d83182f7d2 100644

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

tools/testing/selftests/net/forwarding/lib.sh +2 -2
index 54020d05a62b..9605e158a0bf 100644

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

tools/testing/selftests/net/udpgso_bench.sh +20 -4
index dc932fd65363..640bc43452fa 100755

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

tools/testing/selftests/net/udpgso_bench_rx.c +3 -1
index 6a193425c367..4058c7451e70 100644

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

tools/testing/selftests/net/udpgso_bench_tx.c +29 -7
index f1fdaa270291..477392715a9a 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.