Linux 5.4.160
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.160 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/admin-guide/kernel-parameters.txt | 7 Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt | 23 - Makefile | 2 arch/arm/Makefile | 22 - arch/arm/boot/dts/at91-tse850-3.dts | 2 arch/arm/boot/dts/omap3-gta04.dtsi | 2 arch/arm/boot/dts/qcom-msm8974.dtsi | 4 arch/arm/boot/dts/stm32mp157c.dtsi | 16 - arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 2 arch/arm/kernel/stacktrace.c | 3 arch/arm/mm/Kconfig | 2 arch/arm/mm/mmu.c | 4 arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 2 arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts | 2 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 2 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 arch/arm64/include/asm/pgtable.h | 12 arch/arm64/net/bpf_jit_comp.c | 5 arch/ia64/Kconfig.debug | 2 arch/ia64/kernel/kprobes.c | 9 arch/m68k/Kconfig.machine | 1 arch/mips/Kconfig | 1 arch/mips/include/asm/mips-cm.h | 12 arch/mips/kernel/mips-cm.c | 21 - arch/mips/kernel/r2300_fpu.S | 4 arch/mips/kernel/syscall.c | 9 arch/mips/lantiq/xway/dma.c | 14 - arch/parisc/kernel/entry.S | 2 arch/parisc/kernel/smp.c | 19 + arch/parisc/kernel/unwind.c | 21 + arch/parisc/kernel/vmlinux.lds.S | 3 arch/parisc/mm/fixmap.c | 5 arch/parisc/mm/init.c | 4 arch/powerpc/include/asm/code-patching.h | 1 arch/powerpc/include/asm/security_features.h | 5 arch/powerpc/kernel/security.c | 5 arch/powerpc/lib/code-patching.c | 7 arch/powerpc/net/bpf_jit.h | 33 +- arch/powerpc/net/bpf_jit64.h | 8 arch/powerpc/net/bpf_jit_comp64.c | 91 +++++-- arch/powerpc/platforms/44x/fsp2.c | 2 arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | 3 arch/powerpc/platforms/powernv/opal-prd.c | 12 arch/s390/kvm/priv.c | 2 arch/s390/mm/gmap.c | 5 arch/sh/kernel/cpu/fpu.c | 10 arch/x86/hyperv/hv_init.c | 5 arch/x86/include/asm/page_64_types.h | 2 arch/x86/kernel/cpu/amd.c | 2 arch/x86/kernel/cpu/common.c | 44 ++- arch/x86/kernel/cpu/cpu.h | 1 arch/x86/kernel/cpu/hygon.c | 2 arch/x86/kernel/irq.c | 4 arch/x86/kvm/vmx/vmx.c | 8 arch/x86/mm/mem_encrypt_identity.c | 9 block/blk-mq.c | 1 crypto/Kconfig | 2 crypto/pcrypt.c | 12 drivers/acpi/acpica/acglobal.h | 2 drivers/acpi/acpica/hwesleep.c | 8 drivers/acpi/acpica/hwsleep.c | 11 drivers/acpi/acpica/hwxfsleep.c | 7 drivers/acpi/battery.c | 2 drivers/acpi/pmic/intel_pmic.c | 51 ++- drivers/android/binder.c | 22 + drivers/ata/libata-core.c | 2 drivers/ata/libata-eh.c | 8 drivers/auxdisplay/ht16k33.c | 66 ++--- drivers/auxdisplay/img-ascii-lcd.c | 10 drivers/block/ataflop.c | 18 - drivers/block/zram/zram_drv.c | 2 drivers/bluetooth/btmtkuart.c | 13 - drivers/char/hw_random/mtk-rng.c | 9 drivers/char/ipmi/ipmi_msghandler.c | 10 drivers/char/ipmi/ipmi_watchdog.c | 17 - drivers/char/tpm/tpm2-space.c | 3 drivers/clk/at91/pmc.c | 5 drivers/clk/mvebu/ap-cpu-clk.c | 14 - drivers/clocksource/Kconfig | 1 drivers/cpuidle/sysfs.c | 5 drivers/crypto/caam/caampkc.c | 19 + drivers/crypto/caam/regs.h | 3 drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 13 + drivers/crypto/qat/qat_common/adf_vf_isr.c | 6 drivers/crypto/s5p-sss.c | 2 drivers/dma-buf/dma-buf.c | 1 drivers/dma/at_xdmac.c | 2 drivers/dma/dmaengine.h | 2 drivers/edac/amd64_edac.c | 22 + drivers/edac/sb_edac.c | 2 drivers/firmware/psci/psci_checker.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 2 drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 4 drivers/gpu/drm/drm_panel_orientation_quirks.c | 47 +++ drivers/gpu/drm/drm_plane_helper.c | 1 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 8 drivers/gpu/drm/msm/msm_gem.c | 4 drivers/gpu/drm/v3d/v3d_gem.c | 4 drivers/gpu/drm/virtio/virtgpu_vq.c | 8 drivers/hid/hid-u2fzero.c | 10 drivers/hv/hyperv_vmbus.h | 1 drivers/hwmon/hwmon.c | 6 drivers/hwmon/pmbus/lm25066.c | 25 + drivers/i2c/busses/i2c-xlr.c | 6 drivers/iio/dac/ad5446.c | 9 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 drivers/infiniband/hw/mlx4/qp.c | 4 drivers/infiniband/hw/qedr/verbs.c | 15 - drivers/infiniband/sw/rxe/rxe_param.h | 2 drivers/input/joystick/iforce/iforce-usb.c | 2 drivers/input/mouse/elantech.c | 13 + drivers/input/serio/i8042-x86ia64io.h | 14 + drivers/irqchip/irq-bcm6345-l1.c | 2 drivers/irqchip/irq-s3c24xx.c | 22 + drivers/irqchip/irq-sifive-plic.c | 8 drivers/media/dvb-frontends/mn88443x.c | 18 + drivers/media/i2c/ir-kbd-i2c.c | 1 drivers/media/i2c/mt9p031.c | 28 ++ drivers/media/i2c/tda1997x.c | 8 drivers/media/pci/cx23885/cx23885-alsa.c | 3 drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 27 +- drivers/media/platform/mtk-vpu/mtk_vpu.c | 5 drivers/media/platform/rcar-vin/rcar-csi2.c | 2 drivers/media/platform/s5p-mfc/s5p_mfc.c | 6 drivers/media/platform/stm32/stm32-dcmi.c | 19 - drivers/media/radio/radio-wl1273.c | 2 drivers/media/radio/si470x/radio-si470x-i2c.c | 2 drivers/media/radio/si470x/radio-si470x-usb.c | 2 drivers/media/rc/ite-cir.c | 2 drivers/media/rc/mceusb.c | 1 drivers/media/spi/cxd2880-spi.c | 2 drivers/media/usb/dvb-usb/az6027.c | 1 drivers/media/usb/dvb-usb/dibusb-common.c | 2 drivers/media/usb/em28xx/em28xx-cards.c | 5 drivers/media/usb/em28xx/em28xx-core.c | 5 drivers/media/usb/tm6000/tm6000-video.c | 3 drivers/media/usb/uvc/uvc_driver.c | 7 drivers/media/usb/uvc/uvc_v4l2.c | 7 drivers/media/usb/uvc/uvc_video.c | 5 drivers/media/v4l2-core/v4l2-ioctl.c | 60 +++- drivers/memory/fsl_ifc.c | 13 - drivers/memstick/core/ms_block.c | 2 drivers/memstick/host/jmb38x_ms.c | 2 drivers/memstick/host/r592.c | 8 drivers/mmc/host/Kconfig | 2 drivers/mmc/host/dw_mmc.c | 3 drivers/mmc/host/mxs-mmc.c | 10 drivers/mmc/host/sdhci-omap.c | 3 drivers/mtd/mtdcore.c | 4 drivers/mtd/spi-nor/hisi-sfc.c | 1 drivers/net/bonding/bond_sysfs_slave.c | 36 -- drivers/net/dsa/rtl8366rb.c | 2 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 8 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 20 + drivers/net/ethernet/cavium/thunder/nic_main.c | 2 drivers/net/ethernet/cavium/thunder/nicvf_main.c | 4 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 9 drivers/net/ethernet/ibm/ibmvnic.c | 5 drivers/net/ethernet/netronome/nfp/bpf/main.c | 16 - drivers/net/ethernet/netronome/nfp/bpf/main.h | 2 drivers/net/ethernet/netronome/nfp/bpf/offload.c | 17 + drivers/net/ethernet/realtek/r8169_main.c | 1 drivers/net/ethernet/sfc/ptp.c | 4 drivers/net/ethernet/sfc/siena_sriov.c | 2 drivers/net/ethernet/ti/davinci_emac.c | 16 + drivers/net/phy/micrel.c | 5 drivers/net/phy/phylink.c | 2 drivers/net/vmxnet3/vmxnet3_drv.c | 1 drivers/net/vrf.c | 28 +- drivers/net/wireless/ath/ath10k/mac.c | 45 ++- drivers/net/wireless/ath/ath10k/usb.c | 7 drivers/net/wireless/ath/ath10k/wmi.c | 4 drivers/net/wireless/ath/ath10k/wmi.h | 3 drivers/net/wireless/ath/ath6kl/usb.c | 7 drivers/net/wireless/ath/ath9k/main.c | 4 drivers/net/wireless/ath/dfs_pattern_detector.c | 10 drivers/net/wireless/ath/wcn36xx/dxe.c | 12 drivers/net/wireless/ath/wcn36xx/main.c | 4 drivers/net/wireless/ath/wcn36xx/smd.c | 44 ++- drivers/net/wireless/broadcom/b43/phy_g.c | 2 drivers/net/wireless/broadcom/b43legacy/radio.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 10 drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 3 drivers/net/wireless/marvell/libertas/if_usb.c | 2 drivers/net/wireless/marvell/libertas_tf/if_usb.c | 2 drivers/net/wireless/marvell/mwifiex/11n.c | 5 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 32 -- drivers/net/wireless/marvell/mwifiex/pcie.c | 8 drivers/net/wireless/marvell/mwifiex/usb.c | 16 + drivers/net/wireless/marvell/mwl8k.c | 2 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 13 - drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c | 14 - drivers/net/wireless/rsi/rsi_91x_core.c | 2 drivers/net/wireless/rsi/rsi_91x_hal.c | 10 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 74 +---- drivers/net/wireless/rsi/rsi_91x_main.c | 17 + drivers/net/wireless/rsi/rsi_91x_mgmt.c | 24 + drivers/net/wireless/rsi/rsi_91x_sdio.c | 5 drivers/net/wireless/rsi/rsi_91x_usb.c | 5 drivers/net/wireless/rsi/rsi_hal.h | 11 drivers/net/wireless/rsi/rsi_main.h | 15 - drivers/net/xen-netfront.c | 8 drivers/nfc/pn533/pn533.c | 6 drivers/nvme/host/multipath.c | 9 drivers/nvme/host/rdma.c | 2 drivers/nvme/target/configfs.c | 2 drivers/nvme/target/tcp.c | 21 + drivers/opp/of.c | 2 drivers/pci/controller/pci-aardvark.c | 129 ++++++++-- drivers/pci/pci-bridge-emul.c | 13 + drivers/pci/quirks.c | 1 drivers/phy/qualcomm/phy-qcom-qusb2.c | 16 - drivers/pinctrl/core.c | 2 drivers/platform/x86/thinkpad_acpi.c | 2 drivers/platform/x86/wmi.c | 9 drivers/power/supply/bq27xxx_battery_i2c.c | 3 drivers/power/supply/max17042_battery.c | 8 drivers/power/supply/rt5033_battery.c | 2 drivers/regulator/s5m8767.c | 21 - drivers/reset/reset-socfpga.c | 26 ++ drivers/s390/char/tape_std.c | 3 drivers/s390/cio/css.c | 4 drivers/s390/cio/device_ops.c | 12 drivers/scsi/csiostor/csio_lnode.c | 2 drivers/scsi/dc395x.c | 1 drivers/scsi/qla2xxx/qla_attr.c | 24 + drivers/scsi/qla2xxx/qla_gbl.h | 2 drivers/scsi/qla2xxx/qla_init.c | 4 drivers/scsi/qla2xxx/qla_mr.c | 23 - drivers/scsi/qla2xxx/qla_os.c | 37 -- drivers/scsi/qla2xxx/qla_target.c | 14 - drivers/soc/fsl/dpaa2-console.c | 1 drivers/soc/tegra/pmc.c | 2 drivers/spi/spi-bcm-qspi.c | 5 drivers/spi/spi-pl022.c | 5 drivers/staging/ks7010/Kconfig | 3 drivers/staging/media/imx/imx-media-dev-common.c | 2 drivers/staging/media/ipu3/ipu3-v4l2.c | 7 drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 3 drivers/tty/serial/8250/8250_dw.c | 2 drivers/tty/serial/serial_core.c | 16 + drivers/tty/serial/xilinx_uartps.c | 3 drivers/usb/chipidea/core.c | 23 + drivers/usb/gadget/legacy/hid.c | 4 drivers/usb/host/xhci-hub.c | 3 drivers/usb/host/xhci-pci.c | 16 + drivers/usb/misc/iowarrior.c | 8 drivers/usb/serial/keyspan.c | 15 - drivers/video/backlight/backlight.c | 6 drivers/video/fbdev/chipsfb.c | 2 drivers/watchdog/Kconfig | 2 drivers/watchdog/f71808e_wdt.c | 4 drivers/watchdog/omap_wdt.c | 6 drivers/xen/balloon.c | 86 ++++-- drivers/xen/xen-pciback/conf_space_capability.c | 2 fs/btrfs/disk-io.c | 3 fs/btrfs/tree-log.c | 4 fs/btrfs/volumes.c | 14 - fs/f2fs/inode.c | 2 fs/f2fs/namei.c | 2 fs/fuse/dev.c | 14 - fs/jfs/jfs_mount.c | 51 +-- fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 fs/nfs/nfs4proc.c | 15 - fs/nfs/pnfs_nfs.c | 4 fs/nfs/write.c | 17 - fs/ocfs2/file.c | 8 fs/orangefs/dcache.c | 4 fs/overlayfs/file.c | 47 +++ fs/quota/quota_tree.c | 15 + fs/tracefs/inode.c | 3 include/linux/console.h | 2 include/linux/filter.h | 1 include/linux/libata.h | 2 include/linux/lsm_hooks.h | 28 +- include/linux/rpmsg.h | 2 include/linux/sched/task_stack.h | 4 include/linux/security.h | 33 +- include/net/llc.h | 4 include/net/neighbour.h | 12 include/net/sch_generic.h | 4 include/net/strparser.h | 16 + include/net/udp.h | 5 include/uapi/linux/pci_regs.h | 6 kernel/bpf/core.c | 4 kernel/cgroup/cgroup.c | 31 ++ kernel/kprobes.c | 3 kernel/locking/lockdep.c | 2 kernel/power/swap.c | 7 kernel/rcu/tree_exp.h | 2 kernel/signal.c | 18 - kernel/trace/tracing_map.c | 40 +-- kernel/workqueue.c | 15 - lib/decompress_unxz.c | 2 lib/iov_iter.c | 5 lib/xz/xz_dec_lzma2.c | 21 + lib/xz/xz_dec_stream.c | 6 mm/oom_kill.c | 23 - mm/zsmalloc.c | 7 net/8021q/vlan.c | 3 net/8021q/vlan_dev.c | 3 net/9p/client.c | 2 net/bluetooth/l2cap_sock.c | 10 net/bluetooth/sco.c | 33 +- net/can/j1939/main.c | 7 net/can/j1939/transport.c | 6 net/core/dev.c | 5 net/core/filter.c | 21 + net/core/neighbour.c | 48 ++- net/core/net-sysfs.c | 55 ++++ net/core/net_namespace.c | 4 net/core/stream.c | 3 net/core/sysctl_net_core.c | 2 net/ipv4/tcp.c | 2 net/ipv6/addrconf.c | 3 net/ipv6/udp.c | 2 net/netfilter/nf_conntrack_proto_udp.c | 7 net/netfilter/nfnetlink_queue.c | 2 net/netfilter/nft_dynset.c | 11 net/rxrpc/rtt.c | 2 net/sched/sch_generic.c | 9 net/sched/sch_mq.c | 24 + net/sched/sch_mqprio.c | 23 + net/sched/sch_taprio.c | 27 +- net/smc/af_smc.c | 20 - net/strparser/strparser.c | 10 net/sunrpc/xprt.c | 28 +- net/vmw_vsock/af_vsock.c | 2 samples/kprobes/kretprobe_example.c | 2 scripts/leaking_addresses.pl | 3 security/apparmor/label.c | 4 security/integrity/evm/evm_main.c | 2 security/security.c | 14 - security/selinux/hooks.c | 36 +- security/smack/smackfs.c | 11 sound/core/oss/mixer_oss.c | 43 ++- sound/core/timer.c | 17 - sound/pci/hda/hda_intel.c | 28 +- sound/pci/hda/patch_realtek.c | 4 sound/soc/codecs/cs42l42.c | 9 sound/synth/emux/emux.c | 2 sound/usb/6fire/comm.c | 2 sound/usb/6fire/firmware.c | 6 sound/usb/line6/driver.c | 14 - sound/usb/line6/driver.h | 2 sound/usb/line6/podhd.c | 6 sound/usb/line6/toneport.c | 2 sound/usb/misc/ua101.c | 4 sound/usb/quirks.c | 1 tools/lib/bpf/btf.c | 16 - tools/perf/util/bpf-event.c | 4 tools/testing/selftests/bpf/progs/strobemeta.h | 4 tools/testing/selftests/bpf/test_progs.c | 4 tools/testing/selftests/kvm/x86_64/mmio_warning_test.c | 2 tools/testing/selftests/net/udpgso_bench_rx.c | 11 359 files changed, 2538 insertions(+), 1210 deletions(-)
Ahmad Fatoum (1):
watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
Ajay Singh (1):
wilc1000: fix possible memory leak in cfg_scan_result()
Alagu Sankar (1):
ath10k: high latency fixes for beacon buffer
Aleksander Jan Bajkowski (2):
MIPS: lantiq: dma: add small delay after reset
MIPS: lantiq: dma: reset correct number of channel
Alex Bee (1):
arm64: dts: rockchip: Fix GPU register width for RK3328
Alex Deucher (1):
drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
Alex Xu (Hello71) (1):
drm/plane-helper: fix uninitialized variable reference
Alexander Tsoy (1):
ALSA: usb-audio: Add registration quirk for JBL Quantum 400
Alok Prasad (1):
RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
Amit Engel (1):
nvmet-tcp: fix header digest verification
Anand Jain (1):
btrfs: call btrfs_check_rw_degradable only if there is a missing device
Anand Moon (1):
arm64: dts: meson-g12a: Fix the pwm regulator supply properties
Anant Thazhemadam (1):
media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
Anders Roxell (1):
PM: hibernate: fix sparse warnings
Andrea Righi (1):
selftests/bpf: Fix fclose/pclose mismatch in test_progs
Andreas Gruenbacher (1):
iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
Andreas Kemnade (1):
arm: dts: omap3-gta04a4: accelerometer irq fix
Andrej Shadura (2):
HID: u2fzero: clarify error check and length calculations
HID: u2fzero: properly handle timeouts in usb_submit_urb
Andrii Nakryiko (3):
selftests/bpf: Fix strobemeta selftest regression
libbpf: Fix BTF data layout checks and allow empty BTF selftests/bpf: Fix also no-alu32 strobemeta selftest
André Almeida (1):
ACPI: battery: Accept charges over the design capacity as full
Andy Shevchenko (1):
serial: 8250_dw: Drop wrong use of ACPI_PTR()
Anel Orazgaliyeva (1):
cpuidle: Fix kobject memory leaks in error paths
Anssi Hannula (1):
serial: xilinx_uartps: Fix race condition causing stuck TX
Antoine Tenart (1):
net-sysfs: try not to restart the syscall if it will fail eventually
Arnaud Pouliquen (1):
rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
Arnd Bergmann (8):
hyperv/vmbus: include linux/bitops.h
ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
drm/amdgpu: fix warning for overflow check
crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
memstick: avoid out-of-range warning
arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
ARM: 9156/1: drop cc-option fallbacks for architecture selection
ath10k: fix invalid dma_addr_t token assignment
Arun Easi (1):
scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
Austin Kim (2):
ALSA: synth: missing check for possible NULL after the call to kstrdup
evm: mark evm_fixmode as __ro_after_init
Baptiste Lepers (1):
pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
Barnabás Pőcze (1):
platform/x86: wmi: do not fail if disabling fails
Bastien Roucariès (1):
ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
Benjamin Li (2):
wcn36xx: handle connection loss indication
wcn36xx: add proper DMA memory barriers in rx path
Bixuan Cui (1):
powerpc/44x/fsp2: add missing of_node_put
Bryant Mairs (1):
drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
Charan Teja Reddy (1):
dma-buf: WARN on dmabuf release with pending attachments
Chengfeng Ye (1):
nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
Christian Löhle (1):
mmc: dw_mmc: Dont wait for DRTO on Write RSP error
Christophe JAILLET (5):
media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
mmc: mxs-mmc: disable regulator on error and in the remove function
clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths soc/tegra: Fix an error handling path in tegra_powergate_power_up()
i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
Christophe Leroy (1):
video: fbdev: chipsfb: use memset_io() instead of memset()
Claudiu Beznea (1):
dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
Clément Léger (1):
clk: at91: check pmc node status before registering syscore ops
Colin Ian King (3):
media: cxd2880-spi: Fix a null pointer dereference on error handling path
media: cx23885: Fix snd_card_free call on null card pointer
media: em28xx: Don't use ops->suspend if it is NULL
Corey Minyard (1):
ipmi: Disable some operations during a panic
Cyril Strejc (1):
net: multicast: calculate csum of looped-back and forwarded packets
Damien Le Moal (1):
libata: fix read log timeout value
Dan Carpenter (8):
tpm: Check for integer overflow in tpm2_map_response_body()
b43legacy: fix a lower bounds test
b43: fix a lower bounds test
memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() drm/msm: uninitialized variable in msm_gem_import()
usb: gadget: hid: fix error code in do_config()
scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
zram: off by one in read_block_state()
Daniel Borkmann (2):
net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
Daniel Jordan (1):
crypto: pcrypt - Delay write to padata->info
David Hildenbrand (1):
s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
Desmond Cheong Zhi Xi (1):
Bluetooth: fix init and cleanup of sco_conn.timeout_work
Dinghao Liu (1):
Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
Dirk Bender (1):
media: mt9p031: Fix corrupted frame after restarting stream
Dmitriy Ulitin (1):
media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
Dmitry Bogdanov (1):
scsi: qla2xxx: Fix unmap of already freed sgl
Dominique Martinet (1):
9p/net: fix missing error check in p9_check_errors
Dongli Zhang (2):
xen/netfront: stop tx queues during live migration
vmxnet3: do not stop tx queues after netif_device_detach()
Dongliang Mu (2):
JFS: fix memleak in jfs_mount
memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
Dust Li (1):
net/smc: fix sk_refcnt underflow on linkdown and fallback
Eiichi Tsukata (1):
vsock: prevent unnecessary refcnt inc for nonblocking connect
Eric Badger (1):
EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
Eric Dumazet (3):
net: annotate data-race in neigh_output()
llc: fix out-of-bound array index in llc_sk_dev_hash() net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
Eric W. Biederman (3):
signal: Remove the bogus sigkill_pending in ptrace_stop signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
Erik Ekman (1):
sfc: Don't use netif_info before net_device setup
Evgeny Novikov (2):
media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
Filipe Manana (1):
btrfs: fix lost error handling when replaying directory deletes
Florian Westphal (2):
vrf: run conntrack only in context of lower/physdev for locally generated packets
netfilter: nfnetlink_queue: fix OOB when mac header was cleared
Geert Uytterhoeven (4):
mips: cm: Convert to bitfield API to fix out-of-bounds access
auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
auxdisplay: ht16k33: Connect backlight to fbdev
auxdisplay: ht16k33: Fix frame buffer device blanking
Giovanni Cabiddu (2):
crypto: qat - detect PFVF collision after ACK
crypto: qat - disregard spurious PFVF interrupts
Greg Kroah-Hartman (1):
Linux 5.4.160
Guangbin Huang (1):
net: hns3: allow configure ETS bandwidth of all TCs
Guo Ren (1):
irqchip/sifive-plic: Fixup EOI failed when masked
Halil Pasic (1):
s390/cio: make ccw_device_dma_* more robust
Hannes Reinecke (1):
nvme: drop scan_lock and always kick requeue list when removing namespaces
Hans de Goede (6):
drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
Helge Deller (4):
parisc: Fix ptrace check on syscall return
task_stack: Fix end_of_stack() for architectures with upwards-growing stack
parisc: Fix backtrace to always include init funtion names
parisc: Fix set_fixmap() on PA1.x CPUs
Henrik Grimler (1):
power: supply: max17042_battery: use VFSOC for capacity when no rsns
Huang Guobin (1):
bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
Iago Toral Quiroga (1):
drm/v3d: fix wait for TMU write combiner flush
Ian Rogers (1):
perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
Ingmar Klein (1):
PCI: Mark Atheros QCA6174 to avoid bus reset
Israel Rukshin (2):
nvmet: fix use-after-free when a port is removed
nvmet-tcp: fix use-after-free when a port is removed
Jackie Liu (3):
ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
ar7: fix kernel builds for compiler test
Jaegeuk Kim (1):
f2fs: should use GFP_NOFS for directory inodes
Jakob Hauser (1):
power: supply: rt5033_battery: Change voltage values to µV
Jakub Kicinski (3):
net: sched: update default qdisc visibility after Tx queue cnt changes
net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
udp6: allow SO_MARK ctrl msg to affect routing
Jan Kara (1):
ocfs2: fix data corruption on truncate
Jane Malalane (1):
x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
Janghyub Seo (1):
r8169: Add device 10ec:8162 to driver r8169
Janis Schoetterl-Glausch (1):
KVM: s390: Fix handle_sske page fault handling
Jaroslav Kysela (1):
ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
Jens Axboe (1):
block: remove inaccurate requeue check
Jessica Zhang (1):
drm/msm: Fix potential NULL dereference in DPU SSPP
Jia-Ju Bai (1):
fs: orangefs: fix error return code of orangefs_revalidate_lookup()
Jiasheng Jiang (1):
rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
Johan Hovold (12):
Input: iforce - fix control-message timeout
ALSA: ua101: fix division by zero at probe
ALSA: 6fire: fix control and bulk message timeouts
ALSA: line6: fix control and interrupt message timeouts
mwifiex: fix division by zero in fw download path
ath6kl: fix division by zero in send path
ath6kl: fix control-message timeout
ath10k: fix control-message timeout
ath10k: fix division by zero in send path
rtl8187: fix control-message timeouts
USB: iowarrior: fix control-message timeouts
USB: chipidea: fix interrupt deadlock
Johannes Berg (1):
iwlwifi: mvm: disable RX-diversity in powersave
John Fastabend (1):
bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
Jon Maxwell (1):
tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
Jonas Dreßler (4):
mwifiex: Read a PCI register after writing the TX ring write pointer
mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
mwifiex: Properly initialize private structure on interface type changes
mwifiex: Send DELBA requests according to spec
Josef Bacik (1):
btrfs: do not take the uuid_mutex in btrfs_rm_device
Juergen Gross (1):
xen/balloon: add late_initcall_sync() for initial ballooning done
Junji Wei (1):
RDMA/rxe: Fix wrong port_cap_flags
Kai-Heng Feng (1):
ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
Kalesh Singh (1):
tracing/cfi: Fix cmp_entries_* functions signature mismatch
Kees Cook (5):
leaking_addresses: Always print a trailing newline
media: radio-wl1273: Avoid card name truncation
media: si470x: Avoid card name truncation
media: tm6000: Avoid card name truncation clocksource/drivers/timer-ti-dm: Select TIMER_OF
Krzysztof Kozlowski (2):
regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
Lars-Peter Clausen (1):
dmaengine: dmaengine_desc_callback_valid(): Check for callback_result
Lasse Collin (2):
lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression lib/xz: Validate the value before assigning it to an enum variable
Leon Romanovsky (1):
RDMA/mlx4: Return missed an error if device doesn't support steering
Li Zhang (1):
btrfs: clear MISSING device status bit in btrfs_close_one_device
Linus Lüssing (1):
ath9k: Fix potential interrupt storm on queue reset
Linus Walleij (1):
net: dsa: rtl8366rb: Fix off-by-one bug
Loic Poulain (2):
wcn36xx: Fix HT40 capability for 2Ghz band
ath10k: Fix missing frame timestamp for beacon/probe-resp
Lorenz Bauer (2):
bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
bpf: Prevent increasing bpf_jit_limit above max
Lorenzo Bianconi (1):
mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
Marek Behún (4):
PCI: pci-bridge-emul: Fix emulation of W1C bits
PCI: aardvark: Fix return value of MSI domain .alloc() method
PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
PCI: aardvark: Don't spam about PIO Response Status
Marek Vasut (2):
rsi: Fix module dev_oper_mode parameter description
video: backlight: Drop maximum brightness override for brightness zero
Marijn Suijten (1):
ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
Mario (1):
drm: panel-orientation-quirks: Add quirk for GPD Win3
Mark Rutland (1):
irq: mips: avoid nested irq_enter()
Markus Schneider-Pargmann (1):
hwrng: mtk - Force runtime pm ops for sleep ops
Martin Fuzzey (3):
rsi: fix occasional initialisation failure with BT coex
rsi: fix key enabled check causing unwanted encryption for vap_id > 0
rsi: fix rate mask set leading to P2P failure
Martin Kepplinger (1):
media: imx: set a media_device bus_info string
Masami Hiramatsu (2):
ia64: kprobes: Fix to pass correct trampoline address to the handler
ARM: clang: Do not rely on lr register for stacktrace
Mathias Nyman (1):
xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
Maurizio Lombardi (1):
nvmet-tcp: fix a memory leak when releasing a queue
Max Gurtovoy (1):
nvme-rdma: fix error code in nvme_rdma_setup_ctrl
Maxim Kiselev (1):
net: davinci_emac: Fix interrupt pacing disable
Menglong Dong (1):
workqueue: make sysfs of unbound kworker cpumask more clever
Miaohe Lin (1):
mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
Michael Schmitz (1):
block: ataflop: fix breakage introduced at blk-mq refactoring
Michael Walle (1):
crypto: caam - disable pkc for non-E SoCs
Michal Hocko (1):
mm, oom: do not trigger out_of_memory from the #PF
Michał Mirosław (1):
ARM: 9155/1: fix early early_iounmap()
Miklos Szeredi (2):
fuse: fix page stealing
ovl: fix deadlock in splice write
Nadezda Lutovinova (2):
media: s5p-mfc: Add checking to s5p_mfc_probe().
media: rcar-csi2: Add checking to rcsi2_start_receiver()
Nathan Chancellor (1):
platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
Naveen N. Rao (5):
powerpc/lib: Add helper to check if offset is within conditional branch range powerpc/bpf: Validate branch ranges
powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 powerpc/security: Add a helper to query stf_barrier type powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
Neeraj Upadhyay (1):
rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
Nehal Bakulchandra Shah (1):
usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
Olivier Moysan (1):
ARM: dts: stm32: fix SAI sub nodes register range
Pablo Neira Ayuso (2):
netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
netfilter: nft_dynset: relax superfluous check on set updates
Pali Rohár (7):
serial: core: Fix initializing and restoring termios speed
PCI: aardvark: Do not clear status bits of masked interrupts
PCI: aardvark: Fix checking for link up via LTSSM state
PCI: aardvark: Do not unmask unused interrupts
PCI: aardvark: Fix reporting Data Link Layer Link Active
PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
Pavel Skripkin (3):
ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
media: em28xx: add missing em28xx_close_extension
media: dvb-usb: fix ununit-value in az6027_rc_query
Pawan Gupta (1):
smackfs: Fix use-after-free in netlbl_catmap_walk()
Paweł Anikiel (1):
reset: socfpga: add empty driver allowing consumers to probe
Pekka Korpinen (1):
iio: dac: ad5446: Fix ad5622_write() return value
Peter Rosin (1):
ARM: dts: at91: tse850: the emac<->phy interface is rmii
Peter Zijlstra (2):
locking/lockdep: Avoid RCU-induced noinstr fail
x86: Increase exception stack sizes
Phoenix Huang (1):
Input: elantench - fix misreporting trackpoint coordinates
Punit Agrawal (1):
kprobes: Do not use local variable when creating debugfs file
Quinn Tran (3):
scsi: qla2xxx: Fix use after free in eh_abort path
scsi: qla2xxx: Fix gnl list corruption
scsi: qla2xxx: Turn off target reset during issue_lip
Rafael J. Wysocki (1):
ACPICA: Avoid evaluating methods too early during system resume
Rahul Lakkireddy (1):
cxgb4: fix eeprom len when diagnostics not implemented
Rajat Asthana (1):
media: mceusb: return without resubmitting URB in case of -EPROTO error.
Randy Dunlap (3):
mmc: winbond: don't build on M68K
ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
m68k: set a default value for MEMORY_RESERVE
Reimar Döffinger (1):
libata: fix checking of DMA state
Ricardo Ribalda (6):
media: v4l2-ioctl: Fix check_ext_ctrls
media: uvcvideo: Set capability in s_param
media: uvcvideo: Return -EIO for control errors
media: uvcvideo: Set unique vdev name based in type
media: ipu3-imgu: imgu_fmt: Handle properly try
media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
Richard Fitzgerald (2):
ASoC: cs42l42: Correct some register default values
ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
Robert-Ionut Alexa (1):
soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
Russell King (Oracle) (1):
net: phylink: avoid mvneta warning when setting pause parameters
Sean Christopherson (2):
x86/irq: Ensure PI wakeup handler is unregistered before module unload
KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
Sean Young (2):
media: ite-cir: IR receiver stop working after receive overflow
media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
Sebastian Krzyszkowiak (1):
power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
Selvin Xavier (1):
RDMA/bnxt_re: Fix query SRQ failure
Shuah Khan (1):
selftests: kvm: fix mismatched fclose() after popen()
Shyam Sundar S K (1):
net: amd-xgbe: Toggle PLL settings during rate change
Simon Ser (1):
drm/panel-orientation-quirks: add Valve Steam Deck
Stefan Agner (1):
phy: micrel: ksz8041nl: do not use power down mode
Stephen Suryaputra (1):
gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
Steven Rostedt (VMware) (1):
tracefs: Have tracefs directories not set OTH permission bits by default
Sukadev Bhattiprolu (2):
ibmvnic: don't stop queue in xmit
ibmvnic: Process crqs after enabling interrupts
Sven Eckelmann (1):
ath10k: fix max antenna gain unit
Sven Schnelle (4):
parisc: fix warning in flush_tlb_all
parisc/unwind: fix unwinder when CONFIG_64BIT is enabled parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling s390/tape: fix timer initialization in tape_std_assign()
Takashi Iwai (6):
Input: i8042 - Add quirk for Fujitsu Lifebook T725
ALSA: hda/realtek: Add quirk for ASUS UX550VE
ALSA: timer: Unconditionally unlink slave instances, too
ALSA: mixer: oss: Fix racy access to slots
Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
ALSA: hda: Reduce udelay() at SKL+ position reporting
Tang Bin (1):
crypto: s5p-sss - Add error handling in s5p_aes_probe()
Tetsuo Handa (2):
smackfs: use __GFP_NOFAIL for smk_cipso_doi()
smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
Thomas Perrot (1):
spi: spl022: fix Microwire full duplex mode
Tiezhu Yang (1):
samples/kretprobes: Fix return value if register_kretprobe() failed
Tim Crawford (1):
ALSA: hda/realtek: Add quirk for Clevo PC70HS
Todd Kjos (3):
binder: use euid from cred instead of using task
binder: use cred instead of task for selinux checks
binder: use cred instead of task for getsecid
Tom Lendacky (1):
x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
Tom Rix (2):
media: TDA1997x: handle short reads of hdmi info frame.
apparmor: fix error check
Tong Zhang (1):
scsi: dc395: Fix error case unwinding
Tony Lindgren (1):
mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
Trond Myklebust (3):
NFS: Fix deadlocks in nfs_scan_commit_list()
NFSv4: Fix a regression in nfs_set_open_stateid_locked()
SUNRPC: Partial revert of commit 6f9f17287e78
Tuo Li (2):
media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
Vasant Hegde (1):
powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
Vasily Averin (1):
mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
Vegard Nossum (1):
staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
Vineeth Vijayan (1):
s390/cio: check the subchannel validity for dev_busid
Vitaly Kuznetsov (1):
x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
Vladimir Zapolskiy (1):
phy: qcom-qusb2: Fix a memory leak on probe
Waiman Long (1):
cgroup: Make rebind_subsystems() disable v2 controllers all at once
Walter Stoll (1):
watchdog: Fix OMAP watchdog early handling
Wang Hai (3):
USB: serial: keyspan: fix memleak on probe errors
libertas_tf: Fix possible memory leak in probe and disconnect
libertas: Fix possible memory leak in probe and disconnect
Wang ShaoBo (1):
Bluetooth: fix use-after-free error in lock_sock_nested()
Wang Wensheng (1):
ALSA: timer: Fix use-after-free problem
Wen Gu (1):
net/smc: Correct spelling mistake to TCPF_SYN_RECV
Willem de Bruijn (1):
selftests/net: udpgso_bench_rx: fix port argument
Xiaoming Ni (1):
powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
Yajun Deng (1):
net: net_namespace: Fix undefined member in key_remove_domain()
Yang Yingliang (3):
pinctrl: core: fix possible memory leak in pinctrl_enable()
spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
hwmon: Fix possible memleak in __hwmon_device_register()
Yazen Ghannam (1):
EDAC/amd64: Handle three rank interleaving mode
Ye Bin (1):
PM: hibernate: Get block device exclusively in swsusp_check()
Yu Xiao (1):
nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
YueHaibing (2):
opp: Fix return in _opp_add_static_v2()
xen-pciback: Fix return in pm_ctrl_init()
Zev Weiss (3):
hwmon: (pmbus/lm25066) Add offset coefficients
hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
mtd: core: don't remove debugfs directory if device is in use
Zhang Changzhong (2):
can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
can: j1939: j1939_can_recv(): ignore messages with invalid source address
Zhang Yi (2):
quota: check block number when reading the block in quota file
quota: correct error number in free_dqentry()
Zheyu Ma (6):
cavium: Return negative value when pci_alloc_irq_vectors() fails
scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
cavium: Fix return values of the probe function
media: netup_unidvb: handle interrupt properly according to the firmware
memstick: r592: Fix a UAF bug when removing the driver
mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
Ziyang Xuan (2):
rsi: stop thread firstly in rsi_91x_init() error handling
net: vlan: fix a UAF in vlan_dev_real_dev()
jing yangyang (1):
firmware/psci: fix application of sizeof to pointer
liuyuntao (1):
virtio-gpu: fix possible memory allocation failure
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +7 -0
@@ -5480,6 +5480,13 @@ as generic guest with no PV drivers. Currently support XEN HVM, KVM, HYPER_V and VMWARE guest. + xen.balloon_boot_timeout= [XEN] + The time (in seconds) to wait before giving up to boot + in case initial ballooning fails to free enough memory. + Applies only when running as HVM or PVH guest and + started with less memory configured than allowed at + max. Default is 180. + xen.event_eoi_delay= [XEN] How long to delay EOI handling in case of event storms (jiffies). Default is 10.
Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt +9 -14
@@ -13,6 +13,14 @@ common regulator binding documented in: Required properties of the main device node (the parent!): + - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used + for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. + + [1] If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional + property is specified, then all the eight voltage values for the + 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. + +Optional properties of the main device node (the parent!): - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV) units for buck2 when changing voltage using gpio dvs. Refer to [1] below for additional information.
@@ -25,26 +33,13 @@ Required properties of the main device node (the parent!): units for buck4 when changing voltage using gpio dvs. Refer to [1] below for additional information. - - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used - for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. - - [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional - property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage' - property should specify atleast one voltage level (which would be a - safe operating voltage). - - If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional - property is specified, then all the eight voltage values for the - 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. - -Optional properties of the main device node (the parent!): - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs. - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs. - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs. Additional properties required if either of the optional properties are used: - - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from + - s5m8767,pmic-buck-default-dvs-idx: Default voltage setting selected from the possible 8 options selectable by the dvs gpios. The value of this property should be between 0 and 7. If not specified or if out of range, the default value of this property is set to 0.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 159 +SUBLEVEL = 160 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arm/Makefile +11 -11
@@ -66,15 +66,15 @@ KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra) # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible. -arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m -arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) -arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) +arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m +arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a +arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 -march=armv6 # Only override the compiler option if ARMv6. The ARMv6K extensions are # always available in ARMv7 ifeq ($(CONFIG_CPU_32v6),y) -arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k) +arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 -march=armv6k endif -arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t) +arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 -march=armv5te arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4 arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3m
@@ -88,7 +88,7 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi -tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi) +tune-$(CONFIG_CPU_ARM946E) =-mtune=arm9e tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi
@@ -96,11 +96,11 @@ tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110 tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100 -tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale -tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale -tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale) -tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) -tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) +tune-$(CONFIG_CPU_XSCALE) =-mtune=xscale +tune-$(CONFIG_CPU_XSC3) =-mtune=xscale +tune-$(CONFIG_CPU_FEROCEON) =-mtune=xscale +tune-$(CONFIG_CPU_V6) =-mtune=arm1136j-s +tune-$(CONFIG_CPU_V6K) =-mtune=arm1136j-s # Evaluate tune cc-option calls now tune-y := $(tune-y)
arch/arm/boot/dts/at91-tse850-3.dts +1 -1
@@ -262,7 +262,7 @@ &macb1 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rmii"; #address-cells = <1>; #size-cells = <0>;
arch/arm/boot/dts/omap3-gta04.dtsi +1 -1
@@ -515,7 +515,7 @@ compatible = "bosch,bma180"; reg = <0x41>; pinctrl-names = "default"; - pintcrl-0 = <&bma180_pins>; + pinctrl-0 = <&bma180_pins>; interrupt-parent = <&gpio4>; interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */ };
arch/arm/boot/dts/qcom-msm8974.dtsi +2 -2
@@ -1213,8 +1213,8 @@ #phy-cells = <0>; qcom,dsi-phy-index = <0>; - clocks = <&mmcc MDSS_AHB_CLK>; - clock-names = "iface"; + clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>; + clock-names = "iface", "ref"; }; }; };
arch/arm/boot/dts/stm32mp157c.dtsi +8 -8
@@ -773,7 +773,7 @@ #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x4 0x1c>; + reg = <0x4 0x20>; clocks = <&rcc SAI1_K>; clock-names = "sai_ck"; dmas = <&dmamux1 87 0x400 0x01>;
@@ -783,7 +783,7 @@ sai1b: audio-controller@4400a024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI1_K>; clock-names = "sai_ck"; dmas = <&dmamux1 88 0x400 0x01>;
@@ -804,7 +804,7 @@ sai2a: audio-controller@4400b004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x4 0x1c>; + reg = <0x4 0x20>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 89 0x400 0x01>;
@@ -814,7 +814,7 @@ sai2b: audio-controller@4400b024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 90 0x400 0x01>;
@@ -835,7 +835,7 @@ sai3a: audio-controller@4400c004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x04 0x1c>; + reg = <0x04 0x20>; clocks = <&rcc SAI3_K>; clock-names = "sai_ck"; dmas = <&dmamux1 113 0x400 0x01>;
@@ -845,7 +845,7 @@ sai3b: audio-controller@4400c024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI3_K>; clock-names = "sai_ck"; dmas = <&dmamux1 114 0x400 0x01>;
@@ -1191,7 +1191,7 @@ sai4a: audio-controller@50027004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x04 0x1c>; + reg = <0x04 0x20>; clocks = <&rcc SAI4_K>; clock-names = "sai_ck"; dmas = <&dmamux1 99 0x400 0x01>;
@@ -1201,7 +1201,7 @@ sai4b: audio-controller@50027024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI4_K>; clock-names = "sai_ck"; dmas = <&dmamux1 100 0x400 0x01>;
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts +1 -1
@@ -112,7 +112,7 @@ pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-handle = <&phy1>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; status = "okay"; };
arch/arm/kernel/stacktrace.c +1 -2
@@ -54,8 +54,7 @@ int notrace unwind_frame(struct stackframe *frame) frame->sp = frame->fp; frame->fp = *(unsigned long *)(fp); - frame->pc = frame->lr; - frame->lr = *(unsigned long *)(fp +4 ); + frame->pc = *(unsigned long *)(fp +4 );#else /* check current frame pointer is within bounds */ if (fp < low +12 || fp > high -4 )
arch/arm/mm/Kconfig +1 -1
@@ -752,7 +752,7 @@ config CPU_BIG_ENDIAN config CPU_ENDIAN_BE8 bool depends on CPU_BIG_ENDIAN - default CPU_V6 || CPU_V6K || CPU_V7 + default CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M help Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.
arch/arm/mm/mmu.c +2 -2
@@ -415,9 +415,9 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot) FIXADDR_END);BUG_ON (idx >= __end_of_fixed_addresses); -/* we only support device mappings until pgprot_kernel has been set */ +/* We support only device mappings before pgprot_kernel is set. */ if (WARN_ON (pgprot_val (prot) !=pgprot_val (FIXMAP_PAGE_IO ) && -pgprot_val (pgprot_kernel) ==0 )) +pgprot_val (prot) &&pgprot_val (pgprot_kernel) ==0 ))return ;if (pgprot_val (prot))
arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts +1 -1
@@ -139,7 +139,7 @@ regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&dc_in>; + pwm-supply = <&dc_in>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts +1 -1
@@ -139,7 +139,7 @@ regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +1 -1
@@ -139,7 +139,7 @@ regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&dc_in>; + pwm-supply = <&dc_in>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/rockchip/rk3328.dtsi +1 -1
@@ -555,7 +555,7 @@ gpu: gpu@ff300000 { compatible = "rockchip,rk3328-mali", "arm,mali-450"; - reg = <0x0 0xff300000 0x0 0x40000>; + reg = <0x0 0xff300000 0x0 0x30000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
arch/arm64/include/asm/pgtable.h +9 -3
@@ -54,9 +54,15 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];* page table entry, taking care of 52-bit addresses. */ #ifdef CONFIG_ARM64_PA_BITS_52 -#define __pte_to_phys (pte) \ - ((pte_val(pte) & PTE_ADDR_LOW) | ((pte_val(pte) & PTE_ADDR_HIGH) << 36)) -#define __phys_to_pte_val (phys) (((phys) | ((phys) >> 36)) & PTE_ADDR_MASK) +static inline phys_addr_t __pte_to_phys (pte_t pte) +{ +return (pte_val (pte) &PTE_ADDR_LOW ) | + ((pte_val (pte) &PTE_ADDR_HIGH ) <<36 ); +} +static inline pteval_t __phys_to_pte_val (phys_addr_t phys) +{ +return (phys | (phys >>36 )) &PTE_ADDR_MASK ; +}#else #define __pte_to_phys (pte) (pte_val(pte) & PTE_ADDR_MASK)#define __phys_to_pte_val (phys) (phys)
arch/arm64/net/bpf_jit_comp.c +5 -0
@@ -996,6 +996,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)return prog; } +u64 bpf_jit_alloc_exec_limit (void ) +{ +return BPF_JIT_REGION_SIZE ; +} +void *bpf_jit_alloc_exec (unsigned long size) { return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
arch/ia64/Kconfig.debug +1 -1
@@ -39,7 +39,7 @@ config DISABLE_VHPT config IA64_DEBUG_CMPXCHG bool "Turn on compare-and-exchange bug checking (slow!)" - depends on DEBUG_KERNEL + depends on DEBUG_KERNEL && PRINTK help Selecting this option turns on bug checking for the IA-64 compare-and-exchange instructions. This is slow! Itaniums
arch/ia64/kernel/kprobes.c +5 -4
@@ -398,7 +398,8 @@ static void kretprobe_trampoline(void)int __kprobes trampoline_probe_handler (struct kprobe *p,struct pt_regs *regs) { - regs->cr_iip =__kretprobe_trampoline_handler (regs, kretprobe_trampoline,NULL ); + regs->cr_iip =__kretprobe_trampoline_handler (regs, +dereference_function_descriptor (kretprobe_trampoline),NULL );/* * By returning a non-zero value, we are telling * kprobe_handler() that we don't want the post_handler
@@ -414,7 +415,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, ri->fp =NULL ;/* Replace the return addr with trampoline addr */ - regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip; + regs->b0 = (unsigned long )dereference_function_descriptor (kretprobe_trampoline); }/* Check the instruction in the slot is break */
@@ -918,14 +919,14 @@ static struct kprobe trampoline_p = {int __init arch_init_kprobes (void ) { trampoline_p.addr = - (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip; +dereference_function_descriptor (kretprobe_trampoline);return register_kprobe (&trampoline_p); }int __kprobes arch_trampoline_kprobe (struct kprobe *p) {if (p->addr == - (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip) +dereference_function_descriptor (kretprobe_trampoline))return 1 ;return 0 ;
arch/m68k/Kconfig.machine +1 -0
@@ -190,6 +190,7 @@ config INIT_LCD config MEMORY_RESERVE int "Memory reservation (MiB)" depends on (UCSIMM || UCDIMM) + default 0 help Reserve certain memory regions on 68x328 based boards.
arch/mips/Kconfig +1 -0
@@ -1393,6 +1393,7 @@ config CPU_LOONGSON3 select WEAK_REORDERING_BEYOND_LLSC select MIPS_PGD_C0_CONTEXT select MIPS_L1_CACHE_SHIFT_6 + select MIPS_FP_SUPPORT select GPIOLIB select SWIOTLB help
arch/mips/include/asm/mips-cm.h +6 -6
@@ -11,6 +11,7 @@#ifndef __MIPS_ASM_MIPS_CM_H__#define __MIPS_ASM_MIPS_CM_H__ +#include <linux/bitfield.h> #include <linux/bitops.h> #include <linux/errno.h>
@@ -153,8 +154,8 @@ GCR_ACCESSOR_RO(32, 0x030, rev)#define CM_GCR_REV_MINOR GENMASK(7, 0)#define CM_ENCODE_REV (major, minor) \ - (((major) << __ffs(CM_GCR_REV_MAJOR)) | \ - ((minor) << __ffs(CM_GCR_REV_MINOR))) + (FIELD_PREP(CM_GCR_REV_MAJOR, major) | \ + FIELD_PREP(CM_GCR_REV_MINOR, minor))#define CM_REV_CM2 CM_ENCODE_REV(6, 0)#define CM_REV_CM2_5 CM_ENCODE_REV(7, 0)
@@ -362,10 +363,10 @@ static inline int mips_cm_revision(void)static inline unsigned int mips_cm_max_vp_width (void ) {extern int smp_num_siblings; -uint32_t cfg;if (mips_cm_revision () >=CM_REV_CM3 ) -return read_gcr_sys_config2 () &CM_GCR_SYS_CONFIG2_MAXVPW ; +return FIELD_GET (CM_GCR_SYS_CONFIG2_MAXVPW , +read_gcr_sys_config2 ());if (mips_cm_present ()) {/*
@@ -373,8 +374,7 @@ static inline unsigned int mips_cm_max_vp_width(void)* number of VP(E)s, and if that ever changes then this will * need revisiting. */ - cfg =read_gcr_cl_config () & CM_GCR_Cx_CONFIG_PVPE; -return (cfg >>__ffs (CM_GCR_Cx_CONFIG_PVPE)) +1 ; +return FIELD_GET (CM_GCR_Cx_CONFIG_PVPE,read_gcr_cl_config ()) +1 ; }if (IS_ENABLED (CONFIG_SMP ))
arch/mips/kernel/mips-cm.c +10 -11
@@ -179,8 +179,7 @@ static void mips_cm_probe_l2sync(void)phys_addr_t addr;/* L2-only sync was introduced with CM major revision 6 */ - major_rev = (read_gcr_rev () &CM_GCR_REV_MAJOR ) >> -__ffs (CM_GCR_REV_MAJOR ); + major_rev =FIELD_GET (CM_GCR_REV_MAJOR ,read_gcr_rev ());if (major_rev <6 )return ;
@@ -263,13 +262,13 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,preempt_disable ();if (cm_rev >=CM_REV_CM3 ) { - val = core <<__ffs (CM3_GCR_Cx_OTHER_CORE); - val |= vp <<__ffs (CM3_GCR_Cx_OTHER_VP); + val =FIELD_PREP (CM3_GCR_Cx_OTHER_CORE, core) | +FIELD_PREP (CM3_GCR_Cx_OTHER_VP, vp);if (cm_rev >=CM_REV_CM3_5 ) { val |= CM_GCR_Cx_OTHER_CLUSTER_EN; - val |= cluster <<__ffs (CM_GCR_Cx_OTHER_CLUSTER); - val |= block <<__ffs (CM_GCR_Cx_OTHER_BLOCK); + val |=FIELD_PREP (CM_GCR_Cx_OTHER_CLUSTER, cluster); + val |=FIELD_PREP (CM_GCR_Cx_OTHER_BLOCK, block); }else {WARN_ON (cluster !=0 );WARN_ON (block != CM_GCR_Cx_OTHER_BLOCK_LOCAL);
@@ -299,7 +298,7 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,spin_lock_irqsave (&per_cpu (cm_core_lock, curr_core),per_cpu (cm_core_lock_flags, curr_core)); - val = core <<__ffs (CM_GCR_Cx_OTHER_CORENUM); + val =FIELD_PREP (CM_GCR_Cx_OTHER_CORENUM, core); }write_gcr_cl_other (val);
@@ -343,8 +342,8 @@ void mips_cm_error_report(void) cm_other =read_gcr_error_mult ();if (revision <CM_REV_CM3 ) {/* CM2 */ - cause = cm_error >>__ffs (CM_GCR_ERROR_CAUSE_ERRTYPE ); - ocause = cm_other >>__ffs (CM_GCR_ERROR_MULT_ERR2ND ); + cause =FIELD_GET (CM_GCR_ERROR_CAUSE_ERRTYPE , cm_error); + ocause =FIELD_GET (CM_GCR_ERROR_MULT_ERR2ND , cm_other);if (!cause)return ;
@@ -386,8 +385,8 @@ void mips_cm_error_report(void)ulong core_id_bits, vp_id_bits, cmd_bits, cmd_group_bits;ulong cm3_cca_bits, mcp_bits, cm3_tr_bits, sched_bit; - cause = cm_error >>__ffs64 (CM3_GCR_ERROR_CAUSE_ERRTYPE ); - ocause = cm_other >>__ffs (CM_GCR_ERROR_MULT_ERR2ND ); + cause =FIELD_GET (CM3_GCR_ERROR_CAUSE_ERRTYPE , cm_error); + ocause =FIELD_GET (CM_GCR_ERROR_MULT_ERR2ND , cm_other);if (!cause)return ;
arch/mips/kernel/r2300_fpu.S +2 -2
@@ -29,8 +29,8 @@ #define EX2(a,b) \ 9: a,##b; \ .section __ex_table,"a"; \ - PTR 9b,bad_stack; \ - PTR 9b+4,bad_stack; \ + PTR 9b,fault; \ + PTR 9b+4,fault; \ .previous .set mips1
arch/mips/kernel/syscall.c +0 -9
@@ -239,12 +239,3 @@ SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) {return -ENOSYS ; } - -/* -* If we ever come here the user sp is bad. Zap the process right away. -* Due to the bad stack signaling wouldn't work. -*/ -asmlinkage void bad_stack(void) -{ -do_exit (SIGSEGV ); -}
arch/mips/lantiq/xway/dma.c +9 -5
@@ -11,6 +11,7 @@#include <linux/export.h> #include <linux/spinlock.h> #include <linux/clk.h> +#include <linux/delay.h> #include <linux/err.h> #include <lantiq_soc.h>
@@ -29,6 +30,7 @@#define LTQ_DMA_PCTRL 0x44#define LTQ_DMA_IRNEN 0xf4 +#define DMA_ID_CHNR GENMASK(26, 20)/* channel number */ #define DMA_DESCPT BIT(3)/* descriptor complete irq */ #define DMA_TX BIT(8)/* TX channel direction */ #define DMA_CHAN_ON BIT(0)/* channel on / off bit */
@@ -39,7 +41,6 @@#define DMA_POLL BIT(31)/* turn on channel polling */ #define DMA_CLK_DIV4 BIT(6)/* polling clock divider */ #define DMA_2W_BURST BIT(1)/* 2 word burst length */ -#define DMA_MAX_CHANNEL 20/* the soc has 20 channels */ #define DMA_ETOP_ENDIANNESS (0xf << 8)/* endianness swap etop channels */ #define DMA_WEIGHT (BIT(17) | BIT(16))/* default channel wheight */
@@ -205,7 +206,7 @@ ltq_dma_init(struct platform_device *pdev) {struct clk *clk;struct resource *res; -unsigned id; +unsigned int id, nchannels;int i; res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );
@@ -221,21 +222,24 @@ ltq_dma_init(struct platform_device *pdev)clk_enable (clk);ltq_dma_w32_mask (0 ,DMA_RESET ,LTQ_DMA_CTRL ); +usleep_range (1 ,10 ); +/* disable all interrupts */ ltq_dma_w32 (0 ,LTQ_DMA_IRNEN );/* reset/configure each channel */ -for (i =0 ; i <DMA_MAX_CHANNEL ; i++) { + id =ltq_dma_r32 (LTQ_DMA_ID ); + nchannels = ((id &DMA_ID_CHNR ) >>20 ); +for (i =0 ; i < nchannels; i++) {ltq_dma_w32 (i,LTQ_DMA_CS );ltq_dma_w32 (DMA_CHAN_RST ,LTQ_DMA_CCTRL );ltq_dma_w32 (DMA_POLL |DMA_CLK_DIV4 ,LTQ_DMA_CPOLL );ltq_dma_w32_mask (DMA_CHAN_ON ,0 ,LTQ_DMA_CCTRL ); } - id =ltq_dma_r32 (LTQ_DMA_ID );dev_info (&pdev->dev,"Init done - hw rev: %X, ports: %d, channels: %d\n" , - id &0x1f , (id >>16 ) &0xf , id >>20 ); + id &0x1f , (id >>16 ) &0xf , nchannels);return 0 ; }
arch/parisc/kernel/entry.S +1 -1
@@ -1841,7 +1841,7 @@ syscall_restore: LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* Are we being ptraced? */ - ldw TASK_FLAGS(%r1),%r19 + LDREG TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19 ldi _TIF_SYSCALL_TRACE_MASK,%r2 and,COND(=) %r19,%r2,%r0 b,n syscall_restore_rfi
arch/parisc/kernel/smp.c +17 -2
@@ -29,6 +29,7 @@#include <linux/bitops.h> #include <linux/ftrace.h> #include <linux/cpu.h> +#include <linux/kgdb.h> #include <linux/atomic.h> #include <asm/current.h>
@@ -71,7 +72,10 @@ enum ipi_message_type {IPI_CALL_FUNC ,IPI_CPU_START ,IPI_CPU_STOP , - IPI_CPU_TEST +IPI_CPU_TEST , +#ifdef CONFIG_KGDB + IPI_ENTER_KGDB, +#endif };
@@ -169,7 +173,12 @@ ipi_interrupt(int irq, void *dev_id)case IPI_CPU_TEST :smp_debug (100 ,KERN_DEBUG "CPU%d is alive!\n" , this_cpu);break ; - +#ifdef CONFIG_KGDB +case IPI_ENTER_KGDB : +smp_debug (100 ,KERN_DEBUG "CPU%d ENTER_KGDB\n" , this_cpu); +kgdb_nmicallback (raw_smp_processor_id (),get_irq_regs ()); +break ; +#endif default :printk (KERN_CRIT "Unknown IPI num on CPU%d: %lu\n" , this_cpu, which);
@@ -225,6 +234,12 @@ send_IPI_allbutself(enum ipi_message_type op) } } +#ifdef CONFIG_KGDB +void kgdb_roundup_cpus (void ) +{ +send_IPI_allbutself (IPI_ENTER_KGDB ); +} +#endif inline void smp_send_stop (void ) {send_IPI_allbutself (IPI_CPU_STOP ); }
arch/parisc/kernel/unwind.c +14 -7
@@ -21,6 +21,8 @@#include <asm/ptrace.h> #include <asm/unwind.h> +#include <asm/switch_to.h> +#include <asm/sections.h> /* #define DEBUG 1 */ #ifdef DEBUG
@@ -203,6 +205,11 @@ int __init unwind_init(void)return 0 ; } +static bool pc_is_kernel_fn (unsigned long pc,void *fn) +{ +return (unsigned long )dereference_kernel_function_descriptor (fn) == pc; +} +static int unwind_special (struct unwind_frame_info *info,unsigned long pc,int frame_size) {/*
@@ -221,7 +228,7 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intextern void *const _call_on_stack;#endif /* CONFIG_IRQSTACKS */ -if (pc == (unsigned long ) &handle_interruption) { +if (pc_is_kernel_fn (pc, handle_interruption)) {struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size -PT_SZ_ALGN );dbg ("Unwinding through handle_interruption()\n" ); info->prev_sp = regs->gr[30 ];
@@ -229,13 +236,13 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intreturn 1 ; } -if (pc == (unsigned long ) &ret_from_kernel_thread || - pc == (unsigned long ) &syscall_exit) { +if (pc_is_kernel_fn (pc, ret_from_kernel_thread) || +pc_is_kernel_fn (pc, syscall_exit)) { info->prev_sp = info->prev_ip =0 ;return 1 ; } -if (pc == (unsigned long ) &intr_return) { +if (pc_is_kernel_fn (pc, intr_return)) {struct pt_regs *regs;dbg ("Found intr_return()\n" );
@@ -246,20 +253,20 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intreturn 1 ; } -if (pc == (unsigned long ) &_switch_to_ret) { +if (pc_is_kernel_fn (pc, _switch_to) || +pc_is_kernel_fn (pc, _switch_to_ret)) { info->prev_sp = info->sp -CALLEE_SAVE_FRAME_SIZE ; info->prev_ip = *(unsigned long *)(info->prev_sp -RP_OFFSET );return 1 ; }#ifdef CONFIG_IRQSTACKS -if (pc == (unsigned long ) &_call_on_stack) { +if (pc_is_kernel_fn (pc, _call_on_stack)) { info->prev_sp = *(unsigned long *)(info->sp -FRAME_SIZE -REG_SZ ); info->prev_ip = *(unsigned long *)(info->sp -FRAME_SIZE -RP_OFFSET );return 1 ; }#endif -return 0 ; }
arch/parisc/kernel/vmlinux.lds.S +2 -1
@@ -56,6 +56,8 @@ SECTIONS { . = KERNEL_BINARY_TEXT_START; + _stext = .; /* start of kernel text, includes init code & data */ + __init_begin = .; HEAD_TEXT_SECTION MLONGCALL_DISCARD(INIT_TEXT_SECTION(8))
@@ -79,7 +81,6 @@ SECTIONS /* freed after init ends here */ _text = .; /* Text and read-only data */ - _stext = .; MLONGCALL_KEEP(INIT_TEXT_SECTION(8)) .text ALIGN(PAGE_SIZE) : { TEXT_TEXT
arch/parisc/mm/fixmap.c +1 -4
@@ -18,12 +18,9 @@ void notrace set_fixmap(enum fixed_addresses idx, phys_addr_t phys)pte_t *pte;if (pmd_none (*pmd)) - pmd =pmd_alloc (NULL , pgd, vaddr); - - pte =pte_offset_kernel (pmd, vaddr); -if (pte_none (*pte)) pte =pte_alloc_kernel (pmd, vaddr); + pte =pte_offset_kernel (pmd, vaddr);set_pte_at (&init_mm, vaddr, pte,__mk_pte (phys,PAGE_KERNEL_RWX ));flush_tlb_kernel_range (vaddr, vaddr +PAGE_SIZE ); }
arch/parisc/mm/init.c +2 -2
@@ -892,9 +892,9 @@ void flush_tlb_all(void) {int do_recycle; -__inc_irq_stat (irq_tlb_count); do_recycle =0 ;spin_lock (&sid_lock); +__inc_irq_stat (irq_tlb_count);if (dirty_space_ids >RECYCLE_THRESHOLD ) {BUG_ON (recycle_inuse);/* FIXME: Use a semaphore/wait queue here */ get_dirty_sids (&recycle_ndirty,recycle_dirty_array);
@@ -913,8 +913,8 @@ void flush_tlb_all(void)#else void flush_tlb_all (void ) { -__inc_irq_stat (irq_tlb_count);spin_lock (&sid_lock); +__inc_irq_stat (irq_tlb_count);flush_tlb_all_local (NULL );recycle_sids ();spin_unlock (&sid_lock);
arch/powerpc/include/asm/code-patching.h +1 -0
@@ -22,6 +22,7 @@#define BRANCH_ABSOLUTE 0x2bool is_offset_in_branch_range (long offset); +bool is_offset_in_cond_branch_range (long offset);unsigned int create_branch (const unsigned int *addr,unsigned long target,int flags); unsigned int create_cond_branch(const unsigned int *addr,
arch/powerpc/include/asm/security_features.h +5 -0
@@ -39,6 +39,11 @@ static inline bool security_ftr_enabled(u64 feature)return !!(powerpc_security_features & feature); } +#ifdef CONFIG_PPC_BOOK3S_64 +enum stf_barrier_type stf_barrier_type_get (void ); +#else +static inline enum stf_barrier_type stf_barrier_type_get (void ) {return STF_BARRIER_NONE ; } +#endif // Features indicating support for Spectre/Meltdown mitigations
arch/powerpc/kernel/security.c +5 -0
@@ -256,6 +256,11 @@ static int __init handle_no_stf_barrier(char *p)early_param ("no_stf_barrier" , handle_no_stf_barrier); +enum stf_barrier_type stf_barrier_type_get (void ) +{ +return stf_enabled_flush_types; +} +/* This is the generic flag used by other architectures */ static int __init handle_ssbd (char *p) {
arch/powerpc/lib/code-patching.c +6 -1
@@ -221,6 +221,11 @@ bool is_offset_in_branch_range(long offset)return (offset >=-0x2000000 && offset <=0x1fffffc && !(offset &0x3 )); } +bool is_offset_in_cond_branch_range (long offset) +{ +return offset >=-0x8000 && offset <=0x7fff && !(offset &0x3 ); +} +/* * Helper to check if a given instruction is a conditional branch * Derived from the conditional checks in analyse_instr()
@@ -274,7 +279,7 @@ unsigned int create_cond_branch(const unsigned int *addr, offset = offset - (unsigned long )addr;/* Check we can represent the target in the instruction format */ -if (offset <-0x8000 || offset >0x7FFF || offset &0x3 ) +if (!is_offset_in_cond_branch_range (offset))return 0 ;/* Mask out the flags and target, so they don't step on each other. */
arch/powerpc/net/bpf_jit.h +21 -12
@@ -11,6 +11,7 @@#ifndef __ASSEMBLY__#include <asm/types.h> +#include <asm/code-patching.h> #ifdef PPC64_ELF_ABI_v1#define FUNCTION_DESCR_SIZE 24
@@ -180,13 +181,26 @@#define PPC_NEG (d, a) EMIT(PPC_INST_NEG | ___PPC_RT(d) | ___PPC_RA(a))/* Long jump; (unconditional 'branch') */ -#define PPC_JMP (dest) EMIT(PPC_INST_BRANCH | \ - (((dest) - (ctx->idx * 4)) & 0x03fffffc)) +#define PPC_JMP (dest) \ + do { \ + long offset = (long)(dest) - (ctx->idx * 4); \ + if (!is_offset_in_branch_range(offset)) { \ + pr_err_ratelimited("Branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx); \ + return -ERANGE; \ + } \ + EMIT(PPC_INST_BRANCH | (offset & 0x03fffffc)); \ + } while (0)/* "cond" here covers BO:BI fields. */ -#define PPC_BCC_SHORT (cond, dest) EMIT(PPC_INST_BRANCH_COND | \ - (((cond) & 0x3ff) << 16) | \ - (((dest) - (ctx->idx * 4)) & \ - 0xfffc)) +#define PPC_BCC_SHORT (cond, dest) \ + do { \ + long offset = (long)(dest) - (ctx->idx * 4); \ + if (!is_offset_in_cond_branch_range(offset)) { \ + pr_err_ratelimited("Conditional branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx); \ + return -ERANGE; \ + } \ + EMIT(PPC_INST_BRANCH_COND | (((cond) & 0x3ff) << 16) | (offset & 0xfffc)); \ + } while (0) +/* Sign-extended 32-bit immediate load */ #define PPC_LI32 (d, i) do { \ if ((int)(uintptr_t)(i) >= -32768 && \
@@ -225,11 +239,6 @@#define PPC_FUNC_ADDR (d,i) do { PPC_LI32(d, i); } while(0)#endif -static inline bool is_nearbranch (int offset) -{ -return (offset <32768 ) && (offset >=-32768 ); -} -/* * The fly in the ointment of code size changing from pass to pass is * avoided by padding the short branch case with a NOP. If code size differs
@@ -238,7 +247,7 @@ static inline bool is_nearbranch(int offset)* state. */ #define PPC_BCC (cond, dest) do { \ - if (is_nearbranch((dest) - (ctx->idx * 4))) { \ + if (is_offset_in_cond_branch_range((long)(dest) - (ctx->idx * 4))) { \ PPC_BCC_SHORT(cond, dest); \ PPC_NOP(); \ } else { \
arch/powerpc/net/bpf_jit64.h +4 -4
@@ -16,18 +16,18 @@* with our redzone usage. * * [ prev sp ] <------------- -* [ nv gpr save area ] 6*8 | +* [ nv gpr save area ] 5*8 | * [ tail_call_cnt ] 8 | -* [ local_tmp_var ] 8 | +* [ local_tmp_var ] 16 | * fp (r31) --> [ ebpf stack space ] upto 512 | * [ frame header ] 32/112 | * sp (r1) ---> [ stack pointer ] -------------- */ /* for gpr non volatile registers BPG_REG_6 to 10 */ -#define BPF_PPC_STACK_SAVE (6*8) +#define BPF_PPC_STACK_SAVE (5*8)/* for bpf JIT code internal usage */ -#define BPF_PPC_STACK_LOCALS 16 +#define BPF_PPC_STACK_LOCALS 24/* stack frame excluding BPF stack, ensure this is quadword aligned */ #define BPF_PPC_STACKFRAME (STACK_FRAME_MIN_SIZE + \ BPF_PPC_STACK_LOCALS + BPF_PPC_STACK_SAVE)
arch/powerpc/net/bpf_jit_comp64.c +75 -16
154 lines not on this page · raw message
arch/powerpc/platforms/44x/fsp2.c +2 -0
@@ -208,6 +208,7 @@ static void node_irq_request(const char *compat, irq_handler_t errirq_handler)if (irq ==NO_IRQ ) {pr_err ("device tree node %pOFn is missing a interrupt" , np); +of_node_put (np);return ; }
@@ -215,6 +216,7 @@ static void node_irq_request(const char *compat, irq_handler_t errirq_handler)if (rc) {pr_err ("fsp_of_probe: request_irq failed: np=%pOF rc=%d" , np, rc); +of_node_put (np);return ; } }
arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c +1 -2
@@ -94,9 +94,8 @@ int __init mpc85xx_setup_pmc(void)pr_err ("Could not map guts node address\n" );return -ENOMEM ; } + qoriq_pm_ops = &mpc85xx_pm_ops; } - qoriq_pm_ops = &mpc85xx_pm_ops; -return 0 ; }
arch/powerpc/platforms/powernv/opal-prd.c +11 -1
@@ -372,6 +372,12 @@ static struct notifier_block opal_prd_event_nb = { .priority = 0, }; +static struct notifier_block opal_prd_event_nb2 = { + .notifier_call = opal_prd_msg_notifier, + .next =NULL , + .priority =0 , +}; +static int opal_prd_probe (struct platform_device *pdev) {int rc;
@@ -393,9 +399,10 @@ static int opal_prd_probe(struct platform_device *pdev)return rc; } - rc =opal_message_notifier_register (OPAL_MSG_PRD2 , &opal_prd_event_nb); + rc =opal_message_notifier_register (OPAL_MSG_PRD2 , &opal_prd_event_nb2);if (rc) {pr_err ("Couldn't register PRD2 event notifier\n" ); +opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb);return rc; }
@@ -404,6 +411,8 @@ static int opal_prd_probe(struct platform_device *pdev)pr_err ("failed to register miscdev\n" );opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb); +opal_message_notifier_unregister (OPAL_MSG_PRD2 , + &opal_prd_event_nb2);return rc; }
@@ -414,6 +423,7 @@ static int opal_prd_remove(struct platform_device *pdev) {misc_deregister (&opal_prd_dev);opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb); +opal_message_notifier_unregister (OPAL_MSG_PRD2 , &opal_prd_event_nb2);return 0 ; }
arch/s390/kvm/priv.c +2 -0
@@ -398,6 +398,8 @@ static int handle_sske(struct kvm_vcpu *vcpu)up_read (¤t->mm->mmap_sem);if (rc == -EFAULT )return kvm_s390_inject_program_int (vcpu,PGM_ADDRESSING ); +if (rc == -EAGAIN ) +continue ;if (rc <0 )return rc; start +=PAGE_SIZE ;
arch/s390/mm/gmap.c +3 -2
@@ -684,9 +684,10 @@ void __gmap_zap(struct gmap *gmap, unsigned long gaddr) vmaddr |= gaddr & ~PMD_MASK ;/* Get pointer to the page table entry */ ptep =get_locked_pte (gmap->mm, vmaddr, &ptl); -if (likely (ptep)) +if (likely (ptep)) {ptep_zap_unused (gmap->mm, vmaddr, ptep,0 ); -pte_unmap_unlock (ptep, ptl); +pte_unmap_unlock (ptep, ptl); + } } }EXPORT_SYMBOL_GPL (__gmap_zap);
arch/sh/kernel/cpu/fpu.c +6 -4
@@ -62,18 +62,20 @@ void fpu_state_restore(struct pt_regs *regs) }if (!tsk_used_math (tsk)) { -local_irq_enable (); +int ret;/* * does a slab alloc which can sleep */ -if (init_fpu (tsk)) { +local_irq_enable (); + ret =init_fpu (tsk); +local_irq_disable (); +if (ret) {/* * ran out of memory! */ -do_group_exit (SIGKILL ); +force_sig (SIGKILL );return ; } -local_irq_disable (); }grab_fpu (regs);
arch/x86/hyperv/hv_init.c +4 -1
@@ -155,7 +155,6 @@ void set_hv_tscchange_cb(void (*cb)(void))struct hv_reenlightenment_control re_ctrl = { .vector =HYPERV_REENLIGHTENMENT_VECTOR , .enabled =1 , - .target_vp = hv_vp_index[smp_processor_id ()] };struct hv_tsc_emulation_control emu_ctrl = {.enabled =1 };
@@ -169,8 +168,12 @@ void set_hv_tscchange_cb(void (*cb)(void))/* Make sure callback is registered before we write to MSRs */ wmb (); + re_ctrl.target_vp = hv_vp_index[get_cpu ()]; +wrmsrl (HV_X64_MSR_REENLIGHTENMENT_CONTROL , *((u64 *)&re_ctrl));wrmsrl (HV_X64_MSR_TSC_EMULATION_CONTROL , *((u64 *)&emu_ctrl)); + +put_cpu (); }EXPORT_SYMBOL_GPL (set_hv_tscchange_cb);
arch/x86/include/asm/page_64_types.h +1 -1
@@ -15,7 +15,7 @@#define THREAD_SIZE_ORDER (2 + KASAN_STACK_ORDER)#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) -#define EXCEPTION_STACK_ORDER (0 + KASAN_STACK_ORDER) +#define EXCEPTION_STACK_ORDER (1 + KASAN_STACK_ORDER)#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)#define IRQ_STACK_ORDER (2 + KASAN_STACK_ORDER)
arch/x86/kernel/cpu/amd.c +2 -0
@@ -987,6 +987,8 @@ static void init_amd(struct cpuinfo_x86 *c)if (cpu_has (c,X86_FEATURE_IRPERF ) && !cpu_has_amd_erratum (c, amd_erratum_1054))msr_set_bit (MSR_K7_HWCR ,MSR_K7_HWCR_IRPERF_EN_BIT ); + +check_null_seg_clears_base (c); }#ifdef CONFIG_X86_32
arch/x86/kernel/cpu/common.c +37 -7
64 lines not on this page · raw message
arch/x86/kernel/cpu/cpu.h +1 -0
@@ -73,6 +73,7 @@ extern int detect_extended_topology_early(struct cpuinfo_x86 *c);extern int detect_extended_topology (struct cpuinfo_x86 *c);extern int detect_ht_early (struct cpuinfo_x86 *c);extern void detect_ht (struct cpuinfo_x86 *c); +extern void check_null_seg_clears_base (struct cpuinfo_x86 *c);unsigned int aperfmperf_get_khz (int cpu);
arch/x86/kernel/cpu/hygon.c +2 -0
@@ -350,6 +350,8 @@ static void init_hygon(struct cpuinfo_x86 *c)/* Hygon CPUs don't reset SS attributes on SYSRET, Xen does. */ if (!cpu_has (c,X86_FEATURE_XENPV ))set_cpu_bug (c,X86_BUG_SYSRET_SS_ATTRS ); + +check_null_seg_clears_base (c); }static void cpu_detect_tlb_hygon (struct cpuinfo_x86 *c)
arch/x86/kernel/irq.c +3 -1
@@ -295,8 +295,10 @@ void kvm_set_posted_intr_wakeup_handler(void (*handler)(void)) {if (handler) kvm_posted_intr_wakeup_handler = handler; -else +else { kvm_posted_intr_wakeup_handler = dummy_handler; +synchronize_rcu (); + } }EXPORT_SYMBOL_GPL (kvm_set_posted_intr_wakeup_handler);
arch/x86/kvm/vmx/vmx.c +4 -4
@@ -785,15 +785,15 @@ void update_exception_bitmap(struct kvm_vcpu *vcpu)/* * Check if MSR is intercepted for currently loaded MSR bitmap. */ -static bool msr_write_intercepted (struct kvm_vcpu *vcpu,u32 msr) +static bool msr_write_intercepted (struct vcpu_vmx *vmx,u32 msr) {unsigned long *msr_bitmap;int f =sizeof (unsigned long ); -if (!cpu_has_vmx_msr_bitmap ()) +if (!(exec_controls_get (vmx) &CPU_BASED_USE_MSR_BITMAPS ))return true; - msr_bitmap =to_vmx (vcpu)->loaded_vmcs->msr_bitmap; + msr_bitmap = vmx->loaded_vmcs->msr_bitmap;if (msr <=0x1fff ) {return !!test_bit (msr, msr_bitmap +0x800 / f);
@@ -6579,7 +6579,7 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu)* If the L02 MSR bitmap does not intercept the MSR, then we need to * save it. */ -if (unlikely (!msr_write_intercepted (vcpu,MSR_IA32_SPEC_CTRL ))) +if (unlikely (!msr_write_intercepted (vmx,MSR_IA32_SPEC_CTRL ))) vmx->spec_ctrl =native_read_msr (MSR_IA32_SPEC_CTRL );x86_spec_ctrl_restore_host (vmx->spec_ctrl,0 );
arch/x86/mm/mem_encrypt_identity.c +9 -0
@@ -27,6 +27,15 @@#undef CONFIG_PARAVIRT_XXL#undef CONFIG_PARAVIRT_SPINLOCKS +/* +* This code runs before CPU feature bits are set. By default, the +* pgtable_l5_enabled() function uses bit X86_FEATURE_LA57 to determine if +* 5-level paging is active, so that won't work here. USE_EARLY_PGTABLE_L5 +* is provided to handle this situation and, instead, use a variable that +* has been set by the early boot code. +*/ +#define USE_EARLY_PGTABLE_L5 +#include <linux/kernel.h> #include <linux/mm.h> #include <linux/mem_encrypt.h>
block/blk-mq.c +0 -1
@@ -733,7 +733,6 @@ void blk_mq_requeue_request(struct request *rq, bool kick_requeue_list)/* this request will be re-inserted to io scheduler queue */ blk_mq_sched_requeue_request (rq); -BUG_ON (!list_empty (&rq->queuelist));blk_mq_add_to_requeue_list (rq, true, kick_requeue_list); }EXPORT_SYMBOL (blk_mq_requeue_request);
crypto/Kconfig +1 -1
@@ -242,12 +242,12 @@ config CRYPTO_DH config CRYPTO_ECC tristate + select CRYPTO_RNG_DEFAULT config CRYPTO_ECDH tristate "ECDH algorithm" select CRYPTO_ECC select CRYPTO_KPP - select CRYPTO_RNG_DEFAULT help Generic implementation of the ECDH algorithm
crypto/pcrypt.c +8 -4
@@ -79,12 +79,14 @@ static void pcrypt_aead_enc(struct padata_priv *padata) {struct pcrypt_request *preq =pcrypt_padata_request (padata);struct aead_request *req =pcrypt_request_ctx (preq); +int ret; - padata->info =crypto_aead_encrypt (req); + ret =crypto_aead_encrypt (req); -if (padata->info == -EINPROGRESS ) +if (ret == -EINPROGRESS )return ; + padata->info = ret;padata_do_serial (padata); }
@@ -124,12 +126,14 @@ static void pcrypt_aead_dec(struct padata_priv *padata) {struct pcrypt_request *preq =pcrypt_padata_request (padata);struct aead_request *req =pcrypt_request_ctx (preq); +int ret; - padata->info =crypto_aead_decrypt (req); + ret =crypto_aead_decrypt (req); -if (padata->info == -EINPROGRESS ) +if (ret == -EINPROGRESS )return ; + padata->info = ret;padata_do_serial (padata); }
drivers/acpi/acpica/acglobal.h +2 -0
@@ -220,6 +220,8 @@ extern struct acpi_bit_register_info acpi_gbl_bit_register_info[ACPI_NUM_BITREG ];ACPI_GLOBAL (u8, acpi_gbl_sleep_type_a);ACPI_GLOBAL (u8, acpi_gbl_sleep_type_b); +ACPI_GLOBAL (u8, acpi_gbl_sleep_type_a_s0); +ACPI_GLOBAL (u8, acpi_gbl_sleep_type_b_s0);/***************************************************************************** *
drivers/acpi/acpica/hwesleep.c +2 -6
@@ -147,17 +147,13 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)acpi_status acpi_hw_extended_wake_prep (u8 sleep_state) { -acpi_status status;u8 sleep_type_value;ACPI_FUNCTION_TRACE (hw_extended_wake_prep); - status =acpi_get_sleep_type_data (ACPI_STATE_S0 , - &acpi_gbl_sleep_type_a, - &acpi_gbl_sleep_type_b); -if (ACPI_SUCCESS (status)) { +if (acpi_gbl_sleep_type_a_s0 !=ACPI_SLEEP_TYPE_INVALID ) { sleep_type_value = - ((acpi_gbl_sleep_type_a <<ACPI_X_SLEEP_TYPE_POSITION ) & + ((acpi_gbl_sleep_type_a_s0 <<ACPI_X_SLEEP_TYPE_POSITION ) &ACPI_X_SLEEP_TYPE_MASK ); (void)acpi_write((u64)(sleep_type_value | ACPI_X_SLEEP_ENABLE),
drivers/acpi/acpica/hwsleep.c +4 -7
@@ -179,7 +179,7 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)acpi_status acpi_hw_legacy_wake_prep (u8 sleep_state) { -acpi_status status; +acpi_status status =AE_OK ;struct acpi_bit_register_info *sleep_type_reg_info;struct acpi_bit_register_info *sleep_enable_reg_info;u32 pm1a_control;
@@ -192,10 +192,7 @@ acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state)* This is unclear from the ACPI Spec, but it is required * by some machines. */ - status =acpi_get_sleep_type_data (ACPI_STATE_S0 , - &acpi_gbl_sleep_type_a, - &acpi_gbl_sleep_type_b); -if (ACPI_SUCCESS (status)) { +if (acpi_gbl_sleep_type_a_s0 !=ACPI_SLEEP_TYPE_INVALID ) { sleep_type_reg_info =acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE ); sleep_enable_reg_info =
@@ -216,9 +213,9 @@ acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state)/* Insert the SLP_TYP bits */ - pm1a_control |= (acpi_gbl_sleep_type_a << + pm1a_control |= (acpi_gbl_sleep_type_a_s0 << sleep_type_reg_info->bit_position); - pm1b_control |= (acpi_gbl_sleep_type_b << + pm1b_control |= (acpi_gbl_sleep_type_b_s0 << sleep_type_reg_info->bit_position);/* Write the control registers and ignore any errors */
drivers/acpi/acpica/hwxfsleep.c +7 -0
@@ -214,6 +214,13 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)return_ACPI_STATUS (status); } + status =acpi_get_sleep_type_data (ACPI_STATE_S0 , + &acpi_gbl_sleep_type_a_s0, + &acpi_gbl_sleep_type_b_s0); +if (ACPI_FAILURE (status)) { + acpi_gbl_sleep_type_a_s0 =ACPI_SLEEP_TYPE_INVALID ; + } +/* Execute the _PTS method (Prepare To Sleep) */ arg_list.count =1 ;
drivers/acpi/battery.c +1 -1
@@ -185,7 +185,7 @@ static int acpi_battery_is_charged(struct acpi_battery *battery)return 1 ;/* fallback to using design values for broken batteries */ -if (battery->design_capacity == battery->capacity_now) +if (battery->design_capacity <= battery->capacity_now)return 1 ;/* we don't do any sort of metric based on percentages */
drivers/acpi/pmic/intel_pmic.c +28 -23
59 lines not on this page · raw message
drivers/android/binder.c +14 -8
@@ -424,6 +424,9 @@ enum binder_deferred_state {* (invariant after initialized) * @tsk task_struct for group_leader of process * (invariant after initialized) +* @cred struct cred associated with the `struct file` +* in binder_open() +* (invariant after initialized) * @deferred_work_node: element for binder_deferred_list * (protected by binder_deferred_lock) * @deferred_work: bitmap of deferred work to perform
@@ -469,6 +472,7 @@ struct binder_proc {struct list_head waiting_threads;int pid;struct task_struct *tsk; +const struct cred *cred;struct hlist_node deferred_work_node;int deferred_work;bool is_dead;
@@ -2442,7 +2446,7 @@ static int binder_translate_binder(struct flat_binder_object *fp, ret = -EINVAL ; goto done; } -if (security_binder_transfer_binder (proc->tsk, target_proc->tsk)) { +if (security_binder_transfer_binder (proc->cred, target_proc->cred)) { ret = -EPERM ; goto done; }
@@ -2488,7 +2492,7 @@ static int binder_translate_handle(struct flat_binder_object *fp, proc->pid, thread->pid, fp->handle);return -EINVAL ; } -if (security_binder_transfer_binder (proc->tsk, target_proc->tsk)) { +if (security_binder_transfer_binder (proc->cred, target_proc->cred)) { ret = -EPERM ; goto done; }
@@ -2576,7 +2580,7 @@ static int binder_translate_fd(u32 fd, binder_size_t fd_offset, ret = -EBADF ; goto err_fget; } - ret =security_binder_transfer_file (proc->tsk, target_proc->tsk, file); + ret =security_binder_transfer_file (proc->cred, target_proc->cred, file);if (ret <0 ) { ret = -EPERM ; goto err_security;
@@ -2975,8 +2979,8 @@ static void binder_transaction(struct binder_proc *proc, return_error_line = __LINE__; goto err_invalid_target_handle; } -if (security_binder_transaction (proc->tsk, - target_proc->tsk) <0 ) { +if (security_binder_transaction (proc->cred, + target_proc->cred) <0 ) { return_error =BR_FAILED_REPLY ; return_error_param = -EPERM ; return_error_line = __LINE__;
@@ -3091,7 +3095,7 @@ static void binder_transaction(struct binder_proc *proc, t->from = thread; else t->from = NULL; - t->sender_euid =task_euid (proc->tsk); + t->sender_euid = proc->cred->euid; t->to_proc = target_proc; t->to_thread = target_thread; t->code = tr->code;
@@ -3102,7 +3106,7 @@ static void binder_transaction(struct binder_proc *proc,u32 secid;size_t added_size; -security_task_getsecid (proc->tsk, &secid); +security_cred_getsecid (proc->cred, &secid); ret =security_secid_to_secctx (secid, &secctx, &secctx_sz);if (ret) { return_error =BR_FAILED_REPLY ;
@@ -4707,6 +4711,7 @@ static void binder_free_proc(struct binder_proc *proc) }binder_alloc_deferred_release (&proc->alloc);put_task_struct (proc->tsk); +put_cred (proc->cred);binder_stats_deleted (BINDER_STAT_PROC );kfree (proc); }
@@ -4917,7 +4922,7 @@ static int binder_ioctl_set_ctx_mgr(struct file *filp, ret = -EBUSY ; goto out; } - ret =security_binder_set_context_mgr (proc->tsk); + ret =security_binder_set_context_mgr (proc->cred);if (ret <0 ) goto out;if (uid_valid (context->binder_context_mgr_uid)) {
@@ -5234,6 +5239,7 @@ static int binder_open(struct inode *nodp, struct file *filp)spin_lock_init (&proc->outer_lock);get_task_struct (current->group_leader); proc->tsk = current->group_leader; + proc->cred =get_cred (filp->f_cred);INIT_LIST_HEAD (&proc->todo); proc->default_priority =task_nice (current);/* binderfs stashes devices in i_private */
drivers/ata/libata-core.c +1 -1
@@ -2057,7 +2057,7 @@ unsigned int ata_read_log_page(struct ata_device *dev, u8 log, retry:ata_tf_init (dev, &tf); -if (dev->dma_mode &&ata_id_has_read_log_dma_ext (dev->id) && +if (ata_dma_enabled (dev) &&ata_id_has_read_log_dma_ext (dev->id) && !(dev->horkage &ATA_HORKAGE_NO_DMA_LOG )) { tf.command =ATA_CMD_READ_LOG_DMA_EXT ; tf.protocol =ATA_PROT_DMA ;
drivers/ata/libata-eh.c +8 -0
@@ -97,6 +97,12 @@ static const unsigned long ata_eh_identify_timeouts[] = { ULONG_MAX, }; +static const unsigned long ata_eh_revalidate_timeouts[] = { +15000 ,/* Some drives are slow to read log pages when waking-up */ +15000 ,/* combined time till here is enough even for media access */ +ULONG_MAX , +}; +static const unsigned long ata_eh_flush_timeouts[] = {15000 ,/* be generous with flush */ 15000 ,/* ditto */
@@ -133,6 +139,8 @@ static const struct ata_eh_cmd_timeout_ent ata_eh_cmd_timeout_table[ATA_EH_CMD_TIMEOUT_TABLE_SIZE] = { { .commands = CMDS(ATA_CMD_ID_ATA, ATA_CMD_ID_ATAPI), .timeouts = ata_eh_identify_timeouts, }, + { .commands = CMDS(ATA_CMD_READ_LOG_EXT, ATA_CMD_READ_LOG_DMA_EXT), + .timeouts = ata_eh_revalidate_timeouts, }, { .commands = CMDS(ATA_CMD_READ_NATIVE_MAX, ATA_CMD_READ_NATIVE_MAX_EXT), .timeouts = ata_eh_other_timeouts, }, { .commands = CMDS(ATA_CMD_SET_MAX, ATA_CMD_SET_MAX_EXT),
drivers/auxdisplay/ht16k33.c +38 -28
96 lines not on this page · raw message
drivers/auxdisplay/img-ascii-lcd.c +10 -0
@@ -280,6 +280,16 @@ static int img_ascii_lcd_display(struct img_ascii_lcd_ctx *ctx,if (msg[count -1 ] =='\n' ) count--; +if (!count) { +/* clear the LCD */ +devm_kfree (&ctx->pdev->dev, ctx->message); + ctx->message =NULL ; + ctx->message_len =0 ; +memset (ctx->curr,' ' , ctx->cfg->num_chars); + ctx->cfg->update (ctx); +return 0 ; + } + new_msg =devm_kmalloc (&ctx->pdev->dev, count +1 ,GFP_KERNEL );if (!new_msg)return -ENOMEM ;
drivers/block/ataflop.c +3 -15
@@ -653,9 +653,6 @@ static inline void copy_buffer(void *from, void *to) *p2++ = *p1++; } - - -/* General Interrupt Handling */ static void (*FloppyIRQHandler)(int status ) =NULL ;
@@ -1225,6 +1222,7 @@ static void fd_rwsec_done1(int status) }else {/* all sectors finished */ +finish_fdc ();fd_end_request_cur (BLK_STS_OK ); }return ;
@@ -1472,15 +1470,6 @@ static void setup_req_params( int drive ) ReqTrack, ReqSector, (unsigned long)ReqData )); } -static void ataflop_commit_rqs (struct blk_mq_hw_ctx *hctx) -{ -spin_lock_irq (&ataflop_lock); -atari_disable_irq (IRQ_MFP_FDC ); -finish_fdc (); -atari_enable_irq (IRQ_MFP_FDC ); -spin_unlock_irq (&ataflop_lock); -} -static blk_status_t ataflop_queue_rq (struct blk_mq_hw_ctx *hctx,const struct blk_mq_queue_data *bd) {
@@ -1488,6 +1477,8 @@ static blk_status_t ataflop_queue_rq(struct blk_mq_hw_ctx *hctx,int drive = floppy - unit;int type = floppy->type; +DPRINT (("Queue request: drive %d type %d last %d\n" , drive, type, bd->last)); +spin_lock_irq (&ataflop_lock);if (fd_request) {spin_unlock_irq (&ataflop_lock);
@@ -1547,8 +1538,6 @@ static blk_status_t ataflop_queue_rq(struct blk_mq_hw_ctx *hctx,setup_req_params ( drive );do_fd_action ( drive ); -if (bd->last) -finish_fdc ();atari_enable_irq (IRQ_MFP_FDC ); out:
@@ -1958,7 +1947,6 @@ static const struct block_device_operations floppy_fops = {static const struct blk_mq_ops ataflop_mq_ops = { .queue_rq = ataflop_queue_rq, - .commit_rqs = ataflop_commit_rqs, };static struct kobject *floppy_find (dev_t dev,int *part,void *data)
drivers/block/zram/zram_drv.c +1 -1
@@ -901,7 +901,7 @@ static ssize_t read_block_state(struct file *file, char __user *buf,zram_test_flag (zram, index,ZRAM_HUGE ) ?'h' :'.' , zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.'); -if (count < copied) { +if (count <= copied) {zram_slot_unlock (zram, index);break ; }
drivers/bluetooth/btmtkuart.c +8 -5
@@ -158,8 +158,10 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev,int err; hlen =sizeof (*hdr) + wmt_params->dlen; -if (hlen >255 ) -return -EINVAL ; +if (hlen >255 ) { + err = -EINVAL ; + goto err_free_skb; + } hdr = (struct mtk_wmt_hdr *)&wc; hdr->dir =1 ;
@@ -173,7 +175,7 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev, err =__hci_cmd_send (hdev,0xfc6f , hlen, &wc);if (err <0 ) {clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return err; + goto err_free_skb; }/* The vendor specific WMT commands are all answered by a vendor
@@ -190,13 +192,14 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev,if (err == -EINTR ) {bt_dev_err (hdev,"Execution of wmt command interrupted" );clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return err; + goto err_free_skb; }if (err) {bt_dev_err (hdev,"Execution of wmt command timed out" );clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return -ETIMEDOUT ; + err = -ETIMEDOUT ; + goto err_free_skb; }/* Parse and handle the return WMT event */
drivers/char/hw_random/mtk-rng.c +7 -2
@@ -173,8 +173,13 @@ static int mtk_rng_runtime_resume(struct device *dev)return mtk_rng_init (&priv->rng); } -static UNIVERSAL_DEV_PM_OPS(mtk_rng_pm_ops, mtk_rng_runtime_suspend, - mtk_rng_runtime_resume, NULL); +static const struct dev_pm_ops mtk_rng_pm_ops = { + SET_RUNTIME_PM_OPS(mtk_rng_runtime_suspend, + mtk_rng_runtime_resume, NULL) +SET_SYSTEM_SLEEP_PM_OPS (pm_runtime_force_suspend, + pm_runtime_force_resume) +}; +#define MTK_RNG_PM_OPS (&mtk_rng_pm_ops)#else /* CONFIG_PM */ #define MTK_RNG_PM_OPS NULL
drivers/char/ipmi/ipmi_msghandler.c +7 -3
@@ -4797,7 +4797,9 @@ static atomic_t recv_msg_inuse_count = ATOMIC_INIT(0);static void free_smi_msg (struct ipmi_smi_msg *msg) {atomic_dec (&smi_msg_inuse_count); -kfree (msg); +/* Try to keep as much stuff out of the panic path as possible. */ +if (!oops_in_progress) +kfree (msg); }struct ipmi_smi_msg *ipmi_alloc_smi_msg (void )
@@ -4816,7 +4818,9 @@ EXPORT_SYMBOL(ipmi_alloc_smi_msg);static void free_recv_msg (struct ipmi_recv_msg *msg) {atomic_dec (&recv_msg_inuse_count); -kfree (msg); +/* Try to keep as much stuff out of the panic path as possible. */ +if (!oops_in_progress) +kfree (msg); }static struct ipmi_recv_msg *ipmi_alloc_recv_msg (void )
@@ -4834,7 +4838,7 @@ static struct ipmi_recv_msg *ipmi_alloc_recv_msg(void)void ipmi_free_recv_msg (struct ipmi_recv_msg *msg) { -if (msg->user) +if (msg->user && !oops_in_progress)kref_put (&msg->user->refcount, free_user); msg->done (msg); }
drivers/char/ipmi/ipmi_watchdog.c +12 -5
@@ -337,13 +337,17 @@ static atomic_t msg_tofree = ATOMIC_INIT(0);static DECLARE_COMPLETION (msg_wait);static void msg_free_smi (struct ipmi_smi_msg *msg) { -if (atomic_dec_and_test (&msg_tofree)) -complete (&msg_wait); +if (atomic_dec_and_test (&msg_tofree)) { +if (!oops_in_progress) +complete (&msg_wait); + } }static void msg_free_recv (struct ipmi_recv_msg *msg) { -if (atomic_dec_and_test (&msg_tofree)) -complete (&msg_wait); +if (atomic_dec_and_test (&msg_tofree)) { +if (!oops_in_progress) +complete (&msg_wait); + } }static struct ipmi_smi_msg smi_msg = { .done = msg_free_smi
@@ -429,8 +433,10 @@ static int _ipmi_set_timeout(int do_heartbeat) rv =__ipmi_set_timeout (&smi_msg, &recv_msg, &send_heartbeat_now); -if (rv) +if (rv) { +atomic_set (&msg_tofree,0 );return rv; + }wait_for_completion (&msg_wait);
@@ -575,6 +581,7 @@ static int __ipmi_heartbeat(void) &recv_msg, 1);if (rv) { +atomic_set (&msg_tofree,0 );pr_warn ("heartbeat send failure: %d\n" , rv);return rv; }
drivers/char/tpm/tpm2-space.c +3 -0
@@ -455,6 +455,9 @@ static int tpm2_map_response_body(struct tpm_chip *chip, u32 cc, u8 *rsp,if (be32_to_cpu (data->capability) !=TPM2_CAP_HANDLES )return 0 ; +if (be32_to_cpu (data->count) > (UINT_MAX -TPM_HEADER_SIZE -9 ) /4 ) +return -EFAULT ; +if (len !=TPM_HEADER_SIZE +9 +4 *be32_to_cpu (data->count))return -EFAULT ;
drivers/clk/at91/pmc.c +5 -0
@@ -275,6 +275,11 @@ static int __init pmc_register_ops(void) np =of_find_matching_node (NULL , sama5d2_pmc_dt_ids); +if (!of_device_is_available (np)) { +of_node_put (np); +return -ENODEV ; + } + pmcreg =device_node_to_regmap (np);if (IS_ERR (pmcreg))return PTR_ERR (pmcreg);
drivers/clk/mvebu/ap-cpu-clk.c +11 -3
@@ -256,12 +256,15 @@ static int ap_cpu_clock_probe(struct platform_device *pdev)int cpu, err; err =of_property_read_u32 (dn,"reg" , &cpu); -if (WARN_ON (err)) +if (WARN_ON (err)) { +of_node_put (dn);return err; + }/* If cpu2 or cpu3 is enabled */ if (cpu &APN806_CLUSTER_NUM_MASK ) { nclusters =2 ; +of_node_put (dn);break ; } }
@@ -288,8 +291,10 @@ static int ap_cpu_clock_probe(struct platform_device *pdev)int cpu, err; err =of_property_read_u32 (dn,"reg" , &cpu); -if (WARN_ON (err)) +if (WARN_ON (err)) { +of_node_put (dn);return err; + } cluster_index = cpu &APN806_CLUSTER_NUM_MASK ; cluster_index >>=APN806_CLUSTER_NUM_OFFSET ;
@@ -301,6 +306,7 @@ static int ap_cpu_clock_probe(struct platform_device *pdev) parent =of_clk_get (np, cluster_index);if (IS_ERR (parent)) {dev_err (dev,"Could not get the clock parent\n" ); +of_node_put (dn);return -EINVAL ; } parent_name =__clk_get_name (parent);
@@ -319,8 +325,10 @@ static int ap_cpu_clock_probe(struct platform_device *pdev) init.parent_names = &parent_name; ret =devm_clk_hw_register (dev, &ap_cpu_clk[cluster_index].hw); -if (ret) +if (ret) { +of_node_put (dn);return ret; + } ap_cpu_data->hws[cluster_index] = &ap_cpu_clk[cluster_index].hw; }
drivers/clocksource/Kconfig +1 -0
@@ -24,6 +24,7 @@ config I8253_LOCK config OMAP_DM_TIMER bool + select TIMER_OF config CLKBLD_I8253 def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
drivers/cpuidle/sysfs.c +4 -1
@@ -481,6 +481,7 @@ static int cpuidle_add_state_sysfs(struct cpuidle_device *device) &kdev->kobj, "state%d", i);if (ret) {kobject_put (&kobj->kobj); +kfree (kobj); goto error_state; }cpuidle_add_s2idle_attr_group (kobj);
@@ -612,6 +613,7 @@ static int cpuidle_add_driver_sysfs(struct cpuidle_device *dev) &kdev->kobj, "driver");if (ret) {kobject_put (&kdrv->kobj); +kfree (kdrv);return ret; }
@@ -698,7 +700,6 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev)if (!kdev)return -ENOMEM ; kdev->dev = dev; - dev->kobj_dev = kdev;init_completion (&kdev->kobj_unregister);
@@ -706,9 +707,11 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev) "cpuidle");if (error) {kobject_put (&kdev->kobj); +kfree (kdev);return error; } + dev->kobj_dev = kdev;kobject_uevent (&kdev->kobj,KOBJ_ADD );return 0 ;
drivers/crypto/caam/caampkc.c +15 -4
@@ -1087,16 +1087,27 @@ static struct caam_akcipher_alg caam_rsa = {int caam_pkc_init (struct device *ctrldev) {struct caam_drv_private *priv =dev_get_drvdata (ctrldev); -u32 pk_inst; +u32 pk_inst, pkha;int err; init_done = false;/* Determine public key hardware accelerator presence. */ -if (priv->era <10 ) +if (priv->era <10 ) { pk_inst = (rd_reg32 (&priv->ctrl->perfmon.cha_num_ls) &CHA_ID_LS_PK_MASK ) >>CHA_ID_LS_PK_SHIFT ; -else - pk_inst =rd_reg32 (&priv->ctrl->vreg.pkha) &CHA_VER_NUM_MASK ; + }else { + pkha =rd_reg32 (&priv->ctrl->vreg.pkha); + pk_inst = pkha &CHA_VER_NUM_MASK ; + +/* +* Newer CAAMs support partially disabled functionality. If this is the +* case, the number is non-zero, but this bit is set to indicate that +* no encryption or decryption is supported. Only signing and verifying +* is supported. +*/ +if (pkha &CHA_VER_MISC_PKHA_NO_CRYPT ) + pk_inst =0 ; + }/* Do not register algorithms if PKHA is not present. */ if (!pk_inst)
drivers/crypto/caam/regs.h +3 -0
@@ -317,6 +317,9 @@ struct version_regs {/* CHA Miscellaneous Information - AESA_MISC specific */ #define CHA_VER_MISC_AES_GCM BIT(1 + CHA_VER_MISC_SHIFT) +/* CHA Miscellaneous Information - PKHA_MISC specific */ +#define CHA_VER_MISC_PKHA_NO_CRYPT BIT(7 + CHA_VER_MISC_SHIFT) +/* * caam_perfmon - Performance Monitor/Secure Memory Status/ * CAAM Global Status/Component Version IDs
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +13 -0
@@ -195,6 +195,13 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr) val =ADF_CSR_RD (pmisc_bar_addr, pf2vf_offset); }while ((val & int_bit) && (count++ <ADF_IOV_MSG_ACK_MAX_RETRY )); +if (val != msg) { +dev_dbg (&GET_DEV (accel_dev), +"Collision - PFVF CSR overwritten by remote function\n" ); + ret = -EIO ; + goto out; + } +if (val & int_bit) {dev_dbg (&GET_DEV (accel_dev),"ACK not received from remote\n" ); val &= ~int_bit;
@@ -243,6 +250,11 @@ void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)/* Read message from the VF */ msg =ADF_CSR_RD (pmisc_addr, hw_data->get_pf2vf_offset (vf_nr)); +if (!(msg &ADF_VF2PF_INT )) { +dev_info (&GET_DEV (accel_dev), +"Spurious VF2PF interrupt, msg %X. Ignored\n" , msg); + goto out; + }/* To ACK, clear the VF2PFINT bit */ msg &= ~ADF_VF2PF_INT ;
@@ -326,6 +338,7 @@ void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)if (resp &&adf_iov_putmsg (accel_dev, resp, vf_nr))dev_err (&GET_DEV (accel_dev),"Failed to send response to VF\n" ); +out:/* re-enable interrupt on PF from this VF */ adf_enable_vf2pf_interrupts (accel_dev, (1 << vf_nr));return ;
drivers/crypto/qat/qat_common/adf_vf_isr.c +6 -0
@@ -123,6 +123,11 @@ static void adf_pf2vf_bh_handler(void *data)/* Read the message from PF */ msg =ADF_CSR_RD (pmisc_bar_addr, hw_data->get_pf2vf_offset (0 )); +if (!(msg &ADF_PF2VF_INT )) { +dev_info (&GET_DEV (accel_dev), +"Spurious PF2VF interrupt, msg %X. Ignored\n" , msg); + goto out; + }if (!(msg &ADF_PF2VF_MSGORIGIN_SYSTEM ))/* Ignore legacy non-system (non-kernel) PF2VF messages */
@@ -171,6 +176,7 @@ static void adf_pf2vf_bh_handler(void *data) msg &= ~ADF_PF2VF_INT ;ADF_CSR_WR (pmisc_bar_addr, hw_data->get_pf2vf_offset (0 ), msg); +out:/* Re-enable PF2VF interrupts */ adf_enable_pf2vf_interrupts (accel_dev);return ;
drivers/crypto/s5p-sss.c +2 -0
@@ -2208,6 +2208,8 @@ static int s5p_aes_probe(struct platform_device *pdev) variant =find_s5p_sss_version (pdev); res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) +return -EINVAL ;/* * Note: HASH and PRNG uses the same registers in secss, avoid
drivers/dma-buf/dma-buf.c +1 -0
@@ -79,6 +79,7 @@ static void dma_buf_release(struct dentry *dentry)if (dmabuf->resv == (struct dma_resv *)&dmabuf[1 ])dma_resv_fini (dmabuf->resv); +WARN_ON (!list_empty (&dmabuf->attachments));module_put (dmabuf->owner);kfree (dmabuf->name);kfree (dmabuf);
drivers/dma/at_xdmac.c +1 -1
@@ -145,7 +145,7 @@#define AT_XDMAC_CC_WRIP (0x1 << 23)/* Write in Progress (read only) */ #define AT_XDMAC_CC_WRIP_DONE (0x0 << 23)#define AT_XDMAC_CC_WRIP_IN_PROGRESS (0x1 << 23) -#define AT_XDMAC_CC_PERID (i) (0x7f & (i) << 24)/* Channel Peripheral Identifier */ +#define AT_XDMAC_CC_PERID (i) ((0x7f & (i)) << 24)/* Channel Peripheral Identifier */ #define AT_XDMAC_CDS_MSP 0x2C/* Channel Data Stride Memory Set Pattern */ #define AT_XDMAC_CSUS 0x30/* Channel Source Microblock Stride */ #define AT_XDMAC_CDUS 0x34/* Channel Destination Microblock Stride */
drivers/dma/dmaengine.h +1 -1
@@ -168,7 +168,7 @@ dmaengine_desc_get_callback_invoke(struct dma_async_tx_descriptor *tx,static inline bool dmaengine_desc_callback_valid (struct dmaengine_desc_callback *cb) { -return (cb->callback) ? true : false; +return cb->callback || cb->callback_result; }#endif
drivers/edac/amd64_edac.c +21 -1
@@ -797,12 +797,14 @@ static void debug_dump_dramcfg_low(struct amd64_pvt *pvt, u32 dclr, int chan)#define CS_ODD_PRIMARY BIT(1)#define CS_EVEN_SECONDARY BIT(2)#define CS_ODD_SECONDARY BIT(3) +#define CS_3R_INTERLEAVE BIT(4)#define CS_EVEN (CS_EVEN_PRIMARY | CS_EVEN_SECONDARY)#define CS_ODD (CS_ODD_PRIMARY | CS_ODD_SECONDARY)static int f17_get_cs_mode (int dimm,u8 ctrl,struct amd64_pvt *pvt) { +u8 base, count =0 ;int cs_mode =0 ;if (csrow_enabled (2 * dimm, ctrl, pvt))
@@ -815,6 +817,20 @@ static int f17_get_cs_mode(int dimm, u8 ctrl, struct amd64_pvt *pvt)if (csrow_sec_enabled (2 * dimm +1 , ctrl, pvt)) cs_mode |=CS_ODD_SECONDARY ; +/* +* 3 Rank inteleaving support. +* There should be only three bases enabled and their two masks should +* be equal. +*/ +for_each_chip_select (base, ctrl, pvt) + count +=csrow_enabled (base, ctrl, pvt); + +if (count ==3 && + pvt->csels[ctrl].csmasks[0 ] == pvt->csels[ctrl].csmasks[1 ]) { +edac_dbg (1 ,"3R interleaving in use.\n" ); + cs_mode |=CS_3R_INTERLEAVE ; + } +return cs_mode; }
@@ -1623,10 +1639,14 @@ static int f17_addr_mask_to_cs_size(struct amd64_pvt *pvt, u8 umc,* * The MSB is the number of bits in the full mask because BIT[0] is * always 0. +* +* In the special 3 Rank interleaving case, a single bit is flipped +* without swapping with the most significant bit. This can be handled +* by keeping the MSB where it is and ignoring the single zero bit. */ msb =fls (addr_mask_orig) -1 ; weight =hweight_long (addr_mask_orig); - num_zero_bits = msb - weight; + num_zero_bits = msb - weight - !!(cs_mode &CS_3R_INTERLEAVE );/* Take the number of zero bits off from the top of the mask. */ addr_mask_deinterleaved =GENMASK_ULL (msb - num_zero_bits,1 );
drivers/edac/sb_edac.c +1 -1
@@ -1055,7 +1055,7 @@ static u64 haswell_get_tohm(struct sbridge_pvt *pvt)pci_read_config_dword (pvt->info.pci_vtd,HASWELL_TOHM_1 , ®); rc = ((reg <<6 ) | rc) <<26 ; -return rc |0x1ffffff ; +return rc |0x3ffffff ; }static u64 knl_get_tolm (struct sbridge_pvt *pvt)
drivers/firmware/psci/psci_checker.c +1 -1
@@ -155,7 +155,7 @@ static int alloc_init_cpu_groups(cpumask_var_t **pcpu_groups)if (!alloc_cpumask_var (&tmp,GFP_KERNEL ))return -ENOMEM ; - cpu_groups =kcalloc (nb_available_cpus,sizeof (cpu_groups), + cpu_groups =kcalloc (nb_available_cpus,sizeof (*cpu_groups),GFP_KERNEL );if (!cpu_groups) {free_cpumask_var (tmp);
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +1 -1
@@ -61,7 +61,7 @@ static void amdgpu_bo_list_free(struct kref *ref)int amdgpu_bo_list_create (struct amdgpu_device *adev,struct drm_file *filp,struct drm_amdgpu_bo_list_entry *info, -unsigned num_entries,struct amdgpu_bo_list **result) +size_t num_entries,struct amdgpu_bo_list **result) {unsigned last_entry =0 , first_userptr = num_entries;struct amdgpu_bo_list_entry *array;
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h +1 -1
@@ -60,7 +60,7 @@ int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in,int amdgpu_bo_list_create (struct amdgpu_device *adev,struct drm_file *filp,struct drm_amdgpu_bo_list_entry *info, -unsigned num_entries, +size_t num_entries,struct amdgpu_bo_list **list); static inline struct amdgpu_bo_list_entry *
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c +2 -2
@@ -863,12 +863,12 @@ static int gmc_v6_0_sw_init(void *handle) adev->gmc.mc_mask =0xffffffffffULL ; - r =dma_set_mask_and_coherent (adev->dev,DMA_BIT_MASK (44 )); + r =dma_set_mask_and_coherent (adev->dev,DMA_BIT_MASK (40 ));if (r) {dev_warn (adev->dev,"amdgpu: No suitable DMA available.\n" );return r; } - adev->need_swiotlb =drm_need_swiotlb (44 ); + adev->need_swiotlb =drm_need_swiotlb (40 ); r =gmc_v6_0_init_microcode (adev);if (r) {
drivers/gpu/drm/drm_panel_orientation_quirks.c +45 -2
85 lines not on this page · raw message
drivers/gpu/drm/drm_plane_helper.c +0 -1
@@ -123,7 +123,6 @@ static int drm_plane_helper_check_update(struct drm_plane *plane, .crtc_w = drm_rect_width(dst), .crtc_h = drm_rect_height(dst), .rotation = rotation, - .visible = *visible, };struct drm_crtc_state crtc_state = { .crtc = crtc,
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c +5 -3
@@ -137,11 +137,13 @@ static int _sspp_subblk_offset(struct dpu_hw_pipe *ctx, u32 *idx) {int rc =0 ; -const struct dpu_sspp_sub_blks *sblk = ctx->cap->sblk; +const struct dpu_sspp_sub_blks *sblk; -if (!ctx) +if (!ctx || !ctx->cap || !ctx->cap->sblk)return -EINVAL ; + sblk = ctx->cap->sblk; +switch (s_id) {case DPU_SSPP_SRC : *idx = sblk->src_blk.base;
@@ -404,7 +406,7 @@ static void _dpu_hw_sspp_setup_scaler3(struct dpu_hw_pipe *ctx, (void )pe;if (_sspp_subblk_offset (ctx,DPU_SSPP_SCALER_QSEED3 , &idx) || !sspp - || !scaler3_cfg || !ctx || !ctx->cap || !ctx->cap->sblk) + || !scaler3_cfg)return ; dpu_hw_setup_scaler3(&ctx->hw, scaler3_cfg, idx,
drivers/gpu/drm/msm/msm_gem.c +2 -2
@@ -1036,7 +1036,7 @@ static struct drm_gem_object *_msm_gem_new(struct drm_device *dev, ret =msm_gem_new_impl (dev, size, flags, &obj);if (ret) - goto fail; +return ERR_PTR (ret); msm_obj =to_msm_bo (obj);
@@ -1124,7 +1124,7 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev, ret =msm_gem_new_impl (dev, size,MSM_BO_WC , &obj);if (ret) - goto fail; +return ERR_PTR (ret);drm_gem_private_object_init (dev, obj, size);
drivers/gpu/drm/v3d/v3d_gem.c +2 -2
@@ -195,8 +195,8 @@ v3d_clean_caches(struct v3d_dev *v3d)V3D_CORE_WRITE (core,V3D_CTL_L2TCACTL ,V3D_L2TCACTL_TMUWCF );if (wait_for (!(V3D_CORE_READ (core,V3D_CTL_L2TCACTL ) & -V3D_L2TCACTL_L2TFLS ),100 )) { -DRM_ERROR ("Timeout waiting for L1T write combiner flush\n" ); +V3D_L2TCACTL_TMUWCF ),100 )) { +DRM_ERROR ("Timeout waiting for TMU write combiner flush\n" ); }mutex_lock (&v3d->cache_clean_lock);
drivers/gpu/drm/virtio/virtgpu_vq.c +1 -7
@@ -80,9 +80,7 @@ virtio_gpu_get_vbuf(struct virtio_gpu_device *vgdev, {struct virtio_gpu_vbuffer *vbuf; - vbuf =kmem_cache_zalloc (vgdev->vbufs,GFP_KERNEL ); -if (!vbuf) -return ERR_PTR (-ENOMEM ); + vbuf =kmem_cache_zalloc (vgdev->vbufs,GFP_KERNEL | __GFP_NOFAIL);BUG_ON (size >MAX_INLINE_CMD_SIZE ); vbuf->buf = (void *)vbuf +sizeof (*vbuf);
@@ -142,10 +140,6 @@ static void *virtio_gpu_alloc_cmd_resp(struct virtio_gpu_device *vgdev, vbuf =virtio_gpu_get_vbuf (vgdev, cmd_size, resp_size, resp_buf, cb); -if (IS_ERR (vbuf)) { - *vbuffer_p =NULL ; -return ERR_CAST (vbuf); - } *vbuffer_p = vbuf;return (struct virtio_gpu_command *)vbuf->buf; }
drivers/hid/hid-u2fzero.c +6 -4
@@ -132,7 +132,7 @@ static int u2fzero_recv(struct u2fzero_device *dev, ret = (wait_for_completion_timeout ( &ctx.done,msecs_to_jiffies (USB_CTRL_SET_TIMEOUT ))); -if (ret <0 ) { +if (ret ==0 ) {usb_kill_urb (dev->urb);hid_err (hdev,"urb submission timed out" ); }else {
@@ -191,6 +191,8 @@ static int u2fzero_rng_read(struct hwrng *rng, void *data,struct u2f_hid_msg resp;int ret;size_t actual_length; +/* valid packets must have a correct header */ + int min_length = offsetof(struct u2f_hid_msg, init.data);if (!dev->present) {hid_dbg (dev->hdev,"device not present" );
@@ -200,12 +202,12 @@ static int u2fzero_rng_read(struct hwrng *rng, void *data, ret =u2fzero_recv (dev, &req, &resp);/* ignore errors or packets without data */ - if (ret < offsetof(struct u2f_hid_msg, init.data)) +if (ret < min_length)return 0 ;/* only take the minimum amount of data it is safe to take */ - actual_length =min3 ((size_t )ret - offsetof(struct u2f_hid_msg , - init.data), U2F_HID_MSG_LEN(resp), max); + actual_length =min3 ((size_t )ret - min_length, +U2F_HID_MSG_LEN (resp), max);memcpy (data, resp.init.data, actual_length);
drivers/hv/hyperv_vmbus.h +1 -0
@@ -13,6 +13,7 @@#define _HYPERV_VMBUS_H#include <linux/list.h> +#include <linux/bitops.h> #include <asm/sync_bitops.h> #include <asm/hyperv-tlfs.h> #include <linux/atomic.h>
drivers/hwmon/hwmon.c +4 -2
@@ -645,8 +645,10 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,dev_set_drvdata (hdev, drvdata);dev_set_name (hdev,HWMON_ID_FORMAT , id); err =device_register (hdev); -if (err) - goto free_hwmon; +if (err) { +put_device (hdev); + goto ida_remove; + } if (dev && dev->of_node && chip && chip->ops->read && chip->info[0]->type == hwmon_chip &&
drivers/hwmon/pmbus/lm25066.c +24 -1
@@ -51,26 +51,31 @@ struct __coeff {#define PSC_CURRENT_IN_L (PSC_NUM_CLASSES)#define PSC_POWER_L (PSC_NUM_CLASSES + 1) -static struct __coeff lm25066_coeff[6 ][PSC_NUM_CLASSES +2 ] = { +static struct __coeff lm25066_coeff[][PSC_NUM_CLASSES +2 ] = { [lm25056] = { [PSC_VOLTAGE_IN ] = { .m =16296 , + .b =1343 , .R =-2 , }, [PSC_CURRENT_IN ] = { .m =13797 , + .b =-1833 , .R =-2 , }, [PSC_CURRENT_IN_L ] = { .m =6726 , + .b =-537 , .R =-2 , }, [PSC_POWER ] = { .m =5501 , + .b =-2908 , .R =-3 , }, [PSC_POWER_L ] = { .m =26882 , + .b =-5646 , .R =-4 , }, [PSC_TEMPERATURE ] = {
@@ -82,26 +87,32 @@ static struct __coeff lm25066_coeff[6][PSC_NUM_CLASSES + 2] = { [lm25066] = { [PSC_VOLTAGE_IN] = { .m = 22070, + .b = -1800, .R = -2, }, [PSC_VOLTAGE_OUT] = { .m = 22070, + .b = -1800, .R = -2, }, [PSC_CURRENT_IN] = { .m = 13661, + .b = -5200, .R = -2, }, [PSC_CURRENT_IN_L] = { .m = 6852, + .b = -3100, .R = -2, }, [PSC_POWER] = { .m = 736, + .b = -3300, .R = -2, }, [PSC_POWER_L] = { .m = 369, + .b = -1900, .R = -2, }, [PSC_TEMPERATURE] = {
@@ -111,26 +122,32 @@ static struct __coeff lm25066_coeff[6][PSC_NUM_CLASSES + 2] = { [lm5064] = { [PSC_VOLTAGE_IN] = { .m = 4611, + .b = -642, .R = -2, }, [PSC_VOLTAGE_OUT] = { .m = 4621, + .b = 423, .R = -2, }, [PSC_CURRENT_IN] = { .m = 10742, + .b = 1552, .R = -2, }, [PSC_CURRENT_IN_L] = { .m = 5456, + .b = 2118, .R = -2, }, [PSC_POWER] = { .m = 1204, + .b = 8524, .R = -3, }, [PSC_POWER_L] = { .m = 612, + .b = 11202, .R = -3, }, [PSC_TEMPERATURE] = {
@@ -140,26 +157,32 @@ static struct __coeff lm25066_coeff[6][PSC_NUM_CLASSES + 2] = { [lm5066] = { [PSC_VOLTAGE_IN] = { .m = 4587, + .b = -1200, .R = -2, }, [PSC_VOLTAGE_OUT] = { .m = 4587, + .b = -2400, .R = -2, }, [PSC_CURRENT_IN] = { .m = 10753, + .b = -1200, .R = -2, }, [PSC_CURRENT_IN_L] = { .m = 5405, + .b = -600, .R = -2, }, [PSC_POWER] = { .m = 1204, + .b = -6000, .R = -3, }, [PSC_POWER_L] = { .m = 605, + .b = -8000, .R = -3, }, [PSC_TEMPERATURE] = {
drivers/i2c/busses/i2c-xlr.c +5 -1
@@ -433,11 +433,15 @@ static int xlr_i2c_probe(struct platform_device *pdev)i2c_set_adapdata (&priv->adap, priv); ret =i2c_add_numbered_adapter (&priv->adap);if (ret <0 ) -return ret; + goto err_unprepare_clk;platform_set_drvdata (pdev, priv);dev_info (&priv->adap.dev,"Added I2C Bus.\n" );return 0 ; + +err_unprepare_clk: +clk_unprepare (clk); +return ret; }static int xlr_i2c_remove (struct platform_device *pdev)
drivers/iio/dac/ad5446.c +8 -1
@@ -527,8 +527,15 @@ static int ad5622_write(struct ad5446_state *st, unsigned val) {struct i2c_client *client =to_i2c_client (st->dev);__be16 data =cpu_to_be16 (val); +int ret; + + ret =i2c_master_send (client, (char *)&data,sizeof (data)); +if (ret <0 ) +return ret; +if (ret !=sizeof (data)) +return -EIO ; -return i2c_master_send (client, (char *)&data,sizeof (data)); +return 0 ; }/**
drivers/infiniband/hw/bnxt_re/qplib_fp.c +2 -1
@@ -642,12 +642,13 @@ int bnxt_qplib_query_srq(struct bnxt_qplib_res *res,int rc =0 ;RCFW_CMD_PREP (req,QUERY_SRQ , cmd_flags); - req.srq_cid =cpu_to_le32 (srq->id);/* Configure the request */ sbuf =bnxt_qplib_rcfw_alloc_sbuf (rcfw,sizeof (*sb));if (!sbuf)return -ENOMEM ; + req.resp_size =sizeof (*sb) /BNXT_QPLIB_CMDQE_UNITS ; + req.srq_cid =cpu_to_le32 (srq->id); sb = sbuf->sb; rc =bnxt_qplib_rcfw_send_message (rcfw, (void *)&req, (void *)&resp, (void *)sbuf,0 );
drivers/infiniband/hw/mlx4/qp.c +3 -1
@@ -1149,8 +1149,10 @@ static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr,if (dev->steering_support ==MLX4_STEERING_MODE_DEVICE_MANAGED ) qp->flags |=MLX4_IB_QP_NETIF ; -else +else { + err = -EINVAL ; goto err; + } } err =set_kernel_sq_size (dev, &init_attr->cap, qp_type, qp);
drivers/infiniband/hw/qedr/verbs.c +9 -6
@@ -2383,15 +2383,18 @@ int qedr_query_qp(struct ib_qp *ibqp,int rc =0 ;memset (¶ms,0 ,sizeof (params)); - - rc = dev->ops->rdma_query_qp (dev->rdma_ctx, qp->qed_qp, ¶ms); -if (rc) - goto err; -memset (qp_attr,0 ,sizeof (*qp_attr));memset (qp_init_attr,0 ,sizeof (*qp_init_attr)); - qp_attr->qp_state =qedr_get_ibqp_state (params.state); +if (qp->qp_type !=IB_QPT_GSI ) { + rc = dev->ops->rdma_query_qp (dev->rdma_ctx, qp->qed_qp, ¶ms); +if (rc) + goto err; + qp_attr->qp_state =qedr_get_ibqp_state (params.state); + }else { + qp_attr->qp_state =qedr_get_ibqp_state (QED_ROCE_QP_STATE_RTS ); + } + qp_attr->cur_qp_state =qedr_get_ibqp_state (params.state); qp_attr->path_mtu =ib_mtu_int_to_enum (params.mtu); qp_attr->path_mig_state =IB_MIG_MIGRATED ;
drivers/infiniband/sw/rxe/rxe_param.h +1 -1
@@ -140,7 +140,7 @@ enum rxe_device_param {/* default/initial rxe port parameters */ enum rxe_port_param {RXE_PORT_GID_TBL_LEN =1024 , -RXE_PORT_PORT_CAP_FLAGS =RDMA_CORE_CAP_PROT_ROCE_UDP_ENCAP , +RXE_PORT_PORT_CAP_FLAGS =IB_PORT_CM_SUP ,RXE_PORT_MAX_MSG_SZ =0x800000 ,RXE_PORT_BAD_PKEY_CNTR =0 ,RXE_PORT_QKEY_VIOL_CNTR =0 ,
drivers/input/joystick/iforce/iforce-usb.c +1 -1
@@ -92,7 +92,7 @@ static int iforce_usb_get_id(struct iforce *iforce, u8 id, id,USB_TYPE_VENDOR |USB_DIR_IN |USB_RECIP_INTERFACE , - 0, 0, buf, IFORCE_MAX_LENGTH, HZ); + 0, 0, buf, IFORCE_MAX_LENGTH, 1000);if (status <0 ) {dev_err (&iforce_usb->intf->dev,"usb_submit_urb failed: %d\n" , status);
drivers/input/mouse/elantech.c +13 -0
@@ -517,6 +517,19 @@ static void elantech_report_trackpoint(struct psmouse *psmouse,case 0x16008020U :case 0x26800010U :case 0x36808000U : + +/* +* This firmware misreport coordinates for trackpoint +* occasionally. Discard packets outside of [-127, 127] range +* to prevent cursor jumps. +*/ +if (packet[4 ] ==0x80 || packet[5 ] ==0x80 || + packet[1 ] >>7 == packet[4 ] >>7 || + packet[2 ] >>7 == packet[5 ] >>7 ) { +elantech_debug ("discarding packet [%6ph]\n" , packet); +break ; + + } x = packet[4 ] - (int )((packet[1 ]^0x80 ) <<1 ); y = (int )((packet[2 ]^0x80 ) <<1 ) - packet[5 ];
drivers/input/serio/i8042-x86ia64io.h +14 -0
@@ -272,6 +272,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S6230"), }, }, + { +/* Fujitsu Lifebook T725 laptop */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"FUJITSU" ), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK T725"), + }, + }, {/* Fujitsu Lifebook U745 */ .matches = {
@@ -840,6 +847,13 @@ static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK AH544"), }, }, + { +/* Fujitsu Lifebook T725 laptop */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"FUJITSU" ), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK T725"), + }, + }, {/* Fujitsu U574 laptop */ /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */
drivers/irqchip/irq-bcm6345-l1.c +1 -1
@@ -140,7 +140,7 @@ static void bcm6345_l1_irq_handle(struct irq_desc *desc)for_each_set_bit (hwirq, &pending,IRQS_PER_WORD ) { irq =irq_linear_revmap (intc->domain, base + hwirq);if (irq) -do_IRQ (irq); +generic_handle_irq (irq);else spurious_interrupt (); }
drivers/irqchip/irq-s3c24xx.c +18 -4
@@ -359,11 +359,25 @@ static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc, asmlinkage void __exception_irq_entry s3c24xx_handle_irq(struct pt_regs *regs) { do { - if (likely(s3c_intc[0])) - if (s3c24xx_handle_intc(s3c_intc[0], regs, 0)) - continue; + /* + * For platform based machines, neither ERR nor NULL can happen here. + * The s3c24xx_handle_irq() will be set as IRQ handler iff this succeeds: + * + * s3c_intc[0] = s3c24xx_init_intc() + * + * If this fails, the next calls to s3c24xx_init_intc() won't be executed. + * + * For DT machine, s3c_init_intc_of() could set the IRQ handler without + * setting s3c_intc[0] only if it was called with num_ctrl=0. There is no + * such code path, so again the s3c_intc[0] will have a valid pointer if + * set_handle_irq() is called. + * + * Therefore in s3c24xx_handle_irq(), the s3c_intc[0] is always something. + */ + if (s3c24xx_handle_intc(s3c_intc[0], regs, 0)) + continue; - if (s3c_intc[2]) + if (!IS_ERR_OR_NULL(s3c_intc[2])) if (s3c24xx_handle_intc(s3c_intc[2], regs, 64)) continue;
drivers/irqchip/irq-sifive-plic.c +7 -1
@@ -138,7 +138,13 @@ static void plic_irq_eoi(struct irq_data *d) {struct plic_handler *handler =this_cpu_ptr (&plic_handlers); -writel (d->hwirq, handler->hart_base +CONTEXT_CLAIM ); +if (irqd_irq_masked (d)) { +plic_irq_unmask (d); +writel (d->hwirq, handler->hart_base +CONTEXT_CLAIM ); +plic_irq_mask (d); + }else { +writel (d->hwirq, handler->hart_base +CONTEXT_CLAIM ); + } }static struct irq_chip plic_chip = {
drivers/media/dvb-frontends/mn88443x.c +15 -3
@@ -204,11 +204,18 @@ struct mn88443x_priv {struct regmap *regmap_t; }; -static void mn88443x_cmn_power_on (struct mn88443x_priv *chip) +static int mn88443x_cmn_power_on (struct mn88443x_priv *chip) { +struct device *dev = &chip->client_s->dev;struct regmap *r_t = chip->regmap_t; +int ret; -clk_prepare_enable (chip->mclk); + ret =clk_prepare_enable (chip->mclk); +if (ret) { +dev_err (dev,"Failed to prepare and enable mclk: %d\n" , + ret); +return ret; + }gpiod_set_value_cansleep (chip->reset_gpio,1 );usleep_range (100 ,1000 );
@@ -222,6 +229,8 @@ static void mn88443x_cmn_power_on(struct mn88443x_priv *chip) }else {regmap_write (r_t,HIZSET3 ,0x8f ); } + +return 0 ; }static void mn88443x_cmn_power_off (struct mn88443x_priv *chip)
@@ -738,7 +747,10 @@ static int mn88443x_probe(struct i2c_client *client, chip->fe.demodulator_priv = chip;i2c_set_clientdata (client, chip); -mn88443x_cmn_power_on (chip); + ret =mn88443x_cmn_power_on (chip); +if (ret) + goto err_i2c_t; +mn88443x_s_sleep (chip);mn88443x_t_sleep (chip);
drivers/media/i2c/ir-kbd-i2c.c +1 -0
@@ -791,6 +791,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) rc_proto =RC_PROTO_BIT_RC5 |RC_PROTO_BIT_RC6_MCE |RC_PROTO_BIT_RC6_6A_32 ; ir_codes =RC_MAP_HAUPPAUGE ; + ir->polling_interval =125 ; probe_tx = true;break ; }
drivers/media/i2c/mt9p031.c +27 -1
@@ -78,7 +78,9 @@#define MT9P031_PIXEL_CLOCK_INVERT (1 << 15)#define MT9P031_PIXEL_CLOCK_SHIFT (n) ((n) << 8)#define MT9P031_PIXEL_CLOCK_DIVIDE (n) ((n) << 0) -#define MT9P031_FRAME_RESTART 0x0b +#define MT9P031_RESTART 0x0b +#define MT9P031_FRAME_PAUSE_RESTART (1 << 1) +#define MT9P031_FRAME_RESTART (1 << 0)#define MT9P031_SHUTTER_DELAY 0x0c#define MT9P031_RST 0x0d#define MT9P031_RST_ENABLE 1
@@ -445,9 +447,23 @@ static int mt9p031_set_params(struct mt9p031 *mt9p031)static int mt9p031_s_stream (struct v4l2_subdev *subdev,int enable) {struct mt9p031 *mt9p031 =to_mt9p031 (subdev); +struct i2c_client *client =v4l2_get_subdevdata (subdev); +int val;int ret;if (!enable) { +/* enable pause restart */ + val =MT9P031_FRAME_PAUSE_RESTART ; + ret =mt9p031_write (client,MT9P031_RESTART , val); +if (ret <0 ) +return ret; + +/* enable restart + keep pause restart set */ + val |=MT9P031_FRAME_RESTART ; + ret =mt9p031_write (client,MT9P031_RESTART , val); +if (ret <0 ) +return ret; +/* Stop sensor readout */ ret =mt9p031_set_output_control (mt9p031,MT9P031_OUTPUT_CONTROL_CEN ,0 );
@@ -467,6 +483,16 @@ static int mt9p031_s_stream(struct v4l2_subdev *subdev, int enable)if (ret <0 )return ret; +/* +* - clear pause restart +* - don't clear restart as clearing restart manually can cause +* undefined behavior +*/ + val =MT9P031_FRAME_RESTART ; + ret =mt9p031_write (client,MT9P031_RESTART , val); +if (ret <0 ) +return ret; +return mt9p031_pll_enable (mt9p031); }
drivers/media/i2c/tda1997x.c +4 -4
@@ -1247,13 +1247,13 @@ tda1997x_parse_infoframe(struct tda1997x_state *state, u16 addr) {struct v4l2_subdev *sd = &state->sd;union hdmi_infoframe frame; -u8 buffer[40 ]; +u8 buffer[40 ] = {0 };u8 reg;int len, err;/* read data */ len =io_readn (sd, addr,sizeof (buffer), buffer); - err =hdmi_infoframe_unpack (&frame, buffer,sizeof (buffer)); + err =hdmi_infoframe_unpack (&frame, buffer, len);if (err) { v4l_err(state->client, "failed parsing %d byte infoframe: 0x%04x/0x%02x\n",
@@ -1927,13 +1927,13 @@ static int tda1997x_log_infoframe(struct v4l2_subdev *sd, int addr) {struct tda1997x_state *state =to_state (sd);union hdmi_infoframe frame; -u8 buffer[40 ]; +u8 buffer[40 ] = {0 };int len, err;/* read data */ len =io_readn (sd, addr,sizeof (buffer), buffer);v4l2_dbg (1 , debug, sd,"infoframe: addr=%d len=%d\n" , addr, len); - err =hdmi_infoframe_unpack (&frame, buffer,sizeof (buffer)); + err =hdmi_infoframe_unpack (&frame, buffer, len);if (err) { v4l_err(state->client, "failed parsing %d byte infoframe: 0x%04x/0x%02x\n",
drivers/media/pci/cx23885/cx23885-alsa.c +2 -1
@@ -550,7 +550,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev)SNDRV_DEFAULT_IDX1 ,SNDRV_DEFAULT_STR1 , THIS_MODULE, sizeof(struct cx23885_audio_dev), &card);if (err <0 ) - goto error; + goto error_msg; chip = (struct cx23885_audio_dev *) card->private_data; chip->dev = dev;
@@ -576,6 +576,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev) error:snd_card_free (card); +error_msg:pr_err ("%s(): Failed to register analog audio adapter\n" , __func__);
drivers/media/pci/netup_unidvb/netup_unidvb_core.c +16 -11
@@ -258,19 +258,24 @@ static irqreturn_t netup_unidvb_isr(int irq, void *dev_id)if ((reg40 &AVL_IRQ_ASSERTED ) !=0 ) {/* IRQ is being signaled */ reg_isr =readw (ndev->bmmio0 +REG_ISR ); -if (reg_isr &NETUP_UNIDVB_IRQ_I2C0 ) { - iret =netup_i2c_interrupt (&ndev->i2c[0 ]); - }else if (reg_isr &NETUP_UNIDVB_IRQ_I2C1 ) { - iret =netup_i2c_interrupt (&ndev->i2c[1 ]); - }else if (reg_isr &NETUP_UNIDVB_IRQ_SPI ) { +if (reg_isr &NETUP_UNIDVB_IRQ_SPI ) iret =netup_spi_interrupt (ndev->spi); - }else if (reg_isr &NETUP_UNIDVB_IRQ_DMA1 ) { - iret =netup_dma_interrupt (&ndev->dma[0 ]); - }else if (reg_isr &NETUP_UNIDVB_IRQ_DMA2 ) { - iret =netup_dma_interrupt (&ndev->dma[1 ]); - }else if (reg_isr &NETUP_UNIDVB_IRQ_CI ) { - iret =netup_ci_interrupt (ndev); +else if (!ndev->old_fw) { +if (reg_isr &NETUP_UNIDVB_IRQ_I2C0 ) { + iret =netup_i2c_interrupt (&ndev->i2c[0 ]); + }else if (reg_isr &NETUP_UNIDVB_IRQ_I2C1 ) { + iret =netup_i2c_interrupt (&ndev->i2c[1 ]); + }else if (reg_isr &NETUP_UNIDVB_IRQ_DMA1 ) { + iret =netup_dma_interrupt (&ndev->dma[0 ]); + }else if (reg_isr &NETUP_UNIDVB_IRQ_DMA2 ) { + iret =netup_dma_interrupt (&ndev->dma[1 ]); + }else if (reg_isr &NETUP_UNIDVB_IRQ_CI ) { + iret =netup_ci_interrupt (ndev); + }else { + goto err; + } }else { +err:dev_err (&pci_dev->dev,"%s(): unknown interrupt 0x%x\n" , __func__, reg_isr);
drivers/media/platform/mtk-vpu/mtk_vpu.c +4 -1
@@ -809,7 +809,8 @@ static int mtk_vpu_probe(struct platform_device *pdev) vpu->wdt.wq =create_singlethread_workqueue ("vpu_wdt" );if (!vpu->wdt.wq) {dev_err (dev,"initialize wdt workqueue failed\n" ); -return -ENOMEM ; + ret = -ENOMEM ; + goto clk_unprepare; }INIT_WORK (&vpu->wdt.ws, vpu_wdt_reset_func);mutex_init (&vpu->vpu_mutex);
@@ -908,6 +909,8 @@ static int mtk_vpu_probe(struct platform_device *pdev)vpu_clock_disable (vpu); workqueue_destroy:destroy_workqueue (vpu->wdt.wq); +clk_unprepare: +clk_unprepare (vpu->clk);return ret; }
drivers/media/platform/rcar-vin/rcar-csi2.c +2 -0
@@ -488,6 +488,8 @@ static int rcsi2_start_receiver(struct rcar_csi2 *priv)/* Code is validated in set_fmt. */ format =rcsi2_code_to_fmt (priv->mf.code); +if (!format) +return -EINVAL ;/* * Enable all supported CSI-2 channels with virtual channel and
drivers/media/platform/s5p-mfc/s5p_mfc.c +5 -1
@@ -1279,11 +1279,15 @@ static int s5p_mfc_probe(struct platform_device *pdev)spin_lock_init (&dev->condlock); dev->plat_dev = pdev;if (!dev->plat_dev) { -dev_err (&pdev->dev,"No platform data specified\n" ); +mfc_err ("No platform data specified\n" );return -ENODEV ; } dev->variant =of_device_get_match_data (&pdev->dev); +if (!dev->variant) { +dev_err (&pdev->dev,"Failed to get device MFC hardware variant information\n" ); +return -ENOENT ; + } res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); dev->regs_base =devm_ioremap_resource (&pdev->dev, res);
drivers/media/platform/stm32/stm32-dcmi.c +11 -8
@@ -135,6 +135,7 @@ struct stm32_dcmi {int sequence;struct list_head buffers;struct dcmi_buf *active; +int irq;struct v4l2_device v4l2_dev;struct video_device *vdev;
@@ -1720,6 +1721,14 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier)return ret; } + ret =devm_request_threaded_irq (dcmi->dev, dcmi->irq, dcmi_irq_callback, + dcmi_irq_thread,IRQF_ONESHOT , +dev_name (dcmi->dev), dcmi); +if (ret) { +dev_err (dcmi->dev,"Unable to request irq %d\n" , dcmi->irq); +return ret; + } +return 0 ; }
@@ -1881,6 +1890,8 @@ static int dcmi_probe(struct platform_device *pdev)if (irq <=0 )return irq ? irq : -ENXIO ; + dcmi->irq = irq; + dcmi->res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );if (!dcmi->res) {dev_err (&pdev->dev,"Could not get resource\n" );
@@ -1893,14 +1904,6 @@ static int dcmi_probe(struct platform_device *pdev)return PTR_ERR (dcmi->regs); } - ret =devm_request_threaded_irq (&pdev->dev, irq, dcmi_irq_callback, - dcmi_irq_thread,IRQF_ONESHOT , -dev_name (&pdev->dev), dcmi); -if (ret) { -dev_err (&pdev->dev,"Unable to request irq %d\n" , irq); -return ret; - } - mclk =devm_clk_get (&pdev->dev,"mclk" );if (IS_ERR (mclk)) {if (PTR_ERR (mclk) != -EPROBE_DEFER )
drivers/media/radio/radio-wl1273.c +1 -1
@@ -1279,7 +1279,7 @@ static int wl1273_fm_vidioc_querycap(struct file *file, void *priv,strscpy (capability->driver,WL1273_FM_DRIVER_NAME ,sizeof (capability->driver)); -strscpy (capability->card,"Texas Instruments Wl1273 FM Radio" , +strscpy (capability->card,"TI Wl1273 FM Radio" ,sizeof (capability->card));strscpy (capability->bus_info, radio->bus_type,sizeof (capability->bus_info));
drivers/media/radio/si470x/radio-si470x-i2c.c +1 -1
@@ -11,7 +11,7 @@/* driver definitions */ #define DRIVER_AUTHOR "Joonyoung Shim <[email protected]>"; -#define DRIVER_CARD "Silicon Labs Si470x FM Radio Receiver" +#define DRIVER_CARD "Silicon Labs Si470x FM Radio"#define DRIVER_DESC "I2C radio driver for Si470x FM Radio Receivers"#define DRIVER_VERSION "1.0.2"
drivers/media/radio/si470x/radio-si470x-usb.c +1 -1
@@ -16,7 +16,7 @@/* driver definitions */ #define DRIVER_AUTHOR "Tobias Lorenz <[email protected]>" -#define DRIVER_CARD "Silicon Labs Si470x FM Radio Receiver" +#define DRIVER_CARD "Silicon Labs Si470x FM Radio"#define DRIVER_DESC "USB radio driver for Si470x FM Radio Receivers"#define DRIVER_VERSION "1.0.10"
drivers/media/rc/ite-cir.c +1 -1
@@ -283,7 +283,7 @@ static irqreturn_t ite_cir_isr(int irq, void *data) }/* check for the receive interrupt */ -if (iflags &ITE_IRQ_RX_FIFO ) { +if (iflags & (ITE_IRQ_RX_FIFO |ITE_IRQ_RX_FIFO_OVERRUN )) {/* read the FIFO bytes */ rx_bytes = dev->params.get_rx_bytes(dev, rx_buf,
drivers/media/rc/mceusb.c +1 -0
@@ -1386,6 +1386,7 @@ static void mceusb_dev_recv(struct urb *urb)case -ECONNRESET :case -ENOENT :case -EILSEQ : +case -EPROTO :case -ESHUTDOWN :usb_unlink_urb (urb);return ;
drivers/media/spi/cxd2880-spi.c +1 -1
@@ -618,7 +618,7 @@ cxd2880_spi_probe(struct spi_device *spi) fail_attach:dvb_unregister_adapter (&dvb_spi->adapter); fail_adapter: -if (!dvb_spi->vcc_supply) +if (dvb_spi->vcc_supply)regulator_disable (dvb_spi->vcc_supply); fail_regulator:kfree (dvb_spi);
drivers/media/usb/dvb-usb/az6027.c +1 -0
@@ -391,6 +391,7 @@ static struct rc_map_table rc_map_az6027_table[] = {/* remote control stuff (does not work with my box) */ static int az6027_rc_query (struct dvb_usb_device *d,u32 *event,int *state) { + *state =REMOTE_NO_KEY_PRESSED ;return 0 ; }
drivers/media/usb/dvb-usb/dibusb-common.c +1 -1
@@ -223,7 +223,7 @@ int dibusb_read_eeprom_byte(struct dvb_usb_device *d, u8 offs, u8 *val)u8 *buf;int rc;
Lines of this file are not shown. View the raw message.
drivers/media/usb/em28xx/em28xx-cards.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/usb/tm6000/tm6000-video.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-ioctl.c +39 -21
60 lines not on this page · raw message
drivers/net/bonding/bond_sysfs_slave.c +11 -25
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-common.h +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +19 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/thunder/nic_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/thunder/nicvf_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/t4_hw.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c +1 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/main.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/main.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/offload.c +13 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/davinci_emac.c +14 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/mac.c +34 -11
45 lines not on this page · raw message
drivers/net/wireless/ath/dfs_pattern_detector.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/dxe.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/main.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/smd.c +33 -11
44 lines not on this page · raw message
drivers/net/wireless/broadcom/b43/phy_g.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43legacy/radio.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/utils.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/if_usb.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas_tf/if_usb.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/11n.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/cfg80211.c +11 -21
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/pcie.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/usb.c +16 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c +7 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_core.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_mac80211.c +22 -52
74 lines not on this page · raw message
drivers/net/wireless/rsi/rsi_91x_main.c +14 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_mgmt.c +17 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_sdio.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pci-aardvark.c +110 -19
129 lines not on this page · raw message
drivers/power/supply/bq27xxx_battery_i2c.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/staging/media/imx/imx-media-dev-common.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/xen/balloon.c +63 -23
86 lines not on this page · raw message
drivers/xen/xen-pciback/conf_space_capability.c +1 -1
Lines of this file are not shown. View the raw message.
fs/jfs/jfs_mount.c +22 -29
51 lines not on this page · raw message
fs/nfs/flexfilelayout/flexfilelayoutdev.c +2 -2
Lines of this file are not shown. View the raw message.
fs/overlayfs/file.c +46 -1
47 lines not on this page · raw message
net/core/neighbour.c +27 -21
48 lines not on this page · raw message
net/core/net-sysfs.c +55 -0
55 lines not on this page · raw message
sound/core/oss/mixer_oss.c +33 -10
43 lines not on this page · raw message
tools/testing/selftests/bpf/progs/strobemeta.h +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_progs.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kvm/x86_64/mmio_warning_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench_rx.c +7 -4
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.