Linux 5.15.153
Sasha Levin
maintainer-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
I'm announcing the release of the 5.15.153 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
Thanks,
Sasha
- ------------
Documentation/admin-guide/kernel-parameters.txt | 17 +- Makefile | 2 +- arch/arm/boot/dts/arm-realview-pb1176.dts | 2 +- arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 28 +- arch/arm/crypto/sha256_glue.c | 13 +- arch/arm/crypto/sha512-glue.c | 12 +- arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 3 - .../boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 55 +- .../dts/freescale/imx8mm-kontron-n801x-som.dtsi | 4 +- .../boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 29 +- arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 10 +- arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 10 +- .../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 + arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 + .../boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 2 + .../boot/dts/mediatek/mt8183-kukui-kakadu.dtsi | 10 + .../boot/dts/mediatek/mt8183-kukui-kodama.dtsi | 10 + .../boot/dts/mediatek/mt8183-kukui-krane.dtsi | 10 + arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 15 +- arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 28 +- arch/mips/include/asm/ptrace.h | 1 + arch/parisc/kernel/ftrace.c | 2 +- arch/powerpc/include/asm/vmalloc.h | 4 +- arch/powerpc/perf/hv-gpci.c | 29 +- arch/powerpc/platforms/embedded6xx/linkstation.c | 3 - arch/powerpc/platforms/embedded6xx/mpc10x.h | 3 + .../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 1 + arch/s390/include/uapi/asm/dasd.h | 2 + arch/s390/kernel/vdso32/Makefile | 2 +- arch/s390/kernel/vdso64/Makefile | 2 +- arch/s390/kernel/vtime.c | 4 +- arch/sparc/kernel/leon_pci_grpci1.c | 2 +- arch/sparc/kernel/leon_pci_grpci2.c | 2 +- arch/x86/include/asm/vsyscall.h | 10 + arch/x86/mm/fault.c | 9 - arch/x86/mm/maccess.c | 10 + arch/x86/tools/relocs.c | 8 + arch/x86/xen/smp.c | 12 + block/opal_proto.h | 1 + block/sed-opal.c | 6 +- drivers/acpi/processor_idle.c | 2 + drivers/acpi/resource.c | 33 + drivers/acpi/scan.c | 8 +- drivers/base/regmap/regmap.c | 2 +- drivers/block/aoe/aoecmd.c | 12 +- drivers/block/aoe/aoenet.c | 1 + drivers/block/nbd.c | 6 + drivers/bluetooth/btqca.c | 14 +- drivers/bluetooth/btqca.h | 10 + drivers/bluetooth/hci_qca.c | 59 +- drivers/bus/Kconfig | 5 +- drivers/clk/clk.c | 3 + drivers/clk/hisilicon/clk-hi3519.c | 2 +- drivers/clk/hisilicon/clk-hi3559a.c | 1 - drivers/clk/meson/axg.c | 2 + drivers/clk/qcom/dispcc-sdm845.c | 2 + drivers/clk/qcom/reset.c | 27 +- drivers/clk/zynq/clkc.c | 8 +- drivers/comedi/drivers/comedi_test.c | 30 +- drivers/cpufreq/armada-37xx-cpufreq.c | 4 +- drivers/cpufreq/brcmstb-avs-cpufreq.c | 2 + drivers/cpufreq/mediatek-cpufreq-hw.c | 22 +- drivers/cpufreq/ppc_cbe_cpufreq.c | 2 +- drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 1 - drivers/cpufreq/qcom-cpufreq-nvmem.c | 1 - drivers/cpufreq/scpi-cpufreq.c | 2 +- drivers/cpufreq/sti-cpufreq.c | 2 +- drivers/cpufreq/ti-cpufreq.c | 2 +- drivers/cpufreq/vexpress-spc-cpufreq.c | 1 - drivers/crypto/xilinx/zynqmp-aes-gcm.c | 3 + drivers/dma/Kconfig | 14 +- drivers/firewire/core-card.c | 14 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 + drivers/gpu/drm/amd/amdgpu/atom.c | 2 +- drivers/gpu/drm/amd/amdgpu/soc15.c | 45 +- .../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 +- .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 7 +- drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 2 + drivers/gpu/drm/lima/lima_gem.c | 23 +- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 12 +- drivers/gpu/drm/mediatek/mtk_dsi.c | 10 +- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 6 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 + drivers/gpu/drm/nouveau/nouveau_mem.c | 3 +- drivers/gpu/drm/nouveau/nouveau_mem.h | 3 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 9 +- drivers/gpu/drm/radeon/ni.c | 2 +- drivers/gpu/drm/rockchip/inno_hdmi.c | 4 +- drivers/gpu/drm/rockchip/rockchip_lvds.c | 3 +- drivers/gpu/drm/tegra/Kconfig | 1 + drivers/gpu/drm/tegra/dc.c | 27 +- drivers/gpu/drm/tegra/dc.h | 1 + drivers/gpu/drm/tegra/dpaux.c | 19 +- drivers/gpu/drm/tegra/dsi.c | 47 +- drivers/gpu/drm/tegra/fb.c | 1 + drivers/gpu/drm/tegra/output.c | 16 +- drivers/gpu/drm/tegra/rgb.c | 63 +- drivers/gpu/drm/tidss/tidss_plane.c | 2 +- drivers/gpu/drm/ttm/ttm_range_manager.c | 2 + drivers/gpu/drm/ttm/ttm_resource.c | 23 + drivers/gpu/drm/ttm/ttm_sys_manager.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 1 + drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 6 +- drivers/hid/hid-lenovo.c | 57 +- drivers/hid/hid-multitouch.c | 4 + drivers/infiniband/core/device.c | 37 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/infiniband/hw/mlx5/wr.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 2 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 3 +- drivers/input/keyboard/gpio_keys_polled.c | 10 +- drivers/iommu/amd/init.c | 3 + drivers/iommu/intel/pasid.c | 3 + drivers/leds/flash/leds-sgm3140.c | 3 + drivers/leds/leds-aw2013.c | 1 + drivers/md/dm-crypt.c | 4 +- drivers/md/dm-raid.c | 4 +- drivers/md/dm-verity.h | 4 +- drivers/md/dm.c | 26 +- drivers/md/md.c | 14 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 52 +- drivers/media/dvb-core/dvbdev.c | 5 + drivers/media/dvb-frontends/stv0367.c | 34 +- drivers/media/i2c/tc358743.c | 7 +- drivers/media/pci/ttpci/budget-av.c | 8 +- drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c | 2 +- .../media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c | 10 +- drivers/media/platform/mtk-vpu/mtk_vpu.c | 2 +- drivers/media/platform/mtk-vpu/mtk_vpu.h | 2 +- drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 69 +- drivers/media/usb/em28xx/em28xx-cards.c | 4 + drivers/media/usb/go7007/go7007-driver.c | 8 +- drivers/media/usb/go7007/go7007-usb.c | 4 +- drivers/media/usb/pvrusb2/pvrusb2-context.c | 10 +- drivers/media/usb/pvrusb2/pvrusb2-dvb.c | 6 +- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 11 +- drivers/media/v4l2-core/v4l2-mem2mem.c | 10 +- drivers/mfd/altera-sysmgr.c | 4 +- drivers/mfd/syscon.c | 4 +- drivers/mmc/host/wmt-sdmmc.c | 4 - drivers/mtd/maps/physmap-core.c | 2 +- drivers/mtd/nand/raw/lpc32xx_mlc.c | 5 +- drivers/net/dsa/mt7530.c | 57 +- drivers/net/dsa/mt7530.h | 27 + drivers/net/ethernet/amazon/ena/ena_netdev.c | 17 - drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 6 +- .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 5 +- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 2 +- drivers/net/ethernet/intel/igb/igb_main.c | 112 +- drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 2 +- drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 17 +- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 38 +- drivers/net/ethernet/mediatek/mtk_ppe.c | 18 +- .../net/ethernet/netronome/nfp/flower/lag_conf.c | 5 + drivers/net/phy/dp83822.c | 38 +- drivers/net/phy/phy_device.c | 6 +- drivers/net/usb/sr9800.c | 4 +- drivers/net/veth.c | 18 - drivers/net/wireguard/receive.c | 6 +- drivers/net/wireless/ath/ath10k/core.c | 3 - drivers/net/wireless/ath/ath10k/sdio.c | 1 - drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 + drivers/net/wireless/ath/ath9k/htc.h | 2 +- drivers/net/wireless/ath/ath9k/htc_drv_init.c | 4 + drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 4 - drivers/net/wireless/ath/ath9k/wmi.c | 10 +- drivers/net/wireless/broadcom/b43/b43.h | 16 + drivers/net/wireless/broadcom/b43/dma.c | 4 +- drivers/net/wireless/broadcom/b43/main.c | 16 +- drivers/net/wireless/broadcom/b43/pio.c | 6 +- .../broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 3 +- .../broadcom/brcm80211/brcmsmac/phy_shim.c | 5 +- .../broadcom/brcm80211/brcmsmac/phy_shim.h | 2 +- drivers/net/wireless/intel/iwlegacy/3945-mac.c | 1 - drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 - drivers/net/wireless/intel/iwlwifi/dvm/main.c | 1 - drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2 +- drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 6 + drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 +- drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 26 +- drivers/net/wireless/marvell/libertas/cmd.c | 13 +- drivers/net/wireless/marvell/mwifiex/cfg80211.c | 2 - drivers/net/wireless/marvell/mwifiex/debugfs.c | 3 - drivers/net/wireless/marvell/mwifiex/main.c | 2 - drivers/net/wireless/microchip/wilc1000/cfg80211.c | 1 - drivers/net/wireless/microchip/wilc1000/hif.c | 40 +- drivers/net/wireless/microchip/wilc1000/netdev.c | 29 +- drivers/net/wireless/quantenna/qtnfmac/core.c | 2 - drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 1 + drivers/net/wireless/realtek/rtlwifi/pci.c | 1 - drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +- drivers/net/wireless/rndis_wlan.c | 2 - drivers/net/wireless/st/cw1200/bh.c | 2 - drivers/ntb/core.c | 8 +- drivers/opp/debugfs.c | 6 +- drivers/pci/endpoint/functions/Kconfig | 11 + drivers/pci/endpoint/functions/Makefile | 1 + drivers/pci/endpoint/functions/pci-epf-vntb.c | 1421 ++++++++++++++++++++ drivers/pci/p2pdma.c | 2 +- drivers/pci/pci.h | 5 - drivers/pci/pcie/dpc.c | 2 +- drivers/pci/quirks.c | 1 + drivers/pci/switch/switchtec.c | 4 +- drivers/pinctrl/mediatek/pinctrl-mt8192.c | 1 - drivers/pwm/pwm-atmel-hlcdc.c | 71 +- drivers/pwm/pwm-sti.c | 40 +- drivers/remoteproc/Kconfig | 2 +- drivers/remoteproc/stm32_rproc.c | 24 +- drivers/rtc/Kconfig | 3 +- drivers/rtc/lib_test.c | 2 +- drivers/s390/block/dasd.c | 111 +- drivers/s390/block/dasd_devmap.c | 566 +++++++- drivers/s390/block/dasd_eckd.c | 154 ++- drivers/s390/block/dasd_eckd.h | 8 +- drivers/s390/block/dasd_eer.c | 1 + drivers/s390/block/dasd_int.h | 54 + drivers/scsi/bfa/bfa.h | 9 +- drivers/scsi/bfa/bfa_core.c | 4 +- drivers/scsi/bfa/bfa_ioc.h | 8 +- drivers/scsi/bfa/bfad_bsg.c | 11 +- drivers/scsi/csiostor/csio_defs.h | 18 +- drivers/scsi/csiostor/csio_lnode.c | 8 +- drivers/scsi/csiostor/csio_lnode.h | 13 - drivers/scsi/mpt3sas/mpt3sas_base.c | 4 +- drivers/soc/fsl/dpio/dpio-service.c | 2 +- drivers/spi/spi-mt65xx.c | 22 +- drivers/staging/greybus/light.c | 8 +- drivers/staging/media/imx/imx-media-csc-scaler.c | 1 + drivers/tty/serial/8250/8250_exar.c | 5 +- drivers/tty/serial/max310x.c | 2 +- drivers/tty/serial/samsung_tty.c | 5 +- drivers/tty/vt/vt.c | 2 +- drivers/usb/gadget/udc/net2272.c | 2 +- drivers/vdpa/mlx5/net/mlx5_vnet.c | 13 +- drivers/video/backlight/da9052_bl.c | 1 + drivers/video/backlight/lm3630a_bl.c | 15 +- drivers/video/backlight/lm3639_bl.c | 1 + drivers/video/backlight/lp8788_bl.c | 1 + drivers/watchdog/stm32_iwdg.c | 3 + fs/afs/dir.c | 10 - fs/f2fs/checkpoint.c | 6 +- fs/f2fs/compress.c | 36 +- fs/f2fs/data.c | 72 +- fs/f2fs/f2fs.h | 48 +- fs/f2fs/file.c | 28 +- fs/f2fs/gc.c | 8 +- fs/f2fs/node.c | 2 +- fs/f2fs/segment.c | 59 +- fs/f2fs/super.c | 13 +- fs/fhandle.c | 2 +- fs/nfs/nfs42.h | 7 +- fs/nfs/nfs4proc.c | 16 +- fs/nfs/nfsroot.c | 4 +- fs/quota/dquot.c | 226 ++-- fs/select.c | 2 +- include/drm/drm_fixed.h | 2 +- include/drm/ttm/ttm_resource.h | 3 + include/linux/bpf.h | 7 +- include/linux/filter.h | 24 +- include/linux/igmp.h | 4 +- include/linux/io_uring.h | 10 +- include/linux/mlx5/qp.h | 5 +- include/linux/moduleloader.h | 8 + include/linux/mroute.h | 6 +- include/linux/pci.h | 5 + include/linux/poll.h | 4 - include/linux/rcupdate.h | 43 + include/linux/sockptr.h | 5 + include/trace/events/f2fs.h | 21 +- init/main.c | 5 +- io_uring/io_uring.c | 234 +--- kernel/bpf/cpumap.c | 3 + kernel/bpf/devmap.c | 11 +- kernel/bpf/hashtab.c | 14 +- kernel/bpf/helpers.c | 4 +- kernel/bpf/map_in_map.c | 11 +- kernel/bpf/stackmap.c | 9 +- kernel/bpf/syscall.c | 26 +- kernel/module.c | 20 +- kernel/rcu/tasks.h | 2 + kernel/sched/fair.c | 4 +- kernel/time/time_test.c | 2 +- kernel/time/timekeeping.c | 24 +- lib/cmdline_kunit.c | 2 +- lib/test_blackhole_dev.c | 3 +- net/bluetooth/hci_core.c | 2 +- net/bluetooth/hci_event.c | 2 - net/bluetooth/rfcomm/core.c | 2 +- net/core/dev.c | 5 +- net/core/filter.c | 5 +- net/core/scm.c | 2 +- net/core/sock.c | 51 +- net/core/sock_diag.c | 10 +- net/hsr/hsr_framereg.c | 4 + net/hsr/hsr_main.c | 15 +- net/ipv4/igmp.c | 22 +- net/ipv4/inet_diag.c | 6 +- net/ipv4/ip_sockglue.c | 80 +- net/ipv4/ip_tunnel.c | 15 +- net/ipv4/ipmr.c | 13 +- net/ipv4/tcp.c | 4 +- net/ipv4/udp.c | 4 +- net/ipv6/fib6_rules.c | 6 + net/ipv6/mcast.c | 1 - net/iucv/iucv.c | 4 +- net/kcm/kcmsock.c | 3 +- net/l2tp/l2tp_ppp.c | 4 +- net/netfilter/nf_tables_api.c | 2 +- net/netfilter/nft_set_pipapo.c | 5 +- net/packet/af_packet.c | 4 +- net/rds/send.c | 5 +- net/sunrpc/addr.c | 4 +- net/sunrpc/auth_gss/gss_rpc_xdr.c | 27 +- net/unix/garbage.c | 2 +- net/unix/scm.c | 4 +- net/x25/af_x25.c | 4 +- scripts/clang-tools/gen_compile_commands.py | 2 +- scripts/kconfig/lexer.l | 7 +- sound/core/seq/seq_midi.c | 8 +- sound/core/seq/seq_virmidi.c | 9 +- sound/pci/hda/patch_realtek.c | 64 + sound/soc/codecs/rt5645.c | 10 + sound/soc/codecs/wm8962.c | 29 +- sound/soc/intel/boards/bytcr_rt5640.c | 12 + sound/soc/meson/aiu.c | 49 +- sound/soc/meson/aiu.h | 1 - sound/soc/meson/axg-fifo.c | 16 +- sound/soc/meson/axg-pdm.c | 25 +- sound/soc/meson/axg-spdifin.c | 17 +- sound/soc/meson/axg-spdifout.c | 17 +- sound/soc/meson/axg-tdm-formatter.c | 50 +- sound/soc/meson/axg-tdm-interface.c | 54 +- sound/soc/meson/meson-card-utils.c | 8 +- sound/soc/meson/t9015.c | 30 +- sound/usb/stream.c | 5 +- tools/bpf/bpftool/prog.c | 2 +- tools/perf/builtin-record.c | 2 +- tools/perf/util/evsel.c | 1 - tools/perf/util/stat-display.c | 2 +- tools/perf/util/thread_map.c | 2 +- tools/testing/selftests/net/tls.c | 8 +- 345 files changed, 4732 insertions(+), 1803 deletions(-)
Ajay Singh (1):
wifi: wilc1000: fix multi-vif management when deleting a vif
Alban Boyé (1):
ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet
Alex Bee (1):
drm/rockchip: inno_hdmi: Fix video timing
Alexander Gordeev (1):
net/iucv: fix the allocation size of iucv_path_table array
Alexander Stein (1):
media: tc358743: register v4l2 async device only after successful setup
Alexey I. Froloff (1):
ACPI: resource: Do IRQ override on Lunnen Ground laptops
Alexey Kodanev (1):
RDMA/rtrs-clt: Check strnlen return len in sysfs mpath_policy_store()
Alexis Lothoré (3):
wifi: wilc1000: fix declarations ordering
wifi: wilc1000: fix RCU usage in connect path
wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces
Anastasia Belova (1):
cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value
Andrew Ballance (1):
gen_compile_commands: fix invalid escape sequence warning
Andy Shevchenko (1):
serial: 8250_exar: Don't remove GPIO device on suspend
AngeloGioacchino Del Regno (1):
drm/mediatek: dsi: Fix DSI RGB666 formats and definitions
Armin Wolf (1):
ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()
Arnaud Pouliquen (2):
remoteproc: stm32: Fix incorrect type in assignment for va
remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef
Arnd Bergmann (12):
fs/select: rework stack allocation hack for clang
wifi: brcmsmac: avoid function pointer casts
media: pvrusb2: fix pvr2_stream_callback casts
crypto: arm/sha - fix function cast warnings
mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
media: dvb-frontends: avoid stack overflow warnings with clang
media: mediatek: vcodec: avoid -Wcast-function-type-strict warning
scsi: csiostor: Avoid function pointer casts
scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn
remoteproc: stm32: use correct format strings on 64-bit
soc: fsl: dpio: fix kcalloc() argument order
remoteproc: stm32: fix incorrect optional pointers
Arınç ÜNAL (5):
net: dsa: mt7530: prevent possible incorrect XTAL frequency selection
net: dsa: mt7530: fix handling of LLDP frames
net: dsa: mt7530: fix handling of 802.1X PAE frames
net: dsa: mt7530: fix link-local frames that ingress vlan filtering ports
net: dsa: mt7530: fix handling of all link-local frames
Athaariq Ardhiansyah (1):
ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops
Baokun Li (1):
quota: simplify drop_dquot_ref()
Bartosz Golaszewski (1):
Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()
Baruch Siach (1):
mtd: maps: physmap-core: fix flash size larger than 32-bit
Basavaraj Natikar (1):
HID: amd_sfh: Update HPD sensor structure elements
Ben Wolsieffer (1):
watchdog: stm32_iwdg: initialize default timeout
Bitterblue Smith (1):
wifi: rtw88: 8821c: Fix false alarm count
Breno Leitao (1):
net: blackhole_dev: fix build warning for ethh set but not used
Bryan O'Donoghue (1):
clk: Fix clk_core_get NULL dereference
Cai Huoqing (1):
drm/tegra: dsi: Make use of the helper function dev_err_probe()
Changbin Du (1):
modules: wait do_free_init correctly
Chao Yu (5):
f2fs: multidevice: support direct IO
f2fs: fix to invalidate META_MAPPING before DIO write
f2fs: invalidate meta pages only for post_read required inode
f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info
f2fs: compress: fix to cover normal cluster write with cp_rwsem
Chen Ni (2):
sr9800: Add check for usbnet_get_endpoints drm/tegra: dsi: Add missing check for of_find_device_by_node
Chen-Yu Tsai (1):
pinctrl: mediatek: Drop bogus slew rate register range for MT8192
Christian König (1):
drm/ttm: add ttm_resource_fini v2
Christophe JAILLET (13):
wireless: Remove redundant 'flush_workqueue()' calls
mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe()
drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe() drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe() PCI/P2PDMA: Fix a sleeping issue in a RCU read section
PCI: switchtec: Fix an error handling path in switchtec_pci_probe()
clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()
clk: hisilicon: hi3559a: Fix an erroneous devm_kfree()
net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()
NFS: Fix an off by one in root_nfs_cat()
Christophe Leroy (1):
powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
Chun-Yi Lee (1):
aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts
Colin Ian King (1):
usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin
Conor Dooley (1):
riscv: dts: sifive: add missing #interrupt-cells to pmic
Dan Carpenter (1):
staging: greybus: fix get_channel_from_mode() failure path
Daniel Golle (2):
net: mediatek: mtk_eth_soc: clear MAC_MCR_FORCE_LINK only when MAC is up
net: ethernet: mtk_eth_soc: fix PPE hanging issue
Daniel Thompson (3):
backlight: da9052: Fully initialize backlight_properties during probe
backlight: lm3639: Fully initialize backlight_properties during probe
backlight: lp8788: Fully initialize backlight_properties during probe
Daniil Dulov (2):
media: go7007: add check of return value of go7007_read_addr()
media: pvrusb2: remove redundant NULL check
Dave Airlie (1):
nouveau: reset the bo resource bus info after an eviction
David Gow (3):
lib/cmdline: Fix an invalid format specifier in an assertion msg
time: test: Fix incorrect format specifier
rtc: test: Fix invalid format specifier.
David Howells (1):
afs: Revert "afs: Hide silly-rename files from userspace"
David McFarland (1):
ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override
Dmitry Osipenko (1):
drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+
Duoming Zhou (2):
nfp: flower: handle acti_netdevs allocation failure
clk: zynq: Prevent null pointer dereference caused by kmalloc failure
Edward Adam Davis (1):
media: pvrusb2: fix uaf in pvr2_context_set_notify
Eric Dumazet (5):
sock_diag: annotate data-races around sock_diag_handlers[family]
inet_diag: annotate data-races around inet_diag_table[]
ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down()
net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
packet: annotate data-races around ignore_outgoing
Ethan Zhao (2):
PCI: Make pci_dev_is_disconnected() helper public for other drivers iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected
Fedor Pchelkin (1):
drm/tegra: put drm_gem_object ref on error in tegra_fb_create
Fei Shao (1):
spi: spi-mt65xx: Fix NULL pointer access in interrupt handler
Felix Maurer (1):
hsr: Handle failures in module init
Frank Li (1):
PCI: endpoint: Support NTB transfer between RC and EP
Frieder Schrempf (5):
arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM
arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board
arm64: dts: imx8mm-kontron: Add support for ultra high speed modes on SD card
arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card IO voltage
arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board
Gavrilov Ilia (6):
tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function
l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function net/x25: fix incorrect parameter validation in the x25_getsockopt() function
Geert Uytterhoeven (3):
ARM: dts: arm: realview: Fix development chip ROM compatible value
arm64: dts: renesas: r8a779a0: Update to R-Car Gen4 compatible values
arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes
George Stark (1):
leds: aw2013: Unlock mutex before destroying it
Greg Joyce (1):
block: sed-opal: handle empty atoms when parsing response
Hans de Goede (1):
ASoC: rt5645: Make LattePanda board DMI match more precise
Harry Wentland (1):
drm: Don't treat 0 as -1 in drm_fixp2int_ceil
Hou Tao (3):
bpf: Defer the free of inner map when necessary x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()
Hsin-Yi Wang (2):
arm64: dts: mt8183: kukui: Split out keyboard node and describe detachables drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
Hugo Villeneuve (1):
serial: max310x: fix syntax error in IRQ error message
Hyeong-Jun Kim (1):
f2fs: invalidate META_MAPPING before IPU/DIO write
Ian Abbott (1):
comedi: comedi_test: Prevent timers rescheduling during deletion
Ian Rogers (1):
perf stat: Avoid metric-only segv
Ignat Korchagin (1):
net: veth: do not manipulate GRO when using XDP
Igor Prusov (1):
clk: meson: Add missing clocks to axg_clk_regmaps
Ilpo Järvinen (1):
PCI/DPC: Print all TLP Prefixes, not just the first
Jakub Kicinski (1):
selftests: tls: use exact comparison in recv_partial
Jan Höppner (1):
s390/dasd: Use dev_*() for device log messages
Jan Kara (1):
quota: Fix rcu annotations of inode dquot pointers
Jens Axboe (3):
io_uring/unix: drop usage of io_uring socket
io_uring: drop any code related to SCM_RIGHTS
io_uring: don't save/restore iowait state
Jernej Skrabec (3):
media: sun8i-di: Fix coefficient writes
media: sun8i-di: Fix power on/off sequences
media: sun8i-di: Fix chroma difference threshold
Jerome Brunet (4):
ASoC: meson: aiu: fix function pointer type mismatch
ASoC: meson: t9015: fix function pointer type mismatch
ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs
ASoC: meson: axg-tdm-interface: add frame rate constraint
Jiaxun Yang (1):
MIPS: Clear Cause.BD in instruction_pointer_set
Jie Wang (1):
net: hns3: fix port duplex configure error in IMP reset
Jinjie Ruan (1):
wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()
Jiri Slaby (SUSE) (1):
tty: vt: fix 20 vs 0x20 typo in EScsiignore
Johan Carlsson (1):
ALSA: usb-audio: Stop parsing channels bits when all channels are found.
Johannes Berg (3):
wifi: iwlwifi: mvm: report beacon protection failures
wifi: iwlwifi: dbg-tlv: ensure NUL termination
wifi: iwlwifi: mvm: don't set replay counters to 0xff
Jonah Palmer (1):
vdpa/mlx5: Allow CVQ size changes
Jonas Dreßler (1):
Bluetooth: Remove superfluous call to hci_conn_check_pending()
Jorge Mora (2):
NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 NFSv4.2: fix listxattr maximum XDR buffer size
Jörg Wedekind (1):
PCI: Mark 3ware-9650SE Root Port Extended Tags as broken
Kailang Yang (1):
ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port
Kajol Jain (1):
powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks
Kamal Heib (1):
net: ena: Remove ena_select_queue
Kees Cook (1):
x86, relocs: Ignore relocations in .notes section
Keisuke Nishimura (1):
sched/fair: Take the scheduling domain into account in select_idle_core()
Konrad Dybcio (3):
clk: qcom: reset: Commonize the de/assert functions
clk: qcom: reset: Ensure write completion on reset de/assertion
clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times
Kuninori Morimoto (1):
ASoC: meson: Use dev_err_probe() helper
Kuniyuki Iwashima (1):
af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().
Kunwu Chan (1):
x86/xen: Add some null pointer checking to smp.c
Kévin L'hôpital (1):
net: phy: fix phy_get_internal_delay accessing an empty array
Leon Romanovsky (1):
RDMA/mlx5: Fix fortify source warning while accessing Eth segment
Li Nan (1):
md: Don't clear MD_CLOSING when the raid is about to stop
Linu Cherian (1):
octeontx2-af: Use matching wake_up API variant in CGX command interface
Luca Weiss (2):
backlight: lm3630a: Initialize backlight_properties on init
backlight: lm3630a: Don't set bl->props.brightness in get_brightness
Lucas Stach (1):
media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak
Luiz Augusto von Dentz (1):
Bluetooth: hci_core: Fix possible buffer overflow
Manuel Fombuena (1):
HID: multitouch: Add required quirk for Synaptics 0xcddc device
Marek Vasut (1):
regmap: Add missing map->bus check
Mario Limonciello (1):
iommu/amd: Mark interrupt as managed
Martin KaFai Lau (3):
net: Change sock_getsockopt() to take the sk ptr instead of the sock ptr
bpf: net: Change sk_getsockopt() to take the sockptr_t argument
bpf: net: Change do_ip_getsockopt() to take the sockptr_t argument
Martin Kaistra (1):
wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work
Masahiro Yamada (1):
kconfig: fix infinite loop when expanding a macro at the end of file
Max Kellermann (1):
parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check
Maxim Kudinov (1):
ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override
Mete Durlu (1):
s390/vtime: fix average steal time calculation
Michael Ellerman (1):
powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.
Michal Vokáč (3):
ARM: dts: imx6dl-yapp4: Move phy reset into switch node
ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address
ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node
Mikhail Khvainitski (1):
HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd
Mikulas Patocka (2):
dm-verity, dm-crypt: align "struct bvec_iter" correctly
dm: call the resume method on internal suspend
Ming Lei (1):
dm raid: fix false positive for requeue needed during reshape
Miri Korenblit (1):
wifi: iwlwifi: fix EWRD table validity check
Miroslav Franc (1):
s390/dasd: fix double module refcount decrement
Nathan Chancellor (1):
s390/vdso: drop '-fPIC' from LDFLAGS
Navid Emamdoost (1):
nbd: null check for nla_nest_start
NeilBrown (1):
f2fs: replace congestion_wait() calls with io_schedule_timeout()
Nikita Kiryushin (1):
net: phy: fix phy_read_poll_timeout argument type in genphy_loopback
Nikita Zhandarovich (4):
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
media: em28xx: annotate unchecked call to media_device_register() drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
wireguard: receive: annotate data-race around receiving_counter.counter
Nícolas F. R. A. Prado (3):
cpufreq: mediatek-hw: Wait for CPU supplies before probing
cpufreq: mediatek-hw: Don't error out if supply is not found
arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs
Ondrej Jirman (1):
leds: sgm3140: Add missing timer cleanup and flash gpio control
Pablo Neira Ayuso (2):
netfilter: nft_set_pipapo: release elements in clone only from destroy path
netfilter: nf_tables: do not compare internal table flags on updates
Paloma Arellano (1):
drm/msm/dpu: add division of drm_display_mode's hskew parameter
Paul E. McKenney (1):
rcu-tasks: Provide rcu_trace_implies_rcu_gp()
Peter Griffin (2):
mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref
Peter Hilber (3):
timekeeping: Fix cross-timestamp interpolation on counter wrap
timekeeping: Fix cross-timestamp interpolation corner case decision
timekeeping: Fix cross-timestamp interpolation for non-x86
Peter Robinson (2):
bus: tegra-aconnect: Update dependency to ARCH_TEGRA
dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA
Prashant Malani (1):
arm64: dts: mt8183: kukui: Add Type C node
Prike Liang (1):
drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series
Quanyang Wang (1):
crypto: xilinx - call finalize with bh disabled
Quentin Schulz (2):
drm/rockchip: lvds: do not overwrite error code drm/rockchip: lvds: do not print scary message when probing defer
Rafael J. Wysocki (1):
ACPI: scan: Fix device check notification handling
Rafał Miłecki (3):
arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes
arm64: dts: marvell: reorder crypto interrupts on Armada SoCs
arm64: dts: broadcom: bcmbca: bcm4908: drop invalid switch cells
Rahul Rameshbabu (4):
wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
wifi: b43: Stop correct queue in DMA worker when QoS is disabled
wifi: b43: Disable QoS for bcm4331
Randy Dunlap (1):
rtc: mt6397: select IRQ_DOMAIN instead of depending on it
Ranjan Kumar (1):
scsi: mpt3sas: Prevent sending diag_reset when the controller is ready
Rob Herring (1):
cpufreq: Explicitly include correct DT includes
Russell King (Oracle) (1):
net: mtk_eth_soc: move MAC_MCR setting to mac_finish()
Ruud Bos (1):
igb: move PEROUT and EXTTS isr logic to separate functions
Sam Ravnborg (1):
sparc32: Fix section mismatch in leon_pci_grpci
Saravana Kannan (1):
module: Add support for default value for module async_probe
Sasha Levin (1):
Linux 5.15.153
Sheng Yong (1):
f2fs: compress: fix to check unreleased compressed cluster
Shifeng Li (1):
RDMA/device: Fix a race between mad_client and cm_client init
Shigeru Yoshida (1):
hsr: Fix uninit-value access in hsr_get_node()
Shiming Cheng (1):
ipv6: fib6_rules: flush route cache when rule is changed
Srinivasan Shanmugam (3):
drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()
Steev Klimaszewski (1):
Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855
Stefan Haberland (4):
s390/dasd: put block allocation in separate function s390/dasd: add query PPRC function s390/dasd: add copy pair setup
s390/dasd: add autoquiesce feature
Stuart Henderson (3):
ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC
ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode
ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll
Subbaraya Sundeep (1):
octeontx2-af: Use separate handlers for interrupts
Takashi Iwai (1):
ALSA: seq: fix function cast warnings
Takashi Sakamoto (1):
firewire: core: use long bus reset on gap count error
Thierry Reding (1):
drm/tegra: dpaux: Populate AUX bus
Thinh Tran (1):
net/bnx2x: Prevent access to a freed page in page_pool
Tiezhu Yang (1):
bpftool: Silence build warning about calloc()
Tim Harvey (1):
arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS
Tim Pambor (1):
net: phy: dp83822: Fix RGMII TX delay configuration
Toke Høiland-Jørgensen (4):
wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete
bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
bpf: Fix hashtab overflow check on 32-bit arches
bpf: Fix stackmap overflow check on 32-bit arches
Tomi Valkeinen (1):
drm/tidss: Fix initial plane zpos values
Tommaso Merciai (1):
net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii
Tudor Ambarus (1):
tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT
Uwe Kleine-König (6):
Input: gpio_keys_polled - suppress deferred probe error for gpio
pwm: atmel-hlcdc: Convert to platform remove callback returning void
pwm: atmel-hlcdc: Use consistent variable naming
pwm: atmel-hlcdc: Fix clock imbalance related to suspend support
pwm: sti: Implement .apply() callback
pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan
Vinicius Costa Gomes (1):
igb: Fix missing time sync events
Viresh Kumar (1):
OPP: debugfs: Fix warning around icc_get_name()
Wang Jianjian (1):
quota: Fix potential NULL pointer dereference
William Kucharski (1):
RDMA/srpt: Do not register event handler until srpt device is fully setup
Xingyuan Mo (1):
wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()
Xiuhong Wang (1):
f2fs: compress: fix reserve_cblocks counting error when out of space
Yan Zhai (3):
rcu: add a helper to report consolidated flavor QS
net: report RCU QS on threaded NAPI repolling
bpf: report RCU QS in cpumap kthread
Yang Jihong (3):
perf record: Fix possible incorrect free in record__switch_output() perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()
Yang Yingliang (1):
NTB: fix possible name leak in ntb_register_device()
Yewon Choi (1):
rds: introduce acquire/release ordering in acquire/release_in_xmit()
Yishai Hadas (1):
RDMA/mlx5: Relax DEVX access upon modify commands
Yonghong Song (1):
bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly
Yonglong Liu (1):
net: hns3: fix kernel crash when 1588 is received on HIP08 devices
Yuxuan Hu (1):
Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security
Zhang Shurong (1):
drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe
Zhipeng Lu (9):
wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()
SUNRPC: fix some memleaks in gssx_dec_option_array drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node drm/lima: fix a memleak in lima_heap_alloc
media: v4l2-tpg: fix some memleaks in tpg_alloc
media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
media: edia: dvbdev: fix a use-after-free
media: go7007: fix a memleak in go7007_load_encoder
media: ttpci: fix two memleaks in budget_av_attach
ruanjinjie (1):
NTB: EPF: fix possible memory leak in pci_vntb_probe()
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAmYDTuQACgkQ3qZv95d3 LNxHKw//cyChUuXAS3yYPD4dZj897+/k7LEm4zfISrbUXFz81QF6CPeOpwzXwGDD foZOwVV0tJgsl32i1Vy3KCdfI8QK0rSsQDhoE+XPZYBsUAaVNNZYfjQfiAk1ixXW iIpvcULXqr7cKzBA299GbCF0Biyp0yKPBCymGZ1/BjGLUGzFKVUPXsBcpeq95vte dXa4S8wEaOC7GATwHGlx+dfK37PiGmrUiUn0aHae+nx7tVolVM77727/HQcgfDqp e4fWUdPeFP+okBV6WlIzi2z/YxGrqzMmL5Se44frgljuTrmW1WTx/3zrCIhkAmtp Vnu9hIsoaPVX9r9/uLApZXYLSY6QyQhCWdUHxG00Rdkz2lbZM4BkOSMvxdNHh6Xp wToyGb3ckOVI/pNj0rbnIUc+v9AFCyRaqv7jeX/hDZ3goq/U++EapJuSMfRCT2ib 0K21x3i0wg3YtzqTOJ3Lsq8ypSDmTJzGP9jHfSG6pDK9Toc/lAnGy4+UdxnEa0j6 vXVK8BA5ylqsfxZAkDS49qnX9KlZCN3LvIsDoSCSXl70Wdeub0RV3wZTC0ocEtNv nBB9UN+7k8WRY7dNfYPiHOAeN4dO+yzceOCOYIV/sxiPckXyC2o94nt6AIqm1oN8 C9Cp6GnLuwytRollCPkmwl3cq7uAWRZPINEfWn7Sc5qE5RYpAjo= =ZYqn
-----END PGP SIGNATURE-----
Sasha Levin
maintainerDocumentation/admin-guide/kernel-parameters.txt +15 -2
@@ -1084,8 +1084,12 @@ nopku [X86] Disable Memory Protection Keys CPU feature found in some Intel CPUs. - <module>.async_probe [KNL] - Enable asynchronous probe on this module. + <module>.async_probe[=<bool>] [KNL] + If no <bool> value is specified or if the value + specified is not a valid <bool>, enable asynchronous + probe on this module. Otherwise, enable/disable + asynchronous probe on this module as indicated by the + <bool> value. See also: module.async_probe early_ioremap_debug [KNL] Enable debug messages in early_ioremap support. This
@@ -3137,6 +3141,15 @@ For details see: Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst + module.async_probe=<bool> + [KNL] When set to true, modules will use async probing + by default. To enable/disable async probing for a + specific module, use the module specific control that + is documented under <module>.async_probe. When both + module.async_probe and <module>.async_probe are + specified, <module>.async_probe takes precedence for + the specific module. + module.sig_enforce [KNL] When CONFIG_MODULE_SIG is set, this means that modules without (valid) signatures will fail to load.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 152 +SUBLEVEL = 153 EXTRAVERSION = NAME = Trick or Treat
arch/arm/boot/dts/arm-realview-pb1176.dts +1 -1
@@ -435,7 +435,7 @@ pb1176_serial3: serial@1010f000 { /* Direct-mapped development chip ROM */ pb1176_rom@10200000 { - compatible = "direct-mapped"; + compatible = "mtd-rom"; reg = <0x10200000 0x4000>; bank-width = <1>; };
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +17 -11
@@ -105,8 +105,6 @@ &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii-id"; - phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; - phy-reset-duration = <20>; phy-supply = <&sw2_reg>; status = "okay";
@@ -119,17 +117,10 @@ mdio { #address-cells = <1>; #size-cells = <0>; - phy_port2: phy@1 { - reg = <1>; - }; - - phy_port3: phy@2 { - reg = <2>; - }; - switch@10 { compatible = "qca,qca8334"; - reg = <10>; + reg = <0x10>; + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; switch_ports: ports { #address-cells = <1>;
@@ -150,15 +141,30 @@ fixed-link { eth2: port@2 { reg = <2>; label = "eth2"; + phy-mode = "internal"; phy-handle = <&phy_port2>; }; eth1: port@3 { reg = <3>; label = "eth1"; + phy-mode = "internal"; phy-handle = <&phy_port3>; }; }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + phy_port2: ethernet-phy@1 { + reg = <1>; + }; + + phy_port3: ethernet-phy@2 { + reg = <2>; + }; + }; }; }; };
arch/arm/crypto/sha256_glue.c +5 -8
@@ -24,8 +24,8 @@#include "sha256_glue.h" -asmlinkage void sha256_block_data_order(u32 *digest, const void *data, -unsigned int num_blks); +asmlinkage void sha256_block_data_order(struct sha256_state *state, +const u8 *data,int num_blks);int crypto_sha256_arm_update (struct shash_desc *desc,const u8 *data,unsigned int len)
@@ -33,23 +33,20 @@ int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,/* make sure casting to sha256_block_fn() is safe */ BUILD_BUG_ON (offsetof(struct sha256_state , state) !=0 ); -return sha256_base_do_update (desc, data, len, - (sha256_block_fn *)sha256_block_data_order); +return sha256_base_do_update (desc, data, len, sha256_block_data_order); }EXPORT_SYMBOL (crypto_sha256_arm_update);static int crypto_sha256_arm_final (struct shash_desc *desc,u8 *out) { -sha256_base_do_finalize (desc, - (sha256_block_fn *)sha256_block_data_order); +sha256_base_do_finalize (desc, sha256_block_data_order);return sha256_base_finish (desc, out); }int crypto_sha256_arm_finup (struct shash_desc *desc,const u8 *data,unsigned int len,u8 *out) { -sha256_base_do_update (desc, data, len, - (sha256_block_fn *)sha256_block_data_order); +sha256_base_do_update (desc, data, len, sha256_block_data_order);return crypto_sha256_arm_final (desc, out); }EXPORT_SYMBOL (crypto_sha256_arm_finup);
arch/arm/crypto/sha512-glue.c +5 -7
@@ -25,27 +25,25 @@ MODULE_ALIAS_CRYPTO("sha512");MODULE_ALIAS_CRYPTO ("sha384-arm" );MODULE_ALIAS_CRYPTO ("sha512-arm" ); -asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blocks); +asmlinkage void sha512_block_data_order(struct sha512_state *state, +u8 const *src,int blocks);int sha512_arm_update (struct shash_desc *desc,const u8 *data,unsigned int len) { -return sha512_base_do_update (desc, data, len, - (sha512_block_fn *)sha512_block_data_order); +return sha512_base_do_update (desc, data, len, sha512_block_data_order); }static int sha512_arm_final (struct shash_desc *desc,u8 *out) { -sha512_base_do_finalize (desc, - (sha512_block_fn *)sha512_block_data_order); +sha512_base_do_finalize (desc, sha512_block_data_order);return sha512_base_finish (desc, out); }int sha512_arm_finup (struct shash_desc *desc,const u8 *data,unsigned int len,u8 *out) { -sha512_base_do_update (desc, data, len, - (sha512_block_fn *)sha512_block_data_order); +sha512_base_do_update (desc, data, len, sha512_block_data_order);return sha512_arm_final (desc, out); }
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi +0 -3
@@ -180,9 +180,6 @@ ethernet-switch@0 { brcm,num-gphy = <5>; brcm,num-rgmii-ports = <2>; - #address-cells = <1>; - #size-cells = <0>; - ports: ports { #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +42 -13
90 lines not on this page · raw message
arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi +2 -2
@@ -220,8 +220,8 @@ MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 pinctrl_i2c1: i2c1grp { fsl,pins = < - MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3 - MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3 + MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000083 + MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000083 >; };
arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi +9 -20
@@ -40,17 +40,6 @@ pps { gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; status = "okay"; }; - - reg_usb_otg1_vbus: regulator-usb-otg1 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_reg_usb1_en>; - compatible = "regulator-fixed"; - regulator-name = "usb_otg1_vbus"; - gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; - enable-active-high; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - }; }; /* off-board header */
@@ -102,9 +91,10 @@ &uart3 { }; &usbotg1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbotg1>; dr_mode = "otg"; over-current-active-low; - vbus-supply = <®_usb_otg1_vbus>; status = "okay"; };
@@ -156,14 +146,6 @@ MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x41 >; }; - pinctrl_reg_usb1_en: regusb1grp { - fsl,pins = < - MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x41 - MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x141 - MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x41 - >; - }; - pinctrl_spi2: spi2grp { fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6
@@ -186,4 +168,11 @@ MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140 MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140 >; }; + + pinctrl_usbotg1: usbotg1grp { + fsl,pins = < + MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x141 + MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x41 + >; + }; };
arch/arm64/boot/dts/marvell/armada-37xx.dtsi +5 -5
@@ -414,14 +414,14 @@ xor11 { crypto: crypto@90000 { compatible = "inside-secure,safexcel-eip97ies"; reg = <0x90000 0x20000>; - interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ring0", "ring1", "ring2", + "ring3", "eip", "mem"; clocks = <&nb_periph_clk 15>; };
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi +5 -5
@@ -506,14 +506,14 @@ CP11X_LABEL(sdhci0): sdhci@780000 { CP11X_LABEL(crypto): crypto@800000 { compatible = "inside-secure,safexcel-eip197b"; reg = <0x800000 0x200000>; - interrupts = <87 IRQ_TYPE_LEVEL_HIGH>, - <88 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <88 IRQ_TYPE_LEVEL_HIGH>, <89 IRQ_TYPE_LEVEL_HIGH>, <90 IRQ_TYPE_LEVEL_HIGH>, <91 IRQ_TYPE_LEVEL_HIGH>, - <92 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + <92 IRQ_TYPE_LEVEL_HIGH>, + <87 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ring0", "ring1", "ring2", "ring3", + "eip", "mem"; clock-names = "core", "reg"; clocks = <&CP11X_LABEL(clk) 1 26>, <&CP11X_LABEL(clk) 1 17>;
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -0
@@ -71,6 +71,7 @@ red { memory@40000000 { reg = <0 0x40000000 0 0x40000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v {
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +1 -0
@@ -57,6 +57,7 @@ wps { memory@40000000 { reg = <0 0x40000000 0 0x20000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v {
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +2 -0
@@ -4,6 +4,8 @@ */ #include "mt8183-kukui.dtsi" +/* Must come after mt8183-kukui.dtsi to modify cros_ec */ +#include <arm/cros-ec-keyboard.dtsi> / { panel: panel {
arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi +10 -0
@@ -372,6 +372,16 @@ pen_eject { }; }; +&cros_ec { + cbas { + compatible = "google,cros-cbas"; + }; + + keyboard-controller { + compatible = "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant = "GO_KAKADU"; };
arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi +10 -0
@@ -338,6 +338,16 @@ touch_pin_reset: pin_reset { }; }; +&cros_ec { + cbas { + compatible = "google,cros-cbas"; + }; + + keyboard-controller { + compatible = "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant = "GO_KODAMA"; };
arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi +10 -0
@@ -342,6 +342,16 @@ rst_pin { }; }; +&cros_ec { + cbas { + compatible = "google,cros-cbas"; + }; + + keyboard-controller { + compatible = "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant = "LE_Krane"; };
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +12 -3
@@ -828,8 +828,18 @@ usbc_extcon: extcon0 { google,usb-port-id = <0>; }; - cbas { - compatible = "google,cros-cbas"; + typec { + compatible = "google,cros-ec-typec"; + #address-cells = <1>; + #size-cells = <0>; + + usb_c0: connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "dual"; + data-role = "host"; + try-power-role = "sink"; + }; }; }; };
@@ -917,5 +927,4 @@ hub@1 { }; }; -#include <arm/cros-ec-keyboard.dtsi> #include <arm/cros-ec-sbs.dtsi>
arch/arm64/boot/dts/renesas/r8a779a0.dtsi +14 -14
@@ -583,8 +583,8 @@ hscif3: serial@e66a0000 { avb0: ethernet@e6800000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; - reg = <0 0xe6800000 0 0x800>; + "renesas,etheravb-rcar-gen4"; + reg = <0 0xe6800000 0 0x1000>; interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
@@ -631,8 +631,8 @@ avb0: ethernet@e6800000 { avb1: ethernet@e6810000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; - reg = <0 0xe6810000 0 0x800>; + "renesas,etheravb-rcar-gen4"; + reg = <0 0xe6810000 0 0x1000>; interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
@@ -679,7 +679,7 @@ avb1: ethernet@e6810000 { avb2: ethernet@e6820000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg = <0 0xe6820000 0 0x1000>; interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
@@ -727,7 +727,7 @@ avb2: ethernet@e6820000 { avb3: ethernet@e6830000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg = <0 0xe6830000 0 0x1000>; interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
@@ -775,7 +775,7 @@ avb3: ethernet@e6830000 { avb4: ethernet@e6840000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg = <0 0xe6840000 0 0x1000>; interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
@@ -823,7 +823,7 @@ avb4: ethernet@e6840000 { avb5: ethernet@e6850000 { compatible = "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg = <0 0xe6850000 0 0x1000>; interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>,
@@ -935,7 +935,7 @@ scif4: serial@e6c40000 { msiof0: spi@e6e90000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6e90000 0 0x0064>; interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 618>;
@@ -950,7 +950,7 @@ msiof0: spi@e6e90000 { msiof1: spi@e6ea0000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6ea0000 0 0x0064>; interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 619>;
@@ -965,7 +965,7 @@ msiof1: spi@e6ea0000 { msiof2: spi@e6c00000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6c00000 0 0x0064>; interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 620>;
@@ -980,7 +980,7 @@ msiof2: spi@e6c00000 { msiof3: spi@e6c10000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6c10000 0 0x0064>; interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 621>;
@@ -995,7 +995,7 @@ msiof3: spi@e6c10000 { msiof4: spi@e6c20000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6c20000 0 0x0064>; interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 622>;
@@ -1010,7 +1010,7 @@ msiof4: spi@e6c20000 { msiof5: spi@e6c28000 { compatible = "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg = <0 0xe6c28000 0 0x0064>; interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 623>;
arch/mips/include/asm/ptrace.h +1 -0
@@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs, unsigned long val) { regs->cp0_epc = val; + regs->cp0_cause &= ~CAUSEF_BD ; }/* Query offset/name of register from its name/offset */
arch/parisc/kernel/ftrace.c +1 -1
@@ -81,7 +81,7 @@ void notrace __hot ftrace_function_trampoline(unsigned long parent,#endif } -#ifdef CONFIG_FUNCTION_GRAPH_TRACER +#if defined(CONFIG_DYNAMIC_FTRACE ) && defined(CONFIG_FUNCTION_GRAPH_TRACER )int ftrace_enable_ftrace_graph_caller (void ) {return 0 ;
arch/powerpc/include/asm/vmalloc.h +2 -2
@@ -7,14 +7,14 @@#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP #define arch_vmap_pud_supported arch_vmap_pud_supported -static inline bool arch_vmap_pud_supported (pgprot_t prot) +static __always_inline bool arch_vmap_pud_supported(pgprot_t prot) {/* HPT does not cope with large pages in the vmalloc area */ return radix_enabled (); }#define arch_vmap_pmd_supported arch_vmap_pmd_supported -static inline bool arch_vmap_pmd_supported (pgprot_t prot) +static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot) {return radix_enabled (); }
arch/powerpc/perf/hv-gpci.c +27 -2
@@ -164,6 +164,20 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index, ret =plpar_hcall_norets (H_GET_PERF_COUNTER_INFO ,virt_to_phys (arg),HGPCI_REQ_BUFFER_SIZE ); + +/* +* ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL', +* specifies that the current buffer size cannot accommodate +* all the information and a partial buffer returned. +* Since in this function we are only accessing data for a given starting index, +* we don't need to accommodate whole data and can get required count by +* accessing first entry data. +* Hence hcall fails only incase the ret value is other than H_SUCCESS or +* H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B). +*/ +if (ret ==H_PARAMETER &&be32_to_cpu (arg->params.detail_rc) ==0x1B ) + ret =0 ; +if (ret) {pr_devel ("hcall failed: 0x%lx\n" , ret); goto out;
@@ -228,6 +242,7 @@ static int h_gpci_event_init(struct perf_event *event) {u64 count;u8 length; +unsigned long ret;/* Not our event */ if (event->attr.type != event->pmu->type)
@@ -258,13 +273,23 @@ static int h_gpci_event_init(struct perf_event *event) }/* check if the request works... */ -if (single_gpci_request (event_get_request (event), + ret =single_gpci_request (event_get_request (event),event_get_starting_index (event),event_get_secondary_index (event),event_get_counter_info_version (event),event_get_offset (event), length, - &count)) { + &count); + +/* +* ret value as H_AUTHORITY implies that partition is not permitted to retrieve +* performance information, and required to set +* "Enable Performance Information Collection" option. +*/ +if (ret ==H_AUTHORITY ) +return -EPERM ; + +if (ret) {pr_devel ("gpci hcall failed\n" );return -EINVAL ; }
arch/powerpc/platforms/embedded6xx/linkstation.c +0 -3
@@ -100,9 +100,6 @@ static void __init linkstation_init_IRQ(void)mpic_init (mpic); } -extern void avr_uart_configure (void ); -extern void avr_uart_send (const char ); -static void __noreturn linkstation_restart (char *cmd) {local_irq_disable ();
arch/powerpc/platforms/embedded6xx/mpc10x.h +3 -0
@@ -156,4 +156,7 @@ int mpc10x_disable_store_gathering(struct pci_controller *hose);/* For MPC107 boards that use the built-in openpic */ void mpc10x_set_openpic (void ); +void avr_uart_configure (void ); +void avr_uart_send (const char c); +#endif /* __PPC_KERNEL_MPC10X_H */
arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts +1 -0
@@ -70,6 +70,7 @@ pmic@58 { interrupt-parent = <&gpio>; interrupts = <1 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells = <2>; regulators { vdd_bcore1: bcore1 {
arch/s390/include/uapi/asm/dasd.h +2 -0
@@ -78,6 +78,7 @@ typedef struct dasd_information2_t {* 0x040: give access to raw eckd data * 0x080: enable discard support * 0x100: enable autodisable for IFCC errors (default) +* 0x200: enable requeue of all requests on autoquiesce */ #define DASD_FEATURE_READONLY 0x001#define DASD_FEATURE_USEDIAG 0x002
@@ -88,6 +89,7 @@ typedef struct dasd_information2_t {#define DASD_FEATURE_USERAW 0x040#define DASD_FEATURE_DISCARD 0x080#define DASD_FEATURE_PATH_AUTODISABLE 0x100 +#define DASD_FEATURE_REQUEUEQUIESCE 0x200#define DASD_FEATURE_DEFAULT DASD_FEATURE_PATH_AUTODISABLE#define DASD_PARTN_BITS 2
arch/s390/kernel/vdso32/Makefile +1 -1
@@ -22,7 +22,7 @@ KBUILD_AFLAGS_32 += -m31 -s KBUILD_CFLAGS_32 := $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_32 += -m31 -fPIC -shared -fno-common -fno-builtin -LDFLAGS_vdso32.so.dbg += -fPIC -shared -soname=linux-vdso32.so.1 \ +LDFLAGS_vdso32.so.dbg += -shared -soname=linux-vdso32.so.1 \ --hash-style=both --build-id=sha1 -melf_s390 -T $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_32)
arch/s390/kernel/vdso64/Makefile +1 -1
@@ -26,7 +26,7 @@ KBUILD_AFLAGS_64 += -m64 -s KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_64 += -m64 -fPIC -fno-common -fno-builtin -ldflags-y := -fPIC -shared -soname=linux-vdso64.so.1 \ +ldflags-y := -shared -soname=linux-vdso64.so.1 \ --hash-style=both --build-id=sha1 -T $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
arch/s390/kernel/vtime.c +2 -2
@@ -211,13 +211,13 @@ void vtime_flush(struct task_struct *tsk)virt_timer_expire (); steal = S390_lowcore.steal_timer; - avg_steal = S390_lowcore.avg_steal_timer /2 ; + avg_steal = S390_lowcore.avg_steal_timer;if ((s64 ) steal >0 ) { S390_lowcore.steal_timer =0 ;account_steal_time (cputime_to_nsecs (steal)); avg_steal += steal; } - S390_lowcore.avg_steal_timer = avg_steal; + S390_lowcore.avg_steal_timer = avg_steal /2 ; }static u64 vtime_delta (void )
arch/sparc/kernel/leon_pci_grpci1.c +1 -1
@@ -696,7 +696,7 @@ static int grpci1_of_probe(struct platform_device *ofdev)return err; } -static const struct of_device_id grpci1_of_match[]__initconst = { +static const struct of_device_id grpci1_of_match[] = { { .name ="GAISLER_PCIFBRG" , },
arch/sparc/kernel/leon_pci_grpci2.c +1 -1
@@ -887,7 +887,7 @@ static int grpci2_of_probe(struct platform_device *ofdev)return err; } -static const struct of_device_id grpci2_of_match[]__initconst = { +static const struct of_device_id grpci2_of_match[] = { { .name ="GAISLER_GRPCI2" , },
arch/x86/include/asm/vsyscall.h +10 -0
@@ -4,6 +4,7 @@#include <linux/seqlock.h> #include <uapi/asm/vsyscall.h> +#include <asm/page_types.h> #ifdef CONFIG_X86_VSYSCALL_EMULATION extern void map_vsyscall (void );
@@ -24,4 +25,13 @@ static inline bool emulate_vsyscall(unsigned long error_code, }#endif +/* +* The (legacy) vsyscall page is the long page in the kernel portion +* of the address space that has user-accessible permissions. +*/ +static inline bool is_vsyscall_vaddr (unsigned long vaddr) +{ +return unlikely ((vaddr &PAGE_MASK ) ==VSYSCALL_ADDR ); +} +#endif /* _ASM_X86_VSYSCALL_H */
arch/x86/mm/fault.c +0 -9
@@ -787,15 +787,6 @@ show_signal_msg(struct pt_regs *regs, unsigned long error_code,show_opcodes (regs, loglvl); } -/* -* The (legacy) vsyscall page is the long page in the kernel portion -* of the address space that has user-accessible permissions. -*/ -static bool is_vsyscall_vaddr (unsigned long vaddr) -{ -return unlikely ((vaddr &PAGE_MASK ) ==VSYSCALL_ADDR ); -} -static void __bad_area_nosemaphore (struct pt_regs *regs,unsigned long error_code,unsigned long address,u32 pkey,int si_code)
arch/x86/mm/maccess.c +10 -0
@@ -3,6 +3,8 @@#include <linux/uaccess.h> #include <linux/kernel.h> +#include <asm/vsyscall.h> +#ifdef CONFIG_X86_64 bool copy_from_kernel_nofault_allowed (const void *unsafe_src,size_t size) {
@@ -15,6 +17,14 @@ bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)if (vaddr <TASK_SIZE_MAX +PAGE_SIZE )return false; +/* +* Reading from the vsyscall page may cause an unhandled fault in +* certain cases. Though it is at an address above TASK_SIZE_MAX, it is +* usually considered as a user space address. +*/ +if (is_vsyscall_vaddr (vaddr)) +return false; +/* * Allow everything during early boot before 'x86_virt_bits' * is initialized. Needed for instruction decoding in early
arch/x86/tools/relocs.c +8 -0
@@ -599,6 +599,14 @@ static void print_absolute_relocs(void)if (!(sec_applies->shdr.sh_flags &SHF_ALLOC )) {continue ; } +/* +* Do not perform relocations in .notes section; any +* values there are meant for pre-boot consumption (e.g. +* startup_xen). +*/ +if (sec_applies->shdr.sh_type ==SHT_NOTE ) { +continue ; + } sh_symtab = sec_symtab->symtab; sym_strtab = sec_symtab->link->strtab;for (j =0 ; j < sec->shdr.sh_size/sizeof (Elf_Rel); j++) {
arch/x86/xen/smp.c +12 -0
@@ -65,6 +65,8 @@ int xen_smp_intr_init(unsigned int cpu)char *resched_name, *callfunc_name, *debug_name; resched_name =kasprintf (GFP_KERNEL ,"resched%d" , cpu); +if (!resched_name) + goto fail_mem;per_cpu (xen_resched_irq, cpu).name = resched_name; rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR, cpu,
@@ -77,6 +79,8 @@ int xen_smp_intr_init(unsigned int cpu)per_cpu (xen_resched_irq, cpu).irq = rc; callfunc_name =kasprintf (GFP_KERNEL ,"callfunc%d" , cpu); +if (!callfunc_name) + goto fail_mem;per_cpu (xen_callfunc_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR, cpu,
@@ -90,6 +94,9 @@ int xen_smp_intr_init(unsigned int cpu)if (!xen_fifo_events) { debug_name =kasprintf (GFP_KERNEL ,"debug%d" , cpu); +if (!debug_name) + goto fail_mem; +per_cpu (xen_debug_irq, cpu).name = debug_name; rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt,
@@ -101,6 +108,9 @@ int xen_smp_intr_init(unsigned int cpu) } callfunc_name =kasprintf (GFP_KERNEL ,"callfuncsingle%d" , cpu); +if (!callfunc_name) + goto fail_mem; +per_cpu (xen_callfuncsingle_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR, cpu,
@@ -114,6 +124,8 @@ int xen_smp_intr_init(unsigned int cpu)return 0 ; + fail_mem: + rc = -ENOMEM ; fail:xen_smp_intr_free (cpu);return rc;
block/opal_proto.h +1 -0
@@ -66,6 +66,7 @@ enum opal_response_token {#define SHORT_ATOM_BYTE 0xBF#define MEDIUM_ATOM_BYTE 0xDF#define LONG_ATOM_BYTE 0xE3 +#define EMPTY_ATOM_BYTE 0xFF#define OPAL_INVAL_PARAM 12#define OPAL_MANUFACTURED_INACTIVE 0x08
block/sed-opal.c +5 -1
@@ -895,16 +895,20 @@ static int response_parse(const u8 *buf, size_t length, token_length =response_parse_medium (iter, pos); else if (pos[0] <= LONG_ATOM_BYTE) /* long atom */ token_length =response_parse_long (iter, pos); + else if (pos[0] == EMPTY_ATOM_BYTE) /* empty atom */ + token_length =1 ; else /* TOKEN */ token_length =response_parse_token (iter, pos);if (token_length <0 )return token_length; +if (pos[0 ] !=EMPTY_ATOM_BYTE ) + num_entries++; + pos += token_length; total -= token_length; iter++; - num_entries++; } resp->num = num_entries;
drivers/acpi/processor_idle.c +2 -0
@@ -1424,6 +1424,8 @@ int acpi_processor_power_exit(struct acpi_processor *pr) acpi_processor_registered--;if (acpi_processor_registered ==0 )cpuidle_unregister_driver (&acpi_idle_driver); + +kfree (dev); } pr->flags.power_setup_done =0 ;
drivers/acpi/resource.c +33 -0
@@ -546,6 +546,39 @@ static const struct dmi_system_id lg_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "17U70P"), }, }, + { +/* Infinity E15-5A165-BM */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GM5RG1E0009COM"), + }, + }, + { +/* Infinity E15-5A305-1M */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GM5RGEE0016COM"), + }, + }, + { +/* Lunnen Ground 15 / AMD Ryzen 5 5500U */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Lunnen"), + DMI_MATCH(DMI_BOARD_NAME, "LLL5DAW"), + }, + }, + { +/* Lunnen Ground 16 / AMD Ryzen 7 5800U */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Lunnen"), + DMI_MATCH(DMI_BOARD_NAME, "LL6FA"), + }, + }, + { +/* MAIBENBEN X577 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "MAIBENBEN"), + DMI_MATCH(DMI_BOARD_NAME, "X577"), + }, + }, { } };
drivers/acpi/scan.c +2 -6
@@ -315,18 +315,14 @@ static int acpi_scan_device_check(struct acpi_device *adev)* again). */ if (adev->handler) { -dev_warn (&adev->dev,"Already enumerated\n" ); -return -EALREADY ; +dev_dbg (&adev->dev,"Already enumerated\n" ); +return 0 ; } error =acpi_bus_scan (adev->handle);if (error) {dev_warn (&adev->dev,"Namespace scan failure\n" );return error; } -if (!adev->handler) { -dev_warn (&adev->dev,"Enumeration failure\n" ); - error = -ENODEV ; - } }else { error =acpi_scan_device_not_present (adev); }
drivers/base/regmap/regmap.c +1 -1
@@ -1836,7 +1836,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg, map->format.reg_bytes + map->format.pad_bytes + val_len); - else if (map->bus->gather_write) + else if (map->bus && map->bus->gather_write) ret = map->bus->gather_write(map->bus_context, map->work_buf, map->format.reg_bytes + map->format.pad_bytes,
drivers/block/aoe/aoecmd.c +6 -6
@@ -420,13 +420,16 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qurcu_read_lock ();for_each_netdev_rcu (&init_net, ifp) {dev_hold (ifp); -if (!is_aoe_netif (ifp)) - goto cont; +if (!is_aoe_netif (ifp)) { +dev_put (ifp); +continue ; + } skb =new_skb (sizeof *h +sizeof *ch);if (skb ==NULL ) {printk (KERN_INFO "aoe: skb alloc failure\n" ); - goto cont; +dev_put (ifp); +continue ; }skb_put (skb,sizeof *h +sizeof *ch); skb->dev = ifp;
@@ -441,9 +444,6 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu h->major =cpu_to_be16 (aoemajor); h->minor = aoeminor; h->cmd =AOECMD_CFG ; - -cont: -dev_put (ifp); }rcu_read_unlock (); }
drivers/block/aoe/aoenet.c +1 -0
@@ -64,6 +64,7 @@ tx(int id) __must_hold(&txlock)pr_warn ("aoe: packet could not be sent on %s. %s\n" , ifp ? ifp->name :"netif" ,"consider increasing tx_queue_len" ); +dev_put (ifp);spin_lock_irq (&txlock); }return 0 ;
drivers/block/nbd.c +6 -0
@@ -2344,6 +2344,12 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info) } dev_list =nla_nest_start_noflag (reply,NBD_ATTR_DEVICE_LIST ); +if (!dev_list) { +nlmsg_free (reply); + ret = -EMSGSIZE ; + goto out; + } +if (index ==-1 ) { ret =idr_for_each (&nbd_index_idr, &status_cb, reply);if (ret) {
drivers/bluetooth/btqca.c +13 -1
@@ -566,6 +566,9 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate, config.type =ELF_TYPE_PATCH ;snprintf (config.fwname,sizeof (config.fwname),"qca/msbtfw%02x.mbn" , rom_ver); + }else if (soc_type ==QCA_WCN6855 ) { +snprintf (config.fwname,sizeof (config.fwname), +"qca/hpbtfw%02x.tlv" , rom_ver); }else {snprintf (config.fwname,sizeof (config.fwname),"qca/rampatch_%08x.bin" , soc_ver);
@@ -600,6 +603,9 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,else if (soc_type ==QCA_WCN6750 )snprintf (config.fwname,sizeof (config.fwname),"qca/msnv%02x.bin" , rom_ver); +else if (soc_type ==QCA_WCN6855 ) +snprintf (config.fwname,sizeof (config.fwname), +"qca/hpnv%02x.bin" , rom_ver);else snprintf (config.fwname,sizeof (config.fwname),"qca/nvm_%08x.bin" , soc_ver);
@@ -637,11 +643,17 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,return err; } -if (soc_type ==QCA_WCN3991 || soc_type ==QCA_WCN6750 ) { +switch (soc_type) { +case QCA_WCN3991 : +case QCA_WCN6750 : +case QCA_WCN6855 :/* get fw build info */ err =qca_read_fw_build_info (hdev);if (err <0 )return err; +break ; +default : +break ; }bt_dev_info (hdev,"QCA setup on UART is completed" );
drivers/bluetooth/btqca.h +10 -0
@@ -145,6 +145,7 @@ enum qca_btsoc_type {QCA_WCN3991 ,QCA_QCA6390 ,QCA_WCN6750 , + QCA_WCN6855, };#if IS_ENABLED (CONFIG_BT_QCA )
@@ -166,6 +167,10 @@ static inline bool qca_is_wcn6750(enum qca_btsoc_type soc_type) {return soc_type ==QCA_WCN6750 ; } +static inline bool qca_is_wcn6855 (enum qca_btsoc_type soc_type) +{ +return soc_type ==QCA_WCN6855 ; +}#else
@@ -204,6 +209,11 @@ static inline bool qca_is_wcn6750(enum qca_btsoc_type soc_type)return false; } +static inline bool qca_is_wcn6855 (enum qca_btsoc_type soc_type) +{ +return false; +} +static inline int qca_send_pre_shutdown_cmd (struct hci_dev *hdev) {return -EOPNOTSUPP ;
drivers/bluetooth/hci_qca.c +44 -15
155 lines not on this page · raw message
drivers/bus/Kconfig +3 -2
@@ -175,11 +175,12 @@ config SUNXI_RSB config TEGRA_ACONNECT tristate "Tegra ACONNECT Bus Driver" - depends on ARCH_TEGRA_210_SOC + depends on ARCH_TEGRA depends on OF && PM help Driver for the Tegra ACONNECT bus which is used to interface with - the devices inside the Audio Processing Engine (APE) for Tegra210. + the devices inside the Audio Processing Engine (APE) for + Tegra210 and later. config TEGRA_GMI tristate "Tegra Generic Memory Interface bus driver"
drivers/clk/clk.c +3 -0
@@ -425,6 +425,9 @@ static struct clk_core *clk_core_get(struct clk_core *core, u8 p_index)if (IS_ERR (hw))return ERR_CAST (hw); +if (!hw) +return NULL ; +return hw->core; }
drivers/clk/hisilicon/clk-hi3519.c +1 -1
@@ -130,7 +130,7 @@ static void hi3519_clk_unregister(struct platform_device *pdev)of_clk_del_provider (pdev->dev.of_node);hisi_clk_unregister_gate (hi3519_gate_clks, -ARRAY_SIZE (hi3519_mux_clks), +ARRAY_SIZE (hi3519_gate_clks), crg->clk_data); hisi_clk_unregister_mux(hi3519_mux_clks, ARRAY_SIZE(hi3519_mux_clks),
drivers/clk/hisilicon/clk-hi3559a.c +0 -1
@@ -491,7 +491,6 @@ static void hisi_clk_register_pll(struct hi3559av100_pll_clock *clks, clk =clk_register (NULL , &p_clk->hw);if (IS_ERR (clk)) { -devm_kfree (dev, p_clk);dev_err (dev,"%s: failed to register clock %s\n" , __func__, clks[i].name);continue ;
drivers/clk/meson/axg.c +2 -0
@@ -2144,7 +2144,9 @@ static struct clk_regmap *const axg_clk_regmaps[] = { &axg_vclk_input, &axg_vclk2_input, &axg_vclk_div, + &axg_vclk_div1, &axg_vclk2_div, + &axg_vclk2_div1, &axg_vclk_div2_en, &axg_vclk_div4_en, &axg_vclk_div6_en,
drivers/clk/qcom/dispcc-sdm845.c +2 -0
@@ -759,6 +759,8 @@ static struct clk_branch disp_cc_mdss_vsync_clk = {static struct gdsc mdss_gdsc = { .gdscr =0x3000 , + .en_few_wait_val =0x6 , + .en_rest_wait_val =0x5 , .pd = { .name ="mdss_gdsc" , },
drivers/clk/qcom/reset.c +14 -13
@@ -22,8 +22,8 @@ static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id)return 0 ; } -static int -qcom_reset_assert (struct reset_controller_dev *rcdev,unsigned long id) +static int qcom_reset_set_assert (struct reset_controller_dev *rcdev, +unsigned long id,bool assert) {struct qcom_reset_controller *rst;const struct qcom_reset_map *map;
@@ -33,21 +33,22 @@ qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) map = &rst->reset_map[id]; mask = map->bitmask ? map->bitmask :BIT (map->bit); -return regmap_update_bits (rst->regmap, map->reg, mask, mask); +regmap_update_bits (rst->regmap, map->reg, mask, assert ? mask :0 ); + +/* Read back the register to ensure write completion, ignore the value */ +regmap_read (rst->regmap, map->reg, &mask); + +return 0 ; } -static int -qcom_reset_deassert (struct reset_controller_dev *rcdev,unsigned long id) +static int qcom_reset_assert (struct reset_controller_dev *rcdev,unsigned long id) { -struct qcom_reset_controller *rst; -const struct qcom_reset_map *map; -u32 mask; - - rst =to_qcom_reset_controller (rcdev); - map = &rst->reset_map[id]; - mask = map->bitmask ? map->bitmask :BIT (map->bit); +return qcom_reset_set_assert (rcdev, id, true); +} -return regmap_update_bits (rst->regmap, map->reg, mask,0 ); +static int qcom_reset_deassert (struct reset_controller_dev *rcdev,unsigned long id) +{ +return qcom_reset_set_assert (rcdev, id, false); }const struct reset_control_ops qcom_reset_ops = {
drivers/clk/zynq/clkc.c +3 -5
@@ -42,6 +42,7 @@ static void __iomem *zynq_clkc_base;#define SLCR_SWDT_CLK_SEL (zynq_clkc_base + 0x204)#define NUM_MIO_PINS 54 +#define CLK_NAME_LEN 16#define DBG_CLK_CTRL_CLKACT_TRC BIT(0)#define DBG_CLK_CTRL_CPU_1XCLKACT BIT(1)
@@ -215,7 +216,7 @@ static void __init zynq_clk_setup(struct device_node *np)int i;u32 tmp;int ret; -char *clk_name; +char clk_name[CLK_NAME_LEN ];unsigned int fclk_enable =0 ;const char *clk_output_name[clk_max];const char *cpu_parents[4 ];
@@ -425,12 +426,10 @@ static void __init zynq_clk_setup(struct device_node *np)"gem1_emio_mux" ,CLK_SET_RATE_PARENT , SLCR_GEM1_CLK_CTRL, 0, 0, &gem1clk_lock); - tmp =strlen ("mio_clk_00x" ); - clk_name =kmalloc (tmp,GFP_KERNEL );for (i =0 ; i <NUM_MIO_PINS ; i++) {int idx; -snprintf (clk_name, tmp,"mio_clk_%2.2d" , i); +snprintf (clk_name,CLK_NAME_LEN ,"mio_clk_%2.2d" , i); idx =of_property_match_string (np,"clock-names" , clk_name);if (idx >=0 ) can_mio_mux_parents[i] = of_clk_get_parent_name(np,
@@ -438,7 +437,6 @@ static void __init zynq_clk_setup(struct device_node *np)else can_mio_mux_parents[i] = dummy_nm; } -kfree (clk_name);clk_register_mux (NULL ,"can_mux" , periph_parents,4 ,CLK_SET_RATE_NO_REPARENT ,SLCR_CAN_CLK_CTRL ,4 ,2 ,0 , &canclk_lock);
drivers/comedi/drivers/comedi_test.c +26 -4
@@ -87,6 +87,8 @@ struct waveform_private {struct comedi_device *dev;/* parent comedi device */ u64 ao_last_scan_time;/* time of previous AO scan in usec */ unsigned int ao_scan_period;/* AO scan period in usec */ + bool ai_timer_enable:1; /* should AI timer be running? */ + bool ao_timer_enable:1; /* should AO timer be running? */unsigned short ao_loopbacks[N_CHANS ]; };
@@ -236,8 +238,12 @@ static void waveform_ai_timer(struct timer_list *t) time_increment = devpriv->ai_convert_time - now; else time_increment =1 ; -mod_timer (&devpriv->ai_timer, - jiffies +usecs_to_jiffies (time_increment)); +spin_lock (&dev->spinlock); +if (devpriv->ai_timer_enable) { +mod_timer (&devpriv->ai_timer, + jiffies +usecs_to_jiffies (time_increment)); + } +spin_unlock (&dev->spinlock); } overrun:
@@ -393,9 +399,12 @@ static int waveform_ai_cmd(struct comedi_device *dev,* Seem to need an extra jiffy here, otherwise timer expires slightly * early! */ +spin_lock_bh (&dev->spinlock); + devpriv->ai_timer_enable = true; devpriv->ai_timer.expires = jiffies +usecs_to_jiffies (devpriv->ai_convert_period) +1 ;add_timer (&devpriv->ai_timer); +spin_unlock_bh (&dev->spinlock);return 0 ; }
@@ -404,6 +413,9 @@ static int waveform_ai_cancel(struct comedi_device *dev, {struct waveform_private *devpriv = dev->private; +spin_lock_bh (&dev->spinlock); + devpriv->ai_timer_enable = false; +spin_unlock_bh (&dev->spinlock);if (in_softirq ()) {/* Assume we were called from the timer routine itself. */ del_timer (&devpriv->ai_timer);
@@ -495,8 +507,12 @@ static void waveform_ao_timer(struct timer_list *t)unsigned int time_inc = devpriv->ao_last_scan_time + devpriv->ao_scan_period - now; -mod_timer (&devpriv->ao_timer, - jiffies +usecs_to_jiffies (time_inc)); +spin_lock (&dev->spinlock); +if (devpriv->ao_timer_enable) { +mod_timer (&devpriv->ao_timer, + jiffies +usecs_to_jiffies (time_inc)); + } +spin_unlock (&dev->spinlock); } underrun:
@@ -517,9 +533,12 @@ static int waveform_ao_inttrig_start(struct comedi_device *dev, async->inttrig =NULL ; devpriv->ao_last_scan_time =ktime_to_us (ktime_get ()); +spin_lock_bh (&dev->spinlock); + devpriv->ao_timer_enable = true; devpriv->ao_timer.expires = jiffies +usecs_to_jiffies (devpriv->ao_scan_period);add_timer (&devpriv->ao_timer); +spin_unlock_bh (&dev->spinlock);return 1 ; }
@@ -604,6 +623,9 @@ static int waveform_ao_cancel(struct comedi_device *dev,struct waveform_private *devpriv = dev->private; s->async->inttrig =NULL ; +spin_lock_bh (&dev->spinlock); + devpriv->ao_timer_enable = false; +spin_unlock_bh (&dev->spinlock);if (in_softirq ()) {/* Assume we were called from the timer routine itself. */ del_timer (&devpriv->ao_timer);
drivers/cpufreq/armada-37xx-cpufreq.c +1 -3
@@ -14,10 +14,8 @@#include <linux/interrupt.h> #include <linux/io.h> #include <linux/mfd/syscon.h> +#include <linux/mod_devicetable.h> #include <linux/module.h> -#include <linux/of_address.h> -#include <linux/of_device.h> -#include <linux/of_irq.h> #include <linux/platform_device.h> #include <linux/pm_opp.h> #include <linux/regmap.h>
drivers/cpufreq/brcmstb-avs-cpufreq.c +2 -0
@@ -481,6 +481,8 @@ static bool brcm_avs_is_firmware_loaded(struct private_data *priv)static unsigned int brcm_avs_cpufreq_get (unsigned int cpu) {struct cpufreq_policy *policy =cpufreq_cpu_get (cpu); +if (!policy) +return 0 ;struct private_data *priv = policy->driver_data;cpufreq_cpu_put (policy);
drivers/cpufreq/mediatek-cpufreq-hw.c +20 -2
@@ -10,8 +10,10 @@#include <linux/iopoll.h> #include <linux/kernel.h> #include <linux/module.h> -#include <linux/of_address.h> +#include <linux/of.h> #include <linux/of_platform.h> +#include <linux/platform_device.h> +#include <linux/regulator/consumer.h> #include <linux/slab.h> #define LUT_MAX_ENTRIES 32U
@@ -267,7 +269,23 @@ static struct cpufreq_driver cpufreq_mtk_hw_driver = {static int mtk_cpufreq_hw_driver_probe (struct platform_device *pdev) {const void *data; -int ret; +int ret, cpu; +struct device *cpu_dev; +struct regulator *cpu_reg; + +/* Make sure that all CPU supplies are available before proceeding. */ +for_each_possible_cpu (cpu) { + cpu_dev =get_cpu_device (cpu); +if (!cpu_dev) +return dev_err_probe (&pdev->dev, -EPROBE_DEFER , +"Failed to get cpu%d device\n" , cpu); + + cpu_reg =devm_regulator_get (cpu_dev,"cpu" ); +if (IS_ERR (cpu_reg)) +return dev_err_probe (&pdev->dev,PTR_ERR (cpu_reg), +"CPU%d regulator get failed\n" , cpu); + } + data =of_device_get_match_data (&pdev->dev);if (!data)
drivers/cpufreq/ppc_cbe_cpufreq.c +1 -1
@@ -9,7 +9,7 @@#include <linux/cpufreq.h> #include <linux/module.h> -#include <linux/of_platform.h> +#include <linux/of.h> #include <asm/machdep.h> #include <asm/prom.h>
drivers/cpufreq/ppc_cbe_cpufreq_pmi.c +0 -1
@@ -11,7 +11,6 @@#include <linux/types.h> #include <linux/timer.h> #include <linux/init.h> -#include <linux/of_platform.h> #include <linux/pm_qos.h> #include <asm/processor.h>
drivers/cpufreq/qcom-cpufreq-nvmem.c +0 -1
@@ -22,7 +22,6 @@#include <linux/module.h> #include <linux/nvmem-consumer.h> #include <linux/of.h> -#include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/pm_domain.h> #include <linux/pm_opp.h>
drivers/cpufreq/scpi-cpufreq.c +1 -1
@@ -22,7 +22,7 @@#include <linux/cpumask.h> #include <linux/export.h> #include <linux/module.h> -#include <linux/of_platform.h> +#include <linux/platform_device.h> #include <linux/pm_opp.h> #include <linux/scpi_protocol.h> #include <linux/slab.h>
drivers/cpufreq/sti-cpufreq.c +1 -1
@@ -13,7 +13,7 @@#include <linux/mfd/syscon.h> #include <linux/module.h> #include <linux/of.h> -#include <linux/of_platform.h> +#include <linux/platform_device.h> #include <linux/pm_opp.h> #include <linux/regmap.h>
drivers/cpufreq/ti-cpufreq.c +1 -1
@@ -12,7 +12,7 @@#include <linux/module.h> #include <linux/init.h> #include <linux/of.h> -#include <linux/of_platform.h> +#include <linux/platform_device.h> #include <linux/pm_opp.h> #include <linux/regmap.h> #include <linux/slab.h>
drivers/cpufreq/vexpress-spc-cpufreq.c +0 -1
@@ -18,7 +18,6 @@#include <linux/device.h> #include <linux/module.h> #include <linux/mutex.h> -#include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_opp.h> #include <linux/slab.h>
drivers/crypto/xilinx/zynqmp-aes-gcm.c +3 -0
@@ -231,7 +231,10 @@ static int zynqmp_handle_aes_req(struct crypto_engine *engine, err =zynqmp_aes_aead_cipher (areq); } +local_bh_disable ();crypto_finalize_aead_request (engine, areq, err); +local_bh_enable (); +return 0 ; }
drivers/dma/Kconfig +7 -7
@@ -645,16 +645,16 @@ config TEGRA20_APB_DMA config TEGRA210_ADMA tristate "NVIDIA Tegra210 ADMA support" - depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST) + depends on (ARCH_TEGRA || COMPILE_TEST) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help - Support for the NVIDIA Tegra210 ADMA controller driver. The - DMA controller has multiple DMA channels and is used to service - various audio clients in the Tegra210 audio processing engine - (APE). This DMA controller transfers data from memory to - peripheral and vice versa. It does not support memory to - memory data transfer. + Support for the NVIDIA Tegra210/Tegra186/Tegra194/Tegra234 ADMA + controller driver. The DMA controller has multiple DMA channels + and is used to service various audio clients in the Tegra210 + audio processing engine (APE). This DMA controller transfers + data from memory to peripheral and vice versa. It does not + support memory to memory data transfer. config TIMB_DMA tristate "Timberdale FPGA DMA support"
drivers/firewire/core-card.c +13 -1
@@ -500,7 +500,19 @@ static void bm_work(struct work_struct *work)fw_notice (card,"phy config: new root=%x, gap_count=%d\n" , new_root_id, gap_count);fw_send_phy_config (card, new_root_id, generation, gap_count); -reset_bus (card, true); +/* +* Where possible, use a short bus reset to minimize +* disruption to isochronous transfers. But in the event +* of a gap count inconsistency, use a long bus reset. +* +* As noted in 1394a 8.4.6.2, nodes on a mixed 1394/1394a bus +* may set different gap counts after a bus reset. On a mixed +* 1394/1394a bus, a short bus reset can get doubled. Some +* nodes may treat the double reset as one bus reset and others +* may treat it as two, causing a gap count inconsistency +* again. Using a long bus reset prevents this. +*/ +reset_bus (card, card->gap_count !=0 );/* Will allocate broadcast channel after the reset. */ goto out; }
drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c +2 -0
@@ -169,6 +169,7 @@ static int amdgpu_gtt_mgr_new(struct ttm_resource_manager *man,return 0 ; err_free: +ttm_resource_fini (man, &node->base.base);kfree (node); err_out:
@@ -200,6 +201,7 @@ static void amdgpu_gtt_mgr_del(struct ttm_resource_manager *man,if (!(res->placement &TTM_PL_FLAG_TEMPORARY ))atomic64_sub (res->num_pages, &mgr->used); +ttm_resource_fini (man, res);kfree (node); }
drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c +1 -0
@@ -95,6 +95,7 @@ static void amdgpu_preempt_mgr_del(struct ttm_resource_manager *man,struct amdgpu_preempt_mgr *mgr =to_preempt_mgr (man);atomic64_sub (res->num_pages, &mgr->used); +ttm_resource_fini (man, res);kfree (res); }
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +2 -0
@@ -476,6 +476,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,while (i--)drm_mm_remove_node (&node->mm_nodes[i]);spin_unlock (&mgr->lock); +ttm_resource_fini (man, &node->base);kvfree (node); error_sub:
@@ -515,6 +516,7 @@ static void amdgpu_vram_mgr_del(struct ttm_resource_manager *man,atomic64_sub (usage, &mgr->usage);atomic64_sub (vis_usage, &mgr->vis_usage); +ttm_resource_fini (man, res);kvfree (node); }
drivers/gpu/drm/amd/amdgpu/atom.c +1 -1
@@ -311,7 +311,7 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr,DEBUG ("IMM 0x%02X\n" , val);return val; } -return 0 ; +break ;case ATOM_ARG_PLL : idx =U8 (*ptr); (*ptr)++;
drivers/gpu/drm/amd/amdgpu/soc15.c +25 -20
60 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +1 -1
@@ -1304,7 +1304,7 @@ static ssize_t dp_dsc_clock_en_read(struct file *f, char __user *buf,const uint32_t rd_buf_size =10 ;struct pipe_ctx *pipe_ctx;ssize_t result =0 ; -int i, r, str_len =30 ; +int i, r, str_len =10 ; rd_buf =kcalloc (rd_buf_size,sizeof (char ),GFP_KERNEL );
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +5 -2
@@ -1745,6 +1745,9 @@ bool dcn10_set_output_transfer_func(struct dc *dc, struct pipe_ctx *pipe_ctx, {struct dpp *dpp = pipe_ctx->plane_res.dpp; +if (!stream) +return false; +if (dpp ==NULL )return false;
@@ -1767,8 +1770,8 @@ bool dcn10_set_output_transfer_func(struct dc *dc, struct pipe_ctx *pipe_ctx, }else dpp->funcs->dpp_program_regamma_pwl (dpp,NULL ,OPP_REGAMMA_BYPASS ); -if (stream !=NULL && stream->ctx !=NULL && - stream->out_transfer_func !=NULL ) { +if (stream->ctx && + stream->out_transfer_func) {log_tf (stream->ctx, stream->out_transfer_func, dpp->regamma_params.hw_points_num);
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c +2 -0
@@ -109,6 +109,7 @@ static int i915_ttm_buddy_man_alloc(struct ttm_resource_manager *man,i915_buddy_free_list (mm, &bman_res->blocks);mutex_unlock (&bman->lock); err_free_res: +ttm_resource_fini (man, &bman_res->base);kfree (bman_res);return err; }
@@ -123,6 +124,7 @@ static void i915_ttm_buddy_man_free(struct ttm_resource_manager *man,i915_buddy_free_list (&bman->mm, &bman_res->blocks);mutex_unlock (&bman->lock); +ttm_resource_fini (man, res);kfree (bman_res); }
drivers/gpu/drm/lima/lima_gem.c +14 -9
@@ -74,29 +74,34 @@ int lima_heap_alloc(struct lima_bo *bo, struct lima_vm *vm) }else { bo->base.sgt =kmalloc (sizeof (*bo->base.sgt),GFP_KERNEL );if (!bo->base.sgt) { -sg_free_table (&sgt); -return -ENOMEM ; + ret = -ENOMEM ; + goto err_out0; } } ret =dma_map_sgtable (dev, &sgt,DMA_BIDIRECTIONAL ,0 ); -if (ret) { -sg_free_table (&sgt); -kfree (bo->base.sgt); - bo->base.sgt =NULL ; -return ret; - } +if (ret) + goto err_out1; *bo->base.sgt = sgt;if (vm) { ret =lima_vm_map_bo (vm, bo, old_size >>PAGE_SHIFT );if (ret) -return ret; + goto err_out2; } bo->heap_size = new_size;return 0 ; + +err_out2: +dma_unmap_sgtable (dev, &sgt,DMA_BIDIRECTIONAL ,0 ); +err_out1: +kfree (bo->base.sgt); + bo->base.sgt =NULL ; +err_out0: +sg_free_table (&sgt); +return ret; } int lima_gem_create_handle(struct drm_device *dev, struct drm_file *file,
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +7 -5
@@ -92,11 +92,13 @@ static void mtk_drm_crtc_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)struct drm_crtc *crtc = &mtk_crtc->base;unsigned long flags; -spin_lock_irqsave (&crtc->dev->event_lock, flags); -drm_crtc_send_vblank_event (crtc, mtk_crtc->event); -drm_crtc_vblank_put (crtc); - mtk_crtc->event =NULL ; -spin_unlock_irqrestore (&crtc->dev->event_lock, flags); +if (mtk_crtc->event) { +spin_lock_irqsave (&crtc->dev->event_lock, flags); +drm_crtc_send_vblank_event (crtc, mtk_crtc->event); +drm_crtc_vblank_put (crtc); + mtk_crtc->event =NULL ; +spin_unlock_irqrestore (&crtc->dev->event_lock, flags); + } }static void mtk_drm_finish_page_flip (struct mtk_drm_crtc *mtk_crtc)
drivers/gpu/drm/mediatek/mtk_dsi.c +5 -5
@@ -70,8 +70,8 @@#define DSI_PS_WC 0x3fff#define DSI_PS_SEL (3 << 16)#define PACKED_PS_16BIT_RGB565 (0 << 16) -#define LOOSELY_PS_18BIT_RGB666 (1 << 16) -#define PACKED_PS_18BIT_RGB666 (2 << 16) +#define PACKED_PS_18BIT_RGB666 (1 << 16) +#define LOOSELY_PS_24BIT_RGB666 (2 << 16)#define PACKED_PS_24BIT_RGB888 (3 << 16)#define DSI_VSA_NL 0x20
@@ -366,10 +366,10 @@ static void mtk_dsi_ps_control_vact(struct mtk_dsi *dsi) ps_bpp_mode |=PACKED_PS_24BIT_RGB888 ;break ;case MIPI_DSI_FMT_RGB666 : - ps_bpp_mode |=PACKED_PS_18BIT_RGB666 ; + ps_bpp_mode |=LOOSELY_PS_24BIT_RGB666 ;break ;case MIPI_DSI_FMT_RGB666_PACKED : - ps_bpp_mode |=LOOSELY_PS_18BIT_RGB666 ; + ps_bpp_mode |=PACKED_PS_18BIT_RGB666 ;break ;case MIPI_DSI_FMT_RGB565 : ps_bpp_mode |=PACKED_PS_16BIT_RGB565 ;
@@ -423,7 +423,7 @@ static void mtk_dsi_ps_control(struct mtk_dsi *dsi) dsi_tmp_buf_bpp =3 ;break ;case MIPI_DSI_FMT_RGB666 : - tmp_reg =LOOSELY_PS_18BIT_RGB666 ; + tmp_reg =LOOSELY_PS_24BIT_RGB666 ; dsi_tmp_buf_bpp =3 ;break ;case MIPI_DSI_FMT_RGB666_PACKED :
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +4 -2
@@ -267,12 +267,14 @@ static void dpu_encoder_phys_vid_setup_timing_engine( mode.htotal >>=1 ; mode.hsync_start >>=1 ; mode.hsync_end >>=1 ; + mode.hskew >>=1 ;DPU_DEBUG_VIDENC (phys_enc, -"split_role %d, halve horizontal %d %d %d %d\n" , +"split_role %d, halve horizontal %d %d %d %d %d\n" , phys_enc->split_role, mode.hdisplay, mode.htotal, - mode.hsync_start, mode.hsync_end); + mode.hsync_start, mode.hsync_end, + mode.hskew); }drm_mode_to_intf_timing_params (phys_enc, &mode, &timing_params);
drivers/gpu/drm/nouveau/nouveau_bo.c +2 -0
@@ -1186,6 +1186,8 @@ nouveau_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *reg)drm_vma_node_unmap (&nvbo->bo.base.vma_node, bdev->dev_mapping);nouveau_ttm_io_mem_free_locked (drm, nvbo->bo.resource); + nvbo->bo.resource->bus.offset =0 ; + nvbo->bo.resource->bus.addr =NULL ; goto retry; }
drivers/gpu/drm/nouveau/nouveau_mem.c +2 -1
@@ -162,11 +162,12 @@ nouveau_mem_vram(struct ttm_resource *reg, bool contig, u8 page) }void -nouveau_mem_del (struct ttm_resource *reg) +nouveau_mem_del (struct ttm_resource_manager *man,struct ttm_resource *reg) {struct nouveau_mem *mem =nouveau_mem (reg);nouveau_mem_fini (mem); +ttm_resource_fini (man, reg);kfree (mem); }
drivers/gpu/drm/nouveau/nouveau_mem.h +2 -1
@@ -23,7 +23,8 @@ nouveau_mem(struct ttm_resource *reg)int nouveau_mem_new (struct nouveau_cli *,u8 kind,u8 comp,struct ttm_resource **); -void nouveau_mem_del (struct ttm_resource *); +void nouveau_mem_del (struct ttm_resource_manager *man, +struct ttm_resource *);int nouveau_mem_vram (struct ttm_resource *,bool contig,u8 page);int nouveau_mem_host (struct ttm_resource *,struct ttm_tt *);void nouveau_mem_fini (struct nouveau_mem *);
drivers/gpu/drm/nouveau/nouveau_ttm.c +5 -4
@@ -36,9 +36,10 @@#include <core/tegra.h> static void -nouveau_manager_del (struct ttm_resource_manager *man,struct ttm_resource *reg) +nouveau_manager_del (struct ttm_resource_manager *man, +struct ttm_resource *reg) { -nouveau_mem_del (reg); +nouveau_mem_del (man, reg); } static int
@@ -62,7 +63,7 @@ nouveau_vram_manager_new(struct ttm_resource_manager *man, ret =nouveau_mem_vram (*res, nvbo->contig, nvbo->page);if (ret) { -nouveau_mem_del (*res); +nouveau_mem_del (man, *res);return ret; }
@@ -118,7 +119,7 @@ nv04_gart_manager_new(struct ttm_resource_manager *man, ret =nvif_vmm_get (&mem->cli->vmm.vmm,PTES , false,12 ,0 , (long )(*res)->num_pages <<PAGE_SHIFT , &mem->vma[0 ]);if (ret) { -nouveau_mem_del (*res); +nouveau_mem_del (man, *res);return ret; }
drivers/gpu/drm/radeon/ni.c +1 -1
@@ -813,7 +813,7 @@ int ni_init_microcode(struct radeon_device *rdev) err =0 ; }else if (rdev->smc_fw->size != smc_req_size) {pr_err ("ni_mc: Bogus length %zu in firmware \"%s\"\n" , - rdev->mc_fw->size, fw_name); + rdev->smc_fw->size, fw_name); err = -EINVAL ; } }
drivers/gpu/drm/rockchip/inno_hdmi.c +2 -2
@@ -402,7 +402,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi,hdmi_writeb (hdmi,HDMI_VIDEO_EXT_HBLANK_L , value &0xFF );hdmi_writeb (hdmi,HDMI_VIDEO_EXT_HBLANK_H , (value >>8 ) &0xFF ); - value = mode->hsync_start - mode->hdisplay; + value = mode->htotal - mode->hsync_start;hdmi_writeb (hdmi,HDMI_VIDEO_EXT_HDELAY_L , value &0xFF );hdmi_writeb (hdmi,HDMI_VIDEO_EXT_HDELAY_H , (value >>8 ) &0xFF );
@@ -417,7 +417,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi, value = mode->vtotal - mode->vdisplay;hdmi_writeb (hdmi,HDMI_VIDEO_EXT_VBLANK , value &0xFF ); - value = mode->vsync_start - mode->vdisplay; + value = mode->vtotal - mode->vsync_start;hdmi_writeb (hdmi,HDMI_VIDEO_EXT_VDELAY , value &0xFF ); value = mode->vsync_end - mode->vsync_start;
drivers/gpu/drm/rockchip/rockchip_lvds.c +1 -2
@@ -572,8 +572,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master, ret = -EINVAL ; goto err_put_port; }else if (ret) { -DRM_DEV_ERROR (dev,"failed to find panel and bridge node\n" ); - ret = -EPROBE_DEFER ; +dev_err_probe (dev, ret,"failed to find panel and bridge node\n" ); goto err_put_port; }if (lvds->panel)
drivers/gpu/drm/tegra/Kconfig +1 -0
@@ -5,6 +5,7 @@ config DRM_TEGRA depends on COMMON_CLK depends on DRM depends on OF + select DRM_DP_AUX_BUS select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL
drivers/gpu/drm/tegra/dc.c +17 -10
@@ -1762,10 +1762,9 @@ int tegra_dc_state_setup_clock(struct tegra_dc *dc,return 0 ; } -static void tegra_dc_commit_state (struct tegra_dc *dc, -struct tegra_dc_state *state) +static void tegra_dc_set_clock_rate (struct tegra_dc *dc, +struct tegra_dc_state *state) { -u32 value;int err; err =clk_set_parent (dc->clk, state->clk);
@@ -1796,11 +1795,6 @@ static void tegra_dc_commit_state(struct tegra_dc *dc,DRM_DEBUG_KMS ("rate: %lu, div: %u\n" ,clk_get_rate (dc->clk), state->div);DRM_DEBUG_KMS ("pclk: %lu\n" , state->pclk); - -if (!dc->soc->has_nvdisplay) { - value =SHIFT_CLK_DIVIDER (state->div) |PIXEL_CLK_DIVIDER_PCD1 ; -tegra_dc_writel (dc, value,DC_DISP_DISP_CLOCK_CONTROL ); - } }static void tegra_dc_stop (struct tegra_dc *dc)
@@ -2002,6 +1996,9 @@ static void tegra_crtc_atomic_enable(struct drm_crtc *crtc,u32 value;int err; +/* apply PLL changes */ +tegra_dc_set_clock_rate (dc, crtc_state); + err =host1x_client_resume (&dc->client);if (err <0 ) {dev_err (dc->dev,"failed to resume: %d\n" , err);
@@ -2076,8 +2073,11 @@ static void tegra_crtc_atomic_enable(struct drm_crtc *crtc,else tegra_dc_writel (dc,0 ,DC_DISP_BORDER_COLOR ); -/* apply PLL and pixel clock changes */ -tegra_dc_commit_state (dc, crtc_state); +/* apply pixel clock changes */ +if (!dc->soc->has_nvdisplay) { + value =SHIFT_CLK_DIVIDER (crtc_state->div) |PIXEL_CLK_DIVIDER_PCD1 ; +tegra_dc_writel (dc, value,DC_DISP_DISP_CLOCK_CONTROL ); + }/* program display mode */ tegra_dc_set_timings (dc, mode);
@@ -2685,6 +2685,7 @@ static const struct tegra_dc_soc_info tegra20_dc_soc_info = { .has_win_b_vfilter_mem_client = true, .has_win_c_without_vert_filter = true, .plane_tiled_memory_bandwidth_x2 = false, + .has_pll_d2_out0 = false, };static const struct tegra_dc_soc_info tegra30_dc_soc_info = {
@@ -2707,6 +2708,7 @@ static const struct tegra_dc_soc_info tegra30_dc_soc_info = { .has_win_b_vfilter_mem_client = true, .has_win_c_without_vert_filter = false, .plane_tiled_memory_bandwidth_x2 = true, + .has_pll_d2_out0 = true, };static const struct tegra_dc_soc_info tegra114_dc_soc_info = {
@@ -2729,6 +2731,7 @@ static const struct tegra_dc_soc_info tegra114_dc_soc_info = { .has_win_b_vfilter_mem_client = false, .has_win_c_without_vert_filter = false, .plane_tiled_memory_bandwidth_x2 = true, + .has_pll_d2_out0 = true, };static const struct tegra_dc_soc_info tegra124_dc_soc_info = {
@@ -2751,6 +2754,7 @@ static const struct tegra_dc_soc_info tegra124_dc_soc_info = { .has_win_b_vfilter_mem_client = false, .has_win_c_without_vert_filter = false, .plane_tiled_memory_bandwidth_x2 = false, + .has_pll_d2_out0 = true, };static const struct tegra_dc_soc_info tegra210_dc_soc_info = {
@@ -2773,6 +2777,7 @@ static const struct tegra_dc_soc_info tegra210_dc_soc_info = { .has_win_b_vfilter_mem_client = false, .has_win_c_without_vert_filter = false, .plane_tiled_memory_bandwidth_x2 = false, + .has_pll_d2_out0 = true, };static const struct tegra_windowgroup_soc tegra186_dc_wgrps[] = {
@@ -2823,6 +2828,7 @@ static const struct tegra_dc_soc_info tegra186_dc_soc_info = { .wgrps = tegra186_dc_wgrps, .num_wgrps = ARRAY_SIZE(tegra186_dc_wgrps), .plane_tiled_memory_bandwidth_x2 = false, + .has_pll_d2_out0 = false, };static const struct tegra_windowgroup_soc tegra194_dc_wgrps[] = {
@@ -2873,6 +2879,7 @@ static const struct tegra_dc_soc_info tegra194_dc_soc_info = { .wgrps = tegra194_dc_wgrps, .num_wgrps = ARRAY_SIZE(tegra194_dc_wgrps), .plane_tiled_memory_bandwidth_x2 = false, + .has_pll_d2_out0 = false, };static const struct of_device_id tegra_dc_of_match[] = {
drivers/gpu/drm/tegra/dc.h +1 -0
@@ -76,6 +76,7 @@ struct tegra_dc_soc_info {bool has_win_b_vfilter_mem_client;bool has_win_c_without_vert_filter;bool plane_tiled_memory_bandwidth_x2; +bool has_pll_d2_out0; };struct tegra_dc {
drivers/gpu/drm/tegra/dpaux.c +16 -3
@@ -19,6 +19,7 @@#include <linux/workqueue.h> #include <drm/drm_dp_helper.h> +#include <drm/drm_dp_aux_bus.h> #include <drm/drm_panel.h> #include "dp.h"
@@ -524,7 +525,7 @@ static int tegra_dpaux_probe(struct platform_device *pdev)if (err <0 ) {dev_err (dpaux->dev,"failed to request IRQ#%u: %d\n" , dpaux->irq, err); -return err; + goto err_pm_disable; }disable_irq (dpaux->irq);
@@ -544,7 +545,7 @@ static int tegra_dpaux_probe(struct platform_device *pdev)*/ err =tegra_dpaux_pad_config (dpaux,DPAUX_PADCTL_FUNC_I2C );if (err <0 ) -return err; + goto err_pm_disable;#ifdef CONFIG_GENERIC_PINCONF dpaux->desc.name =dev_name (&pdev->dev);
@@ -557,7 +558,8 @@ static int tegra_dpaux_probe(struct platform_device *pdev) dpaux->pinctrl =devm_pinctrl_register (&pdev->dev, &dpaux->desc, dpaux);if (IS_ERR (dpaux->pinctrl)) {dev_err (&pdev->dev,"failed to register pincontrol\n" ); -return PTR_ERR (dpaux->pinctrl); + err =PTR_ERR (dpaux->pinctrl); + goto err_pm_disable; }#endif /* enable and clear all interrupts */
@@ -570,7 +572,18 @@ static int tegra_dpaux_probe(struct platform_device *pdev)list_add_tail (&dpaux->list, &dpaux_list);mutex_unlock (&dpaux_lock); + err =devm_of_dp_aux_populate_ep_devices (&dpaux->aux); +if (err <0 ) { +dev_err (dpaux->dev,"failed to populate AUX bus: %d\n" , err); + goto err_pm_disable; + } +return 0 ; + +err_pm_disable: +pm_runtime_put_sync (&pdev->dev); +pm_runtime_disable (&pdev->dev); +return err; }static int tegra_dpaux_remove (struct platform_device *pdev)
drivers/gpu/drm/tegra/dsi.c +31 -16
97 lines not on this page · raw message
drivers/gpu/drm/tegra/fb.c +1 -0
@@ -165,6 +165,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,if (gem->size < size) { err = -EINVAL ; +drm_gem_object_put (gem); goto unreference; }
drivers/gpu/drm/tegra/output.c +12 -4
@@ -139,8 +139,10 @@ int tegra_output_probe(struct tegra_output *output)GPIOD_IN , "HDMI hotplug detect");if (IS_ERR (output->hpd_gpio)) { -if (PTR_ERR (output->hpd_gpio) != -ENOENT ) -return PTR_ERR (output->hpd_gpio); +if (PTR_ERR (output->hpd_gpio) != -ENOENT ) { + err =PTR_ERR (output->hpd_gpio); + goto put_i2c; + } output->hpd_gpio =NULL ; }
@@ -149,7 +151,7 @@ int tegra_output_probe(struct tegra_output *output) err =gpiod_to_irq (output->hpd_gpio);if (err <0 ) {dev_err (output->dev,"gpiod_to_irq(): %d\n" , err); -return err; + goto put_i2c; } output->hpd_irq = err;
@@ -162,7 +164,7 @@ int tegra_output_probe(struct tegra_output *output)if (err <0 ) {dev_err (output->dev,"failed to request IRQ#%u: %d\n" , output->hpd_irq, err); -return err; + goto put_i2c; } output->connector.polled =DRM_CONNECTOR_POLL_HPD ;
@@ -176,6 +178,12 @@ int tegra_output_probe(struct tegra_output *output) }return 0 ; + +put_i2c: +if (output->ddc) +i2c_put_adapter (output->ddc); + +return err; }void tegra_output_remove (struct tegra_output *output)
drivers/gpu/drm/tegra/rgb.c +58 -5
109 lines not on this page · raw message
drivers/gpu/drm/tidss/tidss_plane.c +1 -1
@@ -210,7 +210,7 @@ struct tidss_plane *tidss_plane_create(struct tidss_device *tidss,drm_plane_helper_add (&tplane->plane, &tidss_plane_helper_funcs); -drm_plane_create_zpos_property (&tplane->plane, hw_plane_id,0 , +drm_plane_create_zpos_property (&tplane->plane, tidss->num_planes,0 , num_planes -1 ); ret = drm_plane_create_color_properties(&tplane->plane,
drivers/gpu/drm/ttm/ttm_range_manager.c +2 -0
@@ -89,6 +89,7 @@ static int ttm_range_man_alloc(struct ttm_resource_manager *man,spin_unlock (&rman->lock);if (unlikely (ret)) { +ttm_resource_fini (man, *res);kfree (node);return ret; }
@@ -108,6 +109,7 @@ static void ttm_range_man_free(struct ttm_resource_manager *man,drm_mm_remove_node (&node->mm_nodes[0 ]);spin_unlock (&rman->lock); +ttm_resource_fini (man, res);kfree (node); }
drivers/gpu/drm/ttm/ttm_resource.c +23 -0
@@ -29,6 +29,14 @@#include <drm/ttm/ttm_resource.h> #include <drm/ttm/ttm_bo_driver.h> +/** +* ttm_resource_init - resource object constructure +* @bo: buffer object this resources is allocated for +* @place: placement of the resource +* @res: the resource object to inistilize +* +* Initialize a new resource object. Counterpart of &ttm_resource_fini. +*/ void ttm_resource_init (struct ttm_buffer_object *bo,const struct ttm_place *place,struct ttm_resource *res)
@@ -44,6 +52,21 @@ void ttm_resource_init(struct ttm_buffer_object *bo, }EXPORT_SYMBOL (ttm_resource_init); +/** +* ttm_resource_fini - resource destructor +* @man: the resource manager this resource belongs to +* @res: the resource to clean up +* +* Should be used by resource manager backends to clean up the TTM resource +* objects before freeing the underlying structure. Counterpart of +* &ttm_resource_init +*/ +void ttm_resource_fini (struct ttm_resource_manager *man, +struct ttm_resource *res) +{ +} +EXPORT_SYMBOL (ttm_resource_fini); +int ttm_resource_alloc (struct ttm_buffer_object *bo,const struct ttm_place *place,struct ttm_resource **res_ptr)
drivers/gpu/drm/ttm/ttm_sys_manager.c +1 -0
@@ -23,6 +23,7 @@ static int ttm_sys_man_alloc(struct ttm_resource_manager *man,static void ttm_sys_man_free (struct ttm_resource_manager *man,struct ttm_resource *res) { +ttm_resource_fini (man, res);kfree (res); }
drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c +6 -1
@@ -64,8 +64,11 @@ static int vmw_gmrid_man_get_node(struct ttm_resource_manager *man,ttm_resource_init (bo, place, *res); id =ida_alloc_max (&gman->gmr_ida, gman->max_gmr_ids -1 ,GFP_KERNEL ); -if (id <0 ) +if (id <0 ) { +ttm_resource_fini (man, *res); +kfree (*res);return id; + }spin_lock (&gman->lock);
@@ -116,6 +119,7 @@ static int vmw_gmrid_man_get_node(struct ttm_resource_manager *man, gman->used_gmr_pages -= (*res)->num_pages;spin_unlock (&gman->lock);ida_free (&gman->gmr_ida, id); +ttm_resource_fini (man, *res);kfree (*res);return -ENOSPC ; }
@@ -129,6 +133,7 @@ static void vmw_gmrid_man_put_node(struct ttm_resource_manager *man,spin_lock (&gman->lock); gman->used_gmr_pages -= res->num_pages;spin_unlock (&gman->lock); +ttm_resource_fini (man, res);kfree (res); }
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c +1 -0
@@ -49,6 +49,7 @@ static int vmw_sys_man_alloc(struct ttm_resource_manager *man,static void vmw_sys_man_free (struct ttm_resource_manager *man,struct ttm_resource *res) { +ttm_resource_fini (man, res);kfree (res); }
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h +3 -3
@@ -119,10 +119,10 @@ enum mem_use_type {struct hpd_status {union {struct { -u32 human_presence_report :4 ; -u32 human_presence_actual :4 ; -u32 probablity :8 ;u32 object_distance :16 ; +u32 probablity :8 ; +u32 human_presence_actual :4 ; +u32 human_presence_report :4 ; } shpd;u32 val; };
drivers/hid/hid-lenovo.c +39 -18
94 lines not on this page · raw message
drivers/hid/hid-multitouch.c +4 -0
@@ -2151,6 +2151,10 @@ static const struct hid_device_id mt_devices[] = {HID_DEVICE (BUS_I2C ,HID_GROUP_MULTITOUCH_WIN_8 , USB_VENDOR_ID_SYNAPTICS, 0xcd7e) }, + { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, +HID_DEVICE (BUS_I2C ,HID_GROUP_MULTITOUCH_WIN_8 , + USB_VENDOR_ID_SYNAPTICS, 0xcddc) }, + { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,HID_DEVICE (BUS_I2C ,HID_GROUP_MULTITOUCH_WIN_8 , USB_VENDOR_ID_SYNAPTICS, 0xce08) },
drivers/infiniband/core/device.c +22 -15
@@ -1729,7 +1729,7 @@ static int assign_client_id(struct ib_client *client) {int ret; -down_write (&clients_rwsem); +lockdep_assert_held (&clients_rwsem);/* * The add/remove callbacks must be called in FIFO/LIFO order. To * achieve this we assign client_ids so they are sorted in
@@ -1738,14 +1738,11 @@ static int assign_client_id(struct ib_client *client) client->client_id = highest_client_id; ret =xa_insert (&clients, client->client_id, client,GFP_KERNEL );if (ret) - goto out; +return ret; highest_client_id++;xa_set_mark (&clients, client->client_id,CLIENT_REGISTERED ); - -out: -up_write (&clients_rwsem); -return ret; +return 0 ; }static void remove_client_id (struct ib_client *client)
@@ -1775,25 +1772,35 @@ int ib_register_client(struct ib_client *client) {struct ib_device *device;unsigned long index; +bool need_unreg = false;int ret;refcount_set (&client->uses,1 );init_completion (&client->uses_zero); + +/* +* The devices_rwsem is held in write mode to ensure that a racing +* ib_register_device() sees a consisent view of clients and devices. +*/ +down_write (&devices_rwsem); +down_write (&clients_rwsem); ret =assign_client_id (client);if (ret) -return ret; + goto out; -down_read (&devices_rwsem); + need_unreg = true; xa_for_each_marked (&devices, index, device, DEVICE_REGISTERED) { ret =add_client_context (device, client); -if (ret) { -up_read (&devices_rwsem); -ib_unregister_client (client); -return ret; - } +if (ret) + goto out; } -up_read (&devices_rwsem); -return 0 ; + ret =0 ; +out: +up_write (&clients_rwsem); +up_write (&devices_rwsem); +if (need_unreg && ret) +ib_unregister_client (client); +return ret; }EXPORT_SYMBOL (ib_register_client);
drivers/infiniband/hw/mlx5/devx.c +1 -1
@@ -2922,7 +2922,7 @@ DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_MODIFY ,UVERBS_ATTR_IDR (MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE ,UVERBS_IDR_ANY_OBJECT , -UVERBS_ACCESS_WRITE , +UVERBS_ACCESS_READ ,UA_MANDATORY ), UVERBS_ATTR_PTR_IN( MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
drivers/infiniband/hw/mlx5/wr.c +1 -1
@@ -128,7 +128,7 @@ static void set_eth_seg(const struct ib_send_wr *wr, struct mlx5_ib_qp *qp,*/ copysz =min_t (u64, *cur_edge - (void *)eseg->inline_hdr.start, left); -memcpy (eseg->inline_hdr.start, pdata, copysz); +memcpy (eseg->inline_hdr.data, pdata, copysz); stride =ALIGN (sizeof (struct mlx5_wqe_eth_seg ) -sizeof (eseg->inline_hdr.start) + copysz,16 ); *size += stride /16 ;
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c +1 -1
@@ -131,7 +131,7 @@ static ssize_t mpath_policy_store(struct device *dev,/* distinguish "mi" and "min-latency" with length */ len =strnlen (buf,NAME_MAX ); -if (buf[len -1 ] =='\n' ) +if (len && buf[len -1 ] =='\n' ) len--; if (!strncasecmp(buf, "round-robin", 11) ||
drivers/infiniband/ulp/srpt/ib_srpt.c +1 -2
@@ -3209,7 +3209,6 @@ static int srpt_add_one(struct ib_device *device)INIT_IB_EVENT_HANDLER (&sdev->event_handler, sdev->device, srpt_event_handler); -ib_register_event_handler (&sdev->event_handler);for (i =1 ; i <= sdev->device->phys_port_cnt; i++) { sport = &sdev->port[i -1 ];
@@ -3232,6 +3231,7 @@ static int srpt_add_one(struct ib_device *device) } } +ib_register_event_handler (&sdev->event_handler);spin_lock (&srpt_dev_lock);list_add_tail (&sdev->list, &srpt_dev_list);spin_unlock (&srpt_dev_lock);
@@ -3242,7 +3242,6 @@ static int srpt_add_one(struct ib_device *device) err_port:srpt_unregister_mad_agent (sdev, i); -ib_unregister_event_handler (&sdev->event_handler); err_cm:if (sdev->cm_id)ib_destroy_cm_id (sdev->cm_id);
drivers/input/keyboard/gpio_keys_polled.c +4 -6
@@ -319,12 +319,10 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) error =devm_gpio_request_one (dev, button->gpio, flags, button->desc ? :DRV_NAME ); -if (error) { -dev_err (dev, -"unable to claim gpio %u, err=%d\n" , - button->gpio, error); -return error; - } +if (error) +return dev_err_probe (dev, error, +"unable to claim gpio %u\n" , + button->gpio); bdata->gpiod =gpio_to_desc (button->gpio);if (!bdata->gpiod) {
drivers/iommu/amd/init.c +3 -0
@@ -1821,6 +1821,9 @@ static int __init iommu_init_pci(struct amd_iommu *iommu)/* Prevent binding other PCI device drivers to IOMMU devices */ iommu->dev->match_driver = false; +/* ACPI _PRT won't have an IRQ for IOMMU */ + iommu->dev->irq_managed =1 ; +pci_read_config_dword (iommu->dev, cap_ptr +MMIO_CAP_HDR_OFFSET , &iommu->cap);
drivers/iommu/intel/pasid.c +3 -0
@@ -508,6 +508,9 @@ devtlb_invalidation_with_pasid(struct intel_iommu *iommu,if (!info || !info->ats_enabled)return ; +if (pci_dev_is_disconnected (to_pci_dev (dev))) +return ; + sid = info->bus <<8 | info->devfn; qdep = info->ats_qdep; pfsid = info->pfsid;
drivers/leds/flash/leds-sgm3140.c +3 -0
@@ -114,8 +114,11 @@ static int sgm3140_brightness_set(struct led_classdev *led_cdev, "failed to enable regulator: %d\n", ret);return ret; } +gpiod_set_value_cansleep (priv->flash_gpio,0 );gpiod_set_value_cansleep (priv->enable_gpio,1 ); }else { +del_timer_sync (&priv->powerdown_timer); +gpiod_set_value_cansleep (priv->flash_gpio,0 );gpiod_set_value_cansleep (priv->enable_gpio,0 ); ret =regulator_disable (priv->vin_regulator);if (ret) {
drivers/leds/leds-aw2013.c +1 -0
@@ -397,6 +397,7 @@ static int aw2013_probe(struct i2c_client *client)regulator_disable (chip->vcc_regulator); error: +mutex_unlock (&chip->mutex);mutex_destroy (&chip->mutex);return ret; }
drivers/md/dm-crypt.c +2 -2
@@ -49,11 +49,11 @@struct convert_context {struct completion restart;struct bio *bio_in; -struct bio *bio_out;struct bvec_iter iter_in; +struct bio *bio_out;struct bvec_iter iter_out; -u64 cc_sector;atomic_t cc_pending; +u64 cc_sector;union {struct skcipher_request *req;struct aead_request *req_aead;
drivers/md/dm-raid.c +2 -2
@@ -3329,14 +3329,14 @@ static int raid_map(struct dm_target *ti, struct bio *bio)struct mddev *mddev = &rs->md;/* -* If we're reshaping to add disk(s)), ti->len and +* If we're reshaping to add disk(s), ti->len and * mddev->array_sectors will differ during the process * (ti->len > mddev->array_sectors), so we have to requeue * bios with addresses > mddev->array_sectors here or * there will occur accesses past EOD of the component * data images thus erroring the raid set. */ -if (unlikely (bio_end_sector (bio) > mddev->array_sectors)) +if (unlikely (bio_has_data (bio) &&bio_end_sector (bio) > mddev->array_sectors))return DM_MAPIO_REQUEUE ;md_handle_request (mddev, bio);
drivers/md/dm-verity.h +2 -2
@@ -74,11 +74,11 @@ struct dm_verity_io {/* original value of bio->bi_end_io */ bio_end_io_t *orig_bi_end_io; +struct bvec_iter iter; +sector_t block;unsigned n_blocks; -struct bvec_iter iter; -struct work_struct work;/*
drivers/md/dm.c +20 -6
@@ -2641,6 +2641,9 @@ static void __dm_internal_suspend(struct mapped_device *md, unsigned suspend_flastatic void __dm_internal_resume (struct mapped_device *md) { +int r; +struct dm_table *map; +BUG_ON (!md->internal_suspend_count);if (--md->internal_suspend_count)
@@ -2649,12 +2652,23 @@ static void __dm_internal_resume(struct mapped_device *md)if (dm_suspended_md (md)) goto done;/* resume from nested suspend */ -/* -* NOTE: existing callers don't need to call dm_table_resume_targets -* (which may fail -- so best to avoid it for now by passing NULL map) -*/ - (void )__dm_resume (md,NULL ); - + map =rcu_dereference_protected (md->map,lockdep_is_held (&md->suspend_lock)); + r =__dm_resume (md, map); +if (r) { +/* +* If a preresume method of some target failed, we are in a +* tricky situation. We can't return an error to the caller. We +* can't fake success because then the "resume" and +* "postsuspend" methods would not be paired correctly, and it +* would break various targets, for example it would cause list +* corruption in the "origin" target. +* +* So, we fake normal suspend here, to make sure that the +* "resume" and "postsuspend" methods will be paired correctly. +*/ +DMERR ("Preresume method failed: %d" , r); +set_bit (DMF_SUSPENDED , &md->flags); + } done:clear_bit (DMF_SUSPENDED_INTERNALLY , &md->flags);smp_mb__after_atomic ();
drivers/md/md.c +10 -4
@@ -6230,7 +6230,15 @@ static void md_clean(struct mddev *mddev) mddev->persistent =0 ; mddev->level =LEVEL_NONE ; mddev->clevel[0 ] =0 ; - mddev->flags =0 ; +/* +* Don't clear MD_CLOSING, or mddev can be opened again. +* 'hold_active != 0' means mddev is still in the creation +* process and will be used later. +*/ +if (mddev->hold_active) + mddev->flags =0 ; +else + mddev->flags &=BIT_ULL_MASK (MD_CLOSING ); mddev->sb_flags =0 ; mddev->ro =MD_RDWR ; mddev->metadata_type[0 ] =0 ;
@@ -7550,7 +7558,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,int err =0 ;void __user *argp = (void __user *)arg;struct mddev *mddev =NULL ; -bool did_set_md_closing = false;if (!md_ioctl_valid (cmd))return -ENOTTY ;
@@ -7637,7 +7644,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode, err = -EBUSY ; goto out; } - did_set_md_closing = true;mutex_unlock (&mddev->open_mutex);sync_blockdev (bdev); }
@@ -7800,7 +7806,7 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode, mddev->hold_active =0 ;mddev_unlock (mddev); out: -if (did_set_md_closing) +if (cmd ==STOP_ARRAY_RO || (err && cmd ==STOP_ARRAY ))clear_bit (MD_CLOSING , &mddev->flags);return err; }
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +42 -10
80 lines not on this page · raw message
drivers/media/dvb-core/dvbdev.c +5 -0
@@ -504,6 +504,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, dvbdevfops =kmemdup (template->fops,sizeof (*dvbdevfops),GFP_KERNEL );if (!dvbdevfops) {kfree (dvbdev); + *pdvbdev =NULL ;mutex_unlock (&dvbdev_register_lock);return -ENOMEM ; }
@@ -512,6 +513,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,if (!new_node) {kfree (dvbdevfops);kfree (dvbdev); + *pdvbdev =NULL ;mutex_unlock (&dvbdev_register_lock);return -ENOMEM ; }
@@ -545,6 +547,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, }list_del (&dvbdev->list_head);kfree (dvbdev); + *pdvbdev =NULL ;up_write (&minor_rwsem);mutex_unlock (&dvbdev_register_lock);return -EINVAL ;
@@ -567,6 +570,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,dvb_media_device_free (dvbdev);list_del (&dvbdev->list_head);kfree (dvbdev); + *pdvbdev =NULL ;mutex_unlock (&dvbdev_register_lock);return ret; }
@@ -585,6 +589,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,dvb_media_device_free (dvbdev);list_del (&dvbdev->list_head);kfree (dvbdev); + *pdvbdev =NULL ;mutex_unlock (&dvbdev_register_lock);return PTR_ERR (clsdev); }
drivers/media/dvb-frontends/stv0367.c +8 -26
@@ -118,50 +118,32 @@ static const s32 stv0367cab_RF_LookUp2[RF_LOOKUP_TABLE2_SIZE][RF_LOOKUP_TABLE2_S } }; -static -int stv0367_writeregs (struct stv0367_state *state,u16 reg,u8 *data,int len) +static noinline_for_stack +int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data) { -u8 buf[MAX_XFER_SIZE ]; +u8 buf[3 ] = {MSB (reg),LSB (reg), data };struct i2c_msg msg = { .addr = state->config->demod_address, .flags =0 , .buf = buf, - .len = len +2 + .len =3 , };int ret; -if (2 + len >sizeof (buf)) { -printk (KERN_WARNING -"%s: i2c wr reg=%04x: len=%d is too big!\n" , -KBUILD_MODNAME , reg, len); -return -EINVAL ; - } - - - buf[0 ] =MSB (reg); - buf[1 ] =LSB (reg); -memcpy (buf +2 , data, len); -if (i2cdebug)printk (KERN_DEBUG "%s: [%02x] %02x: %02x\n" , __func__, - state->config->demod_address, reg, buf[2 ]); + state->config->demod_address, reg, data); ret =i2c_transfer (state->i2c, &msg,1 );if (ret !=1 )printk (KERN_ERR "%s: i2c write error! ([%02x] %02x: %02x)\n" , - __func__, state->config->demod_address, reg, buf[2 ]); + __func__, state->config->demod_address, reg, data);return (ret !=1 ) ? -EREMOTEIO :0 ; } -static int stv0367_writereg (struct stv0367_state *state,u16 reg,u8 data) -{ -u8 tmp = data;/* see gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */ - -return stv0367_writeregs (state, reg, &tmp,1 );
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c +1 -9
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vpu/mtk_vpu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vpu/mtk_vpu.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +35 -34
69 lines not on this page · raw message
drivers/media/usb/em28xx/em28xx-cards.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/go7007/go7007-driver.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/media/usb/pvrusb2/pvrusb2-context.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/media/usb/pvrusb2/pvrusb2-dvb.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +4 -7
Lines of this file are not shown. View the raw message.
drivers/net/dsa/mt7530.c +51 -6
57 lines not on this page · raw message
drivers/net/ethernet/amazon/ena/ena_netdev.c +0 -17
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igb/igb_main.c +55 -57
112 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/af/cgx.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +14 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mediatek/mtk_eth_soc.c +24 -14
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mediatek/mtk_ppe.c +11 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/flower/lag_conf.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/wmi-tlv.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_init.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/b43.h +16 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/dma.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/main.c +9 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/pio.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlegacy/3945-mac.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlegacy/4965-mac.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/dvm/main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/acpi.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/d3.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +15 -11
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/cmd.c +11 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/cfg80211.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/debugfs.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/main.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/cfg80211.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/hif.c +26 -14
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/netdev.c +7 -22
Lines of this file are not shown. View the raw message.
drivers/net/wireless/quantenna/qtnfmac/core.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/pci.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8821c.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/endpoint/functions/Kconfig +11 -0
Lines of this file are not shown. View the raw message.
drivers/pci/endpoint/functions/Makefile +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/endpoint/functions/pci-epf-vntb.c new file +1421 -0
1,421 lines not on this page · raw message
drivers/pinctrl/mediatek/pinctrl-mt8192.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pwm/pwm-atmel-hlcdc.c +35 -36
71 lines not on this page · raw message
drivers/s390/block/dasd.c +66 -45
111 lines not on this page · raw message
drivers/s390/block/dasd_devmap.c +559 -7
566 lines not on this page · raw message
drivers/s390/block/dasd_eckd.c +131 -23
154 lines not on this page · raw message
drivers/s390/block/dasd_int.h +54 -0
54 lines not on this page · raw message
drivers/staging/media/imx/imx-media-csc-scaler.c +1 -0
Lines of this file are not shown. View the raw message.
fs/f2fs/data.c +62 -10
72 lines not on this page · raw message
fs/f2fs/f2fs.h +37 -11
48 lines not on this page · raw message
fs/f2fs/segment.c +37 -22
59 lines not on this page · raw message
fs/quota/dquot.c +101 -125
226 lines not on this page · raw message
include/linux/rcupdate.h +43 -0
43 lines not on this page · raw message
io_uring/io_uring.c +10 -224
234 lines not on this page · raw message
net/core/sock.c +31 -20
51 lines not on this page · raw message
net/ipv4/ip_sockglue.c +45 -35
80 lines not on this page · raw message
scripts/clang-tools/gen_compile_commands.py +1 -1
Lines of this file are not shown. View the raw message.
sound/pci/hda/patch_realtek.c +64 -0
64 lines not on this page · raw message
sound/soc/meson/aiu.c +12 -37
49 lines not on this page · raw message
sound/soc/meson/axg-tdm-formatter.c +13 -37
50 lines not on this page · raw message
sound/soc/meson/axg-tdm-interface.c +27 -27
54 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.