Linux 5.4.243
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.243 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/media/uapi/v4l/subdev-formats.rst | 27 + Makefile | 2 arch/arm/boot/dts/exynos4412-itop-elite.dts | 2 arch/arm/boot/dts/qcom-ipq4019.dtsi | 4 arch/arm/boot/dts/qcom-ipq8064.dtsi | 12 arch/arm/boot/dts/s5pv210.dtsi | 2 arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 3 arch/arm64/boot/dts/renesas/r8a77990.dtsi | 3 arch/arm64/include/asm/debug-monitors.h | 1 arch/arm64/kernel/debug-monitors.c | 5 arch/arm64/kernel/kgdb.c | 2 arch/ia64/kernel/salinfo.c | 2 arch/ia64/mm/contig.c | 2 arch/mips/fw/lib/cmdline.c | 2 arch/openrisc/kernel/entry.S | 6 arch/parisc/kernel/real2.S | 5 arch/powerpc/kernel/rtas.c | 2 arch/powerpc/platforms/512x/clock-commonclk.c | 2 arch/powerpc/platforms/embedded6xx/flipper-pic.c | 2 arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 2 arch/powerpc/platforms/embedded6xx/wii.c | 4 arch/powerpc/sysdev/tsi108_pci.c | 5 arch/sh/kernel/cpu/sh4/sq.c | 2 arch/sh/kernel/head_32.S | 6 arch/sh/kernel/nmi_debug.c | 4 arch/sh/kernel/setup.c | 4 arch/sh/math-emu/sfp-util.h | 4 arch/x86/kernel/apic/apic.c | 5 arch/x86/kernel/apic/io_apic.c | 14 arch/x86/kvm/vmx/vmx.c | 15 crypto/drbg.c | 16 drivers/base/cpu.c | 3 drivers/base/power/domain.c | 194 ++++---- drivers/base/power/domain_governor.c | 12 drivers/block/drbd/drbd_receiver.c | 2 drivers/bluetooth/btsdio.c | 1 drivers/char/ipmi/ipmi_ssif.c | 8 drivers/char/tpm/tpm_tis_core.c | 29 - drivers/clk/clk-conf.c | 12 drivers/clk/rockchip/clk-rk3399.c | 2 drivers/clocksource/timer-davinci.c | 48 +- drivers/counter/104-quad-8.c | 30 - drivers/crypto/inside-secure/safexcel.c | 50 +- drivers/crypto/inside-secure/safexcel.h | 3 drivers/dma/at_xdmac.c | 5 drivers/dma/dw-edma/dw-edma-core.c | 27 - drivers/dma/mv_xor_v2.c | 2 drivers/edac/skx_base.c | 4 drivers/firmware/qcom_scm.c | 3 drivers/firmware/raspberrypi.c | 70 ++ drivers/firmware/stratix10-svc.c | 4 drivers/fpga/fpga-bridge.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 1 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 8 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 3 drivers/gpu/drm/drm_fb_helper.c | 3 drivers/gpu/drm/drm_probe_helper.c | 5 drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 drivers/gpu/drm/exynos/exynos_drm_dsi.c | 7 drivers/gpu/drm/lima/lima_drv.c | 6 drivers/gpu/drm/msm/adreno/adreno_device.c | 7 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 5 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 2 drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 3 drivers/gpu/drm/vgem/vgem_fence.c | 1 drivers/hid/wacom_wac.c | 38 + drivers/hid/wacom_wac.h | 1 drivers/i2c/busses/i2c-omap.c | 2 drivers/iio/adc/palmas_gpadc.c | 2 drivers/iio/light/max44009.c | 13 drivers/infiniband/hw/hfi1/mmu_rb.c | 13 drivers/infiniband/hw/mlx4/qp.c | 8 drivers/infiniband/hw/mlx5/qp.c | 2 drivers/infiniband/sw/rdmavt/qp.c | 2 drivers/infiniband/sw/siw/siw_main.c | 3 drivers/infiniband/sw/siw/siw_qp_tx.c | 2 drivers/input/touchscreen/raspberrypi-ts.c | 3 drivers/leds/Kconfig | 2 drivers/macintosh/Kconfig | 1 drivers/macintosh/windfarm_smu_sat.c | 1 drivers/mailbox/zynqmp-ipi-mailbox.c | 19 drivers/md/dm-clone-target.c | 1 drivers/md/dm-flakey.c | 4 drivers/md/dm-integrity.c | 8 drivers/md/dm-ioctl.c | 7 drivers/md/dm-verity-target.c | 17 drivers/md/raid10.c | 96 ++-- drivers/md/raid5.c | 10 drivers/media/pci/dm1105/dm1105.c | 1 drivers/media/pci/saa7134/saa7134-ts.c | 1 drivers/media/pci/saa7134/saa7134-vbi.c | 1 drivers/media/pci/saa7134/saa7134-video.c | 1 drivers/media/pci/ttpci/av7110_av.c | 4 drivers/media/platform/rcar_fdp1.c | 50 +- drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 2 drivers/media/rc/gpio-ir-recv.c | 2 drivers/misc/vmw_vmci/vmci_host.c | 8 drivers/mmc/host/sdhci-of-esdhc.c | 24 - drivers/mtd/spi-nor/cadence-quadspi.c | 77 +-- drivers/mtd/ubi/eba.c | 19 drivers/net/dsa/mt7530.c | 4 drivers/net/dsa/mv88e6xxx/chip.c | 1 drivers/net/ethernet/amd/nmclan_cs.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 23 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c | 2 drivers/net/virtio_net.c | 43 + drivers/net/wireless/ath/ath5k/eeprom.c | 2 drivers/net/wireless/ath/ath6kl/bmi.c | 2 drivers/net/wireless/ath/ath6kl/htc_pipe.c | 4 drivers/net/wireless/ath/ath9k/hif_usb.c | 19 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 10 drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 3 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 1 drivers/net/wireless/realtek/rtlwifi/base.c | 144 +++--- drivers/net/wireless/realtek/rtlwifi/cam.c | 82 +-- drivers/net/wireless/realtek/rtlwifi/core.c | 259 +++++------ drivers/net/wireless/realtek/rtlwifi/debug.c | 16 drivers/net/wireless/realtek/rtlwifi/debug.h | 11 drivers/net/wireless/realtek/rtlwifi/efuse.c | 72 +-- drivers/net/wireless/realtek/rtlwifi/pci.c | 282 ++++++------ drivers/net/wireless/realtek/rtlwifi/ps.c | 98 ++-- drivers/net/wireless/realtek/rtlwifi/regd.c | 18 drivers/net/wireless/realtek/rtlwifi/usb.c | 18 drivers/net/wireless/realtek/rtw88/mac.c | 8 drivers/nvme/host/core.c | 34 + drivers/nvme/host/trace.h | 15 drivers/nvme/target/fcloop.c | 48 +- drivers/of/device.c | 7 drivers/pci/controller/dwc/pci-imx6.c | 7 drivers/pci/hotplug/pciehp.h | 3 drivers/pci/hotplug/pciehp_core.c | 2 drivers/pci/hotplug/pciehp_hpc.c | 19 drivers/pci/hotplug/pciehp_pci.c | 15 drivers/phy/tegra/xusb.c | 2 drivers/platform/x86/touchscreen_dmi.c | 24 + drivers/power/supply/generic-adc-battery.c | 3 drivers/pwm/pwm-meson.c | 6 drivers/pwm/pwm-mtk-disp.c | 94 +--- drivers/regulator/core.c | 93 +++ drivers/regulator/stm32-pwr.c | 7 drivers/remoteproc/st_remoteproc.c | 5 drivers/remoteproc/stm32_rproc.c | 6 drivers/rtc/rtc-meson-vrtc.c | 4 drivers/rtc/rtc-omap.c | 1 drivers/s390/block/dasd.c | 2 drivers/scsi/lpfc/lpfc_init.c | 10 drivers/scsi/megaraid.c | 1 drivers/spi/spi-fsl-spi.c | 12 drivers/spi/spi-qup.c | 22 drivers/spmi/spmi.c | 3 drivers/staging/iio/resolver/ad2s1210.c | 2 drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 1 drivers/target/iscsi/iscsi_target.c | 16 drivers/tty/serial/8250/8250.h | 12 drivers/tty/serial/8250/8250_port.c | 16 drivers/tty/serial/fsl_lpuart.c | 2 drivers/tty/tty_io.c | 4 drivers/tty/tty_ioctl.c | 45 + drivers/usb/chipidea/core.c | 2 drivers/usb/dwc3/core.c | 15 drivers/usb/gadget/udc/renesas_usb3.c | 1 drivers/usb/host/xhci-debugfs.c | 1 drivers/usb/host/xhci-rcar.c | 3 drivers/usb/mtu3/mtu3_qmu.c | 5 drivers/usb/serial/option.c | 6 fs/afs/inode.c | 1 fs/btrfs/block-rsv.c | 3 fs/btrfs/ctree.c | 32 + fs/btrfs/ioctl.c | 5 fs/btrfs/print-tree.c | 6 fs/cifs/smb2ops.c | 2 fs/debugfs/file.c | 8 fs/erofs/internal.h | 2 fs/erofs/zmap.c | 4 fs/ext4/balloc.c | 25 + fs/ext4/extents.c | 3 fs/ext4/extents_status.c | 30 - fs/ext4/inline.c | 17 fs/ext4/mballoc.c | 6 fs/ext4/super.c | 19 fs/ext4/xattr.c | 5 fs/f2fs/file.c | 15 fs/f2fs/namei.c | 16 fs/fs-writeback.c | 2 fs/nfs/nfs4state.c | 4 fs/nilfs2/bmap.c | 16 fs/nilfs2/segment.c | 5 fs/notify/inotify/inotify_fsnotify.c | 11 fs/pstore/pmsg.c | 7 fs/reiserfs/xattr_security.c | 8 fs/ubifs/dir.c | 1 fs/ubifs/tnc.c | 142 +++--- include/asm-generic/io.h | 4 include/linux/debugfs.h | 1 include/linux/interrupt.h | 4 include/linux/mailbox/zynqmp-ipi-message.h | 2 include/linux/netfilter/nfnetlink.h | 1 include/linux/nvme.h | 4 include/linux/pm_domain.h | 12 include/linux/printk.h | 19 include/linux/sunrpc/sched.h | 3 include/linux/tick.h | 9 include/linux/tty.h | 2 include/linux/vt_buffer.h | 2 include/net/netfilter/nf_tables.h | 1 include/net/scm.h | 13 include/soc/bcm2835/raspberrypi-firmware.h | 10 include/trace/events/timer.h | 3 include/uapi/linux/btrfs.h | 1 include/uapi/linux/const.h | 2 include/uapi/linux/media-bus-format.h | 8 kernel/bpf/cgroup.c | 9 kernel/events/core.c | 4 kernel/irq/manage.c | 11 kernel/kheaders.c | 10 kernel/relay.c | 18 kernel/time/jiffies.c | 7 kernel/time/tick-broadcast.c | 2 kernel/time/tick-common.c | 30 - kernel/time/tick-internal.h | 1 kernel/time/tick-sched.c | 119 +++-- kernel/time/timekeeping.c | 6 kernel/time/timekeeping.h | 3 kernel/trace/ring_buffer.c | 4 lib/debugobjects.c | 141 +++--- mm/page_alloc.c | 16 net/8021q/vlan_dev.c | 2 net/bluetooth/hci_sock.c | 9 net/core/skbuff.c | 3 net/ipv4/ip_output.c | 16 net/ipv6/sit.c | 8 net/ncsi/ncsi-aen.c | 1 net/netfilter/nf_tables_api.c | 20 net/netfilter/nfnetlink.c | 2 net/netfilter/nft_dynset.c | 2 net/netfilter/nft_lookup.c | 2 net/netfilter/nft_objref.c | 2 net/netlink/af_netlink.c | 75 --- net/packet/af_packet.c | 32 - net/packet/diag.c | 4 net/packet/internal.h | 26 - net/rxrpc/sendmsg.c | 2 net/sched/act_mirred.c | 2 net/sched/cls_api.c | 1 net/sunrpc/clnt.c | 3 net/sunrpc/sched.c | 1 scripts/gdb/linux/clk.py | 2 scripts/gdb/linux/genpd.py | 16 scripts/gdb/linux/timerlist.py | 4 scripts/gdb/linux/utils.py | 5 security/selinux/Makefile | 4 sound/soc/codecs/es8316.c | 17 sound/soc/intel/boards/bytcr_rt5640.c | 12 sound/usb/caiaq/input.c | 1 tools/bpf/bpftool/json_writer.c | 3 tools/bpf/bpftool/xlated_dumper.c | 7 tools/perf/builtin-sched.c | 2 tools/perf/pmu-events/arch/powerpc/power9/other.json | 4 tools/perf/pmu-events/arch/powerpc/power9/pipeline.json | 2 tools/perf/util/auxtrace.c | 5 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 2 tools/perf/util/sort.c | 3 tools/perf/util/symbol-elf.c | 2 267 files changed, 2495 insertions(+), 1583 deletions(-)
Adrian Hunter (2):
perf auxtrace: Fix address filter entire kernel size perf intel-pt: Fix CYC timestamps after standalone CBR
Akhil P Oommen (1):
drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
Akilesh Kailash (1):
dm verity: skip redundant verity_handle_err() on I/O errors
Alexander Mikhalitsyn (1):
scm: fix MSG_CTRUNC setting condition for SO_PASSSEC
Alexey V. Vissarionov (1):
wifi: ath6kl: minor fix for allocation size
Anastasia Belova (1):
btrfs: print-tree: parent bytenr must be aligned to sector size
Andrey Avdeev (1):
platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
Angelo Dureghello (1):
net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
AngeloGioacchino Del Regno (1):
pwm: mtk-disp: Disable shadow registers before setting backlight values
Arnaldo Carvalho de Melo (1):
perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into sysconf(__SC_THREAD_STACK_MIN_VALUE)
Arınç ÜNAL (2):
USB: serial: option: add UNISOC vendor and TOZED LT70C product
net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
Aurabindo Pillai (1):
drm/amd/display: Fix hang when skipping modeset
Barry Song (1):
genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
Bitterblue Smith (1):
wifi: rtl8xxxu: RTL8192EU always needs full init
Cai Huoqing (1):
media: rcar_fdp1: Make use of the helper function devm_platform_ioremap_resource()
Chia-I Wu (1):
drm/amdgpu: add a missing lock for AMDGPU_SCHED
Christian Marangi (1):
ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
Christoph Böhmwalder (1):
drbd: correctly submit flush bio on barrier
Christoph Hellwig (1):
md: update the optimal I/O size on reshape
Christophe JAILLET (4):
clocksource/drivers/davinci: Avoid trailing '\n' hidden in pr_fmt()
clocksource: davinci: axe a pointless __GFP_NOFAIL
dmaengine: mv_xor_v2: Fix an error code.
mailbox: zynq: Switch to flexible array to simplify code
Christophe Leroy (1):
spi: fsl-spi: Fix CPM/QE mode Litte Endian
Chunfeng Yun (1):
usb: mtu3: fix kernel panic at qmu transfer done irq handler
Claudiu Beznea (1):
dmaengine: at_xdmac: do not enable all cyclic channels
Clément Léger (1):
clk: add missing of_node_put() in "assigned-clocks" property parsing
Cong Wang (1):
sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
Corey Minyard (1):
ipmi:ssif: Add send_retries increment
Cosmo Chou (1):
net/ncsi: clear Tx enable mode when handling a Config required AEN
Cristian Ciocaltea (1):
ASoC: es8316: Handle optional IRQ assignment
Dae R. Jeong (1):
vmci_host: fix a race condition in vmci_host_poll() causing GPF
Dafna Hirschfeld (1):
media: uapi: add MEDIA_BUS_FMT_METADATA_FIXED media bus format.
Dai Ngo (1):
SUNRPC: remove the maximum number of retries in call_bind_status
Dan Carpenter (4):
media: av7110: prevent underflow in write_ts_to_decoder()
wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe RDMA/mlx4: Prevent shift wrapping in set_user_sq_size()
Daniel Borkmann (1):
bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap
Daniel Vetter (1):
drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
Daniil Dulov (1):
RDMA/siw: Fix potential page_array out of range access
Danila Chernetsov (1):
scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
David Howells (1):
rxrpc: Fix hard call timeout units
Dhruva Gole (1):
spi: cadence-quadspi: fix suspend-resume implementations
Dom Cobley (1):
drm/probe-helper: Cancel previous job before starting new one
Douglas Anderson (2):
regulator: core: Consistently set mutex_owner when using ww_mutex_lock_slow()
regulator: core: Avoid lockdep reports when resolving supplies
Emmanuel Grumbach (1):
wifi: iwlwifi: make the loop for card preparation effective
Eric Dumazet (3):
net/packet: annotate accesses to po->xmit
net/packet: convert po->origdev to an atomic flag
net/packet: convert po->auxdata to an atomic flagFedor Pchelkin (2):
wifi: ath9k: hif_usb: fix memory leak of remain_skbs
wifi: ath6kl: reduce WARN to dev_dbg() in callback
Filipe Manana (1):
btrfs: fix btrfs_prev_leaf() to not return the same key twice
Florian Fainelli (4):
media: rc: gpio-ir-recv: Fix support for wake-up scripts/gdb: bail early if there are no clocks scripts/gdb: bail early if there are no generic PD
serial: 8250: Add missing wakeup event reporting
Florian Westphal (1):
netfilter: nf_tables: don't write table validation state without mutex
Frederic Weisbecker (1):
nohz: Add TICK_DEP_BIT_RCU
Gao Xiang (1):
erofs: stop parsing non-compact HEAD index if clusterofs is invalid
Gaosheng Cui (1):
phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port
Geert Uytterhoeven (4):
debugfs: regset32: Add Runtime PM support
arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table
arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table
PM: domains: Restore comment indentation for generic_pm_domain.child_links
Gencen Gan (1):
net: amd: Fix link leak when verifying config failed
Georgii Kruglov (1):
mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
Greg Kroah-Hartman (1):
Linux 5.4.243
Guchun Chen (2):
drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
H. Nikolaus Schaller (1):
PCI: imx6: Install the fault handler only on compatible match
Hamza Mahfooz (1):
drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
Hans de Goede (3):
ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750
ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Harshit Mogalapalli (1):
drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe()
Heiner Kallweit (2):
pwm: meson: Fix axg ao mux parents
pwm: meson: Fix g12a ao clk81 name
Helge Deller (1):
parisc: Fix argument pointer in real64_call_asm()
Herbert Xu (1):
crypto: drbg - Only fail when jent is unavailable in FIPS mode
Ilpo Järvinen (2):
tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
serial: 8250: Fix serial8250_tx_empty() race with DMA Tx
Jaegeuk Kim (1):
f2fs: fix potential corruption when moving a directory
James Cowgill (1):
drm/panel: otm8009a: Set backlight parent to panel device
Jan Kara (2):
inotify: Avoid reporting event with invalid wd
ext4: fix data races when using cached status extents
Jiasheng Jiang (1):
media: bdisp: Add missing check for create_workqueue
Jiaxun Yang (1):
MIPS: fw: Allow firmware to pass a empty env
Jingbo Xu (1):
erofs: fix potential overflow calculating xattr_isize
Jishnu Prakash (1):
spmi: Add a check for remove callback when removing a SPMI driver
Jisoo Jang (1):
wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
Jitao Shi (1):
pwm: mtk-disp: Adjust the clocks to avoid them mismatch
Joe Damato (2):
ixgbe: Allow flow hash to be set via ethtool
ixgbe: Enable setting RSS table to default values
Joel Fernandes (Google) (1):
tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
Johan Hovold (4):
USB: dwc3: fix runtime pm imbalance on probe errors
USB: dwc3: fix runtime pm imbalance on unbind
xhci: fix debugfs register accesses while suspended drm/msm/adreno: drop bogus pm_runtime_set_active()
Johannes Berg (2):
ring-buffer: Sync IRQ works before buffer destruction
wifi: iwlwifi: mvm: check firmware response size
John Paul Adrian Glaubitz (1):
sh: sq: Fix incorrect element size for allocating bitmap buffer
John Stultz (1):
pstore: Revert pmsg_lock back to a normal mutex
Jonathan Marek (1):
drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}Jonathan McDowell (1):
crypto: safexcel - Cleanup ring IRQ workqueues on load failure
Josef Bacik (1):
btrfs: don't free qgroup space unless specified
Kajol Jain (1):
perf vendor events power9: Remove UTF-8 characters from JSON files
Kees Cook (2):
kheaders: Use array declaration instead of char
PM: domains: Fix up terminology with parent/child
Keith Busch (1):
nvme: fix async event trace event
Kevin Brodsky (1):
uapi/linux/const.h: prefer ISO-friendly __typeof__
Krzysztof Kozlowski (4):
iio: light: max44009: add missing OF device matching
rtc: omap: include header for omap_rtc_power_off_program prototype
ARM: dts: exynos: fix WM8960 clock name in Itop Elite
ARM: dts: s5pv210: correct MIPI CSIS clock name
Kuniyuki Iwashima (3):
netlink: Use copy_to_user() for optval in netlink_getsockopt(). tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp.
af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
Larry Finger (2):
rtlwifi: Start changing RT_TRACE into rtl_dbg
rtlwifi: Replace RT_TRACE with rtl_dbg
Li Nan (1):
md/raid10: fix null-ptr-deref in raid10_sync_request
Liang He (1):
macintosh/windfarm_smu_sat: Add missing of_node_put()
Lino Sanfilippo (1):
tpm, tpm_tis: Do not skip reset of original interrupt vector
Liu Jian (1):
Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work"
Luis Gerhorst (1):
tools: bpftool: Remove invalid \' json escape
Lukas Wunner (1):
PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock
Manivannan Sadhasivam (2):
ARM: dts: qcom: ipq4019: Fix the PCI I/O port range
ARM: dts: qcom: ipq8064: Fix the PCI I/O port range
Marc Dionne (1):
afs: Fix updating of i_size with dv jump from server
Marco Pagani (1):
fpga: bridge: fix kernel-doc parameter description
Mark Zhang (1):
RDMA/mlx5: Use correct device num_ports when modify DC
Markus Elfring (1):
perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp()
Martin Blumenstingl (3):
wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser()
wifi: rtw88: mac: Return the original error from rtw_mac_power_switch()
rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
Mathieu Poirier (2):
remoteproc: stm32: Call of_node_put() on iteration error
remoteproc: st: Call of_node_put() on iteration error
Mauro Carvalho Chehab (2):
media: rcar_fdp1: simplify error check logic at fdp_open()
media: rcar_fdp1: fix pm_runtime_get_sync() usage count
Maxim Korotkov (1):
writeback: fix call of incorrect macro
Maximilian Luz (1):
drm/msm: Fix double pm_runtime_disable() call
Maíra Canal (1):
drm/vgem: add missing mutex_destroy
Miaoqian Lin (2):
media: rcar_fdp1: Fix refcount leak in probe and remove function
Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
Michael Kelley (1):
nvme: handle the persistent internal error AER
Mike Christie (1):
scsi: target: iscsit: Fix TAS handling during conn cleanup
Mike Snitzer (3):
dm clone: call kmem_cache_destroy() in dm_clone_init() error path dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path dm ioctl: fix nested locking in table_clear() to remove deadlock concern
Mikulas Patocka (1):
dm flakey: fix a crash with invalid table line
Ming Lei (1):
nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"Miquel Raynal (1):
of: Fix modalias string generation
Mukesh Ojha (1):
firmware: qcom_scm: Clear download bit during reboot
Mårten Lindahl (1):
ubifs: Free memory for tmpfile name
Natalia Petrova (1):
RDMA/rdmavt: Delete unnecessary NULL check
Nathan Lynch (1):
powerpc/rtas: use memmove for potentially overlapping buffer copy
Nicolai Stange (1):
crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors
Nicolas Saenz Julienne (3):
firmware: raspberrypi: Keep count of all consumers
firmware: raspberrypi: Introduce devm_rpi_firmware_get()
input: raspberrypi-ts: Release firmware handle when not needed
Nuno Sá (1):
staging: iio: resolver: ads1210: fix config mode
Ondrej Mosnacek (1):
selinux: fix Makefile dependencies of flask.h
Pablo Neira Ayuso (1):
netfilter: nf_tables: deactivate anonymous set from preparation phase
Patrick Kelsey (1):
IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order
Patrik Dahlström (1):
iio: adc: palmas_gpadc: fix NULL dereference on rmmod
Paul Moore (1):
selinux: ensure av_permissions.h is built when needed
Pawel Witek (1):
cifs: fix pcchunk length type in smb2_copychunk_range
Peng Liu (1):
scripts/gdb: fix lx-timerlist for Python3
Pengcheng Yang (1):
kernel/relay.c: fix read_pos error when multiple readers
Philipp Hortmann (1):
staging: rtl8192e: Fix W_DISABLE# does not work after stop/start
Ping Cheng (2):
HID: wacom: Set a default resolution for older tablets
HID: wacom: insert timestamp to packed Bluetooth (BT) events
Qinrun Dai (1):
clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails
Qiuxu Zhuo (1):
EDAC/skx: Fix overflows on the DRAM row address mapping arrays
Qu Wenruo (1):
btrfs: scrub: reject unsupported scrub flags
Quentin Monnet (1):
bpftool: Fix bug for long instructions in program CFG dumps
Quentin Schulz (1):
clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent
Randy Dunlap (11):
linux/vt_buffer.h: allow either builtin or modular for macros
ia64: mm/contig: fix section mismatch warning/error
ia64: salinfo: placate defined-but-not-used warning powerpc/mpc512x: fix resource printk format warning powerpc/wii: fix resource printk format warnings powerpc/sysdev/tsi108: fix resource printk format warnings
macintosh: via-pmu-led: requires ATA to be set
leds: TI_LMU_COMMON: select REGMAP instead of depending on it
sh: math-emu: fix macro redefined warning
sh: init: use OF_EARLY_FLATTREE for early init
sh: nmi_debug: fix return value of __setup handler
Reid Tonking (1):
i2c: omap: Fix standard mode false ACK readings
Rob Clark (2):
drm/rockchip: Drop unbalanced obj unref drm/msm/adreno: Defer enabling runpm until hw_init()
Roberto Sassu (1):
reiserfs: Add security prefix to xattr name in reiserfs_security_write()
Ruihan Li (1):
bluetooth: Perform careful capability checks in hci_sock_ioctl()
Ruliang Lin (1):
ALSA: caiaq: input: Add error handling for unsupported input methods in snd_usb_caiaq_input_init
Ryusuke Konishi (2):
nilfs2: do not write dirty data after degenerating to read-only
nilfs2: fix infinite loop in nilfs_mdt_get_block()
Saurabh Sengar (1):
x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
Sean Christopherson (1):
KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted
Sebastian Andrzej Siewior (1):
tick/common: Align tick period with the HZ tick.
Sebastian Reichel (1):
power: supply: generic-adc-battery: fix unit scaling
Shannon Nelson (1):
ionic: remove noise from ethtool rxnfc error msg
Shenwei Wang (1):
tty: serial: fsl_lpuart: adjust buffer length to the intended size
Shuchang Li (1):
scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup()
Shunsuke Mie (2):
dmaengine: dw-edma: Fix to change for continuous transfer
dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
Stafford Horne (1):
openrisc: Properly store r31 to pt_regs on unhandled exceptions
Stanislav Fomichev (1):
bpf: Don't EFAULT for getsockopt with optval=NULL
Stefan Haberland (1):
s390/dasd: fix hanging blockdevice after request requeue
Sumit Garg (1):
arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
Sven Auhagen (1):
crypto: inside-secure - irq balance
Tang Bin (1):
media: rcar_fdp1: Fix the correct variable assignments
Tanmay Shah (3):
mailbox: zynqmp: Fix IPI isr handling
mailbox: zynqmp: Fix typo in IPI documentation
mailbox: zynqmp: Fix counts of child nodes
Tetsuo Handa (3):
RDMA/siw: Remove namespace check from siw_netdev_event()
printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
Theodore Ts'o (6):
ext4: improve error recovery code paths in __ext4_remount()
ext4: fix deadlock when converting an inline directory in nojournal mode
ext4: add bounds checking in get_max_inline_xattr_value_size()
ext4: bail out of ext4_xattr_ibody_get() fails for any reason
ext4: remove a BUG_ON in ext4_mb_release_group_pa()
ext4: fix invalid free tracking in ext4_xattr_move_to_block()
Thomas Gleixner (6):
debugobject: Prevent init race with static objects
timekeeping: Split jiffies seqlock
tick/sched: Use tick_next_period for lockless quick check tick/sched: Optimize tick_do_update_jiffies64() further
tick: Get rid of tick_period
debugobject: Ensure pool refill (again)
Tian Tao (1):
drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
Trond Myklebust (1):
NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
Tudor Ambarus (1):
ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
Uros Bizjak (1):
x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
Uwe Kleine-König (2):
spi: qup: Don't skip cleanup in remove's error path
pwm: mtk-disp: Don't check the return code of pwmchip_remove()
Vadim Fedorenko (1):
vlan: partially enable SIOCSHWTSTAMP in container
Victor Nogueira (1):
net/sched: act_mirred: Add carrier check
Vignesh Raghavendra (4):
mtd: spi-nor: cadence-quadspi: Make driver independent of flash geometry
mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode
mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure
mtd: spi-nor: cadence-quadspi: Handle probe deferral while requesting DMA channel
Vlad Buslov (1):
net/sched: cls_api: remove block_cb from driver_list before freeing
Vladimir Oltean (1):
asm-generic/io.h: suppress endianness warnings for readq() and writeq()
Wang YanQing (1):
ubi: Fix return value overwrite issue in try_write_vid_and_data()
Wei Chen (2):
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
Wenliang Wang (1):
virtio_net: suppress cpu stall when free_unused_bufs
William Breathitt Gray (1):
counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
Wolfram Sang (1):
usb: host: xhci-rcar: remove leftover quirk handling
Xin Liu (1):
bpf, sockmap: fix deadlocks in the sockhash and sockmap
Xuan Zhuo (1):
virtio_net: split free_unused_bufs()
YAN SHI (1):
regulator: stm32-pwr: fix of_iomap leak
Yang Jihong (2):
perf/core: Fix hardlockup failure caused by perf throttle perf symbols: Fix return incorrect build_id size in elf_read_build_id()
Yang Yingliang (1):
firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe()
Yangtao Li (1):
f2fs: handle dqget error in f2fs_transfer_project_quota()
Ye Bin (2):
ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
ext4: fix WARNING in mb_find_extent
Yeongjin Gil (1):
dm verity: fix error handling for check_at_most_once on FEC
Yinhao Hu (1):
usb: chipidea: fix missing goto in ci_hdrc_probe
Yu Kuai (3):
md/raid10: fix leak of 'r10bio->remaining' for recovery
md/raid10: fix memleak for 'conf->bio_split'
md/raid10: fix memleak of md threadYunfeng Ye (1):
tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64()
Zhang Yuchen (1):
ipmi: fix SSIF not responding under certain cond.
Zhang Zhengming (1):
relayfs: fix out-of-bounds access in relay_file_read
Zheng Wang (3):
media: dm1105: Fix use after free bug in dm1105_remove due to race condition
media: saa7134: fix use after free bug in saa7134_finidev due to race condition
usb: gadget: udc: renesas_usb3: Fix use after free bug in renesas_usb3_remove due to race condition
Zhihao Cheng (2):
Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
ubifs: Fix memleak when insert_old_idx() failed
Ziyang Xuan (1):
ipv4: Fix potential uninit variable access bug in __ip_make_skb()
Greg Kroah-Hartman
maintainerDocumentation/media/uapi/v4l/subdev-formats.rst +27 -0
@@ -7794,3 +7794,30 @@ formats. - 0x5001 - Interleaved raw UYVY and JPEG image format with embedded meta-data used by Samsung S3C73MX camera sensors. + +.. _v4l2-mbus-metadata-fmts: + +Metadata Formats +^^^^^^^^^^^^^^^^ + +This section lists all metadata formats. + +The following table lists the existing metadata formats. + +.. tabularcolumns:: |p{8.0cm}|p{1.4cm}|p{7.7cm}| + +.. flat-table:: Metadata formats + :header-rows: 1 + :stub-columns: 0 + + * - Identifier + - Code + - Comments + * .. _MEDIA-BUS-FMT-METADATA-FIXED: + + - MEDIA_BUS_FMT_METADATA_FIXED + - 0x7001 + - This format should be used when the same driver handles + both sides of the link and the bus format is a fixed + metadata format that is not configurable from userspace. + Width and height will be set to 0 for this format.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 242 +SUBLEVEL = 243 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arm/boot/dts/exynos4412-itop-elite.dts +1 -1
@@ -179,7 +179,7 @@ compatible = "wlf,wm8960"; reg = <0x1a>; clocks = <&pmu_system_controller 0>; - clock-names = "MCLK1"; + clock-names = "mclk"; wlf,shared-lrclk; #sound-dai-cells = <0>; };
arch/arm/boot/dts/qcom-ipq4019.dtsi +2 -2
@@ -393,8 +393,8 @@ #address-cells = <3>; #size-cells = <2>; - ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000>, - <0x82000000 0 0x40300000 0x40300000 0 0x00d00000>; + ranges = <0x81000000 0x0 0x00000000 0x40200000 0x0 0x00100000>, + <0x82000000 0x0 0x40300000 0x40300000 0x0 0x00d00000>; interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi";
arch/arm/boot/dts/qcom-ipq8064.dtsi +6 -6
@@ -451,8 +451,8 @@ #address-cells = <3>; #size-cells = <2>; - ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */ - 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */ + ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00010000 /* I/O */ + 0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* MEM */ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi";
@@ -502,8 +502,8 @@ #address-cells = <3>; #size-cells = <2>; - ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */ - 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */ + ranges = <0x81000000 0x0 0x00000000 0x31e00000 0x0 0x00010000 /* I/O */ + 0x82000000 0x0 0x2e000000 0x2e000000 0x0 0x03e00000>; /* MEM */ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi";
@@ -553,8 +553,8 @@ #address-cells = <3>; #size-cells = <2>; - ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */ - 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */ + ranges = <0x81000000 0x0 0x00000000 0x35e00000 0x0 0x00010000 /* I/O */ + 0x82000000 0x0 0x32000000 0x32000000 0x0 0x03e00000>; /* MEM */ interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi";
arch/arm/boot/dts/s5pv210.dtsi +1 -1
@@ -571,7 +571,7 @@ interrupts = <29>; clocks = <&clocks CLK_CSIS>, <&clocks SCLK_CSIS>; - clock-names = "clk_csis", + clock-names = "csis", "sclk_csis"; bus-width = <4>; status = "disabled";
arch/arm64/boot/dts/renesas/r8a774c0.dtsi +0 -3
@@ -49,17 +49,14 @@ opp-shared; opp-800000000 { opp-hz = /bits/ 64 <800000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; }; opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; }; opp-1200000000 { opp-hz = /bits/ 64 <1200000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; opp-suspend; };
arch/arm64/boot/dts/renesas/r8a77990.dtsi +0 -3
@@ -60,17 +60,14 @@ opp-shared; opp-800000000 { opp-hz = /bits/ 64 <800000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; }; opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; }; opp-1200000000 { opp-hz = /bits/ 64 <1200000000>; - opp-microvolt = <820000>; clock-latency-ns = <300000>; opp-suspend; };
arch/arm64/include/asm/debug-monitors.h +1 -0
@@ -116,6 +116,7 @@ void user_regs_reset_single_step(struct user_pt_regs *regs,void kernel_enable_single_step (struct pt_regs *regs);void kernel_disable_single_step (void );int kernel_active_single_step (void ); +void kernel_rewind_single_step (struct pt_regs *regs);#ifdef CONFIG_HAVE_HW_BREAKPOINT int reinstall_suspended_bps (struct pt_regs *regs);
arch/arm64/kernel/debug-monitors.c +5 -0
@@ -441,6 +441,11 @@ int kernel_active_single_step(void) }NOKPROBE_SYMBOL (kernel_active_single_step); +void kernel_rewind_single_step (struct pt_regs *regs) +{ +set_regs_spsr_ss (regs); +} +/* ptrace API */ void user_enable_single_step (struct task_struct *task) {
arch/arm64/kernel/kgdb.c +2 -0
@@ -223,6 +223,8 @@ int kgdb_arch_handle_exception(int exception_vector, int signo,*/ if (!kernel_active_single_step ())kernel_enable_single_step (linux_regs); +else +kernel_rewind_single_step (linux_regs); err =0 ;break ;default :
arch/ia64/kernel/salinfo.c +1 -1
@@ -581,7 +581,7 @@ static int salinfo_cpu_pre_down(unsigned int cpu)* 'data' contains an integer that corresponds to the feature we're * testing */ -static int proc_salinfo_show (struct seq_file *m,void *v) +static int __maybe_unused proc_salinfo_show (struct seq_file *m,void *v) {unsigned long data = (unsigned long )v;seq_puts (m, (sal_platform_features & data) ?"1\n" :"0\n" );
arch/ia64/mm/contig.c +1 -1
@@ -81,7 +81,7 @@ void *per_cpu_init(void)return __per_cpu_start + __per_cpu_offset[smp_processor_id ()]; } -static inline void +static inline __init void alloc_per_cpu_data (void ) {size_t size =PERCPU_PAGE_SIZE *num_possible_cpus ();
arch/mips/fw/lib/cmdline.c +1 -1
@@ -51,7 +51,7 @@ char *fw_getenv(char *envname) {char *result =NULL ; -if (_fw_envp !=NULL ) { +if (_fw_envp !=NULL &&fw_envp (0 ) !=NULL ) {/* * Return a pointer to the given environment variable. * YAMON uses "name", "value" pairs, while U-Boot uses
arch/openrisc/kernel/entry.S +2 -4
@@ -173,7 +173,6 @@ handler: ;\ l.sw PT_GPR28(r1),r28 ;\ l.sw PT_GPR29(r1),r29 ;\ /* r30 already save */ ;\ -/* l.sw PT_GPR30(r1),r30*/ ;\ l.sw PT_GPR31(r1),r31 ;\ TRACE_IRQS_OFF_ENTRY ;\ /* Store -1 in orig_gpr11 for non-syscall exceptions */ ;\
@@ -211,9 +210,8 @@ handler: ;\ l.sw PT_GPR27(r1),r27 ;\ l.sw PT_GPR28(r1),r28 ;\ l.sw PT_GPR29(r1),r29 ;\ - /* r31 already saved */ ;\ - l.sw PT_GPR30(r1),r30 ;\ -/* l.sw PT_GPR31(r1),r31 */ ;\ + /* r30 already saved */ ;\ + l.sw PT_GPR31(r1),r31 ;\ /* Store -1 in orig_gpr11 for non-syscall exceptions */ ;\ l.addi r30,r0,-1 ;\ l.sw PT_ORIG_GPR11(r1),r30 ;\
arch/parisc/kernel/real2.S +2 -3
@@ -248,9 +248,6 @@ ENTRY_CFI(real64_call_asm) /* save fn */ copy %arg2, %r31 - /* set up the new ap */ - ldo 64(%arg1), %r29 - /* load up the arg registers from the saved arg area */ /* 32-bit calling convention passes first 4 args in registers */ ldd 0*REG_SZ(%arg1), %arg0 /* note overwriting arg0 */
@@ -262,7 +259,9 @@ ENTRY_CFI(real64_call_asm) ldd 7*REG_SZ(%arg1), %r19 ldd 1*REG_SZ(%arg1), %arg1 /* do this one last! */ + /* set up real-mode stack and real-mode ap */ tophys_r1 %sp + ldo -16(%sp), %r29 /* Reference param save area */ b,l rfi_virt2real,%r2 nop
arch/powerpc/kernel/rtas.c +1 -1
@@ -398,7 +398,7 @@ static char *__fetch_rtas_last_error(char *altbuf) buf =kmalloc (RTAS_ERROR_LOG_MAX ,GFP_ATOMIC ); }if (buf) -memcpy (buf, rtas_err_buf,RTAS_ERROR_LOG_MAX ); +memmove (buf, rtas_err_buf,RTAS_ERROR_LOG_MAX ); }return buf;
arch/powerpc/platforms/512x/clock-commonclk.c +1 -1
@@ -984,7 +984,7 @@ static void mpc5121_clk_provide_migration_support(void)#define NODE_PREP do { \ of_address_to_resource(np, 0, &res); \ - snprintf(devname, sizeof(devname), "%08x.%s", res.start, np->name); \ + snprintf(devname, sizeof(devname), "%pa.%s", &res.start, np->name); \ } while (0)#define NODE_CHK (clkname, clkitem, regnode, regflag) do { \
arch/powerpc/platforms/embedded6xx/flipper-pic.c +1 -1
@@ -144,7 +144,7 @@ static struct irq_domain * __init flipper_pic_init(struct device_node *np) } io_base =ioremap (res.start,resource_size (&res)); -pr_info ("controller at 0x%08x mapped to 0x%p\n" , res.start, io_base); +pr_info ("controller at 0x%pa mapped to 0x%p\n" , &res.start, io_base);__flipper_quiesce (io_base);
arch/powerpc/platforms/embedded6xx/hlwd-pic.c +1 -1
@@ -173,7 +173,7 @@ static struct irq_domain *hlwd_pic_init(struct device_node *np)return NULL ; } -pr_info ("controller at 0x%08x mapped to 0x%p\n" , res.start, io_base); +pr_info ("controller at 0x%pa mapped to 0x%p\n" , &res.start, io_base);__hlwd_quiesce (io_base);
arch/powerpc/platforms/embedded6xx/wii.c +2 -2
@@ -89,8 +89,8 @@ static void __iomem *wii_ioremap_hw_regs(char *name, char *compatible) hw_regs =ioremap (res.start,resource_size (&res));if (hw_regs) { -pr_info ("%s at 0x%08x mapped to 0x%p\n" , name, - res.start, hw_regs); +pr_info ("%s at 0x%pa mapped to 0x%p\n" , name, + &res.start, hw_regs); } out_put:
arch/powerpc/sysdev/tsi108_pci.c +2 -3
@@ -216,9 +216,8 @@ int __init tsi108_setup_pci(struct device_node *dev, u32 cfg_phys, int primary) (hose)->ops = &tsi108_direct_pci_ops; -printk (KERN_INFO "Found tsi108 PCI host bridge at 0x%08x. " -"Firmware bus number: %d->%d\n" , - rsrc.start, hose->first_busno, hose->last_busno); +pr_info ("Found tsi108 PCI host bridge at 0x%pa. Firmware bus number: %d->%d\n" , + &rsrc.start, hose->first_busno, hose->last_busno);/* Interpret the "ranges" property */ /* This also maps the I/O region and sets isa_io/mem_base */
arch/sh/kernel/cpu/sh4/sq.c +1 -1
@@ -380,7 +380,7 @@ static int __init sq_api_init(void)if (unlikely (!sq_cache))return ret; - sq_bitmap =kzalloc (size,GFP_KERNEL ); + sq_bitmap =kcalloc (size,sizeof (long ),GFP_KERNEL );if (unlikely (!sq_bitmap)) goto out;
arch/sh/kernel/head_32.S +3 -3
@@ -64,7 +64,7 @@ ENTRY(_stext) ldc r0, r6_bank #endif -#ifdef CONFIG_OF_FLATTREE +#ifdef CONFIG_OF_EARLY_FLATTREE mov r4, r12 ! Store device tree blob pointer in r12 #endif
@@ -315,7 +315,7 @@ ENTRY(_stext) 10: #endif -#ifdef CONFIG_OF_FLATTREE +#ifdef CONFIG_OF_EARLY_FLATTREE mov.l 8f, r0 ! Make flat device tree available early. jsr @r0 mov r12, r4
@@ -346,7 +346,7 @@ ENTRY(stack_start) 5: .long start_kernel 6: .long cpu_init 7: .long init_thread_union -#if defined(CONFIG_OF_FLATTREE) +#if defined(CONFIG_OF_EARLY_FLATTREE) 8: .long sh_fdt_init #endif
arch/sh/kernel/nmi_debug.c +2 -2
@@ -49,7 +49,7 @@ static int __init nmi_debug_setup(char *str)register_die_notifier (&nmi_debug_nb);if (*str !='=' ) -return 0 ; +return 1 ;for (p = str +1 ; *p; p = sep +1 ) { sep =strchr (p,',' );
@@ -70,6 +70,6 @@ static int __init nmi_debug_setup(char *str)break ; } -return 0 ; +return 1 ; }__setup ("nmi_debug" , nmi_debug_setup);
arch/sh/kernel/setup.c +2 -2
@@ -243,7 +243,7 @@ void __init __weak plat_early_device_setup(void) { } -#ifdef CONFIG_OF_FLATTREE +#ifdef CONFIG_OF_EARLY_FLATTREE void __ref sh_fdt_init (phys_addr_t dt_phys) {static int done =0 ;
@@ -330,7 +330,7 @@ void __init setup_arch(char **cmdline_p)/* Let earlyprintk output early console messages */ early_platform_driver_probe ("earlyprintk" ,1 ,1 ); -#ifdef CONFIG_OF_FLATTREE +#ifdef CONFIG_OF_EARLY_FLATTREE #ifdef CONFIG_USE_BUILTIN_DTB unflatten_and_copy_device_tree ();#else
arch/sh/math-emu/sfp-util.h +0 -4
@@ -67,7 +67,3 @@ } while (0)#define abort () return 0 - -#define __BYTE_ORDER __LITTLE_ENDIAN - -
arch/x86/kernel/apic/apic.c +2 -3
@@ -410,10 +410,9 @@ static unsigned int reserve_eilvt_offset(int offset, unsigned int new)if (vector && !eilvt_entry_is_changeable (vector, new))/* may not change if vectors are different */ return rsvd; - rsvd =atomic_cmpxchg (&eilvt_offsets[offset], rsvd, new); - }while (rsvd != new); + }while (!atomic_try_cmpxchg (&eilvt_offsets[offset], &rsvd, new)); - rsvd &= ~APIC_EILVT_MASKED ; + rsvd = new & ~APIC_EILVT_MASKED ;if (rsvd && rsvd != vector)pr_info ("LVT offset %d assigned for vector 0x%02x\n" , offset, rsvd);
arch/x86/kernel/apic/io_apic.c +9 -5
@@ -2455,17 +2455,21 @@ static int io_apic_get_redir_entries(int ioapic)unsigned int arch_dynirq_lower_bound (unsigned int from) { +unsigned int ret; +/* * dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use * gsi_top if ioapic_dynirq_base hasn't been initialized yet. */ -if (!ioapic_initialized) -return gsi_top; + ret = ioapic_dynirq_base ? : gsi_top; +/* -* For DT enabled machines ioapic_dynirq_base is irrelevant and not -* updated. So simply return @from if ioapic_dynirq_base == 0. +* For DT enabled machines ioapic_dynirq_base is irrelevant and +* always 0. gsi_top can be 0 if there is no IO/APIC registered. +* 0 is an invalid interrupt number for dynamic allocations. Return +* @from instead. */ -return ioapic_dynirq_base ? : from; +return ret ? : from; }#ifdef CONFIG_X86_32
arch/x86/kvm/vmx/vmx.c +15 -0
@@ -7266,6 +7266,21 @@ static int vmx_check_intercept(struct kvm_vcpu *vcpu,/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED. */ break ; +case x86_intercept_pause: +/* +* PAUSE is a single-byte NOP with a REPE prefix, i.e. collides +* with vanilla NOPs in the emulator. Apply the interception +* check only to actual PAUSE instructions. Don't check +* PAUSE-loop-exiting, software can't expect a given PAUSE to +* exit, i.e. KVM is within its rights to allow L2 to execute +* the PAUSE. +*/ +if ((info->rep_prefix !=REPE_PREFIX ) || + !nested_cpu_has2 (vmcs12,CPU_BASED_PAUSE_EXITING )) +return X86EMUL_CONTINUE ; + +break ; +/* TODO: check more intercepts... */ default :break ;
crypto/drbg.c +8 -8
@@ -1515,6 +1515,14 @@ static int drbg_prepare_hrng(struct drbg_state *drbg)return 0 ; drbg->jent =crypto_alloc_rng ("jitterentropy_rng" ,0 ,0 ); +if (IS_ERR (drbg->jent)) { +const int err =PTR_ERR (drbg->jent); + + drbg->jent =NULL ; +if (fips_enabled) +return err; +pr_info ("DRBG: Continuing without Jitter RNG\n" ); + }return 0 ; }
@@ -1570,14 +1578,6 @@ static int drbg_instantiate(struct drbg_state *drbg, struct drbg_string *pers,if (ret) goto free_everything; -if (IS_ERR (drbg->jent)) { - ret =PTR_ERR (drbg->jent); - drbg->jent =NULL ; -if (fips_enabled || ret != -ENOENT ) - goto free_everything; -pr_info ("DRBG: Continuing without Jitter RNG\n" ); - } - reseed = false; }
drivers/base/cpu.c +2 -1
@@ -491,7 +491,8 @@ static const struct attribute_group *cpu_root_attr_groups[] = {bool cpu_is_hotpluggable (unsigned cpu) {struct device *dev =get_cpu_device (cpu); - return dev && container_of(dev, struct cpu, dev)->hotpluggable; + return dev && container_of(dev, struct cpu, dev)->hotpluggable + &&tick_nohz_cpu_hotpluggable (cpu); }EXPORT_SYMBOL_GPL (cpu_is_hotpluggable);
drivers/base/power/domain.c +97 -97
404 lines not on this page · raw message
drivers/base/power/domain_governor.c +6 -6
@@ -135,8 +135,8 @@ static bool __default_power_down_ok(struct dev_pm_domain *pd,* * All subdomains have been powered off already at this point. */ -list_for_each_entry (link, &genpd->master_links, master_node) { -struct generic_pm_domain *sd = link->slave; +list_for_each_entry (link, &genpd->parent_links, parent_node) { +struct generic_pm_domain *sd = link->child;s64 sd_max_off_ns = sd->max_off_time_ns;if (sd_max_off_ns <0 )
@@ -217,13 +217,13 @@ static bool default_power_down_ok(struct dev_pm_domain *pd) }/* -* We have to invalidate the cached results for the masters, so +* We have to invalidate the cached results for the parents, so * use the observation that default_power_down_ok() is not -* going to be called for any master until this instance +* going to be called for any parent until this instance * returns. */ -list_for_each_entry (link, &genpd->slave_links, slave_node) - link->master->max_off_time_changed = true; +list_for_each_entry (link, &genpd->child_links, child_node) + link->parent->max_off_time_changed = true; genpd->max_off_time_ns =-1 ; genpd->max_off_time_changed = false;
drivers/block/drbd/drbd_receiver.c +1 -1
@@ -1298,7 +1298,7 @@ static void submit_one_flush(struct drbd_device *device, struct issue_flush_contbio_set_dev (bio, device->ldev->backing_bdev); bio->bi_private = octx; bio->bi_end_io = one_flush_endio; - bio->bi_opf =REQ_OP_FLUSH |REQ_PREFLUSH ; + bio->bi_opf =REQ_OP_WRITE |REQ_PREFLUSH ; device->flush_jif = jiffies;set_bit (FLUSH_PENDING , &device->flags);
drivers/bluetooth/btsdio.c +0 -1
@@ -343,7 +343,6 @@ static void btsdio_remove(struct sdio_func *func)BT_DBG ("func %p" , func); -cancel_work_sync (&data->work);if (!data)return ;
drivers/char/ipmi/ipmi_ssif.c +5 -3
@@ -562,8 +562,10 @@ static void retry_timeout(struct timer_list *t)if (waiting)start_get (ssif_info); -if (resend) +if (resend) {start_resend (ssif_info); +ssif_inc_stat (ssif_info, send_retries); + } }static void watch_timeout (struct timer_list *t)
@@ -789,9 +791,9 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, }else if (data[0 ] != (IPMI_NETFN_APP_REQUEST |1 ) <<2 || data[1 ] !=IPMI_GET_MSG_FLAGS_CMD ) {/* -* Don't abort here, maybe it was a queued -* response to a previous command. +* Recv error response, give up. */ + ssif_info->ssif_state =SSIF_IDLE ;ipmi_ssif_unlock_cond (ssif_info, flags); dev_warn(&ssif_info->client->dev, "Invalid response getting flags: %x %x\n",
drivers/char/tpm/tpm_tis_core.c +11 -18
@@ -613,7 +613,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id)return IRQ_HANDLED ; } -static int tpm_tis_gen_interrupt (struct tpm_chip *chip) +static void tpm_tis_gen_interrupt (struct tpm_chip *chip) {const char *desc ="attempting to generate an interrupt" ;u32 cap2;
@@ -622,7 +622,7 @@ static int tpm_tis_gen_interrupt(struct tpm_chip *chip) ret =request_locality (chip,0 );if (ret <0 ) -return ret; +return ;if (chip->flags &TPM_CHIP_FLAG_TPM2 ) ret =tpm2_get_tpm_pt (chip,0x100 , &cap2, desc);
@@ -630,8 +630,6 @@ static int tpm_tis_gen_interrupt(struct tpm_chip *chip) ret =tpm1_getcap (chip,TPM_CAP_PROP_TIS_TIMEOUT , &cap, desc,0 );release_locality (chip,0 ); - -return ret; }/* Register the IRQ and issue a command that will cause an interrupt. If an
@@ -661,42 +659,37 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask, rc =tpm_tis_write8 (priv,TPM_INT_VECTOR (priv->locality), irq);if (rc <0 ) -return rc; + goto restore_irqs; rc =tpm_tis_read32 (priv,TPM_INT_STATUS (priv->locality), &int_status);if (rc <0 ) -return rc; + goto restore_irqs;/* Clear all existing */ rc =tpm_tis_write32 (priv,TPM_INT_STATUS (priv->locality), int_status);if (rc <0 ) -return rc; - + goto restore_irqs;/* Turn on */ rc =tpm_tis_write32 (priv,TPM_INT_ENABLE (priv->locality), intmask |TPM_GLOBAL_INT_ENABLE );if (rc <0 ) -return rc; + goto restore_irqs; priv->irq_tested = false;/* Generate an interrupt by having the core call through to * tpm_tis_send */ - rc =tpm_tis_gen_interrupt (chip); -if (rc <0 ) -return rc; +tpm_tis_gen_interrupt (chip); +restore_irqs:/* tpm_tis_send will either confirm the interrupt is working or it * will call disable_irq which undoes all of the above. */ if (!(chip->flags &TPM_CHIP_FLAG_IRQ )) { - rc =tpm_tis_write8 (priv, original_int_vec, -TPM_INT_VECTOR (priv->locality)); -if (rc <0 ) -return rc; - -return 1 ; +tpm_tis_write8 (priv, original_int_vec, +TPM_INT_VECTOR (priv->locality)); +return -1 ; }return 0 ;
drivers/clk/clk-conf.c +10 -2
@@ -33,9 +33,12 @@ static int __set_clk_parents(struct device_node *node, bool clk_supplier)else return rc; } -if (clkspec.np == node && !clk_supplier) +if (clkspec.np == node && !clk_supplier) { +of_node_put (clkspec.np);return 0 ; + } pclk =of_clk_get_from_provider (&clkspec); +of_node_put (clkspec.np);if (IS_ERR (pclk)) {if (PTR_ERR (pclk) != -EPROBE_DEFER ) pr_warn("clk: couldn't get parent clock %d for %pOF\n",
@@ -48,10 +51,12 @@ static int __set_clk_parents(struct device_node *node, bool clk_supplier)if (rc <0 ) goto err;if (clkspec.np == node && !clk_supplier) { +of_node_put (clkspec.np); rc =0 ; goto err; } clk =of_clk_get_from_provider (&clkspec); +of_node_put (clkspec.np);if (IS_ERR (clk)) {if (PTR_ERR (clk) != -EPROBE_DEFER ) pr_warn("clk: couldn't get assigned clock %d for %pOF\n",
@@ -93,10 +98,13 @@ static int __set_clk_rates(struct device_node *node, bool clk_supplier)else return rc; } -if (clkspec.np == node && !clk_supplier) +if (clkspec.np == node && !clk_supplier) { +of_node_put (clkspec.np);return 0 ; + } clk =of_clk_get_from_provider (&clkspec); +of_node_put (clkspec.np);if (IS_ERR (clk)) {if (PTR_ERR (clk) != -EPROBE_DEFER ) pr_warn("clk: couldn't get clock %d for %pOF\n",
drivers/clk/rockchip/clk-rk3399.c +1 -1
@@ -1259,7 +1259,7 @@ static struct rockchip_clk_branch rk3399_clk_branches[] __initdata = { RK3399_CLKSEL_CON(56), 6, 2, MFLAGS, RK3399_CLKGATE_CON(10), 7, GFLAGS), -COMPOSITE_NOGATE (SCLK_CIF_OUT ,"clk_cifout" , mux_clk_cif_p,0 , +COMPOSITE_NOGATE (SCLK_CIF_OUT ,"clk_cifout" , mux_clk_cif_p,CLK_SET_RATE_PARENT , RK3399_CLKSEL_CON(56), 5, 1, MFLAGS, 0, 5, DFLAGS),/* gic */
drivers/clocksource/timer-davinci.c +32 -16
111 lines not on this page · raw message
drivers/counter/104-quad-8.c +4 -26
@@ -57,10 +57,6 @@ struct quad8_iio {#define QUAD8_REG_CHAN_OP 0x11#define QUAD8_REG_INDEX_INPUT_LEVELS 0x16 -/* Borrow Toggle flip-flop */ -#define QUAD8_FLAG_BT BIT(0) -/* Carry Toggle flip-flop */ -#define QUAD8_FLAG_CT BIT(1)/* Error flag */ #define QUAD8_FLAG_E BIT(4)/* Up/Down flag */
@@ -97,9 +93,6 @@ static int quad8_read_raw(struct iio_dev *indio_dev, {struct quad8_iio *const priv =iio_priv (indio_dev);const int base_offset = priv->base +2 * chan->channel; -unsigned int flags; -unsigned int borrow; -unsigned int carry;int i;switch (mask) {
@@ -110,12 +103,7 @@ static int quad8_read_raw(struct iio_dev *indio_dev,return IIO_VAL_INT ; } - flags =inb (base_offset +1 ); - borrow = flags &QUAD8_FLAG_BT ; - carry = !!(flags &QUAD8_FLAG_CT ); - -/* Borrow XOR Carry effectively doubles count range */ - *val = (borrow ^ carry) <<24 ; + *val =0 ;mutex_lock (&priv->lock);
@@ -639,19 +627,9 @@ static int quad8_count_read(struct counter_device *counter, {struct quad8_iio *const priv = counter->priv;const int base_offset = priv->base +2 * count->id; -unsigned int flags; -unsigned int borrow; -unsigned int carry; -unsigned long position; +unsigned long position =0 ;int i; - flags =inb (base_offset +1 ); - borrow = flags &QUAD8_FLAG_BT ; - carry = !!(flags &QUAD8_FLAG_CT ); - -/* Borrow XOR Carry effectively doubles count range */ - position = (unsigned long )(borrow ^ carry) <<24 ; -mutex_lock (&priv->lock);/* Reset Byte Pointer; transfer Counter to Output Latch */
@@ -1204,8 +1182,8 @@ static ssize_t quad8_count_ceiling_read(struct counter_device *counter,mutex_unlock (&priv->lock); -/* By default 0x1FFFFFF (25 bits unsigned) is maximum count */ -return sprintf (buf,"33554431\n" ); +/* By default 0xFFFFFF (24 bits unsigned) is maximum count */ +return sprintf (buf,"16777215\n" ); } static ssize_t quad8_count_ceiling_write(struct counter_device *counter,
drivers/crypto/inside-secure/safexcel.c +38 -12
120 lines not on this page · raw message
drivers/crypto/inside-secure/safexcel.h +3 -0
@@ -640,6 +640,9 @@ struct safexcel_ring {*/ struct crypto_async_request *req;struct crypto_async_request *backlog; + +/* irq of this ring */ +int irq; };/* EIP integration context flags */
drivers/dma/at_xdmac.c +4 -1
@@ -212,6 +212,7 @@ struct at_xdmac {int irq;struct clk *clk;u32 save_gim; +u32 save_gs;struct dma_pool *at_xdmac_desc_pool;struct at_xdmac_chan chan[0 ]; };
@@ -1922,6 +1923,7 @@ static int atmel_xdmac_suspend(struct device *dev) } } atxdmac->save_gim =at_xdmac_read (atxdmac,AT_XDMAC_GIM ); + atxdmac->save_gs =at_xdmac_read (atxdmac,AT_XDMAC_GS );at_xdmac_off (atxdmac);clk_disable_unprepare (atxdmac->clk);
@@ -1958,7 +1960,8 @@ static int atmel_xdmac_resume(struct device *dev)at_xdmac_chan_write (atchan,AT_XDMAC_CNDC , atchan->save_cndc);at_xdmac_chan_write (atchan,AT_XDMAC_CIE , atchan->save_cim);wmb (); -at_xdmac_write (atxdmac,AT_XDMAC_GE , atchan->mask); +if (atxdmac->save_gs & atchan->mask) +at_xdmac_write (atxdmac,AT_XDMAC_GE , atchan->mask); } }return 0 ;
drivers/dma/dw-edma/dw-edma-core.c +16 -11
@@ -165,7 +165,7 @@ static void vchan_free_desc(struct virt_dma_desc *vdesc)dw_edma_free_desc (vd2dw_edma_desc (vdesc)); } -static void dw_edma_start_transfer (struct dw_edma_chan *chan) +static int dw_edma_start_transfer (struct dw_edma_chan *chan) {struct dw_edma_chunk *child;struct dw_edma_desc *desc;
@@ -173,16 +173,16 @@ static void dw_edma_start_transfer(struct dw_edma_chan *chan) vd =vchan_next_desc (&chan->vc);if (!vd) -return ; +return 0 ; desc =vd2dw_edma_desc (vd);if (!desc) -return ; +return 0 ; child =list_first_entry_or_null (&desc->chunk->list, struct dw_edma_chunk, list);if (!child) -return ; +return 0 ;dw_edma_v0_core_start (child, !desc->xfer_sz); desc->xfer_sz += child->ll_region.sz;
@@ -190,6 +190,8 @@ static void dw_edma_start_transfer(struct dw_edma_chan *chan)list_del (&child->list);kfree (child); desc->chunks_alloc--; + +return 1 ; } static int dw_edma_device_config(struct dma_chan *dchan,
@@ -273,9 +275,12 @@ static void dw_edma_device_issue_pending(struct dma_chan *dchan)struct dw_edma_chan *chan =dchan2dw_edma_chan (dchan);unsigned long flags; +if (!chan->configured) +return ; +spin_lock_irqsave (&chan->vc.lock, flags); -if (chan->configured && chan->request ==EDMA_REQ_NONE && - chan->status ==EDMA_ST_IDLE &&vchan_issue_pending (&chan->vc)) { +if (vchan_issue_pending (&chan->vc) && chan->request ==EDMA_REQ_NONE && + chan->status ==EDMA_ST_IDLE ) { chan->status =EDMA_ST_BUSY ;dw_edma_start_transfer (chan); }
@@ -483,14 +488,14 @@ static void dw_edma_done_interrupt(struct dw_edma_chan *chan)switch (chan->request) {case EDMA_REQ_NONE : desc =vd2dw_edma_desc (vd); -if (desc->chunks_alloc) { - chan->status =EDMA_ST_BUSY ; -dw_edma_start_transfer (chan); - }else { +if (!desc->chunks_alloc) {list_del (&vd->node);vchan_cookie_complete (vd); - chan->status =EDMA_ST_IDLE ; } + +/* Continue transferring if there are remaining chunks or issued requests. +*/ + chan->status =dw_edma_start_transfer (chan) ?EDMA_ST_BUSY :EDMA_ST_IDLE ;break ;case EDMA_REQ_STOP :
drivers/dma/mv_xor_v2.c +1 -1
@@ -751,7 +751,7 @@ static int mv_xor_v2_probe(struct platform_device *pdev) xor_dev->clk =devm_clk_get (&pdev->dev,NULL );if (IS_ERR (xor_dev->clk) &&PTR_ERR (xor_dev->clk) == -EPROBE_DEFER ) { - ret =EPROBE_DEFER ; + ret = -EPROBE_DEFER ; goto disable_reg_clk; }if (!IS_ERR (xor_dev->clk)) {
drivers/edac/skx_base.c +2 -2
@@ -459,7 +459,7 @@ static bool skx_rir_decode(struct decoded_addr *res) }static u8 skx_close_row[] = { -15 ,16 ,17 ,18 ,20 ,21 ,22 ,28 ,10 ,11 ,12 ,13 ,29 ,30 ,31 ,32 ,33 +15 ,16 ,17 ,18 ,20 ,21 ,22 ,28 ,10 ,11 ,12 ,13 ,29 ,30 ,31 ,32 ,33 ,34 };static u8 skx_close_column[] = {
@@ -467,7 +467,7 @@ static u8 skx_close_column[] = { };static u8 skx_open_row[] = { -14 ,15 ,16 ,20 ,28 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,29 ,30 ,31 ,32 ,33 +14 ,15 ,16 ,20 ,28 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,29 ,30 ,31 ,32 ,33 ,34 };static u8 skx_open_column[] = {
drivers/firmware/qcom_scm.c +1 -2
@@ -585,8 +585,7 @@ static int qcom_scm_probe(struct platform_device *pdev)static void qcom_scm_shutdown (struct platform_device *pdev) {/* Clean shutdown, disable download mode to allow normal restart */ -if (download_mode) -qcom_scm_set_download_mode (false); +qcom_scm_set_download_mode (false); }static const struct of_device_id qcom_scm_dt_match[] = {
drivers/firmware/raspberrypi.c +67 -3
127 lines not on this page · raw message
drivers/firmware/stratix10-svc.c +2 -2
@@ -981,8 +981,8 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev)return ret; genpool =svc_create_memory_pool (pdev, sh_memory); -if (!genpool) -return -ENOMEM ; +if (IS_ERR (genpool)) +return PTR_ERR (genpool);/* allocate service controller and supporting channel */ controller =devm_kzalloc (dev,sizeof (*controller),GFP_KERNEL );
drivers/fpga/fpga-bridge.c +1 -1
@@ -115,7 +115,7 @@ static int fpga_bridge_dev_match(struct device *dev, const void *data)/** * fpga_bridge_get - get an exclusive reference to a fpga bridge * @dev: parent device that fpga bridge was registered with -* @info: fpga manager info +* @info: fpga image specific information * * Given a device, get an exclusive reference to a fpga bridge. *
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +5 -1
@@ -58,6 +58,7 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev, {struct fd f =fdget (fd);struct amdgpu_fpriv *fpriv; +struct amdgpu_ctx_mgr *mgr;struct amdgpu_ctx *ctx;uint32_t id;int r;
@@ -71,8 +72,11 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,return r; } -idr_for_each_entry (&fpriv->ctx_mgr.ctx_handles, ctx, id) + mgr = &fpriv->ctx_mgr; +mutex_lock (&mgr->lock); +idr_for_each_entry (&mgr->ctx_handles, ctx, id)amdgpu_ctx_priority_override (ctx, priority); +mutex_unlock (&mgr->lock);fdput (f);return 0 ;
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +2 -1
@@ -3908,7 +3908,8 @@ static int gfx_v9_0_hw_fini(void *handle) {struct amdgpu_device *adev = (struct amdgpu_device *)handle; -amdgpu_irq_put (adev, &adev->gfx.cp_ecc_error_irq,0 ); +if (amdgpu_ras_is_supported (adev,AMDGPU_RAS_BLOCK__GFX )) +amdgpu_irq_put (adev, &adev->gfx.cp_ecc_error_irq,0 );amdgpu_irq_put (adev, &adev->gfx.priv_reg_irq,0 );amdgpu_irq_put (adev, &adev->gfx.priv_inst_irq,0 );
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +0 -1
@@ -1534,7 +1534,6 @@ static int gmc_v9_0_hw_fini(void *handle)return 0 ; } -amdgpu_irq_put (adev, &adev->gmc.ecc_irq,0 );amdgpu_irq_put (adev, &adev->gmc.vm_fault,0 );return 0 ;
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +5 -3
@@ -1911,9 +1911,11 @@ static int sdma_v4_0_hw_fini(void *handle)if (amdgpu_sriov_vf (adev))return 0 ; -for (i =0 ; i < adev->sdma.num_instances; i++) { -amdgpu_irq_put (adev, &adev->sdma.ecc_irq, -AMDGPU_SDMA_IRQ_INSTANCE0 + i); +if (amdgpu_ras_is_supported (adev,AMDGPU_RAS_BLOCK__SDMA )) { +for (i =0 ; i < adev->sdma.num_instances; i++) { +amdgpu_irq_put (adev, &adev->sdma.ecc_irq, +AMDGPU_SDMA_IRQ_INSTANCE0 + i); + } }sdma_v4_0_ctx_switch_enable (adev, false);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +4 -1
@@ -5776,6 +5776,8 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,continue ; dc_plane = dm_new_plane_state->dc_state; +if (!dc_plane) +continue ; bundle->surface_updates[planes_count].surface = dc_plane;if (new_pcrtc_state->color_mgmt_changed) {
@@ -7029,8 +7031,9 @@ static int dm_update_plane_state(struct dc *dc,return -EINVAL ; } +if (dm_old_plane_state->dc_state) +dc_plane_state_release (dm_old_plane_state->dc_state); -dc_plane_state_release (dm_old_plane_state->dc_state); dm_new_plane_state->dc_state =NULL ; *lock_and_validation_needed = true;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +3 -0
@@ -1315,6 +1315,9 @@ bool dc_remove_plane_from_context(struct dc_stream_status *stream_status =NULL ;struct resource_pool *pool = dc->res_pool; +if (!plane_state) +return true; +for (i =0 ; i < context->stream_count; i++)if (context->streams[i] == stream) { stream_status = &context->stream_status[i];
drivers/gpu/drm/drm_fb_helper.c +3 -0
@@ -1340,6 +1340,9 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,return -EINVAL ; } + var->xres_virtual = fb->width; + var->yres_virtual = fb->height; +/* * Workaround for SDL 1.2, which is known to be setting all pixel format * fields values to zero in some cases. We treat this situation as a
drivers/gpu/drm/drm_probe_helper.c +3 -2
@@ -460,8 +460,9 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector,*/ dev->mode_config.delayed_event = true;if (dev->mode_config.poll_enabled) -schedule_delayed_work (&dev->mode_config.output_poll_work, -0 ); +mod_delayed_work (system_wq, + &dev->mode_config.output_poll_work, +0 ); }/* Re-enable polling in case the global poll config changed. */
drivers/gpu/drm/exynos/exynos5433_drm_decon.c +2 -2
@@ -775,8 +775,8 @@ static int decon_conf_irq(struct decon_context *ctx, const char *name,return irq; } } -irq_set_status_flags (irq,IRQ_NOAUTOEN ); - ret =devm_request_irq (ctx->dev, irq, handler, flags,"drm_decon" , ctx); + ret =devm_request_irq (ctx->dev, irq, handler, + flags |IRQF_NO_AUTOEN ,"drm_decon" , ctx);if (ret <0 ) {dev_err (ctx->dev,"IRQ %s request failed\n" , name);return ret;
drivers/gpu/drm/exynos/exynos_drm_dsi.c +3 -4
@@ -1350,10 +1350,9 @@ static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi, } te_gpio_irq =gpio_to_irq (dsi->te_gpio); -irq_set_status_flags (te_gpio_irq,IRQ_NOAUTOEN ); ret =request_threaded_irq (te_gpio_irq, exynos_dsi_te_irq_handler,NULL , -IRQF_TRIGGER_RISING ,"TE" , dsi); +IRQF_TRIGGER_RISING |IRQF_NO_AUTOEN ,"TE" , dsi);if (ret) {dev_err (dsi->dev,"request interrupt failed with %d\n" , ret);gpio_free (dsi->te_gpio);
@@ -1792,9 +1791,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)return dsi->irq; } -irq_set_status_flags (dsi->irq,IRQ_NOAUTOEN ); ret =devm_request_threaded_irq (dev, dsi->irq,NULL , - exynos_dsi_irq,IRQF_ONESHOT , + exynos_dsi_irq, +IRQF_ONESHOT |IRQF_NO_AUTOEN ,dev_name (dev), dsi);if (ret) {dev_err (dev,"failed to request dsi irq\n" );
drivers/gpu/drm/lima/lima_drv.c +4 -2
@@ -300,8 +300,10 @@ static int lima_pdev_probe(struct platform_device *pdev)/* Allocate and initialize the DRM device. */ ddev =drm_dev_alloc (&lima_drm_driver, &pdev->dev); -if (IS_ERR (ddev)) -return PTR_ERR (ddev); +if (IS_ERR (ddev)) { + err =PTR_ERR (ddev); + goto err_out0; + } ddev->dev_private = ldev; ldev->ddev = ddev;
drivers/gpu/drm/msm/adreno/adreno_device.c +5 -2
@@ -233,8 +233,11 @@ struct msm_gpu *adreno_load_gpu(struct drm_device *dev)if (ret)return NULL ; -/* Make sure pm runtime is active and reset any previous errors */ -pm_runtime_set_active (&pdev->dev); +/* +* Now that we have firmware loaded, and are ready to begin +* booting the gpu, go ahead and enable runpm: +*/ +pm_runtime_enable (&pdev->dev); ret =pm_runtime_get_sync (&pdev->dev);if (ret <0 ) {
drivers/gpu/drm/msm/adreno/adreno_gpu.c +4 -1
@@ -899,7 +899,6 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,pm_runtime_set_autosuspend_delay (&pdev->dev, adreno_gpu->info->inactive_period);pm_runtime_use_autosuspend (&pdev->dev); -pm_runtime_enable (&pdev->dev);return msm_gpu_init (drm, pdev, &adreno_gpu->base, &funcs->base, adreno_gpu->info->name, &adreno_gpu_config);
@@ -908,11 +907,15 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,void adreno_gpu_cleanup (struct adreno_gpu *adreno_gpu) {struct msm_gpu *gpu = &adreno_gpu->base; +struct msm_drm_private *priv = gpu->dev ? gpu->dev->dev_private :NULL ;unsigned int i;for (i =0 ; i <ARRAY_SIZE (adreno_gpu->info->fw); i++)release_firmware (adreno_gpu->fw[i]); +if (priv &&pm_runtime_enabled (&priv->gpu_pdev->dev)) +pm_runtime_disable (&priv->gpu_pdev->dev); +icc_put (gpu->icc_path);msm_gpu_cleanup (&adreno_gpu->base);
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +1 -1
@@ -460,7 +460,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) ctx->panel.funcs = &otm8009a_drm_funcs; ctx->bl_dev =devm_backlight_device_register (dev,dev_name (dev), - dsi->host->dev, ctx, + dev, ctx, &otm8009a_backlight_ops,NULL );if (IS_ERR (ctx->bl_dev)) {
drivers/gpu/drm/rockchip/rockchip_drm_gem.c +0 -3
@@ -249,9 +249,6 @@ static int rockchip_drm_gem_object_mmap(struct drm_gem_object *obj,else ret =rockchip_drm_gem_object_mmap_dma (obj, vma); -if (ret) -drm_gem_vm_close (vma); -return ret; }
drivers/gpu/drm/vgem/vgem_fence.c +1 -0
@@ -249,4 +249,5 @@ void vgem_fence_close(struct vgem_file *vfile) {idr_for_each (&vfile->fence_idr, __vgem_fence_idr_fini, vfile);idr_destroy (&vfile->fence_idr); +mutex_destroy (&vfile->fence_mutex); }
drivers/hid/wacom_wac.c +36 -2
@@ -1265,6 +1265,9 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom)struct input_dev *pen_input = wacom->pen_input;unsigned char *data = wacom->data; +int number_of_valid_frames =0 ; +int time_interval =15000000 ; +ktime_t time_packet_received =ktime_get ();int i; if (wacom->features.type == INTUOSP2_BT ||
@@ -1285,12 +1288,30 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom) wacom->id[0 ] |= (wacom->serial[0 ] >>32 ) &0xFFFFF ; } +/* number of valid frames */ for (i =0 ; i < pen_frames; i++) {unsigned char *frame = &data[i*pen_frame_len +1 ];bool valid = frame[0 ] &0x80 ; + +if (valid) + number_of_valid_frames++; + } + +if (number_of_valid_frames) { +if (wacom->hid_data.time_delayed) + time_interval =ktime_get () - wacom->hid_data.time_delayed; + time_interval /= number_of_valid_frames; + wacom->hid_data.time_delayed = time_packet_received; + } + +for (i =0 ; i < number_of_valid_frames; i++) { +unsigned char *frame = &data[i*pen_frame_len +1 ]; +bool valid = frame[0 ] &0x80 ;bool prox = frame[0 ] &0x40 ;bool range = frame[0 ] &0x20 ;bool invert = frame[0 ] &0x10 ; +int frames_number_reversed = number_of_valid_frames - i -1 ; +int event_timestamp = time_packet_received - frames_number_reversed * time_interval;if (!valid)continue ;
@@ -1303,6 +1324,7 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom) wacom->tool[0 ] =0 ; wacom->id[0 ] =0 ; wacom->serial[0 ] =0 ; + wacom->hid_data.time_delayed =0 ;return ; }
@@ -1339,6 +1361,7 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom) get_unaligned_le16(&frame[11])); } } +if (wacom->tool[0 ]) {input_report_abs (pen_input,ABS_PRESSURE ,get_unaligned_le16 (&frame[5 ])); if (wacom->features.type == INTUOSP2_BT ||
@@ -1362,6 +1385,9 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom) wacom->shared->stylus_in_proximity = prox; +/* add timestamp to unpack the frames */ +input_set_timestamp (pen_input, event_timestamp); +input_sync (pen_input); } }
@@ -1853,6 +1879,7 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,int fmax = field->logical_maximum;unsigned int equivalent_usage =wacom_equivalent_usage (usage->hid);int resolution_code = code; +int resolution =hidinput_calc_abs_res (field, resolution_code);if (equivalent_usage ==HID_DG_TWIST ) { resolution_code =ABS_RZ ;
@@ -1875,8 +1902,15 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,switch (type) {case EV_ABS :input_set_abs_params (input, code, fmin, fmax, fuzz,0 ); -input_abs_set_res (input, code, -hidinput_calc_abs_res (field, resolution_code)); + +/* older tablet may miss physical usage */ +if ((code ==ABS_X || code ==ABS_Y ) && !resolution) { + resolution =WACOM_INTUOS_RES ; +hid_warn (input, +"Wacom usage (%d) missing resolution \n" , + code); + } +input_abs_set_res (input, code, resolution);break ;case EV_KEY :input_set_capability (input,EV_KEY , code);
drivers/hid/wacom_wac.h +1 -0
@@ -320,6 +320,7 @@ struct hid_data {int bat_connected;int ps_connected;bool pad_input_event_flag; +int time_delayed; };struct wacom_remote_data {
drivers/i2c/busses/i2c-omap.c +1 -1
@@ -1058,7 +1058,7 @@ omap_i2c_isr(int irq, void *dev_id)u16 stat; stat =omap_i2c_read_reg (omap,OMAP_I2C_STAT_REG ); - mask =omap_i2c_read_reg (omap,OMAP_I2C_IE_REG ); + mask =omap_i2c_read_reg (omap,OMAP_I2C_IE_REG ) & ~OMAP_I2C_STAT_NACK ;if (stat & mask) ret =IRQ_WAKE_THREAD ;
drivers/iio/adc/palmas_gpadc.c +1 -1
@@ -630,7 +630,7 @@ static int palmas_gpadc_probe(struct platform_device *pdev)static int palmas_gpadc_remove (struct platform_device *pdev) { -struct iio_dev *indio_dev =dev_to_iio_dev (&pdev->dev); +struct iio_dev *indio_dev =dev_get_drvdata (&pdev->dev);struct palmas_gpadc *adc =iio_priv (indio_dev);if (adc->wakeup1_enable || adc->wakeup2_enable)
drivers/iio/light/max44009.c +7 -6
@@ -529,6 +529,12 @@ static int max44009_probe(struct i2c_client *client,return devm_iio_device_register (&client->dev, indio_dev); } +static const struct of_device_id max44009_of_match[] = { + { .compatible ="maxim,max44009" }, + { } +}; +MODULE_DEVICE_TABLE (of, max44009_of_match); +static const struct i2c_device_id max44009_id[] = { {"max44009" ,0 }, { }
@@ -538,18 +544,13 @@ MODULE_DEVICE_TABLE(i2c, max44009_id);static struct i2c_driver max44009_driver = { .driver = { .name =MAX44009_DRV_NAME , + .of_match_table = max44009_of_match, }, .probe = max44009_probe, .id_table = max44009_id, };module_i2c_driver (max44009_driver); -static const struct of_device_id max44009_of_match[] = { - { .compatible ="maxim,max44009" }, - { } -}; -MODULE_DEVICE_TABLE (of, max44009_of_match); -MODULE_AUTHOR ("Robert Eshleman <[email protected]>" );MODULE_LICENSE ("GPL v2" );MODULE_DESCRIPTION ("MAX44009 ambient light sensor driver" );
drivers/infiniband/hw/hfi1/mmu_rb.c +6 -7
@@ -173,7 +173,7 @@ int hfi1_mmu_rb_insert(struct mmu_rb_handler *handler, goto unlock; }__mmu_int_rb_insert (mnode, &handler->root); -list_add (&mnode->list, &handler->lru_list); +list_add_tail (&mnode->list, &handler->lru_list); ret = handler->ops->insert (handler->ops_arg, mnode);if (ret) {
@@ -220,8 +220,10 @@ bool hfi1_mmu_rb_remove_unless_exact(struct mmu_rb_handler *handler,spin_lock_irqsave (&handler->lock, flags); node =__mmu_rb_search (handler, addr, len);if (node) { -if (node->addr == addr && node->len == len) +if (node->addr == addr && node->len == len) { +list_move_tail (&node->list, &handler->lru_list); goto unlock; + }__mmu_int_rb_remove (node, &handler->root);list_del (&node->list);/* remove from LRU list */ ret = true;
@@ -242,8 +244,7 @@ void hfi1_mmu_rb_evict(struct mmu_rb_handler *handler, void *evict_arg)INIT_LIST_HEAD (&del_list);spin_lock_irqsave (&handler->lock, flags); -list_for_each_entry_safe_reverse (rbnode, ptr, &handler->lru_list, - list) { +list_for_each_entry_safe (rbnode, ptr, &handler->lru_list, list) {if (handler->ops->evict (handler->ops_arg, rbnode, evict_arg, &stop)) {__mmu_int_rb_remove (rbnode, &handler->root);
@@ -255,9 +256,7 @@ void hfi1_mmu_rb_evict(struct mmu_rb_handler *handler, void *evict_arg) }spin_unlock_irqrestore (&handler->lock, flags); -while (!list_empty (&del_list)) { - rbnode = list_first_entry(&del_list, struct mmu_rb_node, list); -list_del (&rbnode->list); +list_for_each_entry_safe (rbnode, ptr, &del_list, list) { handler->ops->remove (handler->ops_arg, rbnode); } }
drivers/infiniband/hw/mlx4/qp.c +6 -2
@@ -438,9 +438,13 @@ static int set_user_sq_size(struct mlx4_ib_dev *dev,struct mlx4_ib_qp *qp, struct mlx4_ib_create_qp *ucmd) { + u32 cnt; +/* Sanity check SQ size before proceeding */ -if ((1 << ucmd->log_sq_bb_count) > dev->dev->caps.max_wqes || - ucmd->log_sq_stride > +if (check_shl_overflow (1 , ucmd->log_sq_bb_count, &cnt) || + cnt > dev->dev->caps.max_wqes) +return -EINVAL ; +if (ucmd->log_sq_stride >ilog2 (roundup_pow_of_two (dev->dev->caps.max_sq_desc_sz)) || ucmd->log_sq_stride <MLX4_IB_MIN_SQ_STRIDE )return -EINVAL ;
drivers/infiniband/hw/mlx5/qp.c +1 -1
@@ -3821,7 +3821,7 @@ static int mlx5_ib_modify_dct(struct ib_qp *ibqp, struct ib_qp_attr *attr,return -EINVAL ;if (attr->port_num ==0 || - attr->port_num >MLX5_CAP_GEN (dev->mdev, num_ports)) { + attr->port_num > dev->num_ports) {mlx5_ib_dbg (dev,"invalid port number %d. number of ports is %d\n" , attr->port_num, dev->num_ports);return -EINVAL ;
drivers/infiniband/sw/rdmavt/qp.c +0 -2
@@ -505,8 +505,6 @@ void rvt_qp_exit(struct rvt_dev_info *rdi)if (qps_inuse)rvt_pr_err (rdi,"QP memory leak! %u still in use\n" , qps_inuse); -if (!rdi->qp_dev) -return ;kfree (rdi->qp_dev->qp_table);free_qpn_table (&rdi->qp_dev->qpn_table);
drivers/infiniband/sw/siw/siw_main.c +0 -3
@@ -472,9 +472,6 @@ static int siw_netdev_event(struct notifier_block *nb, unsigned long event,dev_dbg (&netdev->dev,"siw: event %lu\n" , event); -if (dev_net (netdev) != &init_net) -return NOTIFY_OK ; - base_dev =ib_device_get_by_netdev (netdev,RDMA_DRIVER_SIW );if (!base_dev)return NOTIFY_OK ;
drivers/infiniband/sw/siw/siw_qp_tx.c +1 -1
@@ -548,7 +548,7 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct socket *s) data_len -= plen; fp_off =0 ; -if (++seg > (int )MAX_ARRAY ) { +if (++seg >= (int )MAX_ARRAY ) {siw_dbg_qp (tx_qp (c_tx),"to many fragments\n" );siw_unmap_pages (page_array, kmap_mask); wqe->processed -= c_tx->bytes_unsent;
drivers/input/touchscreen/raspberrypi-ts.c +1 -2
@@ -137,7 +137,7 @@ static int rpi_ts_probe(struct platform_device *pdev)return -ENOENT ; } - fw =rpi_firmware_get (fw_node); + fw =devm_rpi_firmware_get (&pdev->dev, fw_node);of_node_put (fw_node);if (!fw)return -EPROBE_DEFER ;
@@ -164,7 +164,6 @@ static int rpi_ts_probe(struct platform_device *pdev) touchbuf = (u32 )ts->fw_regs_phys; error =rpi_firmware_property (fw,RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF , &touchbuf,sizeof (touchbuf)); -if (error || touchbuf !=0 ) {dev_warn (dev,"Failed to set touchbuf, %d\n" , error);return error;
drivers/leds/Kconfig +1 -1
@@ -802,7 +802,7 @@ config LEDS_SPI_BYTE config LEDS_TI_LMU_COMMON tristate "LED driver for TI LMU" depends on LEDS_CLASS - depends on REGMAP + select REGMAP help Say Y to enable the LED driver for TI LMU devices. This supports common features between the TI LM3532, LM3631, LM3632,
drivers/macintosh/Kconfig +1 -0
@@ -86,6 +86,7 @@ config ADB_PMU_LED config ADB_PMU_LED_DISK bool "Use front LED as DISK LED by default" + depends on ATA depends on ADB_PMU_LED depends on LEDS_CLASS select LEDS_TRIGGERS
drivers/macintosh/windfarm_smu_sat.c +1 -0
@@ -171,6 +171,7 @@ static void wf_sat_release(struct kref *ref)if (sat->nr >=0 ) sats[sat->nr] =NULL ; +of_node_put (sat->node);kfree (sat); }
drivers/mailbox/zynqmp-ipi-mailbox.c +11 -8
@@ -110,7 +110,7 @@ struct zynqmp_ipi_pdata {unsigned int method;u32 local_id;int num_mboxes; -struct zynqmp_ipi_mbox *ipi_mboxes; +struct zynqmp_ipi_mbox ipi_mboxes[]; };static struct device_driver zynqmp_ipi_mbox_driver = {
@@ -152,7 +152,7 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void *data)struct zynqmp_ipi_message *msg;u64 arg0, arg3;struct arm_smccc_res res; -int ret, i; +int ret, i, status =IRQ_NONE ; (void )irq; arg0 =SMC_IPI_MAILBOX_STATUS_ENQUIRY ;
@@ -170,11 +170,11 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void *data)memcpy_fromio (msg->data, mchan->req_buf, msg->len);mbox_chan_received_data (chan, (void *)msg); -return IRQ_HANDLED ; + status =IRQ_HANDLED ; } } } -return IRQ_NONE ; +return status; }/**
@@ -634,8 +634,13 @@ static int zynqmp_ipi_probe(struct platform_device *pdev)struct zynqmp_ipi_mbox *mbox;int num_mboxes, ret = -EINVAL ; - num_mboxes =of_get_child_count (np); - pdata =devm_kzalloc (dev,sizeof (*pdata) + (num_mboxes *sizeof (*mbox)), + num_mboxes =of_get_available_child_count (np); +if (num_mboxes ==0 ) { +dev_err (dev,"mailbox nodes not available\n" ); +return -EINVAL ; + } + + pdata =devm_kzalloc (dev,struct_size (pdata, ipi_mboxes, num_mboxes),GFP_KERNEL );if (!pdata)return -ENOMEM ;
@@ -649,8 +654,6 @@ static int zynqmp_ipi_probe(struct platform_device *pdev) } pdata->num_mboxes = num_mboxes; - pdata->ipi_mboxes = (struct zynqmp_ipi_mbox *) - ((char *)pdata +sizeof (*pdata)); mbox = pdata->ipi_mboxes;for_each_available_child_of_node (np, nc) {
drivers/md/dm-clone-target.c +1 -0
@@ -2232,6 +2232,7 @@ static int __init dm_clone_init(void) r =dm_register_target (&clone_target);if (r <0 ) {DMERR ("Failed to register clone target" ); +kmem_cache_destroy (_hydration_cache);return r; }
drivers/md/dm-flakey.c +2 -2
@@ -124,9 +124,9 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc,* Direction r or w? */ arg_name =dm_shift_arg (as); -if (!strcasecmp (arg_name,"w" )) +if (arg_name && !strcasecmp (arg_name,"w" )) fc->corrupt_bio_rw =WRITE ; -else if (!strcasecmp (arg_name,"r" )) +else if (arg_name && !strcasecmp (arg_name,"r" )) fc->corrupt_bio_rw =READ ;else { ti->error ="Invalid corrupt bio direction (r or w)" ;
drivers/md/dm-integrity.c +5 -3
@@ -4288,11 +4288,13 @@ static int __init dm_integrity_init(void) } r =dm_register_target (&integrity_target); - -if (r <0 ) +if (r <0 ) {DMERR ("register failed %d" , r); +kmem_cache_destroy (journal_io_cache); +return r; + } -return r; +return 0 ; } static void __exit dm_integrity_exit(void)
drivers/md/dm-ioctl.c +4 -3
@@ -1435,11 +1435,12 @@ static int table_clear(struct file *filp, struct dm_ioctl *param, size_t param_s hc->new_map =NULL ; } - param->flags &= ~DM_INACTIVE_PRESENT_FLAG ; - -__dev_status (hc->md, param); md = hc->md;up_write (&_hash_lock); + + param->flags &= ~DM_INACTIVE_PRESENT_FLAG ; +__dev_status (md, param); +if (old_map) {dm_sync_table (md);dm_table_destroy (old_map);
drivers/md/dm-verity-target.c +13 -4
@@ -471,13 +471,14 @@ static int verity_verify_io(struct dm_verity_io *io)struct bvec_iter start;unsigned b;struct crypto_wait wait; +struct bio *bio =dm_bio_from_per_bio_data (io, v->ti->per_io_data_size);for (b =0 ; b < io->n_blocks; b++) {int r;sector_t cur_block = io->block + b;struct ahash_request *req =verity_io_hash_req (v, io); -if (v->validated_blocks && +if (v->validated_blocks && bio->bi_status ==BLK_STS_OK &&likely (test_bit (cur_block, v->validated_blocks))) {verity_bv_skip_block (v, io, &io->iter);continue ;
@@ -525,9 +526,17 @@ static int verity_verify_io(struct dm_verity_io *io)else if (verity_fec_decode (v, io,DM_VERITY_BLOCK_TYPE_DATA , cur_block,NULL , &start) ==0 )continue ; -else if (verity_handle_err (v,DM_VERITY_BLOCK_TYPE_DATA , - cur_block)) -return -EIO ; +else { +if (bio->bi_status) { +/* +* Error correction failed; Just return error +*/ +return -EIO ; + } +if (verity_handle_err (v,DM_VERITY_BLOCK_TYPE_DATA , + cur_block)) +return -EIO ; + } }return 0 ;
drivers/md/raid10.c +51 -45
176 lines not on this page · raw message
drivers/md/raid5.c +8 -2
@@ -7159,6 +7159,12 @@ static int only_parity(int raid_disk, int algo, int raid_disks, int max_degradedreturn 0 ; } +static void raid5_set_io_opt (struct r5conf *conf) +{ +blk_queue_io_opt (conf->mddev->queue, (conf->chunk_sectors <<9 ) * + (conf->raid_disks - conf->max_degraded)); +} +static int raid5_run (struct mddev *mddev) {struct r5conf *conf;
@@ -7448,8 +7454,7 @@ static int raid5_run(struct mddev *mddev) chunk_size = mddev->chunk_sectors <<9 ;blk_queue_io_min (mddev->queue, chunk_size); -blk_queue_io_opt (mddev->queue, chunk_size * - (conf->raid_disks - conf->max_degraded)); +raid5_set_io_opt (conf); mddev->queue->limits.raid_partial_stripes_expensive =1 ;/* * We can only discard a whole stripe. It doesn't make sense to
@@ -8043,6 +8048,7 @@ static void end_reshape(struct r5conf *conf) / PAGE_SIZE);if (conf->mddev->queue->backing_dev_info->ra_pages <2 * stripe) conf->mddev->queue->backing_dev_info->ra_pages =2 * stripe; +raid5_set_io_opt (conf); } } }
drivers/media/pci/dm1105/dm1105.c +1 -0
@@ -1179,6 +1179,7 @@ static void dm1105_remove(struct pci_dev *pdev)struct dvb_demux *dvbdemux = &dev->demux;struct dmx_demux *dmx = &dvbdemux->dmx; +cancel_work_sync (&dev->ir.work);dm1105_ir_exit (dev); dmx->close (dmx);dvb_net_release (&dev->dvbnet);
drivers/media/pci/saa7134/saa7134-ts.c +1 -0
@@ -300,6 +300,7 @@ int saa7134_ts_start(struct saa7134_dev *dev)int saa7134_ts_fini (struct saa7134_dev *dev) { +del_timer_sync (&dev->ts_q.timeout);saa7134_pgtable_free (dev->pci, &dev->ts_q.pt);return 0 ; }
drivers/media/pci/saa7134/saa7134-vbi.c +1 -0
@@ -185,6 +185,7 @@ int saa7134_vbi_init1(struct saa7134_dev *dev)int saa7134_vbi_fini (struct saa7134_dev *dev) {/* nothing */ +del_timer_sync (&dev->vbi_q.timeout);return 0 ; }
drivers/media/pci/saa7134/saa7134-video.c +1 -0
@@ -2154,6 +2154,7 @@ int saa7134_video_init1(struct saa7134_dev *dev)void saa7134_video_fini (struct saa7134_dev *dev) { +del_timer_sync (&dev->video_q.timeout);/* free stuff */ vb2_queue_release (&dev->video_vbq);saa7134_pgtable_free (dev->pci, &dev->video_q.pt);
drivers/media/pci/ttpci/av7110_av.c +2 -2
@@ -822,10 +822,10 @@ static int write_ts_to_decoder(struct av7110 *av7110, int type, const u8 *buf, sav7110_ipack_flush (ipack);if (buf[3 ] &ADAPT_FIELD ) { +if (buf[4 ] > len -1 -4 ) +return 0 ; len -= buf[4 ] +1 ; buf += buf[4 ] +1 ; -if (!len) -return 0 ; }av7110_ipack_instant_repack (buf +4 , len -4 , ipack);
drivers/media/platform/rcar_fdp1.c +31 -19
124 lines not on this page · raw message
drivers/media/platform/sti/bdisp/bdisp-v4l2.c +2 -0
@@ -1308,6 +1308,8 @@ static int bdisp_probe(struct platform_device *pdev)init_waitqueue_head (&bdisp->irq_queue);INIT_DELAYED_WORK (&bdisp->timeout_work, bdisp_irq_timeout); bdisp->work_queue =create_workqueue (BDISP_NAME ); +if (!bdisp->work_queue) +return -ENOMEM ;spin_lock_init (&bdisp->slock);mutex_init (&bdisp->lock);
drivers/media/rc/gpio-ir-recv.c +2 -0
@@ -83,6 +83,8 @@ static int gpio_ir_recv_probe(struct platform_device *pdev) rcdev->map_name =RC_MAP_EMPTY ; gpio_dev->rcdev = rcdev; +if (of_property_read_bool (np,"wakeup-source" )) +device_init_wakeup (dev, true); rc =devm_rc_register_device (dev, rcdev);if (rc <0 ) {
drivers/misc/vmw_vmci/vmci_host.c +7 -1
@@ -160,10 +160,16 @@ static int vmci_host_close(struct inode *inode, struct file *filp)static __poll_t vmci_host_poll (struct file *filp,poll_table *wait) {struct vmci_host_dev *vmci_host_dev = filp->private_data; -struct vmci_ctx *context = vmci_host_dev->context; +struct vmci_ctx *context;__poll_t mask =0 ;if (vmci_host_dev->ct_type ==VMCIOBJ_CONTEXT ) { +/* +* Read context only if ct_type == VMCIOBJ_CONTEXT to make +* sure that context is initialized +*/ + context = vmci_host_dev->context; +/* Check for VMCI calls to this VM context. */ if (wait) poll_wait(filp, &context->host_context.wait_queue,
drivers/mmc/host/sdhci-of-esdhc.c +11 -13
@@ -124,6 +124,7 @@ static u32 esdhc_readl_fixup(struct sdhci_host *host,return ret; } } +/* * The DAT[3:0] line signal levels and the CMD line signal level are * not compatible with standard SDHC register. The line signal levels
@@ -135,6 +136,16 @@ static u32 esdhc_readl_fixup(struct sdhci_host *host, ret = value &0x000fffff ; ret |= (value >>4 ) &SDHCI_DATA_LVL_MASK ; ret |= (value <<1 ) &SDHCI_CMD_LVL ; + +/* +* Some controllers have unreliable Data Line Active +* bit for commands with busy signal. This affects +* Command Inhibit (data) bit. Just ignore it since +* MMC core driver has already polled card status +* with CMD13 after any command with busy siganl. +*/ +if (esdhc->quirk_ignore_data_inhibit) + ret &= ~SDHCI_DATA_INHIBIT ;return ret; }
@@ -149,19 +160,6 @@ static u32 esdhc_readl_fixup(struct sdhci_host *host,return ret; } -/* -* Some controllers have unreliable Data Line Active -* bit for commands with busy signal. This affects -* Command Inhibit (data) bit. Just ignore it since -* MMC core driver has already polled card status -* with CMD13 after any command with busy siganl. -*/ -if ((spec_reg ==SDHCI_PRESENT_STATE ) && - (esdhc->quirk_ignore_data_inhibit == true)) { - ret = value & ~SDHCI_DATA_INHIBIT ; -return ret; - } - ret = value;return ret; }
drivers/mtd/spi-nor/cadence-quadspi.c +34 -43
152 lines not on this page · raw message
drivers/mtd/ubi/eba.c +14 -5
@@ -947,7 +947,7 @@ static int try_write_vid_and_data(struct ubi_volume *vol, int lnum, int offset, int len) {struct ubi_device *ubi = vol->ubi; -int pnum, opnum, err, vol_id = vol->vol_id; +int pnum, opnum, err, err2, vol_id = vol->vol_id; pnum =ubi_wl_get_peb (ubi);if (pnum <0 ) {
@@ -982,10 +982,19 @@ static int try_write_vid_and_data(struct ubi_volume *vol, int lnum, out_put:up_read (&ubi->fm_eba_sem); -if (err && pnum >=0 ) - err =ubi_wl_put_peb (ubi, vol_id, lnum, pnum,1 ); -else if (!err && opnum >=0 ) - err =ubi_wl_put_peb (ubi, vol_id, lnum, opnum,0 ); +if (err && pnum >=0 ) { + err2 =ubi_wl_put_peb (ubi, vol_id, lnum, pnum,1 ); +if (err2) { +ubi_warn (ubi,"failed to return physical eraseblock %d, error %d" , + pnum, err2); + } + }else if (!err && opnum >=0 ) { + err2 =ubi_wl_put_peb (ubi, vol_id, lnum, opnum,0 ); +if (err2) { +ubi_warn (ubi,"failed to return physical eraseblock %d, error %d" , + opnum, err2); + } + }return err; }
drivers/net/dsa/mt7530.c +2 -2
@@ -397,9 +397,9 @@ mt7530_pad_clk_setup(struct dsa_switch *ds, int mode)case PHY_INTERFACE_MODE_TRGMII : trgint =1 ;if (priv->id ==ID_MT7621 ) { -/* PLL frequency: 150MHz: 1.2GBit */ +/* PLL frequency: 125MHz: 1.0GBit */ if (xtal ==HWTRAP_XTAL_40MHZ ) - ncpo1 =0x0780 ; + ncpo1 =0x0640 ;if (xtal ==HWTRAP_XTAL_25MHZ ) ncpo1 =0x0a00 ; }else {/* PLL frequency: 250MHz: 2.0Gbit */
drivers/net/dsa/mv88e6xxx/chip.c +1 -0
@@ -3876,6 +3876,7 @@ static const struct mv88e6xxx_ops mv88e6321_ops = { .set_cpu_port = mv88e6095_g1_set_cpu_port, .set_egress_port = mv88e6095_g1_set_egress_port, .watchdog_ops = &mv88e6390_watchdog_ops, + .mgmt_rsvd2cpu = mv88e6352_g2_mgmt_rsvd2cpu, .reset = mv88e6352_g1_reset, .vtu_getnext = mv88e6185_g1_vtu_getnext, .vtu_loadpurge = mv88e6185_g1_vtu_loadpurge,
drivers/net/ethernet/amd/nmclan_cs.c +1 -1
@@ -652,7 +652,7 @@ static int nmclan_config(struct pcmcia_device *link) }else {pr_notice ("mace id not found: %x %x should be 0x40 0x?9\n" , sig[0 ], sig[1 ]); -return -ENODEV ; + goto failed; } }
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +12 -11
@@ -2542,6 +2542,14 @@ static int ixgbe_get_rss_hash_opts(struct ixgbe_adapter *adapter,return 0 ; } +static int ixgbe_rss_indir_tbl_max (struct ixgbe_adapter *adapter) +{ +if (adapter->hw.mac.type < ixgbe_mac_X550) +return 16 ; +else +return 64 ; +} +static int ixgbe_get_rxnfc (struct net_device *dev,struct ethtool_rxnfc *cmd,u32 *rule_locs) {
@@ -2550,7 +2558,8 @@ static int ixgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,switch (cmd->cmd) {case ETHTOOL_GRXRINGS : - cmd->data = adapter->num_rx_queues; + cmd->data =min_t (int, adapter->num_rx_queues, +ixgbe_rss_indir_tbl_max (adapter)); ret =0 ;break ;case ETHTOOL_GRXCLSRLCNT :
@@ -2952,14 +2961,6 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)return ret; } -static int ixgbe_rss_indir_tbl_max (struct ixgbe_adapter *adapter) -{ -if (adapter->hw.mac.type < ixgbe_mac_X550) -return 16 ; -else -return 64 ; -} -static u32 ixgbe_get_rxfh_key_size (struct net_device *netdev) {return IXGBE_RSS_KEY_SIZE ;
@@ -3008,8 +3009,8 @@ static int ixgbe_set_rxfh(struct net_device *netdev, const u32 *indir,int i;u32 reta_entries =ixgbe_rss_indir_tbl_entries (adapter); -if (hfunc) -return -EINVAL ; +if (hfunc !=ETH_RSS_HASH_NO_CHANGE && hfunc !=ETH_RSS_HASH_TOP ) +return -EOPNOTSUPP ;/* Fill out the redirection table */ if (indir) {
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +1 -1
@@ -573,7 +573,7 @@ static int ionic_get_rxnfc(struct net_device *netdev, info->data = lif->nxqs;break ;default : -netdev_err (netdev,"Command parameter %d is not supported\n" , +netdev_dbg (netdev,"Command parameter %d is not supported\n" , info->cmd); err = -EOPNOTSUPP ; }
drivers/net/virtio_net.c +27 -16
59 lines not on this page · raw message
drivers/net/wireless/ath/ath5k/eeprom.c +1 -1
@@ -529,7 +529,7 @@ ath5k_eeprom_read_freq_list(struct ath5k_hw *ah, int *offset, int max, ee->ee_n_piers[mode]++; freq2 = (val >>8 ) &0xff ; -if (!freq2) +if (!freq2 || i >= max)break ; pc[i++].freq = ath5k_eeprom_bin2freq(ee,
drivers/net/wireless/ath/ath6kl/bmi.c +1 -1
@@ -246,7 +246,7 @@ int ath6kl_bmi_execute(struct ath6kl *ar, u32 addr, u32 *param)return -EACCES ; } - size =sizeof (cid) +sizeof (addr) +sizeof (param); + size =sizeof (cid) +sizeof (addr) +sizeof (*param);if (size > ar->bmi.max_cmd_size) {WARN_ON (1 );return -EINVAL ;
drivers/net/wireless/ath/ath6kl/htc_pipe.c +2 -2
@@ -960,8 +960,8 @@ static int ath6kl_htc_pipe_rx_complete(struct ath6kl *ar, struct sk_buff *skb,* Thus the possibility of ar->htc_target being NULL * via ath6kl_recv_complete -> ath6kl_usb_io_comp_work. */ -if (WARN_ON_ONCE (!target)) { -ath6kl_err ("Target not yet initialized\n" ); +if (!target) { +ath6kl_dbg (ATH6KL_DBG_HTC ,"Target not yet initialized\n" ); status = -EINVAL ; goto free_skb; }
drivers/net/wireless/ath/ath9k/hif_usb.c +19 -0
@@ -534,6 +534,24 @@ static struct ath9k_htc_hif hif_usb = { .send = hif_usb_send, }; +/* Need to free remain_skb allocated in ath9k_hif_usb_rx_stream +* in case ath9k_hif_usb_rx_stream wasn't called next time to +* process the buffer and subsequently free it. +*/ +static void ath9k_hif_usb_free_rx_remain_skb (struct hif_device_usb *hif_dev) +{ +unsigned long flags; + +spin_lock_irqsave (&hif_dev->rx_lock, flags); +if (hif_dev->remain_skb) { +dev_kfree_skb_any (hif_dev->remain_skb); + hif_dev->remain_skb =NULL ; + hif_dev->rx_remain_len =0 ; +RX_STAT_INC (hif_dev, skb_dropped); + }
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/trans.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/base.c +72 -72
144 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/cam.c +40 -42
82 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/core.c +130 -129
259 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/debug.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/debug.h +11 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/efuse.c +36 -36
72 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/pci.c +141 -141
282 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/ps.c +49 -49
98 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/regd.c +9 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/usb.c +9 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/mac.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/nvme/target/fcloop.c +27 -21
48 lines not on this page · raw message
drivers/platform/x86/touchscreen_dmi.c +24 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/generic-adc-battery.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/pwm/pwm-mtk-disp.c +43 -51
94 lines not on this page · raw message
drivers/regulator/core.c +85 -8
93 lines not on this page · raw message
drivers/staging/iio/resolver/ad2s1210.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8192e/rtl8192e/rtl_core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/tty/tty_ioctl.c +33 -12
45 lines not on this page · raw message
fs/ubifs/tnc.c +86 -56
142 lines not on this page · raw message
include/linux/mailbox/zynqmp-ipi-message.h +1 -1
Lines of this file are not shown. View the raw message.
include/soc/bcm2835/raspberrypi-firmware.h +10 -0
Lines of this file are not shown. View the raw message.
kernel/time/tick-sched.c +77 -42
119 lines not on this page · raw message
lib/debugobjects.c +81 -60
141 lines not on this page · raw message
net/netlink/af_netlink.c +23 -52
75 lines not on this page · raw message
tools/perf/pmu-events/arch/powerpc/power9/other.json +2 -2
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/powerpc/power9/pipeline.json +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +2 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.