Linux 5.19.12
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.19.12 kernel.
All users of the 5.19 kernel series must upgrade.
The updated 5.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm/boot/dts/lan966x.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts | 10 arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 1 arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 1 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 10 arch/arm64/boot/dts/freescale/imx8mn.dtsi | 1 arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts | 12 arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 3 arch/arm64/boot/dts/rockchip/px30-engicam-px30-core.dtsi | 4 arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts | 5 arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 9 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 1 arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 1 arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 2 arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 2 arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 2 arch/arm64/kernel/topology.c | 2 arch/mips/lantiq/clk.c | 1 arch/mips/loongson32/common/platform.c | 16 arch/riscv/Kconfig | 1 arch/riscv/kernel/signal.c | 2 arch/um/kernel/um_arch.c | 2 arch/x86/include/asm/kvm_host.h | 1 arch/x86/kvm/cpuid.c | 11 arch/x86/kvm/emulate.c | 3 arch/x86/kvm/x86.c | 10 block/blk-core.c | 43 - block/blk-mq-debugfs.c | 8 block/blk-mq.c | 43 - block/blk-sysfs.c | 5 block/blk.h | 3 block/bsg-lib.c | 4 block/genhd.c | 45 - certs/Kconfig | 2 drivers/block/ataflop.c | 1 drivers/block/loop.c | 1 drivers/block/mtip32xx/mtip32xx.c | 2 drivers/block/rnbd/rnbd-clt.c | 2 drivers/block/sx8.c | 4 drivers/block/virtio_blk.c | 1 drivers/block/z2ram.c | 1 drivers/cdrom/gdrom.c | 1 drivers/dax/hmem/device.c | 1 drivers/dma/ti/k3-udma-private.c | 6 drivers/firmware/arm_scmi/reset.c | 10 drivers/firmware/efi/libstub/secureboot.c | 8 drivers/firmware/efi/libstub/x86-stub.c | 7 drivers/gpio/gpio-ixp4xx.c | 17 drivers/gpio/gpio-mockup.c | 6 drivers/gpio/gpio-mt7621.c | 21 drivers/gpio/gpio-tqmx86.c | 4 drivers/gpio/gpiolib-cdev.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 3 drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 9 drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c | 3 drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c | 420 ++-------- drivers/gpu/drm/amd/display/modules/color/color_gamma.c | 4 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 11 drivers/gpu/drm/gma500/cdv_device.c | 4 drivers/gpu/drm/gma500/gem.c | 4 drivers/gpu/drm/gma500/gma_display.c | 11 drivers/gpu/drm/gma500/oaktrail_device.c | 5 drivers/gpu/drm/gma500/power.c | 8 drivers/gpu/drm/gma500/psb_drv.c | 2 drivers/gpu/drm/gma500/psb_drv.h | 5 drivers/gpu/drm/gma500/psb_irq.c | 15 drivers/gpu/drm/gma500/psb_irq.h | 2 drivers/gpu/drm/hisilicon/hibmc/Kconfig | 1 drivers/gpu/drm/i915/display/g4x_dp.c | 22 drivers/gpu/drm/i915/display/icl_dsi.c | 18 drivers/gpu/drm/i915/display/intel_backlight.c | 23 drivers/gpu/drm/i915/display/intel_bios.c | 384 +++++---- drivers/gpu/drm/i915/display/intel_bios.h | 4 drivers/gpu/drm/i915/display/intel_ddi.c | 22 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 9 drivers/gpu/drm/i915/display/intel_display_types.h | 69 + drivers/gpu/drm/i915/display/intel_dp.c | 40 drivers/gpu/drm/i915/display/intel_dp.h | 2 drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 6 drivers/gpu/drm/i915/display/intel_drrs.c | 3 drivers/gpu/drm/i915/display/intel_dsi.c | 2 drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 9 drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 56 - drivers/gpu/drm/i915/display/intel_lvds.c | 6 drivers/gpu/drm/i915/display/intel_panel.c | 13 drivers/gpu/drm/i915/display/intel_pps.c | 70 + drivers/gpu/drm/i915/display/intel_psr.c | 35 drivers/gpu/drm/i915/display/intel_sdvo.c | 3 drivers/gpu/drm/i915/display/vlv_dsi.c | 21 drivers/gpu/drm/i915/gem/i915_gem_context.c | 8 drivers/gpu/drm/i915/i915_drv.h | 63 - drivers/gpu/drm/i915/i915_gem.c | 3 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 2 drivers/gpu/drm/mediatek/mtk_dsi.c | 24 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/rockchip/cdn-dp-core.c | 5 drivers/hv/vmbus_drv.c | 10 drivers/i2c/busses/i2c-imx.c | 2 drivers/i2c/busses/i2c-mlxbf.c | 68 - drivers/i2c/i2c-mux.c | 5 drivers/iommu/intel/iommu.c | 2 drivers/media/usb/b2c2/flexcop-usb.c | 2 drivers/memstick/core/ms_block.c | 1 drivers/memstick/core/mspro_block.c | 1 drivers/mmc/core/block.c | 1 drivers/mmc/core/queue.c | 1 drivers/net/bonding/bond_3ad.c | 5 drivers/net/bonding/bond_main.c | 72 + drivers/net/can/flexcan/flexcan-core.c | 10 drivers/net/can/usb/gs_usb.c | 4 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 drivers/net/ethernet/freescale/enetc/Makefile | 1 drivers/net/ethernet/freescale/enetc/enetc.c | 53 - drivers/net/ethernet/freescale/enetc/enetc.h | 12 drivers/net/ethernet/freescale/enetc/enetc_pf.c | 32 drivers/net/ethernet/freescale/enetc/enetc_qos.c | 23 drivers/net/ethernet/freescale/enetc/enetc_vf.c | 17 drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 32 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 20 drivers/net/ethernet/intel/iavf/iavf_txrx.c | 9 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 7 drivers/net/ethernet/intel/ice/ice_lib.c | 42 - drivers/net/ethernet/intel/ice/ice_main.c | 25 drivers/net/ethernet/intel/ice/ice_txrx.c | 5 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 6 drivers/net/ethernet/microsoft/mana/gdma_main.c | 10 drivers/net/ethernet/renesas/ravb_main.c | 2 drivers/net/ethernet/renesas/sh_eth.c | 2 drivers/net/ethernet/sfc/efx_channels.c | 2 drivers/net/ethernet/sfc/siena/efx_channels.c | 2 drivers/net/ethernet/sfc/siena/tx.c | 2 drivers/net/ethernet/sfc/tx.c | 2 drivers/net/ethernet/sun/sunhme.c | 4 drivers/net/ipa/ipa_qmi.c | 8 drivers/net/ipa/ipa_qmi_msg.c | 8 drivers/net/ipa/ipa_qmi_msg.h | 37 drivers/net/ipa/ipa_table.c | 2 drivers/net/ipa/ipa_table.h | 3 drivers/net/ipvlan/ipvlan_core.c | 6 drivers/net/mdio/of_mdio.c | 1 drivers/net/netdevsim/hwstats.c | 6 drivers/net/phy/aquantia_main.c | 53 + drivers/net/phy/micrel.c | 18 drivers/net/team/team.c | 24 drivers/net/wireguard/netlink.c | 13 drivers/net/wireguard/selftest/ratelimiter.c | 25 drivers/net/wireless/intel/iwlwifi/Kconfig | 1 drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 2 drivers/nvdimm/pmem.c | 6 drivers/nvme/host/apple.c | 2 drivers/nvme/host/core.c | 1 drivers/nvme/host/fc.c | 12 drivers/nvme/host/pci.c | 2 drivers/nvme/host/rdma.c | 12 drivers/nvme/host/tcp.c | 12 drivers/nvme/target/loop.c | 12 drivers/perf/arm-cmn.c | 2 drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 87 -- drivers/s390/block/dasd.c | 2 drivers/s390/block/dasd_alias.c | 9 drivers/s390/block/dasd_genhd.c | 4 drivers/scsi/hosts.c | 16 drivers/scsi/mpt3sas/mpt3sas_base.c | 2 drivers/scsi/qla2xxx/qla_target.c | 4 drivers/scsi/scsi_lib.c | 12 drivers/scsi/scsi_priv.h | 2 drivers/scsi/scsi_scan.c | 1 drivers/scsi/scsi_sysfs.c | 3 drivers/scsi/sd.c | 4 drivers/scsi/sr.c | 4 drivers/thunderbolt/icm.c | 1 drivers/thunderbolt/nhi.h | 1 drivers/tty/serial/fsl_lpuart.c | 9 drivers/tty/serial/serial-tegra.c | 5 drivers/tty/serial/tegra-tcu.c | 2 drivers/ufs/core/ufshcd.c | 4 drivers/usb/core/hub.c | 2 drivers/usb/dwc3/core.c | 13 drivers/usb/serial/option.c | 6 drivers/xen/xenbus/xenbus_client.c | 9 fs/btrfs/disk-io.c | 42 - fs/btrfs/zoned.c | 40 fs/cifs/cifsfs.c | 6 fs/cifs/smb2ops.c | 69 + fs/dax.c | 3 fs/exfat/fatent.c | 3 fs/ext4/ext4.h | 10 fs/ext4/extents.c | 4 fs/ext4/ialloc.c | 2 fs/ext4/mballoc.c | 317 +++---- fs/ext4/mballoc.h | 1 include/asm-generic/vmlinux.lds.h | 3 include/linux/blk-mq.h | 3 include/linux/blkdev.h | 6 include/linux/cpumask.h | 5 include/linux/serial_core.h | 17 include/net/bond_3ad.h | 2 include/net/bonding.h | 3 include/scsi/scsi_host.h | 2 include/uapi/linux/xfrm.h | 2 io_uring/io_uring.c | 3 kernel/cgroup/cgroup.c | 5 kernel/workqueue.c | 6 lib/Kconfig.debug | 4 mm/slab_common.c | 5 mm/slub.c | 18 net/batman-adv/hard-interface.c | 4 net/bridge/netfilter/ebtables.c | 4 net/core/flow_dissector.c | 5 net/ipv6/af_inet6.c | 4 net/netfilter/nf_conntrack_ftp.c | 6 net/netfilter/nf_conntrack_irc.c | 34 net/netfilter/nf_conntrack_sip.c | 4 net/netfilter/nf_tables_api.c | 8 net/netfilter/nfnetlink_osf.c | 4 net/sched/cls_api.c | 1 net/sched/sch_taprio.c | 18 net/smc/smc_core.c | 5 scripts/Makefile.debug | 21 sound/core/init.c | 10 sound/pci/hda/hda_bind.c | 4 sound/pci/hda/hda_intel.c | 2 sound/pci/hda/patch_hdmi.c | 24 sound/pci/hda/patch_realtek.c | 33 sound/usb/endpoint.c | 23 sound/usb/endpoint.h | 6 sound/usb/pcm.c | 14 tools/lib/perf/evlist.c | 5 tools/perf/util/bpf_counter_cgroup.c | 4 tools/perf/util/bpf_skel/bperf_cgroup.bpf.c | 2 tools/perf/util/genelf.c | 14 tools/perf/util/genelf.h | 4 tools/perf/util/symbol-elf.c | 7 tools/perf/util/synthetic-events.c | 17 tools/testing/selftests/net/forwarding/sch_red.sh | 1 241 files changed, 2011 insertions(+), 1655 deletions(-)
Adrian Hunter (2):
libperf evlist: Fix polling of system-wide events perf kcore_copy: Do not check /proc/modules is unchanged
Al Viro (1):
riscv: fix a nasty sigreturn bug...
Alan Stern (1):
USB: core: Fix RST error in hub.c
Alex Deucher (2):
drm/amdgpu: add HDP remap functionality to nbio 7.7 drm/amdgpu: don't register a dirty callback for non-atomic
Alex Elder (1):
net: ipa: properly limit modem routing table use
Allen-KH Cheng (1):
drm/mediatek: Fix wrong dither settings
Andy Shevchenko (1):
gpio: mockup: Fix potential resource leakage when register a chip
AngeloGioacchino Del Regno (1):
drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks
Antony Antony (1):
xfrm: fix XFRMA_LASTUSED comment
Ard Biesheuvel (2):
efi: x86: Wipe setup_data on pure EFI boot
efi: libstub: check Shim mode using MokSBStateRT
Asmaa Mnebhi (3):
i2c: mlxbf: incorrect base address passed during io write
i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
i2c: mlxbf: Fix frequency calculation
Bart Van Assche (1):
scsi: core: Fix a use-after-free
Bartosz Golaszewski (1):
gpio: mockup: fix NULL pointer dereference when removing debugfs
Benjamin Poirier (3):
net: bonding: Share lacpdu_mcast_addr definition
net: bonding: Unsync device addresses on ndo_stop
net: team: Unsync device addresses on ndo_stop
Brett Creeley (1):
iavf: Fix cached head and tail value for iavf_get_tx_pending
Brian Norris (1):
arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
Callum Osmotherly (2):
ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop
ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
Candice Li (1):
drm/amdgpu: Skip reset error status for psp v13_0_0
Carl Yin(殷张成) (1):
USB: serial: option: add Quectel BG95 0x0203 composition
Chao Yu (1):
mm/slub: fix to return errno if kmalloc() fails
Chris Wilson (1):
drm/i915/gem: Really move i915_gem_context.link under ref protection
Christian Lamparter (1):
um: fix default console kernel parameter
Christoph Hellwig (6):
block: remove QUEUE_FLAG_DEAD
block: stop setting the nomerges flags in blk_cleanup_queue
block: simplify disk shutdown
blk-mq: fix error handling in __blk_mq_alloc_disk
block: call blk_mq_exit_queue from disk_release for never added disks Revert "block: freeze the queue earlier in del_gendisk"
Cristian Marussi (2):
firmware: arm_scmi: Harden accesses to the reset domains
firmware: arm_scmi: Fix the asynchronous reset requests
Dan Carpenter (1):
i2c: mux: harden i2c_mux_alloc() against integer overflows
Dan Williams (1):
devdax: Fix soft-reservation memory description
Daniel Houldsworth (1):
ALSA: hda/realtek: Add a quirk for HP OMEN 16 (8902) mute LED
Dave Ertman (1):
ice: Don't double unplug aux on peer initiated reset
David Howells (2):
smb3: Move the flush out of smb2_copychunk_range() into its callers
smb3: fix temporary data corruption in insert range
David Leadbeater (1):
netfilter: nf_conntrack_irc: Tighten matching on DCC message
David Thompson (1):
mlxbf_gige: clear MDIO gateway lock after read
Ding Hui (1):
ice: Fix crash by keep old cfg when update TCs more than queues
Dongliang Mu (1):
gpio: tqmx86: fix uninitialized variable girq
Dr. David Alan Gilbert (1):
KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES
Fabio Estevam (3):
arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
arm64: dts: rockchip: Remove 'enable-active-low' from rk3566-quartz64-a
arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header
Felix Fietkau (1):
wifi: mt76: fix reading current per-tid starting sequence number for aggregation
Feng Tang (1):
mm/slab_common: fix possible double free of kmem_cache
Filipe Manana (2):
btrfs: fix hang during unmount when stopping block group reclaim worker
btrfs: fix hang during unmount when stopping a space reclaim worker
Florian Westphal (2):
netfilter: ebtables: fix memory leak when blob is malformed
netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed
Geert Uytterhoeven (2):
net: ravb: Fix PHY state warning splat during system resume
net: sh_eth: Fix PHY state warning splat during system resume
Gil Fine (1):
thunderbolt: Add support for Intel Maple Ridge single port controller
Greg Kroah-Hartman (3):
Revert "usb: add quirks for Lenovo OneLink+ Dock" Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" Linux 5.19.12
Guchun Chen (1):
drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid cards
Haiyang Zhang (1):
net: mana: Add rmb after checking owner bits
Hamza Mahfooz (1):
drm/amdgpu: use dirty framebuffer helper
Hangbin Liu (1):
selftests: forwarding: add shebang for sch_red.sh
Hangyu Hua (1):
net: sched: fix possible refcount leak in tc_new_tfilter()
Hans de Goede (3):
drm/gma500: Fix BUG: sleeping function called from invalid context errors drm/gma500: Fix WARN_ON(lock->magic != lock) error drm/gma500: Fix (vblank) IRQs not working after suspend/resume
Heiko Schocher (1):
drm/panel: simple: Fix innolux_g121i1_l01 bus_format
Horatiu Vultur (1):
ARM: dts: lan966x: Fix the interrupt number for internal PHYs
Ido Schimmel (2):
netdevsim: Fix hwstats debugfs file permissions
ipv6: Fix crash when IPv6 is administratively disabled
Igor Ryzhov (1):
netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
Ilkka Koskinen (1):
perf/arm-cmn: Add more bits to child node address offset field
Ilpo Järvinen (3):
serial: Create uart_xmit_advance()
serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
Ioana Ciornei (1):
net: phy: aquantia: wait for the suspend/resume operations to finish
Jagan Teki (1):
arm64: dts: rockchip: Fix typo in lisense text for PX30.Core
Jakub Kicinski (1):
bnxt: prevent skb UAF after handing over to PTP worker
Jan Kara (6):
ext4: make mballoc try target group first even with mb_optimize_scan
ext4: avoid unnecessary spreading of allocations among groups
ext4: use locality group preallocation for small closed files
ext4: use buckets for cr 1 block scan instead of rbtree
ext4: fixup possible uninitialized variable access in ext4_mb_choose_next_group_cr1()
ext4: make directory inode spreading reflect flexbg size
Jane Chu (1):
pmem: fix a name collision
Jani Nikula (2):
drm/i915/dsi: filter invalid backlight and CABC ports drm/i915/dsi: fix dual-link DSI backlight and CABC ports for display 11+
Janusz Krzysztofik (1):
drm/i915/gem: Flush contexts on driver release
Jason A. Donenfeld (2):
wireguard: ratelimiter: disable timings test by default
wireguard: netlink: avoid variable-sized memcpy on sockaddr
Jean-Francois Le Fillatre (1):
usb: add quirks for Lenovo OneLink+ Dock
Jens Axboe (1):
io_uring: ensure that cached task references are always put on exit
Johan Hovold (1):
media: flexcop-usb: fix endpoint type check
Jonathan Toppins (1):
bonding: fix NULL deref in bond_rr_gen_slave_id
José Roberto de Souza (1):
drm/i915/display: Fix handling of enable_psr parameter
Juergen Gross (1):
xen/xenbus: fix xenbus_setup_ring()
Kai Vehmanen (1):
ALSA: hda: add Intel 5 Series / 3400 PCI DID
Larysa Zaremba (1):
ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient
Li Jinlin (1):
fsdax: Fix infinite loop in dax_iomap_rw()
Liang He (2):
dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get()
of: mdio: Add of_node_put() when breaking out of for_each_xx
Lieven Hey (1):
perf jit: Include program header in ELF files
Linus Walleij (1):
gpio: ixp4xx: Make irqchip immutable
Lu Wei (1):
ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
Ludovic Cintrat (1):
net: core: fix flow symmetric hash
Lukas Wunner (1):
serial: fsl_lpuart: Reset prior to registration
Luke D. Jones (3):
ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
Luís Henriques (1):
ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
Marc Kleine-Budde (2):
can: flexcan: flexcan_mailbox_read() fix return value for drop = true
can: gs_usb: gs_can_open(): fix race dev->can.state condition
Marco Felsch (1):
arm64: dts: imx8mn: remove GPU power domain reset
Marek Vasut (1):
arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo
Masahiro Yamada (1):
certs: make system keyring depend on built-in x509 parser
Mateusz Palczewski (1):
ice: Fix interface being down after reset with link-down-on-close flag on
Maurizio Lombardi (1):
mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.
Meng Li (1):
gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
Michael Riesch (2):
arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a
arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10
Michael Walle (1):
net: phy: micrel: fix shared interrupt on LAN8814
Michal Jaron (3):
iavf: Fix set max MTU size with port VLAN and jumbo frames
i40e: Fix VF set max MTU size
i40e: Fix set max_tx_rate when it is lower than 1 Mbps
Michal Swiatkowski (1):
ice: config netdev tc before setting queues number
Ming Lei (1):
cgroup: cgroup_get_from_id() must check the looked-up kn is a directory
Mohan Kumar (2):
ALSA: hda/tegra: set depop delay for tegra
ALSA: hda: Fix Nvidia dp infoframe
Namhyung Kim (3):
perf stat: Fix BPF program section name
perf stat: Fix cpu map index in bperf cgroup code perf tools: Honor namespace when synthesizing build-ids
Naohiro Aota (1):
btrfs: zoned: wait for extent buffer IOs before finishing a zone
Nathan Chancellor (3):
drm/amd/display: Reduce number of arguments of dml31's CalculateWatermarksAndDRAMSpeedChangeSupport() drm/amd/display: Reduce number of arguments of dml31's CalculateFlipSchedule() drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage
Nathan Huckleberry (1):
drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
Nick Desaulniers (2):
Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT Makefile.debug: re-enable debug info for .S files
Nicolas Frattaroli (1):
arm64: dts: rockchip: Lower sd speed on quartz64-b
Norbert Zulinski (1):
iavf: Fix bad page state
Nícolas F. R. A. Prado (1):
drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
Pablo Neira Ayuso (1):
netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
Pali Rohár (1):
phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support
Peng Fan (1):
arm64: dts: imx8ulp: add #reset-cells for pcc
Peter Collingbourne (1):
kasan: call kasan_malloc() from __kmalloc_*track_caller()
Phil Auld (1):
drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES
Philippe Schenker (1):
arm64: dts: imx8mm-verdin: extend pmic voltages
Piyush Mehta (1):
usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
Rafael Mendonca (2):
scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts()
block: Do not call blk_put_queue() if gendisk allocation fails
Randy Dunlap (3):
riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning
MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko drm/hisilicon: Add depends on MMU
Sean Anderson (1):
net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
Sean Christopherson (2):
KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0
KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled
Serge Semin (1):
MIPS: Loongson32: Fix PHY-mode being left unspecified
Sergey Shtylyov (1):
arm64: topology: fix possible overflow in amu_fie_setup()
Sergio Paracuellos (1):
gpio: mt7621: Make the irqchip immutable
Shailend Chand (1):
gve: Fix GFP flags when allocing pages
Shigeru Yoshida (1):
batman-adv: Fix hang up with small MTU hard-interface
Sreekanth Reddy (1):
scsi: mpt3sas: Fix return value check of dma_get_required_mask()
Stefan Haberland (1):
s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
Steve French (2):
smb3: fix temporary data corruption in collapse range
smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait
Takashi Iwai (4):
Revert "ALSA: usb-audio: Split endpoint setups for hw_params and prepare"
ALSA: core: Fix double-free at snd_card_new()
ALSA: hda: Fix hang at HD-audio codec unbinding due to refcount saturation
ALSA: hda/realtek: Re-arrange quirk table entries
Tetsuo Handa (3):
netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain()
netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
workqueue: don't skip lockdep work dependency in cancel_work_sync()
Theodore Ts'o (1):
ext4: limit the number of retries after discarding preallocations blocks
Tim Harvey (3):
arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity
arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port
arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation
Toke Høiland-Jørgensen (1):
wifi: iwlwifi: Mark IWLMEI as broken
Uwe Kleine-König (1):
i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible
Vadim Fedorenko (1):
bnxt_en: fix flags to check for supported fw version
Ville Syrjälä (5):
drm/i915: Extract intel_edp_fixup_vbt_bpp() drm/i915/pps: Split pps_init_delays() into distinct parts drm/i915/bios: Split parse_driver_features() into two parts drm/i915/bios: Split VBT parsing to global vs. panel specific parts drm/i915/bios: Split VBT data into per-panel vs. global parts
Vitaly Kuznetsov (1):
Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region
Vladimir Oltean (4):
net: enetc: move enetc_set_psfp() out of the common enetc_set_features()
net: enetc: deny offload of tc-based TSN features on VF interfaces net/sched: taprio: avoid disabling offload when it was never enabled net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs
Wen Gu (1):
net/smc: Stop the CLC flow if no link to map buffers on
Will Deacon (1):
vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment
William Wu (1):
usb: dwc3: core: leave default DMA if the controller does not support 64-bit DMA
Yang Wang (1):
drm/amdgpu: change the alignment size of TMR BO to 1M
Yao Wang1 (1):
drm/amd/display: Limit user regamma to a valid value
Yi Liu (1):
iommu/vt-d: Check correct capability for sagaw determination
Yuezhang Mo (1):
exfat: fix overflow for large capacity partition
huangwenhui (1):
ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
jerry meng (1):
USB: serial: option: add Quectel RM520N
zain wang (1):
arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
Íñigo Huguet (4):
sfc: fix TX channel offset when using legacy interrupts
sfc: fix null pointer dereference in efx_hard_start_xmit sfc/siena: fix TX channel offset when using legacy interrupts sfc/siena: fix null pointer dereference in efx_hard_start_xmit
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 19 -SUBLEVEL = 11 +SUBLEVEL = 12 EXTRAVERSION = NAME = Superb Owl
arch/arm/boot/dts/lan966x.dtsi +2 -2
@@ -515,13 +515,13 @@ mdio1: mdio@e200413c { phy0: ethernet-phy@1 { reg = <1>; - interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; phy1: ethernet-phy@2 { reg = <2>; - interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; };
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts +5 -5
@@ -152,11 +152,11 @@ &gpio4 { * CPLD_reset is RESET_SOFT in schematic */ gpio-line-names = - "CPLD_D[1]", "CPLD_int", "CPLD_reset", "", - "", "CPLD_D[0]", "", "", - "", "", "", "CPLD_D[2]", - "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]", "CPLD_D[6]", - "CPLD_D[7]", "", "", "", + "CPLD_D[6]", "CPLD_int", "CPLD_reset", "", + "", "CPLD_D[7]", "", "", + "", "", "", "CPLD_D[5]", + "CPLD_D[4]", "CPLD_D[3]", "CPLD_D[2]", "CPLD_D[1]", + "CPLD_D[0]", "", "", "", "", "", "", "", "", "", "", "KBD_intK", "", "", "", "";
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts +0 -1
@@ -5,7 +5,6 @@ /dts-v1/; -#include <dt-bindings/phy/phy-imx8-pcie.h> #include "imx8mm-tqma8mqml.dtsi" #include "mba8mx.dtsi"
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi +1 -0
@@ -3,6 +3,7 @@ * Copyright 2020-2021 TQ-Systems GmbH */ +#include <dt-bindings/phy/phy-imx8-pcie.h> #include "imx8mm.dtsi" / {
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +5 -5
@@ -359,8 +359,8 @@ reg_vdd_arm: BUCK2 { nxp,dvs-standby-voltage = <850000>; regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <950000>; - regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1050000>; + regulator-min-microvolt = <805000>; regulator-name = "On-module +VDD_ARM (BUCK2)"; regulator-ramp-delay = <3125>; };
@@ -368,8 +368,8 @@ reg_vdd_arm: BUCK2 { reg_vdd_dram: BUCK3 { regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <950000>; - regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1000000>; + regulator-min-microvolt = <805000>; regulator-name = "On-module +VDD_GPU_VPU_DDR (BUCK3)"; };
@@ -408,7 +408,7 @@ reg_nvcc_snvs: LDO1 { reg_vdd_snvs: LDO2 { regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <900000>; + regulator-max-microvolt = <800000>; regulator-min-microvolt = <800000>; regulator-name = "On-module +V0.8_SNVS (LDO2)"; };
arch/arm64/boot/dts/freescale/imx8mn.dtsi +0 -1
@@ -672,7 +672,6 @@ pgc_gpumix: power-domain@2 { <&clk IMX8MN_CLK_GPU_SHADER>, <&clk IMX8MN_CLK_GPU_BUS_ROOT>, <&clk IMX8MN_CLK_GPU_AHB>; - resets = <&src IMX8MQ_RESET_GPU_RESET>; }; pgc_dispmix: power-domain@3 {
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts +8 -4
@@ -123,8 +123,7 @@ reg_can2_stby: regulator-can2-stby { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_can>; regulator-name = "can2_stby"; - gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; - enable-active-high; + gpio = <&gpio3 19 GPIO_ACTIVE_LOW>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; };
@@ -484,35 +483,40 @@ ports { lan1: port@0 { reg = <0>; label = "lan1"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan2: port@1 { reg = <1>; label = "lan2"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan3: port@2 { reg = <2>; label = "lan3"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan4: port@3 { reg = <3>; label = "lan4"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan5: port@4 { reg = <4>; label = "lan5"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; - port@6 { - reg = <6>; + port@5 { + reg = <5>; label = "cpu"; ethernet = <&fec>; phy-mode = "rgmii-id";
arch/arm64/boot/dts/freescale/imx8ulp.dtsi +3 -0
@@ -172,6 +172,7 @@ pcc3: clock-controller@292d0000 { compatible = "fsl,imx8ulp-pcc3"; reg = <0x292d0000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; tpm5: tpm@29340000 {
@@ -270,6 +271,7 @@ pcc4: clock-controller@29800000 { compatible = "fsl,imx8ulp-pcc4"; reg = <0x29800000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; lpi2c6: i2c@29840000 {
@@ -414,6 +416,7 @@ pcc5: clock-controller@2da70000 { compatible = "fsl,imx8ulp-pcc5"; reg = <0x2da70000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; };
arch/arm64/boot/dts/rockchip/px30-engicam-px30-core.dtsi +2 -2
@@ -2,8 +2,8 @@ /* * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd * Copyright (c) 2020 Engicam srl - * Copyright (c) 2020 Amarula Solutons - * Copyright (c) 2020 Amarula Solutons(India) + * Copyright (c) 2020 Amarula Solutions + * Copyright (c) 2020 Amarula Solutions(India) */ #include <dt-bindings/gpio/gpio.h>
arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts +5 -0
@@ -88,3 +88,8 @@ h1_int_od_l: h1-int-od-l { }; }; }; + +&wlan_host_wake_l { + /* Kevin has an external pull up, but Bob does not. */ + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; +};
arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi +9 -0
@@ -244,6 +244,14 @@ &dmc { &edp { status = "okay"; + /* + * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only + * set this here, because rk3399-gru.dtsi ensures we can generate this + * off GPLL=600MHz, whereas some other RK3399 boards may not. + */ + assigned-clocks = <&cru PCLK_EDP>; + assigned-clock-rates = <24000000>; + ports { edp_out: port@1 { reg = <1>;
@@ -578,6 +586,7 @@ wifi_perst_l: wifi-perst-l { }; wlan_host_wake_l: wlan-host-wake-l { + /* Kevin has an external pull up, but Bob does not */ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; };
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +0 -1
@@ -62,7 +62,6 @@ vcc3v3_sys: vcc3v3-sys { vcc5v0_host: vcc5v0-host-regulator { compatible = "regulator-fixed"; gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>; - enable-active-low; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_host_en>; regulator-name = "vcc5v0_host";
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts +0 -1
@@ -163,7 +163,6 @@ vcc5v0_usb20_otg: vcc5v0_usb20_otg { vcc3v3_sd: vcc3v3_sd { compatible = "regulator-fixed"; - enable-active-low; gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&vcc_sd_h>;
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts +1 -1
@@ -506,7 +506,7 @@ &sdmmc0 { disable-wp; pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; - sd-uhs-sdr104; + sd-uhs-sdr50; vmmc-supply = <&vcc3v3_sd>; vqmmc-supply = <&vccio_sd>; status = "okay";
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts +1 -1
@@ -618,7 +618,7 @@ &usb2phy0_host { }; &usb2phy0_otg { - vbus-supply = <&vcc5v0_usb_otg>; + phy-supply = <&vcc5v0_usb_otg>; status = "okay"; };
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts +1 -1
@@ -543,7 +543,7 @@ &usb2phy0_host { }; &usb2phy0_otg { - vbus-supply = <&vcc5v0_usb_otg>; + phy-supply = <&vcc5v0_usb_otg>; status = "okay"; };
arch/arm64/kernel/topology.c +1 -1
@@ -251,7 +251,7 @@ static void amu_fie_setup(const struct cpumask *cpus)for_each_cpu (cpu, cpus) {if (!freq_counters_valid (cpu) ||freq_inv_set_max_ratio (cpu, -cpufreq_get_hw_max_freq (cpu) *1000 , +cpufreq_get_hw_max_freq (cpu) *1000ULL ,arch_timer_get_rate ()))return ; }
arch/mips/lantiq/clk.c +1 -0
@@ -50,6 +50,7 @@ struct clk *clk_get_io(void) {return &cpu_clk_generic[2 ]; } +EXPORT_SYMBOL_GPL (clk_get_io);struct clk *clk_get_ppe (void ) {
arch/mips/loongson32/common/platform.c +8 -8
@@ -98,7 +98,7 @@ int ls1x_eth_mux_init(struct platform_device *pdev, void *priv)if (plat_dat->bus_id) {__raw_writel (__raw_readl (LS1X_MUX_CTRL0 ) |GMAC1_USE_UART1 |GMAC1_USE_UART0 ,LS1X_MUX_CTRL0 ); -switch (plat_dat->interface) { +switch (plat_dat->phy_interface) {case PHY_INTERFACE_MODE_RGMII : val &= ~(GMAC1_USE_TXCLK |GMAC1_USE_PWM23 );break ;
@@ -107,12 +107,12 @@ int ls1x_eth_mux_init(struct platform_device *pdev, void *priv)break ;default :pr_err ("unsupported mii mode %d\n" , - plat_dat->interface); + plat_dat->phy_interface);return -ENOTSUPP ; } val &= ~GMAC1_SHUT ; }else { -switch (plat_dat->interface) { +switch (plat_dat->phy_interface) {case PHY_INTERFACE_MODE_RGMII : val &= ~(GMAC0_USE_TXCLK |GMAC0_USE_PWM01 );break ;
@@ -121,7 +121,7 @@ int ls1x_eth_mux_init(struct platform_device *pdev, void *priv)break ;default :pr_err ("unsupported mii mode %d\n" , - plat_dat->interface); + plat_dat->phy_interface);return -ENOTSUPP ; } val &= ~GMAC0_SHUT ;
@@ -131,7 +131,7 @@ int ls1x_eth_mux_init(struct platform_device *pdev, void *priv) plat_dat =dev_get_platdata (&pdev->dev); val &= ~PHY_INTF_SELI ; -if (plat_dat->interface ==PHY_INTERFACE_MODE_RMII ) +if (plat_dat->phy_interface ==PHY_INTERFACE_MODE_RMII ) val |=0x4 <<PHY_INTF_SELI_SHIFT ;__raw_writel (val,LS1X_MUX_CTRL1 );
@@ -146,9 +146,9 @@ static struct plat_stmmacenet_data ls1x_eth0_pdata = { .bus_id = 0, .phy_addr = -1,#if defined(CONFIG_LOONGSON1_LS1B ) - .interface = PHY_INTERFACE_MODE_MII, + .phy_interface = PHY_INTERFACE_MODE_MII,#elif defined(CONFIG_LOONGSON1_LS1C ) - .interface = PHY_INTERFACE_MODE_RMII, + .phy_interface = PHY_INTERFACE_MODE_RMII, #endif .mdio_bus_data = &ls1x_mdio_bus_data, .dma_cfg = &ls1x_eth_dma_cfg,
@@ -186,7 +186,7 @@ struct platform_device ls1x_eth0_pdev = {static struct plat_stmmacenet_data ls1x_eth1_pdata = { .bus_id =1 , .phy_addr =-1 , - .interface =PHY_INTERFACE_MODE_MII , + .phy_interface =PHY_INTERFACE_MODE_MII , .mdio_bus_data = &ls1x_mdio_bus_data, .dma_cfg = &ls1x_eth_dma_cfg, .has_gmac =1 ,
arch/riscv/Kconfig +1 -0
@@ -361,6 +361,7 @@ config RISCV_ISA_C config RISCV_ISA_SVPBMT bool "SVPBMT extension support" depends on 64BIT && MMU + depends on !XIP_KERNEL select RISCV_ALTERNATIVE default y help
arch/riscv/kernel/signal.c +2 -0
@@ -124,6 +124,8 @@ SYSCALL_DEFINE0(rt_sigreturn)if (restore_altstack (&frame->uc.uc_stack)) goto badframe; + regs->cause =-1UL ; +return regs->a0; badframe:
arch/um/kernel/um_arch.c +1 -1
@@ -33,7 +33,7 @@#include "um_arch.h" #define DEFAULT_COMMAND_LINE_ROOT "root=98:0" -#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty" +#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty0"/* Changed in add_arg and setup_arch, which run before SMP is started */ static char __initdata command_line[COMMAND_LINE_SIZE ] = {0 };
arch/x86/include/asm/kvm_host.h +1 -0
@@ -713,6 +713,7 @@ struct kvm_vcpu_arch {struct fpu_guest guest_fpu;u64 xcr0; +u64 guest_supported_xcr0;struct kvm_pio_request pio;void *pio_data;
arch/x86/kvm/cpuid.c +8 -3
@@ -283,7 +283,6 @@ static void kvm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu) {struct kvm_lapic *apic = vcpu->arch.apic;struct kvm_cpuid_entry2 *best; -u64 guest_supported_xcr0; best =kvm_find_cpuid_entry (vcpu,1 ,0 );if (best && apic) {
@@ -295,10 +294,16 @@ static void kvm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu)kvm_apic_set_version (vcpu); } - guest_supported_xcr0 = + vcpu->arch.guest_supported_xcr0 =cpuid_get_supported_xcr0 (vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent); - vcpu->arch.guest_fpu.fpstate->user_xfeatures = guest_supported_xcr0; +/* +* FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if +* XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't +* supported by the host. +*/ + vcpu->arch.guest_fpu.fpstate->user_xfeatures = vcpu->arch.guest_supported_xcr0 | +XFEATURE_MASK_FPSSE ;kvm_update_pv_runtime (vcpu);
arch/x86/kvm/emulate.c +3 -0
@@ -4134,6 +4134,9 @@ static int em_xsetbv(struct x86_emulate_ctxt *ctxt) {u32 eax, ecx, edx; +if (!(ctxt->ops->get_cr (ctxt,4 ) &X86_CR4_OSXSAVE )) +return emulate_ud (ctxt); + eax =reg_read (ctxt,VCPU_REGS_RAX ); edx =reg_read (ctxt,VCPU_REGS_RDX ); ecx =reg_read (ctxt,VCPU_REGS_RCX );
arch/x86/kvm/x86.c +3 -7
@@ -1025,15 +1025,10 @@ void kvm_load_host_xsave_state(struct kvm_vcpu *vcpu) }EXPORT_SYMBOL_GPL (kvm_load_host_xsave_state); -static inline u64 kvm_guest_supported_xcr0 (struct kvm_vcpu *vcpu) -{ -return vcpu->arch.guest_fpu.fpstate->user_xfeatures; -} -#ifdef CONFIG_X86_64 static inline u64 kvm_guest_supported_xfd (struct kvm_vcpu *vcpu) { -return kvm_guest_supported_xcr0 (vcpu) &XFEATURE_MASK_USER_DYNAMIC ; +return vcpu->arch.guest_supported_xcr0 &XFEATURE_MASK_USER_DYNAMIC ; }#endif
@@ -1056,7 +1051,7 @@ static int __kvm_set_xcr(struct kvm_vcpu *vcpu, u32 index, u64 xcr)* saving. However, xcr0 bit 0 is always set, even if the * emulated CPU does not support XSAVE (see kvm_vcpu_reset()). */ - valid_bits =kvm_guest_supported_xcr0 (vcpu) |XFEATURE_MASK_FP ; + valid_bits = vcpu->arch.guest_supported_xcr0 |XFEATURE_MASK_FP ;if (xcr0 & ~valid_bits)return 1 ;
@@ -1084,6 +1079,7 @@ static int __kvm_set_xcr(struct kvm_vcpu *vcpu, u32 index, u64 xcr)int kvm_emulate_xsetbv (struct kvm_vcpu *vcpu) { +/* Note, #UD due to CR4.OSXSAVE=0 has priority over the intercept. */ if (static_call (kvm_x86_get_cpl)(vcpu) !=0 ||__kvm_set_xcr (vcpu,kvm_rcx_read (vcpu),kvm_read_edx_eax (vcpu))) {kvm_inject_gp (vcpu,0 );
block/blk-core.c +0 -43
49 lines not on this page · raw message
block/blk-mq-debugfs.c +3 -5
@@ -116,7 +116,6 @@ static const char *const blk_queue_flag_name[] = {QUEUE_FLAG_NAME (NOXMERGES ),QUEUE_FLAG_NAME (ADD_RANDOM ),QUEUE_FLAG_NAME (SAME_FORCE ), -QUEUE_FLAG_NAME (DEAD ),QUEUE_FLAG_NAME (INIT_DONE ),QUEUE_FLAG_NAME (STABLE_WRITES ), QUEUE_FLAG_NAME(POLL),
@@ -151,11 +150,10 @@ static ssize_t queue_state_write(void *data, const char __user *buf,char opbuf[16 ] = { }, *op;/* -* The "state" attribute is removed after blk_cleanup_queue() has called -* blk_mq_free_queue(). Return if QUEUE_FLAG_DEAD has been set to avoid -* triggering a use-after-free. +* The "state" attribute is removed when the queue is removed. Don't +* allow setting the state on a dying queue to avoid a use-after-free. */ -if (blk_queue_dead (q)) +if (blk_queue_dying (q))return -ENOENT ;if (count >=sizeof (opbuf)) {
block/blk-mq.c +41 -2
67 lines not on this page · raw message
block/blk-sysfs.c +0 -5
@@ -748,11 +748,6 @@ static void blk_free_queue_rcu(struct rcu_head *rcu_head)* decremented with blk_put_queue(). Once the refcount reaches 0 this function * is called. * -* For drivers that have a request_queue on a gendisk and added with -* __device_add_disk() the refcount to request_queue will reach 0 with -* the last put_disk() called by the driver. For drivers which don't use -* __device_add_disk() this happens with blk_cleanup_queue(). -* * Drivers exist which depend on the release of the request_queue to be * synchronous, it should not be deferred. *
block/blk.h +3 -0
@@ -411,6 +411,9 @@ int bdev_resize_partition(struct gendisk *disk, int partno, sector_t start, sector_t length);void blk_drop_partitions (struct gendisk *disk); +struct gendisk *__alloc_disk_node (struct request_queue *q,int node_id, +struct lock_class_key *lkclass); +int bio_add_hw_page (struct request_queue *q,struct bio *bio,struct page *page,unsigned int len,unsigned int offset,unsigned int max_sectors,bool *same_page);
block/bsg-lib.c +2 -2
@@ -324,7 +324,7 @@ void bsg_remove_queue(struct request_queue *q) container_of(q->tag_set, struct bsg_set, tag_set);bsg_unregister_queue (bset->bd); -blk_cleanup_queue (q); +blk_mq_destroy_queue (q);blk_mq_free_tag_set (&bset->tag_set);kfree (bset); }
@@ -399,7 +399,7 @@ struct request_queue *bsg_setup_queue(struct device *dev, const char *name,return q; out_cleanup_queue: -blk_cleanup_queue (q); +blk_mq_destroy_queue (q); out_queue:blk_mq_free_tag_set (set); out_tag_set:
block/genhd.c +31 -14
112 lines not on this page · raw message
certs/Kconfig +1 -1
@@ -43,7 +43,7 @@ config SYSTEM_TRUSTED_KEYRING bool "Provide system-wide ring of trusted keys" depends on KEYS depends on ASYMMETRIC_KEY_TYPE - depends on X509_CERTIFICATE_PARSER + depends on X509_CERTIFICATE_PARSER = y help Provide a system keyring to which trusted keys can be added. Keys in the keyring are considered to be trusted. Keys may be added at will
drivers/block/ataflop.c +0 -1
@@ -2045,7 +2045,6 @@ static void atari_floppy_cleanup(void)if (!unit[i].disk[type])continue ;del_gendisk (unit[i].disk[type]); -blk_cleanup_queue (unit[i].disk[type]->queue);put_disk (unit[i].disk[type]); }blk_mq_free_tag_set (&unit[i].tag_set);
drivers/block/loop.c +0 -1
@@ -2062,7 +2062,6 @@ static void loop_remove(struct loop_device *lo) {/* Make this loop device unreachable from pathname. */ del_gendisk (lo->lo_disk); -blk_cleanup_queue (lo->lo_disk->queue);blk_mq_free_tag_set (&lo->tag_set);mutex_lock (&loop_ctl_mutex);
drivers/block/mtip32xx/mtip32xx.c +0 -2
@@ -3677,7 +3677,6 @@ static int mtip_block_shutdown(struct driver_data *dd)if (test_bit (MTIP_DDF_INIT_DONE_BIT , &dd->dd_flag))del_gendisk (dd->disk); -blk_cleanup_queue (dd->queue);blk_mq_free_tag_set (&dd->tags);put_disk (dd->disk);return 0 ;
@@ -4040,7 +4039,6 @@ static void mtip_pci_remove(struct pci_dev *pdev)dev_info (&dd->pdev->dev,"device %s surprise removal\n" , dd->disk->disk_name); -blk_cleanup_queue (dd->queue);blk_mq_free_tag_set (&dd->tags);/* De-initialize the protocol layer. */
drivers/block/rnbd/rnbd-clt.c +1 -1
@@ -1755,7 +1755,7 @@ static void rnbd_destroy_sessions(void)list_for_each_entry_safe (dev, tn, &sess->devs_list, list) {/* * Here unmap happens in parallel for only one reason: -* blk_cleanup_queue() takes around half a second, so +* del_gendisk() takes around half a second, so * on huge amount of devices the whole module unload * procedure takes minutes. */
drivers/block/sx8.c +2 -2
@@ -1536,7 +1536,7 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)clear_bit (0 , &carm_major_alloc); else if (host->major == 161) clear_bit(1, &carm_major_alloc); -blk_cleanup_queue (host->oob_q); +blk_mq_destroy_queue (host->oob_q);blk_mq_free_tag_set (&host->tag_set); err_out_dma_free:dma_free_coherent (&pdev->dev,CARM_SHM_SIZE , host->shm, host->shm_dma);
@@ -1570,7 +1570,7 @@ static void carm_remove_one (struct pci_dev *pdev)clear_bit (0 , &carm_major_alloc); else if (host->major == 161) clear_bit(1, &carm_major_alloc); -blk_cleanup_queue (host->oob_q); +blk_mq_destroy_queue (host->oob_q);blk_mq_free_tag_set (&host->tag_set);dma_free_coherent (&pdev->dev,CARM_SHM_SIZE , host->shm, host->shm_dma);iounmap (host->mmio);
drivers/block/virtio_blk.c +0 -1
@@ -1107,7 +1107,6 @@ static void virtblk_remove(struct virtio_device *vdev)flush_work (&vblk->config_work);del_gendisk (vblk->disk); -blk_cleanup_queue (vblk->disk->queue);blk_mq_free_tag_set (&vblk->tag_set);mutex_lock (&vblk->vdev_mutex);
drivers/block/z2ram.c +0 -1
@@ -384,7 +384,6 @@ static void __exit z2_exit(void)for (i =0 ; i <Z2MINOR_COUNT ; i++) {del_gendisk (z2ram_gendisk[i]); -blk_cleanup_queue (z2ram_gendisk[i]->queue);put_disk (z2ram_gendisk[i]); }blk_mq_free_tag_set (&tag_set);
drivers/cdrom/gdrom.c +0 -1
@@ -831,7 +831,6 @@ static int probe_gdrom(struct platform_device *devptr)static int remove_gdrom (struct platform_device *devptr) { -blk_cleanup_queue (gd.gdrom_rq);blk_mq_free_tag_set (&gd.tag_set);free_irq (HW_EVENT_GDROM_CMD , &gd);free_irq (HW_EVENT_GDROM_DMA , &gd);
drivers/dax/hmem/device.c +1 -0
@@ -15,6 +15,7 @@ void hmem_register_device(int target_nid, struct resource *r) .start = r->start, .end = r->end, .flags = IORESOURCE_MEM, + .desc = IORES_DESC_SOFT_RESERVED, };struct platform_device *pdev;struct memregion_info info;
drivers/dma/ti/k3-udma-private.c +3 -3
@@ -31,14 +31,14 @@ struct udma_dev *of_xudma_dev_get(struct device_node *np, const char *property) } pdev =of_find_device_by_node (udma_node); +if (np != udma_node) +of_node_put (udma_node); +if (!pdev) {pr_debug ("UDMA device not found\n" );return ERR_PTR (-EPROBE_DEFER ); } -if (np != udma_node) -of_node_put (udma_node); - ud =platform_get_drvdata (pdev);if (!ud) {pr_debug ("UDMA has not been probed\n" );
drivers/firmware/arm_scmi/reset.c +7 -3
@@ -166,9 +166,13 @@ static int scmi_domain_reset(const struct scmi_protocol_handle *ph, u32 domain,struct scmi_xfer *t;struct scmi_msg_reset_domain_reset *dom;struct scmi_reset_info *pi = ph->get_priv (ph); -struct reset_dom_info *rdom = pi->dom_info + domain; +struct reset_dom_info *rdom; -if (rdom->async_reset) +if (domain >= pi->num_domains) +return -EINVAL ; + + rdom = pi->dom_info + domain; +if (rdom->async_reset && flags &AUTONOMOUS_RESET ) flags |=ASYNCHRONOUS_RESET ; ret = ph->xops->xfer_get_init (ph,RESET ,sizeof (*dom),0 , &t);
@@ -180,7 +184,7 @@ static int scmi_domain_reset(const struct scmi_protocol_handle *ph, u32 domain, dom->flags =cpu_to_le32 (flags); dom->reset_state =cpu_to_le32 (state); -if (rdom->async_reset) +if (flags &ASYNCHRONOUS_RESET ) ret = ph->xops->do_xfer_with_response (ph, t);else ret = ph->xops->do_xfer (ph, t);
drivers/firmware/efi/libstub/secureboot.c +4 -4
@@ -14,7 +14,7 @@/* SHIM variables */ static const efi_guid_t shim_guid =EFI_SHIM_LOCK_GUID ; -static const efi_char16_t shim_MokSBState_name[] =L"MokSBState" ; +static const efi_char16_t shim_MokSBState_name[] =L"MokSBStateRT" ;static efi_status_t get_var (efi_char16_t *name,efi_guid_t *vendor,u32 *attr,unsigned long *data_size,void *data)
@@ -43,8 +43,8 @@ enum efi_secureboot_mode efi_get_secureboot(void)/* * See if a user has put the shim into insecure mode. If so, and if the -* variable doesn't have the runtime attribute set, we might as well -* honor that. +* variable doesn't have the non-volatile attribute set, we might as +* well honor that. */ size =sizeof (moksbstate); status = get_efi_var(shim_MokSBState_name, &shim_guid,
@@ -53,7 +53,7 @@ enum efi_secureboot_mode efi_get_secureboot(void)/* If it fails, we don't care why. Default to secure */ if (status !=EFI_SUCCESS ) goto secure_boot_enabled; -if (!(attr &EFI_VARIABLE_RUNTIME_ACCESS ) && moksbstate ==1 ) +if (!(attr &EFI_VARIABLE_NON_VOLATILE ) && moksbstate ==1 )return efi_secureboot_mode_disabled; secure_boot_enabled:
drivers/firmware/efi/libstub/x86-stub.c +7 -0
@@ -517,6 +517,13 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle, hdr->ramdisk_image =0 ; hdr->ramdisk_size =0 ; +/* +* Disregard any setup data that was provided by the bootloader: +* setup_data could be pointing anywhere, and we have no way of +* authenticating or validating the payload. +*/ + hdr->setup_data =0 ; +efi_stub_entry (handle, sys_table_arg, boot_params);/* not reached */
drivers/gpio/gpio-ixp4xx.c +14 -3
@@ -63,6 +63,14 @@ static void ixp4xx_gpio_irq_ack(struct irq_data *d)__raw_writel (BIT (d->hwirq), g->base +IXP4XX_REG_GPIS ); } +static void ixp4xx_gpio_mask_irq (struct irq_data *d) +{ +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); + +irq_chip_mask_parent (d); +gpiochip_disable_irq (gc, d->hwirq); +} +static void ixp4xx_gpio_irq_unmask (struct irq_data *d) {struct gpio_chip *gc =irq_data_get_irq_chip_data (d);
@@ -72,6 +80,7 @@ static void ixp4xx_gpio_irq_unmask(struct irq_data *d)if (!(g->irq_edge &BIT (d->hwirq)))ixp4xx_gpio_irq_ack (d); +gpiochip_enable_irq (gc, d->hwirq);irq_chip_unmask_parent (d); }
@@ -149,12 +158,14 @@ static int ixp4xx_gpio_irq_set_type(struct irq_data *d, unsigned int type)return irq_chip_set_type_parent (d,IRQ_TYPE_LEVEL_HIGH ); } -static struct irq_chip ixp4xx_gpio_irqchip = { +static const struct irq_chip ixp4xx_gpio_irqchip = { .name ="IXP4GPIO" , .irq_ack = ixp4xx_gpio_irq_ack, - .irq_mask = irq_chip_mask_parent, + .irq_mask = ixp4xx_gpio_mask_irq, .irq_unmask = ixp4xx_gpio_irq_unmask, .irq_set_type = ixp4xx_gpio_irq_set_type, + .flags =IRQCHIP_IMMUTABLE , +GPIOCHIP_IRQ_RESOURCE_HELPERS , }; static int ixp4xx_gpio_child_to_parent_hwirq(struct gpio_chip *gc,
@@ -263,7 +274,7 @@ static int ixp4xx_gpio_probe(struct platform_device *pdev) g->gc.owner =THIS_MODULE ; girq = &g->gc.irq; - girq->chip = &ixp4xx_gpio_irqchip; +gpio_irq_chip_set_chip (girq, &ixp4xx_gpio_irqchip); girq->fwnode = g->fwnode; girq->parent_domain = parent; girq->child_to_parent_hwirq = ixp4xx_gpio_child_to_parent_hwirq;
drivers/gpio/gpio-mockup.c +4 -2
@@ -533,8 +533,10 @@ static int __init gpio_mockup_register_chip(int idx) } fwnode =fwnode_create_software_node (properties,NULL ); -if (IS_ERR (fwnode)) +if (IS_ERR (fwnode)) { +kfree_strarray (line_names, ngpio);return PTR_ERR (fwnode); + } pdevinfo.name ="gpio-mockup" ; pdevinfo.id = idx;
@@ -597,9 +599,9 @@ static int __init gpio_mockup_init(void) static void __exit gpio_mockup_exit(void) { +gpio_mockup_unregister_pdevs ();debugfs_remove_recursive (gpio_mockup_dbg_dir);platform_driver_unregister (&gpio_mockup_driver); -gpio_mockup_unregister_pdevs (); }module_init (gpio_mockup_init);
drivers/gpio/gpio-mt7621.c +15 -6
@@ -112,6 +112,8 @@ mediatek_gpio_irq_unmask(struct irq_data *d)unsigned long flags;u32 rise, fall, high, low; +gpiochip_enable_irq (gc, d->hwirq); +spin_lock_irqsave (&rg->lock, flags); rise =mtk_gpio_r32 (rg,GPIO_REG_REDGE ); fall =mtk_gpio_r32 (rg,GPIO_REG_FEDGE );
@@ -143,6 +145,8 @@ mediatek_gpio_irq_mask(struct irq_data *d)mtk_gpio_w32 (rg,GPIO_REG_HLVL , high & ~BIT (pin));mtk_gpio_w32 (rg,GPIO_REG_LLVL , low & ~BIT (pin));spin_unlock_irqrestore (&rg->lock, flags); + +gpiochip_disable_irq (gc, d->hwirq); } static int
@@ -204,6 +208,16 @@ mediatek_gpio_xlate(struct gpio_chip *chip,return gpio %MTK_BANK_WIDTH ; } +static const struct irq_chip mt7621_irq_chip = { + .name ="mt7621-gpio" , + .irq_mask_ack = mediatek_gpio_irq_mask, + .irq_mask = mediatek_gpio_irq_mask, + .irq_unmask = mediatek_gpio_irq_unmask, + .irq_set_type = mediatek_gpio_irq_type, + .flags =IRQCHIP_IMMUTABLE , +GPIOCHIP_IRQ_RESOURCE_HELPERS , +}; +static int mediatek_gpio_bank_probe (struct device *dev,int bank) {
@@ -238,11 +252,6 @@ mediatek_gpio_bank_probe(struct device *dev, int bank)return -ENOMEM ; rg->chip.offset = bank *MTK_BANK_WIDTH ; - rg->irq_chip.name =dev_name (dev); - rg->irq_chip.irq_unmask = mediatek_gpio_irq_unmask; - rg->irq_chip.irq_mask = mediatek_gpio_irq_mask; - rg->irq_chip.irq_mask_ack = mediatek_gpio_irq_mask; - rg->irq_chip.irq_set_type = mediatek_gpio_irq_type;if (mtk->gpio_irq) {struct gpio_irq_chip *girq;
@@ -262,7 +271,7 @@ mediatek_gpio_bank_probe(struct device *dev, int bank) } girq = &rg->chip.irq; - girq->chip = &rg->irq_chip; +gpio_irq_chip_set_chip (girq, &mt7621_irq_chip);/* This will let us handle the parent IRQ in the driver */ girq->parent_handler =NULL ; girq->num_parents =0 ;
drivers/gpio/gpio-tqmx86.c +2 -2
@@ -307,6 +307,8 @@ static int tqmx86_gpio_probe(struct platform_device *pdev) girq->default_type =IRQ_TYPE_NONE ; girq->handler = handle_simple_irq; girq->init_valid_mask = tqmx86_init_irq_valid_mask; + +irq_domain_set_pm_device (girq->domain, dev); } ret =devm_gpiochip_add_data (dev, chip, gpio);
@@ -315,8 +317,6 @@ static int tqmx86_gpio_probe(struct platform_device *pdev) goto out_pm_dis; } -irq_domain_set_pm_device (girq->domain, dev); -dev_info (dev,"GPIO functionality initialized with %d pins\n" , chip->ngpio);
drivers/gpio/gpiolib-cdev.c +3 -2
@@ -1975,7 +1975,6 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) ret = -ENODEV ; goto out_free_le; } - le->irq = irq;if (eflags &GPIOEVENT_REQUEST_RISING_EDGE ) irqflags |= test_bit(FLAG_ACTIVE_LOW, &desc->flags) ?
@@ -1989,7 +1988,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip)init_waitqueue_head (&le->wait);/* Request a thread to read the events */ - ret = request_threaded_irq(le->irq, + ret = request_threaded_irq(irq, lineevent_irq_handler, lineevent_irq_thread, irqflags,
@@ -1998,6 +1997,8 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip)if (ret) goto out_free_le; + le->irq = irq; + fd =get_unused_fd_flags (O_RDONLY |O_CLOEXEC );if (fd <0 ) { ret = fd;
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +12 -1
@@ -35,6 +35,8 @@#include <linux/pci.h> #include <linux/pm_runtime.h> #include <drm/drm_crtc_helper.h> +#include <drm/drm_damage_helper.h> +#include <drm/drm_drv.h> #include <drm/drm_edid.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_fb_helper.h>
@@ -495,6 +497,12 @@ static const struct drm_framebuffer_funcs amdgpu_fb_funcs = { .create_handle = drm_gem_fb_create_handle, }; +static const struct drm_framebuffer_funcs amdgpu_fb_funcs_atomic = { + .destroy = drm_gem_fb_destroy, + .create_handle = drm_gem_fb_create_handle, + .dirty = drm_atomic_helper_dirtyfb, +}; +uint32_t amdgpu_display_supported_domains (struct amdgpu_device *adev,uint64_t bo_flags) {
@@ -1069,7 +1077,10 @@ static int amdgpu_display_gem_fb_verify_and_init(struct drm_device *dev,if (ret) goto err; - ret =drm_framebuffer_init (dev, &rfb->base, &amdgpu_fb_funcs); +if (drm_drv_uses_atomic_modeset (dev)) + ret =drm_framebuffer_init (dev, &rfb->base, &amdgpu_fb_funcs_atomic); +else + ret =drm_framebuffer_init (dev, &rfb->base, &amdgpu_fb_funcs);if (ret) goto err;
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +1 -1
@@ -748,7 +748,7 @@ static int psp_tmr_init(struct psp_context *psp) } pptr =amdgpu_sriov_vf (psp->adev) ? &tmr_buf :NULL ; - ret =amdgpu_bo_create_kernel (psp->adev, tmr_size,PSP_TMR_SIZE (psp->adev), + ret =amdgpu_bo_create_kernel (psp->adev, tmr_size,PSP_TMR_ALIGNMENT ,AMDGPU_GEM_DOMAIN_VRAM , &psp->tmr_bo, &psp->tmr_mc_addr, pptr);
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +1 -0
@@ -36,6 +36,7 @@#define PSP_CMD_BUFFER_SIZE 0x1000#define PSP_1_MEG 0x100000#define PSP_TMR_SIZE (adev) ((adev)->asic_type == CHIP_ALDEBARAN ? 0x800000 : 0x400000) +#define PSP_TMR_ALIGNMENT 0x100000#define PSP_FW_NAME_LEN 0x24enum psp_shared_mem_size {
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +2 -1
@@ -1805,7 +1805,8 @@ static void amdgpu_ras_log_on_err_counter(struct amdgpu_device *adev)amdgpu_ras_query_error_status (adev, &info);if (adev->ip_versions[MP0_HWIP ][0 ] !=IP_VERSION (11 ,0 ,2 ) && - adev->ip_versions[MP0_HWIP ][0 ] !=IP_VERSION (11 ,0 ,4 )) { + adev->ip_versions[MP0_HWIP ][0 ] !=IP_VERSION (11 ,0 ,4 ) && + adev->ip_versions[MP0_HWIP ][0 ] !=IP_VERSION (13 ,0 ,0 )) {if (amdgpu_ras_reset_error_status (adev, info.head.block))dev_warn (adev->dev,"Failed to reset error counter and error status" ); }
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c +9 -0
@@ -28,6 +28,14 @@#include "nbio/nbio_7_7_0_sh_mask.h" #include <uapi/linux/kfd_ioctl.h> +static void nbio_v7_7_remap_hdp_registers (struct amdgpu_device *adev) +{ +WREG32_SOC15 (NBIO ,0 , regBIF_BX0_REMAP_HDP_MEM_FLUSH_CNTL, + adev->rmmio_remap.reg_offset +KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL ); +WREG32_SOC15 (NBIO ,0 , regBIF_BX0_REMAP_HDP_REG_FLUSH_CNTL, + adev->rmmio_remap.reg_offset +KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL ); +} +static u32 nbio_v7_7_get_rev_id (struct amdgpu_device *adev) {u32 tmp;
@@ -237,4 +245,5 @@ const struct amdgpu_nbio_funcs nbio_v7_7_funcs = { .ih_doorbell_range = nbio_v7_7_ih_doorbell_range, .ih_control = nbio_v7_7_ih_control, .init_registers = nbio_v7_7_init_registers, + .remap_hdp_registers = nbio_v7_7_remap_hdp_registers, };
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +1 -2
@@ -6651,8 +6651,7 @@ static double CalculateUrgentLatency(return ret; } - -static void UseMinimumDCFCLK( +static noinline_for_stack void UseMinimumDCFCLK( struct display_mode_lib *mode_lib, int MaxInterDCNTileRepeaters, int MaxPrefetchMode,
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c +99 -321
722 lines not on this page · raw message
drivers/gpu/drm/amd/display/modules/color/color_gamma.c +4 -0
@@ -1603,6 +1603,7 @@ static void interpolate_user_regamma(uint32_t hw_points_num,struct fixed31_32 lut2;struct fixed31_32 delta_lut;struct fixed31_32 delta_index; +const struct fixed31_32 one =dc_fixpt_from_int (1 ); i =0 ;/* fixed_pt library has problems handling too small values */
@@ -1631,6 +1632,9 @@ static void interpolate_user_regamma(uint32_t hw_points_num, }else hw_x = coordinates_x[i].x; +if (dc_fixpt_le (one, hw_x)) + hw_x = one; + norm_x =dc_fixpt_mul (norm_factor, hw_x); index =dc_fixpt_floor (norm_x);if (index <0 || index >255 )
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +11 -0
@@ -368,6 +368,17 @@ static void sienna_cichlid_check_bxco_support(struct smu_context *smu) smu_baco->platform_support = (val &RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK ) ? true : false; + +/* +* Disable BACO entry/exit completely on below SKUs to +* avoid hardware intermittent failures. +*/ +if (((adev->pdev->device ==0x73A1 ) && + (adev->pdev->revision ==0x00 )) || + ((adev->pdev->device ==0x73BF ) && + (adev->pdev->revision ==0xCF ))) + smu_baco->platform_support = false; + } }
drivers/gpu/drm/gma500/cdv_device.c +1 -3
@@ -581,11 +581,9 @@ static const struct psb_offset cdv_regmap[2] = {static int cdv_chip_setup (struct drm_device *dev) {struct drm_psb_private *dev_priv =to_drm_psb_private (dev); -struct pci_dev *pdev =to_pci_dev (dev->dev);INIT_WORK (&dev_priv->hotplug_work, cdv_hotplug_work_func); -if (pci_enable_msi (pdev)) -dev_warn (dev->dev,"Enabling MSI failed!\n" ); + dev_priv->use_msi = true; dev_priv->regmap = cdv_regmap;gma_get_core_freq (dev);psb_intel_opregion_init (dev);
drivers/gpu/drm/gma500/gem.c +2 -2
@@ -112,12 +112,12 @@ static void psb_gem_free_object(struct drm_gem_object *obj) {struct psb_gem_object *pobj =to_psb_gem_object (obj); -drm_gem_object_release (obj); -/* Undo the mmap pin if we are destroying the object */ if (pobj->mmapping)psb_gem_unpin (pobj); +drm_gem_object_release (obj); +WARN_ON (pobj->in_gart && !pobj->stolen);release_resource (&pobj->resource);
drivers/gpu/drm/gma500/gma_display.c +7 -4
@@ -531,15 +531,18 @@ int gma_crtc_page_flip(struct drm_crtc *crtc,WARN_ON (drm_crtc_vblank_get (crtc) !=0 ); gma_crtc->page_flip_event = event; +spin_unlock_irqrestore (&dev->event_lock, flags);/* Call this locked if we want an event at vblank interrupt. */ ret = crtc_funcs->mode_set_base (crtc, crtc->x, crtc->y, old_fb);if (ret) { - gma_crtc->page_flip_event =NULL ; -drm_crtc_vblank_put (crtc); +spin_lock_irqsave (&dev->event_lock, flags); +if (gma_crtc->page_flip_event) { + gma_crtc->page_flip_event =NULL ; +drm_crtc_vblank_put (crtc); + } +spin_unlock_irqrestore (&dev->event_lock, flags); } - -spin_unlock_irqrestore (&dev->event_lock, flags); }else { ret = crtc_funcs->mode_set_base (crtc, crtc->x, crtc->y, old_fb); }
drivers/gpu/drm/gma500/oaktrail_device.c +1 -4
@@ -501,12 +501,9 @@ static const struct psb_offset oaktrail_regmap[2] = {static int oaktrail_chip_setup (struct drm_device *dev) {struct drm_psb_private *dev_priv =to_drm_psb_private (dev); -struct pci_dev *pdev =to_pci_dev (dev->dev);int ret; -if (pci_enable_msi (pdev)) -dev_warn (dev->dev,"Enabling MSI failed!\n" ); - + dev_priv->use_msi = true; dev_priv->regmap = oaktrail_regmap; ret =mid_chip_setup (dev);
drivers/gpu/drm/gma500/power.c +1 -7
@@ -139,8 +139,6 @@ static void gma_suspend_pci(struct pci_dev *pdev) dev_priv->regs.saveBSM = bsm;pci_read_config_dword (pdev,0xFC , &vbt); dev_priv->regs.saveVBT = vbt; -pci_read_config_dword (pdev, PSB_PCIx_MSI_ADDR_LOC, &dev_priv->msi_addr); -pci_read_config_dword (pdev, PSB_PCIx_MSI_DATA_LOC, &dev_priv->msi_data);pci_disable_device (pdev);pci_set_power_state (pdev, PCI_D3hot);
@@ -168,9 +166,6 @@ static bool gma_resume_pci(struct pci_dev *pdev)pci_restore_state (pdev);pci_write_config_dword (pdev,0x5c , dev_priv->regs.saveBSM);pci_write_config_dword (pdev,0xFC , dev_priv->regs.saveVBT); -/* restoring MSI address and data in PCIx space */ -pci_write_config_dword (pdev, PSB_PCIx_MSI_ADDR_LOC, dev_priv->msi_addr); -pci_write_config_dword (pdev, PSB_PCIx_MSI_DATA_LOC, dev_priv->msi_data); ret =pci_enable_device (pdev);if (ret !=0 )
@@ -223,8 +218,7 @@ int gma_power_resume(struct device *_dev)mutex_lock (&power_mutex);gma_resume_pci (pdev);gma_resume_display (pdev); -gma_irq_preinstall (dev); -gma_irq_postinstall (dev); +gma_irq_install (dev);mutex_unlock (&power_mutex);return 0 ; }
drivers/gpu/drm/gma500/psb_drv.c +1 -1
@@ -383,7 +383,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)PSB_WVDC32 (0xFFFFFFFF ,PSB_INT_MASK_R );spin_unlock_irqrestore (&dev_priv->irqmask_lock, irqflags); -gma_irq_install (dev, pdev->irq); +gma_irq_install (dev); dev->max_vblank_count =0xffffff ;/* only 24 bits of frame count */
drivers/gpu/drm/gma500/psb_drv.h +1 -4
@@ -490,6 +490,7 @@ struct drm_psb_private {int rpm_enabled;/* MID specific */ +bool use_msi;bool has_gct;struct oaktrail_gct_data gct_data;
@@ -499,10 +500,6 @@ struct drm_psb_private {/* Register state */ struct psb_save_area regs; -/* MSI reg save */ -uint32_t msi_addr; -uint32_t msi_data; -/* Hotplug handling */ struct work_struct hotplug_work;
drivers/gpu/drm/gma500/psb_irq.c +12 -3
@@ -316,17 +316,24 @@ void gma_irq_postinstall(struct drm_device *dev)spin_unlock_irqrestore (&dev_priv->irqmask_lock, irqflags); } -int gma_irq_install (struct drm_device *dev,unsigned int irq) +int gma_irq_install (struct drm_device *dev) { +struct drm_psb_private *dev_priv =to_drm_psb_private (dev); +struct pci_dev *pdev =to_pci_dev (dev->dev);int ret; -if (irq ==IRQ_NOTCONNECTED ) +if (dev_priv->use_msi &&pci_enable_msi (pdev)) { +dev_warn (dev->dev,"Enabling MSI failed!\n" ); + dev_priv->use_msi = false; + } + +if (pdev->irq ==IRQ_NOTCONNECTED )return -ENOTCONN ;gma_irq_preinstall (dev);/* PCI devices require shared interrupts. */ - ret =request_irq (irq, gma_irq_handler,IRQF_SHARED , dev->driver->name, dev); + ret =request_irq (pdev->irq, gma_irq_handler,IRQF_SHARED , dev->driver->name, dev);if (ret)return ret;
@@ -369,6 +376,8 @@ void gma_irq_uninstall(struct drm_device *dev)spin_unlock_irqrestore (&dev_priv->irqmask_lock, irqflags);free_irq (pdev->irq, dev); +if (dev_priv->use_msi) +pci_disable_msi (pdev); }int gma_crtc_enable_vblank (struct drm_crtc *crtc)
drivers/gpu/drm/gma500/psb_irq.h +1 -1
@@ -17,7 +17,7 @@ struct drm_device;void gma_irq_preinstall (struct drm_device *dev);void gma_irq_postinstall (struct drm_device *dev); -int gma_irq_install (struct drm_device *dev,unsigned int irq); +int gma_irq_install (struct drm_device *dev);void gma_irq_uninstall (struct drm_device *dev);int gma_crtc_enable_vblank (struct drm_crtc *crtc);
drivers/gpu/drm/hisilicon/hibmc/Kconfig +1 -0
@@ -2,6 +2,7 @@ config DRM_HISI_HIBMC tristate "DRM Support for Hisilicon Hibmc" depends on DRM && PCI && (ARM64 || COMPILE_TEST) + depends on MMU select DRM_KMS_HELPER select DRM_VRAM_HELPER select DRM_TTM
drivers/gpu/drm/i915/display/g4x_dp.c +2 -20
@@ -395,26 +395,8 @@ static void intel_dp_get_config(struct intel_encoder *encoder,intel_dotclock_calculate (pipe_config->port_clock, &pipe_config->dp_m_n); -if (intel_dp_is_edp (intel_dp) && dev_priv->vbt.edp.bpp && - pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) { -/* -* This is a big fat ugly hack. -* -* Some machines in UEFI boot mode provide us a VBT that has 18 -* bpp and 1.62 GHz link bandwidth for eDP, which for reasons -* unknown we fail to light up. Yet the same BIOS boots up with -* 24 bpp and 2.7 GHz link. Use the same bpp as the BIOS uses as -* max, not what it tells us to use. -* -* Note: This will still be broken if the eDP panel is not lit -* up by the BIOS, and thus we can't get the mode at module -* load. -*/ -drm_dbg_kms (&dev_priv->drm, -"pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n" , - pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp); - dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp; - } +if (intel_dp_is_edp (intel_dp)) +intel_edp_fixup_vbt_bpp (encoder, pipe_config->pipe_bpp); } static void
drivers/gpu/drm/i915/display/icl_dsi.c +14 -4
@@ -1864,7 +1864,8 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi) {struct drm_device *dev = intel_dsi->base.base.dev;struct drm_i915_private *dev_priv =to_i915 (dev); -struct mipi_config *mipi_config = dev_priv->vbt.dsi.config; +struct intel_connector *connector = intel_dsi->attached_connector; +struct mipi_config *mipi_config = connector->panel.vbt.dsi.config;u32 tlpx_ns;u32 prepare_cnt, exit_zero_cnt, clk_zero_cnt, trail_cnt;u32 ths_prepare_ns, tclk_trail_ns;
@@ -2051,6 +2052,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)/* attach connector to encoder */ intel_connector_attach_encoder (intel_connector, encoder); +intel_bios_init_panel (dev_priv, &intel_connector->panel); +mutex_lock (&dev->mode_config.mutex);intel_panel_add_vbt_lfp_fixed_mode (intel_connector);mutex_unlock (&dev->mode_config.mutex);
@@ -2064,13 +2067,20 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)intel_backlight_setup (intel_connector,INVALID_PIPE ); -if (dev_priv->vbt.dsi.config->dual_link) +if (intel_connector->panel.vbt.dsi.config->dual_link) intel_dsi->ports =BIT (PORT_A ) |BIT (PORT_B );else intel_dsi->ports =BIT (port); - intel_dsi->dcs_backlight_ports = dev_priv->vbt.dsi.bl_ports; - intel_dsi->dcs_cabc_ports = dev_priv->vbt.dsi.cabc_ports; +if (drm_WARN_ON (&dev_priv->drm, intel_connector->panel.vbt.dsi.bl_ports & ~intel_dsi->ports)) + intel_connector->panel.vbt.dsi.bl_ports &= intel_dsi->ports; + + intel_dsi->dcs_backlight_ports = intel_connector->panel.vbt.dsi.bl_ports; + +if (drm_WARN_ON (&dev_priv->drm, intel_connector->panel.vbt.dsi.cabc_ports & ~intel_dsi->ports)) + intel_connector->panel.vbt.dsi.cabc_ports &= intel_dsi->ports; + + intel_dsi->dcs_cabc_ports = intel_connector->panel.vbt.dsi.cabc_ports;for_each_dsi_port (port, intel_dsi->ports) {struct intel_dsi_host *host;
drivers/gpu/drm/i915/display/intel_backlight.c +12 -11
@@ -1158,9 +1158,10 @@ static u32 vlv_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)return DIV_ROUND_CLOSEST (clock, pwm_freq_hz * mul); } -static u16 get_vbt_pwm_freq (struct drm_i915_private *dev_priv) +static u16 get_vbt_pwm_freq (struct intel_connector *connector) { -u16 pwm_freq_hz = dev_priv->vbt.backlight.pwm_freq_hz; +struct drm_i915_private *dev_priv =to_i915 (connector->base.dev); +u16 pwm_freq_hz = connector->panel.vbt.backlight.pwm_freq_hz;if (pwm_freq_hz) { drm_dbg_kms(&dev_priv->drm,
@@ -1180,7 +1181,7 @@ static u32 get_backlight_max_vbt(struct intel_connector *connector) {struct drm_i915_private *dev_priv =to_i915 (connector->base.dev);struct intel_panel *panel = &connector->panel; -u16 pwm_freq_hz =get_vbt_pwm_freq (dev_priv); +u16 pwm_freq_hz =get_vbt_pwm_freq (connector);u32 pwm;if (!panel->backlight.pwm_funcs->hz_to_pwm) {
@@ -1217,11 +1218,11 @@ static u32 get_backlight_min_vbt(struct intel_connector *connector)* against this by letting the minimum be at most (arbitrarily chosen) * 25% of the max. */ - min =clamp_t (int, dev_priv->vbt.backlight.min_brightness,0 ,64 ); -if (min != dev_priv->vbt.backlight.min_brightness) { + min =clamp_t (int, connector->panel.vbt.backlight.min_brightness,0 ,64 ); +if (min != connector->panel.vbt.backlight.min_brightness) {drm_dbg_kms (&dev_priv->drm,"clamping VBT min backlight %d/255 to %d/255\n" , - dev_priv->vbt.backlight.min_brightness, min); + connector->panel.vbt.backlight.min_brightness, min); }/* vbt value is a coefficient in range [0..255] */
@@ -1410,7 +1411,7 @@ bxt_setup_backlight(struct intel_connector *connector, enum pipe unused)struct intel_panel *panel = &connector->panel;u32 pwm_ctl, val; - panel->backlight.controller = dev_priv->vbt.backlight.controller; + panel->backlight.controller = connector->panel.vbt.backlight.controller; pwm_ctl =intel_de_read (dev_priv,BXT_BLC_PWM_CTL (panel->backlight.controller));
@@ -1483,7 +1484,7 @@ static int ext_pwm_setup_backlight(struct intel_connector *connector,u32 level;/* Get the right PWM chip for DSI backlight according to VBT */ -if (dev_priv->vbt.dsi.config->pwm_blc ==PPS_BLC_PMIC ) { +if (connector->panel.vbt.dsi.config->pwm_blc ==PPS_BLC_PMIC ) { panel->backlight.pwm =pwm_get (dev->dev,"pwm_pmic_backlight" ); desc ="PMIC" ; }else {
@@ -1512,11 +1513,11 @@ static int ext_pwm_setup_backlight(struct intel_connector *connector,drm_dbg_kms (&dev_priv->drm,"PWM already enabled at freq %ld, VBT freq %d, level %d\n" ,NSEC_PER_SEC / (unsigned long )panel->backlight.pwm_state.period, -get_vbt_pwm_freq (dev_priv), level); +get_vbt_pwm_freq (connector), level); }else {/* Set period from VBT frequency, leave other settings at 0. */ panel->backlight.pwm_state.period = -NSEC_PER_SEC /get_vbt_pwm_freq (dev_priv); +NSEC_PER_SEC /get_vbt_pwm_freq (connector); } drm_info(&dev_priv->drm, "Using %s PWM for LCD backlight control\n",
@@ -1601,7 +1602,7 @@ int intel_backlight_setup(struct intel_connector *connector, enum pipe pipe)struct intel_panel *panel = &connector->panel;int ret; -if (!dev_priv->vbt.backlight.present) { +if (!connector->panel.vbt.backlight.present) {if (dev_priv->quirks &QUIRK_BACKLIGHT_PRESENT ) {drm_dbg_kms (&dev_priv->drm,"no backlight present per VBT, but present per quirk\n" );
drivers/gpu/drm/i915/display/intel_bios.c +212 -172
849 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_bios.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_ddi.c +2 -20
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_display_types.h +69 -0
69 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_dp.c +35 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_drrs.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsi.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c +3 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsi_vbt.c +33 -23
56 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_lvds.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_panel.c +6 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_pps.c +51 -19
70 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_psr.c +19 -16
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_sdvo.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/vlv_dsi.c +16 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gem/i915_gem_context.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/i915_drv.h +0 -63
63 lines not on this page · raw message
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-mlxbf.c +27 -41
68 lines not on this page · raw message
drivers/net/bonding/bond_main.c +42 -30
72 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/Makefile +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc.c +2 -51
53 lines not on this page · raw message
drivers/net/ethernet/freescale/enetc/enetc.h +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_pf.c +30 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_qos.c +23 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_vf.c +15 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx_dqo.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +26 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +20 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_txrx.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_lib.c +26 -16
42 lines not on this page · raw message
drivers/net/ethernet/intel/ice/ice_main.c +14 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_txrx.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/gdma_main.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/renesas/ravb_main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/efx_channels.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/siena/efx_channels.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/phy/aquantia_main.c +49 -4
53 lines not on this page · raw message
drivers/net/wireguard/selftest/ratelimiter.c +10 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/Kconfig +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/mac.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/phy/marvell/phy-mvebu-a3700-comphy.c +17 -70
87 lines not on this page · raw message
fs/btrfs/disk-io.c +36 -6
42 lines not on this page · raw message
fs/cifs/smb2ops.c +42 -27
69 lines not on this page · raw message
fs/ext4/mballoc.c +143 -174
317 lines not on this page · raw message
tools/perf/util/bpf_skel/bperf_cgroup.bpf.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/sch_red.sh +1 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.