Skip to contentSkip to conversation

Linux 6.1.143

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jul 6, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.143 kernel.

All users of the 6.1 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/devicetree/bindings/serial/8250.yaml  |    2 
 Makefile                                            |    2 
 arch/arm/include/asm/ptrace.h                       |    5 
 arch/arm64/mm/mmu.c                                 |    3 
 arch/s390/kernel/entry.S                            |    2 
 arch/um/drivers/ubd_user.c                          |    2 
 arch/um/include/asm/asm-prototypes.h                |    5 
 arch/um/kernel/trap.c                               |  129 +++-
 arch/x86/tools/insn_decoder_test.c                  |    5 
 arch/x86/um/asm/checksum.h                          |    3 
 drivers/dma/xilinx/xilinx_dma.c                     |    2 
 drivers/firmware/arm_scmi/driver.c                  |   44 +
 drivers/firmware/arm_scmi/protocols.h               |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c           |   17 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h           |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c        |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_events.c             |    1 
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c  |    2 
 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c |    3 
 drivers/gpu/drm/bridge/cdns-dsi.c                   |   32 
 drivers/gpu/drm/bridge/ti-sn65dsi86.c               |  109 ++-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c             |    5 
 drivers/gpu/drm/msm/msm_gpu_devfreq.c               |    1 
 drivers/gpu/drm/tegra/dc.c                          |   17 
 drivers/gpu/drm/tegra/hub.c                         |    4 
 drivers/gpu/drm/tegra/hub.h                         |    3 
 drivers/gpu/drm/udl/udl_drv.c                       |    2 
 drivers/hid/hid-lenovo.c                            |   11 
 drivers/hid/wacom_sys.c                             |    6 
 drivers/hv/channel_mgmt.c                           |   15 
 drivers/hv/connection.c                             |  134 +---
 drivers/hv/hv.c                                     |   36 -
 drivers/hv/hv_common.c                              |  231 +++++++
 drivers/hv/hyperv_vmbus.h                           |    7 
 drivers/hv/vmbus_drv.c                              |  206 ------
 drivers/hwmon/pmbus/max34440.c                      |   48 +
 drivers/hwtracing/coresight/coresight-core.c        |    3 
 drivers/hwtracing/coresight/coresight-priv.h        |    2 
 drivers/i2c/busses/i2c-robotfuzz-osif.c             |    6 
 drivers/i2c/busses/i2c-tiny-usb.c                   |    6 
 drivers/iio/adc/ad_sigma_delta.c                    |    4 
 drivers/iio/pressure/zpa2326.c                      |    2 
 drivers/leds/led-class-multicolor.c                 |    3 
 drivers/mailbox/mailbox.c                           |    2 
 drivers/md/bcache/super.c                           |    7 
 drivers/md/dm-raid.c                                |    2 
 drivers/md/md-bitmap.c                              |    2 
 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h   |    1 
 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c      |  212 +++---
 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h      |    6 
 drivers/media/usb/uvc/uvc_ctrl.c                    |   40 -
 drivers/mfd/max14577.c                              |    1 
 drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c       |   26 
 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h       |  644 ++------------------
 drivers/net/ethernet/freescale/enetc/enetc_hw.h     |    2 
 drivers/nvme/host/ioctl.c                           |   15 
 drivers/pci/controller/pcie-apple.c                 |    7 
 drivers/s390/crypto/pkey_api.c                      |    2 
 drivers/scsi/megaraid/megaraid_sas_base.c           |    6 
 drivers/staging/rtl8723bs/core/rtw_security.c       |   44 -
 drivers/tty/serial/imx.c                            |   17 
 drivers/tty/serial/uartlite.c                       |   25 
 drivers/tty/vt/vt.c                                 |   12 
 drivers/uio/uio_hv_generic.c                        |   10 
 drivers/usb/class/cdc-wdm.c                         |   23 
 drivers/usb/common/usb-conn-gpio.c                  |   25 
 drivers/usb/core/usb.c                              |   14 
 drivers/usb/dwc2/gadget.c                           |    6 
 drivers/usb/gadget/function/f_tcm.c                 |    4 
 drivers/usb/typec/altmodes/displayport.c            |    4 
 drivers/usb/typec/mux.c                             |    4 
 drivers/video/console/dummycon.c                    |   24 
 drivers/video/console/mdacon.c                      |   21 
 drivers/video/console/newport_con.c                 |   12 
 drivers/video/console/sticon.c                      |   14 
 drivers/video/console/vgacon.c                      |   34 -
 drivers/video/fbdev/core/fbcon.c                    |   40 -
 drivers/video/fbdev/core/fbmem.c                    |   18 
 drivers/video/fbdev/hyperv_fb.c                     |    8 
 fs/btrfs/disk-io.c                                  |    3 
 fs/btrfs/inode.c                                    |   81 +-
 fs/btrfs/volumes.c                                  |    6 
 fs/ceph/file.c                                      |    2 
 fs/f2fs/super.c                                     |   30 
 fs/jfs/jfs_dmap.c                                   |   41 -
 fs/namespace.c                                      |    8 
 fs/nfs/inode.c                                      |    2 
 fs/nfs/nfs4proc.c                                   |   17 
 fs/omfs/file.c                                      |   12 
 fs/omfs/omfs_fs.h                                   |    2 
 fs/overlayfs/util.c                                 |    4 
 fs/smb/client/cifsglob.h                            |    1 
 fs/smb/client/cifspdu.h                             |    6 
 fs/smb/client/cifssmb.c                             |    1 
 fs/smb/client/misc.c                                |    8 
 fs/smb/client/sess.c                                |    1 
 fs/smb/server/smb2pdu.c                             |   62 -
 include/asm-generic/mshyperv.h                      |    2 
 include/linux/console.h                             |   13 
 include/linux/hyperv.h                              |    2 
 include/linux/ipv6.h                                |    1 
 include/uapi/linux/vm_sockets.h                     |    4 
 io_uring/kbuf.c                                     |    2 
 lib/Kconfig.debug                                   |    9 
 lib/Makefile                                        |    2 
 lib/longest_symbol_kunit.c                          |   82 ++
 net/atm/clip.c                                      |   11 
 net/atm/resources.c                                 |    3 
 net/bluetooth/l2cap_core.c                          |    9 
 net/core/selftests.c                                |    5 
 net/ipv6/ip6_output.c                               |    9 
 net/mac80211/util.c                                 |    2 
 net/unix/af_unix.c                                  |   58 -
 net/unix/garbage.c                                  |   24 
 rust/macros/module.rs                               |    1 
 sound/pci/hda/hda_bind.c                            |    2 
 sound/pci/hda/hda_intel.c                           |    3 
 sound/pci/hda/patch_realtek.c                       |    1 
 sound/soc/amd/yc/acp6x-mach.c                       |    7 
 sound/soc/codecs/wcd9335.c                          |   62 -
 sound/usb/quirks.c                                  |    2 
 sound/usb/stream.c                                  |    2 
 tools/lib/bpf/btf_dump.c                            |    3 
 123 files changed, 1594 insertions(+), 1482 deletions(-)

Al Viro (1):
attach_recursive_mnt(): do not lock the covering tree when sliding something under it

Alexis Czezar Torreno (1):

      hwmon: (pmbus/max34440) Fix support for max34451

Andy Shevchenko (1):
usb: Add checks for snprintf() calls in usb_alloc_dev()

Aradhya Bhatia (5):
drm/bridge: cdns-dsi: Fix the clock variable for mode_valid() drm/bridge: cdns-dsi: Fix phy de-init and flag it so drm/bridge: cdns-dsi: Fix connecting to next bridge drm/bridge: cdns-dsi: Check return value when getting default PHY config drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready

Benjamin Berg (1):
um: use proper care when taking mmap lock during segfault

Brett A C Sheffield (Librecast) (1):
Revert "ipv6: save dontfrag in cork"

Cezary Rojewski (1):
ALSA: hda: Ignore unsol events for cards being shut down

Chance Yang (1):
usb: common: usb-conn-gpio: use a unique name for usb connector device

Chao Yu (1):
f2fs: don't over-report free space or inodes in statvfs

Chen Ni (1):
fbdev: hyperv_fb: Convert comma to semicolon

Chen Yu (1):
scsi: megaraid_sas: Fix invalid node index

Chen Yufeng (1):
usb: potential integer overflow in usbg_make_tpg()

Cristian Marussi (1):
firmware: arm_scmi: Add a common helper to check if a message is supported

Dave Kleikamp (1):
fs/jfs: consolidate sanity checking in dbMount

Dev Jain (1):
arm64: Restrict pagetable teardown to avoid false warning

Dmitry Kandybka (1):
ceph: fix possible integer overflow in ceph_zero_objects()

Eric Dumazet (1):
atm: clip: prevent NULL deref in clip_push()

FUJITA Tomonori (1):
rust: module: place cleanup_module() in .exit.text section

Fabio Estevam (1):
serial: imx: Restore original RXTL for console to fix data loss

Fedor Pchelkin (1):
s390/pkey: Prevent overflow in size calculation for memdup_user()

Filipe Manana (1):
btrfs: fix a race between renames and directory logging

Frank Min (1):
drm/amdgpu: Add kicker device detection

Frédéric Danis (1):
Bluetooth: L2CAP: Fix L2CAP MTU negotiation

Geert Uytterhoeven (1):
ARM: 9354/1: ptrace: Use bitfield helpers

Greg Kroah-Hartman (1):

      Linux 6.1.143

Guilherme G. Piccoli (1):
drivers: hv, hyperv_fb: Untangle and refactor Hyper-V panic notifiers

Gustavo A. R. Silva (1):
fs: omfs: Use flexible-array member in struct omfs_extent

Han Young (1):
NFSv4: Always set NLINK even if the server doesn't support it

Hector Martin (1):
PCI: apple: Fix missing OF node reference in apple_pcie_setup_port

Heiko Carstens (1):
s390/entry: Fix last breaking event handling in case of stack corruption

Heinz Mauelshagen (1):
dm-raid: fix variable in journal device check

Iusico Maxim (1):
HID: lenovo: Restrict F7/9/11 mode to compact keyboards only

Jakub Kicinski (2):
net: selftests: fix TCP packet checksum
eth: bnxt: fix one of the W=1 warnings about fortified memcpy()

Jakub Lewalski (1):
tty: serial: uartlite: register uart driver in init

James Clark (1):
coresight: Only check bottom two claim bits

Janne Grunau (1):
PCI: apple: Set only available ports up

Jason Wang (1):
media: imx-jpeg: Remove unnecessary memset() after dma_alloc_coherent()

Jay Cornwall (1):
drm/amdkfd: Fix race in GWS queue scheduling

Jayesh Choudhary (1):
drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type

Jens Axboe (1):
nvme: always punt polled uring_cmd end_io work to task_work

Jiri Slaby (SUSE) (5):
vgacon: switch vgacon_scrolldelta() and vgacon_restore_screen()
vgacon: remove unneeded forward declarations
tty: vt: make init parameter of consw::con_init() a bool
tty: vt: sanitize arguments of consw::con_clear()
tty: vt: make consw::con_switch() return a bool

John Olender (1):
drm/amdgpu: amdgpu_vram_mgr_new(): Clamp lpfn to total vram

Jonathan Cameron (1):
iio: pressure: zpa2326: Use aligned_s64 for the timestamp

Joonas Lahtinen (1):
Revert "drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1"

Jos Wang (1):
usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode

Kameron Carr (1):
Drivers: hv: Change hv_free_hyperv_page() to take void * argument

Kees Cook (1):
ovl: Check for NULL d_inode() in ovl_dentry_upper()

Krzysztof Kozlowski (3):
mfd: max14577: Fix wakeup source leaks on device unbind
ASoC: codecs: wcd9335: Handle nicer probe deferral and simplify with dev_err_probe()
ASoC: codecs: wcd9335: Fix missing free of regulator supplies

Kuniyuki Iwashima (4):
af_unix: Don't call skb_get() for OOB skb.
af_unix: Don't leave consecutive consumed OOB skbs.
af_unix: Don't set -ECONNRESET for consumed OOB skb.
atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().

Lachlan Hodges (1):
wifi: mac80211: fix beacon interval calculation overflow

Linggang Zeng (1):
bcache: fix NULL pointer in cache_set_flush()

Long Li (3):
Drivers: hv: move panic report code from vmbus to hv early init code
Drivers: hv: Allocate interrupt and monitor pages aligned to system page boundary
uio_hv_generic: Align ring size to system page

Mario Limonciello (1):
ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock

Mark Harmstone (1):
btrfs: update superblock's device bytes_used when dropping chunk

Maíra Canal (1):
drm/etnaviv: Protect the scheduler's pending list with its lock

Michael Chan (2):
bnxt_en: Fix W=1 warning in bnxt_dcb.c from fortify memcpy()
bnxt_en: Fix W=stringop-overflow warning in bnxt_dcb.c

Michael Grzeschik (2):
usb: dwc2: also exit clock_gating when stopping udc while suspended
usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set

Michael Kelley (1):
Drivers: hv: vmbus: Remove second mapping of VMBus monitor pages

Ming Qian (5):
media: imx-jpeg: Add a timeout mechanism for each frame
media: imx-jpeg: Support to assign slot for encoder/decoder
media: imx-jpeg: Move mxc_jpeg_free_slot_data() ahead
media: imx-jpeg: Reset slot data pointers when freed
media: imx-jpeg: Cleanup after an allocation error

Murad Masimov (1):
fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var

Namjae Jeon (3):
ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension
ksmbd: Use unsafe_memcpy() for ntlm_negotiate
ksmbd: remove unsafe_memcpy use in session setup

Nathan Chancellor (2):
staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher() x86/tools: Drop duplicate unlikely() definition in insn_decoder_test.c

Olga Kornievskaia (1):
NFSv4.2: fix listxattr to return selinux security label

Oliver Schramm (1):
ASoC: amd: yc: Add DMI quirk for Lenovo IdeaPad Slim 5 15

Pali Rohár (2):
cifs: Correctly set SMB1 SessionKey field in Session Setup Request
cifs: Fix cifs_query_path_info() for Windows NT servers

Pavel Begunkov (1):
io_uring/kbuf: account ring io_buffer_list memory

Peng Fan (2):
mailbox: Not protect module_put with spin_lock_irqsave
ASoC: codec: wcd9335: Convert to GPIO descriptors

Purva Yeshi (1):
iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos

Qasim Ijaz (3):
HID: wacom: fix memory leak on kobject creation failure
HID: wacom: fix memory leak on sysfs attribute creation failure
HID: wacom: fix kobject reference count leak

Qiu-ji Chen (1):
drm/tegra: Fix a possible null pointer dereference

Qu Wenruo (1):
btrfs: handle csum tree error with rescue=ibadroots correctly

Ricardo Ribalda (1):
media: uvcvideo: Rollback non processed entities on error

Rick Edgecombe (1):
Drivers: hv: vmbus: Leak pages if set_memory_encrypted() fails

Robert Hodaszi (1):
usb: cdc-wdm: avoid setting WDM_READ for ZLP-s

Salvatore Bonaccorso (1):
ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X507UAR

Sami Tolvanen (1):
um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h

Saurabh Sengar (2):
Drivers: hv: vmbus: Add utility function for querying ring size
uio_hv_generic: Query the ringbuffer size for device

Scott Mayhew (1):
NFSv4: xattr handlers should check for absent nfs filehandles

Sergio González Collado (1):
Kunit to check the longest symbol length

Sibi Sankar (1):
firmware: arm_scmi: Ensure that the message-id supports fastchannel

Simon Horman (1):
net: enetc: Correct endianness handling in _enetc_rd_reg64

Stefano Garzarella (1):
vsock/uapi: fix linux/vm_sockets.h userspace compilation errors

Stephan Gerhold (1):
drm/msm/gpu: Fix crash when throttling GPU immediately during boot

Sven Schwermer (1):
leds: multicolor: Fix intensity setting while SW blinking

Thierry Reding (1):
drm/tegra: Assign plane type before registration

Thomas Gessler (1):
dmaengine: xilinx_dma: Set dma_device directions

Thomas Zimmermann (2):
dummycon: Trigger redraw when switching consoles with deferred takeover drm/udl: Unregister device before cleaning up on disconnect

Tiwei Bie (1):
um: ubd: Add missing error check in start_io_thread()

Vasiliy Kovalev (1):
jfs: validate AG parameters in dbMount() to prevent crashes

Vijendar Mukunda (1):
ALSA: hda: Add new pci id for AMD GPU display HD audio controller

Ville Syrjälä (1):
drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1

Wentao Liang (1):
drm/amd/display: Add null pointer check for get_first_active_display()

Wolfram Sang (3):
i2c: tiny-usb: disable zero-length read messages
i2c: robotfuzz-osif: disable zero-length read messages drm/bridge: ti-sn65dsi86: make use of debugfs_init callback

Yao Zi (1):
dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive

Yifan Zhang (1):
amd/amdkfd: fix a kfd_process ref leak

Youngjun Lee (1):
ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3()

Yu Kuai (1):
md/md-bitmap: fix dm-raid max_write_behind setting

Yuan Chen (1):
libbpf: Fix null pointer dereference in btf_dump__free on allocation failure

Zhang Zekun (1):
PCI: apple: Use helper function for_each_child_of_node_scoped()

author maintainer
#1 lore raw
Documentation/devicetree/bindings/serial/8250.yaml +1 -1
index 6258f5f59b19..7ee56e628c87 100644
@@ -44,7 +44,7 @@ allOf:
                   - ns16550
                   - ns16550a
     then:
-      anyOf:
+      oneOf:
         - required: [ clock-frequency ]
         - required: [ clocks ]
 
Makefile +1 -1
index 5168b93dfed2..14e0e8bf3e74 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 142
+SUBLEVEL = 143
 EXTRAVERSION =
 NAME = Curry Ramen
 
arch/arm/include/asm/ptrace.h +3 -2
index 1408a6a15d0e..fa622b77c785 100644
@@ -10,6 +10,7 @@
 #include <uapi/asm/ptrace.h>
 
 #ifndef __ASSEMBLY__
+#include <linux/bitfield.h>
 #include <linux/types.h>
 
 struct pt_regs {
@@ -35,8 +36,8 @@ struct svc_pt_regs {
 
 #ifndef CONFIG_CPU_V7M
 #define isa_mode(regs) \
-	((((regs)->ARM_cpsr & PSR_J_BIT) >> (__ffs(PSR_J_BIT) - 1)) | \
-	 (((regs)->ARM_cpsr & PSR_T_BIT) >> (__ffs(PSR_T_BIT))))
+	(FIELD_GET(PSR_J_BIT, (regs)->ARM_cpsr) << 1 | \
+	 FIELD_GET(PSR_T_BIT, (regs)->ARM_cpsr))
 #else
 #define isa_mode(regs) 1 /* Thumb */
 #endif
arch/arm64/mm/mmu.c +2 -1
index cd14c3c22320..e9288b28cb1e 100644
@@ -1503,7 +1503,8 @@ int pud_free_pmd_page(pud_t *pudp, unsigned long addr)
 	next = addr;
 	end = addr + PUD_SIZE;
 	do {
-		pmd_free_pte_page(pmdp, next);
+		if (pmd_present(READ_ONCE(*pmdp)))
+			pmd_free_pte_page(pmdp, next);
 	} while (pmdp++, next += PMD_SIZE, next != end);
 
 	pud_clear(pudp);
arch/s390/kernel/entry.S +1 -1
index 62b80616ca72..576457915625 100644
@@ -690,7 +690,7 @@ ENTRY(stack_overflow)
 	stmg	%r0,%r7,__PT_R0(%r11)
 	stmg	%r8,%r9,__PT_PSW(%r11)
 	mvc	__PT_R8(64,%r11),0(%r14)
-	stg	%r10,__PT_ORIG_GPR2(%r11) # store last break to orig_gpr2
+	mvc	__PT_ORIG_GPR2(8,%r11),__LC_PGM_LAST_BREAK
 	xc	__SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
 	lgr	%r2,%r11		# pass pointer to pt_regs
 	jg	kernel_stack_overflow
arch/um/drivers/ubd_user.c +1 -1
index a1afe414ce48..fb5b1e7c133d 100644
@@ -41,7 +41,7 @@ int start_io_thread(unsigned long sp, int *fd_out)
 	*fd_out = fds[1];
 
 	err = os_set_fd_block(*fd_out, 0);
-	err = os_set_fd_block(kernel_fd, 0);
+	err |= os_set_fd_block(kernel_fd, 0);
 	if (err) {
 		printk("start_io_thread - failed to set nonblocking I/O.\n");
 		goto out_close;
arch/um/include/asm/asm-prototypes.h +5 -0
index 5898a26daa0d..408b31d59127 100644
@@ -1 +1,6 @@
 #include <asm-generic/asm-prototypes.h>
+#include <asm/checksum.h>
+
+#ifdef CONFIG_UML_X86
+extern void cmpxchg8b_emu(void);
+#endif
arch/um/kernel/trap.c +117 -12

144 lines not on this page · raw message

arch/x86/tools/insn_decoder_test.c +2 -3
index 472540aeabc2..08cd913cbd4e 100644
@@ -10,8 +10,7 @@
 #include <assert.h>
 #include <unistd.h>
 #include <stdarg.h>
-
-#define unlikely(cond) (cond)
+#include <linux/kallsyms.h>
 
 #include <asm/insn.h>
 #include <inat.c>
@@ -106,7 +105,7 @@ static void parse_args(int argc, char **argv)
 	}
 }
 
-#define BUFSIZE 256
+#define BUFSIZE (256 + KSYM_NAME_LEN)
 
 int main(int argc, char **argv)
 {
arch/x86/um/asm/checksum.h +3 -0
index b07824500363..ddc144657efa 100644
@@ -20,6 +20,9 @@
  */
 extern __wsum csum_partial(const void *buff, int len, __wsum sum);
 
+/* Do not call this directly. Declared for export type visibility. */
+extern __visible __wsum csum_partial_copy_generic(const void *src, void *dst, int len);
+
 /**
  * csum_fold - Fold and invert a 32bit checksum.
  * sum: 32bit unfolded sum
drivers/dma/xilinx/xilinx_dma.c +2 -0
index 766017570488..e2175651f979 100644
@@ -2859,6 +2859,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
 		return -EINVAL;
 	}
 
+	xdev->common.directions |= chan->direction;
+
 	/* Request the interrupt */
 	chan->irq = of_irq_get(node, chan->tdest);
 	if (chan->irq < 0)
drivers/firmware/arm_scmi/driver.c +44 -0

68 lines not on this page · raw message

drivers/firmware/arm_scmi/protocols.h +6 -0
index 2f3bf691db7c..1a9753608a2b 100644
@@ -29,6 +29,8 @@
 #define PROTOCOL_REV_MAJOR(x)	((u16)(FIELD_GET(PROTOCOL_REV_MAJOR_MASK, (x))))
 #define PROTOCOL_REV_MINOR(x)	((u16)(FIELD_GET(PROTOCOL_REV_MINOR_MASK, (x))))
 
+#define MSG_SUPPORTS_FASTCHANNEL(x)	((x) & BIT(0))
+
 enum scmi_common_cmd {
 	PROTOCOL_VERSION = 0x0,
 	PROTOCOL_ATTRIBUTES = 0x1,
@@ -243,6 +245,8 @@ struct scmi_fc_info {
  *			provided in @ops.
  * @iter_response_run: A common helper to trigger the run of a previously
  *		       initialized iterator.
+ * @protocol_msg_check: A common helper to check is a specific protocol message
+ *			is supported.
  * @fastchannel_init: A common helper used to initialize FC descriptors by
  *		      gathering FC descriptions from the SCMI platform server.
  * @fastchannel_db_ring: A common helper to ring a FC doorbell.
@@ -255,6 +259,8 @@ struct scmi_proto_helpers_ops {
 				    unsigned int max_resources, u8 msg_id,
 				    size_t tx_size, void *priv);
 	int (*iter_response_run)(void *iter);
+	int (*protocol_msg_check)(const struct scmi_protocol_handle *ph,
+				  u32 message_id, u32 *attributes);
 	void (*fastchannel_init)(const struct scmi_protocol_handle *ph,
 				 u8 describe_id, u32 message_id,
 				 u32 valid_size, u32 domain,
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +17 -0
index 779707f19c88..52d9fbfbb69e 100644
@@ -28,6 +28,10 @@
 #include "amdgpu.h"
 #include "amdgpu_ucode.h"
 
+static const struct kicker_device kicker_device_list[] = {
+	{0x744B, 0x00},
+};
+
 static void amdgpu_ucode_print_common_hdr(const struct common_firmware_header *hdr)
 {
 	DRM_DEBUG("size_bytes: %u\n", le32_to_cpu(hdr->size_bytes));
@@ -1059,6 +1063,19 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
 	return 0;
 }
 
+bool amdgpu_is_kicker_fw(struct amdgpu_device *adev)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(kicker_device_list); i++) {
+		if (adev->pdev->device == kicker_device_list[i].device &&
+			adev->pdev->revision == kicker_device_list[i].revision)
+		return true;
+	}
+
+	return false;
+}
+
 void amdgpu_ucode_ip_version_decode(struct amdgpu_device *adev, int block_type, char *ucode_prefix, int len)
 {
 	int maj, min, rev;
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +6 -0
index 4c20eb410960..9649982e357c 100644
@@ -535,6 +535,11 @@ struct amdgpu_firmware {
 	uint64_t fw_buf_mc;
 };
 
+struct kicker_device{
+	unsigned short device;
+	u8 revision;
+};
+
 void amdgpu_ucode_print_mc_hdr(const struct common_firmware_header *hdr);
 void amdgpu_ucode_print_smc_hdr(const struct common_firmware_header *hdr);
 void amdgpu_ucode_print_gfx_hdr(const struct common_firmware_header *hdr);
@@ -561,5 +566,6 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type);
 const char *amdgpu_ucode_name(enum AMDGPU_UCODE_ID ucode_id);
 
 void amdgpu_ucode_ip_version_decode(struct amdgpu_device *adev, int block_type, char *ucode_prefix, int len);
+bool amdgpu_is_kicker_fw(struct amdgpu_device *adev);
 
 #endif
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 -1
index 16594a0a6d18..24867e96b520 100644
@@ -396,7 +396,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
 	int r;
 
 	lpfn = (u64)place->lpfn << PAGE_SHIFT;
-	if (!lpfn)
+	if (!lpfn || lpfn > man->size)
 		lpfn = man->size;
 
 	fpfn = (u64)place->fpfn << PAGE_SHIFT;
drivers/gpu/drm/amd/amdkfd/kfd_events.c +1 -0
index 2880ed96ac2e..80d567ba9484 100644
@@ -1340,6 +1340,7 @@ void kfd_signal_poison_consumed_event(struct kfd_dev *dev, u32 pasid)
 	user_gpu_id = kfd_process_get_user_gpu_id(p, dev->id);
 	if (unlikely(user_gpu_id == -EINVAL)) {
 		WARN_ONCE(1, "Could not get user_gpu_id from dev->id:%x\n", dev->id);
+		kfd_unref_process(p);
 		return;
 	}
 
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c +1 -1
index 18250845a989..f335624c2d77 100644
@@ -201,7 +201,7 @@ static int pm_map_queues_v9(struct packet_manager *pm, uint32_t *buffer,
 
 	packet->bitfields2.engine_sel =
 		engine_sel__mes_map_queues__compute_vi;
-	packet->bitfields2.gws_control_queue = q->gws ? 1 : 0;
+	packet->bitfields2.gws_control_queue = q->properties.is_gws ? 1 : 0;
 	packet->bitfields2.extended_engine_sel =
 		extended_engine_sel__mes_map_queues__legacy_engine_sel;
 	packet->bitfields2.queue_type =
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
index ff930a71e496..7f8f127e7722 100644
@@ -368,6 +368,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp)
 	struct mod_hdcp_display *display = get_first_active_display(hdcp);
 	enum mod_hdcp_status status = MOD_HDCP_STATUS_SUCCESS;
 
+	if (!display)
+		return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND;
+
 	mutex_lock(&psp->hdcp_context.mutex);
 	hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;
 	memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory));
drivers/gpu/drm/bridge/cdns-dsi.c +26 -6
index 20bece84ff8c..fd4e1853d414 100644
@@ -609,15 +609,18 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi,
 	struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;
 	unsigned long dsi_hss_hsa_hse_hbp;
 	unsigned int nlanes = output->dev->lanes;
+	int mode_clock = (mode_valid_check ? mode->clock : mode->crtc_clock);
 	int ret;
 
 	ret = cdns_dsi_mode2cfg(dsi, mode, dsi_cfg, mode_valid_check);
 	if (ret)
 		return ret;
 
-	phy_mipi_dphy_get_default_config(mode->crtc_clock * 1000,
-					 mipi_dsi_pixel_format_to_bpp(output->dev->format),
-					 nlanes, phy_cfg);
+	ret = phy_mipi_dphy_get_default_config(mode_clock * 1000,
+					       mipi_dsi_pixel_format_to_bpp(output->dev->format),
+					       nlanes, phy_cfg);
+	if (ret)
+		return ret;
 
 	ret = cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode, mode_valid_check);
 	if (ret)
@@ -717,6 +720,11 @@ static void cdns_dsi_bridge_post_disable(struct drm_bridge *bridge)
 	struct cdns_dsi_input *input = bridge_to_cdns_dsi_input(bridge);
 	struct cdns_dsi *dsi = input_to_dsi(input);
 
+	dsi->phy_initialized = false;
+	dsi->link_initialized = false;
+	phy_power_off(dsi->dphy);
+	phy_exit(dsi->dphy);
+
 	pm_runtime_put(dsi->base.dev);
 }
 
@@ -798,7 +806,7 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)
 	struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;
 	unsigned long tx_byte_period;
 	struct cdns_dsi_cfg dsi_cfg;
-	u32 tmp, reg_wakeup, div;
+	u32 tmp, reg_wakeup, div, status;
 	int nlanes;
 
 	if (WARN_ON(pm_runtime_get_sync(dsi->base.dev) < 0))
@@ -812,6 +820,19 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)
 	cdns_dsi_hs_init(dsi);
 	cdns_dsi_init_link(dsi);
 
+	/*
+	 * Now that the DSI Link and DSI Phy are initialized,
+	 * wait for the CLK and Data Lanes to be ready.
+	 */
+	tmp = CLK_LANE_RDY;
+	for (int i = 0; i < nlanes; i++)
+		tmp |= DATA_LANE_RDY(i);
+
+	if (readl_poll_timeout(dsi->regs + MCTL_MAIN_STS, status,
+			       (tmp == (status & tmp)), 100, 500000))
+		dev_err(dsi->base.dev,
+			"Timed Out: DSI-DPhy Clock and Data Lanes not ready.\n");
+
 	writel(HBP_LEN(dsi_cfg.hbp) | HSA_LEN(dsi_cfg.hsa),
 	       dsi->regs + VID_HSIZE1);
 	writel(HFP_LEN(dsi_cfg.hfp) | HACT_LEN(dsi_cfg.hact),
@@ -986,7 +1007,7 @@ static int cdns_dsi_attach(struct mipi_dsi_host *host,
 		bridge = drm_panel_bridge_add_typed(panel,
 						    DRM_MODE_CONNECTOR_DSI);
 	} else {
-		bridge = of_drm_find_bridge(dev->dev.of_node);
+		bridge = of_drm_find_bridge(np);
 		if (!bridge)
 			bridge = ERR_PTR(-EINVAL);
 	}
@@ -1186,7 +1207,6 @@ static int __maybe_unused cdns_dsi_suspend(struct device *dev)
 	clk_disable_unprepare(dsi->dsi_sys_clk);
 	clk_disable_unprepare(dsi->dsi_p_clk);
 	reset_control_assert(dsi->dsi_p_rst);
-	dsi->link_initialized = false;
 	return 0;
 }
 
drivers/gpu/drm/bridge/ti-sn65dsi86.c +70 -39

155 lines not on this page · raw message

drivers/gpu/drm/etnaviv/etnaviv_sched.c +4 -1
index 5d506767b8f2..13a6812f7d71 100644
@@ -34,6 +34,7 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job
 							  *sched_job)
 {
 	struct etnaviv_gem_submit *submit = to_etnaviv_submit(sched_job);
+	struct drm_gpu_scheduler *sched = sched_job->sched;
 	struct etnaviv_gpu *gpu = submit->gpu;
 	u32 dma_addr;
 	int change;
@@ -75,7 +76,9 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job
 	return DRM_GPU_SCHED_STAT_NOMINAL;
 
 out_no_timeout:
-	list_add(&sched_job->list, &sched_job->sched->pending_list);
+	spin_lock(&sched->job_list_lock);
+	list_add(&sched_job->list, &sched->pending_list);
+	spin_unlock(&sched->job_list_lock);
 	return DRM_GPU_SCHED_STAT_NOMINAL;
 }
 
drivers/gpu/drm/msm/msm_gpu_devfreq.c +1 -0
index 4e73b915fe1a..4e50ac39d7c8 100644
@@ -147,6 +147,7 @@ void msm_devfreq_init(struct msm_gpu *gpu)
 		return;
 
 	mutex_init(&df->lock);
+	df->suspended = true;
 
 	ret = dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq,
 				     DEV_PM_QOS_MIN_FREQUENCY, 0);
drivers/gpu/drm/tegra/dc.c +12 -5
index a67453cee883..557eaaaab1c3 100644
@@ -1319,10 +1319,16 @@ static struct drm_plane *tegra_dc_add_shared_planes(struct drm_device *drm,
 		if (wgrp->dc == dc->pipe) {
 			for (j = 0; j < wgrp->num_windows; j++) {
 				unsigned int index = wgrp->windows[j];
+				enum drm_plane_type type;
+
+				if (primary)
+					type = DRM_PLANE_TYPE_OVERLAY;
+				else
+					type = DRM_PLANE_TYPE_PRIMARY;
 
 				plane = tegra_shared_plane_create(drm, dc,
 								  wgrp->index,
-								  index);
+								  index, type);
 				if (IS_ERR(plane))
 					return plane;
 
@@ -1330,10 +1336,8 @@ static struct drm_plane *tegra_dc_add_shared_planes(struct drm_device *drm,
 				 * Choose the first shared plane owned by this
 				 * head as the primary plane.
 				 */
-				if (!primary) {
-					plane->type = DRM_PLANE_TYPE_PRIMARY;
+				if (!primary)
 					primary = plane;
-				}
 			}
 		}
 	}
@@ -1387,7 +1391,10 @@ static void tegra_crtc_reset(struct drm_crtc *crtc)
 	if (crtc->state)
 		tegra_crtc_atomic_destroy_state(crtc, crtc->state);
 
-	__drm_atomic_helper_crtc_reset(crtc, &state->base);
+	if (state)
+		__drm_atomic_helper_crtc_reset(crtc, &state->base);
+	else
+		__drm_atomic_helper_crtc_reset(crtc, NULL);
 }
 
 static struct drm_crtc_state *
drivers/gpu/drm/tegra/hub.c +2 -2
index b872527a123c..439ee7491677 100644
@@ -756,9 +756,9 @@ static const struct drm_plane_helper_funcs tegra_shared_plane_helper_funcs = {
 struct drm_plane *tegra_shared_plane_create(struct drm_device *drm,
 					    struct tegra_dc *dc,
 					    unsigned int wgrp,
-					    unsigned int index)
+					    unsigned int index,
+					    enum drm_plane_type type)
 {
-	enum drm_plane_type type = DRM_PLANE_TYPE_OVERLAY;
 	struct tegra_drm *tegra = drm->dev_private;
 	struct tegra_display_hub *hub = tegra->hub;
 	struct tegra_shared_plane *plane;
drivers/gpu/drm/tegra/hub.h +2 -1
index 23c4b2115ed1..a66f18c4facc 100644
@@ -80,7 +80,8 @@ void tegra_display_hub_cleanup(struct tegra_display_hub *hub);
 struct drm_plane *tegra_shared_plane_create(struct drm_device *drm,
 					    struct tegra_dc *dc,
 					    unsigned int wgrp,
-					    unsigned int index);
+					    unsigned int index,
+					    enum drm_plane_type type);
 
 int tegra_display_hub_atomic_check(struct drm_device *drm,
 				   struct drm_atomic_state *state);
drivers/gpu/drm/udl/udl_drv.c +1 -1
index 91effdcefb6d..0a20d7fe135f 100644
@@ -126,9 +126,9 @@ static void udl_usb_disconnect(struct usb_interface *interface)
 {
 	struct drm_device *dev = usb_get_intfdata(interface);
 
+	drm_dev_unplug(dev);
 	drm_kms_helper_poll_fini(dev);
 	udl_drop_usb(dev);
-	drm_dev_unplug(dev);
 }
 
 /*
drivers/hid/hid-lenovo.c +7 -4
index a4062f617ba2..ee65da98c7d5 100644
@@ -529,11 +529,14 @@ static void lenovo_features_set_cptkbd(struct hid_device *hdev)
 
 	/*
 	 * Tell the keyboard a driver understands it, and turn F7, F9, F11 into
-	 * regular keys
+	 * regular keys (Compact only)
 	 */
-	ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03);
-	if (ret)
-		hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret);
+	if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD ||
+	    hdev->product == USB_DEVICE_ID_LENOVO_CBTKBD) {
+		ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03);
+		if (ret)
+			hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret);
+	}
 
 	/* Switch middle button to native mode */
 	ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01);
drivers/hid/wacom_sys.c +5 -1
index b3395b3eb804..276b3e4f661f 100644
@@ -2012,14 +2012,18 @@ static int wacom_initialize_remotes(struct wacom *wacom)
 
 	remote->remote_dir = kobject_create_and_add("wacom_remote",
 						    &wacom->hdev->dev.kobj);
-	if (!remote->remote_dir)
+	if (!remote->remote_dir) {
+		kfifo_free(&remote->remote_fifo);
 		return -ENOMEM;
+	}
 
 	error = sysfs_create_files(remote->remote_dir, remote_unpair_attrs);
 
 	if (error) {
 		hid_err(wacom->hdev,
 			"cannot create sysfs group err: %d\n", error);
+		kfifo_free(&remote->remote_fifo);
+		kobject_put(remote->remote_dir);
 		return error;
 	}
 
drivers/hv/channel_mgmt.c +12 -3
index d95e567a190d..25e2958923af 100644
@@ -120,7 +120,9 @@ const struct vmbus_device vmbus_devs[] = {
 	},
 
 	/* File copy */
-	{ .dev_type = HV_FCOPY,
+	/* fcopy always uses 16KB ring buffer size and is working well for last many years */
+	{ .pref_ring_size = 0x4000,
+	  .dev_type = HV_FCOPY,
 	  HV_FCOPY_GUID,
 	  .perf_device = false,
 	  .allowed_in_isolated = false,
@@ -140,12 +142,19 @@ const struct vmbus_device vmbus_devs[] = {
 	  .allowed_in_isolated = false,
 	},
 
-	/* Unknown GUID */
-	{ .dev_type = HV_UNKNOWN,
+	/*
+	 * Unknown GUID
+	 * 64 KB ring buffer + 4 KB header should be sufficient size for any Hyper-V device apart
+	 * from HV_NIC and HV_SCSI. This case avoid the fallback for unknown devices to allocate
+	 * much bigger (2 MB) of ring size.
+	 */
+	{ .pref_ring_size = 0x11000,
+	  .dev_type = HV_UNKNOWN,
 	  .perf_device = false,
 	  .allowed_in_isolated = false,
 	},
 };
+EXPORT_SYMBOL_GPL(vmbus_devs);
 
 static const struct {
 	guid_t guid;
drivers/hv/connection.c +51 -83

179 lines not on this page · raw message

drivers/hv/hv.c +0 -36
index 4d6480d57546..d1a3be24396f 100644
@@ -38,42 +38,6 @@ int hv_init(void)
 	return 0;
 }
 
-/*
- * Functions for allocating and freeing memory with size and
- * alignment HV_HYP_PAGE_SIZE. These functions are needed because
- * the guest page size may not be the same as the Hyper-V page
- * size. We depend upon kmalloc() aligning power-of-two size
- * allocations to the allocation size boundary, so that the
- * allocated memory appears to Hyper-V as a page of the size
- * it expects.
- */
-
-void *hv_alloc_hyperv_page(void)
-{
-	BUILD_BUG_ON(PAGE_SIZE <  HV_HYP_PAGE_SIZE);
-
-	if (PAGE_SIZE == HV_HYP_PAGE_SIZE)
-		return (void *)__get_free_page(GFP_KERNEL);
-	else
-		return kmalloc(HV_HYP_PAGE_SIZE, GFP_KERNEL);
-}
-
-void *hv_alloc_hyperv_zeroed_page(void)
-{
-	if (PAGE_SIZE == HV_HYP_PAGE_SIZE)
-		return (void *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
-	else
-		return kzalloc(HV_HYP_PAGE_SIZE, GFP_KERNEL);
-}
-
-void hv_free_hyperv_page(unsigned long addr)
-{
-	if (PAGE_SIZE == HV_HYP_PAGE_SIZE)
-		free_page(addr);
-	else
-		kfree((void *)addr);
-}
-
 /*
  * hv_post_message - Post a message using the hypervisor message IPC.
  *
drivers/hv/hv_common.c +231 -0

269 lines not on this page · raw message

drivers/hv/hyperv_vmbus.h +5 -2
index ab12e21bf5fc..f039b110e98c 100644
@@ -241,8 +241,6 @@ struct vmbus_connection {
 	 * is child->parent notification
 	 */
 	struct hv_monitor_page *monitor_pages[2];
-	void *monitor_pages_original[2];
-	phys_addr_t monitor_pages_pa[2];
 	struct list_head chn_msg_list;
 	spinlock_t channelmsg_lock;
 
@@ -414,6 +412,11 @@ static inline bool hv_is_perf_channel(struct vmbus_channel *channel)
 	return vmbus_devs[channel->device_id].perf_device;
 }
 
+static inline size_t hv_dev_ring_size(struct vmbus_channel *channel)
+{
+	return vmbus_devs[channel->device_id].pref_ring_size;
+}
+
 static inline bool hv_is_allocated_cpu(unsigned int cpu)
 {
 	struct vmbus_channel *channel, *sc;
drivers/hv/vmbus_drv.c +15 -191

266 lines not on this page · raw message

drivers/hwmon/pmbus/max34440.c +44 -4

110 lines not on this page · raw message

drivers/hwtracing/coresight/coresight-core.c +2 -1
index 4477b1ab7357..6d836f10b3de 100644
@@ -189,7 +189,8 @@ static int coresight_find_link_outport(struct coresight_device *csdev,
 
 static inline u32 coresight_read_claim_tags(struct coresight_device *csdev)
 {
-	return csdev_access_relaxed_read32(&csdev->access, CORESIGHT_CLAIMCLR);
+	return FIELD_GET(CORESIGHT_CLAIM_MASK,
+			 csdev_access_relaxed_read32(&csdev->access, CORESIGHT_CLAIMCLR));
 }
 
 static inline bool coresight_is_claimed_self_hosted(struct coresight_device *csdev)
drivers/hwtracing/coresight/coresight-priv.h +2 -0
index 595ce5862056..b04612961a86 100644
@@ -8,6 +8,7 @@
 
 #include <linux/amba/bus.h>
 #include <linux/bitops.h>
+#include <linux/bitfield.h>
 #include <linux/io.h>
 #include <linux/coresight.h>
 #include <linux/pm_runtime.h>
@@ -32,6 +33,7 @@
  * Coresight device CLAIM protocol.
  * See PSCI - ARM DEN 0022D, Section: 6.8.1 Debug and Trace save and restore.
  */
+#define CORESIGHT_CLAIM_MASK		GENMASK(1, 0)
 #define CORESIGHT_CLAIM_SELF_HOSTED	BIT(1)
 
 #define TIMEOUT_US		100
drivers/i2c/busses/i2c-robotfuzz-osif.c +6 -0
index 66dfa211e736..8e4cf9028b23 100644
@@ -111,6 +111,11 @@ static u32 osif_func(struct i2c_adapter *adapter)
 	return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
 }
 
+/* prevent invalid 0-length usb_control_msg */
+static const struct i2c_adapter_quirks osif_quirks = {
+	.flags = I2C_AQ_NO_ZERO_LEN_READ,
+};
+
 static const struct i2c_algorithm osif_algorithm = {
 	.master_xfer	= osif_xfer,
 	.functionality	= osif_func,
@@ -143,6 +148,7 @@ static int osif_probe(struct usb_interface *interface,
 
 	priv->adapter.owner = THIS_MODULE;
 	priv->adapter.class = I2C_CLASS_HWMON;
+	priv->adapter.quirks = &osif_quirks;
 	priv->adapter.algo = &osif_algorithm;
 	priv->adapter.algo_data = priv;
 	snprintf(priv->adapter.name, sizeof(priv->adapter.name),
drivers/i2c/busses/i2c-tiny-usb.c +6 -0
index d1fa9ff5aeab..204cc0883da6 100644
@@ -140,6 +140,11 @@ static u32 usb_func(struct i2c_adapter *adapter)
 	return ret;
 }
 
+/* prevent invalid 0-length usb_control_msg */
+static const struct i2c_adapter_quirks usb_quirks = {
+	.flags = I2C_AQ_NO_ZERO_LEN_READ,
+};
+
 /* This is the actual algorithm we define */
 static const struct i2c_algorithm usb_algorithm = {
 	.master_xfer	= usb_xfer,
@@ -244,6 +249,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
 	/* setup i2c adapter description */
 	dev->adapter.owner = THIS_MODULE;
 	dev->adapter.class = I2C_CLASS_HWMON;
+	dev->adapter.quirks = &usb_quirks;
 	dev->adapter.algo = &usb_algorithm;
 	dev->adapter.algo_data = dev;
 	snprintf(dev->adapter.name, sizeof(dev->adapter.name),
drivers/iio/adc/ad_sigma_delta.c +4 -0
index 7e2192870743..533667eefe41 100644
@@ -476,6 +476,10 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void *p)
 		 * byte set to zero. */
 		ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[1]);
 		break;
+
+	default:
+		dev_err_ratelimited(&indio_dev->dev, "Unsupported reg_size: %u\n", reg_size);
+		goto irq_handled;
 	}
 
 	/*
drivers/iio/pressure/zpa2326.c +1 -1
index fdb1b765206b..7f352a79c1a5 100644
@@ -582,7 +582,7 @@ static int zpa2326_fill_sample_buffer(struct iio_dev               *indio_dev,
 	struct {
 		u32 pressure;
 		u16 temperature;
-		u64 timestamp;
+		aligned_s64 timestamp;
 	}   sample;
 	int err;
 
drivers/leds/led-class-multicolor.c +2 -1
index ec62a4811613..e0785935f4ba 100644
@@ -61,7 +61,8 @@ static ssize_t multi_intensity_store(struct device *dev,
 	for (i = 0; i < mcled_cdev->num_colors; i++)
 		mcled_cdev->subled_info[i].intensity = intensity_value[i];
 
-	led_set_brightness(led_cdev, led_cdev->brightness);
+	if (!test_bit(LED_BLINK_SW, &led_cdev->work_flags))
+		led_set_brightness(led_cdev, led_cdev->brightness);
 	ret = size;
 err_out:
 	mutex_unlock(&led_cdev->led_access);
drivers/mailbox/mailbox.c +1 -1
index 6f54501dc776..cb31ad917b35 100644
@@ -459,8 +459,8 @@ void mbox_free_channel(struct mbox_chan *chan)
 	if (chan->txdone_method == TXDONE_BY_ACK)
 		chan->txdone_method = TXDONE_BY_POLL;
 
-	module_put(chan->mbox->dev->driver->owner);
 	spin_unlock_irqrestore(&chan->lock, flags);
+	module_put(chan->mbox->dev->driver->owner);
 }
 EXPORT_SYMBOL_GPL(mbox_free_channel);
 
drivers/md/bcache/super.c +6 -1
index 1ddae5c97239..2c7b3c8673de 100644
@@ -1741,7 +1741,12 @@ static void cache_set_flush(struct closure *cl)
 			mutex_unlock(&b->write_lock);
 		}
 
-	if (ca->alloc_thread)
+	/*
+	 * If the register_cache_set() call to bch_cache_set_alloc() failed,
+	 * ca has not been assigned a value and return error.
+	 * So we need check ca is not NULL during bch_cache_set_unregister().
+	 */
+	if (ca && ca->alloc_thread)
 		kthread_stop(ca->alloc_thread);
 
 	if (c->journal.cur) {
drivers/md/dm-raid.c +1 -1
index 99b4738e867a..21a1586c69a7 100644
@@ -2381,7 +2381,7 @@ static int super_init_validation(struct raid_set *rs, struct md_rdev *rdev)
 	 */
 	sb_retrieve_failed_devices(sb, failed_devices);
 	rdev_for_each(r, mddev) {
-		if (test_bit(Journal, &rdev->flags) ||
+		if (test_bit(Journal, &r->flags) ||
 		    !r->sb_page)
 			continue;
 		sb2 = page_address(r->sb_page);
drivers/md/md-bitmap.c +1 -1
index 02629516748e..dac27206cd3d 100644
@@ -546,7 +546,7 @@ static int md_bitmap_new_disk_sb(struct bitmap *bitmap)
 	 * is a good choice?  We choose COUNTER_MAX / 2 arbitrarily.
 	 */
 	write_behind = bitmap->mddev->bitmap_info.max_write_behind;
-	if (write_behind > COUNTER_MAX)
+	if (write_behind > COUNTER_MAX / 2)
 		write_behind = COUNTER_MAX / 2;
 	sb->write_behind = cpu_to_le32(write_behind);
 	bitmap->mddev->bitmap_info.max_write_behind = write_behind;
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h +0 -1
index ecf3b6562ba2..c83dd0acb5b0 100644
@@ -58,7 +58,6 @@
 #define CAST_OFBSIZE_LO			CAST_STATUS18
 #define CAST_OFBSIZE_HI			CAST_STATUS19
 
-#define MXC_MAX_SLOTS	1 /* TODO use all 4 slots*/
 /* JPEG-Decoder Wrapper Slot Registers 0..3 */
 #define SLOT_BASE			0x10000
 #define SLOT_STATUS			0x0
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +127 -85

361 lines not on this page · raw message

drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +4 -2
index d742b638ddc9..00ecb976fd75 100644
@@ -92,14 +92,16 @@ struct mxc_jpeg_ctx {
 	struct mxc_jpeg_q_data		cap_q;
 	struct v4l2_fh			fh;
 	enum mxc_jpeg_enc_state		enc_state;
-	unsigned int			slot;
+	int				slot;
 	unsigned int			source_change;
 	bool				header_parsed;
 	struct v4l2_ctrl_handler	ctrl_handler;
 	u8				jpeg_quality;
+	struct delayed_work		task_timer;
 };
 
 struct mxc_jpeg_slot_data {
+	int slot;
 	bool used;
 	struct mxc_jpeg_desc *desc; // enc/dec descriptor
 	struct mxc_jpeg_desc *cfg_desc; // configuration descriptor
@@ -122,7 +124,7 @@ struct mxc_jpeg_dev {
 	struct v4l2_device		v4l2_dev;
 	struct v4l2_m2m_dev		*m2m_dev;
 	struct video_device		*dec_vdev;
-	struct mxc_jpeg_slot_data	slot_data[MXC_MAX_SLOTS];
+	struct mxc_jpeg_slot_data	slot_data;
 	int				num_domains;
 	struct device			**pd_dev;
 	struct device_link		**pd_link;
drivers/media/usb/uvc/uvc_ctrl.c +26 -14
index 618e66784d0e..466f947ef440 100644
@@ -1752,7 +1752,7 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 	unsigned int processed_ctrls = 0;
 	struct uvc_control *ctrl;
 	unsigned int i;
-	int ret;
+	int ret = 0;
 
 	if (entity == NULL)
 		return 0;
@@ -1781,8 +1781,6 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 				dev->intfnum, ctrl->info.selector,
 				uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
 				ctrl->info.size);
-		else
-			ret = 0;
 
 		if (!ret)
 			processed_ctrls++;
@@ -1794,17 +1792,24 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 
 		ctrl->dirty = 0;
 
-		if (ret < 0) {
+		if (!rollback && handle && !ret &&
+		    ctrl->info.flags & UVC_CTRL_FLAG_ASYNCHRONOUS)
+			uvc_ctrl_set_handle(handle, ctrl, handle);
+
+		if (ret < 0 && !rollback) {
 			if (err_ctrl)
 				*err_ctrl = ctrl;
-			return ret;
+			/*
+			 * If we fail to set a control, we need to rollback
+			 * the next ones.
+			 */
+			rollback = 1;
 		}
-
-		if (!rollback && handle &&
-		    ctrl->info.flags & UVC_CTRL_FLAG_ASYNCHRONOUS)
-			uvc_ctrl_set_handle(handle, ctrl, handle);
 	}
 
+	if (ret)
+		return ret;
+
 	return processed_ctrls;
 }
 
@@ -1835,7 +1840,8 @@ int __uvc_ctrl_commit(struct uvc_fh *handle, int rollback,
 	struct uvc_video_chain *chain = handle->chain;
 	struct uvc_control *err_ctrl;
 	struct uvc_entity *entity;
-	int ret = 0;
+	int ret_out = 0;
+	int ret;
 
 	/* Find the control. */
 	list_for_each_entry(entity, &chain->entities, chain) {
@@ -1846,17 +1852,23 @@ int __uvc_ctrl_commit(struct uvc_fh *handle, int rollback,
 				ctrls->error_idx =
 					uvc_ctrl_find_ctrl_idx(entity, ctrls,
 							       err_ctrl);
-			goto done;
+			/*
+			 * When we fail to commit an entity, we need to
+			 * restore the UVC_CTRL_DATA_BACKUP for all the
+			 * controls in the other entities, otherwise our cache
+			 * and the hardware will be out of sync.
+			 */
+			rollback = 1;
+
+			ret_out = ret;
 		} else if (ret > 0 && !rollback) {
 			uvc_ctrl_send_events(handle, entity,
 					     ctrls->controls, ctrls->count);
 		}
 	}
 
-	ret = 0;
-done:
 	mutex_unlock(&chain->ctrl_mutex);
-	return ret;
+	return ret_out;
 }
 
 int uvc_ctrl_get(struct uvc_video_chain *chain,
drivers/mfd/max14577.c +1 -0
index d44ad6f33742..61a5ccafa18e 100644
@@ -467,6 +467,7 @@ static void max14577_i2c_remove(struct i2c_client *i2c)
 {
 	struct max14577 *max14577 = i2c_get_clientdata(i2c);
 
+	device_init_wakeup(max14577->dev, false);
 	mfd_remove_devices(max14577->dev);
 	regmap_del_irq_chip(max14577->irq, max14577->irq_data);
 	if (max14577->dev_type == MAXIM_DEVICE_TYPE_MAX77836)
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c +17 -9
index caab3d626a2a..63e067038385 100644
@@ -98,7 +98,6 @@ static int bnxt_hwrm_queue_cos2bw_cfg(struct bnxt *bp, struct ieee_ets *ets,
 {
 	struct hwrm_queue_cos2bw_cfg_input *req;
 	struct bnxt_cos2bw_cfg cos2bw;
-	void *data;
 	int rc, i;
 
 	rc = hwrm_req_init(bp, req, HWRM_QUEUE_COS2BW_CFG);
@@ -129,11 +128,15 @@ static int bnxt_hwrm_queue_cos2bw_cfg(struct bnxt *bp, struct ieee_ets *ets,
 				cpu_to_le32((ets->tc_tx_bw[i] * 100) |
 					    BW_VALUE_UNIT_PERCENT1_100);
 		}
-		data = &req->unused_0 + qidx * (sizeof(cos2bw) - 4);
-		memcpy(data, &cos2bw.queue_id, sizeof(cos2bw) - 4);
 		if (qidx == 0) {
 			req->queue_id0 = cos2bw.queue_id;
-			req->unused_0 = 0;
+			req->queue_id0_min_bw = cos2bw.min_bw;
+			req->queue_id0_max_bw = cos2bw.max_bw;
+			req->queue_id0_tsa_assign = cos2bw.tsa;
+			req->queue_id0_pri_lvl = cos2bw.pri_lvl;
+			req->queue_id0_bw_weight = cos2bw.bw_weight;
+		} else {
+			memcpy(&req->cfg[i - 1], &cos2bw.cfg, sizeof(cos2bw.cfg));
 		}
 	}
 	return hwrm_req_send(bp, req);
@@ -144,7 +147,6 @@ static int bnxt_hwrm_queue_cos2bw_qcfg(struct bnxt *bp, struct ieee_ets *ets)
 	struct hwrm_queue_cos2bw_qcfg_output *resp;
 	struct hwrm_queue_cos2bw_qcfg_input *req;
 	struct bnxt_cos2bw_cfg cos2bw;
-	void *data;
 	int rc, i;
 
 	rc = hwrm_req_init(bp, req, HWRM_QUEUE_COS2BW_QCFG);
@@ -158,13 +160,19 @@ static int bnxt_hwrm_queue_cos2bw_qcfg(struct bnxt *bp, struct ieee_ets *ets)
 		return rc;
 	}
 
-	data = &resp->queue_id0 + offsetof(struct bnxt_cos2bw_cfg, queue_id);
-	for (i = 0; i < bp->max_tc; i++, data += sizeof(cos2bw.cfg)) {
+	for (i = 0; i < bp->max_tc; i++) {
 		int tc;
 
-		memcpy(&cos2bw.cfg, data, sizeof(cos2bw.cfg));
-		if (i == 0)
+		if (i == 0) {
 			cos2bw.queue_id = resp->queue_id0;
+			cos2bw.min_bw = resp->queue_id0_min_bw;
+			cos2bw.max_bw = resp->queue_id0_max_bw;
+			cos2bw.tsa = resp->queue_id0_tsa_assign;
+			cos2bw.pri_lvl = resp->queue_id0_pri_lvl;
+			cos2bw.bw_weight = resp->queue_id0_bw_weight;
+		} else {
+			memcpy(&cos2bw.cfg, &resp->cfg[i - 1], sizeof(cos2bw.cfg));
+		}
 
 		tc = bnxt_queue_to_tc(bp, cos2bw.queue_id);
 		if (tc < 0)
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h +84 -560

652 lines not on this page · raw message

drivers/net/ethernet/freescale/enetc/enetc_hw.h +1 -1
index 18ca1f42b1f7..04d3e0dedc96 100644

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

drivers/nvme/host/ioctl.c +7 -8
index acf73a91e87e..bdc70025fb53 100644

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

drivers/pci/controller/pcie-apple.c +4 -3
index 487d01f6b4f5..1113e21ee386 100644

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

drivers/s390/crypto/pkey_api.c +1 -1
index 17885c9f55cb..6a94f4965a2d 100644

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

drivers/scsi/megaraid/megaraid_sas_base.c +5 -1
index 247e84e989aa..0d398029b2af 100644

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

drivers/staging/rtl8723bs/core/rtw_security.c +14 -30

44 lines not on this page · raw message

drivers/tty/serial/imx.c +12 -5
index fe22ca009fb3..e1d88a499554 100644

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

drivers/tty/serial/uartlite.c +12 -13
index eca41ac5477c..a75677d5cbef 100644

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

drivers/tty/vt/vt.c +6 -6
index e1b40a384868..ccfd9d93c10c 100644

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

drivers/uio/uio_hv_generic.c +8 -2
index 94dda3d4d509..2cfe0087abc1 100644

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

drivers/usb/class/cdc-wdm.c +9 -14
index e3408a67af45..3da91bb8b316 100644

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

drivers/usb/common/usb-conn-gpio.c +22 -3
index 3f5180d64931..91461c744fcd 100644

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

drivers/usb/core/usb.c +10 -4
index 3500e3c94c4b..2215f8ca5417 100644

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

drivers/usb/dwc2/gadget.c +6 -0
index cea6c4fc7995..d4ca1677ad23 100644

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

drivers/usb/gadget/function/f_tcm.c +2 -2
index 3c9541357c24..55a81ad6837b 100644

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

drivers/usb/typec/altmodes/displayport.c +4 -0
index f80124102328..26e0e72f4f16 100644

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

drivers/usb/typec/mux.c +2 -2
index 941735c73161..a74f8e1a28c2 100644

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

drivers/video/console/dummycon.c +16 -8
index f1711b2f9ff0..d99e1b3e4e5c 100644

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

drivers/video/console/mdacon.c +8 -13
index ef29b321967f..26b41a8f36c8 100644

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

drivers/video/console/newport_con.c +6 -6
index d9c682ae0392..1ebb18bf1098 100644

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

drivers/video/console/sticon.c +7 -7
index f304163e87e9..6b82194a8ef3 100644

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

drivers/video/console/vgacon.c +13 -21
index e960b27caada..81f27cd61027 100644

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

drivers/video/fbdev/core/fbcon.c +23 -17
index 3f9d2178d387..1a1727418711 100644

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

drivers/video/fbdev/core/fbmem.c +11 -7
index 7355a299cdb5..f8c32c58b5b2 100644

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

drivers/video/fbdev/hyperv_fb.c +8 -0
index 41c496ff55cc..dfb449f3e4a4 100644

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

fs/btrfs/disk-io.c +1 -2
index 8c0da0025bc7..76a261cbf39d 100644

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

fs/btrfs/inode.c +64 -17

81 lines not on this page · raw message

fs/btrfs/volumes.c +6 -0
index a4177014eb8b..628238493167 100644

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

fs/ceph/file.c +1 -1
index 882eccfd67e8..3336647e64df 100644

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

fs/f2fs/super.c +18 -12
index f415bc073bb5..84fc6591e3f9 100644

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

fs/jfs/jfs_dmap.c +13 -28

41 lines not on this page · raw message

fs/namespace.c +4 -4
index aae1a77ac2d3..67d89ebb5044 100644

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

fs/nfs/inode.c +2 -0
index f2e66b946f4b..e774cfc85eee 100644

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

fs/nfs/nfs4proc.c +15 -2
index 0f28607c5747..29f8a2df2c11 100644

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

fs/omfs/file.c +6 -6
index fa7fe2393ff6..425ff6800c41 100644

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

fs/omfs/omfs_fs.h +1 -1
index caecb3d5a344..1ff6b9e41297 100644

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

fs/overlayfs/util.c +3 -1
index 83cd20f79c5c..6922d8d705cb 100644

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

fs/smb/client/cifsglob.h +1 -0
index 17fce0afb297..9c5aa646b8cc 100644

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

fs/smb/client/cifspdu.h +3 -3
index 9cb457706334..a682c50d7ace 100644

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

fs/smb/client/cifssmb.c +1 -0
index 6077fe1dcc9c..0c6ade196894 100644

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

fs/smb/client/misc.c +8 -0
index 3826f7176608..99a0a1fe6618 100644

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

fs/smb/client/sess.c +1 -0
index c8f7ae0a2006..883d1cb1fc8b 100644

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

fs/smb/server/smb2pdu.c +30 -32

62 lines not on this page · raw message

include/asm-generic/mshyperv.h +1 -1
index bfb9eb9d7215..a9b52845335c 100644

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

include/linux/console.h +9 -4
index 8c1686e2c233..ab8b19f6affa 100644

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

include/linux/hyperv.h +2 -0
index 80d876593caa..43f778b6b9cd 100644

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

include/linux/ipv6.h +0 -1
index 9f27e004127b..9a44de45cc1f 100644

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

include/uapi/linux/vm_sockets.h +4 -0
index ed07181d4eff..e05280e41522 100644

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

io_uring/kbuf.c +1 -1
index 147ada2ce747..d18fe3996ddb 100644

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

lib/Kconfig.debug +9 -0
index e5fbae585e52..1220e8113dad 100644

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

lib/Makefile +2 -0
index 6f1611d053e6..6ae66e13f319 100644

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

lib/longest_symbol_kunit.c new file +82 -0

82 lines not on this page · raw message

net/atm/clip.c +5 -6
index 294cb9efe3d3..511467bb7fe4 100644

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

net/atm/resources.c +1 -2
index 995d29e7fb13..b19d851e1f44 100644

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

net/bluetooth/l2cap_core.c +8 -1
index 550c3da6f391..514adb013f3f 100644

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

net/core/selftests.c +3 -2
index 7af99d07762e..946e92cca211 100644

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

net/ipv6/ip6_output.c +4 -5
index cfc276e5a249..f7a225da8525 100644

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

net/mac80211/util.c +1 -1
index e8326e09d1b3..e60c8607e4b6 100644

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

net/unix/af_unix.c +28 -30

58 lines not on this page · raw message

net/unix/garbage.c +3 -21
index 23efb78fe9ef..0068e758be4d 100644

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

rust/macros/module.rs +1 -0
index 94a92ab82b6b..eeca6b2d5160 100644

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

sound/pci/hda/hda_bind.c +1 -1
index 890c2f7c33fc..4c7355a0814d 100644

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

sound/pci/hda/hda_intel.c +3 -0
index d1639d8c2298..1bb315c175f6 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 3cacdbcb0d3e..13b3ec78010a 100644

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

sound/soc/amd/yc/acp6x-mach.c +7 -0
index d5dc1d48fca9..30f28f33a52c 100644

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

sound/soc/codecs/wcd9335.c +20 -42

62 lines not on this page · raw message

sound/usb/quirks.c +2 -0
index b2a612c5b299..ac43bdf6e9ca 100644

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

sound/usb/stream.c +2 -0
index e14c725acebf..0f1558ef8555 100644

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

tools/lib/bpf/btf_dump.c +3 -0
index cfdee656789b..72334cc14d73 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.