Linux 5.10.253
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.253 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/hwmon/adm1177.rst | 8 Makefile | 2 arch/arm/include/asm/string.h | 14 arch/arm/mach-omap2/cm_common.c | 8 arch/arm/mach-omap2/control.c | 29 - arch/arm/mach-omap2/prm_common.c | 8 arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts | 2 arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi | 1 arch/arm64/include/asm/pgtable-prot.h | 10 arch/mips/lib/multi3.c | 6 arch/parisc/include/asm/pgtable.h | 2 arch/parisc/kernel/head.S | 7 arch/powerpc/include/asm/uaccess.h | 2 arch/powerpc/platforms/83xx/km83xx.c | 4 arch/riscv/kernel/kgdb.c | 7 arch/s390/include/asm/barrier.h | 4 arch/s390/kernel/entry.S | 7 arch/s390/lib/xor.c | 4 arch/sh/drivers/platform_early.c | 4 arch/x86/include/asm/efi.h | 2 arch/x86/include/asm/msr-index.h | 3 arch/x86/kernel/apic/apic.c | 6 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kvm/svm/avic.c | 2 arch/x86/kvm/svm/svm.c | 2 arch/x86/mm/fault.c | 118 ++--- arch/x86/platform/efi/efi.c | 2 arch/x86/platform/efi/quirks.c | 55 ++ crypto/af_alg.c | 4 drivers/acpi/acpica/evxfregn.c | 92 +++- drivers/acpi/ec.c | 32 - drivers/acpi/internal.h | 1 drivers/acpi/osi.c | 13 drivers/acpi/osl.c | 2 drivers/acpi/sleep.c | 8 drivers/ata/libata-core.c | 3 drivers/ata/libata-sata.c | 2 drivers/ata/libata-scsi.c | 123 ++--- drivers/ata/libata-sff.c | 4 drivers/ata/libata.h | 1 drivers/base/power/runtime.c | 1 drivers/base/property.c | 205 ++++++-- drivers/base/regmap/regmap.c | 30 + drivers/block/drbd/drbd_actlog.c | 53 +- drivers/block/drbd/drbd_interval.h | 5 drivers/bluetooth/btusb.c | 5 drivers/bluetooth/hci_ll.c | 2 drivers/clk/tegra/clk-tegra124-emc.c | 2 drivers/cpufreq/cpufreq_conservative.c | 12 drivers/cpufreq/cpufreq_governor.c | 13 drivers/cpufreq/cpufreq_governor.h | 1 drivers/cpuidle/cpuidle.c | 10 drivers/crypto/atmel-sha204a.c | 5 drivers/dma/xilinx/xilinx_dma.c | 66 +- drivers/firmware/efi/mokvar-table.c | 20 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 drivers/gpu/drm/ast/ast_dp501.c | 2 drivers/gpu/drm/drm_ioc32.c | 2 drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 72 ++- drivers/gpu/drm/i915/display/intel_gmbus.c | 4 drivers/gpu/drm/msm/msm_gpummu.c | 2 drivers/gpu/drm/nouveau/nouveau_connector.c | 3 drivers/gpu/drm/radeon/si_dpm.c | 4 drivers/gpu/drm/tegra/dsi.c | 6 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 4 drivers/hid/hid-asus.c | 15 drivers/hid/hid-cmedia.c | 2 drivers/hid/hid-creative-sb0540.c | 2 drivers/hid/hid-mcp2221.c | 2 drivers/hid/hid-multitouch.c | 7 drivers/hid/hid-zydacron.c | 2 drivers/hid/wacom_wac.c | 10 drivers/hwmon/adm1177.c | 54 +- drivers/hwmon/max16065.c | 26 - drivers/hwmon/occ/common.c | 19 drivers/hwmon/pmbus/isl68137.c | 7 drivers/hwmon/pmbus/pxe1610.c | 5 drivers/i2c/busses/i2c-fsi.c | 1 drivers/iio/chemical/bme680_core.c | 2 drivers/iio/dac/ad5770r.c | 2 drivers/iio/dac/ds4424.c | 2 drivers/iio/gyro/mpu3050-core.c | 50 +- drivers/iio/gyro/mpu3050-i2c.c | 3 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 2 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 3 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 2 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 4 drivers/iio/light/bh1780.c | 4 drivers/iio/light/vcnl4035.c | 18 drivers/iio/potentiometer/mcp4131.c | 2 drivers/infiniband/core/rw.c | 21 drivers/infiniband/hw/mthca/mthca_provider.c | 5 drivers/input/joystick/xpad.c | 2 drivers/input/misc/uinput.c | 35 + drivers/input/rmi4/rmi_f54.c | 4 drivers/input/serio/i8042-acpipnpio.h | 7 drivers/iommu/intel/dmar.c | 3 drivers/irqchip/irq-gic-v3-its.c | 4 drivers/media/dvb-core/dmxdev.c | 4 drivers/media/dvb-core/dvb_net.c | 3 drivers/media/dvb-frontends/dib7000p.c | 10 drivers/media/mc/mc-request.c | 5 drivers/media/v4l2-core/v4l2-ioctl.c | 5 drivers/mmc/host/mmci_qcom_dml.c | 1 drivers/mmc/host/sdhci-pci-gli.c | 9 drivers/mmc/host/sdhci.c | 9 drivers/mmc/host/vub300.c | 2 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 63 ++ drivers/mtd/nand/raw/cadence-nand-controller.c | 2 drivers/mtd/nand/raw/nand_base.c | 14 drivers/mtd/parsers/redboot.c | 71 +-- drivers/net/arcnet/com20020-pci.c | 16 drivers/net/bonding/bond_debugfs.c | 16 drivers/net/bonding/bond_main.c | 8 drivers/net/caif/caif_serial.c | 3 drivers/net/can/spi/hi311x.c | 5 drivers/net/can/spi/mcp251x.c | 15 drivers/net/can/usb/ems_usb.c | 7 drivers/net/can/usb/gs_usb.c | 13 drivers/net/can/usb/ucan.c | 2 drivers/net/dsa/bcm_sf2.c | 8 drivers/net/ethernet/altera/altera_tse_main.c | 1 drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 10 drivers/net/ethernet/amd/xgbe/xgbe-main.c | 1 drivers/net/ethernet/amd/xgbe/xgbe.h | 3 drivers/net/ethernet/arc/emac_main.c | 11 drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 2 drivers/net/ethernet/broadcom/tg3.c | 2 drivers/net/ethernet/cadence/macb_main.c | 18 drivers/net/ethernet/cadence/macb_pci.c | 10 drivers/net/ethernet/cadence/macb_ptp.c | 4 drivers/net/ethernet/faraday/ftgmac100.c | 28 + drivers/net/ethernet/freescale/enetc/enetc_ethtool.c | 2 drivers/net/ethernet/intel/e1000/e1000_main.c | 2 drivers/net/ethernet/intel/e1000e/netdev.c | 2 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 14 drivers/net/ethernet/intel/igc/igc_main.c | 7 drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 4 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c | 1 drivers/net/ethernet/mellanox/mlx5/core/fw.c | 53 +- drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 4 drivers/net/ethernet/qualcomm/qca_uart.c | 2 drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 11 drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 drivers/net/ethernet/ti/cpsw_ale.c | 9 drivers/net/ethernet/xilinx/xilinx_axienet.h | 4 drivers/net/phy/phy_device.c | 13 drivers/net/usb/aqc111.c | 12 drivers/net/usb/kalmia.c | 7 drivers/net/usb/kaweth.c | 13 drivers/net/usb/lan78xx.c | 8 drivers/net/usb/lan78xx.h | 3 drivers/net/usb/pegasus.c | 13 drivers/net/virtio_net.c | 1 drivers/net/vxlan/vxlan_core.c | 11 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c | 2 drivers/net/wireless/marvell/libertas/main.c | 4 drivers/net/wireless/microchip/wilc1000/hif.c | 2 drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 2 drivers/net/wireless/ti/wlcore/main.c | 4 drivers/net/wireless/ti/wlcore/tx.c | 2 drivers/nfc/nxp-nci/i2c.c | 4 drivers/nfc/pn533/uart.c | 14 drivers/nfc/pn533/usb.c | 1 drivers/nvdimm/bus.c | 5 drivers/nvme/host/fc.c | 2 drivers/nvme/host/pci.c | 5 drivers/nvme/target/tcp.c | 6 drivers/pci/pci-driver.c | 8 drivers/pci/pci.c | 10 drivers/pci/pci.h | 1 drivers/phy/renesas/phy-rcar-gen3-usb2.c | 122 +++-- drivers/phy/ti/phy-j721e-wiz.c | 2 drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 9 drivers/platform/olpc/olpc-xo175-ec.c | 2 drivers/platform/x86/intel-hid.c | 7 drivers/platform/x86/thinkpad_acpi.c | 6 drivers/platform/x86/touchscreen_dmi.c | 18 drivers/regulator/pca9450-regulator.c | 41 - drivers/remoteproc/qcom_sysmon.c | 2 drivers/s390/crypto/zcrypt_ccamisc.c | 12 drivers/s390/crypto/zcrypt_cex4.c | 3 drivers/scsi/ibmvscsi/ibmvfc.c | 3 drivers/scsi/lpfc/lpfc_init.c | 2 drivers/scsi/lpfc/lpfc_sli.c | 36 + drivers/scsi/lpfc/lpfc_sli4.h | 3 drivers/scsi/scsi_lib.c | 3 drivers/scsi/scsi_transport_sas.c | 2 drivers/scsi/ses.c | 7 drivers/scsi/storvsc_drv.c | 5 drivers/scsi/ufs/ufshcd.c | 18 drivers/soc/bcm/bcm2835-power.c | 33 - drivers/soc/fsl/qbman/qman.c | 24 - drivers/spi/spi-fsl-lpspi.c | 3 drivers/staging/comedi/drivers.c | 8 drivers/staging/comedi/drivers/dt2815.c | 12 drivers/staging/comedi/drivers/me4000.c | 16 drivers/staging/comedi/drivers/me_daq.c | 35 - drivers/staging/comedi/drivers/ni_atmio16d.c | 3 drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 16 drivers/staging/rtl8723bs/core/rtw_mlme.c | 13 drivers/thunderbolt/nhi.c | 2 drivers/tty/serial/8250/8250_dma.c | 15 drivers/tty/serial/8250/8250_pci.c | 17 drivers/tty/serial/8250/8250_port.c | 6 drivers/usb/class/cdc-acm.c | 14 drivers/usb/class/cdc-acm.h | 2 drivers/usb/class/cdc-wdm.c | 4 drivers/usb/class/usbtmc.c | 9 drivers/usb/common/ulpi.c | 5 drivers/usb/core/message.c | 97 +++- drivers/usb/core/phy.c | 8 drivers/usb/core/quirks.c | 7 drivers/usb/gadget/function/f_hid.c | 11 drivers/usb/gadget/function/f_rndis.c | 3 drivers/usb/gadget/function/f_subset.c | 7 drivers/usb/gadget/function/f_tcm.c | 14 drivers/usb/gadget/function/f_uac1_legacy.c | 47 +- drivers/usb/gadget/function/f_uvc.c | 46 +- drivers/usb/gadget/function/u_ether.c | 8 drivers/usb/gadget/function/uvc.h | 3 drivers/usb/gadget/function/uvc_v4l2.c | 13 drivers/usb/gadget/udc/dummy_hcd.c | 13 drivers/usb/host/ehci-brcm.c | 4 drivers/usb/host/xhci.c | 4 drivers/usb/image/mdc800.c | 6 drivers/usb/misc/uss720.c | 2 drivers/usb/misc/yurex.c | 2 drivers/usb/renesas_usbhs/common.c | 9 drivers/usb/roles/class.c | 7 drivers/usb/serial/io_edgeport.c | 3 drivers/usb/serial/io_usbvend.h | 1 drivers/usb/serial/option.c | 4 drivers/xen/privcmd.c | 76 +++ drivers/xen/xen-acpi-processor.c | 7 fs/btrfs/disk-io.c | 4 fs/btrfs/ioctl.c | 3 fs/btrfs/tree-checker.c | 2 fs/btrfs/volumes.c | 5 fs/ceph/dir.c | 15 fs/cifs/cifsencrypt.c | 3 fs/cifs/cifsglob.h | 11 fs/cifs/connect.c | 1 fs/cifs/dir.c | 1 fs/cifs/file.c | 17 fs/cifs/smb2ops.c | 18 fs/cifs/smb2transport.c | 4 fs/ext4/extents.c | 22 fs/ext4/fast_commit.c | 17 fs/ext4/ialloc.c | 6 fs/ext4/inode.c | 27 + fs/ext4/mballoc.c | 37 - fs/ext4/super.c | 13 fs/iomap/buffered-io.c | 7 fs/jbd2/checkpoint.c | 15 fs/nfsd/nfs4xdr.c | 9 fs/nfsd/nfsctl.c | 31 - fs/nfsd/state.h | 17 fs/squashfs/cache.c | 3 fs/xfs/xfs_bmap_item.c | 3 fs/xfs/xfs_dquot.c | 8 fs/xfs/xfs_dquot_item.c | 9 fs/xfs/xfs_inode_item.c | 9 fs/xfs/xfs_mount.c | 7 include/acpi/acpixf.h | 130 +++-- include/asm-generic/tlb.h | 77 +++ include/linux/dma-mapping.h | 4 include/linux/fwnode.h | 10 include/linux/hugetlb.h | 17 include/linux/indirect_call_wrapper.h | 18 include/linux/irqchip/arm-gic-v3.h | 1 include/linux/mm_types.h | 2 include/linux/netfilter/ipset/ip_set.h | 2 include/linux/property.h | 5 include/linux/security.h | 1 include/linux/swapops.h | 6 include/linux/usb.h | 8 include/net/netfilter/nf_conntrack_timeout.h | 1 include/net/netfilter/nf_tables.h | 5 include/net/netlink.h | 39 + include/net/tc_act/tc_gate.h | 33 + include/net/udp_tunnel.h | 2 include/sound/soc-dai.h | 87 +++ include/sound/soc.h | 2 include/trace/events/kmem.h | 8 include/uapi/linux/dma-buf.h | 1 include/uapi/linux/netfilter/nf_conntrack_common.h | 4 include/uapi/sound/asoc.h | 22 io_uring/io-wq.c | 2 io_uring/io_uring.c | 39 + kernel/bpf/verifier.c | 11 kernel/cgroup/cgroup.c | 1 kernel/fork.c | 2 kernel/futex/core.c | 3 kernel/sched/idle.c | 39 + kernel/sysctl.c | 2 kernel/time/alarmtimer.c | 2 kernel/time/time.c | 171 ++++++- kernel/trace/trace.c | 6 kernel/trace/trace_events.c | 51 +- lib/bootconfig.c | 6 lib/crypto/chacha.c | 4 lib/nlattr.c | 22 mm/hugetlb.c | 143 +++--- mm/mmu_gather.c | 36 + mm/rmap.c | 20 net/atm/lec.c | 98 ++-- net/atm/lec.h | 2 net/batman-adv/bat_iv_ogm.c | 3 net/batman-adv/bat_v_elp.c | 10 net/batman-adv/hard-interface.c | 8 net/batman-adv/hard-interface.h | 1 net/batman-adv/translation-table.c | 9 net/bluetooth/hidp/core.c | 16 net/bluetooth/l2cap_core.c | 55 +- net/bluetooth/l2cap_sock.c | 3 net/bluetooth/mgmt.c | 3 net/bluetooth/smp.c | 13 net/bridge/br_arp_nd_proxy.c | 18 net/bridge/br_device.c | 2 net/bridge/br_input.c | 2 net/can/af_can.c | 4 net/can/af_can.h | 2 net/can/bcm.c | 1 net/can/gw.c | 6 net/can/proc.c | 3 net/ceph/auth.c | 6 net/core/dev.c | 2 net/core/rtnetlink.c | 9 net/ipv4/esp4.c | 11 net/ipv4/icmp.c | 4 net/ipv4/tcp_ipv4.c | 5 net/ipv6/addrconf.c | 6 net/ipv6/datagram.c | 10 net/ipv6/esp6.c | 11 net/ipv6/icmp.c | 3 net/ipv6/ip6_flowlabel.c | 5 net/ipv6/ip6_tunnel.c | 7 net/ipv6/ndisc.c | 3 net/ipv6/netfilter/ip6t_rt.c | 4 net/ipv6/route.c | 11 net/ipv6/seg6_iptunnel.c | 34 + net/ipv6/tcp_ipv6.c | 5 net/ipv6/xfrm6_output.c | 4 net/key/af_key.c | 19 net/l2tp/l2tp_ppp.c | 25 - net/mac80211/mesh.c | 6 net/ncsi/ncsi-aen.c | 3 net/ncsi/ncsi-rsp.c | 16 net/netfilter/ipset/ip_set_core.c | 4 net/netfilter/ipset/ip_set_hash_gen.h | 2 net/netfilter/ipset/ip_set_list_set.c | 4 net/netfilter/nf_conntrack_h323_asn1.c | 4 net/netfilter/nf_conntrack_helper.c | 2 net/netfilter/nf_conntrack_netlink.c | 89 ++- net/netfilter/nf_conntrack_proto_tcp.c | 10 net/netfilter/nf_conntrack_sip.c | 20 net/netfilter/nf_tables_api.c | 12 net/netfilter/nfnetlink_cthelper.c | 8 net/netfilter/nfnetlink_log.c | 10 net/netfilter/nfnetlink_osf.c | 13 net/netfilter/nfnetlink_queue.c | 4 net/netfilter/nft_ct.c | 11 net/netfilter/nft_payload.c | 6 net/netfilter/nft_set_pipapo.c | 46 +- net/netfilter/nft_set_pipapo.h | 2 net/netfilter/x_tables.c | 23 + net/netfilter/xt_CT.c | 4 net/netfilter/xt_IDLETIMER.c | 6 net/netfilter/xt_cgroup.c | 6 net/netfilter/xt_dccp.c | 4 net/netfilter/xt_rateest.c | 5 net/netfilter/xt_tcpudp.c | 6 net/netfilter/xt_time.c | 4 net/nfc/nci/core.c | 31 + net/nfc/nci/data.c | 12 net/nfc/rawsock.c | 11 net/openvswitch/flow_netlink.c | 2 net/openvswitch/vport-netdev.c | 9 net/packet/af_packet.c | 1 net/qrtr/af_qrtr.c | 66 +- net/rds/ib_rdma.c | 7 net/rfkill/core.c | 40 + net/rose/af_rose.c | 5 net/rxrpc/af_rxrpc.c | 6 net/rxrpc/key.c | 2 net/sched/act_gate.c | 262 ++++++++--- net/sched/cls_api.c | 1 net/sched/cls_flow.c | 10 net/sched/cls_fw.c | 14 net/sched/sch_ets.c | 12 net/sched/sch_hfsc.c | 4 net/sched/sch_teql.c | 1 net/smc/smc_rx.c | 9 net/sunrpc/cache.c | 26 - net/tipc/group.c | 6 net/tipc/socket.c | 2 net/wireless/core.c | 1 net/wireless/radiotap.c | 4 net/x25/x25_in.c | 9 net/x25/x25_subr.c | 1 net/xfrm/xfrm_interface_core.c | 2 net/xfrm/xfrm_output.c | 7 net/xfrm/xfrm_policy.c | 2 net/xfrm/xfrm_state.c | 1 net/xfrm/xfrm_user.c | 1 security/apparmor/apparmorfs.c | 228 +++++---- security/apparmor/include/label.h | 16 security/apparmor/include/lib.h | 12 security/apparmor/include/match.h | 1 security/apparmor/include/policy.h | 13 security/apparmor/include/policy_ns.h | 2 security/apparmor/include/policy_unpack.h | 75 +-- security/apparmor/label.c | 12 security/apparmor/match.c | 58 +- security/apparmor/policy.c | 82 +++ security/apparmor/policy_ns.c | 2 security/apparmor/policy_unpack.c | 58 +- security/security.c | 1 sound/core/pcm_lib.c | 11 sound/core/pcm_native.c | 25 - sound/pci/ctxfi/ctdaio.c | 1 sound/pci/hda/patch_conexant.c | 11 sound/pci/hda/patch_realtek.c | 1 sound/soc/amd/acp3x-rt5682-max9836.c | 9 sound/soc/fsl/fsl_easrc.c | 14 sound/soc/intel/catpt/device.c | 10 sound/soc/intel/catpt/dsp.c | 3 sound/soc/meson/meson-codec-glue.c | 3 sound/soc/soc-core.c | 344 +++++++++++---- sound/soc/soc-dai.c | 63 ++ sound/soc/soc-dapm.c | 24 - sound/soc/soc-pcm.c | 10 sound/soc/soc-topology.c | 24 - sound/soc/soc-utils.c | 29 + sound/soc/sof/topology.c | 6 sound/soc/tegra/tegra_pcm.c | 3 sound/usb/caiaq/device.c | 2 sound/usb/endpoint.c | 3 sound/usb/validate.c | 2 tools/bootconfig/main.c | 7 tools/objtool/check.c | 5 tools/testing/selftests/net/mptcp/simult_flows.sh | 11 445 files changed, 4907 insertions(+), 2048 deletions(-)
Al Viro (1):
unshare: fix unshare_fs() handling
Alan Stern (4):
USB: usbcore: Introduce usb_bulk_msg_killable()
USB: usbtmc: Use usb_bulk_msg_killable() with user-specified timeouts
USB: core: Limit the length of unkillable synchronous timeouts
USB: dummy-hcd: Fix locking/synchronization error
Alban Bedel (1):
can: mcp251x: fix deadlock in error path of mcp251x_open
Alex Deucher (1):
drm/radeon: apply state adjust rules to some additional HAINAN vairants
Alex Guo (1):
media: dvb-frontends: w7090p: fix null-ptr-deref in w7090p_tuner_write_serpar and w7090p_tuner_read_serpar
Alexei Starovoitov (1):
bpf: Fix regsafe() for pointers to packet
Ali Norouzi (1):
can: gw: fix OOB heap access in cgw_csum_crc8_rel()
Alok Tiwari (2):
i40e: fix src IP mask checks and memcpy argument names in cloud filter platform/olpc: olpc-xo175-ec: Fix overflow error message to print inlen
Alysa Liu (1):
drm/amdgpu: Fix use-after-free race in VM acquire
Amadeusz Sławiński (1):
ASoC: core: Do not call link_exit() on uninitialized rtd objects
Anas Iqbal (2):
net: dsa: bcm_sf2: fix missing clk_disable_unprepare() in error paths
Bluetooth: hci_ll: Fix firmware leak on error path
Andrea Mayer (1):
seg6: separate dst_cache for input and output paths in seg6 lwtunnel
Andrew Lunn (1):
net: phy: register phy led_triggers during probe to avoid AB-BA deadlock
Andrii Melnychenko (1):
netfilter: nft_ct: add seqadj extension for natted connections
Andy Lutomirski (2):
x86/fault: Fold mm_fault_error() into do_user_addr_fault() x86/fault: Improve kernel-executing-user-memory handling
Andy Shevchenko (5):
regmap: Synchronize cache for the page selector
device property: Retrieve fwnode from of_node via accessor device property: Unify access to of_node
device property: Allow error pointer to be passed to fwnode APIs device property: Allow secondary lookup in fwnode_get_next_child_node()
Antoniu Miclaus (4):
iio: gyro: mpu3050-core: fix pm_runtime error handling
iio: gyro: mpu3050-i2c: fix pm_runtime error handling
iio: light: bh1780: fix PM runtime leak on error path
iio: dac: ad5770r: fix error return in ad5770r_read_raw()
Ard Biesheuvel (1):
efi/mokvar-table: Avoid repeated map/unmap of the same page
Ariel Silver (1):
media: dvb-net: fix OOB access in ULE extension header tables
Baokun Li (1):
ext4: fix iloc.bh leak in ext4_fc_replay_inode() error paths
Bart Van Assche (3):
wifi: wlcore: Fix a locking bug
PM: runtime: Fix a race condition related to device removal
Input: synaptics-rmi4 - fix a locking bug in an error path
Ben Dooks (1):
ACPI: OSL: fix __iomem type on return from acpi_os_map_generic_address()
Ben Hutchings (1):
ip6_tunnel: Fix usage of skb_vlan_inet_prepare()
Benoît Sevens (1):
HID: wacom: fix out-of-bounds read in wacom_intuos_bt_irq
Berk Cem Goksel (1):
ALSA: caiaq: fix stack out-of-bounds read in init_card
Bjorn Andersson (1):
remoteproc: sysmon: Correct subsys_name_len type in QMI request
Borislav Petkov (AMD) (1):
x86/CPU: Fix FPDSS on Zen1
Brian Foster (1):
ext4: fix dirtyclusters double decrement on fs shutdown
Calvin Owens (1):
tracing: Fix trace_buf_size= cmdline parameter with sizes >= 2G
Casey Connolly (1):
ASoC: detect empty DMI strings
Catalin Marinas (1):
arm64: mm: Add PTE_DIRTY back to PAGE_KERNEL* to fix kexec/hibernation
Cengiz Can (1):
nvmet-tcp: fix use-before-check of sg in bounds validation
Cezary Rojewski (2):
ASoC: core: Exit all links before removing their components
ASoC: Intel: catpt: Fix the device initialization
Chen Ni (2):
ASoC: amd: acp3x-rt5682-max9836: Add missing error check for clock acquisition
mtd: rawnand: cadence: Fix error check for dma_alloc_coherent() in cadence_nand_init()
Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss/cpsw-ale: Fix multicast entry handling in ALE table
Chris Spencer (1):
iio: chemical: bme680: Fix measurement wait duration calculation
Christian Eggers (3):
Bluetooth: LE L2CAP: Disconnect if received packet's SDU exceeds IMTU
Bluetooth: LE L2CAP: Disconnect if sum of payload sizes exceed SDU
Bluetooth: SMP: make SM/PER/KDU/BI-04-C happy
Christoffer Sandberg (2):
usb/core/quirks: Add Huawei ME906S-device to wakeup quirk
Input: i8042 - add TUXEDO InfinityBook Max 16 Gen10 AMD to i8042 quirk table
Christophe JAILLET (1):
i2c: fsi: Fix a potential leak in fsi_i2c_probe()
Christophe Leroy (CS GROUP) (1):
powerpc/uaccess: Fix inline assembly for clang build on PPC32
Chuck Lever (2):
NFSD: Hold net reference for the lifetime of /proc/fs/nfs/exports fd RDMA/rw: Fall back to direct SGE on MR pool exhaustion
Claudiu Beznea (4):
phy: renesas: rcar-gen3-usb2: Fix role detection on unbind/bind
phy: renesas: rcar-gen3-usb2: Move IRQ request in probe
phy: renesas: rcar-gen3-usb2: Lock around hardware registers and driver data
phy: renesas: rcar-gen3-usb2: Assert PLL reset on PHY power off
Corentin Labbe (1):
mtd: partitions: redboot: fix style issues
Damien Le Moal (1):
ata: libata-scsi: refactor ata_scsi_translate()
Daniel Hodges (1):
wifi: libertas: fix use-after-free in lbs_free_adapter()
Daniel Scally (3):
media: device property: Return true in fwnode_device_is_available for NULL ops
device property: Check fwnode->secondary in fwnode_graph_get_next_endpoint()
device property: Check fwnode->secondary when finding propertiesDaniil Dulov (1):
wifi: cfg80211: cancel rfkill_block work in wiphy_unregister()
Danilo Krummrich (1):
sh: platform_early: remove pdev->driver_override check
Darrick J. Wong (1):
iomap: reject delalloc mappings during writeback
Dave Airlie (1):
nouveau/dpcd: return EBUSY for aux xfer if the device is asleep
David Carlier (2):
netfilter: ctnetlink: use netlink policy range checks
net: altera-tse: fix skb leak on DMA mapping error in tse_start_xmit()
David Dull (1):
netfilter: x_tables: guard option walkers against 1-byte tail reads
David Hildenbrand (Arm) (1):
mm/hugetlb: fix skipping of unsharing of pmd page tables
David Hildenbrand (Red Hat) (4):
mm/hugetlb: fix hugetlb_pmd_shared()
mm/hugetlb: fix two comments related to huge_pmd_unshare()
mm/rmap: fix two comments related to huge_pmd_unshare()
mm/hugetlb: fix excessive IPI broadcasts when unsharing PMD tables using mmu_gather
David Howells (1):
rxrpc: Fix key/keyring checks in setsockopt(RXRPC_SECURITY_KEY/KEYRING)
David Jeffery (1):
scsi: core: Wake up the error handler when final completions race against each other
David Lechner (1):
iio: light: vcnl4035: fix scan buffer on big-endian
David Thomson (1):
xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Davide Caratti (1):
net/sched: ets: fix divide by zero in the offload path
Davidlohr Bueso (1):
futex: Clear stale exiting pointer in futex_lock_pi() retry path
Deepanshu Kartikey (3):
ext4: convert inline data to extents when truncate exceeds inline size
atm: lec: fix use-after-free in sock_def_readable()
comedi: dt2815: add hardware detection to prevent crash
Dmitry Torokhov (1):
Input: uinput - take event lock when submitting FF request "event"
Eric Biggers (3):
smb: client: Compare MACs in constant time net/tcp-md5: Fix MAC comparison to be constant-time lib/crypto: chacha: Zeroize permuted_state before it leaves scope
Eric Dumazet (6):
indirect_call_wrapper: do not reevaluate function pointer
l2tp: do not use sock_hold() in pppol2tp_session_get_sock()
af_key: validate families in pfkey_send_migrate()
ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()
ip6_tunnel: clear skb2->cb[] in ip4ip6_err()
ipv6: avoid overflows in ip6_datagram_send_ctl()
Ernestas Kulik (1):
USB: serial: option: add MeiG Smart SRM825WN
Ethan Nelson-Moore (1):
net: arcnet: com20020-pci: fix support for 2.5Mbit cards
Ethan Tidmore (5):
staging: rtl8723bs: fix null dereference in find_network
iio: gyro: mpu3050: Fix incorrect free_irq() variable
iio: gyro: mpu3050: Fix irq resource leak
iio: gyro: mpu3050: Move iio_device_register() to correct location
iio: gyro: mpu3050: Fix out-of-sequence free_irq()
Fan Wu (2):
usb: renesas_usbhs: fix use-after-free in ISR during device removal
net: ethernet: arc: emac: quiesce interrupts before requesting IRQ
Fedor Pchelkin (4):
net: macb: fix use-after-free access to PTP clock
net: macb: fix uninitialized rx_fs_lock
net: macb: fix clk handling on PCI glue driver removal
net: macb: properly unregister fixed rate clocks
Felix Gu (2):
mmc: mmci: Fix device_node reference leak in of_get_dml_pipe_index()
phy: ti: j721e-wiz: Fix device node reference leak in wiz_get_lane_phy_types()
Fernando Fernandez Mancera (2):
net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled
net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled
Filipe Manana (2):
btrfs: abort transaction on failure to update root in the received subvol ioctl
btrfs: fix lost error when running device stats on multiple devices fs
Finn Thain (1):
mtd: Avoid boot crash in RedBoot partition table parser
Florian Westphal (10):
netfilter: ctnetlink: remove refcounting in expectation dumpers
netfilter: nft_set_pipapo: split gc into unlink and reclaim phase
netlink: introduce NLA_POLICY_MAX_BE
netfilter: nft_payload: reject out-of-range attributes via policy
netlink: introduce bigendian integer types
netlink: allow be16 and be32 types in all uint policy checks
netfilter: nfnetlink_log: account for netlink header size
netfilter: x_tables: ensure names are nul-terminated
netfilter: ipset: use nla_strcmp for IPSET_ATTR_NAME attr
netlink: add nla be16/32 types to minlen array
Francesco Lavra (1):
iio: imu: st_lsm6dsx: Set FIFO ODR for accelerometer and gyroscope only
Frederic Weisbecker (1):
net: Handle napi_schedule() calls from non-interrupt
Frej Drejhammar (1):
USB: serial: io_edgeport: add support for Blackbox IC135A
Frieder Schrempf (1):
regulator: pca9450: Make IRQ optional
Gabor Juhos (1):
usb: core: don't power off roothub PHYs if phy_set_mode() fails
Gal Pressman (1):
net/mlx5e: Fix DMA FIFO desync on error CQE SQ recovery
Greg Kroah-Hartman (15):
nfc: pn533: properly drop the usb interface reference on disconnect
net: usb: kaweth: validate USB endpoints
net: usb: kalmia: validate USB endpoints
net: usb: pegasus: validate USB endpoints
can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message
can: ucan: Fix infinite loop from zero-length messages
HID: Add HID_CLAIMED_INPUT guards in raw_event callbacks missing them
usb: misc: uss720: properly clean up reference in uss720_probe()
staging: rtl8723bs: properly validate the data in rtw_get_ie_ex()
scsi: ses: Handle positive SCSI error from ses_recv_diag() drm/ioc32: stop speculation on the drm_compat_ioctl path
xfrm_user: fix info leak in build_report()
net: rfkill: prevent unlimited numbers of rfkill events from being created s390/syscalls: Add spectre boundary for syscall dispatch table Linux 5.10.253
Guanghui Feng (1):
iommu/vt-d: Fix intel iommu iotlb sync hardlockup and retry
Guangshuo Li (2):
usb: ulpi: fix double free in ulpi_register_interface() error path
cpufreq: governor: fix double free in cpufreq_dbs_governor_init() error path
Guenter Roeck (1):
wifi: wlcore: Return -ENOMEM instead of -EAGAIN if there is not enough headroom
Gui-Dong Han (1):
hwmon: (max16065) Use READ/WRITE_ONCE to avoid compiler optimization induced race
GuoHan Zhao (1):
xen/privcmd: unregister xenstore notifier on module exit
Günther Noack (1):
HID: asus: avoid memory leak in asus_report_fixup()
Hangbin Liu (1):
bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states
Hannes Reinecke (1):
ata: libata: remove pointless VPRINTK() calls
Hans de Goede (5):
platform/x86: touchscreen_dmi: Add quirk for y-inverted Goodix touchscreen on SUPI S10
ACPICA: include/acpi/acpixf.h: Fix indentation
ACPICA: Allow address_space_handler Install and _REG execution as 2 separate steps
ACPI: EC: Fix EC address space handler unregistration
ACPI: EC: Fix ECDT probe ordering issues
Harald Freudenberger (1):
s390/zcrypt: Enable AUTOSEL_DOM for CCA serialnr sysfs attribute
Heiko Carstens (1):
s390/xor: Fix xor_xc_2() inline assembly constraints
Heitor Alves de Siqueira (1):
usb: usbtmc: Flush anchored URBs in usbtmc_release
Helen Koike (2):
Bluetooth: L2CAP: Fix null-ptr-deref on l2cap_sock_ready_cb
ext4: reject mount if bigalloc with s_first_data_block != 0
Helge Deller (2):
parisc: Increase initial mapping to 64 MB with KALLSYMS
parisc: Fix initial page table creation for boot
Henrique Carvalho (1):
smb: client: fix iface port assignment in parse_server_interfaces
Huiwen He (1):
tracing: Fix syscall events activation by ensuring refcount hits zero
Hyunwoo Kim (5):
netfilter: nfnetlink_queue: fix entry leak in bridge verdict error path
netfilter: nfnetlink_cthelper: fix OOB read in nfnl_cthelper_dump_table()
netfilter: ctnetlink: fix use-after-free in ctnetlink_dump_exp_ct()
Bluetooth: L2CAP: Validate PDU length before reading SDU length in l2cap_ecred_data_rcv()
Bluetooth: L2CAP: Fix ERTM re-init and zero pdu_len infinite loop
Ian Abbott (4):
comedi: Reinit dev->spinlock between attachments to low-level drivers
comedi: ni_atmio16d: Fix invalid clean-up after failed attach
comedi: me_daq: Fix potential overrun of firmware buffer
comedi: me4000: Fix potential overrun of firmware buffer
Ian Forbes (1):
drm/vmwgfx: Add seqno waiter for sync_files
Ian Ray (2):
net: nfc: nci: Fix zero-length proprietary notifications
NFC: nxp-nci: allow GPIOs to sleep
Ilpo Järvinen (1):
serial: 8250: Add late synchronize_irq() to shutdown to handle DW UART BUSY
Ira Weiny (1):
nvdimm/bus: Fix potential use after free in asynchronous initialization
Isaac J. Manjarres (1):
dma-buf: Include ioctl.h in UAPI header
J. Neuschäfer (1):
powerpc: 83xx: km83xx: Fix keymile vendor prefix
JP Hein (1):
USB: core: add NO_LPM quirk for Razer Kiyo Pro webcam
Jakub Kicinski (6):
ipv6: fix NULL pointer deref in ip6_rt_get_dev_rcu()
nfc: nci: free skb on nci_transceive early error paths
nfc: nci: clear NCI_DATA_EXCHANGE before calling completion callback
nfc: rawsock: cancel tx_work before socket teardown
nfc: nci: fix circular locking dependency in nci_close_device
netlink: hide validation union fields from kdoc
Jan Kara (1):
ext4: make recently_deleted() properly work with lazy itable initialization
Jan Kiszka (1):
scsi: storvsc: Fix scheduling while atomic on PREEMPT_RT
Jane Chu (1):
mm/hugetlb: fix copy_hugetlb_page_range() to use ->pt_share_count
Jaskaran Singh (2):
Revert "nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()"
nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()Jason Gunthorpe (1):
IB/mthca: Add missed mthca_unmap_user_db() for mthca_create_srq()
Jean-Baptiste Maneyrol (2):
iio: imu: inv_icm42600: fix odr switch to the same value
iio: imu: inv_icm42600: fix odr switch when turning buffer off
Jeff Layton (2):
sunrpc: fix cache_request leak in cache_release
nfsd: fix heap overflow in NFSv4.0 LOCK replay cache
Jenny Guanni Qu (4):
netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop()
netfilter: nf_conntrack_h323: fix OOB read in decode_int() CONS case
netfilter: xt_time: use unsigned int for monthday bit shift
netfilter: nf_conntrack_h323: check for zero length in DecodeQ931()
Jens Axboe (4):
media: dvb-core: fix wrong reinitialization of ringbuffer on reopen io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop io_uring/tctx: work around xa_store() allocation error issue io_uring/poll: correctly handle io_poll_add() return value on update
Jeongjun Park (3):
drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()
drm/exynos: vidi: fix to avoid directly dereferencing user pointer
drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/freeJian Zhang (1):
net: ncsi: fix skb leak in error paths
Jiasheng Jiang (1):
usb: gadget: f_tcm: Fix NULL pointer dereferences in nexus handling
Jiayuan Chen (4):
atm: lec: fix null-ptr-deref in lec_arp_clear_vccs
net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop net/rose: fix NULL pointer dereference in rose_transmit_link on reconnect
net: qrtr: replace qrtr_tx_flow radix_tree with xarray to fix memory leak
Jimmy Hu (1):
usb: gadget: uvc: fix NULL pointer dereference during unbind race
Jinjiang Tu (1):
mm/huge_memory: fix folio isn't locked in softleaf_to_folio()
Johan Hovold (4):
drm/tegra: dsi: fix device leak on probe
clk: tegra: tegra124-emc: fix device leak on set_rate()
wifi: rt2x00usb: fix devres lifetime
mmc: vub300: fix NULL-deref on disconnect
Johannes Berg (1):
wifi: radiotap: reject radiotap with unknown bits
John Johansen (6):
apparmor: fix: limit the number of levels of policy namespaces
apparmor: Fix double free of ns_name in aa_replace_profiles()
apparmor: fix unprivileged local user can do privileged policy management
apparmor: fix differential encoding verification
apparmor: fix race on rawdata dereference
apparmor: fix race between freeing data and fs accessing it
Jon Hunter (1):
ASoC: tegra: Fix Master Volume Control
Jonathan Teh (1):
platform/x86: thinkpad_acpi: Fix errors reading battery thresholds
Josh Law (4):
lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() lib/bootconfig: check bounds before writing in __xbc_open_brace() tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
Josh Poimboeuf (1):
objtool: Fix Clang jump table detection
Juergen Gross (2):
xen/privcmd: restrict usage in unprivileged domU xen/privcmd: add boot control for restricted usage in domU
Jun Seo (1):
ALSA: usb-audio: Use correct version for UAC3 header validation
Justin Chen (2):
net: bcmgenet: increase WoL poll timeout
usb: ehci-brcm: fix sleep during atomic
Kalesh Singh (1):
mm/tracing: rss_stat: ensure curr is false from kthread context
Kamal Dasu (4):
mtd: rawnand: serialize lock/unlock against other NAND operations
mtd: rawnand: brcmnand: read/write oob during EDU transfer
mtd: rawnand: brcmnand: move to polling in pio mode on oops write
mtd: rawnand: brcmnand: skip DMA during panic write
Keenan Dong (1):
Bluetooth: MGMT: validate LTK enc_size on load
Keith Busch (1):
nvme-pci: ensure we're polling a polled queue
Kevin Hao (1):
net: macb: Move devm_{free,request}_irq() out of spin lock area
Kohei Enju (1):
igc: fix missing update of skb->tail in igc_xmit_frame()
Konrad Dybcio (1):
thunderbolt: Fix property read in nhi_wake_supported()
Kuen-Han Tsai (3):
usb: gadget: f_subset: Fix unbalanced refcnt in geth_free
usb: gadget: f_rndis: Protect RNDIS options with mutex
usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop
Kuninori Morimoto (5):
ASoC: don't indicate error message for snd_soc_[pcm_]dai_xxx()
ASoC: soc-core: move snd_soc_runtime_set_dai_fmt() to upside
ASoC: soc-core: add snd_soc_runtime_get_dai_fmt()
ASoC: soc-core: accept zero format at snd_soc_runtime_set_dai_fmt()
ASoC: soc-core: don't use discriminatory terms on snd_soc_runtime_get_dai_fmt()
Lars Ellenberg (1):
drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()
Lee Jones (1):
HID: multitouch: Check to ensure report responses match the request
Leif Skunberg (1):
platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1
Li Chen (1):
ext4: publish jinode after initialization
Liao Chang (1):
cpufreq: governor: Free dbs_data directly when gov->init() fails
Loic Poulain (2):
net: qrtr: Add GFP flags parameter to qrtr_alloc_ctrl_packet
net: qrtr: Release distant nodes along the bridge node
Long Li (2):
xfs: ensure dquot item is deleted from AIL only after log shutdown
xfs: fix integer overflow in bmap intent sort comparator
Luca Leonardo Scorcia (1):
pinctrl: mediatek: common: Fix probe failure for devices without EINT
Luiz Augusto von Dentz (2):
Bluetooth: HIDP: Fix possible UAF
Bluetooth: L2CAP: Fix accepting multiple L2CAP_ECRED_CONN_REQ
Luka Gejak (1):
staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie
Lukas Johannes Möller (3):
Bluetooth: L2CAP: Fix type confusion in l2cap_ecred_reconf_rsp()
Bluetooth: L2CAP: Validate L2CAP_INFO_RSP payload length before access
netfilter: nf_conntrack_sip: fix Content-Length u32 truncation in sip_help_tcp()
Lukas Schmid (1):
iio: potentiometer: mcp4131: fix double application of wiper shift
Luke Wang (1):
mmc: sdhci: fix timing selection for 1-bit bus width
Maciej W. Rozycki (1):
MIPS: Fix the GCC version check for `__multi3' workaround
Manivannan Sadhasivam (1):
Revert "PCI: Enable ACS after configuring IOMMU for OF platforms"
Marc Buerg (1):
sysctl: fix uninitialized variable in proc_do_large_bitmap
Marc Kleine-Budde (2):
can: gs_usb: gs_can_open(): always configure bitrates before starting device
spi: spi-fsl-lpspi: fix teardown order issue (UAF)
Marc Zyngier (2):
usb: cdc-acm: Restore CAP_BRK functionnality to CH343 irqchip/gic-v3-its: Limit number of per-device MSIs to the range the ITS supports
Marek Vasut (3):
dmaengine: xilinx: xilinx_dma: Fix dma_device directions
dmaengine: xilinx: xilinx_dma: Fix residue calculation for cyclic DMA
dmaengine: xilinx: xilinx_dma: Fix unmasked residue subtraction
Mark Brown (2):
ASoC: fsl_easrc: Fix event generation in fsl_easrc_iec958_set_reg()
ASoC: fsl_easrc: Fix event generation in fsl_easrc_iec958_put_bits()
Mark Harmstone (2):
btrfs: fix incorrect key offset in error message in check_dev_extent_item()
btrfs: fix super block offset in error message in btrfs_validate_super()
Martin Roukala (né Peres) (1):
serial: 8250_pci: add support for the AX99100
Martin Schiller (2):
net/x25: Fix potential double free of skb net/x25: Fix overflow when accumulating packets
Massimiliano Pellizzer (5):
apparmor: validate DFA start states are in bounds in unpack_pdb
apparmor: fix memory leak in verify_header
apparmor: replace recursive profile removal with iterative approach
apparmor: fix side-effect bug in match_char() macro usage
apparmor: fix missing bounds check on DEFAULT table in verify_dfa()
Mathias Krause (1):
scsi: lpfc: Properly set WC for DPP mapping
Matt Vollrath (1):
e1000/e1000e: Fix leak in DMA error cleanup
Matthew Schwartz (1):
mmc: sdhci-pci-gli: fix GL9750 DMA write corruption
Max Kellermann (1):
ceph: fix i_nlink underrun during async unlink
Maíra Canal (2):
pmdomain: bcm: bcm2835-power: Fix broken reset status read
pmdomain: bcm: bcm2835-power: Increase ASB control timeout
Mehul Rao (2):
tipc: fix divide-by-zero in tipc_sk_filter_connect()
ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()
Miao Li (1):
usb: quirks: add DELAY_INIT quirk for another Silicon Motion flash drive
Miaohe Lin (1):
mm/hugetlb: make detecting shared pte more reliable
Michael Zimmermann (1):
usb: gadget: f_hid: move list and spinlock inits from bind to alloc
Miguel Ojeda (1):
dma-mapping: add missing inline for dma_free_attrs
Mike Rapoport (Microsoft) (2):
x86/efi: defer freeing of boot services memory
x86/efi: efi_unmap_boot_services: fix calculation of ranges_to_free size
Mikhail Gavrilov (1):
Input: uinput - fix circular locking dependency with ff-core
Milos Nikic (1):
jbd2: gracefully abort on checkpointing state corruptions
Natalie Vock (1):
drm/amd/display: Use GFP_ATOMIC in dc_create_stream_for_sink
Nikola Z. Ivanov (1):
net: usb: aqc111: Do not perform PM inside suspend callback
Norbert Szetei (1):
crypto: af-alg - fix NULL pointer dereference in scatterwalk
Oleh Konko (3):
Bluetooth: SMP: derive legacy responder STK authentication from MITM state
Bluetooth: SMP: force responder MITM requirements before building the pairing response
tipc: fix bc_ackers underflow on duplicate GRP_ACK_MSG
Oleksij Rempel (3):
net: usb: lan78xx: fix silent drop of packets with checksum errors
net: usb: lan78xx: skip LTM configuration for LAN7850
iio: dac: ds4424: reject -128 RAW value
Oliver Hartkopp (2):
can: bcm: fix locking for bcm_op runtime updates
can: statistics: add missing atomic access in hot path
Oliver Neukum (4):
usb: yurex: fix race in probe
usb: class: cdc-wdm: fix reordering issue in read code path
usb: mdc800: handle signal and read racing
cdc-acm: new quirk for EPSON HMD
Oswald Buddenhagen (1):
ALSA: pcm: fix wait_time calculations
Pablo Neira Ayuso (4):
netfilter: nft_ct: drop pending enqueued packets on removal
netfilter: xt_CT: drop pending enqueued packets on template removal
netfilter: x_tables: restrict xt_check_match/xt_check_target extensions for NFPROTO_ARP
netfilter: nf_tables: reject immediate NF_QUEUE verdict
Paolo Abeni (2):
selftests: mptcp: more stable simult_flows tests
ipv6: prevent possible UaF in addrconf_permanent_addr()
Paolo Valerio (1):
net: macb: use the current queue number for stats
Paul Chaignon (1):
bpf: Forget ranges when refining tnum after JSET
Paul Moses (1):
net/sched: act_gate: snapshot parameters with RCU on replace
Paul Walmsley (1):
riscv: kgdb: fix several debug register assignment bugs
Paulo Alcantara (1):
smb: client: fix atomic open with O_DIRECT & O_SYNC
Peng Fan (1):
regulator: pca9450: Correct interrupt type
Pengpeng Hou (4):
Bluetooth: btusb: clamp SCO altsetting table indices
NFC: pn533: bound the UART receive buffer
nfc: pn533: allocate rx skb before consuming bytes
net: qualcomm: qca_uart: report the consumed byte on RX skb allocation failure
Peter Wang (1):
scsi: ufs: core: Move link recovery for hibern8 exit failure to wl_resume
Phillip Lougher (1):
Squashfs: check metadata block offset is within range
Pierre-Louis Bossart (1):
ASoC: topology: use inclusive language for bclk and fsync
Piotr Mazek (1):
ACPI: PM: Save NVS memory on Lenovo G70-35
Qi Tang (3):
net/smc: fix double-free of smc_spd_priv when tee() duplicates splice pipe buffer
netfilter: nf_conntrack_helper: pass helper to expect cleanup
netfilter: ctnetlink: zero expect NAT fields when CTA_EXPECT_NAT absent
Qingye Zhao (1):
cgroup: fix race between task migration and iteration
Radhey Shyam Pandey (1):
dmaengine: xilinx_dma: Program interrupt delay timeout
Rafael J. Wysocki (2):
sched: idle: Make skipping governor callbacks more consistent
sched: idle: Consolidate the handling of two special cases
Raju Rangoju (1):
amd-xgbe: fix sleep while atomic on suspend/resume
Randy Dunlap (1):
time: add kernel-doc in time.c
Raphael Zimmer (1):
libceph: Fix potential out-of-bounds access in ceph_handle_auth_reply()
Raul E Rangel (1):
serial: 8250: Fix TX deadlock when using DMA
Ren Wei (1):
netfilter: ip6t_rt: reject oversized addrnr in rt_mt6_check()
Richard Genoud (1):
soc: fsl: qbman: fix race condition in qman_destroy_fq
Romain Sioen (1):
HID: mcp2221: cancel last I2C command on read error
Ruide Cao (1):
batman-adv: reject oversized global TT response buffers
Sabrina Dubroca (3):
xfrm: call xdo_dev_state_delete during state update
esp: fix skb leak with espintcp and async crypto
rtnetlink: count IFLA_INFO_SLAVE_KIND in if_nlmsg_size
Saeed Mahameed (1):
net/mlx5: Avoid "No data available" when FW version queries fail
Samasth Norway Ananda (1):
drm/i915/gmbus: fix spurious timeout on 512-byte burst reads
Sanman Pradhan (5):
hwmon: (pmbus/isl68137) Fix unchecked return value and use sysfs_emit()
hwmon: (adm1177) fix sysfs ABI violation and current unit conversion
hwmon: (pxe1610) Check return value of page-select write in probe
hwmon: (occ) Fix missing newline in occ_show_extended()
hwmon: (occ) Fix division by zero in occ_show_power_1()
Saravana Kannan (1):
device property: Add fwnode_is_ancestor_of() and fwnode_get_next_parent_dev()
Sasha Levin (3):
Revert "drm/vmwgfx: Add seqno waiter for sync_files"
Revert "scsi: core: Wake up the error handler when final completions race against each other" Revert "media: dvb-frontends: w7090p: fix null-ptr-deref in w7090p_tuner_write_serpar and w7090p_tuner_read_serpar"
Sean Christopherson (1):
KVM: SVM: Initialize AVIC VMCB fields if AVIC is enabled with in-kernel APIC
Sebastian Urban (1):
usb: gadget: dummy_hcd: fix premature URB completion when ZLP follows partial transfer
Shashank Balaji (1):
x86/apic: Disable x2apic on resume if the kernel expects so
Shawn Guo (2):
arm64: dts: hisilicon: poplar: Correct PCIe reset GPIO polarity
arm64: dts: hisilicon: hi3798cv200: Add missing dma-ranges
Shuangpeng Bai (1):
serial: caif: hold tty->link reference in ldisc_open and ser_release
Sofia Schneider (1):
ACPI: OSI: Add DMI quirk for Acer Aspire One D255
Steffen Klassert (1):
xfrm: Fix the usage of skb->sk
Steven Rostedt (1):
time/jiffies: Mark jiffies_64_to_clock_t() notrace
Sungwoo Kim (1):
nvme-pci: Fix slab-out-of-bounds in nvme_dbbuf_set
Suraj Gupta (1):
net: xilinx: axienet: Correct BD length masks to match AXIDMA IP spec
Sven Eckelmann (1):
batman-adv: Avoid double-rtnl_lock ELP metric worker
Taegu Ha (1):
usb: gadget: f_uac1_legacy: validate control request size
Takashi Iwai (4):
ALSA: usb-audio: Cap the packet size pre-calculations
ALSA: hda/conexant: Add quirk for HP ZBook Studio G4
ALSA: hda/conexant: Fix headphone jack handling on Acer Swift SF314
ALSA: ctxfi: Fix missing SPDIFI1 index handling
Thomas Bogendoerfer (1):
tg3: Fix race for querying speed/duplex
Thomas Fourier (2):
drm/msm: Fix dma_free_attrs() buffer size
wifi: brcmsmac: Fix dma_free_coherent() size
Thomas Weißschuh (1):
ARM: clean up the memset64() C wrapper
Thomas Zimmermann (1):
drm/ast: dp501: Fix initialization of SCU2C
Thorsten Blum (2):
smb: client: Don't log plaintext credentials in cifs_set_cifscreds
crypto: atmel-sha204a - Fix OOM ->tfm_count leak
Toke Høiland-Jørgensen (1):
net: openvswitch: Avoid releasing netdev before teardown completes
Tom Rix (1):
nfsd: define exports_proc_ops with CONFIG_PROC_FS
Tomas Henzl (1):
scsi: ses: Fix devices attaching to different hosts
Tomi Valkeinen (1):
dmaengine: xilinx_dma: Fix reset related timeout with two-channel AXIDMA
Tuan Do (1):
netfilter: nft_ct: fix use-after-free in timeout object destroy
Tyllis Xu (2):
scsi: ibmvfc: Fix OOB access in ibmvfc_discover_targets_done()
net: stmmac: fix integer underflow in chain mode
Uzair Mughal (1):
ALSA: hda/realtek: Add headset jack quirk for Thinkpad X390
Vahagn Vardanian (1):
wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()
Vasily Gorbik (1):
s390/barrier: Make array_index_mask_nospec() __always_inline
Viresh Kumar (1):
cpufreq: conservative: Reset requested_freq on limits change
Wang Qing (1):
ARM: OMAP2+: add missing of_node_put before break and return
Wanquan Zhong (1):
USB: serial: option: add support for Rolling Wireless RW135R-GL
Wei Fang (1):
net: enetc: fix the output issue of 'ethtool --show-ring'
Weiming Shi (6):
net/sched: teql: fix NULL pointer dereference in iptunnel_xmit on TEQL slave xmit
nfnetlink_osf: validate individual option lengths in fingerprints
icmp: fix NULL pointer dereference in icmp_tag_validation()
netfilter: nfnetlink_log: fix uninitialized padding leak in NFULA_PAYLOAD
netfilter: nf_conntrack_sip: fix use of uninitialized rtp_addr in process_sdp
rds: ib: reject FRMR registration before IB connection is established
Wentao Liang (1):
ARM: omap2: Fix reference count leaks in omap_control_init()
Wenyuan Li (1):
can: hi311x: hi3110_open(): add check for hi3110_power_enable() return value
Xiang Mei (6):
wifi: mac80211: fix NULL deref in mesh_matches_local()
udp_tunnel: fix NULL deref caused by udp_sock_create6 when CONFIG_IPV6=n
net: bonding: fix NULL deref in bond_debug_rlb_hash_show net/sched: sch_hfsc: fix divide-by-zero in rtsc_min() net/sched: cls_fw: fix NULL pointer dereference on shared blocks net/sched: cls_flow: fix NULL pointer dereference on shared blocks
Xu Yang (1):
usb: roles: get usb role switch from parent only for usb-b-connector
Yang Yang (5):
openvswitch: validate MPLS set/set_masked payload length
bridge: br_nd_send: linearize skb before parsing ND options
bridge: br_nd_send: validate ND option lengths
vxlan: validate ND option lengths in vxlan_na_create
batman-adv: avoid OGM aggregation when skb tailroom is insufficient
Yang Yingliang (1):
device property: fix of node refcount leak in fwnode_graph_get_next_endpoint()
Yasuaki Torimaru (1):
wifi: wilc1000: fix u8 overflow in SSID scan buffer size calculation
Ye Bin (1):
ext4: avoid allocate block from corrupted group in ext4_mb_find_by_goal()
Yifan Wu (1):
netfilter: ipset: drop logically empty buckets in mtype_del
Yihang Li (1):
scsi: scsi_transport_sas: Fix the maximum channel scanning issue
Yochai Eisenrich (3):
net: fix fanout UAF in packet_release() via NETDEV_UP race
net: ipv6: ndisc: fix ndisc_ra_useropt to initialize nduseropt_padX fields to zero to prevent an info-leak
net: sched: cls_api: fix tc_chain_fill_node to initialize tcm_info to zero to prevent an info-leak
Yuan Tan (1):
netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels
Yuchan Nam (1):
media: mc, v4l2: serialize REINIT and REQBUFS with req_queue_mutex
Yufan Chen (1):
net: ftgmac100: fix ring allocation unwind on open failure
Yuto Ohnuki (2):
xfs: save ailp before dropping the AIL lock in push callbacks
xfs: stop reclaim before pushing AIL during unmount
Zhan Xusheng (1):
alarmtimer: Fix argument order in alarm_timer_forward()
Zhang Yi (2):
ext4: don't set EXT4_GET_BLOCKS_CONVERT when splitting before submitting I/O
ext4: drop extent cache when splitting extent fails
Zhengchuan Liang (1):
net: ipv6: flowlabel: defer exclusive option free until RCU teardown
Zilin Guan (1):
usb: xhci: Fix memory leak in xhci_disable_slot()
Ziyi Guo (1):
usb: image: mdc800: kill download URB on timeout
Zoltan Illes (1):
Input: xpad - add support for Razer Wolverine V3 Pro
Zqiang (1):
ext4: fix the might_sleep() warnings in kvfree()
matteo.cotifava (2):
ASoC: soc-core: drop delayed_work_pending() check before flush
ASoC: soc-core: flush delayed work before removing DAIs and widgets
xietangxin (1):
virtio_net: Fix UAF on dst_ops when IFF_XMIT_DST_RELEASE is cleared and napi_tx is false
Greg Kroah-Hartman
maintainerDocumentation/hwmon/adm1177.rst +4 -4
@@ -26,10 +26,10 @@ devices explicitly. Please see :doc:`/i2c/instantiating-devices` for details. Sysfs entries ------------- -The following attributes are supported. Current maxim attribute +The following attributes are supported. Current maximum attribute is read-write, all other attributes are read-only. -in0_input Measured voltage in microvolts. +in0_input Measured voltage in millivolts. -curr1_input Measured current in microamperes. -curr1_max_alarm Overcurrent alarm in microamperes. +curr1_input Measured current in milliamperes. +curr1_max Overcurrent shutdown threshold in milliamperes.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 252 +SUBLEVEL = 253 EXTRAVERSION = NAME = Dare mighty things
arch/arm/include/asm/string.h +9 -5
@@ -33,13 +33,17 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n) }#define __HAVE_ARCH_MEMSET64 -extern void *__memset64 (uint64_t *,uint32_t low,__kernel_size_t ,uint32_t hi); +extern void *__memset64 (uint64_t *,uint32_t first,__kernel_size_t ,uint32_t second);static inline void *memset64 (uint64_t *p,uint64_t v,__kernel_size_t n) { -if (IS_ENABLED (CONFIG_CPU_LITTLE_ENDIAN )) -return __memset64 (p, v, n *8 , v >>32 ); -else -return __memset64 (p, v >>32 , n *8 , v); +union { +uint64_t val; +struct { +uint32_t first, second; + }; + } word = { .val = v }; + +return __memset64 (p, word.first, n *8 , word.second); }#endif
arch/arm/mach-omap2/cm_common.c +6 -2
@@ -333,8 +333,10 @@ int __init omap2_cm_base_init(void) data = (struct omap_prcm_init_data *)match->data; ret =of_address_to_resource (np,0 , &res); -if (ret) +if (ret) { +of_node_put (np);return ret; + }if (data->index ==TI_CLKM_CM ) mem = &cm_base;
@@ -380,8 +382,10 @@ int __init omap_cm_init(void)continue ; ret =omap2_clk_provider_init (np, data->index,NULL , data->mem); -if (ret) +if (ret) { +of_node_put (np);return ret; + } }return 0 ;
arch/arm/mach-omap2/control.c +22 -7
@@ -774,8 +774,10 @@ int __init omap2_control_base_init(void) data = (struct control_init_data *)match->data; mem =of_iomap (np,0 ); -if (!mem) +if (!mem) { +of_node_put (np);return -ENOMEM ; + }if (data->index ==TI_CLKM_CTRL ) { omap2_ctrl_base = mem;
@@ -796,7 +798,7 @@ int __init omap2_control_base_init(void)*/ int __init omap_control_init (void ) { -struct device_node *np, *scm_conf; +struct device_node *np, *scm_conf, *clocks_node;const struct of_device_id *match;const struct omap_prcm_init_data *data;int ret;
@@ -815,22 +817,27 @@ int __init omap_control_init(void)if (scm_conf) { syscon =syscon_node_to_regmap (scm_conf); -if (IS_ERR (syscon)) -return PTR_ERR (syscon); +if (IS_ERR (syscon)) { + ret =PTR_ERR (syscon); + goto err_put_scm_conf; + } -if (of_get_child_by_name (scm_conf,"clocks" )) { + clocks_node =of_get_child_by_name (scm_conf,"clocks" ); +if (clocks_node) { +of_node_put (clocks_node); ret =omap2_clk_provider_init (scm_conf, data->index, syscon,NULL );if (ret) -return ret; + goto err_put_scm_conf; } +of_node_put (scm_conf); }else {/* No scm_conf found, direct access */ ret =omap2_clk_provider_init (np, data->index,NULL , data->mem);if (ret) -return ret; + goto of_node_put; } }
@@ -841,6 +848,14 @@ int __init omap_control_init(void) }return 0 ; + +err_put_scm_conf: +if (scm_conf) +of_node_put (scm_conf); +of_node_put: +of_node_put (np); +return ret; + }/**
arch/arm/mach-omap2/prm_common.c +6 -2
@@ -752,8 +752,10 @@ int __init omap2_prm_base_init(void) data = (struct omap_prcm_init_data *)match->data; ret =of_address_to_resource (np,0 , &res); -if (ret) +if (ret) { +of_node_put (np);return ret; + } data->mem =ioremap (res.start,resource_size (&res));
@@ -799,8 +801,10 @@ int __init omap_prcm_init(void) data = match->data; ret =omap2_clk_provider_init (np, data->index,NULL , data->mem); -if (ret) +if (ret) { +of_node_put (np);return ret; + } }omap_cm_init ();
arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts +1 -1
@@ -179,7 +179,7 @@ &ohci { }; &pcie { - reset-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>; vpcie-supply = <®_pcie>; status = "okay"; };
arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi +1 -0
@@ -81,6 +81,7 @@ soc: soc@f0000000 { #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0xf0000000 0x10000000>; + dma-ranges = <0x0 0x0 0x0 0x40000000>; crg: clock-reset-controller@8a22000 { compatible = "hisilicon,hi3798cv200-crg", "syscon", "simple-mfd";
arch/arm64/include/asm/pgtable-prot.h +5 -5
@@ -65,11 +65,11 @@ extern bool arm64_use_ng_mappings;#define _PAGE_DEFAULT (_PROT_DEFAULT | PTE_ATTRINDX(MT_NORMAL)) -#define PAGE_KERNEL __pgprot(PROT_NORMAL) -#define PAGE_KERNEL_RO __pgprot((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY) -#define PAGE_KERNEL_ROX __pgprot((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY) -#define PAGE_KERNEL_EXEC __pgprot(PROT_NORMAL & ~PTE_PXN) -#define PAGE_KERNEL_EXEC_CONT __pgprot((PROT_NORMAL & ~PTE_PXN) | PTE_CONT) +#define PAGE_KERNEL __pgprot(PROT_NORMAL | PTE_DIRTY) +#define PAGE_KERNEL_RO __pgprot((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY | PTE_DIRTY) +#define PAGE_KERNEL_ROX __pgprot((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY | PTE_DIRTY) +#define PAGE_KERNEL_EXEC __pgprot((PROT_NORMAL & ~PTE_PXN) | PTE_DIRTY) +#define PAGE_KERNEL_EXEC_CONT __pgprot((PROT_NORMAL & ~PTE_PXN) | PTE_CONT | PTE_DIRTY)#define PAGE_S2_MEMATTR (attr) \ ({ \
arch/mips/lib/multi3.c +3 -3
@@ -4,12 +4,12 @@#include "libgcc.h" /* -* GCC 7 & older can suboptimally generate __multi3 calls for mips64r6, so for +* GCC 9 & older can suboptimally generate __multi3 calls for mips64r6, so for * that specific case only we implement that intrinsic here. * * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82981 */ -#if defined(CONFIG_64BIT ) && defined(CONFIG_CPU_MIPSR6 ) && (__GNUC__ <8 ) +#if defined(CONFIG_64BIT ) && defined(CONFIG_CPU_MIPSR6 ) && (__GNUC__ <10 )/* multiply 64-bit values, low 64-bits returned */ static inline long long notrace dmulu (long long a,long long b)
@@ -51,4 +51,4 @@ ti_type notrace __multi3(ti_type a, ti_type b) }EXPORT_SYMBOL (__multi3); -#endif /* 64BIT && CPU_MIPSR6 && GCC7 */ +#endif /* 64BIT && CPU_MIPSR6 && GCC9 */
arch/parisc/include/asm/pgtable.h +1 -1
@@ -109,7 +109,7 @@ extern void __update_cache(pte_t pte);printk ("%s:%d: bad pgd %08lx.\n" , __FILE__, __LINE__, (unsigned long )pgd_val (e)) /* This is the size of the initially mapped kernel memory */ -#if defined(CONFIG_64BIT ) +#if defined(CONFIG_64BIT ) || defined(CONFIG_KALLSYMS )#define KERNEL_INITIAL_ORDER 26/* 1<<26 = 64MB */ #else #define KERNEL_INITIAL_ORDER 25/* 1<<25 = 32MB */
arch/parisc/kernel/head.S +6 -1
@@ -55,6 +55,7 @@ ENTRY(parisc_kernel_start) .import __bss_start,data .import __bss_stop,data + .import __end,data load32 PA(__bss_start),%r3 load32 PA(__bss_stop),%r4
@@ -148,7 +149,11 @@ $cpu_ok: * everything ... it will get remapped correctly later */ ldo 0+_PAGE_KERNEL_RWX(%r0),%r3 /* Hardwired 0 phys addr start */ load32 (1<<(KERNEL_INITIAL_ORDER-PAGE_SHIFT)),%r11 /* PFN count */ - load32 PA(pg0),%r1 + load32 PA(_end),%r1 + SHRREG %r1,PAGE_SHIFT,%r1 /* %r1 is PFN count for _end symbol */ + cmpb,<<,n %r11,%r1,1f + copy %r1,%r11 /* %r1 PFN count smaller than %r11 */ +1: load32 PA(pg0),%r1 $pgt_fill_loop: STREGM %r3,ASM_PTE_ENTRY_SIZE(%r1)
arch/powerpc/include/asm/uaccess.h +1 -1
@@ -279,7 +279,7 @@ extern long __get_user_bad(void);".section .fixup,\"ax\"\n" \"4: li %0,%3\n" \" li %1,0\n" \ -" li %1+1,0\n" \ +" li %L1,0\n" \" b 3b\n" \".previous\n" \EX_TABLE (1b ,4b ) \
arch/powerpc/platforms/83xx/km83xx.c +2 -2
@@ -156,8 +156,8 @@ machine_device_initcall(mpc83xx_km, mpc83xx_declare_of_platform_devices);/* list of the supported boards */ static char *board[]__initdata = { -"Keymile,KMETER1" , -"Keymile,kmpbec8321" , +"keymile,KMETER1" , +"keymile,kmpbec8321" ,NULL };
arch/riscv/kernel/kgdb.c +4 -3
@@ -194,7 +194,7 @@ struct dbg_reg_def_t dbg_reg_def[DBG_MAX_REG_NUM] = { {DBG_REG_T1, GDB_SIZEOF_REG, offsetof(struct pt_regs, t1)}, {DBG_REG_T2, GDB_SIZEOF_REG, offsetof(struct pt_regs, t2)}, {DBG_REG_FP, GDB_SIZEOF_REG, offsetof(struct pt_regs, s0)}, - {DBG_REG_S1, GDB_SIZEOF_REG, offsetof(struct pt_regs, a1)}, + {DBG_REG_S1, GDB_SIZEOF_REG, offsetof(struct pt_regs, s1)}, {DBG_REG_A0, GDB_SIZEOF_REG, offsetof(struct pt_regs, a0)}, {DBG_REG_A1, GDB_SIZEOF_REG, offsetof(struct pt_regs, a1)}, {DBG_REG_A2, GDB_SIZEOF_REG, offsetof(struct pt_regs, a2)},
@@ -263,8 +263,9 @@ sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task) gdb_regs[DBG_REG_S6_OFF ] = task->thread.s[6 ]; gdb_regs[DBG_REG_S7_OFF ] = task->thread.s[7 ]; gdb_regs[DBG_REG_S8_OFF ] = task->thread.s[8 ]; - gdb_regs[DBG_REG_S9_OFF ] = task->thread.s[10 ]; - gdb_regs[DBG_REG_S10_OFF ] = task->thread.s[11 ]; + gdb_regs[DBG_REG_S9_OFF ] = task->thread.s[9 ]; + gdb_regs[DBG_REG_S10_OFF ] = task->thread.s[10 ]; + gdb_regs[DBG_REG_S11_OFF ] = task->thread.s[11 ]; gdb_regs[DBG_REG_EPC_OFF ] = task->thread.ra; }
arch/s390/include/asm/barrier.h +2 -2
@@ -56,8 +56,8 @@ do { \* @size: number of elements in array */ #define array_index_mask_nospec array_index_mask_nospec -static inline unsigned long array_index_mask_nospec (unsigned long index, -unsigned long size) +static __always_inline unsigned long array_index_mask_nospec (unsigned long index, +unsigned long size) {unsigned long mask;
arch/s390/kernel/entry.S +5 -2
@@ -420,12 +420,15 @@ ENTRY(system_call) # svc 0: system call number in %r1 llgfr %r1,%r1 # clear high word in r1 sth %r1,__PT_INT_CODE+2(%r11) - cghi %r1,NR_syscalls - jnl .Lsysc_nr_ok + lghi %r0,NR_syscalls-1 + clgr %r1,%r0 # CC0/1 if r1 in bounds + slbgr %r0,%r0 # mask = -1 in bounds, 0 out of bounds + ngr %r1,%r0 # clamp r1 slag %r8,%r1,3 .Lsysc_nr_ok: stg %r2,__PT_ORIG_GPR2(%r11) stg %r7,STACK_FRAME_OVERHEAD(%r15) + xgr %r1,%r1 # scrub r1, unclamped user value for svc 1-255 lg %r9,0(%r8,%r10) # get system call add. TSTMSK __TI_flags(%r12),_TIF_TRACE jnz .Lsysc_tracesys
arch/s390/lib/xor.c +2 -2
@@ -28,8 +28,8 @@ static void xor_xc_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)" j 3f\n" "2: xc 0(1,%1),0(%2)\n" "3:\n" - : : "d" (bytes), "a" (p1), "a" (p2) - : "0", "1", "cc", "memory"); + : "+d" (bytes), "+a" (p1), "+a" (p2) + : : "0", "1", "cc", "memory"); } static void xor_xc_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
arch/sh/drivers/platform_early.c +0 -4
@@ -26,10 +26,6 @@ static int platform_match(struct device *dev, struct device_driver *drv)struct platform_device *pdev =to_platform_device (dev);struct platform_driver *pdrv =to_platform_driver (drv); -/* When driver_override is set, only bind to the matching driver */ -if (pdev->driver_override) -return !strcmp (pdev->driver_override, drv->name); -/* Then try to match against the id table */ if (pdrv->id_table)return platform_match_id (pdrv->id_table, pdev) !=NULL ;
arch/x86/include/asm/efi.h +1 -1
@@ -151,7 +151,7 @@ extern int __init efi_reuse_config(u64 tables, int nr_tables);extern void efi_delete_dummy_variable (void );extern void efi_switch_mm (struct mm_struct *mm);extern void efi_recover_from_page_fault (unsigned long phys_addr); -extern void efi_free_boot_services (void ); +extern void efi_unmap_boot_services (void );/* kexec external ABI */ struct efi_setup_data {
arch/x86/include/asm/msr-index.h +3 -0
@@ -529,6 +529,9 @@#define MSR_AMD64_DC_CFG 0xc0011022#define MSR_AMD64_TW_CFG 0xc0011023 +#define MSR_AMD64_FP_CFG 0xc0011028 +#define MSR_AMD64_FP_CFG_ZEN1_DENORM_FIX_BIT 9 +#define MSR_AMD64_DE_CFG 0xc0011029#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT)
arch/x86/kernel/apic/apic.c +6 -0
@@ -1901,6 +1901,7 @@ early_initcall(validate_x2apic);static inline void try_to_enable_x2apic (int remap_mode) { }static inline void __x2apic_enable (void ) { } +static inline void __x2apic_disable (void ) { }#endif /* !CONFIG_X86_X2APIC */ void __init enable_IR_x2apic (void )
@@ -2664,6 +2665,11 @@ static void lapic_resume(void)if (x2apic_mode) {__x2apic_enable (); }else { +if (x2apic_enabled ()) { +pr_warn_once ("x2apic: re-enabled by firmware during resume. Disabling\n" ); +__x2apic_disable (); + } +/* * Make sure the APICBASE points to the right address *
arch/x86/kernel/cpu/amd.c +3 -0
@@ -1102,6 +1102,9 @@ static void init_amd_zn(struct cpuinfo_x86 *c)if (c->x86 ==0x19 && !cpu_has (c,X86_FEATURE_BTC_NO ))set_cpu_cap (c,X86_FEATURE_BTC_NO ); } + +pr_notice_once ("AMD Zen1 FPDSS bug detected, enabling mitigation.\n" ); +msr_set_bit (MSR_AMD64_FP_CFG ,MSR_AMD64_FP_CFG_ZEN1_DENORM_FIX_BIT ); }static bool cpu_has_zenbleed_microcode (void )
arch/x86/kvm/svm/avic.c +1 -1
@@ -203,7 +203,7 @@ void avic_init_vmcb(struct vcpu_svm *svm) vmcb->control.avic_logical_id = lpa &AVIC_HPA_MASK ; vmcb->control.avic_physical_id = ppa &AVIC_HPA_MASK ; vmcb->control.avic_physical_id |=AVIC_MAX_PHYSICAL_ID_COUNT ; -if (kvm_apicv_activated (svm->vcpu.kvm)) +if (kvm_vcpu_apicv_active (&svm->vcpu)) vmcb->control.int_ctl |=AVIC_ENABLE_MASK ;else vmcb->control.int_ctl &= ~AVIC_ENABLE_MASK ;
arch/x86/kvm/svm/svm.c +1 -1
@@ -1230,7 +1230,7 @@ static void init_vmcb(struct vcpu_svm *svm)svm_check_invpcid (svm); -if (kvm_vcpu_apicv_active (&svm->vcpu)) +if (avic &&irqchip_in_kernel (svm->vcpu.kvm))avic_init_vmcb (svm);/*
arch/x86/mm/fault.c +63 -55
220 lines not on this page · raw message
arch/x86/platform/efi/efi.c +1 -1
@@ -831,7 +831,7 @@ static void __init __efi_enter_virtual_mode(void) }efi_check_for_embedded_firmwares (); -efi_free_boot_services (); +efi_unmap_boot_services ();if (!efi_is_mixed ())efi_native_runtime_setup ();
arch/x86/platform/efi/quirks.c +52 -3
89 lines not on this page · raw message
crypto/af_alg.c +3 -1
@@ -515,8 +515,10 @@ static int af_alg_alloc_tsgl(struct sock *sk)sg_init_table (sgl->sg,MAX_SGL_ENTS +1 ); sgl->cur =0 ; -if (sg) +if (sg) { +sg_unmark_end (sg +MAX_SGL_ENTS -1 );sg_chain (sg,MAX_SGL_ENTS +1 , sgl->sg); + }list_add_tail (&sgl->list, &ctx->tsgl_list); }
drivers/acpi/acpica/evxfregn.c +85 -7
128 lines not on this page · raw message
drivers/acpi/ec.c +21 -11
@@ -96,6 +96,7 @@ enum {EC_FLAGS_QUERY_GUARDING ,/* Guard for SCI_EVT check */ EC_FLAGS_EVENT_HANDLER_INSTALLED ,/* Event handler installed */ EC_FLAGS_EC_HANDLER_INSTALLED ,/* OpReg handler installed */ +EC_FLAGS_EC_REG_CALLED ,/* OpReg ACPI _REG method called */ EC_FLAGS_QUERY_METHODS_INSTALLED ,/* _Qxx handlers installed */ EC_FLAGS_STARTED ,/* Driver is started */ EC_FLAGS_STOPPED, /* Driver is stopped */
@@ -1497,6 +1498,7 @@ static bool install_gpio_irq_event_handler(struct acpi_ec *ec)* ec_install_handlers - Install service callbacks and register query methods. * @ec: Target EC. * @device: ACPI device object corresponding to @ec. +* @call_reg: If _REG should be called to notify OpRegion availability * * Install a handler for the EC address space type unless it has been installed * already. If @device is not NULL, also look for EC query methods in the
@@ -1509,7 +1511,8 @@ static bool install_gpio_irq_event_handler(struct acpi_ec *ec)* -EPROBE_DEFER if GPIO IRQ acquisition needs to be deferred, * or 0 (success) otherwise. */ -static int ec_install_handlers (struct acpi_ec *ec,struct acpi_device *device) +static int ec_install_handlers (struct acpi_ec *ec,struct acpi_device *device, +bool call_reg) {acpi_status status;
@@ -1517,15 +1520,21 @@ static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device)if (!test_bit (EC_FLAGS_EC_HANDLER_INSTALLED , &ec->flags)) {acpi_ec_enter_noirq (ec); - status =acpi_install_address_space_handler (ec->handle, -ACPI_ADR_SPACE_EC , - &acpi_ec_space_handler, -NULL , ec); + status =acpi_install_address_space_handler_no_reg (ec->handle, +ACPI_ADR_SPACE_EC , + &acpi_ec_space_handler, +NULL , ec);if (ACPI_FAILURE (status)) {acpi_ec_stop (ec, false);return -ENODEV ; }set_bit (EC_FLAGS_EC_HANDLER_INSTALLED , &ec->flags); + ec->address_space_handler_holder = ec->handle; + } + +if (call_reg && !test_bit (EC_FLAGS_EC_REG_CALLED , &ec->flags)) { +acpi_execute_reg_methods (ec->handle,ACPI_ADR_SPACE_EC ); +set_bit (EC_FLAGS_EC_REG_CALLED , &ec->flags); }if (!device)
@@ -1577,7 +1586,8 @@ static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device)static void ec_remove_handlers (struct acpi_ec *ec) {if (test_bit (EC_FLAGS_EC_HANDLER_INSTALLED , &ec->flags)) { -if (ACPI_FAILURE (acpi_remove_address_space_handler (ec->handle, +if (ACPI_FAILURE (acpi_remove_address_space_handler ( + ec->address_space_handler_holder,ACPI_ADR_SPACE_EC , &acpi_ec_space_handler)))pr_err ("failed to remove space handler\n" );clear_bit (EC_FLAGS_EC_HANDLER_INSTALLED , &ec->flags);
@@ -1613,11 +1623,11 @@ static void ec_remove_handlers(struct acpi_ec *ec) } } -static int acpi_ec_setup (struct acpi_ec *ec,struct acpi_device *device) +static int acpi_ec_setup (struct acpi_ec *ec,struct acpi_device *device,bool call_reg) {int ret; - ret =ec_install_handlers (ec, device); + ret =ec_install_handlers (ec, device, call_reg);if (ret)return ret;
@@ -1679,7 +1689,7 @@ static int acpi_ec_add(struct acpi_device *device) } } - ret =acpi_ec_setup (ec, device); + ret =acpi_ec_setup (ec, device, true);if (ret) goto err;
@@ -1799,7 +1809,7 @@ void __init acpi_ec_dsdt_probe(void)* At this point, the GPE is not fully initialized, so do not to * handle the events. */ - ret =acpi_ec_setup (ec,NULL ); + ret =acpi_ec_setup (ec,NULL , true);if (ret) {acpi_ec_free (ec);return ;
@@ -1963,7 +1973,7 @@ void __init acpi_ec_ecdt_probe(void)* At this point, the namespace is not initialized, so do not find * the namespace objects, or handle the events. */ - ret =acpi_ec_setup (ec,NULL ); + ret =acpi_ec_setup (ec,NULL , false);if (ret) {acpi_ec_free (ec); goto out;
drivers/acpi/internal.h +1 -0
@@ -169,6 +169,7 @@ static inline void acpi_early_processor_osc(void) {}-------------------------------------------------------------------------- */ struct acpi_ec {acpi_handle handle; +acpi_handle address_space_handler_holder;int gpe;int irq;unsigned long command_addr;
drivers/acpi/osi.c +13 -0
@@ -413,6 +413,19 @@ static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = { }, }, +/* +* The screen backlight turns off during udev device creation +* when returning true for _OSI("Windows 2009") +*/ + { + .callback = dmi_disable_osi_win7, + .ident = "Acer Aspire One D255", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "AOD255"), + }, + }, + /* * The wireless hotkey does not work on those machines when * returning true for _OSI("Windows 2012")
drivers/acpi/osl.c +1 -1
@@ -1755,7 +1755,7 @@ acpi_status __init acpi_os_initialize(void)* Use acpi_os_map_generic_address to pre-map the reset * register if it's in system memory. */ -void *rv; +void __iomem *rv; rv =acpi_os_map_generic_address (&acpi_gbl_FADT.reset_register); pr_debug(PREFIX "%s: map reset_reg %s\n", __func__,
drivers/acpi/sleep.c +8 -0
@@ -372,6 +372,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "80E1"), }, }, + { + .callback = init_nvs_save_s3, + .ident = "Lenovo G70-35", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "80Q5"), + }, + },/* * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using * the Low Power S0 Idle firmware interface (see
drivers/ata/libata-core.c +0 -3
@@ -4461,8 +4461,6 @@ static void ata_sg_clean(struct ata_queued_cmd *qc)WARN_ON_ONCE (sg ==NULL ); -VPRINTK ("unmapping %u sg elements\n" , qc->n_elem); -if (qc->n_elem)dma_unmap_sg (ap->dev, sg, qc->orig_n_elem, dir);
@@ -4494,7 +4492,6 @@ static int ata_sg_setup(struct ata_queued_cmd *qc)if (n_elem <1 )return -1 ; -VPRINTK ("%d sg elements mapped\n" , n_elem); qc->orig_n_elem = qc->n_elem; qc->n_elem = n_elem; qc->flags |=ATA_QCFLAG_DMAMAP ;
drivers/ata/libata-sata.c +0 -2
@@ -1258,8 +1258,6 @@ int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap) {int rc =0 ; -ata_scsi_dump_cdb (ap, cmd); -if (likely (ata_dev_enabled (ap->link.device))) rc =__ata_scsi_queuecmd (cmd, ap->link.device);else {
drivers/ata/libata-scsi.c +49 -74
232 lines not on this page · raw message
drivers/ata/libata-sff.c +0 -4
@@ -888,8 +888,6 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc)if (unlikely (!bytes)) goto atapi_check; -VPRINTK ("ata%u: xfering %d bytes\n" , ap->print_id, bytes); -if (unlikely (__atapi_pio_bytes (qc, bytes))) goto err_out;ata_sff_sync (ap);/* flush */
@@ -2614,7 +2612,6 @@ static void ata_bmdma_fill_sg(struct ata_queued_cmd *qc) prd[pi].addr =cpu_to_le32 (addr); prd[pi].flags_len =cpu_to_le32 (len &0xffff ); -VPRINTK ("PRD[%u] = (0x%X, 0x%X)\n" , pi, addr, len); pi++; sg_len -= len;
@@ -2674,7 +2671,6 @@ static void ata_bmdma_fill_sg_dumb(struct ata_queued_cmd *qc) prd[++pi].addr =cpu_to_le32 (addr +0x8000 ); } prd[pi].flags_len =cpu_to_le32 (blen); -VPRINTK ("PRD[%u] = (0x%X, 0x%X)\n" , pi, addr, len); pi++; sg_len -= len;
drivers/ata/libata.h +0 -1
@@ -150,7 +150,6 @@ extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel, unsigned int id, u64 lun);void ata_scsi_sdev_config (struct scsi_device *sdev);int ata_scsi_dev_config (struct scsi_device *sdev,struct ata_device *dev); -void ata_scsi_dump_cdb (struct ata_port *ap,struct scsi_cmnd *cmd);int __ata_scsi_queuecmd (struct scsi_cmnd *scmd,struct ata_device *dev);/* libata-eh.c */
drivers/base/power/runtime.c +1 -0
@@ -1776,6 +1776,7 @@ void pm_runtime_reinit(struct device *dev)void pm_runtime_remove (struct device *dev) {__pm_runtime_disable (dev, false); +flush_work (&dev->power.work);pm_runtime_reinit (dev); }
drivers/base/property.c +153 -52
327 lines not on this page · raw message
drivers/base/regmap/regmap.c +26 -4
@@ -1587,6 +1587,7 @@ static int _regmap_select_page(struct regmap *map, unsigned int *reg, unsigned int val_num) {void *orig_work_buf; +unsigned int selector_reg;unsigned int win_offset;unsigned int win_page;bool page_chg;
@@ -1605,10 +1606,31 @@ static int _regmap_select_page(struct regmap *map, unsigned int *reg,return -EINVAL ; } -/* It is possible to have selector register inside data window. -In that case, selector register is located on every page and -it needs no page switching, when accessed alone. */ +/* +* Calculate the address of the selector register in the corresponding +* data window if it is located on every page. +*/ + page_chg =in_range (range->selector_reg, range->window_start, range->window_len); +if (page_chg) + selector_reg = range->range_min + win_page * range->window_len + + range->selector_reg - range->window_start; + +/* +* It is possible to have selector register inside data window. +* In that case, selector register is located on every page and it +* needs no page switching, when accessed alone. +* +* Nevertheless we should synchronize the cache values for it. +* This can't be properly achieved if the selector register is +* the first and the only one to be read inside the data window. +* That's why we update it in that case as well. +* +* However, we specifically avoid updating it for the default page, +* when it's overlapped with the real data window, to prevent from +* infinite looping. +*/ if (val_num >1 || + (page_chg && selector_reg != range->selector_reg) || range->window_start + win_offset != range->selector_reg) {/* Use separate work_buf during page switching */ orig_work_buf = map->work_buf;
@@ -1617,7 +1639,7 @@ static int _regmap_select_page(struct regmap *map, unsigned int *reg, ret =_regmap_update_bits (map, range->selector_reg, range->selector_mask, win_page << range->selector_shift, - &page_chg, false); +NULL , false); map->work_buf = orig_work_buf;
drivers/block/drbd/drbd_actlog.c +23 -30
82 lines not on this page · raw message
drivers/block/drbd/drbd_interval.h +4 -1
@@ -8,12 +8,15 @@struct drbd_interval {struct rb_node rb;sector_t sector;/* start sector of the interval */ -unsigned int size;/* size in bytes */ sector_t end;/* highest interval end in subtree */ +unsigned int size;/* size in bytes */ unsigned int local:1 /* local or remote request? */ ;unsigned int waiting:1 ;/* someone is waiting for completion */ unsigned int completed:1 ;/* this has been completed already; * ignore for conflict detection */ + +/* to resume a partially successful drbd_al_begin_io_nonblock(); */ +unsigned int partially_in_al_next_enr; };static inline void drbd_clear_interval (struct drbd_interval *i)
drivers/bluetooth/btusb.c +4 -1
@@ -1780,8 +1780,11 @@ static void btusb_work(struct work_struct *work)if (data->air_mode ==HCI_NOTIFY_ENABLE_SCO_CVSD ) {if (hdev->voice_setting &0x0020 ) {static const int alts[3 ] = {2 ,4 ,5 }; +unsigned int sco_idx; - new_alts = alts[data->sco_num -1 ]; + sco_idx = min_t(unsigned int, data->sco_num - 1, +ARRAY_SIZE (alts) -1 ); + new_alts = alts[sco_idx]; }else { new_alts = data->sco_num; }
drivers/bluetooth/hci_ll.c +2 -0
@@ -541,6 +541,8 @@ static int download_firmware(struct ll_device *lldev)if (err || !fw->data || !fw->size) {bt_dev_err (lldev->hu.hdev,"request_firmware failed(errno %d) for %s" , err, bts_scr_name); +if (!err) +release_firmware (fw);return -EINVAL ; } ptr = (void *)fw->data;
drivers/clk/tegra/clk-tegra124-emc.c +1 -1
@@ -190,8 +190,8 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra) tegra->emc_node =NULL ; tegra->emc =platform_get_drvdata (pdev); +put_device (&pdev->dev);if (!tegra->emc) { -put_device (&pdev->dev);pr_err ("%s: cannot find EMC driver\n" , __func__);return NULL ; }
drivers/cpufreq/cpufreq_conservative.c +12 -0
@@ -311,6 +311,17 @@ static void cs_start(struct cpufreq_policy *policy) dbs_info->requested_freq = policy->cur; } +static void cs_limits (struct cpufreq_policy *policy) +{ +struct cs_policy_dbs_info *dbs_info =to_dbs_info (policy->governor_data); + +/* +* The limits have changed, so may have the current frequency. Reset +* requested_freq to avoid any unintended outcomes due to the mismatch. +*/ + dbs_info->requested_freq = policy->cur; +} +static struct dbs_governor cs_governor = { .gov =CPUFREQ_DBS_GOVERNOR_INITIALIZER ("conservative" ), .kobj_type = { .default_attrs = cs_attributes },
@@ -320,6 +331,7 @@ static struct dbs_governor cs_governor = { .init = cs_init, .exit = cs_exit, .start = cs_start, + .limits = cs_limits, };#define CPU_FREQ_GOV_CONSERVATIVE (cs_governor.gov)
drivers/cpufreq/cpufreq_governor.c +9 -4
@@ -430,7 +430,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy) ret = gov->init (dbs_data);if (ret) - goto free_policy_dbs_info; + goto free_dbs_data;/* * The sampling interval should not be less than the transition latency
@@ -457,13 +457,15 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)/* Failure, so roll back. */ pr_err ("initialization failed (dbs_data kobject init error %d)\n" , ret); -kobject_put (&dbs_data->attr_set.kobj); - policy->governor_data =NULL ;if (!have_governor_per_policy ()) gov->gdbs_data =NULL ; - gov->exit (dbs_data); + +kobject_put (&dbs_data->attr_set.kobj); + goto free_policy_dbs_info; + +free_dbs_data:kfree (dbs_data); free_policy_dbs_info:
@@ -555,6 +557,7 @@ EXPORT_SYMBOL_GPL(cpufreq_dbs_governor_stop);void cpufreq_dbs_governor_limits (struct cpufreq_policy *policy) { +struct dbs_governor *gov =dbs_governor_of (policy);struct policy_dbs_info *policy_dbs;/* Protect gov->gdbs_data against cpufreq_dbs_governor_exit() */
@@ -566,6 +569,8 @@ void cpufreq_dbs_governor_limits(struct cpufreq_policy *policy)mutex_lock (&policy_dbs->update_mutex);cpufreq_policy_apply_limits (policy);gov_update_sample_delay (policy_dbs,0 ); +if (gov->limits) + gov->limits (policy);mutex_unlock (&policy_dbs->update_mutex); out:
drivers/cpufreq/cpufreq_governor.h +1 -0
@@ -139,6 +139,7 @@ struct dbs_governor {int (*init)(struct dbs_data *dbs_data);void (*exit)(struct dbs_data *dbs_data);void (*start)(struct cpufreq_policy *policy); +void (*limits)(struct cpufreq_policy *policy); };static inline struct dbs_governor *dbs_governor_of (struct cpufreq_policy *policy)
drivers/cpuidle/cpuidle.c +0 -10
@@ -319,16 +319,6 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,int cpuidle_select (struct cpuidle_driver *drv,struct cpuidle_device *dev,bool *stop_tick) { -/* -* If there is only a single idle state (or none), there is nothing -* meaningful for the governor to choose. Skip the governor and -* always use state 0 with the tick running. -*/ -if (drv->state_count <=1 ) { - *stop_tick = false; -return 0 ; - } -return cpuidle_curr_governor->select (drv, dev, stop_tick); }
drivers/crypto/atmel-sha204a.c +3 -2
@@ -52,9 +52,10 @@ static int atmel_sha204a_rng_read_nonblocking(struct hwrng *rng, void *data, rng->priv =0 ; }else { work_data =kmalloc (sizeof (*work_data),GFP_ATOMIC ); -if (!work_data) +if (!work_data) { +atomic_dec (&i2c_priv->tfm_count);return -ENOMEM ; - + } work_data->ctx = i2c_priv; work_data->client = i2c_priv->client;
drivers/dma/xilinx/xilinx_dma.c +41 -25
141 lines not on this page · raw message
drivers/firmware/efi/mokvar-table.c +16 -4
@@ -85,7 +85,7 @@ static struct kobject *mokvar_kobj;* as an alternative to ordinary EFI variables, due to platform-dependent * limitations. The memory occupied by this table is marked as reserved. * -* This routine must be called before efi_free_boot_services() in order +* This routine must be called before efi_unmap_boot_services() in order * to guarantee that it can mark the table as reserved. * * Implicit inputs:
@@ -99,13 +99,13 @@ static struct kobject *mokvar_kobj;*/ void __init efi_mokvar_table_init (void ) { +struct efi_mokvar_table_entry __aligned(1) *mokvar_entry, *next_entry;efi_memory_desc_t md;void *va =NULL ;unsigned long cur_offset =0 ;unsigned long offset_limit;unsigned long map_size_needed =0 ;unsigned long size; -struct efi_mokvar_table_entry *mokvar_entry;int err;if (!efi_enabled (EFI_MEMMAP ))
@@ -142,7 +142,7 @@ void __init efi_mokvar_table_init(void)return ; } mokvar_entry = va; - +next:/* Check for last sentinel entry */ if (mokvar_entry->name[0 ] =='\0' ) {if (mokvar_entry->data_size !=0 )
@@ -156,7 +156,19 @@ void __init efi_mokvar_table_init(void) mokvar_entry->name[sizeof (mokvar_entry->name) -1 ] ='\0' ;/* Advance to the next entry */ - cur_offset +=sizeof (*mokvar_entry) + mokvar_entry->data_size; + size =sizeof (*mokvar_entry) + mokvar_entry->data_size; + cur_offset += size; + +/* +* Don't bother remapping if the current entry header and the +* next one end on the same page. +*/ + next_entry = (void *)((unsigned long )mokvar_entry + size); +if (((((unsigned long )(mokvar_entry +1 ) -1 ) ^ + ((unsigned long )(next_entry +1 ) -1 )) &PAGE_MASK ) ==0 ) { + mokvar_entry = next_entry; + goto next; + } }if (va)
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +5 -1
@@ -932,7 +932,10 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info, *ef =dma_fence_get (&info->eviction_fence->base); } - vm->process_info = *process_info; +if (cmpxchg (&vm->process_info,NULL , *process_info) !=NULL ) { + ret = -EINVAL ; + goto already_acquired; + }/* Validate page directory and attach eviction fence */ ret =amdgpu_bo_reserve (vm->root.base.bo, true);
@@ -969,6 +972,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,amdgpu_bo_unreserve (vm->root.base.bo); reserve_pd_fail: vm->process_info =NULL ; +already_acquired:if (info) {/* Two fence references: one in info and one in *ef */ dma_fence_put (&info->eviction_fence->base);
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +1 -1
@@ -167,7 +167,7 @@ struct dc_stream_state *dc_create_stream_for_sink(if (sink ==NULL )return NULL ; - stream =kzalloc (sizeof (struct dc_stream_state ),GFP_KERNEL ); + stream =kzalloc (sizeof (struct dc_stream_state ),GFP_ATOMIC );if (stream ==NULL ) goto alloc_fail;
drivers/gpu/drm/ast/ast_dp501.c +1 -1
@@ -484,7 +484,7 @@ static void ast_init_analog(struct drm_device *dev)/* Finally, clear bits [17:16] of SCU2c */ data =ast_read32 (ast,0x1202c ); data &=0xfffcffff ; -ast_write32 (ast,0 , data); +ast_write32 (ast,0x1202c , data);/* Disable DVO */ ast_set_index_reg_mask (ast,AST_IO_CRTC_PORT ,0xa3 ,0xcf ,0x00 );
drivers/gpu/drm/drm_ioc32.c +2 -0
@@ -28,6 +28,7 @@* IN THE SOFTWARE. */ #include <linux/compat.h> +#include <linux/nospec.h> #include <linux/ratelimit.h> #include <linux/export.h>
@@ -992,6 +993,7 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)if (nr >=ARRAY_SIZE (drm_compat_ioctls))return drm_ioctl (filp, cmd, arg); + nr =array_index_nospec (nr,ARRAY_SIZE (drm_compat_ioctls)); fn = drm_compat_ioctls[nr].fn;if (!fn)return drm_ioctl (filp, cmd, arg);
drivers/gpu/drm/exynos/exynos_drm_drv.h +1 -0
@@ -201,6 +201,7 @@ struct exynos_drm_private {struct device *g2d_dev;struct device *dma_dev; +struct device *vidi_dev;void *mapping;/* for atomic commit */
drivers/gpu/drm/exynos/exynos_drm_vidi.c +59 -13
203 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_gmbus.c +3 -1
@@ -420,8 +420,10 @@ gmbus_xfer_read_chunk(struct drm_i915_private *dev_priv, val =intel_de_read_fw (dev_priv,GMBUS3 ); do { - if (extra_byte_added && len == 1) + if (extra_byte_added && len == 1) { + len--; break; + } *buf++ = val & 0xff; val >>= 8;
drivers/gpu/drm/msm/msm_gpummu.c +1 -1
@@ -72,7 +72,7 @@ static void msm_gpummu_destroy(struct msm_mmu *mmu) {struct msm_gpummu *gpummu =to_msm_gpummu (mmu); -dma_free_attrs (mmu->dev,TABLE_SIZE , gpummu->table, gpummu->pt_base, +dma_free_attrs (mmu->dev,TABLE_SIZE +32 , gpummu->table, gpummu->pt_base,DMA_ATTR_FORCE_CONTIGUOUS );kfree (gpummu);
drivers/gpu/drm/nouveau/nouveau_connector.c +3 -0
@@ -1176,6 +1176,9 @@ nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)u8 size = msg->size;int ret; +if (pm_runtime_suspended (nv_connector->base.dev->dev)) +return -EBUSY ; + nv_encoder =find_encoder (&nv_connector->base,DCB_OUTPUT_DP );if (!nv_encoder || !(aux = nv_encoder->aux))return -ENODEV ;
drivers/gpu/drm/radeon/si_dpm.c +3 -1
@@ -2962,9 +2962,11 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,if (rdev->family ==CHIP_HAINAN ) {if ((rdev->pdev->revision ==0x81 ) || (rdev->pdev->revision ==0xC3 ) || + (rdev->pdev->device ==0x6660 ) || (rdev->pdev->device ==0x6664 ) || (rdev->pdev->device ==0x6665 ) || - (rdev->pdev->device ==0x6667 )) { + (rdev->pdev->device ==0x6667 ) || + (rdev->pdev->device ==0x666F )) { max_sclk =75000 ; } if ((rdev->pdev->revision == 0xC3) ||
drivers/gpu/drm/tegra/dsi.c +2 -4
@@ -1539,11 +1539,9 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *dsi)return -EPROBE_DEFER ; dsi->slave =platform_get_drvdata (gangster); - -if (!dsi->slave) { -put_device (&gangster->dev); +put_device (&gangster->dev); +if (!dsi->slave)return -EPROBE_DEFER ; - } dsi->slave->master = dsi; }
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +2 -2
@@ -4247,10 +4247,10 @@ int vmw_execbuf_process(struct drm_file *file_priv,fput (sync_file->file);put_unused_fd (out_fence_fd); }else { +struct seqno_waiter_rm_context *ctx;/* Link the fence with the FD created earlier */ fd_install (out_fence_fd, sync_file->file); -struct seqno_waiter_rm_context *ctx = -kmalloc (sizeof (*ctx),GFP_KERNEL ); + ctx =kmalloc (sizeof (*ctx),GFP_KERNEL ); ctx->dev_priv = dev_priv;vmw_seqno_waiter_add (dev_priv); if (dma_fence_add_callback(&fence->base, &ctx->base,
drivers/hid/hid-asus.c +11 -4
@@ -1116,14 +1116,21 @@ static __u8 *asus_report_fixup(struct hid_device *hdev, __u8 *rdesc,*/ if (*rsize == rsize_orig && rdesc[offs] ==0x09 && rdesc[offs +1 ] ==0x76 ) { - *rsize = rsize_orig +1 ; - rdesc =kmemdup (rdesc, *rsize,GFP_KERNEL ); -if (!rdesc) -return NULL ; +__u8 *new_rdesc; + + new_rdesc =devm_kzalloc (&hdev->dev, rsize_orig +1 , +GFP_KERNEL ); +if (!new_rdesc) +return rdesc;hid_info (hdev,"Fixing up %s keyb report descriptor\n" , drvdata->quirks &QUIRK_T100CHI ?"T100CHI" :"T90CHI" ); + +memcpy (new_rdesc, rdesc, rsize_orig); + *rsize = rsize_orig +1 ; + rdesc = new_rdesc; +memmove (rdesc + offs +4 , rdesc + offs +2 ,12 ); rdesc[offs] =0x19 ; rdesc[offs +1 ] =0x00 ;
drivers/hid/hid-cmedia.c +1 -1
@@ -57,7 +57,7 @@ static int cmhid_raw_event(struct hid_device *hid, struct hid_report *report, {struct cmhid *cm =hid_get_drvdata (hid); -if (len !=CM6533_JD_RAWEV_LEN ) +if (len !=CM6533_JD_RAWEV_LEN || !(hid->claimed &HID_CLAIMED_INPUT )) goto out;if (memcmp (data+CM6533_JD_SFX_OFFSET , ji_sfx,sizeof (ji_sfx))) goto out;
drivers/hid/hid-creative-sb0540.c +1 -1
@@ -153,7 +153,7 @@ static int creative_sb0540_raw_event(struct hid_device *hid,u64 code, main_code;int key; -if (len !=6 ) +if (len !=6 || !(hid->claimed &HID_CLAIMED_INPUT ))return 0 ;/* From daemons/hw_hiddev.c sb0540_rec() in lirc */
drivers/hid/hid-mcp2221.c +2 -0
@@ -319,6 +319,8 @@ static int mcp_i2c_smbus_read(struct mcp2221 *mcp,usleep_range (90 ,100 ); retries++; }else { +usleep_range (980 ,1000 ); +mcp_cancel_last_cmd (mcp);return ret; } }else {
drivers/hid/hid-multitouch.c +7 -0
@@ -442,12 +442,19 @@ static void mt_get_feature(struct hid_device *hdev, struct hid_report *report)dev_warn (&hdev->dev,"failed to fetch feature %d\n" , report->id); }else { +/* The report ID in the request and the response should match */ +if (report->id != buf[0 ]) { +hid_err (hdev,"Returned feature report did not match the request\n" ); + goto free; + } + ret =hid_report_raw_event (hdev,HID_FEATURE_REPORT , buf, size,0 );if (ret)dev_warn (&hdev->dev,"failed to report feature\n" ); } +free:kfree (buf); }
drivers/hid/hid-zydacron.c +1 -1
@@ -114,7 +114,7 @@ static int zc_raw_event(struct hid_device *hdev, struct hid_report *report,unsigned key;unsigned short index; -if (report->id == data[0 ]) { +if (report->id == data[0 ] && (hdev->claimed &HID_CLAIMED_INPUT )) {/* break keys */ for (index =0 ; index <4 ; index++) {
drivers/hid/wacom_wac.c +10 -0
@@ -1251,10 +1251,20 @@ static int wacom_intuos_bt_irq(struct wacom_wac *wacom, size_t len)switch (data[0 ]) {case 0x04 : +if (len <32 ) { +dev_warn (wacom->pen_input->dev.parent, +"Report 0x04 too short: %zu bytes\n" , len); +break ; + }wacom_intuos_bt_process_data (wacom, data + i); i +=10 ; fallthrough;case 0x03 : +if (i ==1 && len <22 ) { +dev_warn (wacom->pen_input->dev.parent, +"Report 0x03 too short: %zu bytes\n" , len); +break ; + }wacom_intuos_bt_process_data (wacom, data + i); i +=10 ;wacom_intuos_bt_process_data (wacom, data + i);
drivers/hwmon/adm1177.c +31 -23
111 lines not on this page · raw message
drivers/hwmon/max16065.c +13 -13
@@ -151,27 +151,27 @@ static struct max16065_data *max16065_update_device(struct device *dev)int i;for (i =0 ; i < data->num_adc; i++) - data->adc[i] - =max16065_read_adc (client,MAX16065_ADC (i)); +WRITE_ONCE (data->adc[i], +max16065_read_adc (client,MAX16065_ADC (i)));if (data->have_current) { - data->adc[MAX16065_NUM_ADC ] - =max16065_read_adc (client,MAX16065_CSP_ADC ); - data->curr_sense - =i2c_smbus_read_byte_data (client, -MAX16065_CURR_SENSE ); +WRITE_ONCE (data->adc[MAX16065_NUM_ADC ], +max16065_read_adc (client,MAX16065_CSP_ADC )); +WRITE_ONCE (data->curr_sense, +i2c_smbus_read_byte_data (client,MAX16065_CURR_SENSE )); }for (i =0 ; i <2 ; i++) - data->fault[i] - =i2c_smbus_read_byte_data (client,MAX16065_FAULT (i)); +WRITE_ONCE (data->fault[i], +i2c_smbus_read_byte_data (client,MAX16065_FAULT (i)));/* * MAX16067 and MAX16068 have separate undervoltage and * overvoltage alarm bits. Squash them together. */ if (data->chip == max16067 || data->chip == max16068) - data->fault[0 ] |= data->fault[1 ]; +WRITE_ONCE (data->fault[0 ], + data->fault[0 ] | data->fault[1 ]); data->last_updated = jiffies; data->valid =1 ;
@@ -185,7 +185,7 @@ static ssize_t max16065_alarm_show(struct device *dev, {struct sensor_device_attribute_2 *attr2 =to_sensor_dev_attr_2 (da);struct max16065_data *data =max16065_update_device (dev); -int val = data->fault[attr2->nr]; +int val =READ_ONCE (data->fault[attr2->nr]);if (val <0 )return val;
@@ -203,7 +203,7 @@ static ssize_t max16065_input_show(struct device *dev, {struct sensor_device_attribute *attr =to_sensor_dev_attr (da);struct max16065_data *data =max16065_update_device (dev); -int adc = data->adc[attr->index]; +int adc =READ_ONCE (data->adc[attr->index]);if (unlikely (adc <0 ))return adc;
@@ -216,7 +216,7 @@ static ssize_t max16065_current_show(struct device *dev, struct device_attribute *da, char *buf) { struct max16065_data *data = max16065_update_device(dev); -int curr_sense = data->curr_sense; +int curr_sense =READ_ONCE (data->curr_sense);if (unlikely (curr_sense <0 ))return curr_sense;
drivers/hwmon/occ/common.c +9 -10
@@ -422,6 +422,12 @@ static ssize_t occ_show_freq_2(struct device *dev,return sysfs_emit (buf,"%u\n" , val); } +static u64 occ_get_powr_avg (u64 accum,u32 samples) +{ +return (samples ==0 ) ?0 : +mul_u64_u32_div (accum,1000000UL , samples); +} +static ssize_t occ_show_power_1 (struct device *dev,struct device_attribute *attr,char *buf) {
@@ -443,9 +449,8 @@ static ssize_t occ_show_power_1(struct device *dev, val =get_unaligned_be16 (&power->sensor_id);break ;case 1 : - val =get_unaligned_be32 (&power->accumulator) / -get_unaligned_be32 (&power->update_tag); - val *=1000000ULL ; + val =occ_get_powr_avg (get_unaligned_be32 (&power->accumulator), +get_unaligned_be32 (&power->update_tag));break ;case 2 : val = (u64)get_unaligned_be32(&power->update_tag) *
@@ -461,12 +466,6 @@ static ssize_t occ_show_power_1(struct device *dev,return sysfs_emit (buf,"%llu\n" , val); } -static u64 occ_get_powr_avg (u64 accum,u32 samples) -{ -return (samples ==0 ) ?0 : -mul_u64_u32_div (accum,1000000UL , samples); -} -static ssize_t occ_show_power_2 (struct device *dev,struct device_attribute *attr,char *buf) {
@@ -727,7 +726,7 @@ static ssize_t occ_show_extended(struct device *dev,switch (sattr->nr) {case 0 :if (extn->flags &EXTN_FLAG_SENSOR_ID ) { - rc =sysfs_emit (buf,"%u" , + rc =sysfs_emit (buf,"%u\n" ,get_unaligned_be32 (&extn->sensor_id)); }else { rc = sysfs_emit(buf, "%02x%02x%02x%02x\n",
drivers/hwmon/pmbus/isl68137.c +5 -2
@@ -80,8 +80,11 @@ static ssize_t isl68137_avs_enable_show_page(struct i2c_client *client, {int val =pmbus_read_byte_data (client, page,PMBUS_OPERATION ); -return sprintf (buf,"%d\n" , - (val &ISL68137_VOUT_AVS ) ==ISL68137_VOUT_AVS ?1 :0 ); +if (val <0 ) +return val; + +return sysfs_emit (buf,"%d\n" , + (val &ISL68137_VOUT_AVS ) ==ISL68137_VOUT_AVS ); } static ssize_t isl68137_avs_enable_store_page(struct i2c_client *client,
drivers/hwmon/pmbus/pxe1610.c +4 -1
@@ -104,7 +104,10 @@ static int pxe1610_probe(struct i2c_client *client)* By default this device doesn't boot to page 0, so set page 0 * to access all pmbus registers. */ -i2c_smbus_write_byte_data (client,PMBUS_PAGE ,0 ); + ret =i2c_smbus_write_byte_data (client,PMBUS_PAGE ,0 ); +if (ret <0 ) +return dev_err_probe (&client->dev, ret, +"Failed to set page 0\n" );/* Read Manufacturer id */ ret =i2c_smbus_read_block_data (client,PMBUS_MFR_ID , buf);
drivers/i2c/busses/i2c-fsi.c +1 -0
@@ -728,6 +728,7 @@ static int fsi_i2c_probe(struct device *dev) rc =i2c_add_adapter (&port->adapter);if (rc <0 ) {dev_err (dev,"Failed to register adapter: %d\n" , rc); +of_node_put (np);kfree (port);continue ; }
drivers/iio/chemical/bme680_core.c +1 -1
@@ -548,7 +548,7 @@ static int bme680_wait_for_eoc(struct bme680_data *data)* + heater duration */ int wait_eoc_us = ((data->oversampling_temp + data->oversampling_press + - data->oversampling_humid) *1936 ) + (477 *4 ) + + data->oversampling_humid) *1963 ) + (477 *4 ) + (477 *5 ) +1000 + (data->heater_dur *1000 );usleep_range (wait_eoc_us, wait_eoc_us +100 );
drivers/iio/dac/ad5770r.c +1 -1
@@ -323,7 +323,7 @@ static int ad5770r_read_raw(struct iio_dev *indio_dev, chan->address, st->transf_buf, 2);if (ret) -return 0 ; +return ret; buf16 = st->transf_buf[0 ] + (st->transf_buf[1 ] <<8 ); *val = buf16 >>2 ;
drivers/iio/dac/ds4424.c +1 -1
@@ -141,7 +141,7 @@ static int ds4424_write_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (val <S8_MIN || val >S8_MAX ) +if (val <=S8_MIN || val >S8_MAX )return -EINVAL ;if (val >0 ) {
drivers/iio/gyro/mpu3050-core.c +34 -16
100 lines not on this page · raw message
drivers/iio/gyro/mpu3050-i2c.c +1 -2
@@ -19,8 +19,7 @@ static int mpu3050_i2c_bypass_select(struct i2c_mux_core *mux, u32 chan_id)struct mpu3050 *mpu3050 =i2c_mux_priv (mux);/* Just power up the device, that is all that is needed */ -pm_runtime_get_sync (mpu3050->dev); -return 0 ; +return pm_runtime_resume_and_get (mpu3050->dev); }static int mpu3050_i2c_bypass_deselect (struct i2c_mux_core *mux,u32 chan_id)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +2 -0
@@ -322,6 +322,8 @@ static int inv_icm42600_accel_write_odr(struct iio_dev *indio_dev,return -EINVAL ; conf.odr = inv_icm42600_accel_odr_conv[idx /2 ]; +if (conf.odr == st->conf.accel.odr) +return 0 ;pm_runtime_get_sync (dev);mutex_lock (&st->lock);
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c +3 -0
@@ -377,6 +377,7 @@ static int inv_icm42600_buffer_predisable(struct iio_dev *indio_dev)static int inv_icm42600_buffer_postdisable (struct iio_dev *indio_dev) {struct inv_icm42600_state *st =iio_device_get_drvdata (indio_dev); +struct inv_icm42600_timestamp *ts =iio_priv (indio_dev);struct device *dev =regmap_get_device (st->map);unsigned int sensor;unsigned int *watermark;
@@ -398,6 +399,8 @@ static int inv_icm42600_buffer_postdisable(struct iio_dev *indio_dev)mutex_lock (&st->lock); +inv_icm42600_timestamp_apply_odr (ts,0 ,0 ,0 ); + ret =inv_icm42600_buffer_set_fifo_en (st, st->fifo.en & ~sensor);if (ret) goto out_unlock;
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +2 -0
@@ -334,6 +334,8 @@ static int inv_icm42600_gyro_write_odr(struct iio_dev *indio_dev,return -EINVAL ; conf.odr = inv_icm42600_gyro_odr_conv[idx /2 ]; +if (conf.odr == st->conf.gyro.odr) +return 0 ;pm_runtime_get_sync (dev);mutex_lock (&st->lock);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +4 -0
@@ -201,6 +201,10 @@ static int st_lsm6dsx_set_fifo_odr(struct st_lsm6dsx_sensor *sensor,const struct st_lsm6dsx_reg *batch_reg;u8 data; +/* Only internal sensors have a FIFO ODR configuration register. */ +if (sensor->id >=ARRAY_SIZE (hw->settings->batch)) +return 0 ; + batch_reg = &hw->settings->batch[sensor->id];if (batch_reg->addr) {int val;
drivers/iio/light/bh1780.c +2 -2
@@ -109,10 +109,10 @@ static int bh1780_read_raw(struct iio_dev *indio_dev,case IIO_LIGHT :pm_runtime_get_sync (&bh1780->client->dev); value =bh1780_read_word (bh1780,BH1780_REG_DLOW ); -if (value <0 ) -return value;pm_runtime_mark_last_busy (&bh1780->client->dev);pm_runtime_put_autosuspend (&bh1780->client->dev); +if (value <0 ) +return value; *val = value;return IIO_VAL_INT ;
drivers/iio/light/vcnl4035.c +12 -6
@@ -105,17 +105,23 @@ static irqreturn_t vcnl4035_trigger_consumer_handler(int irq, void *p)struct iio_dev *indio_dev = pf->indio_dev;struct vcnl4035_data *data =iio_priv (indio_dev);/* Ensure naturally aligned timestamp */ -u8 buffer[ALIGN (sizeof (u16),sizeof (s64)) +sizeof (s64)]__aligned(8) = { }; +struct { +u16 als_data; +aligned_s64 timestamp; + } buffer = { }; +unsigned int val;int ret; - ret =regmap_read (data->regmap,VCNL4035_ALS_DATA , (int *)buffer); + ret =regmap_read (data->regmap,VCNL4035_ALS_DATA , &val);if (ret <0 ) {dev_err (&data->client->dev,"Trigger consumer can't read from sensor.\n" ); goto fail_read; } -iio_push_to_buffers_with_timestamp (indio_dev, buffer, -iio_get_time_ns (indio_dev)); + + buffer.als_data = val; +iio_push_to_buffers_with_timestamp (indio_dev, &buffer, +iio_get_time_ns (indio_dev)); fail_read:iio_trigger_notify_done (indio_dev->trig);
@@ -380,7 +386,7 @@ static const struct iio_chan_spec vcnl4035_channels[] = { .sign = 'u', .realbits = 16, .storagebits = 16, - .endianness = IIO_LE, + .endianness = IIO_CPU, }, }, {
@@ -394,7 +400,7 @@ static const struct iio_chan_spec vcnl4035_channels[] = { .sign = 'u', .realbits = 16, .storagebits = 16, - .endianness = IIO_LE, + .endianness = IIO_CPU, }, }, };
drivers/iio/potentiometer/mcp4131.c +1 -1
@@ -222,7 +222,7 @@ static int mcp4131_write_raw(struct iio_dev *indio_dev,mutex_lock (&data->lock); - data->buf[0 ] = address <<MCP4131_WIPER_SHIFT ; + data->buf[0 ] = address; data->buf[0 ] |=MCP4131_WRITE | (val >>8 ); data->buf[1 ] = val &0xFF ;/* 8 bits here */
drivers/infiniband/core/rw.c +18 -3
@@ -341,14 +341,29 @@ int rdma_rw_ctx_init(struct rdma_rw_ctx *ctx, struct ib_qp *qp, u8 port_num,if (rdma_rw_io_needs_mr (qp->device, port_num, dir, sg_cnt)) { ret =rdma_rw_init_mr_wrs (ctx, qp, port_num, sg, sg_cnt, sg_offset, remote_addr, rkey, dir); - }else if (sg_cnt >1 ) { +/* +* If MR init succeeded or failed for a reason other +* than pool exhaustion, that result is final. +* +* Pool exhaustion (-EAGAIN) from the max_sgl_rd +* optimization is recoverable: fall back to +* direct SGE posting. iWARP and force_mr require +* MRs unconditionally, so -EAGAIN is terminal. +*/ +if (ret != -EAGAIN || +rdma_protocol_iwarp (qp->device, port_num) || +unlikely (rdma_rw_force_mr)) + goto out; + } + +if (sg_cnt >1 ) ret =rdma_rw_init_map_wrs (ctx, qp, sg, sg_cnt, sg_offset, remote_addr, rkey, dir); - }else { +else ret =rdma_rw_init_single_wr (ctx, qp, sg, sg_offset, remote_addr, rkey, dir); - } +out:if (ret <0 ) goto out_unmap_sg;return ret;
drivers/infiniband/hw/mthca/mthca_provider.c +3 -2
@@ -436,6 +436,8 @@ static int mthca_create_srq(struct ib_srq *ibsrq,if (context &&ib_copy_to_udata (udata, &srq->srqn,sizeof (__u32))) {mthca_free_srq (to_mdev (ibsrq->device), srq); +mthca_unmap_user_db (to_mdev (ibsrq->device), &context->uar, + context->db_tab, ucmd.db_index);return -EFAULT ; }
@@ -444,6 +446,7 @@ static int mthca_create_srq(struct ib_srq *ibsrq,
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/brcmnand/brcmnand.c +55 -8
63 lines not on this page · raw message
drivers/mtd/nand/raw/cadence-nand-controller.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/mtd/parsers/redboot.c +35 -36
71 lines not on this page · raw message
drivers/net/ethernet/altera/altera_tse_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-drv.c +0 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_main.c +12 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_pci.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_ptp.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/faraday/ftgmac100.c +24 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000/e1000_main.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/netdev.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +2 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/devlink.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/fw.c +34 -19
53 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qualcomm/qca_uart.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/chain_mode.c +6 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/xilinx/xilinx_axienet.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/hif.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/phy/renesas/phy-rcar-gen3-usb2.c +71 -51
122 lines not on this page · raw message
drivers/pinctrl/mediatek/pinctrl-mtk-common.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/platform/x86/touchscreen_dmi.c +18 -0
Lines of this file are not shown. View the raw message.
drivers/regulator/pca9450-regulator.c +19 -22
41 lines not on this page · raw message
drivers/staging/comedi/drivers/dt2815.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/staging/comedi/drivers/me4000.c +12 -4
Lines of this file are not shown. View the raw message.
drivers/staging/comedi/drivers/me_daq.c +19 -16
Lines of this file are not shown. View the raw message.
drivers/staging/comedi/drivers/ni_atmio16d.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_ieee80211.c +10 -6
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_mlme.c +9 -4
Lines of this file are not shown. View the raw message.
drivers/usb/core/message.c +78 -19
97 lines not on this page · raw message
drivers/usb/gadget/function/f_uac1_legacy.c +37 -10
47 lines not on this page · raw message
drivers/usb/gadget/function/f_uvc.c +42 -4
46 lines not on this page · raw message
drivers/usb/gadget/function/uvc_v4l2.c +11 -2
Lines of this file are not shown. View the raw message.
drivers/xen/privcmd.c +73 -3
76 lines not on this page · raw message
include/acpi/acpixf.h +70 -60
130 lines not on this page · raw message
include/asm-generic/tlb.h +75 -2
77 lines not on this page · raw message
include/net/netfilter/nf_conntrack_timeout.h +1 -0
Lines of this file are not shown. View the raw message.
include/sound/soc-dai.h +75 -12
87 lines not on this page · raw message
include/uapi/linux/netfilter/nf_conntrack_common.h +4 -0
Lines of this file are not shown. View the raw message.
kernel/time/time.c +159 -12
171 lines not on this page · raw message
kernel/trace/trace_events.c +36 -15
51 lines not on this page · raw message
mm/hugetlb.c +74 -69
143 lines not on this page · raw message
net/atm/lec.c +62 -36
98 lines not on this page · raw message
net/bluetooth/l2cap_core.c +40 -15
55 lines not on this page · raw message
net/netfilter/nf_conntrack_netlink.c +53 -36
89 lines not on this page · raw message
net/netfilter/nft_set_pipapo.c +35 -11
46 lines not on this page · raw message
net/qrtr/af_qrtr.c +38 -28
66 lines not on this page · raw message
net/sched/act_gate.c +184 -78
262 lines not on this page · raw message
security/apparmor/apparmorfs.c +137 -91
228 lines not on this page · raw message
security/apparmor/include/policy_unpack.h +45 -30
75 lines not on this page · raw message
security/apparmor/match.c +42 -16
58 lines not on this page · raw message
security/apparmor/policy.c +71 -11
82 lines not on this page · raw message
security/apparmor/policy_unpack.c +45 -13
58 lines not on this page · raw message
sound/soc/soc-core.c +257 -87
344 lines not on this page · raw message
sound/soc/soc-dai.c +63 -0
63 lines not on this page · raw message
tools/testing/selftests/net/mptcp/simult_flows.sh +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.