Skip to contentSkip to conversation

Linux 6.1.18

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 11, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.18 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/ABI/testing/configfs-usb-gadget-uvc                |    2 
 Makefile                                                         |    2 
 arch/arm/boot/dts/spear320-hmi.dts                               |    2 
 arch/arm64/include/asm/efi.h                                     |    6 
 arch/arm64/include/asm/mte.h                                     |   30 
 arch/arm64/include/asm/pgtable.h                                 |    2 
 arch/arm64/kernel/cpufeature.c                                   |    4 
 arch/arm64/kernel/efi.c                                          |    2 
 arch/arm64/kernel/elfcore.c                                      |    2 
 arch/arm64/kernel/hibernate.c                                    |    2 
 arch/arm64/kernel/mte.c                                          |   17 
 arch/arm64/kvm/guest.c                                           |    4 
 arch/arm64/kvm/mmu.c                                             |    4 
 arch/arm64/mm/copypage.c                                         |    6 
 arch/arm64/mm/fault.c                                            |    2 
 arch/arm64/mm/mteswap.c                                          |    2 
 arch/um/drivers/vector_kern.c                                    |    1 
 arch/um/drivers/virt-pci.c                                       |   26 
 arch/um/drivers/virtio_uml.c                                     |   18 
 arch/x86/include/asm/resctrl.h                                   |   12 
 arch/x86/kernel/cpu/resctrl/rdtgroup.c                           |    4 
 arch/x86/kernel/process_32.c                                     |    2 
 arch/x86/kernel/process_64.c                                     |    2 
 arch/x86/um/vdso/um_vdso.c                                       |   12 
 drivers/acpi/device_pm.c                                         |   19 
 drivers/auxdisplay/hd44780.c                                     |    2 
 drivers/base/cacheinfo.c                                         |   27 
 drivers/base/component.c                                         |    2 
 drivers/base/dd.c                                                |    2 
 drivers/block/loop.c                                             |    8 
 drivers/bus/mhi/ep/main.c                                        |    2 
 drivers/firmware/efi/sysfb_efi.c                                 |    8 
 drivers/gpu/drm/display/drm_dp_mst_topology.c                    |   45 
 drivers/gpu/drm/i915/Kconfig                                     |    6 
 drivers/gpu/drm/i915/display/intel_display.c                     |    4 
 drivers/gpu/drm/i915/display/intel_dp_mst.c                      |   61 
 drivers/gpu/drm/i915/display/intel_dp_mst.h                      |    4 
 drivers/gpu/drm/i915/display/intel_fbdev.c                       |    8 
 drivers/iio/accel/mma9551_core.c                                 |   10 
 drivers/infiniband/core/cma.c                                    |   17 
 drivers/infiniband/hw/hfi1/chip.c                                |   59 
 drivers/iommu/amd/iommu.c                                        |   12 
 drivers/iommu/iommu.c                                            |   16 
 drivers/media/usb/uvc/uvc_ctrl.c                                 |    5 
 drivers/media/usb/uvc/uvc_driver.c                               |   90 -
 drivers/media/usb/uvc/uvc_entity.c                               |    2 
 drivers/media/usb/uvc/uvc_status.c                               |   37 
 drivers/media/usb/uvc/uvc_v4l2.c                                 |    2 
 drivers/media/usb/uvc/uvc_video.c                                |   15 
 drivers/media/usb/uvc/uvcvideo.h                                 |    4 
 drivers/memory/renesas-rpc-if.c                                  |  120 +
 drivers/mfd/arizona-core.c                                       |    2 
 drivers/misc/mei/bus-fixup.c                                     |    8 
 drivers/misc/vmw_balloon.c                                       |    2 
 drivers/mtd/ubi/build.c                                          |    7 
 drivers/mtd/ubi/fastmap-wl.c                                     |   12 
 drivers/mtd/ubi/vmt.c                                            |   18 
 drivers/mtd/ubi/wl.c                                             |   25 
 drivers/net/dsa/ocelot/felix_vsc9959.c                           |    2 
 drivers/net/dsa/ocelot/seville_vsc9953.c                         |    4 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c          |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c           |   76 -
 drivers/net/ethernet/mellanox/mlx5/core/ecpf.c                   |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c                 |   25 
 drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h                |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.c               |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.h               |    1 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c       |    3 
 drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c             |    1 
 drivers/net/ethernet/mellanox/mlx5/core/sriov.c                  |    4 
 drivers/net/ethernet/sun/sunhme.c                                |    6 
 drivers/net/mdio/mdio-mscc-miim.c                                |    9 
 drivers/nfc/st-nci/se.c                                          |    6 
 drivers/nfc/st21nfca/se.c                                        |    6 
 drivers/nvme/host/core.c                                         |   35 
 drivers/nvme/host/fabrics.h                                      |    3 
 drivers/nvme/host/tcp.c                                          |    6 
 drivers/pci/controller/pci-loongson.c                            |   71 
 drivers/pci/hotplug/pciehp_hpc.c                                 |    2 
 drivers/pci/pci-acpi.c                                           |   45 
 drivers/pci/pci.c                                                |   10 
 drivers/pci/quirks.c                                             |   22 
 drivers/pci/setup-bus.c                                          |  236 ++-
 drivers/phy/rockchip/phy-rockchip-typec.c                        |    3 
 drivers/ptp/ptp_private.h                                        |    2 
 drivers/ptp/ptp_vclock.c                                         |   44 
 drivers/pwm/pwm-sifive.c                                         |    8 
 drivers/pwm/pwm-stm32-lp.c                                       |    2 
 drivers/rtc/interface.c                                          |    2 
 drivers/rtc/rtc-sun6i.c                                          |   16 
 drivers/scsi/ipr.c                                               |   41 
 drivers/scsi/mpi3mr/mpi3mr.h                                     |   10 
 drivers/scsi/mpi3mr/mpi3mr_fw.c                                  |   75 -
 drivers/scsi/mpi3mr/mpi3mr_transport.c                           |    2 
 drivers/soc/mediatek/mt8186-pm-domains.h                         |    4 
 drivers/soc/mediatek/mtk-svs.c                                   |   48 
 drivers/soc/qcom/qcom_stats.c                                    |   10 
 drivers/soc/xilinx/xlnx_event_manager.c                          |    4 
 drivers/soundwire/bus_type.c                                     |    9 
 drivers/soundwire/cadence_master.c                               |   43 
 drivers/soundwire/cadence_master.h                               |   13 
 drivers/spi/spi-tegra210-quad.c                                  |   14 
 drivers/staging/emxx_udc/emxx_udc.c                              |    7 
 drivers/staging/pi433/pi433_if.c                                 |   11 
 drivers/thermal/intel/Kconfig                                    |    3 
 drivers/thermal/intel/intel_quark_dts_thermal.c                  |   12 
 drivers/tty/serial/fsl_lpuart.c                                  |   24 
 drivers/tty/serial/pch_uart.c                                    |    2 
 drivers/tty/serial/sc16is7xx.c                                   |   51 
 drivers/tty/tty_io.c                                             |    8 
 drivers/tty/vt/vc_screen.c                                       |    4 
 drivers/usb/chipidea/debug.c                                     |    2 
 drivers/usb/common/ulpi.c                                        |   14 
 drivers/usb/core/usb.c                                           |    2 
 drivers/usb/dwc3/core.h                                          |    2 
 drivers/usb/dwc3/debug.h                                         |    3 
 drivers/usb/dwc3/debugfs.c                                       |   19 
 drivers/usb/dwc3/gadget.c                                        |    4 
 drivers/usb/gadget/function/uvc_configfs.c                       |   59 
 drivers/usb/gadget/udc/bcm63xx_udc.c                             |    2 
 drivers/usb/gadget/udc/gr_udc.c                                  |    2 
 drivers/usb/gadget/udc/lpc32xx_udc.c                             |    2 
 drivers/usb/gadget/udc/pxa25x_udc.c                              |    2 
 drivers/usb/gadget/udc/pxa27x_udc.c                              |    2 
 drivers/usb/host/fotg210-hcd.c                                   |    2 
 drivers/usb/host/isp116x-hcd.c                                   |    2 
 drivers/usb/host/isp1362-hcd.c                                   |    2 
 drivers/usb/host/sl811-hcd.c                                     |    2 
 drivers/usb/host/uhci-hcd.c                                      |    6 
 drivers/usb/host/xhci-mvebu.c                                    |    2 
 drivers/usb/storage/ene_ub6250.c                                 |    2 
 drivers/vdpa/ifcvf/ifcvf_base.c                                  |   30 
 drivers/vdpa/ifcvf/ifcvf_base.h                                  |    6 
 drivers/vdpa/ifcvf/ifcvf_main.c                                  |  139 -
 drivers/watchdog/at91sam9_wdt.c                                  |    7 
 drivers/watchdog/pcwd_usb.c                                      |    6 
 drivers/watchdog/rzg2l_wdt.c                                     |   45 
 drivers/watchdog/sbsa_gwdt.c                                     |    1 
 drivers/watchdog/watchdog_dev.c                                  |    2 
 fs/ext4/ext4.h                                                   |    1 
 fs/ext4/fast_commit.c                                            |   44 
 fs/ext4/super.c                                                  |   30 
 fs/f2fs/data.c                                                   |   24 
 fs/f2fs/f2fs.h                                                   |    8 
 fs/f2fs/file.c                                                   |   74 
 fs/f2fs/inode.c                                                  |   16 
 fs/f2fs/iostat.c                                                 |    6 
 fs/f2fs/segment.c                                                |   23 
 fs/f2fs/super.c                                                  |    2 
 fs/f2fs/verity.c                                                 |    2 
 fs/jfs/jfs_dmap.c                                                |    3 
 fs/ubifs/budget.c                                                |    9 
 fs/ubifs/dir.c                                                   |    9 
 fs/ubifs/file.c                                                  |   31 
 fs/ubifs/super.c                                                 |   17 
 fs/ubifs/sysfs.c                                                 |    2 
 fs/ubifs/tnc.c                                                   |   24 
 fs/ubifs/ubifs.h                                                 |    5 
 include/acpi/acpi_bus.h                                          |    1 
 include/drm/display/drm_dp_mst_helper.h                          |    3 
 include/linux/bootconfig.h                                       |    2 
 include/linux/mdio/mdio-mscc-miim.h                              |    2 
 include/linux/netfilter.h                                        |    5 
 include/linux/pci.h                                              |    1 
 include/linux/pci_ids.h                                          |    2 
 include/media/v4l2-uvc.h                                         |    8 
 include/memory/renesas-rpc-if.h                                  |   16 
 include/net/netns/conntrack.h                                    |    1 
 include/net/sctp/structs.h                                       |    1 
 include/net/tc_act/tc_pedit.h                                    |   81 -
 include/trace/events/f2fs.h                                      |   37 
 include/uapi/linux/usb/video.h                                   |   30 
 include/uapi/linux/uvcvideo.h                                    |    2 
 io_uring/kbuf.c                                                  |    2 
 io_uring/net.c                                                   |   16 
 io_uring/poll.c                                                  |   21 
 io_uring/poll.h                                                  |    1 
 kernel/fail_function.c                                           |    5 
 kernel/irq/ipi.c                                                 |    8 
 kernel/printk/index.c                                            |    2 
 kernel/trace/ring_buffer.c                                       |    7 
 net/9p/trans_rdma.c                                              |   15 
 net/9p/trans_xen.c                                               |   48 
 net/bridge/netfilter/ebtables.c                                  |    2 
 net/core/dev.c                                                   |    4 
 net/ipv4/netfilter/arp_tables.c                                  |    4 
 net/ipv4/netfilter/ip_tables.c                                   |    7 
 net/ipv4/tcp_minisocks.c                                         |    7 
 net/ipv6/netfilter/ip6_tables.c                                  |    7 
 net/ipv6/netfilter/ip6t_rpfilter.c                               |    4 
 net/ipv6/route.c                                                 |   11 
 net/netfilter/core.c                                             |    3 
 net/netfilter/nf_conntrack_bpf.c                                 |    1 
 net/netfilter/nf_conntrack_core.c                                |   25 
 net/netfilter/nf_conntrack_ecache.c                              |    2 
 net/netfilter/nf_conntrack_netlink.c                             |    8 
 net/netfilter/nf_tables_api.c                                    |    2 
 net/netfilter/nfnetlink.c                                        |    9 
 net/netfilter/xt_length.c                                        |    3 
 net/nfc/netlink.c                                                |    4 
 net/sched/Kconfig                                                |   11 
 net/sched/Makefile                                               |    1 
 net/sched/act_mpls.c                                             |   66 
 net/sched/act_pedit.c                                            |  178 +-
 net/sched/act_sample.c                                           |   11 
 net/sched/cls_tcindex.c                                          |  741 ----------
 net/sctp/stream_sched_prio.c                                     |   52 
 net/tls/tls_sw.c                                                 |   26 
 sound/soc/apple/mca.c                                            |   31 
 sound/soc/codecs/Kconfig                                         |    1 
 sound/soc/codecs/adau7118.c                                      |   19 
 sound/soc/mediatek/mt8195/mt8195-dai-etdm.c                      |    3 
 tools/iio/iio_utils.c                                            |   23 
 tools/objtool/check.c                                            |    2 
 tools/testing/selftests/netfilter/rpath.sh                       |   32 
 tools/testing/selftests/tc-testing/tc-tests/filters/tcindex.json |  227 ---
 216 files changed, 2273 insertions(+), 2153 deletions(-)

Akinobu Mita (1):
nvme-tcp: don't access released socket during error recovery

Alexander Potapenko (1):
fs: f2fs: initialize fsdata in pagecache_write()

Alexander Usyskin (1):
mei: bus-fixup:upon error print return values of send and receive

Alexandre Belloni (1):
rtc: allow rtc_read_alarm without read_alarm callback

Ammar Faizi (1):
x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list

Arnd Bergmann (2):
scsi: ipr: Work around fortify-string warning
ASoC: zl38060 add gpiolib dependency

Benjamin Berg (4):
um: virtio_uml: free command if adding to virtqueue failed
um: virtio_uml: mark device as unregistered when breaking it
um: virtio_uml: move device breaking into workqueue
um: virt-pci: properly remove PCI device from bus

Catalin Marinas (1):
arm64: mte: Fix/clarify the PG_mte_tagged semantics

Chao Yu (4):
f2fs: fix to avoid potential deadlock
f2fs: introduce trace_f2fs_replace_atomic_write_block
f2fs: clear atomic_write_task in f2fs_abort_atomic_write()
f2fs: fix to abort atomic write only during do_exist()

Chen Jun (1):
watchdog: Fix kmemleak in watchdog_cdev_register

Christoph Hellwig (2):
f2fs: don't rely on F2FS_MAP_* in f2fs_iomap_begin
nvme: bring back auto-removal of deleted namespaces during sequential scan

Daeho Jeong (2):
f2fs: correct i_size change for atomic writes
f2fs: synchronize atomic write aborts

Dan Carpenter (1):
thermal: intel: quark_dts: fix error pointer dereference

Daniel Scally (2):
usb: uvc: Enumerate valid values for color matching
usb: gadget: uvc: Make bSourceID read/write

Daniel Wagner (1):
nvme-fabrics: show well known discovery name

Darrell Kavanagh (1):
firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3

Dean Luick (1):
IB/hfi1: Update RMT size calculation

Deepak R Varma (1):
octeontx2-pf: Use correct struct reference in test condition

Emil Renner Berthing (1):
pwm: sifive: Always let the first pwm_apply_state succeed

Eric Biggers (1):
ext4: use ext4_fc_tl_mem in fast-commit replay path

Eric Dumazet (2):
net: fix __dev_kfree_skb_any() vs drop monitor
tcp: tcp_check_req() can be called from process context

Fabrice Gasnier (1):
pwm: stm32-lp: fix the check on arr and cmp registers update

Fabrizio Castro (1):
watchdog: rzg2l_wdt: Handle TYPE-B reset for RZ/V2M

Fedor Pchelkin (1):
nfc: fix memory leak of se_io context in nfc_genl_se_io

Florian Westphal (3):
netfilter: conntrack: fix rmmod double-free race
netfilter: ebtables: fix table blob use-after-free
netfilter: ctnetlink: make event listener tracking global

Gaosheng Cui (1):
driver: soc: xilinx: fix memory leak in xlnx_add_cb_for_notify_event()

Geert Uytterhoeven (2):
memory: renesas-rpc-if: Split-off private data from struct rpcif
memory: renesas-rpc-if: Move resource acquisition to .probe()

Geetha sowjanya (1):
octeontx2-pf: Recalculate UDP checksum for ptp 1-step sync packet

George Cherian (1):
watchdog: sbsa_wdog: Make sure the timeout programming is within the limits

George Kennedy (2):
ubi: ensure that VID header offset + VID header size <= alloc, size
vc_screen: modify vcs_size() handling in vcs_read()

Greg Kroah-Hartman (22):
kernel/printk/index.c: fix memory leak with using debugfs_lookup()
USB: fix memory leak with using debugfs_lookup()
staging: pi433: fix memory leak with using debugfs_lookup()
USB: dwc3: fix memory leak with using debugfs_lookup()
USB: chipidea: fix memory leak with using debugfs_lookup()
USB: ULPI: fix memory leak with using debugfs_lookup()
USB: uhci: fix memory leak with using debugfs_lookup()
USB: sl811: fix memory leak with using debugfs_lookup()
USB: fotg210: fix memory leak with using debugfs_lookup()
USB: isp116x: fix memory leak with using debugfs_lookup()
USB: isp1362: fix memory leak with using debugfs_lookup()
USB: gadget: gr_udc: fix memory leak with using debugfs_lookup()
USB: gadget: bcm63xx_udc: fix memory leak with using debugfs_lookup()
USB: gadget: lpc32xx_udc: fix memory leak with using debugfs_lookup()
USB: gadget: pxa25x_udc: fix memory leak with using debugfs_lookup()
USB: gadget: pxa27x_udc: fix memory leak with using debugfs_lookup()
tty: pcn_uart: fix memory leak with using debugfs_lookup()
misc: vmw_balloon: fix memory leak with using debugfs_lookup()
drivers: base: component: fix memory leak with using debugfs_lookup()
drivers: base: dd: fix memory leak with using debugfs_lookup() kernel/fail_function: fix memory leak with using debugfs_lookup() Linux 6.1.18

Guenter Roeck (1):
media: uvcvideo: Handle errors from calls to usb_string

Hangyu Hua (1):
netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack()

Harshit Mogalapalli (2):
iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_status_word()
iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word()

Huacai Chen (2):
PCI: loongson: Prevent LS7A MRRS increases
PCI: loongson: Add more devices that need MRRS quirk

Imre Deak (6):
drm/display/dp_mst: Add drm_atomic_get_old_mst_topology_state() drm/display/dp_mst: Fix down/up message handling after sink disconnect drm/display/dp_mst: Fix down message handling after a packet reception error drm/display/dp_mst: Fix payload addition on a disconnected sink drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs drm/i915: Fix system suspend without fbdev being initialized

Isaac True (1):
serial: sc16is7xx: setup GPIO controller later in probe

Jakub Kicinski (1):
net: tls: avoid hanging tasks on the tx_lock

Jamal Hadi Salim (1):
net/sched: Retire tcindex classifier

Jens Axboe (1):
io_uring/poll: allow some retries for poll triggering spuriously

Jia-Ju Bai (1):
tracing: Add NULL checks for buffer in ring_buffer_free_read_page()

Jianglei Nie (1):
auxdisplay: hd44780: Fix potential memory leak in hd44780_remove()

Jiapeng Chong (1):
phy: rockchip-typec: Fix unsigned comparison with less than zero

Juergen Gross (2):
9p/xen: fix version parsing
9p/xen: fix connection sequence

Kees Cook (4):
media: uvcvideo: Silence memcpy() run-time false positive warnings
usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math
USB: ene_usb6250: Allocate enough memory for full object
RDMA/cma: Distinguish between sockaddr_in and sockaddr_in6 by size

Krishna Yarlagadda (2):
spi: tegra210-quad: Fix validate combined sequence
spi: tegra210-quad: Fix iterator outside loop

Krzysztof Kozlowski (1):
ARM: dts: spear320-hmi: correct STMPE GPIO compatible

Lad Prabhakar (1):
watchdog: rzg2l_wdt: Issue a reset before we put the PM clocks

Laurent Pinchart (1):
media: uvcvideo: Remove format descriptions

Li Hua (2):
ubifs: Fix build errors as symbol undefined
watchdog: pcwd_usb: Fix attempting to access uninitialized memory

Li Zetao (3):
ubi: Fix use-after-free when volume resizing failed
ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
ubifs: Fix memory leak in alloc_wbufs()

Liang He (1):
mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak

Linus Torvalds (1):
x86/resctl: fix scheduler confusion with 'current'

Liu Shixin (1):
ubifs: Fix memory leak in ubifs_sysfs_init()

Liu Shixin via Jfs-discussion (1):
fs/jfs: fix shift exponent db_agl2size negative

Lu Wei (1):
ipv6: Add lwtunnel encap size of all siblings in nexthop calculation

Maher Sanalla (1):
net/mlx5: ECPF, wait for VF pages only after disabling host PFs

Manivannan Sadhasivam (2):
bus: mhi: ep: Fix the debug message for MHI_PKT_TYPE_RESET_CHAN_CMD cmd
PCI: pciehp: Add Qualcomm quirk for Command Completed erratum

Maor Dickman (1):
net/mlx5: Geneve, Fix handling of Geneve object id as error code

Marek Vasut (1):
media: uvcvideo: Add GUID for BGRA/X 8:8:8:8

Martin Povišer (3):
ASoC: apple: mca: Fix final status read on SERDES reset
ASoC: apple: mca: Fix SERDES reset sequence
ASoC: apple: mca: Improve handling of unavailable DMA channels

Mengyuan Lou (1):
PCI: Add ACS quirk for Wangxun NICs

Miaoqian Lin (1):
objtool: Fix memory leak in create_static_call_sections()

Mika Westerberg (3):
PCI: Align extra resources for hotplug bridges properly
PCI: Take other bus devices into account when distributing resources
PCI: Distribute available resources for root buses, too

Nuno Sá (1):
ASoC: adau7118: don't disable regulators on device unbind

Pablo Neira Ayuso (1):
netfilter: nf_tables: allow to fetch set elements when table has an owner

Pavel Tikhomirov (1):
netfilter: x_tables: fix percpu counter block leak on error path when creating new netns

Pedro Tammela (4):
net/sched: transition act_pedit to rcu and percpu stats net/sched: act_pedit: fix action bind logic net/sched: act_mpls: fix action bind logic net/sched: act_sample: fix action bind logic

Peter Collingbourne (1):
arm64: Reset KASAN tag in copy_highpage with HW tags only

Phil Sutter (1):
netfilter: ip6t_rpfilter: Fix regression with VRF interfaces

Pierre Gondois (1):
arm64: efi: Make efi_rt_lock a raw_spinlock

Rafael J. Wysocki (1):
PCI/ACPI: Account for _S0W of the target bridge in acpi_pci_bridge_d3()

Randy Dunlap (2):
drm/i915: move a Kconfig symbol to unbreak the menu presentation
thermal: intel: BXT_PMIC: select REGMAP instead of depending on it

Ricardo Ribalda (4):
soc: mediatek: mtk-svs: Enable the IRQ later
media: uvcvideo: Handle cameras with invalid descriptors
media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
media: uvcvideo: Fix race condition with usb_kill_urb

Richard Fitzgerald (3):
soundwire: bus_type: Avoid lockdep assert in sdw_drv_probe()
soundwire: cadence: Remove wasted space in response_buf
soundwire: cadence: Drain the RX FIFO after an IO timeout

Roger Lu (2):
soc: mediatek: mtk-svs: restore default voltages when svs_init02() fail
soc: mediatek: mtk-svs: reset svs when svs_resume() fail

Roi Dayan (1):
net/mlx5e: Verify flow_source cap before using it

Samuel Holland (1):
rtc: sun6i: Always export the internal oscillator

Sean Anderson (1):
net: sunhme: Fix region request

Sergey Shtylyov (1):
genirq/ipi: Fix NULL pointer deref in irq_data_get_affinity_mask()

Shang XiaoJing (1):
soc: mediatek: mtk-svs: Use pm_runtime_resume_and_get() in svs_init01()

Sherry Sun (1):
tty: serial: fsl_lpuart: disable the CTS when send break signal

Shin'ichiro Kawasaki (1):
scsi: mpi3mr: Use number of bits to manage bitmap sizes

Souradeep Chowdhury (1):
bootconfig: Increase max nodes of bootconfig from 1024 to 8192 for DCC support

Stephen Boyd (1):
soc: qcom: stats: Populate all subsystem debugfs files

Sven Schnelle (1):
tty: fix out-of-bounds access in tty_driver_lookup_tty()

Tinghan Shen (1):
soc: mediatek: mtk-pm-domains: Allow mt8186 ADSP default power on

Tomas Henzl (1):
scsi: mpi3mr: Fix an issue found by KASAN

Trevor Wu (1):
ASoC: mediatek: mt8195: add missing initialization

Vadim Fedorenko (2):
mlx5: fix skb leak while fifo resync and push
mlx5: fix possible ptp queue fifo use-after-free

Vasant Hegde (2):
iommu/amd: Fix error handling for pdev_pri_ats_enable()
iommu: Attach device group to old domain in error path

Vladimir Oltean (2):
net: dsa: seville: ignore mscc-miim read errors from Lynx PCS
net: dsa: felix: fix internal MDIO controller resource length

Wang Jianjian (1):
ext4: don't show commit interval if it is zero

Wojciech Lukowicz (1):
io_uring: fix size calculation when registering buf ring

Xiang Yang (1):
um: vector: Fix memory leak in vector_config

Xin Long (2):
netfilter: xt_length: use skb len to match in length_mt6
sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop

Xinghui Li (1):
io_uring: fix two assignments in if conditions

Yang Yingliang (2):
ubi: Fix possible null-ptr-deref in ubi_free_volume()
usb: gadget: uvc: fix missing mutex_unlock() if kstrtou8() fails

Yangtao Li (2):
f2fs: allow set compression option of files without blocks
f2fs: fix to avoid potential memory corruption in __update_iostat_latency()

Yong-Xuan Wang (1):
cacheinfo: Fix shared_cpu_map to handle shared caches at different levels

Yuan Can (1):
staging: emxx_udc: Add checks for dma_alloc_coherent()

Yulong Zhang (1):
tools/iio/iio_utils:fix memory leak

Zhang Yi (1):
ext4: fix incorrect options show of original mount_opt and extend mount_opt2

Zhengchao Shao (1):
9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()

Zhihao Cheng (12):
ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
ubifs: Rectify space budget for ubifs_xrename()
ubifs: Fix wrong dirty space budget for dirty inode
ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
ubifs: Reserve one leb for each journal head while doing budget
ubifs: Re-statistic cleaned znode count if commit failed
ubifs: dirty_cow_znode: Fix memleak in error handling path
ubifs: ubifs_writepage: Mark page dirty after writing inode failed
ubifs: ubifs_releasepage: Remove ubifs_assert(0) to valid this process
ubi: fastmap: Fix missed fm_anchor PEB in wear-leveling after disabling fastmap
ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed

Zhong Jinghua (1):
loop: loop_set_status_from_info() check before assignment

Zhu Lingshan (10):
vDPA/ifcvf: decouple hw features manipulators from the adapter vDPA/ifcvf: decouple config space ops from the adapter
vDPA/ifcvf: alloc the mgmt_dev before the adapter
vDPA/ifcvf: decouple vq IRQ releasers from the adapter
vDPA/ifcvf: decouple config IRQ releaser from the adapter
vDPA/ifcvf: decouple vq irq requester from the adapter
vDPA/ifcvf: decouple config/dev IRQ requester and vectors allocator from the adapter vDPA/ifcvf: ifcvf_request_irq works on ifcvf_hw
vDPA/ifcvf: manage ifcvf_hw in the mgmt_dev
vDPA/ifcvf: allocate the adapter in dev_add()

ruanjinjie (1):
watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path

Íñigo Huguet (1):
ptp: vclock: use mutex to fix "sleep on atomic" bug

author maintainer
#1 lore raw
Documentation/ABI/testing/configfs-usb-gadget-uvc +1 -1
index 611b23e6488d..feb3f2cc0c16 100644
@@ -52,7 +52,7 @@ Date:		Dec 2014
 KernelVersion:	4.0
 Description:	Default output terminal descriptors
 
-		All attributes read only:
+		All attributes read only except bSourceID:
 
 		==============	=============================================
 		iTerminal	index of string descriptor
Makefile +1 -1
index db482a420dca..a825361f7162 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 17
+SUBLEVEL = 18
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm/boot/dts/spear320-hmi.dts +1 -1
index 34503ac9c51c..721e5ee7b680 100644
@@ -241,7 +241,7 @@ stmpe811@41 {
 					irq-trigger = <0x1>;
 
 					stmpegpio: stmpe-gpio {
-						compatible = "stmpe,gpio";
+						compatible = "st,stmpe-gpio";
 						reg = <0>;
 						gpio-controller;
 						#gpio-cells = <2>;
arch/arm64/include/asm/efi.h +3 -3
index b13c22046de5..62c846be2d76 100644
@@ -33,7 +33,7 @@ int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md);
 ({									\
 	efi_virtmap_load();						\
 	__efi_fpsimd_begin();						\
-	spin_lock(&efi_rt_lock);					\
+	raw_spin_lock(&efi_rt_lock);					\
 })
 
 #undef arch_efi_call_virt
@@ -42,12 +42,12 @@ int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md);
 
 #define arch_efi_call_virt_teardown()					\
 ({									\
-	spin_unlock(&efi_rt_lock);					\
+	raw_spin_unlock(&efi_rt_lock);					\
 	__efi_fpsimd_end();						\
 	efi_virtmap_unload();						\
 })
 
-extern spinlock_t efi_rt_lock;
+extern raw_spinlock_t efi_rt_lock;
 extern u64 *efi_rt_stack_top;
 efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...);
 
arch/arm64/include/asm/mte.h +30 -0
index 760c62f8e22f..3f8199ba265a 100644
@@ -37,6 +37,29 @@ void mte_free_tag_storage(char *storage);
 /* track which pages have valid allocation tags */
 #define PG_mte_tagged	PG_arch_2
 
+static inline void set_page_mte_tagged(struct page *page)
+{
+	/*
+	 * Ensure that the tags written prior to this function are visible
+	 * before the page flags update.
+	 */
+	smp_wmb();
+	set_bit(PG_mte_tagged, &page->flags);
+}
+
+static inline bool page_mte_tagged(struct page *page)
+{
+	bool ret = test_bit(PG_mte_tagged, &page->flags);
+
+	/*
+	 * If the page is tagged, ensure ordering with a likely subsequent
+	 * read of the tags.
+	 */
+	if (ret)
+		smp_rmb();
+	return ret;
+}
+
 void mte_zero_clear_page_tags(void *addr);
 void mte_sync_tags(pte_t old_pte, pte_t pte);
 void mte_copy_page_tags(void *kto, const void *kfrom);
@@ -56,6 +79,13 @@ size_t mte_probe_user_range(const char __user *uaddr, size_t size);
 /* unused if !CONFIG_ARM64_MTE, silence the compiler */
 #define PG_mte_tagged	0
 
+static inline void set_page_mte_tagged(struct page *page)
+{
+}
+static inline bool page_mte_tagged(struct page *page)
+{
+	return false;
+}
 static inline void mte_zero_clear_page_tags(void *addr)
 {
 }
arch/arm64/include/asm/pgtable.h +1 -1
index f1cfc44ef52f..5d0f1f7b7600 100644
@@ -1050,7 +1050,7 @@ static inline void arch_swap_invalidate_area(int type)
 static inline void arch_swap_restore(swp_entry_t entry, struct folio *folio)
 {
 	if (system_supports_mte() && mte_restore_tags(entry, &folio->page))
-		set_bit(PG_mte_tagged, &folio->flags);
+		set_page_mte_tagged(&folio->page);
 }
 
 #endif /* CONFIG_ARM64_MTE */
arch/arm64/kernel/cpufeature.c +3 -1
index 86b2f7ec6c67..b3eb53847c96 100644
@@ -2074,8 +2074,10 @@ static void cpu_enable_mte(struct arm64_cpu_capabilities const *cap)
 	 * Clear the tags in the zero page. This needs to be done via the
 	 * linear map which has the Tagged attribute.
 	 */
-	if (!test_and_set_bit(PG_mte_tagged, &ZERO_PAGE(0)->flags))
+	if (!page_mte_tagged(ZERO_PAGE(0))) {
 		mte_clear_page_tags(lm_alias(empty_zero_page));
+		set_page_mte_tagged(ZERO_PAGE(0));
+	}
 
 	kasan_init_hw_tags_cpu();
 }
arch/arm64/kernel/efi.c +1 -1
index b273900f4566..a30dbe4b95cd 100644
@@ -146,7 +146,7 @@ asmlinkage efi_status_t efi_handle_corrupted_x18(efi_status_t s, const char *f)
 	return s;
 }
 
-DEFINE_SPINLOCK(efi_rt_lock);
+DEFINE_RAW_SPINLOCK(efi_rt_lock);
 
 asmlinkage u64 *efi_rt_stack_top __ro_after_init;
 
arch/arm64/kernel/elfcore.c +1 -1
index 662a61e5e75e..2e94d20c4ac7 100644
@@ -46,7 +46,7 @@ static int mte_dump_tag_range(struct coredump_params *cprm,
 		 * Pages mapped in user space as !pte_access_permitted() (e.g.
 		 * PROT_EXEC only) may not have the PG_mte_tagged flag set.
 		 */
-		if (!test_bit(PG_mte_tagged, &page->flags)) {
+		if (!page_mte_tagged(page)) {
 			put_page(page);
 			dump_skip(cprm, MTE_PAGE_TAG_STORAGE);
 			continue;
arch/arm64/kernel/hibernate.c +1 -1
index af5df48ba915..788597a6b6a2 100644
@@ -271,7 +271,7 @@ static int swsusp_mte_save_tags(void)
 			if (!page)
 				continue;
 
-			if (!test_bit(PG_mte_tagged, &page->flags))
+			if (!page_mte_tagged(page))
 				continue;
 
 			ret = save_tags(page, pfn);
arch/arm64/kernel/mte.c +11 -6
index 7467217c1eaf..84a085d536f8 100644
@@ -41,8 +41,10 @@ static void mte_sync_page_tags(struct page *page, pte_t old_pte,
 	if (check_swap && is_swap_pte(old_pte)) {
 		swp_entry_t entry = pte_to_swp_entry(old_pte);
 
-		if (!non_swap_entry(entry) && mte_restore_tags(entry, page))
+		if (!non_swap_entry(entry) && mte_restore_tags(entry, page)) {
+			set_page_mte_tagged(page);
 			return;
+		}
 	}
 
 	if (!pte_is_tagged)
@@ -52,8 +54,10 @@ static void mte_sync_page_tags(struct page *page, pte_t old_pte,
 	 * Test PG_mte_tagged again in case it was racing with another
 	 * set_pte_at().
 	 */
-	if (!test_and_set_bit(PG_mte_tagged, &page->flags))
+	if (!page_mte_tagged(page)) {
 		mte_clear_page_tags(page_address(page));
+		set_page_mte_tagged(page);
+	}
 }
 
 void mte_sync_tags(pte_t old_pte, pte_t pte)
@@ -69,9 +73,11 @@ void mte_sync_tags(pte_t old_pte, pte_t pte)
 
 	/* if PG_mte_tagged is set, tags have already been initialised */
 	for (i = 0; i < nr_pages; i++, page++) {
-		if (!test_bit(PG_mte_tagged, &page->flags))
+		if (!page_mte_tagged(page)) {
 			mte_sync_page_tags(page, old_pte, check_swap,
 					   pte_is_tagged);
+			set_page_mte_tagged(page);
+		}
 	}
 
 	/* ensure the tags are visible before the PTE is set */
@@ -96,8 +102,7 @@ int memcmp_pages(struct page *page1, struct page *page2)
 	 * pages is tagged, set_pte_at() may zero or change the tags of the
 	 * other page via mte_sync_tags().
 	 */
-	if (test_bit(PG_mte_tagged, &page1->flags) ||
-	    test_bit(PG_mte_tagged, &page2->flags))
+	if (page_mte_tagged(page1) || page_mte_tagged(page2))
 		return addr1 != addr2;
 
 	return ret;
@@ -454,7 +459,7 @@ static int __access_remote_tags(struct mm_struct *mm, unsigned long addr,
 			put_page(page);
 			break;
 		}
-		WARN_ON_ONCE(!test_bit(PG_mte_tagged, &page->flags));
+		WARN_ON_ONCE(!page_mte_tagged(page));
 
 		/* limit access to the end of the page */
 		offset = offset_in_page(addr);
arch/arm64/kvm/guest.c +2 -2
index 2ff13a3f8479..817fdd1ab778 100644
@@ -1059,7 +1059,7 @@ long kvm_vm_ioctl_mte_copy_tags(struct kvm *kvm,
 		maddr = page_address(page);
 
 		if (!write) {
-			if (test_bit(PG_mte_tagged, &page->flags))
+			if (page_mte_tagged(page))
 				num_tags = mte_copy_tags_to_user(tags, maddr,
 							MTE_GRANULES_PER_PAGE);
 			else
@@ -1076,7 +1076,7 @@ long kvm_vm_ioctl_mte_copy_tags(struct kvm *kvm,
 			 * completed fully
 			 */
 			if (num_tags == MTE_GRANULES_PER_PAGE)
-				set_bit(PG_mte_tagged, &page->flags);
+				set_page_mte_tagged(page);
 
 			kvm_release_pfn_dirty(pfn);
 		}
arch/arm64/kvm/mmu.c +2 -2
index 60ee3d9f01f8..2c3759f1f2c5 100644
@@ -1110,9 +1110,9 @@ static int sanitise_mte_tags(struct kvm *kvm, kvm_pfn_t pfn,
 		return -EFAULT;
 
 	for (i = 0; i < nr_pages; i++, page++) {
-		if (!test_bit(PG_mte_tagged, &page->flags)) {
+		if (!page_mte_tagged(page)) {
 			mte_clear_page_tags(page_address(page));
-			set_bit(PG_mte_tagged, &page->flags);
+			set_page_mte_tagged(page);
 		}
 	}
 
arch/arm64/mm/copypage.c +4 -2
index 24913271e898..6dbc822332f2 100644
@@ -21,9 +21,11 @@ void copy_highpage(struct page *to, struct page *from)
 
 	copy_page(kto, kfrom);
 
-	if (system_supports_mte() && test_bit(PG_mte_tagged, &from->flags)) {
-		set_bit(PG_mte_tagged, &to->flags);
+	if (system_supports_mte() && page_mte_tagged(from)) {
+		if (kasan_hw_tags_enabled())
+			page_kasan_tag_reset(to);
 		mte_copy_page_tags(kto, kfrom);
+		set_page_mte_tagged(to);
 	}
 }
 EXPORT_SYMBOL(copy_highpage);
arch/arm64/mm/fault.c +1 -1
index 3eb2825d08cf..4ee20280133e 100644
@@ -944,5 +944,5 @@ struct page *alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
 void tag_clear_highpage(struct page *page)
 {
 	mte_zero_clear_page_tags(page_address(page));
-	set_bit(PG_mte_tagged, &page->flags);
+	set_page_mte_tagged(page);
 }
arch/arm64/mm/mteswap.c +1 -1
index bed803d8e158..70f913205db9 100644
@@ -24,7 +24,7 @@ int mte_save_tags(struct page *page)
 {
 	void *tag_storage, *ret;
 
-	if (!test_bit(PG_mte_tagged, &page->flags))
+	if (!page_mte_tagged(page))
 		return 0;
 
 	tag_storage = mte_allocate_tag_storage();
arch/um/drivers/vector_kern.c +1 -0
index ded7c47d2fbe..131b7cb29576 100644
@@ -767,6 +767,7 @@ static int vector_config(char *str, char **error_out)
 
 	if (parsed == NULL) {
 		*error_out = "vector_config failed to parse parameters";
+		kfree(params);
 		return -EINVAL;
 	}
 
arch/um/drivers/virt-pci.c +20 -6
index 3ac220dafec4..5472b1a0a039 100644
@@ -132,8 +132,11 @@ static int um_pci_send_cmd(struct um_pci_device *dev,
 				out ? 1 : 0,
 				posted ? cmd : HANDLE_NO_FREE(cmd),
 				GFP_ATOMIC);
-	if (ret)
+	if (ret) {
+		if (posted)
+			kfree(cmd);
 		goto out;
+	}
 
 	if (posted) {
 		virtqueue_kick(dev->cmd_vq);
@@ -623,22 +626,33 @@ static void um_pci_virtio_remove(struct virtio_device *vdev)
 	struct um_pci_device *dev = vdev->priv;
 	int i;
 
-        /* Stop all virtqueues */
-        virtio_reset_device(vdev);
-        vdev->config->del_vqs(vdev);
-
 	device_set_wakeup_enable(&vdev->dev, false);
 
 	mutex_lock(&um_pci_mtx);
 	for (i = 0; i < MAX_DEVICES; i++) {
 		if (um_pci_devices[i].dev != dev)
 			continue;
+
 		um_pci_devices[i].dev = NULL;
 		irq_free_desc(dev->irq);
+
+		break;
 	}
 	mutex_unlock(&um_pci_mtx);
 
-	um_pci_rescan();
+	if (i < MAX_DEVICES) {
+		struct pci_dev *pci_dev;
+
+		pci_dev = pci_get_slot(bridge->bus, i);
+		if (pci_dev)
+			pci_stop_and_remove_bus_device_locked(pci_dev);
+	}
+
+	/* Stop all virtqueues */
+	virtio_reset_device(vdev);
+	dev->cmd_vq = NULL;
+	dev->irq_vq = NULL;
+	vdev->config->del_vqs(vdev);
 
 	kfree(dev);
 }
arch/um/drivers/virtio_uml.c +17 -1
index 588930a0ced1..ddd080f6dd82 100644
@@ -168,7 +168,8 @@ static void vhost_user_check_reset(struct virtio_uml_device *vu_dev,
 	if (!vu_dev->registered)
 		return;
 
-	virtio_break_device(&vu_dev->vdev);
+	vu_dev->registered = 0;
+
 	schedule_work(&pdata->conn_broken_wk);
 }
 
@@ -1136,6 +1137,15 @@ void virtio_uml_set_no_vq_suspend(struct virtio_device *vdev,
 
 static void vu_of_conn_broken(struct work_struct *wk)
 {
+	struct virtio_uml_platform_data *pdata;
+	struct virtio_uml_device *vu_dev;
+
+	pdata = container_of(wk, struct virtio_uml_platform_data, conn_broken_wk);
+
+	vu_dev = platform_get_drvdata(pdata->pdev);
+
+	virtio_break_device(&vu_dev->vdev);
+
 	/*
 	 * We can't remove the device from the devicetree so the only thing we
 	 * can do is warn.
@@ -1266,8 +1276,14 @@ static int vu_unregister_cmdline_device(struct device *dev, void *data)
 static void vu_conn_broken(struct work_struct *wk)
 {
 	struct virtio_uml_platform_data *pdata;
+	struct virtio_uml_device *vu_dev;
 
 	pdata = container_of(wk, struct virtio_uml_platform_data, conn_broken_wk);
+
+	vu_dev = platform_get_drvdata(pdata->pdev);
+
+	virtio_break_device(&vu_dev->vdev);
+
 	vu_unregister_cmdline_device(&pdata->pdev->dev, NULL);
 }
 
arch/x86/include/asm/resctrl.h +6 -6
index d24b04ebf950..a4641d68eaba 100644
@@ -51,7 +51,7 @@ DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
  *   simple as possible.
  * Must be called with preemption disabled.
  */
-static void __resctrl_sched_in(void)
+static inline void __resctrl_sched_in(struct task_struct *tsk)
 {
 	struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
 	u32 closid = state->default_closid;
@@ -63,13 +63,13 @@ static void __resctrl_sched_in(void)
 	 * Else use the closid/rmid assigned to this cpu.
 	 */
 	if (static_branch_likely(&rdt_alloc_enable_key)) {
-		tmp = READ_ONCE(current->closid);
+		tmp = READ_ONCE(tsk->closid);
 		if (tmp)
 			closid = tmp;
 	}
 
 	if (static_branch_likely(&rdt_mon_enable_key)) {
-		tmp = READ_ONCE(current->rmid);
+		tmp = READ_ONCE(tsk->rmid);
 		if (tmp)
 			rmid = tmp;
 	}
@@ -90,17 +90,17 @@ static inline unsigned int resctrl_arch_round_mon_val(unsigned int val)
 	return val * scale;
 }
 
-static inline void resctrl_sched_in(void)
+static inline void resctrl_sched_in(struct task_struct *tsk)
 {
 	if (static_branch_likely(&rdt_enable_key))
-		__resctrl_sched_in();
+		__resctrl_sched_in(tsk);
 }
 
 void resctrl_cpu_detect(struct cpuinfo_x86 *c);
 
 #else
 
-static inline void resctrl_sched_in(void) {}
+static inline void resctrl_sched_in(struct task_struct *tsk) {}
 static inline void resctrl_cpu_detect(struct cpuinfo_x86 *c) {}
 
 #endif /* CONFIG_X86_CPU_RESCTRL */
arch/x86/kernel/cpu/resctrl/rdtgroup.c +2 -2
index 5993da21d822..87b670d540b8 100644
@@ -314,7 +314,7 @@ static void update_cpu_closid_rmid(void *info)
 	 * executing task might have its own closid selected. Just reuse
 	 * the context switch code.
 	 */
-	resctrl_sched_in();
+	resctrl_sched_in(current);
 }
 
 /*
@@ -535,7 +535,7 @@ static void _update_task_closid_rmid(void *task)
 	 * Otherwise, the MSR is updated when the task is scheduled in.
 	 */
 	if (task == current)
-		resctrl_sched_in();
+		resctrl_sched_in(task);
 }
 
 static void update_task_closid_rmid(struct task_struct *t)
arch/x86/kernel/process_32.c +1 -1
index 2f314b170c9f..ceab14b6118f 100644
@@ -212,7 +212,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
 	switch_fpu_finish();
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
arch/x86/kernel/process_64.c +1 -1
index 6b3418bff326..7f94dbbc397b 100644
@@ -656,7 +656,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
 	}
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
arch/x86/um/vdso/um_vdso.c +8 -4
index 2112b8d14668..ff0f3b4b6c45 100644
@@ -17,8 +17,10 @@ int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_clock_gettime), "D" (clock), "S" (ts) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_clock_gettime), "D" (clock), "S" (ts)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
@@ -29,8 +31,10 @@ int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_gettimeofday), "D" (tv), "S" (tz) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_gettimeofday), "D" (tv), "S" (tz)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
drivers/acpi/device_pm.c +19 -0
index 97450f4003cc..f007116a8427 100644
@@ -484,6 +484,25 @@ void acpi_dev_power_up_children_with_adr(struct acpi_device *adev)
 	acpi_dev_for_each_child(adev, acpi_power_up_if_adr_present, NULL);
 }
 
+/**
+ * acpi_dev_power_state_for_wake - Deepest power state for wakeup signaling
+ * @adev: ACPI companion of the target device.
+ *
+ * Evaluate _S0W for @adev and return the value produced by it or return
+ * ACPI_STATE_UNKNOWN on errors (including _S0W not present).
+ */
+u8 acpi_dev_power_state_for_wake(struct acpi_device *adev)
+{
+	unsigned long long state;
+	acpi_status status;
+
+	status = acpi_evaluate_integer(adev->handle, "_S0W", NULL, &state);
+	if (ACPI_FAILURE(status))
+		return ACPI_STATE_UNKNOWN;
+
+	return state;
+}
+
 #ifdef CONFIG_PM
 static DEFINE_MUTEX(acpi_pm_notifier_lock);
 static DEFINE_MUTEX(acpi_pm_notifier_install_lock);
drivers/auxdisplay/hd44780.c +2 -0
index 8b2a0eb3f32a..d56a5d508ccd 100644
@@ -322,8 +322,10 @@ static int hd44780_probe(struct platform_device *pdev)
 static int hd44780_remove(struct platform_device *pdev)
 {
 	struct charlcd *lcd = platform_get_drvdata(pdev);
+	struct hd44780_common *hdc = lcd->drvdata;
 
 	charlcd_unregister(lcd);
+	kfree(hdc->hd44780);
 	kfree(lcd->drvdata);
 
 	kfree(lcd);
drivers/base/cacheinfo.c +17 -10
index 4b5cd08c5a65..f30256a524be 100644
@@ -251,7 +251,7 @@ static int cache_shared_cpu_map_setup(unsigned int cpu)
 {
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 	struct cacheinfo *this_leaf, *sib_leaf;
-	unsigned int index;
+	unsigned int index, sib_index;
 	int ret = 0;
 
 	if (this_cpu_ci->cpu_map_populated)
@@ -279,11 +279,13 @@ static int cache_shared_cpu_map_setup(unsigned int cpu)
 
 			if (i == cpu || !sib_cpu_ci->info_list)
 				continue;/* skip if itself or no cacheinfo */
-
-			sib_leaf = per_cpu_cacheinfo_idx(i, index);
-			if (cache_leaves_are_shared(this_leaf, sib_leaf)) {
-				cpumask_set_cpu(cpu, &sib_leaf->shared_cpu_map);
-				cpumask_set_cpu(i, &this_leaf->shared_cpu_map);
+			for (sib_index = 0; sib_index < cache_leaves(i); sib_index++) {
+				sib_leaf = per_cpu_cacheinfo_idx(i, sib_index);
+				if (cache_leaves_are_shared(this_leaf, sib_leaf)) {
+					cpumask_set_cpu(cpu, &sib_leaf->shared_cpu_map);
+					cpumask_set_cpu(i, &this_leaf->shared_cpu_map);
+					break;
+				}
 			}
 		}
 		/* record the maximum cache line size */
@@ -297,7 +299,7 @@ static int cache_shared_cpu_map_setup(unsigned int cpu)
 static void cache_shared_cpu_map_remove(unsigned int cpu)
 {
 	struct cacheinfo *this_leaf, *sib_leaf;
-	unsigned int sibling, index;
+	unsigned int sibling, index, sib_index;
 
 	for (index = 0; index < cache_leaves(cpu); index++) {
 		this_leaf = per_cpu_cacheinfo_idx(cpu, index);
@@ -308,9 +310,14 @@ static void cache_shared_cpu_map_remove(unsigned int cpu)
 			if (sibling == cpu || !sib_cpu_ci->info_list)
 				continue;/* skip if itself or no cacheinfo */
 
-			sib_leaf = per_cpu_cacheinfo_idx(sibling, index);
-			cpumask_clear_cpu(cpu, &sib_leaf->shared_cpu_map);
-			cpumask_clear_cpu(sibling, &this_leaf->shared_cpu_map);
+			for (sib_index = 0; sib_index < cache_leaves(sibling); sib_index++) {
+				sib_leaf = per_cpu_cacheinfo_idx(sibling, sib_index);
+				if (cache_leaves_are_shared(this_leaf, sib_leaf)) {
+					cpumask_clear_cpu(cpu, &sib_leaf->shared_cpu_map);
+					cpumask_clear_cpu(sibling, &this_leaf->shared_cpu_map);
+					break;
+				}
+			}
 		}
 		if (of_have_populated_dt())
 			of_node_put(this_leaf->fw_token);
drivers/base/component.c +1 -1
index 5eadeac6c532..7dbf14a1d915 100644
@@ -125,7 +125,7 @@ static void component_debugfs_add(struct aggregate_device *m)
 
 static void component_debugfs_del(struct aggregate_device *m)
 {
-	debugfs_remove(debugfs_lookup(dev_name(m->parent), component_debugfs_dir));
+	debugfs_lookup_and_remove(dev_name(m->parent), component_debugfs_dir);
 }
 
 #else
drivers/base/dd.c +1 -1
index 9ae2b5c4fc49..c463173f1fb1 100644
@@ -372,7 +372,7 @@ late_initcall(deferred_probe_initcall);
 
 static void __exit deferred_probe_exit(void)
 {
-	debugfs_remove_recursive(debugfs_lookup("devices_deferred", NULL));
+	debugfs_lookup_and_remove("devices_deferred", NULL);
 }
 __exitcall(deferred_probe_exit);
 
drivers/block/loop.c +4 -4
index df628e30bca4..981464e561df 100644
@@ -977,13 +977,13 @@ loop_set_status_from_info(struct loop_device *lo,
 		return -EINVAL;
 	}
 
+	/* Avoid assigning overflow values */
+	if (info->lo_offset > LLONG_MAX || info->lo_sizelimit > LLONG_MAX)
+		return -EOVERFLOW;
+
 	lo->lo_offset = info->lo_offset;
 	lo->lo_sizelimit = info->lo_sizelimit;
 
-	/* loff_t vars have been assigned __u64 */
-	if (lo->lo_offset < 0 || lo->lo_sizelimit < 0)
-		return -EOVERFLOW;
-
 	memcpy(lo->lo_file_name, info->lo_file_name, LO_NAME_SIZE);
 	lo->lo_file_name[LO_NAME_SIZE-1] = 0;
 	lo->lo_flags = info->lo_flags;
drivers/bus/mhi/ep/main.c +1 -1
index 9c4288681841..357c61c12ce5 100644
@@ -219,7 +219,7 @@ static int mhi_ep_process_cmd_ring(struct mhi_ep_ring *ring, struct mhi_ring_ele
 		mutex_unlock(&mhi_chan->lock);
 		break;
 	case MHI_PKT_TYPE_RESET_CHAN_CMD:
-		dev_dbg(dev, "Received STOP command for channel (%u)\n", ch_id);
+		dev_dbg(dev, "Received RESET command for channel (%u)\n", ch_id);
 		if (!ch_ring->started) {
 			dev_err(dev, "Channel (%u) not opened\n", ch_id);
 			return -ENODEV;
drivers/firmware/efi/sysfb_efi.c +8 -0
index 7882d4b3f2be..f06fdacc9bc8 100644
@@ -264,6 +264,14 @@ static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst = {
 					"Lenovo ideapad D330-10IGM"),
 		},
 	},
+	{
+		/* Lenovo IdeaPad Duet 3 10IGL5 with 1200x1920 portrait screen */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_VERSION,
+					"IdeaPad Duet 3 10IGL5"),
+		},
+	},
 	{},
 };
 
drivers/gpu/drm/display/drm_dp_mst_topology.c +39 -6

88 lines not on this page · raw message

drivers/gpu/drm/i915/Kconfig +3 -3
index 3efce05d7b57..3a6e176d77aa 100644
@@ -107,9 +107,6 @@ config DRM_I915_USERPTR
 
 	  If in doubt, say "Y".
 
-config DRM_I915_GVT
-	bool
-
 config DRM_I915_GVT_KVMGT
 	tristate "Enable KVM host support Intel GVT-g graphics virtualization"
 	depends on DRM_I915
@@ -160,3 +157,6 @@ menu "drm/i915 Unstable Evolution"
 	depends on DRM_I915
 	source "drivers/gpu/drm/i915/Kconfig.unstable"
 endmenu
+
+config DRM_I915_GVT
+	bool
drivers/gpu/drm/i915/display/intel_display.c +4 -0
index de77054195c6..4bbb84847ecb 100644
@@ -5969,6 +5969,10 @@ int intel_modeset_all_pipes(struct intel_atomic_state *state)
 		if (ret)
 			return ret;
 
+		ret = intel_dp_mst_add_topology_state_for_crtc(state, crtc);
+		if (ret)
+			return ret;
+
 		ret = intel_atomic_add_affected_planes(state, crtc);
 		if (ret)
 			return ret;
drivers/gpu/drm/i915/display/intel_dp_mst.c +61 -0

64 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_dp_mst.h +4 -0
index f7301de6cdfb..f1815bb72267 100644
@@ -8,6 +8,8 @@
 
 #include <linux/types.h>
 
+struct intel_atomic_state;
+struct intel_crtc;
 struct intel_crtc_state;
 struct intel_digital_port;
 struct intel_dp;
@@ -18,5 +20,7 @@ int intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port);
 bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state);
 bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state);
 bool intel_dp_mst_source_support(struct intel_dp *intel_dp);
+int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
+					     struct intel_crtc *crtc);
 
 #endif /* __INTEL_DP_MST_H__ */
drivers/gpu/drm/i915/display/intel_fbdev.c +7 -1
index 112aa0447a0d..9899b5dcd291 100644
@@ -624,7 +624,13 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
 	struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
 	struct fb_info *info;
 
-	if (!ifbdev || !ifbdev->vma)
+	if (!ifbdev)
+		return;
+
+	if (drm_WARN_ON(&dev_priv->drm, !HAS_DISPLAY(dev_priv)))
+		return;
+
+	if (!ifbdev->vma)
 		goto set_suspend;
 
 	info = ifbdev->helper.fbdev;
drivers/iio/accel/mma9551_core.c +8 -2
index 64ca7d7a9673..b898f865fb87 100644
@@ -296,9 +296,12 @@ int mma9551_read_config_word(struct i2c_client *client, u8 app_id,
 
 	ret = mma9551_transfer(client, app_id, MMA9551_CMD_READ_CONFIG,
 			       reg, NULL, 0, (u8 *)&v, 2);
+	if (ret < 0)
+		return ret;
+
 	*val = be16_to_cpu(v);
 
-	return ret;
+	return 0;
 }
 EXPORT_SYMBOL_NS(mma9551_read_config_word, IIO_MMA9551);
 
@@ -354,9 +357,12 @@ int mma9551_read_status_word(struct i2c_client *client, u8 app_id,
 
 	ret = mma9551_transfer(client, app_id, MMA9551_CMD_READ_STATUS,
 			       reg, NULL, 0, (u8 *)&v, 2);
+	if (ret < 0)
+		return ret;
+
 	*val = be16_to_cpu(v);
 
-	return ret;
+	return 0;
 }
 EXPORT_SYMBOL_NS(mma9551_read_status_word, IIO_MMA9551);
 
drivers/infiniband/core/cma.c +12 -5
index 26d1772179b8..8730674ceb2e 100644
@@ -479,13 +479,20 @@ static int compare_netdev_and_ip(int ifindex_a, struct sockaddr *sa,
 	if (sa->sa_family != sb->sa_family)
 		return sa->sa_family - sb->sa_family;
 
-	if (sa->sa_family == AF_INET)
-		return memcmp((char *)&((struct sockaddr_in *)sa)->sin_addr,
-			      (char *)&((struct sockaddr_in *)sb)->sin_addr,
+	if (sa->sa_family == AF_INET &&
+	    __builtin_object_size(sa, 0) >= sizeof(struct sockaddr_in)) {
+		return memcmp(&((struct sockaddr_in *)sa)->sin_addr,
+			      &((struct sockaddr_in *)sb)->sin_addr,
 			      sizeof(((struct sockaddr_in *)sa)->sin_addr));
+	}
+
+	if (sa->sa_family == AF_INET6 &&
+	    __builtin_object_size(sa, 0) >= sizeof(struct sockaddr_in6)) {
+		return ipv6_addr_cmp(&((struct sockaddr_in6 *)sa)->sin6_addr,
+				     &((struct sockaddr_in6 *)sb)->sin6_addr);
+	}
 
-	return ipv6_addr_cmp(&((struct sockaddr_in6 *)sa)->sin6_addr,
-			     &((struct sockaddr_in6 *)sb)->sin6_addr);
+	return -1;
 }
 
 static int cma_add_id_to_tree(struct rdma_id_private *node_id_priv)
drivers/infiniband/hw/hfi1/chip.c +32 -27

96 lines not on this page · raw message

drivers/iommu/amd/iommu.c +7 -5
index 968e5e6668b2..20adb9b323d8 100644
@@ -1712,27 +1712,29 @@ static int pdev_pri_ats_enable(struct pci_dev *pdev)
 	/* Only allow access to user-accessible pages */
 	ret = pci_enable_pasid(pdev, 0);
 	if (ret)
-		goto out_err;
+		return ret;
 
 	/* First reset the PRI state of the device */
 	ret = pci_reset_pri(pdev);
 	if (ret)
-		goto out_err;
+		goto out_err_pasid;
 
 	/* Enable PRI */
 	/* FIXME: Hardcode number of outstanding requests for now */
 	ret = pci_enable_pri(pdev, 32);
 	if (ret)
-		goto out_err;
+		goto out_err_pasid;
 
 	ret = pci_enable_ats(pdev, PAGE_SHIFT);
 	if (ret)
-		goto out_err;
+		goto out_err_pri;
 
 	return 0;
 
-out_err:
+out_err_pri:
 	pci_disable_pri(pdev);
+
+out_err_pasid:
 	pci_disable_pasid(pdev);
 
 	return ret;
drivers/iommu/iommu.c +15 -1
index fd8c8aeb3c50..bfb2f163c691 100644
@@ -2089,8 +2089,22 @@ static int __iommu_attach_group(struct iommu_domain *domain,
 
 	ret = __iommu_group_for_each_dev(group, domain,
 					 iommu_group_do_attach_device);
-	if (ret == 0)
+	if (ret == 0) {
 		group->domain = domain;
+	} else {
+		/*
+		 * To recover from the case when certain device within the
+		 * group fails to attach to the new domain, we need force
+		 * attaching all devices back to the old domain. The old
+		 * domain is compatible for all devices in the group,
+		 * hence the iommu driver should always return success.
+		 */
+		struct iommu_domain *old_domain = group->domain;
+
+		group->domain = NULL;
+		WARN(__iommu_group_set_domain(group, old_domain),
+		     "iommu driver failed to attach a compatible domain");
+	}
 
 	return ret;
 }
drivers/media/usb/uvc/uvc_ctrl.c +5 -0
index 44b0cfb8ee1c..067b43a1cb3e 100644
@@ -6,6 +6,7 @@
  *          Laurent Pinchart ([email protected])
  */
 
+#include <asm/barrier.h>
 #include <linux/bitops.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
@@ -1509,6 +1510,10 @@ static void uvc_ctrl_status_event_work(struct work_struct *work)
 
 	uvc_ctrl_status_event(w->chain, w->ctrl, w->data);
 
+	/* The barrier is needed to synchronize with uvc_status_stop(). */
+	if (smp_load_acquire(&dev->flush_status))
+		return;
+
 	/* Resubmit the URB. */
 	w->urb->interval = dev->int_ep->desc.bInterval;
 	ret = usb_submit_urb(w->urb, GFP_KERNEL);
drivers/media/usb/uvc/uvc_driver.c +39 -51

172 lines not on this page · raw message

drivers/media/usb/uvc/uvc_entity.c +1 -1
index 7c4d2f93d351..cc68dd24eb42 100644
@@ -37,7 +37,7 @@ static int uvc_mc_create_links(struct uvc_video_chain *chain,
 			continue;
 
 		remote = uvc_entity_by_id(chain->dev, entity->baSourceID[i]);
-		if (remote == NULL)
+		if (remote == NULL || remote->num_pads == 0)
 			return -EINVAL;
 
 		source = (UVC_ENTITY_TYPE(remote) == UVC_TT_STREAMING)
drivers/media/usb/uvc/uvc_status.c +37 -0
index 7518ffce22ed..4a92c989cf33 100644
@@ -6,6 +6,7 @@
  *          Laurent Pinchart ([email protected])
  */
 
+#include <asm/barrier.h>
 #include <linux/kernel.h>
 #include <linux/input.h>
 #include <linux/slab.h>
@@ -309,5 +310,41 @@ int uvc_status_start(struct uvc_device *dev, gfp_t flags)
 
 void uvc_status_stop(struct uvc_device *dev)
 {
+	struct uvc_ctrl_work *w = &dev->async_ctrl;
+
+	/*
+	 * Prevent the asynchronous control handler from requeing the URB. The
+	 * barrier is needed so the flush_status change is visible to other
+	 * CPUs running the asynchronous handler before usb_kill_urb() is
+	 * called below.
+	 */
+	smp_store_release(&dev->flush_status, true);
+
+	/*
+	 * Cancel any pending asynchronous work. If any status event was queued,
+	 * process it synchronously.
+	 */
+	if (cancel_work_sync(&w->work))
+		uvc_ctrl_status_event(w->chain, w->ctrl, w->data);
+
+	/* Kill the urb. */
 	usb_kill_urb(dev->int_urb);
+
+	/*
+	 * The URB completion handler may have queued asynchronous work. This
+	 * won't resubmit the URB as flush_status is set, but it needs to be
+	 * cancelled before returning or it could then race with a future
+	 * uvc_status_start() call.
+	 */
+	if (cancel_work_sync(&w->work))
+		uvc_ctrl_status_event(w->chain, w->ctrl, w->data);
+
+	/*
+	 * From this point, there are no events on the queue and the status URB
+	 * is dead. No events will be queued until uvc_status_start() is called.
+	 * The barrier is needed to make sure that flush_status is visible to
+	 * uvc_ctrl_status_event_work() when uvc_status_start() will be called
+	 * again.
+	 */
+	smp_store_release(&dev->flush_status, false);
 }
drivers/media/usb/uvc/uvc_v4l2.c +0 -2
index 0774a11360c0..950b42d78a10 100644
@@ -661,8 +661,6 @@ static int uvc_ioctl_enum_fmt(struct uvc_streaming *stream,
 	fmt->flags = 0;
 	if (format->flags & UVC_FMT_FLAG_COMPRESSED)
 		fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
-	strscpy(fmt->description, format->name, sizeof(fmt->description));
-	fmt->description[sizeof(fmt->description) - 1] = 0;
 	fmt->pixelformat = format->fcc;
 	return 0;
 }
drivers/media/usb/uvc/uvc_video.c +14 -1
index d2eb9066e4dc..0d3a3b697b2d 100644
@@ -1352,7 +1352,9 @@ static void uvc_video_decode_meta(struct uvc_streaming *stream,
 	if (has_scr)
 		memcpy(stream->clock.last_scr, scr, 6);
 
-	memcpy(&meta->length, mem, length);
+	meta->length = mem[0];
+	meta->flags  = mem[1];
+	memcpy(meta->buf, &mem[2], length - 2);
 	meta_buf->bytesused += length + sizeof(meta->ns) + sizeof(meta->sof);
 
 	uvc_dbg(stream->dev, FRAME,
@@ -1965,6 +1967,17 @@ static int uvc_video_start_transfer(struct uvc_streaming *stream,
 			"Selecting alternate setting %u (%u B/frame bandwidth)\n",
 			altsetting, best_psize);
 
+		/*
+		 * Some devices, namely the Logitech C910 and B910, are unable
+		 * to recover from a USB autosuspend, unless the alternate
+		 * setting of the streaming interface is toggled.
+		 */
+		if (stream->dev->quirks & UVC_QUIRK_WAKE_AUTOSUSPEND) {
+			usb_set_interface(stream->dev->udev, intfnum,
+					  altsetting);
+			usb_set_interface(stream->dev->udev, intfnum, 0);
+		}
+
 		ret = usb_set_interface(stream->dev->udev, intfnum, altsetting);
 		if (ret < 0)
 			return ret;
drivers/media/usb/uvc/uvcvideo.h +2 -2
index 1227ae63f85b..33e7475d4e64 100644
@@ -74,6 +74,7 @@
 #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT	0x00000400
 #define UVC_QUIRK_FORCE_Y8		0x00000800
 #define UVC_QUIRK_FORCE_BPP		0x00001000
+#define UVC_QUIRK_WAKE_AUTOSUSPEND	0x00002000
 
 /* Format flags */
 #define UVC_FMT_FLAG_COMPRESSED		0x00000001
@@ -264,8 +265,6 @@ struct uvc_format {
 	u32 fcc;
 	u32 flags;
 
-	char name[32];
-
 	unsigned int nframes;
 	struct uvc_frame *frame;
 };
@@ -559,6 +558,7 @@ struct uvc_device {
 	/* Status Interrupt Endpoint */
 	struct usb_host_endpoint *int_ep;
 	struct urb *int_urb;
+	bool flush_status;
 	u8 *status;
 	struct input_dev *input;
 	char input_phys[64];
drivers/memory/renesas-rpc-if.c +79 -41

221 lines not on this page · raw message

drivers/mfd/arizona-core.c +1 -1
index cbf1dd90b70d..b1c53e040771 100644
@@ -45,7 +45,7 @@ int arizona_clk32k_enable(struct arizona *arizona)
 	if (arizona->clk32k_ref == 1) {
 		switch (arizona->pdata.clk32k_src) {
 		case ARIZONA_32KZ_MCLK1:
-			ret = pm_runtime_get_sync(arizona->dev);
+			ret = pm_runtime_resume_and_get(arizona->dev);
 			if (ret != 0)
 				goto err_ref;
 			ret = clk_prepare_enable(arizona->mclk[ARIZONA_MCLK1]);
drivers/misc/mei/bus-fixup.c +4 -4
index 71fbf0bc8453..5eeb4d04c096 100644
@@ -151,7 +151,7 @@ static int mei_fwver(struct mei_cl_device *cldev)
 	ret = __mei_cl_send(cldev->cl, (u8 *)&req, sizeof(req), 0,
 			    MEI_CL_IO_TX_BLOCKING);
 	if (ret < 0) {
-		dev_err(&cldev->dev, "Could not send ReqFWVersion cmd\n");
+		dev_err(&cldev->dev, "Could not send ReqFWVersion cmd ret = %d\n", ret);
 		return ret;
 	}
 
@@ -163,7 +163,7 @@ static int mei_fwver(struct mei_cl_device *cldev)
 		 * Should be at least one version block,
 		 * error out if nothing found
 		 */
-		dev_err(&cldev->dev, "Could not read FW version\n");
+		dev_err(&cldev->dev, "Could not read FW version ret = %d\n", bytes_recv);
 		return -EIO;
 	}
 
@@ -376,7 +376,7 @@ static int mei_nfc_if_version(struct mei_cl *cl,
 	ret = __mei_cl_send(cl, (u8 *)&cmd, sizeof(cmd), 0,
 			    MEI_CL_IO_TX_BLOCKING);
 	if (ret < 0) {
-		dev_err(bus->dev, "Could not send IF version cmd\n");
+		dev_err(bus->dev, "Could not send IF version cmd ret = %d\n", ret);
 		return ret;
 	}
 
@@ -391,7 +391,7 @@ static int mei_nfc_if_version(struct mei_cl *cl,
 	bytes_recv = __mei_cl_recv(cl, (u8 *)reply, if_version_length, &vtag,
 				   0, 0);
 	if (bytes_recv < 0 || (size_t)bytes_recv < if_version_length) {
-		dev_err(bus->dev, "Could not read IF version\n");
+		dev_err(bus->dev, "Could not read IF version ret = %d\n", bytes_recv);
 		ret = -EIO;
 		goto err;
 	}
drivers/misc/vmw_balloon.c +1 -1
index 61a2be712bf7..9ce9b9e0e9b6 100644
@@ -1709,7 +1709,7 @@ static void __init vmballoon_debugfs_init(struct vmballoon *b)
 static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
 {
 	static_key_disable(&balloon_stat_enabled.key);
-	debugfs_remove(debugfs_lookup("vmmemctl", NULL));
+	debugfs_lookup_and_remove("vmmemctl", NULL);
 	kfree(b->stats);
 	b->stats = NULL;
 }
drivers/mtd/ubi/build.c +7 -0
index a901f8edfa41..7f65af169751 100644
@@ -468,6 +468,7 @@ static int uif_init(struct ubi_device *ubi)
 			err = ubi_add_volume(ubi, ubi->volumes[i]);
 			if (err) {
 				ubi_err(ubi, "cannot add volume %d", i);
+				ubi->volumes[i] = NULL;
 				goto out_volumes;
 			}
 		}
@@ -663,6 +664,12 @@ static int io_init(struct ubi_device *ubi, int max_beb_per1024)
 	ubi->ec_hdr_alsize = ALIGN(UBI_EC_HDR_SIZE, ubi->hdrs_min_io_size);
 	ubi->vid_hdr_alsize = ALIGN(UBI_VID_HDR_SIZE, ubi->hdrs_min_io_size);
 
+	if (ubi->vid_hdr_offset && ((ubi->vid_hdr_offset + UBI_VID_HDR_SIZE) >
+	    ubi->vid_hdr_alsize)) {
+		ubi_err(ubi, "VID header offset %d too large.", ubi->vid_hdr_offset);
+		return -EINVAL;
+	}
+
 	dbg_gen("min_io_size      %d", ubi->min_io_size);
 	dbg_gen("max_write_size   %d", ubi->max_write_size);
 	dbg_gen("hdrs_min_io_size %d", ubi->hdrs_min_io_size);
drivers/mtd/ubi/fastmap-wl.c +7 -5
index 0ee452275578..863f571f1adb 100644
@@ -146,13 +146,15 @@ void ubi_refill_pools(struct ubi_device *ubi)
 	if (ubi->fm_anchor) {
 		wl_tree_add(ubi->fm_anchor, &ubi->free);
 		ubi->free_count++;
+		ubi->fm_anchor = NULL;
 	}
 
-	/*
-	 * All available PEBs are in ubi->free, now is the time to get
-	 * the best anchor PEBs.
-	 */
-	ubi->fm_anchor = ubi_wl_get_fm_peb(ubi, 1);
+	if (!ubi->fm_disabled)
+		/*
+		 * All available PEBs are in ubi->free, now is the time to get
+		 * the best anchor PEBs.
+		 */
+		ubi->fm_anchor = ubi_wl_get_fm_peb(ubi, 1);
 
 	for (;;) {
 		enough = 0;
drivers/mtd/ubi/vmt.c +10 -8
index 8fcc0bdf0635..2c867d16f89f 100644
@@ -464,7 +464,7 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs)
 		for (i = 0; i < -pebs; i++) {
 			err = ubi_eba_unmap_leb(ubi, vol, reserved_pebs + i);
 			if (err)
-				goto out_acc;
+				goto out_free;
 		}
 		spin_lock(&ubi->volumes_lock);
 		ubi->rsvd_pebs += pebs;
@@ -512,8 +512,10 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs)
 		ubi->avail_pebs += pebs;
 		spin_unlock(&ubi->volumes_lock);
 	}
+	return err;
+
 out_free:
-	kfree(new_eba_tbl);
+	ubi_eba_destroy_table(new_eba_tbl);
 	return err;
 }
 
@@ -580,6 +582,7 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol)
 	if (err) {
 		ubi_err(ubi, "cannot add character device for volume %d, error %d",
 			vol_id, err);
+		vol_release(&vol->dev);
 		return err;
 	}
 
@@ -590,15 +593,14 @@ int ubi_add_volume(struct ubi_device *ubi, struct ubi_volume *vol)
 	vol->dev.groups = volume_dev_groups;
 	dev_set_name(&vol->dev, "%s_%d", ubi->ubi_name, vol->vol_id);
 	err = device_register(&vol->dev);
-	if (err)
-		goto out_cdev;
+	if (err) {
+		cdev_del(&vol->cdev);
+		put_device(&vol->dev);
+		return err;
+	}
 
 	self_check_volumes(ubi);
 	return err;
-
-out_cdev:
-	cdev_del(&vol->cdev);
-	return err;
 }
 
 /**
drivers/mtd/ubi/wl.c +22 -3
index 68eb0f21b3fe..9e14319225c9 100644
@@ -890,8 +890,11 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
 
 	err = do_sync_erase(ubi, e1, vol_id, lnum, 0);
 	if (err) {
-		if (e2)
+		if (e2) {
+			spin_lock(&ubi->wl_lock);
 			wl_entry_destroy(ubi, e2);
+			spin_unlock(&ubi->wl_lock);
+		}
 		goto out_ro;
 	}
 
@@ -973,11 +976,11 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
 	spin_lock(&ubi->wl_lock);
 	ubi->move_from = ubi->move_to = NULL;
 	ubi->move_to_put = ubi->wl_scheduled = 0;
+	wl_entry_destroy(ubi, e1);
+	wl_entry_destroy(ubi, e2);
 	spin_unlock(&ubi->wl_lock);
 
 	ubi_free_vid_buf(vidb);
-	wl_entry_destroy(ubi, e1);
-	wl_entry_destroy(ubi, e2);
 
 out_ro:
 	ubi_ro_mode(ubi);
@@ -1130,14 +1133,18 @@ static int __erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk)
 		/* Re-schedule the LEB for erasure */
 		err1 = schedule_erase(ubi, e, vol_id, lnum, 0, false);
 		if (err1) {
+			spin_lock(&ubi->wl_lock);
 			wl_entry_destroy(ubi, e);
+			spin_unlock(&ubi->wl_lock);
 			err = err1;
 			goto out_ro;
 		}
 		return err;
 	}
 
+	spin_lock(&ubi->wl_lock);
 	wl_entry_destroy(ubi, e);
+	spin_unlock(&ubi->wl_lock);
 	if (err != -EIO)
 		/*
 		 * If this is not %-EIO, we have no idea what to do. Scheduling
@@ -1253,6 +1260,18 @@ int ubi_wl_put_peb(struct ubi_device *ubi, int vol_id, int lnum,
 retry:
 	spin_lock(&ubi->wl_lock);
 	e = ubi->lookuptbl[pnum];
+	if (!e) {
+		/*
+		 * This wl entry has been removed for some errors by other
+		 * process (eg. wear leveling worker), corresponding process
+		 * (except __erase_worker, which cannot concurrent with
+		 * ubi_wl_put_peb) will set ubi ro_mode at the same time,
+		 * just ignore this wl entry.
+		 */
+		spin_unlock(&ubi->wl_lock);
+		up_read(&ubi->fm_protect);
+		return 0;
+	}
 	if (e == ubi->move_from) {
 		/*
 		 * User is putting the physical eraseblock which was selected to
drivers/net/dsa/ocelot/felix_vsc9959.c +1 -1
index 26a35ae322d1..cc89cff029e1 100644
@@ -513,7 +513,7 @@ static const char * const vsc9959_resource_names[TARGET_MAX] = {
  * SGMII/QSGMII MAC PCS can be found.
  */
 static const struct resource vsc9959_imdio_res =
-	DEFINE_RES_MEM_NAMED(0x8030, 0x8040, "imdio");
+	DEFINE_RES_MEM_NAMED(0x8030, 0x10, "imdio");
 
 static const struct reg_field vsc9959_regfields[REGFIELD_MAX] = {
 	[ANA_ADVLEARN_VLAN_CHK] = REG_FIELD(ANA_ADVLEARN, 6, 6),
drivers/net/dsa/ocelot/seville_vsc9953.c +2 -2
index 7af33b2c685d..c2863d6d870f 100644
@@ -923,8 +923,8 @@ static int vsc9953_mdio_bus_alloc(struct ocelot *ocelot)
 
 	rc = mscc_miim_setup(dev, &bus, "VSC9953 internal MDIO bus",
 			     ocelot->targets[GCB],
-			     ocelot->map[GCB][GCB_MIIM_MII_STATUS & REG_MASK]);
-
+			     ocelot->map[GCB][GCB_MIIM_MII_STATUS & REG_MASK],
+			     true);
 	if (rc) {
 		dev_err(dev, "failed to setup MDIO bus\n");
 		return rc;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +1 -1
index 709fc0114fbd..0f7345a96965 100644
@@ -765,7 +765,7 @@ static int otx2_prepare_ipv6_flow(struct ethtool_rx_flow_spec *fsp,
 
 		/* NPC profile doesn't extract AH/ESP header fields */
 		if ((ah_esp_mask->spi & ah_esp_hdr->spi) ||
-		    (ah_esp_mask->tclass & ah_esp_mask->tclass))
+		    (ah_esp_mask->tclass & ah_esp_hdr->tclass))
 			return -EOPNOTSUPP;
 
 		if (flow_type == AH_V6_FLOW)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +57 -19

132 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/ecpf.c +4 -0
index cdc87ecae5d3..d000236ddbac 100644
@@ -90,4 +90,8 @@ void mlx5_ec_cleanup(struct mlx5_core_dev *dev)
 	err = mlx5_wait_for_pages(dev, &dev->priv.page_counters[MLX5_HOST_PF]);
 	if (err)
 		mlx5_core_warn(dev, "Timeout reclaiming external host PF pages err(%d)\n", err);
+
+	err = mlx5_wait_for_pages(dev, &dev->priv.page_counters[MLX5_VF]);
+	if (err)
+		mlx5_core_warn(dev, "Timeout reclaiming external host VFs pages err(%d)\n", err);
 }
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +22 -3
index 8469e9c38670..ae75e230170b 100644
@@ -86,7 +86,19 @@ static bool mlx5e_ptp_ts_cqe_drop(struct mlx5e_ptpsq *ptpsq, u16 skb_cc, u16 skb
 	return (ptpsq->ts_cqe_ctr_mask && (skb_cc != skb_id));
 }
 
-static void mlx5e_ptp_skb_fifo_ts_cqe_resync(struct mlx5e_ptpsq *ptpsq, u16 skb_cc, u16 skb_id)
+static bool mlx5e_ptp_ts_cqe_ooo(struct mlx5e_ptpsq *ptpsq, u16 skb_id)
+{
+	u16 skb_cc = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_cc);
+	u16 skb_pc = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_pc);
+
+	if (PTP_WQE_CTR2IDX(skb_id - skb_cc) >= PTP_WQE_CTR2IDX(skb_pc - skb_cc))
+		return true;
+
+	return false;
+}
+
+static void mlx5e_ptp_skb_fifo_ts_cqe_resync(struct mlx5e_ptpsq *ptpsq, u16 skb_cc,
+					     u16 skb_id, int budget)
 {
 	struct skb_shared_hwtstamps hwts = {};
 	struct sk_buff *skb;
@@ -98,6 +110,7 @@ static void mlx5e_ptp_skb_fifo_ts_cqe_resync(struct mlx5e_ptpsq *ptpsq, u16 skb_
 		hwts.hwtstamp = mlx5e_skb_cb_get_hwts(skb)->cqe_hwtstamp;
 		skb_tstamp_tx(skb, &hwts);
 		ptpsq->cq_stats->resync_cqe++;
+		napi_consume_skb(skb, budget);
 		skb_cc = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_cc);
 	}
 }
@@ -118,8 +131,14 @@ static void mlx5e_ptp_handle_ts_cqe(struct mlx5e_ptpsq *ptpsq,
 		goto out;
 	}
 
-	if (mlx5e_ptp_ts_cqe_drop(ptpsq, skb_cc, skb_id))
-		mlx5e_ptp_skb_fifo_ts_cqe_resync(ptpsq, skb_cc, skb_id);
+	if (mlx5e_ptp_ts_cqe_drop(ptpsq, skb_cc, skb_id)) {
+		if (mlx5e_ptp_ts_cqe_ooo(ptpsq, skb_id)) {
+			/* already handled by a previous resync */
+			ptpsq->cq_stats->ooo_cqe_drop++;
+			return;
+		}
+		mlx5e_ptp_skb_fifo_ts_cqe_resync(ptpsq, skb_cc, skb_id, budget);
+	}
 
 	skb = mlx5e_skb_fifo_pop(&ptpsq->skb_fifo);
 	hwtstamp = mlx5e_cqe_ts_to_ns(sq->ptp_cyc2time, sq->clock, get_cqe_ts(cqe));
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +3 -1
index 853f312cd757..1b3a65325ece 100644
@@ -81,7 +81,7 @@ void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq);
 static inline bool
 mlx5e_skb_fifo_has_room(struct mlx5e_skb_fifo *fifo)
 {
-	return (*fifo->pc - *fifo->cc) < fifo->mask;
+	return (u16)(*fifo->pc - *fifo->cc) < fifo->mask;
 }
 
 static inline bool
@@ -297,6 +297,8 @@ void mlx5e_skb_fifo_push(struct mlx5e_skb_fifo *fifo, struct sk_buff *skb)
 static inline
 struct sk_buff *mlx5e_skb_fifo_pop(struct mlx5e_skb_fifo *fifo)
 {
+	WARN_ON_ONCE(*fifo->pc == *fifo->cc);
+
 	return *mlx5e_skb_fifo_get(fifo, (*fifo->cc)++);
 }
 
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c +1 -0
index 03c1841970f1..f7f54550a8bb 100644
@@ -2121,6 +2121,7 @@ static const struct counter_desc ptp_cq_stats_desc[] = {
 	{ MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, abort_abs_diff_ns) },
 	{ MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, resync_cqe) },
 	{ MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, resync_event) },
+	{ MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, ooo_cqe_drop) },
 };
 
 static const struct counter_desc ptp_rq_stats_desc[] = {
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h +1 -0
index 9f781085be47..52a67efafcd3 100644
@@ -459,6 +459,7 @@ struct mlx5e_ptp_cq_stats {
 	u64 abort_abs_diff_ns;
 	u64 resync_cqe;
 	u64 resync_event;
+	u64 ooo_cqe_drop;
 };
 
 struct mlx5e_stats {
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +2 -1
index b4e263e8cfb8..235f6f0a7052 100644
@@ -1043,7 +1043,8 @@ mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
 	dest.vport.flags |= MLX5_FLOW_DEST_VPORT_VHCA_ID;
 	flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
 
-	if (rep->vport == MLX5_VPORT_UPLINK)
+	if (MLX5_CAP_ESW_FLOWTABLE(on_esw->dev, flow_source) &&
+	    rep->vport == MLX5_VPORT_UPLINK)
 		spec->flow_context.flow_source = MLX5_FLOW_CONTEXT_FLOW_SOURCE_LOCAL_VPORT;
 
 	flow_rule = mlx5_add_flow_rules(on_esw->fdb_table.offloads.slow_fdb,
drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c +1 -0
index 23361a9ae4fa..6dc83e871cd7 100644
@@ -105,6 +105,7 @@ int mlx5_geneve_tlv_option_add(struct mlx5_geneve *geneve, struct geneve_opt *op
 		geneve->opt_type = opt->type;
 		geneve->obj_id = res;
 		geneve->refcount++;
+		res = 0;
 	}
 
 unlock:
drivers/net/ethernet/mellanox/mlx5/core/sriov.c +4 -0
index 3008e9ce2bbf..20d7662c10fb 100644
@@ -147,6 +147,10 @@ mlx5_device_disable_sriov(struct mlx5_core_dev *dev, int num_vfs, bool clear_vf)
 
 	mlx5_eswitch_disable_sriov(dev->priv.eswitch, clear_vf);
 
+	/* For ECPFs, skip waiting for host VF pages until ECPF is destroyed */
+	if (mlx5_core_is_ecpf(dev))
+		return;
+
 	if (mlx5_wait_for_pages(dev, &dev->priv.page_counters[MLX5_VF]))
 		mlx5_core_warn(dev, "timeout reclaiming VFs pages\n");
 }
drivers/net/ethernet/sun/sunhme.c +4 -2
index 1c16548415cd..b0c7ab74a82e 100644
@@ -2894,8 +2894,10 @@ static int happy_meal_pci_probe(struct pci_dev *pdev,
 		goto err_out_clear_quattro;
 	}
 
-	hpreg_res = devm_request_region(&pdev->dev, pci_resource_start(pdev, 0),
-					pci_resource_len(pdev, 0), DRV_NAME);
+	hpreg_res = devm_request_mem_region(&pdev->dev,
+					    pci_resource_start(pdev, 0),
+					    pci_resource_len(pdev, 0),
+					    DRV_NAME);
 	if (!hpreg_res) {
 		err = -EBUSY;
 		dev_err(&pdev->dev, "Cannot obtain PCI resources, aborting.\n");
drivers/net/mdio/mdio-mscc-miim.c +6 -3
index 51f68daac152..34b87389788b 100644
@@ -52,6 +52,7 @@ struct mscc_miim_info {
 struct mscc_miim_dev {
 	struct regmap *regs;
 	int mii_status_offset;
+	bool ignore_read_errors;
 	struct regmap *phy_regs;
 	const struct mscc_miim_info *info;
 	struct clk *clk;
@@ -138,7 +139,7 @@ static int mscc_miim_read(struct mii_bus *bus, int mii_id, int regnum)
 		goto out;
 	}
 
-	if (val & MSCC_MIIM_DATA_ERROR) {
+	if (!miim->ignore_read_errors && !!(val & MSCC_MIIM_DATA_ERROR)) {
 		ret = -EIO;
 		goto out;
 	}
@@ -218,7 +219,8 @@ static const struct regmap_config mscc_miim_phy_regmap_config = {
 };
 
 int mscc_miim_setup(struct device *dev, struct mii_bus **pbus, const char *name,
-		    struct regmap *mii_regmap, int status_offset)
+		    struct regmap *mii_regmap, int status_offset,
+		    bool ignore_read_errors)
 {
 	struct mscc_miim_dev *miim;
 	struct mii_bus *bus;
@@ -240,6 +242,7 @@ int mscc_miim_setup(struct device *dev, struct mii_bus **pbus, const char *name,
 
 	miim->regs = mii_regmap;
 	miim->mii_status_offset = status_offset;
+	miim->ignore_read_errors = ignore_read_errors;
 
 	*pbus = bus;
 
@@ -291,7 +294,7 @@ static int mscc_miim_probe(struct platform_device *pdev)
 		return dev_err_probe(dev, PTR_ERR(phy_regmap),
 				     "Unable to create phy register regmap\n");
 
-	ret = mscc_miim_setup(dev, &bus, "mscc_miim", mii_regmap, 0);
+	ret = mscc_miim_setup(dev, &bus, "mscc_miim", mii_regmap, 0, false);
 	if (ret < 0) {
 		dev_err(dev, "Unable to setup the MDIO bus\n");
 		return ret;
drivers/nfc/st-nci/se.c +6 -0
index ec87dd21e054..b2f1ced8e6dd 100644
@@ -672,6 +672,12 @@ int st_nci_se_io(struct nci_dev *ndev, u32 se_idx,
 					ST_NCI_EVT_TRANSMIT_DATA, apdu,
 					apdu_length);
 	default:
+		/* Need to free cb_context here as at the moment we can't
+		 * clearly indicate to the caller if the callback function
+		 * would be called (and free it) or not. In both cases a
+		 * negative value may be returned to the caller.
+		 */
+		kfree(cb_context);
 		return -ENODEV;
 	}
 }
drivers/nfc/st21nfca/se.c +6 -0
index df8d27cf2956..dae288bebcb5 100644
@@ -236,6 +236,12 @@ int st21nfca_hci_se_io(struct nfc_hci_dev *hdev, u32 se_idx,
 					ST21NFCA_EVT_TRANSMIT_DATA,
 					apdu, apdu_length);
 	default:
+		/* Need to free cb_context here as at the moment we can't
+		 * clearly indicate to the caller if the callback function
+		 * would be called (and free it) or not. In both cases a
+		 * negative value may be returned to the caller.
+		 */
+		kfree(cb_context);
 		return -ENODEV;
 	}
 }
drivers/nvme/host/core.c +18 -17
index 5acc9ae225df..2031fd960549 100644
@@ -38,6 +38,7 @@ struct nvme_ns_info {
 	bool is_shared;
 	bool is_readonly;
 	bool is_ready;
+	bool is_removed;
 };
 
 unsigned int admin_timeout = 60;
@@ -1439,16 +1440,8 @@ static int nvme_identify_ns(struct nvme_ctrl *ctrl, unsigned nsid,
 	error = nvme_submit_sync_cmd(ctrl->admin_q, &c, *id, sizeof(**id));
 	if (error) {
 		dev_warn(ctrl->device, "Identify namespace failed (%d)\n", error);
-		goto out_free_id;
+		kfree(*id);
 	}
-
-	error = NVME_SC_INVALID_NS | NVME_SC_DNR;
-	if ((*id)->ncap == 0) /* namespace not allocated or attached */
-		goto out_free_id;
-	return 0;
-
-out_free_id:
-	kfree(*id);
 	return error;
 }
 
@@ -1462,6 +1455,13 @@ static int nvme_ns_info_from_identify(struct nvme_ctrl *ctrl,
 	ret = nvme_identify_ns(ctrl, info->nsid, &id);
 	if (ret)
 		return ret;
+
+	if (id->ncap == 0) {
+		/* namespace not allocated or attached */
+		info->is_removed = true;
+		return -ENODEV;
+	}
+
 	info->anagrpid = id->anagrpid;
 	info->is_shared = id->nmic & NVME_NS_NMIC_SHARED;
 	info->is_readonly = id->nsattr & NVME_NS_ATTR_RO;
@@ -4388,6 +4388,7 @@ static void nvme_scan_ns(struct nvme_ctrl *ctrl, unsigned nsid)
 {
 	struct nvme_ns_info info = { .nsid = nsid };
 	struct nvme_ns *ns;
+	int ret;
 
 	if (nvme_identify_ns_descs(ctrl, &info))
 		return;
@@ -4404,19 +4405,19 @@ static void nvme_scan_ns(struct nvme_ctrl *ctrl, unsigned nsid)
 	 * set up a namespace.  If not fall back to the legacy version.
 	 */
 	if ((ctrl->cap & NVME_CAP_CRMS_CRIMS) ||
-	    (info.ids.csi != NVME_CSI_NVM && info.ids.csi != NVME_CSI_ZNS)) {
-		if (nvme_ns_info_from_id_cs_indep(ctrl, &info))
-			return;
-	} else {
-		if (nvme_ns_info_from_identify(ctrl, &info))
-			return;
-	}
+	    (info.ids.csi != NVME_CSI_NVM && info.ids.csi != NVME_CSI_ZNS))
+		ret = nvme_ns_info_from_id_cs_indep(ctrl, &info);
+	else
+		ret = nvme_ns_info_from_identify(ctrl, &info);
+
+	if (info.is_removed)
+		nvme_ns_remove_by_nsid(ctrl, nsid);
 
 	/*
 	 * Ignore the namespace if it is not ready. We will get an AEN once it
 	 * becomes ready and restart the scan.
 	 */
-	if (!info.is_ready)
+	if (ret || !info.is_ready)
 		return;
 
 	ns = nvme_find_get_ns(ctrl, nsid);
drivers/nvme/host/fabrics.h +2 -1
index a6e22116e139..dcac3df8a5f7 100644
@@ -189,7 +189,8 @@ nvmf_ctlr_matches_baseopts(struct nvme_ctrl *ctrl,
 
 static inline char *nvmf_ctrl_subsysnqn(struct nvme_ctrl *ctrl)
 {
-	if (!ctrl->subsys)
+	if (!ctrl->subsys ||
+	    !strcmp(ctrl->opts->subsysnqn, NVME_DISC_SUBSYS_NAME))
 		return ctrl->opts->subsysnqn;
 	return ctrl->subsys->subnqn;
 }
drivers/nvme/host/tcp.c +6 -0
index 1dc7c733c7e3..bb80192c16b6 100644
@@ -2488,6 +2488,10 @@ static int nvme_tcp_get_address(struct nvme_ctrl *ctrl, char *buf, int size)
 
 	len = nvmf_get_address(ctrl, buf, size);
 
+	mutex_lock(&queue->queue_lock);
+
+	if (!test_bit(NVME_TCP_Q_LIVE, &queue->flags))
+		goto done;
 	ret = kernel_getsockname(queue->sock, (struct sockaddr *)&src_addr);
 	if (ret > 0) {
 		if (len > 0)
@@ -2495,6 +2499,8 @@ static int nvme_tcp_get_address(struct nvme_ctrl *ctrl, char *buf, int size)
 		len += scnprintf(buf + len, size - len, "%ssrc_addr=%pISc\n",
 				(len) ? "," : "", &src_addr);
 	}
+done:
+	mutex_unlock(&queue->queue_lock);
 
 	return len;
 }
drivers/pci/controller/pci-loongson.c +36 -35

93 lines not on this page · raw message

drivers/pci/hotplug/pciehp_hpc.c +2 -0
index 040ae076ec0e..112c8f401ac4 100644
@@ -1086,6 +1086,8 @@ static void quirk_cmd_compl(struct pci_dev *pdev)
 }
 DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
 			      PCI_CLASS_BRIDGE_PCI, 8, quirk_cmd_compl);
+DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_QCOM, 0x010e,
+			      PCI_CLASS_BRIDGE_PCI, 8, quirk_cmd_compl);
 DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_QCOM, 0x0110,
 			      PCI_CLASS_BRIDGE_PCI, 8, quirk_cmd_compl);
 DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_QCOM, 0x0400,
drivers/pci/pci-acpi.c +31 -14

77 lines not on this page · raw message

drivers/pci/pci.c +10 -0
index c20e95fd48ce..98d841a7b45b 100644
@@ -6017,6 +6017,7 @@ int pcie_set_readrq(struct pci_dev *dev, int rq)
 {
 	u16 v;
 	int ret;
+	struct pci_host_bridge *bridge = pci_find_host_bridge(dev->bus);
 
 	if (rq < 128 || rq > 4096 || !is_power_of_2(rq))
 		return -EINVAL;
@@ -6035,6 +6036,15 @@ int pcie_set_readrq(struct pci_dev *dev, int rq)
 
 	v = (ffs(rq) - 8) << 12;
 
+	if (bridge->no_inc_mrrs) {
+		int max_mrrs = pcie_get_readrq(dev);
+
+		if (rq > max_mrrs) {
+			pci_info(dev, "can't set Max_Read_Request_Size to %d; max is %d\n", rq, max_mrrs);
+			return -EINVAL;
+		}
+	}
+
 	ret = pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
 						  PCI_EXP_DEVCTL_READRQ, v);
 
drivers/pci/quirks.c +22 -0
index 20ac67d59034..494fa46f5767 100644
@@ -4835,6 +4835,26 @@ static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags)
 		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
+/*
+ * Wangxun 10G/1G NICs have no ACS capability, and on multi-function
+ * devices, peer-to-peer transactions are not be used between the functions.
+ * So add an ACS quirk for below devices to isolate functions.
+ * SFxxx 1G NICs(em).
+ * RP1000/RP2000 10G NICs(sp).
+ */
+static int  pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags)
+{
+	switch (dev->device) {
+	case 0x0100 ... 0x010F:
+	case 0x1001:
+	case 0x2001:
+		return pci_acs_ctrl_enabled(acs_flags,
+			PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
+	}
+
+	return false;
+}
+
 static const struct pci_dev_acs_enabled {
 	u16 vendor;
 	u16 device;
@@ -4980,6 +5000,8 @@ static const struct pci_dev_acs_enabled {
 	{ PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs },
 	/* Zhaoxin Root/Downstream Ports */
 	{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
+	/* Wangxun nics */
+	{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
 	{ 0 }
 };
 
drivers/pci/setup-bus.c +170 -66

301 lines not on this page · raw message

drivers/phy/rockchip/phy-rockchip-typec.c +1 -2
index 6aea512e5d4e..39db8acde61a 100644
@@ -808,9 +808,8 @@ static int tcphy_get_mode(struct rockchip_typec_phy *tcphy)
 	struct extcon_dev *edev = tcphy->extcon;
 	union extcon_property_value property;
 	unsigned int id;
-	bool ufp, dp;
 	u8 mode;
-	int ret;
+	int ret, ufp, dp;
 
 	if (!edev)
 		return MODE_DFP_USB;
drivers/ptp/ptp_private.h +1 -1
index 77918a2c6701..75f58fc468a7 100644
@@ -66,7 +66,7 @@ struct ptp_vclock {
 	struct hlist_node vclock_hash_node;
 	struct cyclecounter cc;
 	struct timecounter tc;
-	spinlock_t lock;	/* protects tc/cc */
+	struct mutex lock;	/* protects tc/cc */
 };
 
 /*
drivers/ptp/ptp_vclock.c +22 -22

127 lines not on this page · raw message

drivers/pwm/pwm-sifive.c +7 -1
index bb7239313401..89d53a0f91e6 100644
@@ -159,7 +159,13 @@ static int pwm_sifive_apply(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	mutex_lock(&ddata->lock);
 	if (state->period != ddata->approx_period) {
-		if (ddata->user_count != 1) {
+		/*
+		 * Don't let a 2nd user change the period underneath the 1st user.
+		 * However if ddate->approx_period == 0 this is the first time we set
+		 * any period, so let whoever gets here first set the period so other
+		 * users who agree on the period won't fail.
+		 */
+		if (ddata->user_count != 1 && ddata->approx_period) {
 			mutex_unlock(&ddata->lock);
 			return -EBUSY;
 		}
drivers/pwm/pwm-stm32-lp.c +1 -1
index 3115abb3f52a..61a1c87cd501 100644
@@ -127,7 +127,7 @@ static int stm32_pwm_lp_apply(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	/* ensure CMP & ARR registers are properly written */
 	ret = regmap_read_poll_timeout(priv->regmap, STM32_LPTIM_ISR, val,
-				       (val & STM32_LPTIM_CMPOK_ARROK),
+				       (val & STM32_LPTIM_CMPOK_ARROK) == STM32_LPTIM_CMPOK_ARROK,
 				       100, 1000);
 	if (ret) {
 		dev_err(priv->chip.dev, "ARR/CMP registers write issue\n");
drivers/rtc/interface.c +1 -1
index 9edd662c69ac..3d0fbc644f57 100644
@@ -392,7 +392,7 @@ int rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
 		return err;
 	if (!rtc->ops) {
 		err = -ENODEV;
-	} else if (!test_bit(RTC_FEATURE_ALARM, rtc->features) || !rtc->ops->read_alarm) {
+	} else if (!test_bit(RTC_FEATURE_ALARM, rtc->features)) {
 		err = -EINVAL;
 	} else {
 		memset(alarm, 0, sizeof(struct rtc_wkalrm));
drivers/rtc/rtc-sun6i.c +4 -12
index ed5516089e9a..7038f47d77ff 100644
@@ -136,7 +136,6 @@ struct sun6i_rtc_clk_data {
 	unsigned int fixed_prescaler : 16;
 	unsigned int has_prescaler : 1;
 	unsigned int has_out_clk : 1;
-	unsigned int export_iosc : 1;
 	unsigned int has_losc_en : 1;
 	unsigned int has_auto_swt : 1;
 };
@@ -271,10 +270,8 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
 	/* Yes, I know, this is ugly. */
 	sun6i_rtc = rtc;
 
-	/* Only read IOSC name from device tree if it is exported */
-	if (rtc->data->export_iosc)
-		of_property_read_string_index(node, "clock-output-names", 2,
-					      &iosc_name);
+	of_property_read_string_index(node, "clock-output-names", 2,
+				      &iosc_name);
 
 	rtc->int_osc = clk_hw_register_fixed_rate_with_accuracy(NULL,
 								iosc_name,
@@ -315,13 +312,10 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
 		goto err_register;
 	}
 
-	clk_data->num = 2;
+	clk_data->num = 3;
 	clk_data->hws[0] = &rtc->hw;
 	clk_data->hws[1] = __clk_get_hw(rtc->ext_losc);
-	if (rtc->data->export_iosc) {
-		clk_data->hws[2] = rtc->int_osc;
-		clk_data->num = 3;
-	}
+	clk_data->hws[2] = rtc->int_osc;
 	of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
 	return;
 
@@ -361,7 +355,6 @@ static const struct sun6i_rtc_clk_data sun8i_h3_rtc_data = {
 	.fixed_prescaler = 32,
 	.has_prescaler = 1,
 	.has_out_clk = 1,
-	.export_iosc = 1,
 };
 
 static void __init sun8i_h3_rtc_clk_init(struct device_node *node)
@@ -379,7 +372,6 @@ static const struct sun6i_rtc_clk_data sun50i_h6_rtc_data = {
 	.fixed_prescaler = 32,
 	.has_prescaler = 1,
 	.has_out_clk = 1,
-	.export_iosc = 1,
 	.has_losc_en = 1,
 	.has_auto_swt = 1,
 };
drivers/scsi/ipr.c +21 -20

63 lines not on this page · raw message

drivers/scsi/mpi3mr/mpi3mr.h +2 -8
index def4c5e15cd8..8a438f248a82 100644
@@ -955,19 +955,16 @@ struct scmd_priv {
  * @chain_buf_count: Chain buffer count
  * @chain_buf_pool: Chain buffer pool
  * @chain_sgl_list: Chain SGL list
- * @chain_bitmap_sz: Chain buffer allocator bitmap size
  * @chain_bitmap: Chain buffer allocator bitmap
  * @chain_buf_lock: Chain buffer list lock
  * @bsg_cmds: Command tracker for BSG command
  * @host_tm_cmds: Command tracker for task management commands
  * @dev_rmhs_cmds: Command tracker for device removal commands
  * @evtack_cmds: Command tracker for event ack commands
- * @devrem_bitmap_sz: Device removal bitmap size
  * @devrem_bitmap: Device removal bitmap
- * @dev_handle_bitmap_sz: Device handle bitmap size
+ * @dev_handle_bitmap_bits: Number of bits in device handle bitmap
  * @removepend_bitmap: Remove pending bitmap
  * @delayed_rmhs_list: Delayed device removal list
- * @evtack_cmds_bitmap_sz: Event Ack bitmap size
  * @evtack_cmds_bitmap: Event Ack bitmap
  * @delayed_evtack_cmds_list: Delayed event acknowledgment list
  * @ts_update_counter: Timestamp update counter
@@ -1128,7 +1125,6 @@ struct mpi3mr_ioc {
 	u32 chain_buf_count;
 	struct dma_pool *chain_buf_pool;
 	struct chain_element *chain_sgl_list;
-	u16  chain_bitmap_sz;
 	void *chain_bitmap;
 	spinlock_t chain_buf_lock;
 
@@ -1136,12 +1132,10 @@ struct mpi3mr_ioc {
 	struct mpi3mr_drv_cmd host_tm_cmds;
 	struct mpi3mr_drv_cmd dev_rmhs_cmds[MPI3MR_NUM_DEVRMCMD];
 	struct mpi3mr_drv_cmd evtack_cmds[MPI3MR_NUM_EVTACKCMD];
-	u16 devrem_bitmap_sz;
 	void *devrem_bitmap;
-	u16 dev_handle_bitmap_sz;
+	u16 dev_handle_bitmap_bits;
 	void *removepend_bitmap;
 	struct list_head delayed_rmhs_list;
-	u16 evtack_cmds_bitmap_sz;
 	void *evtack_cmds_bitmap;
 	struct list_head delayed_evtack_cmds_list;
 
drivers/scsi/mpi3mr/mpi3mr_fw.c +31 -44

3 lines not on this page · raw message

drivers/scsi/mpi3mr/mpi3mr_transport.c +1 -1
index 3fc897336b5e..3b61815979da 100644

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

drivers/soc/mediatek/mt8186-pm-domains.h +1 -3
index 108af61854a3..fce86f79c505 100644

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

drivers/soc/mediatek/mtk-svs.c +36 -12

48 lines not on this page · raw message

drivers/soc/qcom/qcom_stats.c +2 -8
index 121ea409fafc..b252bedf0cf1 100644

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

drivers/soc/xilinx/xlnx_event_manager.c +3 -1
index 2de082765bef..c76381899ef4 100644

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

drivers/soundwire/bus_type.c +3 -6
index 04b3529f8929..963498db0fd2 100644

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

drivers/soundwire/cadence_master.c +27 -16

43 lines not on this page · raw message

drivers/soundwire/cadence_master.h +12 -1
index ca9e805bab88..51e6ecc027cb 100644

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

drivers/spi/spi-tegra210-quad.c +9 -5
index 9f356612ba7e..06c54d49076a 100644

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

drivers/staging/emxx_udc/emxx_udc.c +6 -1
index b6abd3770e81..edd20a03f7a2 100644

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

drivers/staging/pi433/pi433_if.c +5 -6
index d4e06a3929f3..b59f6a4cb611 100644

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

drivers/thermal/intel/Kconfig +2 -1
index f0c845679250..e3cfad10d5dd 100644

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

drivers/thermal/intel/intel_quark_dts_thermal.c +2 -10
index 3eafc6b0e6c3..b43fbd5eaa6b 100644

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

drivers/tty/serial/fsl_lpuart.c +22 -2
index 13a6cd0116a1..f9d667ce1619 100644

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

drivers/tty/serial/pch_uart.c +1 -1
index 83f35b7b0897..abff1c6470f6 100644

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

drivers/tty/serial/sc16is7xx.c +26 -25

51 lines not on this page · raw message

drivers/tty/tty_io.c +5 -3
index de06c3c2ff70..1ac6784ea1f9 100644

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

drivers/tty/vt/vc_screen.c +1 -3
index 71e091f879f0..1dc07f9214d5 100644

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

drivers/usb/chipidea/debug.c +1 -1
index faf6b078b6c4..bbc610e5bd69 100644

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

drivers/usb/common/ulpi.c +6 -8
index d7c8461976ce..38703781ee2d 100644

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

drivers/usb/core/usb.c +1 -1
index 11b15d7b357a..a415206cab04 100644

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

drivers/usb/dwc3/core.h +2 -0
index 8f9959ba9fd4..582ebd9cf9c2 100644

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

drivers/usb/dwc3/debug.h +3 -0
index 48b44b88dc25..8bb2c9e3b9ac 100644

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

drivers/usb/dwc3/debugfs.c +8 -11
index f2b7675c7f62..850df0e6bcab 100644

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

drivers/usb/dwc3/gadget.c +1 -3
index ed958da0e1c9..df1ce96fa228 100644

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

drivers/usb/gadget/function/uvc_configfs.c +58 -1

59 lines not on this page · raw message

drivers/usb/gadget/udc/bcm63xx_udc.c +1 -1
index d04d72f5816e..8d5892891300 100644

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

drivers/usb/gadget/udc/gr_udc.c +1 -1
index 85cdc0af3bf9..09762559912d 100644

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

drivers/usb/gadget/udc/lpc32xx_udc.c +1 -1
index cea10cdb83ae..fe62db32dd0e 100644

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

drivers/usb/gadget/udc/pxa25x_udc.c +1 -1
index c593fc383481..9e01ddf2b417 100644

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

drivers/usb/gadget/udc/pxa27x_udc.c +1 -1
index ac980d6a4740..0ecdfd2ba9e9 100644

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

drivers/usb/host/fotg210-hcd.c +1 -1
index 3d1dbcf4c073..c4c1fbc12b4c 100644

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

drivers/usb/host/isp116x-hcd.c +1 -1
index 4f564d71bb0b..49ae01487af4 100644

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

drivers/usb/host/isp1362-hcd.c +1 -1
index 0e14d1d07709..b0da143ef4be 100644

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

drivers/usb/host/sl811-hcd.c +1 -1
index d206bd95c7bb..b8b90eec9107 100644

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

drivers/usb/host/uhci-hcd.c +3 -3
index c22b51af83fc..7cdc2fa7c28f 100644

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

drivers/usb/host/xhci-mvebu.c +1 -1
index 60651a50770f..87f1597a0e5a 100644

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

drivers/usb/storage/ene_ub6250.c +1 -1
index 6012603f3630..97c66c0d91f4 100644

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

drivers/vdpa/ifcvf/ifcvf_base.c +7 -23
index 3e4486bfa0b7..3ec5ca3aefe1 100644

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

drivers/vdpa/ifcvf/ifcvf_base.h +4 -2
index f5563f665cc6..25bd4e927b27 100644

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

drivers/vdpa/ifcvf/ifcvf_main.c +59 -80

139 lines not on this page · raw message

drivers/watchdog/at91sam9_wdt.c +3 -4
index 292b5a1ca831..fed7be246442 100644

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

drivers/watchdog/pcwd_usb.c +4 -2
index 1bdaf17c1d38..8202f0a6b093 100644

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

drivers/watchdog/rzg2l_wdt.c +39 -6

45 lines not on this page · raw message

drivers/watchdog/sbsa_gwdt.c +1 -0
index 9791c74aebd4..63862803421f 100644

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

drivers/watchdog/watchdog_dev.c +1 -1
index 55574ed42504..fdffa6859dde 100644

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

fs/ext4/ext4.h +1 -0
index 4e739902dc03..a2bc440743ae 100644

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

fs/ext4/fast_commit.c +26 -18

44 lines not on this page · raw message

fs/ext4/super.c +22 -8
index aa4f65663fad..801160099958 100644

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

fs/f2fs/data.c +14 -10
index 5f4519af9821..f92899bfcbd5 100644

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

fs/f2fs/f2fs.h +8 -0
index 8b9f0b3c7723..87664c309b3c 100644

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

fs/f2fs/file.c +48 -26

74 lines not on this page · raw message

fs/f2fs/inode.c +13 -3
index 5d6fd824f74f..229ddc2f7b07 100644

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

fs/f2fs/iostat.c +5 -1
index 3166a8939ed4..02393c95c9f8 100644

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

fs/f2fs/segment.c +16 -7
index c1d0713666ee..8d1e8c537daf 100644

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

fs/f2fs/super.c +0 -2
index eaabb85cb4dd..14c87399efea 100644

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

fs/f2fs/verity.c +1 -1
index c352fff88a5e..3f4f3295f1c6 100644

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

fs/jfs/jfs_dmap.c +2 -1
index 765838578a72..a3eb1e826947 100644

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

fs/ubifs/budget.c +4 -5
index e8b9b756f0ac..d76eb7b39f56 100644

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

fs/ubifs/dir.c +8 -1
index 0f29cf201136..5e6bcce94e64 100644

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

fs/ubifs/file.c +23 -8
index f2353dd676ef..10c1779af9c5 100644

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

fs/ubifs/super.c +13 -4
index d0c9a09988bc..32cb14759796 100644

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

fs/ubifs/sysfs.c +2 -0
index 06ad8fa1fcfb..54270ad36321 100644

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

fs/ubifs/tnc.c +23 -1
index 488f3da7a6c6..2469f72eeaab 100644

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

fs/ubifs/ubifs.h +5 -0
index 478bbbb5382f..2f1f31581094 100644

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

include/acpi/acpi_bus.h +1 -0
index ab2d6266038a..6badc50ec4e6 100644

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

include/drm/display/drm_dp_mst_helper.h +3 -0
index 41fd8352ab65..6c0c3dc3d3ac 100644

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

include/linux/bootconfig.h +1 -1
index 1611f9db878e..ca73940e26df 100644

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

include/linux/mdio/mdio-mscc-miim.h +1 -1
index 5b4ed2c3cbb9..1ce699740af6 100644

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

include/linux/netfilter.h +5 -0
index d8817d381c14..bef8db9d6c08 100644

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

include/linux/pci.h +1 -0
index 2bda4a4e47e8..cb538bc57971 100644

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

include/linux/pci_ids.h +2 -0
index b362d90eb9b0..bc8f484cdcf3 100644

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

include/media/v4l2-uvc.h +8 -0
index f83e31661333..b010a36fc1d9 100644

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

include/memory/renesas-rpc-if.h +0 -16
index 9c0ad64b8d29..ddf94356752d 100644

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

include/net/netns/conntrack.h +0 -1
index e1290c159184..1f463b3957c7 100644

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

include/net/sctp/structs.h +1 -0
index 350f250b0dc7..00ee9eb601a6 100644

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

include/net/tc_act/tc_pedit.h +66 -15

81 lines not on this page · raw message

include/trace/events/f2fs.h +37 -0
index ff57e7f9914c..e57f867191ef 100644

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

include/uapi/linux/usb/video.h +30 -0
index bfdae12cdacf..c58854fb7d94 100644

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

include/uapi/linux/uvcvideo.h +1 -1
index 8288137387c0..a9d0a64007ba 100644

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

io_uring/kbuf.c +1 -1
index e2c46889d5fa..746b137b96e9 100644

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

io_uring/net.c +9 -7
index 55d822beaf08..4fdc2770bbe4 100644

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

io_uring/poll.c +17 -4
index ab5ae475840f..56dbd1863c78 100644

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

io_uring/poll.h +1 -0
index 5f3bae50fc81..b2393b403a2c 100644

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

kernel/fail_function.c +1 -4
index a7ccd2930c5f..d971a0189319 100644

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

kernel/irq/ipi.c +6 -2
index bbd945bacef0..961d4af76af3 100644

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

kernel/printk/index.c +1 -1
index c85be186a783..a6b27526baaf 100644

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

kernel/trace/ring_buffer.c +6 -1
index c35e08b74014..361bd8beafdf 100644

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

net/9p/trans_rdma.c +12 -3
index e9a830c69058..29a9292303ea 100644

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

net/9p/trans_xen.c +31 -17

48 lines not on this page · raw message

net/bridge/netfilter/ebtables.c +1 -1
index ce5dfa3babd2..757ec46fc45a 100644

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

net/core/dev.c +3 -1
index 7a2a4650a898..24eae99dfe05 100644

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

net/ipv4/netfilter/arp_tables.c +4 -0
index ffc0cab7cf18..2407066b0fec 100644

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

net/ipv4/netfilter/ip_tables.c +5 -2
index 2ed7c58b471a..da5998011ab9 100644

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

net/ipv4/tcp_minisocks.c +5 -2
index c375f603a16c..7f37e7da6467 100644

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

net/ipv6/netfilter/ip6_tables.c +5 -2
index 2d816277f2c5..0ce0ed17c758 100644

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

net/ipv6/netfilter/ip6t_rpfilter.c +3 -1
index a01d9b842bd0..67c87a88cde4 100644

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

net/ipv6/route.c +6 -5
index 2f355f0ec32a..0b060cb8681f 100644

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

net/netfilter/core.c +3 -0
index 5a6705a0e4ec..6e80f0f6149e 100644

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

net/netfilter/nf_conntrack_bpf.c +0 -1
index 8639e7efd0e2..adae86e8e02e 100644

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

net/netfilter/nf_conntrack_core.c +15 -10
index 23b3fedd619a..7f0f3bcaae03 100644

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

net/netfilter/nf_conntrack_ecache.c +1 -1
index 8698b3424646..69948e1d6974 100644

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

net/netfilter/nf_conntrack_netlink.c +4 -4
index 1286ae7d4609..733bb56950c1 100644

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

net/netfilter/nf_tables_api.c +1 -1
index dca5352bdf3d..1a9d759d0a02 100644

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

net/netfilter/nfnetlink.c +5 -4
index 6d18fb346868..81c7737c803a 100644

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

net/netfilter/xt_length.c +1 -2
index 1873da3a945a..9fbfad13176f 100644

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

net/nfc/netlink.c +4 -0
index 1fc339084d89..348bf561bc9f 100644

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

net/sched/Kconfig +0 -11
index 4662a6ce8a7e..bcdd6e925343 100644

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

net/sched/Makefile +0 -1
index dd14ef413fda..b7dbac5c519f 100644

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

net/sched/act_mpls.c +37 -29

66 lines not on this page · raw message

net/sched/act_pedit.c +104 -74

178 lines not on this page · raw message

net/sched/act_sample.c +9 -2
index 7a25477f5d99..09735a33e57e 100644

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

net/sched/cls_tcindex.c deleted +0 -741

741 lines not on this page · raw message

net/sctp/stream_sched_prio.c +21 -31

52 lines not on this page · raw message

net/tls/tls_sw.c +19 -7
index a83d2b4275fa..38dcd9b40102 100644

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

sound/soc/apple/mca.c +23 -8
index 24381c42eb54..64750db9b963 100644

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

sound/soc/codecs/Kconfig +1 -0
index 7022e6286e6c..3f16ad1c3758 100644

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

sound/soc/codecs/adau7118.c +1 -18
index bbb097249887..a663d37e5776 100644

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

sound/soc/mediatek/mt8195/mt8195-dai-etdm.c +3 -0
index c2e268054773..f2c9a1fdbe0d 100644

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

tools/iio/iio_utils.c +6 -17
index 8d35893b2fa8..6a00a6eecaef 100644

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

tools/objtool/check.c +2 -0
index 0c1b6acad141..730b49e255e4 100644

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

tools/testing/selftests/netfilter/rpath.sh +26 -6
index f7311e66d219..5289c8447a41 100755

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

tools/testing/selftests/tc-testing/tc-tests/filters/tcindex.json deleted +0 -227

227 lines not on this page · 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.