Skip to contentSkip to conversation

Linux 5.9.11

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Nov 24, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.9.11 kernel.

All users of the 5.9 kernel series must upgrade.

The updated 5.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.9.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/xtensa/mmu.rst                                    |    9 
 Makefile                                                        |    2 
 arch/arm/boot/compressed/head.S                                 |    3 
 arch/arm/boot/dts/imx50-evk.dts                                 |    2 
 arch/arm/boot/dts/imx6q-prti6q.dts                              |    4 
 arch/arm/boot/dts/imx6qdl-udoo.dtsi                             |    2 
 arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi                   |   19 -
 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi                    |    2 
 arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi                    |    4 
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts                     |    2 
 arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts                |    2 
 arch/arm/boot/dts/sun7i-a20-cubietruck.dts                      |    2 
 arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts                    |    2 
 arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts                |    2 
 arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts                 |    5 
 arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts                  |    2 
 arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts               |    2 
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts                     |    2 
 arch/arm/boot/dts/sun9i-a80-optimus.dts                         |    2 
 arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi                   |    2 
 arch/arm/boot/dts/vf610-zii-dev-rev-b.dts                       |    3 
 arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts       |    2 
 arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts       |    2 
 arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts        |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts        |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts      |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts         |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts            |    2 
 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts          |    2 
 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts     |    2 
 arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi                  |    1 
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi                  |    1 
 arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi                  |    1 
 arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi            |    1 
 arch/arm64/boot/dts/freescale/imx8mm.dtsi                       |    2 
 arch/arm64/boot/dts/freescale/imx8mn.dtsi                       |   30 --
 arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts              |    2 
 arch/arm64/include/asm/cpufeature.h                             |    2 
 arch/arm64/include/asm/cputype.h                                |    4 
 arch/arm64/kernel/cpu_errata.c                                  |    2 
 arch/arm64/kernel/cpufeature.c                                  |    2 
 arch/arm64/kernel/process.c                                     |    5 
 arch/arm64/kernel/psci.c                                        |    5 
 arch/arm64/kernel/smp.c                                         |    1 
 arch/mips/alchemy/common/clock.c                                |    9 
 arch/mips/mm/tlb-r4k.c                                          |    1 
 arch/s390/kernel/entry.S                                        |    2 
 arch/s390/kernel/perf_cpum_sf.c                                 |    2 
 arch/um/include/asm/pgalloc.h                                   |    8 
 arch/x86/kernel/cpu/microcode/intel.c                           |   63 -----
 arch/x86/kernel/tboot.c                                         |    3 
 arch/x86/platform/efi/efi_64.c                                  |   24 +-
 arch/xtensa/include/asm/pgtable.h                               |    2 
 arch/xtensa/mm/cache.c                                          |   14 +
 block/blk-cgroup.c                                              |    1 
 drivers/accessibility/speakup/spk_ttyio.c                       |   12 -
 drivers/acpi/button.c                                           |   13 +
 drivers/acpi/fan.c                                              |    1 
 drivers/atm/nicstar.c                                           |    2 
 drivers/counter/ti-eqep.c                                       |    4 
 drivers/dma/dmaengine.c                                         |   17 -
 drivers/dma/idxd/device.c                                       |   31 +-
 drivers/dma/idxd/idxd.h                                         |    3 
 drivers/dma/idxd/init.c                                         |    5 
 drivers/dma/idxd/registers.h                                    |   25 ++
 drivers/dma/idxd/submit.c                                       |    2 
 drivers/dma/ti/omap-dma.c                                       |   37 ++-
 drivers/dma/xilinx/xilinx_dma.c                                 |   36 ++-
 drivers/gpio/gpio-omap.c                                        |   12 -
 drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c    |    4 
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c                       |    6 
 drivers/gpu/drm/i915/display/intel_display.c                    |    3 
 drivers/gpu/drm/i915/gt/intel_rc6.c                             |   22 +
 drivers/gpu/drm/i915/i915_reg.h                                 |   12 -
 drivers/gpu/drm/i915/intel_pm.c                                 |   13 -
 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c                           |    1 
 drivers/hid/hid-logitech-dj.c                                   |   22 +
 drivers/hid/hid-logitech-hidpp.c                                |   26 ++
 drivers/hid/hid-mcp2221.c                                       |   48 +++-
 drivers/hv/hv.c                                                 |    8 
 drivers/hwmon/pwm-fan.c                                         |   16 -
 drivers/iio/accel/kxcjk-1013.c                                  |   51 ++++
 drivers/iio/adc/ingenic-adc.c                                   |   34 ++
 drivers/iio/adc/mt6577_auxadc.c                                 |    6 
 drivers/iio/adc/stm32-adc-core.c                                |   41 +--
 drivers/iio/adc/stm32-adc.c                                     |   50 ++++
 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c       |   16 -
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c                    |    6 
 drivers/iio/light/Kconfig                                       |    1 
 drivers/infiniband/Kconfig                                      |    3 
 drivers/infiniband/hw/hfi1/chip.c                               |    3 
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c                  |    2 
 drivers/infiniband/sw/rdmavt/Kconfig                            |    3 
 drivers/infiniband/sw/rxe/Kconfig                               |    2 
 drivers/infiniband/sw/siw/Kconfig                               |    1 
 drivers/input/misc/adxl34x.c                                    |    2 
 drivers/input/mouse/elan_i2c.h                                  |    2 
 drivers/input/mouse/elan_i2c_core.c                             |    3 
 drivers/input/mouse/elan_i2c_i2c.c                              |   10 
 drivers/input/mouse/elan_i2c_smbus.c                            |    2 
 drivers/input/touchscreen/Kconfig                               |    1 
 drivers/iommu/intel/iommu.c                                     |    5 
 drivers/misc/habanalabs/include/gaudi/gaudi_masks.h             |    1 
 drivers/mmc/host/sdhci-of-arasan.c                              |   51 +---
 drivers/mmc/host/sdhci-pci-core.c                               |   13 -
 drivers/net/can/dev.c                                           |    2 
 drivers/net/can/flexcan.c                                       |   26 +-
 drivers/net/can/kvaser_pciefd.c                                 |    4 
 drivers/net/can/m_can/Kconfig                                   |    3 
 drivers/net/can/m_can/m_can.c                                   |   18 +
 drivers/net/can/m_can/m_can.h                                   |    1 
 drivers/net/can/m_can/m_can_platform.c                          |   23 +-
 drivers/net/can/m_can/tcan4x5x.c                                |   32 ++
 drivers/net/can/ti_hecc.c                                       |   13 -
 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c               |    2 
 drivers/net/can/usb/mcba_usb.c                                  |    4 
 drivers/net/can/usb/peak_usb/pcan_usb_core.c                    |    4 
 drivers/net/dsa/lantiq_gswip.c                                  |   11 
 drivers/net/dsa/mv88e6xxx/global1_vtu.c                         |   59 ++++-
 drivers/net/ethernet/broadcom/b44.c                             |    3 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                       |    4 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c               |    2 
 drivers/net/ethernet/faraday/ftgmac100.c                        |    4 
 drivers/net/ethernet/freescale/enetc/Kconfig                    |    1 
 drivers/net/ethernet/freescale/enetc/enetc.c                    |   62 +++--
 drivers/net/ethernet/freescale/enetc/enetc_hw.h                 |  115 +++++++++-
 drivers/net/ethernet/freescale/enetc/enetc_mdio.c               |    8 
 drivers/net/ethernet/freescale/fec_main.c                       |   12 -
 drivers/net/ethernet/marvell/mvneta.c                           |    5 
 drivers/net/ethernet/mediatek/mtk_star_emac.c                   |    3 
 drivers/net/ethernet/mellanox/mlx4/fw.c                         |    6 
 drivers/net/ethernet/mellanox/mlx4/fw.h                         |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c           |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c      |   13 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c               |   20 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c               |    7 
 drivers/net/ethernet/mellanox/mlxsw/core.c                      |    3 
 drivers/net/ethernet/microchip/lan743x_main.c                   |   13 -
 drivers/net/ethernet/qlogic/qed/qed_cxt.c                       |    4 
 drivers/net/ethernet/qlogic/qed/qed_cxt.h                       |    3 
 drivers/net/ethernet/qlogic/qed/qed_iwarp.c                     |   12 -
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c           |    3 
 drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c            |    5 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c               |    2 
 drivers/net/ethernet/ti/am65-cpts.c                             |    3 
 drivers/net/ethernet/ti/cpsw.c                                  |   11 
 drivers/net/ethernet/ti/cpsw_new.c                              |    9 
 drivers/net/geneve.c                                            |    3 
 drivers/net/ipa/gsi_trans.c                                     |   15 +
 drivers/net/netdevsim/dev.c                                     |    2 
 drivers/net/netdevsim/health.c                                  |    1 
 drivers/net/netdevsim/udp_tunnels.c                             |    1 
 drivers/net/phy/mscc/mscc_macsec.c                              |    1 
 drivers/net/usb/qmi_wwan.c                                      |    2 
 drivers/pinctrl/pinctrl-mcp23s08_spi.c                          |    2 
 drivers/pinctrl/pinctrl-rockchip.c                              |    2 
 drivers/regulator/core.c                                        |   38 +--
 drivers/regulator/pfuze100-regulator.c                          |   13 -
 drivers/regulator/ti-abb-regulator.c                            |   12 -
 drivers/s390/block/dasd.c                                       |    6 
 drivers/scsi/ufs/ufshcd.c                                       |   32 ++
 drivers/scsi/ufs/ufshcd.h                                       |    2 
 drivers/spi/spi-bcm2835aux.c                                    |   21 -
 drivers/spi/spi-cadence-quadspi.c                               |    2 
 drivers/spi/spi-fsl-lpspi.c                                     |    3 
 drivers/spi/spi-npcm-fiu.c                                      |    2 
 drivers/spi/spi.c                                               |   81 +++++--
 drivers/staging/mt7621-pci/pci-mt7621.c                         |   15 -
 drivers/staging/rtl8723bs/os_dep/sdio_intf.c                    |    1 
 drivers/tee/amdtee/amdtee_private.h                             |    8 
 drivers/tee/amdtee/core.c                                       |   26 +-
 drivers/tty/serial/ar933x_uart.c                                |    6 
 drivers/tty/serial/imx.c                                        |   30 --
 drivers/usb/dwc2/platform.c                                     |    3 
 fs/afs/dir.c                                                    |    1 
 fs/afs/inode.c                                                  |    8 
 fs/afs/internal.h                                               |    1 
 fs/efivarfs/super.c                                             |    1 
 fs/ext4/ext4.h                                                  |    3 
 fs/gfs2/aops.c                                                  |    2 
 fs/gfs2/glops.c                                                 |   13 +
 fs/gfs2/log.c                                                   |    2 
 fs/gfs2/rgrp.c                                                  |   10 
 fs/io_uring.c                                                   |    1 
 fs/libfs.c                                                      |    6 
 fs/notify/fsnotify.c                                            |   12 -
 fs/super.c                                                      |   33 --
 fs/xfs/libxfs/xfs_attr_leaf.c                                   |    8 
 fs/xfs/libxfs/xfs_rmap_btree.c                                  |   16 -
 fs/xfs/scrub/bmap.c                                             |    8 
 fs/xfs/scrub/btree.c                                            |   45 ++-
 fs/xfs/scrub/dir.c                                              |   21 +
 fs/xfs/xfs_iwalk.c                                              |   27 ++
 fs/xfs/xfs_mount.c                                              |   11 
 include/drm/intel-gtt.h                                         |    5 
 include/linux/intel-iommu.h                                     |    2 
 include/linux/pagemap.h                                         |    2 
 include/linux/pm_runtime.h                                      |   21 +
 include/linux/sched.h                                           |   16 +
 include/linux/spi/spi.h                                         |   19 +
 include/linux/swiotlb.h                                         |    1 
 include/net/ip_tunnels.h                                        |    7 
 include/net/neighbour.h                                         |    1 
 include/net/tls.h                                               |   16 +
 include/trace/events/sunrpc.h                                   |    3 
 kernel/fail_function.c                                          |    5 
 kernel/ptrace.c                                                 |   16 -
 kernel/rcu/tree.c                                               |    2 
 kernel/rcu/tree_stall.h                                         |   22 +
 kernel/sched/core.c                                             |   15 -
 kernel/sched/fair.c                                             |    3 
 kernel/seccomp.c                                                |    5 
 kernel/trace/bpf_trace.c                                        |   10 
 lib/strncpy_from_user.c                                         |   19 +
 mm/filemap.c                                                    |   18 +
 mm/huge_memory.c                                                |    9 
 mm/memcontrol.c                                                 |    9 
 mm/page_alloc.c                                                 |    5 
 net/bridge/br_device.c                                          |    1 
 net/can/af_can.c                                                |   38 ++-
 net/core/devlink.c                                              |    6 
 net/core/neighbour.c                                            |    2 
 net/core/netpoll.c                                              |   22 +
 net/core/skmsg.c                                                |   94 ++++++--
 net/ipv4/arp.c                                                  |    6 
 net/ipv4/inet_diag.c                                            |    4 
 net/ipv4/tcp_bbr.c                                              |    2 
 net/ipv4/tcp_bpf.c                                              |   18 -
 net/ipv6/addrconf.c                                             |    8 
 net/ipv6/ah6.c                                                  |    3 
 net/ipv6/ndisc.c                                                |    7 
 net/mac80211/rc80211_minstrel.c                                 |   27 --
 net/mac80211/rc80211_minstrel.h                                 |    1 
 net/mac80211/sta_info.c                                         |   14 -
 net/ncsi/ncsi-manage.c                                          |    5 
 net/ncsi/ncsi-netlink.c                                         |   22 -
 net/ncsi/ncsi-netlink.h                                         |    3 
 net/netlabel/netlabel_unlabeled.c                               |   17 +
 net/rfkill/core.c                                               |    3 
 net/sctp/input.c                                                |    4 
 net/sctp/sm_sideeffect.c                                        |    4 
 net/sctp/transport.c                                            |    2 
 net/smc/smc_ib.c                                                |    6 
 net/tls/tls_device.c                                            |   37 ++-
 net/tls/tls_sw.c                                                |    2 
 net/vmw_vsock/af_vsock.c                                        |    2 
 net/x25/af_x25.c                                                |    1 
 sound/core/control.c                                            |    2 
 sound/firewire/fireworks/fireworks_transaction.c                |    4 
 sound/pci/hda/patch_realtek.c                                   |   85 +++++++
 sound/pci/mixart/mixart_core.c                                  |    5 
 sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c             |    2 
 sound/soc/intel/keembay/kmb_platform.c                          |    6 
 sound/soc/qcom/lpass-platform.c                                 |    5 
 sound/usb/quirks.c                                              |   10 
 tools/bpf/bpftool/feature.c                                     |    7 
 tools/bpf/bpftool/net.c                                         |   18 -
 tools/lib/bpf/Makefile                                          |    2 
 tools/perf/builtin-lock.c                                       |    4 
 tools/testing/kunit/.gitattributes                              |    1 
 tools/testing/selftests/bpf/prog_tests/sockopt_multi.c          |    3 
 tools/testing/selftests/kvm/include/x86_64/processor.h          |    2 
 tools/testing/selftests/kvm/lib/x86_64/processor.c              |    3 
 tools/testing/selftests/seccomp/seccomp_bpf.c                   |    8 
 265 files changed, 1919 insertions(+), 913 deletions(-)

Aaron Lewis (1):
selftests: kvm: Fix the segment descriptor layout to match the actual layout

Adam Ford (2):
arm64: dts: imx8mm-beacon-som: Fix Choppy BT audio
arm64: dts imx8mn: Remove non-existent USB OTG2

Adrian Hunter (1):
mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel controllers

Alejandro Concepcion Rodriguez (1):
can: dev: can_restart(): post buffer from the right context

Alex Deucher (1):
drm/amd/display: Add missing pflip irq for dcn2.0

Alex Elder (1):
net: ipa: lock when freeing transaction

Alex Marginean (1):
enetc: Workaround for MDIO register access issue

Amir Goldstein (1):
fanotify: fix logic of reporting name info with watched parent

Anant Thazhemadam (2):
can: af_can: prevent potential access of uninitialized member in can_rcv()
can: af_can: prevent potential access of uninitialized member in canfd_rcv()

Andrew Lunn (1):
ARM: dts: vf610-zii-dev-rev-b: Fix MDIO over clocking

Andy Shevchenko (2):
pinctrl: mcp23s08: Print error message when regmap init fails iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header

Ard Biesheuvel (1):
efi/arm: set HSCTLR Thumb2 bit correctly for HVC calls from HYP

Arvind Sankar (1):
efi/x86: Free efi_pgd with free_pages()

Aya Levin (1):
net/mlx4_core: Fix init_hca fields offset

Biwen Li (1):
arm64: dts: fsl: fix endianness issue of rcpm

Bob Peterson (2):
gfs2: Fix case in which ail writes are done to jdata holes
gfs2: Fix regression in freeze_go_sync

Brendan Higgins (1):
kunit: tool: unmark test_data as binary blobs

Brian O'Keefe (1):
staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids

Can Guo (2):
scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
scsi: ufs: Try to save power mode change and UIC cmd completion timeout

Chen Yu (1):
x86/microcode/intel: Check patch signature before saving microcode for early loading

Chen-Yu Tsai (10):
Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
arm64: dts: allwinner: h5: libretech-all-h5-cc: Enable RGMII RX/TX delay on PHY
arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY

Chris Co (1):
Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected

Christoph Hellwig (2):
RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
blk-cgroup: fix a hd_struct leak in blkcg_fill_root_iostats

Claire Chang (1):
rfkill: Fix use-after-free in rfkill_resume()

Clément Péron (1):
arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay

Colin Ian King (1):
can: peak_usb: fix potential integer overflow on shift of a int

Corentin Labbe (1):
arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay

Dan Carpenter (3):
Input: adxl34x - clean up a data type in adxl34x_probe()
dmaengine: fix error codes in channel_register()
ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()

Dan Murphy (2):
can: m_can: m_can_class_free_dev(): introduce new function
can: m_can: Fix freeing of can device from peripherials

Daniel Xu (1):
lib/strncpy_from_user.c: Mask out bytes after NUL terminator.

Darrick J. Wong (6):
vfs: remove lockdep bogosity in __sb_start_write
xfs: fix the minrecs logic when dealing with inode root child blocks
xfs: strengthen rmap record flags checking
xfs: directory scrub should check the null bestfree entries too
xfs: ensure inobt record walks always make forward progress
xfs: revert "xfs: fix rmap key and record comparison functions"

Dave Jiang (2):
dmaengine: idxd: fix wq config registers offset programming
dmaengine: idxd: fix mapping of portal size

David Howells (1):
afs: Fix speculative status fetch going out of order wrt to modifications

David Lechner (1):
counter/ti-eqep: Fix regmap max_register

Dinh Nguyen (1):
arm64: dts: agilex/stratix10: Fix qspi node compatible

Dmitry Bogdanov (1):
qed: fix ILT configuration of SRC block

Dongli Zhang (1):
page_frag: Recover from memory pressure

Edwin Peer (1):
bnxt_en: read EEPROM A2h address using page 0

Eli Cohen (1):
net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled

Enric Balletbo i Serra (1):
can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI

Fabien Parent (1):
iio: adc: mediatek: fix unset field

Fabio Estevam (1):
ARM: dts: imx50-evk: Fix the chip select 1 IOMUX

Faiz Abbas (1):
can: m_can: m_can_stop(): set device to software init mode before closing

Felix Fietkau (2):
mac80211: minstrel: remove deferred sampling code
mac80211: minstrel: fix tx status processing corner case

Filip Moc (1):
net: usb: qmi_wwan: Set DTR quirk for MR400

Florian Fainelli (1):
net: Have netpoll bring-up DSA management interface

Fugang Duan (1):
tty: serial: imx: keep console clocks always on

Gao Xiang (1):
xfs: fix forkoff miscalculation related to XFS_LITINO(mp)

Gerald Schaefer (1):

      mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()

Greg Kroah-Hartman (1):

      Linux 5.9.11

Grygorii Strashko (1):
net: ethernet: ti: cpsw: fix cpts irq after suspend

Guenter Roeck (2):
ASOC: Intel: kbl_rt5663_rt5514_max98927: Do not try to disable disabled clock
ACPI: fan: Initialize performance state sysfs attribute

Gwendal Grignou (1):
iio: cros_ec: Use default frequencies when EC returns invalid information

Hans de Goede (6):
ACPI: button: Add DMI quirk for Medion Akoya E2228T
HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-mode

Harry Cutts (1):
HID: logitech-hidpp: Add PID for MX Anywhere 2

Heiko Carstens (1):
s390: fix system call exit path

Heiner Kallweit (1):
net: bridge: add missing counters to ndo_get_stats64 callback

Ian Rogers (1):
tools, bpftool: Avoid array index warnings.

Ido Schimmel (1):
mlxsw: core: Use variable timeout for EMAD retries

Jan Kara (1):
ext4: fix bogus warning in ext4_update_dx_flag()

Jarkko Nikula (1):
can: m_can: process interrupt only when not runtime suspended

Jeff Dike (1):
Exempt multicast addresses from five-second neighbor lifetime

Jens Axboe (2):
io_uring: don't double complete failed reissue request
mm: never attempt async page lock if we've transferred data already

Jernej Skrabec (4):
arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node

Jianqun Xu (1):
pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq

Jimmy Assarsson (2):
can: kvaser_pciefd: Fix KCAN bittiming limits
can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits

Jiri Olsa (1):
libbpf: Fix VERSIONED_SYM_COUNT number parsing

Joakim Tjernlund (1):
ALSA: usb-audio: Add delay quirk for all Logitech USB devices

Joel Stanley (2):
net: ftgmac100: Fix crash when removing driver net/ncsi: Fix netlink registration

Johannes Berg (1):
mac80211: free sta in sta_info_insert_finish() on errors

John Fastabend (6):
bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits bpf, sockmap: On receive programs try to fast track SK_PASS ingress bpf, sockmap: Use truesize with sk_rmem_schedule()
bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self

Jonathan Liu (1):
drm: bridge: dw-hdmi: Avoid resetting force in the detect function

Kailang Yang (3):
ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
ALSA: hda/realtek - Add supported mute Led for HP
ALSA: hda/realtek - HP Headset Mic can't detect after boot

Karsten Graul (1):

      net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()

Kees Cook (2):
selftests/seccomp: powerpc: Fix typo in macro variable name selftests/seccomp: sh: Fix register names

Konrad Dybcio (3):
arm64: Add MIDR value for KRYO2XX gold/silver CPU cores
arm64: kpti: Add KRYO2XX gold/silver CPU cores to kpti safelist
arm64: cpu_errata: Apply Erratum 845719 to KRYO2XX Silver

Lars Povlsen (1):
HID: mcp2221: Fix GPIO output handling

Leo Yan (2):
perf lock: Correct field name "flags"
perf lock: Don't free "lock_seq_stat" if read_count isn't zero

Lorenzo Bianconi (2):
net: mvneta: fix possible memory leak in mvneta_swbm_add_rx_fragment
iio: imu: st_lsm6dsx: set 10ms as min shub slave timeout

Lucas Stach (1):
arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point

Lukas Wunner (4):
spi: lpspi: Fix use-after-free on unbind
spi: Introduce device-managed SPI controller allocation
spi: npcm-fiu: Don't leak SPI master in probe error path
spi: bcm2835aux: Fix use-after-free on unbind

Luo Meng (1):
fail_function: Remove a redundant mutex unlock

Manish Narani (3):
mmc: sdhci-of-arasan: Allow configuring zero tap values
mmc: sdhci-of-arasan: Use Mask writes for Tap delays
mmc: sdhci-of-arasan: Issue DLL reset explicitly

Maor Dickman (1):
net/mlx5e: Fix check if netdev is bond slave

Marc Kleine-Budde (4):
can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to can_put_echo_skb()
can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for devm_regmap_init()
can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver_enable() during bus-off recovery

Marek Vasut (5):
ARM: dts: stm32: Fix TA3-GPIO-C key on STM32MP1 DHCOM PDK2
ARM: dts: stm32: Fix LED5 on STM32MP1 DHCOM PDK2
ARM: dts: stm32: Define VIO regulator supply on DHCOM
ARM: dts: stm32: Enable thermal sensor support on stm32mp15xx-dhcor
ARM: dts: stm32: Keep VDDA LDO1 always on on DHCOM

Martin Blumenstingl (2):
net: lantiq: Wait for the GPHY firmware to be ready
usb: dwc2: Avoid leaving the error_debugfs label unused

Matthew Murrian (2):
dmaengine: xilinx_dma: Fix usage of xilinx_aximcdma_tx_segment
dmaengine: xilinx_dma: Fix SG capability check for MCDMA

Matthew Wilcox (Oracle) (1):
mm: fix readahead_page_batch for retry entries

Max Filippov (2):
xtensa: fix TLBTEMP area placement
xtensa: disable preemption around cache alias management calls

Maxim Mikityanskiy (1):
net/mlx5e: Fix refcount leak on kTLS RX resync

Michael Chan (2):
bnxt_en: Fix counter overflow logic.
bnxt_en: Free port stats during firmware reset.

Michael Guralnik (1):
net/mlx5: Add handling of port type in rule deletion

Michael Sit Wei Hong (1):
ASoC: Intel: KMB: Fix S24_LE configuration

Michał Mirosław (3):
regulator: fix memory leak with repeated set_machine_constraints()
regulator: avoid resolve_supply() infinite recursion
regulator: workaround self-referent regulators

Mickaël Salaün (2):
ptrace: Set PF_SUPERPRIV when checking capability
seccomp: Set PF_SUPERPRIV when checking capability

Muchun Song (1):
mm: memcg/slab: fix root memcg vmstats

Necip Fazil Yildiran (2):
Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
iio: light: fix kconfig dependency bug for VCNL4035

Nenad Peric (1):
arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node

Nishanth Menon (1):
regulator: ti-abb: Fix array out of bound read access on the first transition

Oded Gabbay (1):
habanalabs/gaudi: mask WDT error in QMAN

Oleksij Rempel (1):
ARM: dts: imx6q-prti6q: fix PHY address

Olivier Moysan (1):
iio: adc: stm32-adc: fix a regression when using dma and irq

Paul Barker (1):
hwmon: (pwm-fan) Fix RPM calculation

Paul Cercueil (2):
iio/adc: ingenic: Fix AUX/VBAT readings when touchscreen is used iio/adc: ingenic: Fix battery VREF for JZ4770 SoC

Paul E. McKenney (1):
rcu: Don't invoke try_invoke_on_locked_down_task() with irqs disabled

Paul Moore (2):
netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()

PeiSen Hou (1):
ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)

Peter Zijlstra (2):
sched: Fix data-race in wakeup
sched: Fix rq->nr_iowait ordering

Qinglang Miao (1):
RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()

Quentin Perret (1):
sched/fair: Fix overutilized update in enqueue_task_fair()

Randy Dunlap (1):
MIPS: export has_transparent_hugepage() for modules

Richard Weinberger (1):
um: Call pgtable_pmd_page_dtor() in __pmd_free_tlb()

Rijo Thomas (2):
tee: amdtee: fix memory leak due to reset of global shm list
tee: amdtee: synchronize access to shm list

Rodrigo Vivi (1):
drm/i915/tgl: Fix Media power gate sequence.

Ryan Sharpelletti (1):
tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate

Sam Nobs (1):
tty: serial: imx: fix potential deadlock

Samuel Thibault (1):
speakup: Do not let the line discipline be used several times

Scott Mayhew (1):
SUNRPC: Fix oops in the rpc_xdr_buf event class

Sean Nyekjaer (1):

      regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}

Sebastian Andrzej Siewior (1):
atm: nicstar: Unmap DMA on send error

Sergey Matyukevich (1):
arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy

Sergio Paracuellos (1):
staging: mt7621-pci: avoid to request pci bus resources

Srinivasa Rao Mandadapu (1):
ASoC: qcom: lpass-platform: Fix memory leak

Steen Hegelund (1):
net: phy: mscc: remove non-MACSec compatible phy

Stefan Haberland (1):
s390/dasd: fix null pointer dereference for ERP requests

Stefano Garzarella (1):
vsock: forward all packets to the host when no H2G is registered

Stephen Rothwell (1):
swiotlb: using SIZE_MAX needs limits.h included

Subash Abhinov Kasiviswanathan (1):
net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup

Sven Van Asbroeck (3):
lan743x: fix issue causing intermittent kernel log warnings
lan743x: prevent entire kernel HANG on open, for some platforms
spi: fix client driver breakages when using GPIO descriptors

Taehee Yoo (1):
netdevsim: set .owner to THIS_MODULE

Takashi Iwai (1):
ALSA: mixart: Fix mutex deadlock

Takashi Sakamoto (1):
ALSA: ctl: fix error path at adding user-defined element set

Tariq Toukan (1):
net/tls: Fix wrong record sn in async mode of device resync

Thomas Richter (1):
s390/cpum_sf.c: fix file permission for cpum_sfb_size

Tobias Waldekranz (1):
net: dsa: mv88e6xxx: Avoid VTU corruption on 6097

Tony Lindgren (2):
Revert "Revert "gpio: omap: Fix lost edge wake-up interrupts""
dmaengine: ti: omap-dma: Block PM if SDMA is busy to fix audio

Vadim Fedorenko (1):
net/tls: fix corrupted data in recvmsg

Vamshi K Sthambamkadi (1):
efivarfs: fix memory leak in efivarfs_create()

Ville Syrjälä (1):

      drm/i915: Handle max_bpc==16

Vincent Stehlé (1):
net: ethernet: mtk-star-emac: return ok when xmit drops

Vladyslav Tarasiuk (2):
net/mlx5: Clear bw_share upon VF disable net/mlx5: Disable QoS when min_rates on all VFs are zero

Wang Hai (4):
devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill() tools, bpftool: Add missing close before bpftool net attach exit selftests/bpf: Fix error return code in run_getsockopt_test()

Wang Qing (1):
net: ethernet: ti: am65-cpts: update ret when ptp_clock is ERROR

Will Deacon (3):
arm64: errata: Fix handling of 1418040 with late CPU onlining
arm64: psci: Avoid printing in cpu_psci_cpu_die()
arm64: smp: Tell RCU about CPUs that fail to come online

Wong Vee Khee (1):
net: stmmac: Use rtnl_lock/unlock on netif_set_real_num_rx_queues() call

Wu Bo (1):
can: m_can: m_can_handle_state_change(): fix state change

Xie He (1):
net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request

Xin Long (1):
sctp: change to hold/put transport for proto_unreach_timer

Xiongfeng Wang (1):
drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()

Yi-Hung Wei (1):
ip_tunnels: Set tunnel option flag when tunnel metadata is present

Yicong Yang (1):
libfs: fix error cast of negative value in simple_attr_write()

Yu Kuai (1):
xfs: return corresponding errcode if xfs_initialize_perag() fail

Zhang Changzhong (7):
ah6: fix error return code in ah6_input()
net: b44: fix error return code in b44_init_one()
net: ethernet: mtk-star-emac: fix error return code in mtk_star_enable()
net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
qed: fix error return code in qed_iwarp_ll2_start()
qlcnic: fix error return code in qlcnic_83xx_restart_hw() IB/hfi1: Fix error return code in hfi1_init_dd()

Zhang Qilong (7):
ipv6: Fix error path to cancel the meseage
PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
net: fec: Fix reference count leak in fec series ops
gfs2: fix possible reference leak in gfs2_check_blk_type
can: ti_hecc: Fix memleak in ti_hecc_probe
can: flexcan: fix failure handling of pm_runtime_get_sync()
MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu

Zheng Zengkai (1):
serial: ar933x_uart: disable clk on error handling path in probe

Zhenzhong Duan (1):
iommu/vt-d: Avoid panic if iommu init fails in tboot system

Zhihao Cheng (1):
spi: cadence-quadspi: Fix error return code in cqspi_probe

jingle.wu (1):
Input: elan_i2c - fix firmware update on newer ICs

author maintainer
#1 lore raw
Documentation/xtensa/mmu.rst +6 -3
index e52a12960fdc..450573afa31a 100644
@@ -82,7 +82,8 @@ Default MMUv2-compatible layout::
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xc0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xc7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xc8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -124,7 +125,8 @@ Default MMUv2-compatible layout::
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xa0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xa7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xa8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -167,7 +169,8 @@ Default MMUv2-compatible layout::
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0x90000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0x97ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0x98000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
Makefile +1 -1
index b9f3c6970d24..bacb52fac2a5 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 9
-SUBLEVEL = 10
+SUBLEVEL = 11
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/compressed/head.S +3 -0
index 434a16982e34..19499d636bc8 100644
@@ -1476,6 +1476,9 @@ ENTRY(efi_enter_kernel)
 		@ issued from HYP mode take us to the correct handler code. We
 		@ will disable the MMU before jumping to the kernel proper.
 		@
+ ARM(		bic	r1, r1, #(1 << 30)	) @ clear HSCTLR.TE
+ THUMB(		orr	r1, r1, #(1 << 30)	) @ set HSCTLR.TE
+		mcr	p15, 4, r1, c1, c0, 0
 		adr	r0, __hyp_reentry_vectors
 		mcr	p15, 4, r0, c12, c0, 0	@ set HYP vector base (HVBAR)
 		isb
arch/arm/boot/dts/imx50-evk.dts +1 -1
index a25da415cb02..907339bc81e5 100644
@@ -59,7 +59,7 @@ MX50_PAD_CSPI_SCLK__CSPI_SCLK		0x00
 				MX50_PAD_CSPI_MISO__CSPI_MISO		0x00
 				MX50_PAD_CSPI_MOSI__CSPI_MOSI		0x00
 				MX50_PAD_CSPI_SS0__GPIO4_11		0xc4
-				MX50_PAD_ECSPI1_MOSI__CSPI_SS1		0xf4
+				MX50_PAD_ECSPI1_MOSI__GPIO4_13		0x84
 			>;
 		};
 
arch/arm/boot/dts/imx6q-prti6q.dts +2 -2
index de6cbaab8b49..671bb3a6665d 100644
@@ -213,8 +213,8 @@ mdio {
 		#size-cells = <0>;
 
 		/* Microchip KSZ9031RNX PHY */
-		rgmii_phy: ethernet-phy@4 {
-			reg = <4>;
+		rgmii_phy: ethernet-phy@0 {
+			reg = <0>;
 			interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
 			reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
 			reset-assert-us = <10000>;
arch/arm/boot/dts/imx6qdl-udoo.dtsi +1 -1
index 828dd20cd27d..d07d8f83456d 100644
@@ -98,7 +98,7 @@ sound {
 &fec {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi +11 -8
index e4e3c92eb30d..13f52b79454e 100644
@@ -46,6 +46,16 @@ button-0 {
 			linux,code = <KEY_A>;
 			gpios = <&gpiof 3 GPIO_ACTIVE_LOW>;
 		};
+
+		/*
+		 * The EXTi IRQ line 0 is shared with PMIC,
+		 * so mark this as polled GPIO key.
+		 */
+		button-2 {
+			label = "TA3-GPIO-C";
+			linux,code = <KEY_C>;
+			gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
+		};
 	};
 
 	gpio-keys {
@@ -59,13 +69,6 @@ button-1 {
 			wakeup-source;
 		};
 
-		button-2 {
-			label = "TA3-GPIO-C";
-			linux,code = <KEY_C>;
-			gpios = <&gpioi 11 GPIO_ACTIVE_LOW>;
-			wakeup-source;
-		};
-
 		button-3 {
 			label = "TA4-GPIO-D";
 			linux,code = <KEY_D>;
@@ -79,7 +82,7 @@ led {
 
 		led-0 {
 			label = "green:led5";
-			gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi +2 -0
index a87ebc484396..e4804afc90e2 100644
@@ -68,6 +68,7 @@ ethernet_vio: vioregulator {
 		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
 		regulator-always-on;
 		regulator-boot-on;
+		vin-supply = <&vdd>;
 	};
 };
 
@@ -202,6 +203,7 @@ v3v3: buck4 {
 
 			vdda: ldo1 {
 				regulator-name = "vdda";
+				regulator-always-on;
 				regulator-min-microvolt = <2900000>;
 				regulator-max-microvolt = <2900000>;
 				interrupts = <IT_CURLIM_LDO1 0>;
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi +4 -0
index 04fbb324a541..803eb8bc9c85 100644
@@ -21,6 +21,10 @@ memory@c0000000 {
 	};
 };
 
+&dts {
+	status = "okay";
+};
+
 &i2c4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c4_pins_a>;
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +1 -1
index 049e6ab3cf56..73de34ae37fd 100644
@@ -154,7 +154,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts +1 -1
index 32d5d45a35c0..8945dbb114a2 100644
@@ -130,7 +130,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
arch/arm/boot/dts/sun7i-a20-cubietruck.dts +1 -1
index 8c8dee6ea461..9109ca0919ad 100644
@@ -151,7 +151,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +1 -1
index 9d34eabba121..431f70234d36 100644
@@ -131,7 +131,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_sw>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	allwinner,rx-delay-ps = <700>;
 	allwinner,tx-delay-ps = <700>;
 	status = "okay";
arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts +1 -1
index d9be511f054f..d8326a5c681d 100644
@@ -183,7 +183,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_dldo4>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts +0 -5
index 71fb73208939..babf4cf1b2f6 100644
@@ -53,11 +53,6 @@ aliases {
 	};
 };
 
-&emac {
-	/* LEDs changed to active high on the plus */
-	/delete-property/ allwinner,leds-active-low;
-};
-
 &mmc1 {
 	vmmc-supply = <&reg_vcc3v3>;
 	bus-width = <4>;
arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +1 -1
index 6dbf7b2e0c13..b6ca45d18e51 100644
@@ -67,7 +67,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +1 -1
index ea15073f0c79..7db89500f399 100644
@@ -129,7 +129,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +1 -1
index d3b337b043a1..484b93df20cb 100644
@@ -129,7 +129,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
arch/arm/boot/dts/sun9i-a80-optimus.dts +1 -1
index bbc6335e5631..5c3580d712e4 100644
@@ -124,7 +124,7 @@ &gmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi +1 -1
index 39263e74fbb5..8e5cb3b3fd68 100644
@@ -126,7 +126,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 
 	status = "okay";
 };
arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +3 -0
index e500911ce0a5..6f1e0f0d4f0a 100644
@@ -406,6 +406,9 @@ i2c@4 {
 	};
 };
 
+&mdio1 {
+	clock-frequency = <5000000>;
+};
 
 &iomuxc {
 	pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +1 -1
index 883f217efb81..5dd81e9239a7 100644
@@ -105,7 +105,7 @@ &ehci1 {
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +1 -1
index fde9c7a99b17..cc1723a16cf7 100644
@@ -120,7 +120,7 @@ &ehci1 {
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts +1 -1
index b26181cf9095..b54099b654c8 100644
@@ -13,7 +13,7 @@ / {
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-txid";
 	phy-handle = <&ext_rgmii_phy>;
 	status = "okay";
 };
arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts +1 -1
index df1b9263ad0e..6e30a564c87f 100644
@@ -36,7 +36,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	/delete-property/ allwinner,leds-active-low;
 	status = "okay";
 };
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +1 -1
index 7d7aad18f078..8bf2db9dcbda 100644
@@ -123,7 +123,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +1 -1
index cb44bfa5981f..33ab44072e6d 100644
@@ -124,7 +124,7 @@ &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +1 -1
index 3f7ceeb1a767..7c9dbde645b5 100644
@@ -97,7 +97,7 @@ &ehci0 {
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_aldo2>;
 	status = "okay";
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +1 -1
index af85b2074867..961732c52aa0 100644
@@ -100,7 +100,7 @@ &ehci3 {
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_gmac_3v3>;
 	allwinner,rx-delay-ps = <200>;
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts +1 -1
index feadd21bc0dc..46e558ab7729 100644
@@ -159,7 +159,7 @@ &qspi {
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00a";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts +1 -1
index c07966740e14..f9b4a39683cf 100644
@@ -192,7 +192,7 @@ &qspi {
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00a";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi +1 -0
index 0efeb8fa773e..651bfe1040ba 100644
@@ -1012,6 +1012,7 @@ rcpm: power-controller@1e34040 {
 			compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
 			reg = <0x0 0x1e34040 0x0 0x1c>;
 			#fsl,rcpm-wakeup-cells = <7>;
+			little-endian;
 		};
 
 		ftm_alarm0: timer@2800000 {
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +1 -0
index 169f4742ae3b..2ef812dd29eb 100644
@@ -787,6 +787,7 @@ rcpm: power-controller@1e34040 {
 			compatible = "fsl,ls1088a-rcpm", "fsl,qoriq-rcpm-2.1+";
 			reg = <0x0 0x1e34040 0x0 0x18>;
 			#fsl,rcpm-wakeup-cells = <6>;
+			little-endian;
 		};
 
 		ftm_alarm0: timer@2800000 {
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +1 -0
index 41102dacc2e1..141b3d23b155 100644
@@ -769,6 +769,7 @@ rcpm: power-controller@1e34040 {
 			compatible = "fsl,ls208xa-rcpm", "fsl,qoriq-rcpm-2.1+";
 			reg = <0x0 0x1e34040 0x0 0x18>;
 			#fsl,rcpm-wakeup-cells = <6>;
+			little-endian;
 		};
 
 		ftm_alarm0: timer@2800000 {
arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi +1 -0
index 94911b1707ef..09d757b3e3ce 100644
@@ -210,6 +210,7 @@ bluetooth {
 		host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
 		device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
 		clocks = <&osc_32k>;
+		max-speed = <4000000>;
 		clock-names = "extclk";
 	};
 };
arch/arm64/boot/dts/freescale/imx8mm.dtsi +1 -1
index 76f040e4be5e..7cc2a810831a 100644
@@ -129,7 +129,7 @@ opp-1200000000 {
 
 		opp-1600000000 {
 			opp-hz = /bits/ 64 <1600000000>;
-			opp-microvolt = <900000>;
+			opp-microvolt = <950000>;
 			opp-supported-hw = <0xc>, <0x7>;
 			clock-latency-ns = <150000>;
 			opp-suspend;
arch/arm64/boot/dts/freescale/imx8mn.dtsi +0 -30
index 9385dd7d1a2f..b05f60503d45 100644
@@ -789,28 +789,6 @@ usbmisc1: usbmisc@32e40200 {
 				#index-cells = <1>;
 				reg = <0x32e40200 0x200>;
 			};
-
-			usbotg2: usb@32e50000 {
-				compatible = "fsl,imx8mn-usb", "fsl,imx7d-usb";
-				reg = <0x32e50000 0x200>;
-				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
-				clock-names = "usb1_ctrl_root_clk";
-				assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
-						  <&clk IMX8MN_CLK_USB_CORE_REF>;
-				assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
-							 <&clk IMX8MN_SYS_PLL1_100M>;
-				fsl,usbphy = <&usbphynop2>;
-				fsl,usbmisc = <&usbmisc2 0>;
-				status = "disabled";
-			};
-
-			usbmisc2: usbmisc@32e50200 {
-				compatible = "fsl,imx8mn-usbmisc", "fsl,imx7d-usbmisc";
-				#index-cells = <1>;
-				reg = <0x32e50200 0x200>;
-			};
-
 		};
 
 		dma_apbh: dma-controller@33000000 {
@@ -875,12 +853,4 @@ usbphynop1: usbphynop1 {
 		assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
 		clock-names = "main_clk";
 	};
-
-	usbphynop2: usbphynop2 {
-		compatible = "usb-nop-xceiv";
-		clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
-		clock-names = "main_clk";
-	};
 };
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts +1 -1
index 96c50d48289d..a7a83f29f00b 100644
@@ -110,7 +110,7 @@ &qspi {
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "mt25qu02g";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
arch/arm64/include/asm/cpufeature.h +2 -0
index 89b4f0142c28..a986ecd0b007 100644
@@ -268,6 +268,8 @@ extern struct arm64_ftr_reg arm64_ftr_reg_ctrel0;
 /*
  * CPU feature detected at boot time based on feature of one or more CPUs.
  * All possible conflicts for a late CPU are ignored.
+ * NOTE: this means that a late CPU with the feature will *not* cause the
+ * capability to be advertised by cpus_have_*cap()!
  */
 #define ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE		\
 	(ARM64_CPUCAP_SCOPE_LOCAL_CPU		|	\
arch/arm64/include/asm/cputype.h +4 -0
index 7219cddeba66..f516fe36de30 100644
@@ -85,6 +85,8 @@
 #define QCOM_CPU_PART_FALKOR_V1		0x800
 #define QCOM_CPU_PART_FALKOR		0xC00
 #define QCOM_CPU_PART_KRYO		0x200
+#define QCOM_CPU_PART_KRYO_2XX_GOLD	0x800
+#define QCOM_CPU_PART_KRYO_2XX_SILVER	0x801
 #define QCOM_CPU_PART_KRYO_3XX_SILVER	0x803
 #define QCOM_CPU_PART_KRYO_4XX_GOLD	0x804
 #define QCOM_CPU_PART_KRYO_4XX_SILVER	0x805
@@ -114,6 +116,8 @@
 #define MIDR_QCOM_FALKOR_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR_V1)
 #define MIDR_QCOM_FALKOR MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR)
 #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
+#define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)
+#define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER)
 #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
 #define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
arch/arm64/kernel/cpu_errata.c +2 -0
index 966672b2213e..533a957dd83e 100644
@@ -750,6 +750,8 @@ static const struct midr_range erratum_845719_list[] = {
 	MIDR_REV_RANGE(MIDR_CORTEX_A53, 0, 0, 4),
 	/* Brahma-B53 r0p[0] */
 	MIDR_REV(MIDR_BRAHMA_B53, 0, 0),
+	/* Kryo2XX Silver rAp4 */
+	MIDR_REV(MIDR_QCOM_KRYO_2XX_SILVER, 0xa, 0x4),
 	{},
 };
 #endif
arch/arm64/kernel/cpufeature.c +2 -0
index 6424584be01e..9d0e4afdc8ca 100644
@@ -1333,6 +1333,8 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
 		MIDR_ALL_VERSIONS(MIDR_CORTEX_A73),
 		MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
 		MIDR_ALL_VERSIONS(MIDR_NVIDIA_CARMEL),
+		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_GOLD),
+		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_SILVER),
 		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
 		MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
 		{ /* sentinel */ }
arch/arm64/kernel/process.c +2 -3
index f1804496b935..2da5f3f9d345 100644
@@ -526,14 +526,13 @@ static void erratum_1418040_thread_switch(struct task_struct *prev,
 	bool prev32, next32;
 	u64 val;
 
-	if (!(IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) &&
-	      cpus_have_const_cap(ARM64_WORKAROUND_1418040)))
+	if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))
 		return;
 
 	prev32 = is_compat_thread(task_thread_info(prev));
 	next32 = is_compat_thread(task_thread_info(next));
 
-	if (prev32 == next32)
+	if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
 		return;
 
 	val = read_sysreg(cntkctl_el1);
arch/arm64/kernel/psci.c +1 -4
index 43ae4e0c968f..62d2bda7adb8 100644
@@ -66,7 +66,6 @@ static int cpu_psci_cpu_disable(unsigned int cpu)
 
 static void cpu_psci_cpu_die(unsigned int cpu)
 {
-	int ret;
 	/*
 	 * There are no known implementations of PSCI actually using the
 	 * power state field, pass a sensible default for now.
@@ -74,9 +73,7 @@ static void cpu_psci_cpu_die(unsigned int cpu)
 	u32 state = PSCI_POWER_STATE_TYPE_POWER_DOWN <<
 		    PSCI_0_2_POWER_STATE_TYPE_SHIFT;
 
-	ret = psci_ops.cpu_off(state);
-
-	pr_crit("unable to power off CPU%u (%d)\n", cpu, ret);
+	psci_ops.cpu_off(state);
 }
 
 static int cpu_psci_cpu_kill(unsigned int cpu)
arch/arm64/kernel/smp.c +1 -0
index 98c059b6baca..361cfc55cf5a 100644
@@ -401,6 +401,7 @@ void cpu_die_early(void)
 
 	/* Mark this CPU absent */
 	set_cpu_present(cpu, 0);
+	rcu_report_dead(cpu);
 
 	if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
 		update_cpu_boot_status(CPU_KILL_ME);
arch/mips/alchemy/common/clock.c +8 -1
index a95a894aceaf..f0c830337104 100644
@@ -152,6 +152,7 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name,
 {
 	struct clk_init_data id;
 	struct clk_hw *h;
+	struct clk *clk;
 
 	h = kzalloc(sizeof(*h), GFP_KERNEL);
 	if (!h)
@@ -164,7 +165,13 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name,
 	id.ops = &alchemy_clkops_cpu;
 	h->init = &id;
 
-	return clk_register(NULL, h);
+	clk = clk_register(NULL, h);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		kfree(h);
+	}
+
+	return clk;
 }
 
 /* AUXPLLs ************************************************************/
arch/mips/mm/tlb-r4k.c +1 -0
index 38e2894d5fa3..1b939abbe4ca 100644
@@ -438,6 +438,7 @@ int has_transparent_hugepage(void)
 	}
 	return mask == PM_HUGE_MASK;
 }
+EXPORT_SYMBOL(has_transparent_hugepage);
 
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE  */
 
arch/s390/kernel/entry.S +2 -0
index 23edf196d3dc..3349750f930e 100644
@@ -422,6 +422,7 @@ ENTRY(system_call)
 #endif
 	LOCKDEP_SYS_EXIT
 .Lsysc_tif:
+	DISABLE_INTS
 	TSTMSK	__PT_FLAGS(%r11),_PIF_WORK
 	jnz	.Lsysc_work
 	TSTMSK	__TI_flags(%r12),_TIF_WORK
@@ -446,6 +447,7 @@ ENTRY(system_call)
 # One of the work bits is on. Find out which one.
 #
 .Lsysc_work:
+	ENABLE_INTS
 	TSTMSK	__TI_flags(%r12),_TIF_NEED_RESCHED
 	jo	.Lsysc_reschedule
 	TSTMSK	__PT_FLAGS(%r11),_PIF_SYSCALL_RESTART
arch/s390/kernel/perf_cpum_sf.c +1 -1
index 4f9e4626df55..f100c9209743 100644
@@ -2228,4 +2228,4 @@ static int __init init_cpum_sampling_pmu(void)
 }
 
 arch_initcall(init_cpum_sampling_pmu);
-core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0640);
+core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0644);
arch/um/include/asm/pgalloc.h +7 -1
index 5393e13e07e0..2bbf28cf3aa9 100644
@@ -33,7 +33,13 @@ do {							\
 } while (0)
 
 #ifdef CONFIG_3_LEVEL_PGTABLES
-#define __pmd_free_tlb(tlb,x, address)   tlb_remove_page((tlb),virt_to_page(x))
+
+#define __pmd_free_tlb(tlb, pmd, address)		\
+do {							\
+	pgtable_pmd_page_dtor(virt_to_page(pmd));	\
+	tlb_remove_page((tlb),virt_to_page(pmd));	\
+} while (0)						\
+
 #endif
 
 #endif
arch/x86/kernel/cpu/microcode/intel.c +10 -53

110 lines not on this page · raw message

arch/x86/kernel/tboot.c +0 -3
index 992fb1415c0f..420be871d9d4 100644
@@ -514,9 +514,6 @@ int tboot_force_iommu(void)
 	if (!tboot_enabled())
 		return 0;
 
-	if (intel_iommu_tboot_noforce)
-		return 1;
-
 	if (no_iommu || swiotlb || dmar_disabled)
 		pr_warn("Forcing Intel-IOMMU to enabled\n");
 
arch/x86/platform/efi/efi_64.c +13 -11
index 6af4da1149ba..5ce50adb6fd0 100644
@@ -77,28 +77,30 @@ int __init efi_alloc_page_tables(void)
 	gfp_mask = GFP_KERNEL | __GFP_ZERO;
 	efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER);
 	if (!efi_pgd)
-		return -ENOMEM;
+		goto fail;
 
 	pgd = efi_pgd + pgd_index(EFI_VA_END);
 	p4d = p4d_alloc(&init_mm, pgd, EFI_VA_END);
-	if (!p4d) {
-		free_page((unsigned long)efi_pgd);
-		return -ENOMEM;
-	}
+	if (!p4d)
+		goto free_pgd;
 
 	pud = pud_alloc(&init_mm, p4d, EFI_VA_END);
-	if (!pud) {
-		if (pgtable_l5_enabled())
-			free_page((unsigned long) pgd_page_vaddr(*pgd));
-		free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
-		return -ENOMEM;
-	}
+	if (!pud)
+		goto free_p4d;
 
 	efi_mm.pgd = efi_pgd;
 	mm_init_cpumask(&efi_mm);
 	init_new_context(NULL, &efi_mm);
 
 	return 0;
+
+free_p4d:
+	if (pgtable_l5_enabled())
+		free_page((unsigned long)pgd_page_vaddr(*pgd));
+free_pgd:
+	free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
+fail:
+	return -ENOMEM;
 }
 
 /*
arch/xtensa/include/asm/pgtable.h +1 -1
index fa054a1772e1..4dc04e6c01d7 100644
@@ -69,7 +69,7 @@
  */
 #define VMALLOC_START		(XCHAL_KSEG_CACHED_VADDR - 0x10000000)
 #define VMALLOC_END		(VMALLOC_START + 0x07FEFFFF)
-#define TLBTEMP_BASE_1		(VMALLOC_END + 1)
+#define TLBTEMP_BASE_1		(VMALLOC_START + 0x08000000)
 #define TLBTEMP_BASE_2		(TLBTEMP_BASE_1 + DCACHE_WAY_SIZE)
 #if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE
 #define TLBTEMP_SIZE		(2 * DCACHE_WAY_SIZE)
arch/xtensa/mm/cache.c +14 -0
index 5835406b3cec..085b8c77b9d9 100644
@@ -70,8 +70,10 @@ static inline void kmap_invalidate_coherent(struct page *page,
 			kvaddr = TLBTEMP_BASE_1 +
 				(page_to_phys(page) & DCACHE_ALIAS_MASK);
 
+			preempt_disable();
 			__invalidate_dcache_page_alias(kvaddr,
 						       page_to_phys(page));
+			preempt_enable();
 		}
 	}
 }
@@ -156,6 +158,7 @@ void flush_dcache_page(struct page *page)
 		if (!alias && !mapping)
 			return;
 
+		preempt_disable();
 		virt = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(virt, phys);
 
@@ -166,6 +169,7 @@ void flush_dcache_page(struct page *page)
 
 		if (mapping)
 			__invalidate_icache_page_alias(virt, phys);
+		preempt_enable();
 	}
 
 	/* There shouldn't be an entry in the cache for this page anymore. */
@@ -199,8 +203,10 @@ void local_flush_cache_page(struct vm_area_struct *vma, unsigned long address,
 	unsigned long phys = page_to_phys(pfn_to_page(pfn));
 	unsigned long virt = TLBTEMP_BASE_1 + (address & DCACHE_ALIAS_MASK);
 
+	preempt_disable();
 	__flush_invalidate_dcache_page_alias(virt, phys);
 	__invalidate_icache_page_alias(virt, phys);
+	preempt_enable();
 }
 EXPORT_SYMBOL(local_flush_cache_page);
 
@@ -227,11 +233,13 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
 		unsigned long phys = page_to_phys(page);
 		unsigned long tmp;
 
+		preempt_disable();
 		tmp = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		tmp = TLBTEMP_BASE_1 + (addr & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		__invalidate_icache_page_alias(tmp, phys);
+		preempt_enable();
 
 		clear_bit(PG_arch_1, &page->flags);
 	}
@@ -265,7 +273,9 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	/* Copy data */
@@ -280,9 +290,11 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
 
+		preempt_disable();
 		__flush_invalidate_dcache_range((unsigned long) dst, len);
 		if ((vma->vm_flags & VM_EXEC) != 0)
 			__invalidate_icache_page_alias(t, phys);
+		preempt_enable();
 
 	} else if ((vma->vm_flags & VM_EXEC) != 0) {
 		__flush_dcache_range((unsigned long)dst,len);
@@ -304,7 +316,9 @@ extern void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	memcpy(dst, src, len);
block/blk-cgroup.c +1 -0
index c85fbb666e40..5f965fabb531 100644
@@ -840,6 +840,7 @@ static void blkcg_fill_root_iostats(void)
 			blkg_iostat_set(&blkg->iostat.cur, &tmp);
 			u64_stats_update_end(&blkg->iostat.sync);
 		}
+		disk_put_part(part);
 	}
 }
 
drivers/accessibility/speakup/spk_ttyio.c +11 -1
index ecc39983e946..669392f31d4e 100644
@@ -49,15 +49,25 @@ static int spk_ttyio_ldisc_open(struct tty_struct *tty)
 
 	if (!tty->ops->write)
 		return -EOPNOTSUPP;
+
+	mutex_lock(&speakup_tty_mutex);
+	if (speakup_tty) {
+		mutex_unlock(&speakup_tty_mutex);
+		return -EBUSY;
+	}
 	speakup_tty = tty;
 
 	ldisc_data = kmalloc(sizeof(*ldisc_data), GFP_KERNEL);
-	if (!ldisc_data)
+	if (!ldisc_data) {
+		speakup_tty = NULL;
+		mutex_unlock(&speakup_tty_mutex);
 		return -ENOMEM;
+	}
 
 	init_completion(&ldisc_data->completion);
 	ldisc_data->buf_free = true;
 	speakup_tty->disc_data = ldisc_data;
+	mutex_unlock(&speakup_tty_mutex);
 
 	return 0;
 }
drivers/acpi/button.c +12 -1
index da4b125ab4c3..088ec847fd26 100644
@@ -102,7 +102,18 @@ static const struct dmi_system_id dmi_lid_quirks[] = {
 		 */
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "E2215T MD60198"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2215T"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
+	{
+		/*
+		 * Medion Akoya E2228T, notification of the LID device only
+		 * happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2228T"),
 		},
 		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
 	},
drivers/acpi/fan.c +1 -0
index 62873388b24f..9cbe58e394d0 100644
@@ -351,6 +351,7 @@ static int acpi_fan_get_fps(struct acpi_device *device)
 		struct acpi_fan_fps *fps = &fan->fps[i];
 
 		snprintf(fps->name, ACPI_FPS_NAME_LEN, "state%d", i);
+		sysfs_attr_init(&fps->dev_attr.attr);
 		fps->dev_attr.show = show_state;
 		fps->dev_attr.store = NULL;
 		fps->dev_attr.attr.name = fps->name;
drivers/atm/nicstar.c +2 -0
index 7af74fb450a0..09ad73361879 100644
@@ -1706,6 +1706,8 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
 
 	if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
 		atomic_inc(&vcc->stats->tx_err);
+		dma_unmap_single(&card->pcidev->dev, NS_PRV_DMA(skb), skb->len,
+				 DMA_TO_DEVICE);
 		dev_kfree_skb_any(skb);
 		return -EIO;
 	}
drivers/counter/ti-eqep.c +2 -2
index 1ff07faef27f..5d6470968d2c 100644
@@ -368,7 +368,7 @@ static const struct regmap_config ti_eqep_regmap32_config = {
 	.reg_bits = 32,
 	.val_bits = 32,
 	.reg_stride = 4,
-	.max_register = 0x24,
+	.max_register = QUPRD,
 };
 
 static const struct regmap_config ti_eqep_regmap16_config = {
@@ -376,7 +376,7 @@ static const struct regmap_config ti_eqep_regmap16_config = {
 	.reg_bits = 16,
 	.val_bits = 16,
 	.reg_stride = 2,
-	.max_register = 0x1e,
+	.max_register = QCPRDLAT,
 };
 
 static int ti_eqep_probe(struct platform_device *pdev)
drivers/dma/dmaengine.c +9 -8
index a53e71d2bbd4..a2146d1f42da 100644
@@ -1055,16 +1055,15 @@ static int get_dma_id(struct dma_device *device)
 static int __dma_async_device_channel_register(struct dma_device *device,
 					       struct dma_chan *chan)
 {
-	int rc = 0;
+	int rc;
 
 	chan->local = alloc_percpu(typeof(*chan->local));
 	if (!chan->local)
-		goto err_out;
+		return -ENOMEM;
 	chan->dev = kzalloc(sizeof(*chan->dev), GFP_KERNEL);
 	if (!chan->dev) {
-		free_percpu(chan->local);
-		chan->local = NULL;
-		goto err_out;
+		rc = -ENOMEM;
+		goto err_free_local;
 	}
 
 	/*
@@ -1077,7 +1076,8 @@ static int __dma_async_device_channel_register(struct dma_device *device,
 	if (chan->chan_id < 0) {
 		pr_err("%s: unable to alloc ida for chan: %d\n",
 		       __func__, chan->chan_id);
-		goto err_out;
+		rc = chan->chan_id;
+		goto err_free_dev;
 	}
 
 	chan->dev->device.class = &dma_devclass;
@@ -1098,9 +1098,10 @@ static int __dma_async_device_channel_register(struct dma_device *device,
 	mutex_lock(&device->chan_mutex);
 	ida_free(&device->chan_ida, chan->chan_id);
 	mutex_unlock(&device->chan_mutex);
- err_out:
-	free_percpu(chan->local);
+ err_free_dev:
 	kfree(chan->dev);
+ err_free_local:
+	free_percpu(chan->local);
 	return rc;
 }
 
drivers/dma/idxd/device.c +15 -16
index b75d699160bf..66e947627f56 100644
@@ -271,7 +271,7 @@ int idxd_wq_map_portal(struct idxd_wq *wq)
 	resource_size_t start;
 
 	start = pci_resource_start(pdev, IDXD_WQ_BAR);
-	start = start + wq->id * IDXD_PORTAL_SIZE;
+	start += idxd_get_wq_portal_full_offset(wq->id, IDXD_PORTAL_LIMITED);
 
 	wq->dportal = devm_ioremap(dev, start, IDXD_PORTAL_SIZE);
 	if (!wq->dportal)
@@ -295,7 +295,7 @@ void idxd_wq_disable_cleanup(struct idxd_wq *wq)
 	int i, wq_offset;
 
 	lockdep_assert_held(&idxd->dev_lock);
-	memset(&wq->wqcfg, 0, sizeof(wq->wqcfg));
+	memset(wq->wqcfg, 0, idxd->wqcfg_size);
 	wq->type = IDXD_WQT_NONE;
 	wq->size = 0;
 	wq->group = NULL;
@@ -304,8 +304,8 @@ void idxd_wq_disable_cleanup(struct idxd_wq *wq)
 	clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
 	memset(wq->name, 0, WQ_NAME_SIZE);
 
-	for (i = 0; i < 8; i++) {
-		wq_offset = idxd->wqcfg_offset + wq->id * 32 + i * sizeof(u32);
+	for (i = 0; i < WQCFG_STRIDES(idxd); i++) {
+		wq_offset = WQCFG_OFFSET(idxd, wq->id, i);
 		iowrite32(0, idxd->reg_base + wq_offset);
 		dev_dbg(dev, "WQ[%d][%d][%#x]: %#x\n",
 			wq->id, i, wq_offset,
@@ -535,10 +535,10 @@ static int idxd_wq_config_write(struct idxd_wq *wq)
 	if (!wq->group)
 		return 0;
 
-	memset(&wq->wqcfg, 0, sizeof(union wqcfg));
+	memset(wq->wqcfg, 0, idxd->wqcfg_size);
 
 	/* byte 0-3 */
-	wq->wqcfg.wq_size = wq->size;
+	wq->wqcfg->wq_size = wq->size;
 
 	if (wq->size == 0) {
 		dev_warn(dev, "Incorrect work queue size: 0\n");
@@ -546,22 +546,21 @@ static int idxd_wq_config_write(struct idxd_wq *wq)
 	}
 
 	/* bytes 4-7 */
-	wq->wqcfg.wq_thresh = wq->threshold;
+	wq->wqcfg->wq_thresh = wq->threshold;
 
 	/* byte 8-11 */
-	wq->wqcfg.priv = !!(wq->type == IDXD_WQT_KERNEL);
-	wq->wqcfg.mode = 1;
-
-	wq->wqcfg.priority = wq->priority;
+	wq->wqcfg->priv = !!(wq->type == IDXD_WQT_KERNEL);
+	wq->wqcfg->mode = 1;
+	wq->wqcfg->priority = wq->priority;
 
 	/* bytes 12-15 */
-	wq->wqcfg.max_xfer_shift = idxd->hw.gen_cap.max_xfer_shift;
-	wq->wqcfg.max_batch_shift = idxd->hw.gen_cap.max_batch_shift;
+	wq->wqcfg->max_xfer_shift = idxd->hw.gen_cap.max_xfer_shift;
+	wq->wqcfg->max_batch_shift = idxd->hw.gen_cap.max_batch_shift;
 
 	dev_dbg(dev, "WQ %d CFGs\n", wq->id);
-	for (i = 0; i < 8; i++) {
-		wq_offset = idxd->wqcfg_offset + wq->id * 32 + i * sizeof(u32);
-		iowrite32(wq->wqcfg.bits[i], idxd->reg_base + wq_offset);
+	for (i = 0; i < WQCFG_STRIDES(idxd); i++) {
+		wq_offset = WQCFG_OFFSET(idxd, wq->id, i);
+		iowrite32(wq->wqcfg->bits[i], idxd->reg_base + wq_offset);
 		dev_dbg(dev, "WQ[%d][%d][%#x]: %#x\n",
 			wq->id, i, wq_offset,
 			ioread32(idxd->reg_base + wq_offset));
drivers/dma/idxd/idxd.h +2 -1
index e62b4799d189..a3e5b83c80ef 100644
@@ -103,7 +103,7 @@ struct idxd_wq {
 	u32 priority;
 	enum idxd_wq_state state;
 	unsigned long flags;
-	union wqcfg wqcfg;
+	union wqcfg *wqcfg;
 	u32 vec_ptr;		/* interrupt steering */
 	struct dsa_hw_desc **hw_descs;
 	int num_descs;
@@ -180,6 +180,7 @@ struct idxd_device {
 	int max_wq_size;
 	int token_limit;
 	int nr_tokens;		/* non-reserved tokens */
+	unsigned int wqcfg_size;
 
 	union sw_err_reg sw_err;
 	wait_queue_head_t cmd_waitq;
drivers/dma/idxd/init.c +5 -0
index c7c61974f20f..4bf9ed369bb7 100644
@@ -176,6 +176,9 @@ static int idxd_setup_internals(struct idxd_device *idxd)
 		wq->idxd = idxd;
 		mutex_init(&wq->wq_lock);
 		wq->idxd_cdev.minor = -1;
+		wq->wqcfg = devm_kzalloc(dev, idxd->wqcfg_size, GFP_KERNEL);
+		if (!wq->wqcfg)
+			return -ENOMEM;
 	}
 
 	for (i = 0; i < idxd->max_engines; i++) {
@@ -249,6 +252,8 @@ static void idxd_read_caps(struct idxd_device *idxd)
 	dev_dbg(dev, "total workqueue size: %u\n", idxd->max_wq_size);
 	idxd->max_wqs = idxd->hw.wq_cap.num_wqs;
 	dev_dbg(dev, "max workqueues: %u\n", idxd->max_wqs);
+	idxd->wqcfg_size = 1 << (idxd->hw.wq_cap.wqcfg_size + IDXD_WQCFG_MIN);
+	dev_dbg(dev, "wqcfg size: %u\n", idxd->wqcfg_size);
 
 	/* reading operation capabilities */
 	for (i = 0; i < 4; i++) {
drivers/dma/idxd/registers.h +23 -2
index a39e7ae6b3d9..54390334c243 100644
@@ -8,7 +8,7 @@
 
 #define IDXD_MMIO_BAR		0
 #define IDXD_WQ_BAR		2
-#define IDXD_PORTAL_SIZE	0x4000
+#define IDXD_PORTAL_SIZE	PAGE_SIZE
 
 /* MMIO Device BAR0 Registers */
 #define IDXD_VER_OFFSET			0x00
@@ -43,7 +43,8 @@ union wq_cap_reg {
 	struct {
 		u64 total_wq_size:16;
 		u64 num_wqs:8;
-		u64 rsvd:24;
+		u64 wqcfg_size:4;
+		u64 rsvd:20;
 		u64 shared_mode:1;
 		u64 dedicated_mode:1;
 		u64 rsvd2:1;
@@ -55,6 +56,7 @@ union wq_cap_reg {
 	u64 bits;
 } __packed;
 #define IDXD_WQCAP_OFFSET		0x20
+#define IDXD_WQCFG_MIN			5
 
 union group_cap_reg {
 	struct {
@@ -333,4 +335,23 @@ union wqcfg {
 	};
 	u32 bits[8];
 } __packed;
+
+/*
+ * This macro calculates the offset into the WQCFG register
+ * idxd - struct idxd *
+ * n - wq id
+ * ofs - the index of the 32b dword for the config register
+ *
+ * The WQCFG register block is divided into groups per each wq. The n index
+ * allows us to move to the register group that's for that particular wq.
+ * Each register is 32bits. The ofs gives us the number of register to access.
+ */
+#define WQCFG_OFFSET(_idxd_dev, n, ofs) \
+({\
+	typeof(_idxd_dev) __idxd_dev = (_idxd_dev);	\
+	(__idxd_dev)->wqcfg_offset + (n) * (__idxd_dev)->wqcfg_size + sizeof(u32) * (ofs);	\
+})
+
+#define WQCFG_STRIDES(_idxd_dev) ((_idxd_dev)->wqcfg_size / sizeof(u32))
+
 #endif
drivers/dma/idxd/submit.c +1 -1
index 156a1ee233aa..417048e3c42a 100644
@@ -74,7 +74,7 @@ int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc)
 	if (idxd->state != IDXD_DEV_ENABLED)
 		return -EIO;
 
-	portal = wq->dportal + idxd_get_wq_portal_offset(IDXD_PORTAL_UNLIMITED);
+	portal = wq->dportal;
 	/*
 	 * The wmb() flushes writes to coherent DMA data before possibly
 	 * triggering a DMA read. The wmb() is necessary even on UP because
drivers/dma/ti/omap-dma.c +24 -13
index 918301e17552..3339f0952074 100644
@@ -1522,29 +1522,38 @@ static void omap_dma_free(struct omap_dmadev *od)
 	}
 }
 
+/* Currently used by omap2 & 3 to block deeper SoC idle states */
+static bool omap_dma_busy(struct omap_dmadev *od)
+{
+	struct omap_chan *c;
+	int lch = -1;
+
+	while (1) {
+		lch = find_next_bit(od->lch_bitmap, od->lch_count, lch + 1);
+		if (lch >= od->lch_count)
+			break;
+		c = od->lch_map[lch];
+		if (!c)
+			continue;
+		if (omap_dma_chan_read(c, CCR) & CCR_ENABLE)
+			return true;
+	}
+
+	return false;
+}
+
 /* Currently only used for omap2. For omap1, also a check for lcd_dma is needed */
 static int omap_dma_busy_notifier(struct notifier_block *nb,
 				  unsigned long cmd, void *v)
 {
 	struct omap_dmadev *od;
-	struct omap_chan *c;
-	int lch = -1;
 
 	od = container_of(nb, struct omap_dmadev, nb);
 
 	switch (cmd) {
 	case CPU_CLUSTER_PM_ENTER:
-		while (1) {
-			lch = find_next_bit(od->lch_bitmap, od->lch_count,
-					    lch + 1);
-			if (lch >= od->lch_count)
-				break;
-			c = od->lch_map[lch];
-			if (!c)
-				continue;
-			if (omap_dma_chan_read(c, CCR) & CCR_ENABLE)
-				return NOTIFY_BAD;
-		}
+		if (omap_dma_busy(od))
+			return NOTIFY_BAD;
 		break;
 	case CPU_CLUSTER_PM_ENTER_FAILED:
 	case CPU_CLUSTER_PM_EXIT:
@@ -1595,6 +1604,8 @@ static int omap_dma_context_notifier(struct notifier_block *nb,
 
 	switch (cmd) {
 	case CPU_CLUSTER_PM_ENTER:
+		if (omap_dma_busy(od))
+			return NOTIFY_BAD;
 		omap_dma_context_save(od);
 		break;
 	case CPU_CLUSTER_PM_ENTER_FAILED:
drivers/dma/xilinx/xilinx_dma.c +28 -8
index 5429497d3560..0fc432567b85 100644
@@ -948,8 +948,10 @@ static u32 xilinx_dma_get_residue(struct xilinx_dma_chan *chan,
 {
 	struct xilinx_cdma_tx_segment *cdma_seg;
 	struct xilinx_axidma_tx_segment *axidma_seg;
+	struct xilinx_aximcdma_tx_segment *aximcdma_seg;
 	struct xilinx_cdma_desc_hw *cdma_hw;
 	struct xilinx_axidma_desc_hw *axidma_hw;
+	struct xilinx_aximcdma_desc_hw *aximcdma_hw;
 	struct list_head *entry;
 	u32 residue = 0;
 
@@ -961,13 +963,23 @@ static u32 xilinx_dma_get_residue(struct xilinx_dma_chan *chan,
 			cdma_hw = &cdma_seg->hw;
 			residue += (cdma_hw->control - cdma_hw->status) &
 				   chan->xdev->max_buffer_len;
-		} else {
+		} else if (chan->xdev->dma_config->dmatype ==
+			   XDMA_TYPE_AXIDMA) {
 			axidma_seg = list_entry(entry,
 						struct xilinx_axidma_tx_segment,
 						node);
 			axidma_hw = &axidma_seg->hw;
 			residue += (axidma_hw->control - axidma_hw->status) &
 				   chan->xdev->max_buffer_len;
+		} else {
+			aximcdma_seg =
+				list_entry(entry,
+					   struct xilinx_aximcdma_tx_segment,
+					   node);
+			aximcdma_hw = &aximcdma_seg->hw;
+			residue +=
+				(aximcdma_hw->control - aximcdma_hw->status) &
+				chan->xdev->max_buffer_len;
 		}
 	}
 
@@ -1135,7 +1147,7 @@ static int xilinx_dma_alloc_chan_resources(struct dma_chan *dchan)
 			upper_32_bits(chan->seg_p + sizeof(*chan->seg_mv) *
 				((i + 1) % XILINX_DMA_NUM_DESCS));
 			chan->seg_mv[i].phys = chan->seg_p +
-				sizeof(*chan->seg_v) * i;
+				sizeof(*chan->seg_mv) * i;
 			list_add_tail(&chan->seg_mv[i].node,
 				      &chan->free_seg_list);
 		}
@@ -1560,7 +1572,7 @@ static void xilinx_dma_start_transfer(struct xilinx_dma_chan *chan)
 static void xilinx_mcdma_start_transfer(struct xilinx_dma_chan *chan)
 {
 	struct xilinx_dma_tx_descriptor *head_desc, *tail_desc;
-	struct xilinx_axidma_tx_segment *tail_segment;
+	struct xilinx_aximcdma_tx_segment *tail_segment;
 	u32 reg;
 
 	/*
@@ -1582,7 +1594,7 @@ static void xilinx_mcdma_start_transfer(struct xilinx_dma_chan *chan)
 	tail_desc = list_last_entry(&chan->pending_list,
 				    struct xilinx_dma_tx_descriptor, node);
 	tail_segment = list_last_entry(&tail_desc->segments,
-				       struct xilinx_axidma_tx_segment, node);
+				       struct xilinx_aximcdma_tx_segment, node);
 
 	reg = dma_ctrl_read(chan, XILINX_MCDMA_CHAN_CR_OFFSET(chan->tdest));
 
@@ -1864,6 +1876,7 @@ static void append_desc_queue(struct xilinx_dma_chan *chan,
 	struct xilinx_vdma_tx_segment *tail_segment;
 	struct xilinx_dma_tx_descriptor *tail_desc;
 	struct xilinx_axidma_tx_segment *axidma_tail_segment;
+	struct xilinx_aximcdma_tx_segment *aximcdma_tail_segment;
 	struct xilinx_cdma_tx_segment *cdma_tail_segment;
 
 	if (list_empty(&chan->pending_list))
@@ -1885,11 +1898,17 @@ static void append_desc_queue(struct xilinx_dma_chan *chan,
 						struct xilinx_cdma_tx_segment,
 						node);
 		cdma_tail_segment->hw.next_desc = (u32)desc->async_tx.phys;
-	} else {
+	} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
 		axidma_tail_segment = list_last_entry(&tail_desc->segments,
 					       struct xilinx_axidma_tx_segment,
 					       node);
 		axidma_tail_segment->hw.next_desc = (u32)desc->async_tx.phys;
+	} else {
+		aximcdma_tail_segment =
+			list_last_entry(&tail_desc->segments,
+					struct xilinx_aximcdma_tx_segment,
+					node);
+		aximcdma_tail_segment->hw.next_desc = (u32)desc->async_tx.phys;
 	}
 
 	/*
@@ -2856,10 +2875,11 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
 		chan->stop_transfer = xilinx_dma_stop_transfer;
 	}
 
-	/* check if SG is enabled (only for AXIDMA and CDMA) */
+	/* check if SG is enabled (only for AXIDMA, AXIMCDMA, and CDMA) */
 	if (xdev->dma_config->dmatype != XDMA_TYPE_VDMA) {
-		if (dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) &
-		    XILINX_DMA_DMASR_SG_MASK)
+		if (xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA ||
+		    dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) &
+			    XILINX_DMA_DMASR_SG_MASK)
 			chan->has_sg = true;
 		dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id,
 			chan->has_sg ? "enabled" : "disabled");
drivers/gpio/gpio-omap.c +11 -1
index 0ea640fb636c..3b87989e2764 100644
@@ -1114,13 +1114,23 @@ static void omap_gpio_idle(struct gpio_bank *bank, bool may_lose_context)
 {
 	struct device *dev = bank->chip.parent;
 	void __iomem *base = bank->base;
-	u32 nowake;
+	u32 mask, nowake;
 
 	bank->saved_datain = readl_relaxed(base + bank->regs->datain);
 
 	if (!bank->enabled_non_wakeup_gpios)
 		goto update_gpio_context_count;
 
+	/* Check for pending EDGE_FALLING, ignore EDGE_BOTH */
+	mask = bank->enabled_non_wakeup_gpios & bank->context.fallingdetect;
+	mask &= ~bank->context.risingdetect;
+	bank->saved_datain |= mask;
+
+	/* Check for pending EDGE_RISING, ignore EDGE_BOTH */
+	mask = bank->enabled_non_wakeup_gpios & bank->context.risingdetect;
+	mask &= ~bank->context.fallingdetect;
+	bank->saved_datain &= ~mask;
+
 	if (!may_lose_context)
 		goto update_gpio_context_count;
 
drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c +2 -2
index 2a1fea501f8c..3f1e7a196a23 100644
@@ -299,8 +299,8 @@ irq_source_info_dcn20[DAL_IRQ_SOURCES_NUMBER] = {
 	pflip_int_entry(1),
 	pflip_int_entry(2),
 	pflip_int_entry(3),
-	[DC_IRQ_SOURCE_PFLIP5] = dummy_irq_entry(),
-	[DC_IRQ_SOURCE_PFLIP6] = dummy_irq_entry(),
+	pflip_int_entry(4),
+	pflip_int_entry(5),
 	[DC_IRQ_SOURCE_PFLIP_UNDERLAY0] = dummy_irq_entry(),
 	gpio_pad_int_entry(0),
 	gpio_pad_int_entry(1),
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +0 -6
index 748df1cacd2b..0c79a9ba48bb 100644
@@ -2327,12 +2327,6 @@ static enum drm_connector_status dw_hdmi_detect(struct dw_hdmi *hdmi)
 {
 	enum drm_connector_status result;
 
-	mutex_lock(&hdmi->mutex);
-	hdmi->force = DRM_FORCE_UNSPECIFIED;
-	dw_hdmi_update_power(hdmi);
-	dw_hdmi_update_phy_mask(hdmi);
-	mutex_unlock(&hdmi->mutex);
-
 	result = hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data);
 
 	mutex_lock(&hdmi->mutex);
drivers/gpu/drm/i915/display/intel_display.c +2 -1
index 72a7a428e621..8c6ba7c4b6e0 100644
@@ -12819,10 +12819,11 @@ compute_sink_pipe_bpp(const struct drm_connector_state *conn_state,
 	case 10 ... 11:
 		bpp = 10 * 3;
 		break;
-	case 12:
+	case 12 ... 16:
 		bpp = 12 * 3;
 		break;
 	default:
+		MISSING_CASE(conn_state->max_bpc);
 		return -EINVAL;
 	}
 
drivers/gpu/drm/i915/gt/intel_rc6.c +17 -5
index ab675d35030d..d7b8e4457fc2 100644
@@ -56,9 +56,12 @@ static inline void set(struct intel_uncore *uncore, i915_reg_t reg, u32 val)
 
 static void gen11_rc6_enable(struct intel_rc6 *rc6)
 {
-	struct intel_uncore *uncore = rc6_to_uncore(rc6);
+	struct intel_gt *gt = rc6_to_gt(rc6);
+	struct intel_uncore *uncore = gt->uncore;
 	struct intel_engine_cs *engine;
 	enum intel_engine_id id;
+	u32 pg_enable;
+	int i;
 
 	/* 2b: Program RC6 thresholds.*/
 	set(uncore, GEN6_RC6_WAKE_RATE_LIMIT, 54 << 16 | 85);
@@ -102,10 +105,19 @@ static void gen11_rc6_enable(struct intel_rc6 *rc6)
 		GEN6_RC_CTL_RC6_ENABLE |
 		GEN6_RC_CTL_EI_MODE(1);
 
-	set(uncore, GEN9_PG_ENABLE,
-	    GEN9_RENDER_PG_ENABLE |
-	    GEN9_MEDIA_PG_ENABLE |
-	    GEN11_MEDIA_SAMPLER_PG_ENABLE);
+	pg_enable =
+		GEN9_RENDER_PG_ENABLE |
+		GEN9_MEDIA_PG_ENABLE |
+		GEN11_MEDIA_SAMPLER_PG_ENABLE;
+
+	if (INTEL_GEN(gt->i915) >= 12) {
+		for (i = 0; i < I915_MAX_VCS; i++)
+			if (HAS_ENGINE(gt, _VCS(i)))
+				pg_enable |= (VDN_HCP_POWERGATE_ENABLE(i) |
+					      VDN_MFX_POWERGATE_ENABLE(i));
+	}
+
+	set(uncore, GEN9_PG_ENABLE, pg_enable);
 }
 
 static void gen9_rc6_enable(struct intel_rc6 *rc6)
drivers/gpu/drm/i915/i915_reg.h +5 -7
index 4e796ff4d7d0..30182fe3c600 100644
@@ -8974,10 +8974,6 @@ enum {
 #define   GEN9_PWRGT_MEDIA_STATUS_MASK		(1 << 0)
 #define   GEN9_PWRGT_RENDER_STATUS_MASK		(1 << 1)
 
-#define POWERGATE_ENABLE			_MMIO(0xa210)
-#define    VDN_HCP_POWERGATE_ENABLE(n)		BIT(((n) * 2) + 3)
-#define    VDN_MFX_POWERGATE_ENABLE(n)		BIT(((n) * 2) + 4)
-
 #define  GTFIFODBG				_MMIO(0x120000)
 #define    GT_FIFO_SBDEDICATE_FREE_ENTRY_CHV	(0x1f << 20)
 #define    GT_FIFO_FREE_ENTRIES_CHV		(0x7f << 13)
@@ -9117,9 +9113,11 @@ enum {
 #define GEN9_MEDIA_PG_IDLE_HYSTERESIS		_MMIO(0xA0C4)
 #define GEN9_RENDER_PG_IDLE_HYSTERESIS		_MMIO(0xA0C8)
 #define GEN9_PG_ENABLE				_MMIO(0xA210)
-#define GEN9_RENDER_PG_ENABLE			REG_BIT(0)
-#define GEN9_MEDIA_PG_ENABLE			REG_BIT(1)
-#define GEN11_MEDIA_SAMPLER_PG_ENABLE		REG_BIT(2)
+#define   GEN9_RENDER_PG_ENABLE			REG_BIT(0)
+#define   GEN9_MEDIA_PG_ENABLE			REG_BIT(1)
+#define   GEN11_MEDIA_SAMPLER_PG_ENABLE		REG_BIT(2)
+#define   VDN_HCP_POWERGATE_ENABLE(n)		REG_BIT(3 + 2 * (n))
+#define   VDN_MFX_POWERGATE_ENABLE(n)		REG_BIT(4 + 2 * (n))
 #define GEN8_PUSHBUS_CONTROL			_MMIO(0xA248)
 #define GEN8_PUSHBUS_ENABLE			_MMIO(0xA250)
 #define GEN8_PUSHBUS_SHIFT			_MMIO(0xA25C)
drivers/gpu/drm/i915/intel_pm.c +0 -13
index cfabbe0481ab..e1253a1e2a4f 100644
@@ -7124,23 +7124,10 @@ static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
 
 static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
 {
-	u32 vd_pg_enable = 0;
-	unsigned int i;
-
 	/* Wa_1409120013:tgl */
 	I915_WRITE(ILK_DPFC_CHICKEN,
 		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
 
-	/* This is not a WA. Enable VD HCP & MFX_ENC powergate */
-	for (i = 0; i < I915_MAX_VCS; i++) {
-		if (HAS_ENGINE(&dev_priv->gt, _VCS(i)))
-			vd_pg_enable |= VDN_HCP_POWERGATE_ENABLE(i) |
-					VDN_MFX_POWERGATE_ENABLE(i);
-	}
-
-	I915_WRITE(POWERGATE_ENABLE,
-		   I915_READ(POWERGATE_ENABLE) | vd_pg_enable);
-
 	/* Wa_1409825376:tgl (pre-prod)*/
 	if (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0))
 		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c +1 -0
index d4c08043dd81..92add2cef2e7 100644
@@ -208,6 +208,7 @@ static int sun8i_dw_hdmi_bind(struct device *dev, struct device *master,
 	phy_node = of_parse_phandle(dev->of_node, "phys", 0);
 	if (!phy_node) {
 		dev_err(dev, "Can't found PHY phandle\n");
+		ret = -EINVAL;
 		goto err_disable_clk_tmds;
 	}
 
drivers/hid/hid-logitech-dj.c +21 -1
index 38ee25a813b9..1cbbcf607ee9 100644
@@ -328,7 +328,7 @@ static const char mse_bluetooth_descriptor[] = {
 	0x25, 0x01,		/*      LOGICAL_MAX (1)                 */
 	0x75, 0x01,		/*      REPORT_SIZE (1)                 */
 	0x95, 0x04,		/*      REPORT_COUNT (4)                */
-	0x81, 0x06,		/*      INPUT                           */
+	0x81, 0x02,		/*      INPUT (Data,Var,Abs)            */
 	0xC0,			/*    END_COLLECTION                    */
 	0xC0,			/*  END_COLLECTION                      */
 };
@@ -866,11 +866,24 @@ static void logi_dj_recv_queue_notification(struct dj_receiver_dev *djrcv_dev,
 	schedule_work(&djrcv_dev->work);
 }
 
+/*
+ * Some quad/bluetooth keyboards have a builtin touchpad in this case we see
+ * only 1 paired device with a device_type of REPORT_TYPE_KEYBOARD. For the
+ * touchpad to work we must also forward mouse input reports to the dj_hiddev
+ * created for the keyboard (instead of forwarding them to a second paired
+ * device with a device_type of REPORT_TYPE_MOUSE as we normally would).
+ */
+static const u16 kbd_builtin_touchpad_ids[] = {
+	0xb309, /* Dinovo Edge */
+	0xb30c, /* Dinovo Mini */
+};
+
 static void logi_hidpp_dev_conn_notif_equad(struct hid_device *hdev,
 					    struct hidpp_event *hidpp_report,
 					    struct dj_workitem *workitem)
 {
 	struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
+	int i, id;
 
 	workitem->type = WORKITEM_TYPE_PAIRED;
 	workitem->device_type = hidpp_report->params[HIDPP_PARAM_DEVICE_INFO] &
@@ -882,6 +895,13 @@ static void logi_hidpp_dev_conn_notif_equad(struct hid_device *hdev,
 		workitem->reports_supported |= STD_KEYBOARD | MULTIMEDIA |
 					       POWER_KEYS | MEDIA_CENTER |
 					       HIDPP;
+		id = (workitem->quad_id_msb << 8) | workitem->quad_id_lsb;
+		for (i = 0; i < ARRAY_SIZE(kbd_builtin_touchpad_ids); i++) {
+			if (id == kbd_builtin_touchpad_ids[i]) {
+				workitem->reports_supported |= STD_MOUSE;
+				break;
+			}
+		}
 		break;
 	case REPORT_TYPE_MOUSE:
 		workitem->reports_supported |= STD_MOUSE | HIDPP;
drivers/hid/hid-logitech-hidpp.c +26 -0
index b8b53dc95e86..a2991622702a 100644
@@ -93,6 +93,8 @@ MODULE_PARM_DESC(disable_tap_to_click,
 #define HIDPP_CAPABILITY_BATTERY_LEVEL_STATUS	BIT(3)
 #define HIDPP_CAPABILITY_BATTERY_VOLTAGE	BIT(4)
 
+#define lg_map_key_clear(c)  hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
+
 /*
  * There are two hidpp protocols in use, the first version hidpp10 is known
  * as register access protocol or RAP, the second version hidpp20 is known as
@@ -2950,6 +2952,26 @@ static int g920_get_config(struct hidpp_device *hidpp,
 	return g920_ff_set_autocenter(hidpp, data);
 }
 
+/* -------------------------------------------------------------------------- */
+/* Logitech Dinovo Mini keyboard with builtin touchpad                        */
+/* -------------------------------------------------------------------------- */
+#define DINOVO_MINI_PRODUCT_ID		0xb30c
+
+static int lg_dinovo_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+		struct hid_field *field, struct hid_usage *usage,
+		unsigned long **bit, int *max)
+{
+	if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR)
+		return 0;
+
+	switch (usage->hid & HID_USAGE) {
+	case 0x00d: lg_map_key_clear(KEY_MEDIA);	break;
+	default:
+		return 0;
+	}
+	return 1;
+}
+
 /* -------------------------------------------------------------------------- */
 /* HID++1.0 devices which use HID++ reports for their wheels                  */
 /* -------------------------------------------------------------------------- */
@@ -3185,6 +3207,9 @@ static int hidpp_input_mapping(struct hid_device *hdev, struct hid_input *hi,
 			field->application != HID_GD_MOUSE)
 		return m560_input_mapping(hdev, hi, field, usage, bit, max);
 
+	if (hdev->product == DINOVO_MINI_PRODUCT_ID)
+		return lg_dinovo_input_mapping(hdev, hi, field, usage, bit, max);
+
 	return 0;
 }
 
@@ -3947,6 +3972,7 @@ static const struct hid_device_id hidpp_devices[] = {
 	  LDJ_DEVICE(0x405e), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ /* Mouse Logitech MX Anywhere 2 */
 	  LDJ_DEVICE(0x404a), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
+	{ LDJ_DEVICE(0x4072), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb013), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb018), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb01f), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
drivers/hid/hid-mcp2221.c +39 -9

108 lines not on this page · raw message

drivers/hv/hv.c +6 -2
index da69338f92f5..75a8638ff68b 100644
@@ -244,9 +244,13 @@ int hv_synic_cleanup(unsigned int cpu)
 
 	/*
 	 * Hyper-V does not provide a way to change the connect CPU once
-	 * it is set; we must prevent the connect CPU from going offline.
+	 * it is set; we must prevent the connect CPU from going offline
+	 * while the VM is running normally. But in the panic or kexec()
+	 * path where the vmbus is already disconnected, the CPU must be
+	 * allowed to shut down.
 	 */
-	if (cpu == VMBUS_CONNECT_CPU)
+	if (cpu == VMBUS_CONNECT_CPU &&
+	    vmbus_connection.conn_state == CONNECTED)
 		return -EBUSY;
 
 	/*
drivers/hwmon/pwm-fan.c +9 -7
index 17bb64299bfd..3642086498d9 100644
@@ -54,16 +54,18 @@ static irqreturn_t pulse_handler(int irq, void *dev_id)
 static void sample_timer(struct timer_list *t)
 {
 	struct pwm_fan_ctx *ctx = from_timer(ctx, t, rpm_timer);
+	unsigned int delta = ktime_ms_delta(ktime_get(), ctx->sample_start);
 	int pulses;
-	u64 tmp;
 
-	pulses = atomic_read(&ctx->pulses);
-	atomic_sub(pulses, &ctx->pulses);
-	tmp = (u64)pulses * ktime_ms_delta(ktime_get(), ctx->sample_start) * 60;
-	do_div(tmp, ctx->pulses_per_revolution * 1000);
-	ctx->rpm = tmp;
+	if (delta) {
+		pulses = atomic_read(&ctx->pulses);
+		atomic_sub(pulses, &ctx->pulses);
+		ctx->rpm = (unsigned int)(pulses * 1000 * 60) /
+			(ctx->pulses_per_revolution * delta);
+
+		ctx->sample_start = ktime_get();
+	}
 
-	ctx->sample_start = ktime_get();
 	mod_timer(&ctx->rpm_timer, jiffies + HZ);
 }
 
drivers/iio/accel/kxcjk-1013.c +46 -5

99 lines not on this page · raw message

drivers/iio/adc/ingenic-adc.c +27 -7
index 92b25083e23f..1aafbe2cfe67 100644
@@ -71,7 +71,7 @@
 #define JZ4725B_ADC_BATTERY_HIGH_VREF_BITS	10
 #define JZ4740_ADC_BATTERY_HIGH_VREF		(7500 * 0.986)
 #define JZ4740_ADC_BATTERY_HIGH_VREF_BITS	12
-#define JZ4770_ADC_BATTERY_VREF			6600
+#define JZ4770_ADC_BATTERY_VREF			1200
 #define JZ4770_ADC_BATTERY_VREF_BITS		12
 
 #define JZ_ADC_IRQ_AUX			BIT(0)
@@ -177,13 +177,12 @@ static void ingenic_adc_set_config(struct ingenic_adc *adc,
 	mutex_unlock(&adc->lock);
 }
 
-static void ingenic_adc_enable(struct ingenic_adc *adc,
-			       int engine,
-			       bool enabled)
+static void ingenic_adc_enable_unlocked(struct ingenic_adc *adc,
+					int engine,
+					bool enabled)
 {
 	u8 val;
 
-	mutex_lock(&adc->lock);
 	val = readb(adc->base + JZ_ADC_REG_ENABLE);
 
 	if (enabled)
@@ -192,20 +191,41 @@ static void ingenic_adc_enable(struct ingenic_adc *adc,
 		val &= ~BIT(engine);
 
 	writeb(val, adc->base + JZ_ADC_REG_ENABLE);
+}
+
+static void ingenic_adc_enable(struct ingenic_adc *adc,
+			       int engine,
+			       bool enabled)
+{
+	mutex_lock(&adc->lock);
+	ingenic_adc_enable_unlocked(adc, engine, enabled);
 	mutex_unlock(&adc->lock);
 }
 
 static int ingenic_adc_capture(struct ingenic_adc *adc,
 			       int engine)
 {
+	u32 cfg;
 	u8 val;
 	int ret;
 
-	ingenic_adc_enable(adc, engine, true);
+	/*
+	 * Disable CMD_SEL temporarily, because it causes wrong VBAT readings,
+	 * probably due to the switch of VREF. We must keep the lock here to
+	 * avoid races with the buffer enable/disable functions.
+	 */
+	mutex_lock(&adc->lock);
+	cfg = readl(adc->base + JZ_ADC_REG_CFG);
+	writel(cfg & ~JZ_ADC_REG_CFG_CMD_SEL, adc->base + JZ_ADC_REG_CFG);
+
+	ingenic_adc_enable_unlocked(adc, engine, true);
 	ret = readb_poll_timeout(adc->base + JZ_ADC_REG_ENABLE, val,
 				 !(val & BIT(engine)), 250, 1000);
 	if (ret)
-		ingenic_adc_enable(adc, engine, false);
+		ingenic_adc_enable_unlocked(adc, engine, false);
+
+	writel(cfg, adc->base + JZ_ADC_REG_CFG);
+	mutex_unlock(&adc->lock);
 
 	return ret;
 }
drivers/iio/adc/mt6577_auxadc.c +4 -2
index ac415cb089cd..79c1dd68b909 100644
@@ -9,9 +9,9 @@
 #include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/iopoll.h>
 #include <linux/io.h>
 #include <linux/iio/iio.h>
@@ -276,6 +276,8 @@ static int mt6577_auxadc_probe(struct platform_device *pdev)
 		goto err_disable_clk;
 	}
 
+	adc_dev->dev_comp = device_get_match_data(&pdev->dev);
+
 	mutex_init(&adc_dev->lock);
 
 	mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
drivers/iio/adc/stm32-adc-core.c +17 -24

79 lines not on this page · raw message

drivers/iio/adc/stm32-adc.c +48 -2

113 lines not on this page · raw message

drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c +11 -5
index 1bc6efa47316..90c1a1f757b4 100644
@@ -255,7 +255,7 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,
 	struct cros_ec_sensorhub *sensor_hub = dev_get_drvdata(dev->parent);
 	struct cros_ec_dev *ec = sensor_hub->ec;
 	struct cros_ec_sensor_platform *sensor_platform = dev_get_platdata(dev);
-	u32 ver_mask;
+	u32 ver_mask, temp;
 	int frequencies[ARRAY_SIZE(state->frequencies) / 2] = { 0 };
 	int ret, i;
 
@@ -310,10 +310,16 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,
 						 &frequencies[2],
 						 &state->fifo_max_event_count);
 		} else {
-			frequencies[1] = state->resp->info_3.min_frequency;
-			frequencies[2] = state->resp->info_3.max_frequency;
-			state->fifo_max_event_count =
-			    state->resp->info_3.fifo_max_event_count;
+			if (state->resp->info_3.max_frequency == 0) {
+				get_default_min_max_freq(state->resp->info.type,
+							 &frequencies[1],
+							 &frequencies[2],
+							 &temp);
+			} else {
+				frequencies[1] = state->resp->info_3.min_frequency;
+				frequencies[2] = state->resp->info_3.max_frequency;
+			}
+			state->fifo_max_event_count = state->resp->info_3.fifo_max_event_count;
 		}
 		for (i = 0; i < ARRAY_SIZE(frequencies); i++) {
 			state->frequencies[2 * i] = frequencies[i] / 1000;
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c +4 -2
index 8c8d8870ca07..99562ba85ee4 100644
@@ -156,11 +156,13 @@ static const struct st_lsm6dsx_ext_dev_settings st_lsm6dsx_ext_dev_table[] = {
 static void st_lsm6dsx_shub_wait_complete(struct st_lsm6dsx_hw *hw)
 {
 	struct st_lsm6dsx_sensor *sensor;
-	u32 odr;
+	u32 odr, timeout;
 
 	sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
 	odr = (hw->enable_mask & BIT(ST_LSM6DSX_ID_ACC)) ? sensor->odr : 12500;
-	msleep((2000000U / odr) + 1);
+	/* set 10ms as minimum timeout for i2c slave configuration */
+	timeout = max_t(u32, 2000000U / odr + 1, 10);
+	msleep(timeout);
 }
 
 /*
drivers/iio/light/Kconfig +1 -0
index 182bd18c4bb2..7447791d9b24 100644
@@ -529,6 +529,7 @@ config VCNL4000
 
 config VCNL4035
 	tristate "VCNL4035 combined ALS and proximity sensor"
+	select IIO_BUFFER
 	select IIO_TRIGGERED_BUFFER
 	select REGMAP_I2C
 	depends on I2C
drivers/infiniband/Kconfig +3 -0
index 91b023341b77..58d1c91ffe51 100644
@@ -72,6 +72,9 @@ config INFINIBAND_ADDR_TRANS_CONFIGFS
 	  This allows the user to config the default GID type that the CM
 	  uses for each device, when initiaing new connections.
 
+config INFINIBAND_VIRT_DMA
+	def_bool !HIGHMEM
+
 if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
 source "drivers/infiniband/hw/mthca/Kconfig"
 source "drivers/infiniband/hw/qib/Kconfig"
drivers/infiniband/hw/hfi1/chip.c +2 -1
index 7eaf99538216..c87b94ea2939 100644
@@ -15245,7 +15245,8 @@ int hfi1_init_dd(struct hfi1_devdata *dd)
 		    & CCE_REVISION_SW_MASK);
 
 	/* alloc netdev data */
-	if (hfi1_netdev_alloc(dd))
+	ret = hfi1_netdev_alloc(dd);
+	if (ret)
 		goto bail_cleanup;
 
 	ret = set_up_context_variables(dd);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c +1 -1
index 780fd2dfc07e..10e67283b9db 100644
@@ -266,7 +266,7 @@ static int pvrdma_register_device(struct pvrdma_dev *dev)
 	}
 	ret = ib_device_set_netdev(&dev->ib_dev, dev->netdev, 1);
 	if (ret)
-		return ret;
+		goto err_srq_free;
 	spin_lock_init(&dev->srq_tbl_lock);
 	rdma_set_device_sysfs_group(&dev->ib_dev, &pvrdma_attr_group);
 
drivers/infiniband/sw/rdmavt/Kconfig +2 -1
index 9ef5f5ce1ff6..c8e268082952 100644
@@ -1,7 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config INFINIBAND_RDMAVT
 	tristate "RDMA verbs transport library"
-	depends on X86_64 && ARCH_DMA_ADDR_T_64BIT
+	depends on INFINIBAND_VIRT_DMA
+	depends on X86_64
 	depends on PCI
 	select DMA_VIRT_OPS
 	help
drivers/infiniband/sw/rxe/Kconfig +1 -1
index a0c6c7dfc181..8810bfa68049 100644
@@ -2,7 +2,7 @@
 config RDMA_RXE
 	tristate "Software RDMA over Ethernet (RoCE) driver"
 	depends on INET && PCI && INFINIBAND
-	depends on !64BIT || ARCH_DMA_ADDR_T_64BIT
+	depends on INFINIBAND_VIRT_DMA
 	select NET_UDP_TUNNEL
 	select CRYPTO_CRC32
 	select DMA_VIRT_OPS
drivers/infiniband/sw/siw/Kconfig +1 -0
index b622fc62f2cd..3450ba5081df 100644
@@ -1,6 +1,7 @@
 config RDMA_SIW
 	tristate "Software RDMA over TCP/IP (iWARP) driver"
 	depends on INET && INFINIBAND && LIBCRC32C
+	depends on INFINIBAND_VIRT_DMA
 	select DMA_VIRT_OPS
 	help
 	This driver implements the iWARP RDMA transport over
drivers/input/misc/adxl34x.c +1 -1
index 5fe92d4ba3f0..4cc4e8ff42b3 100644
@@ -696,7 +696,7 @@ struct adxl34x *adxl34x_probe(struct device *dev, int irq,
 	struct input_dev *input_dev;
 	const struct adxl34x_platform_data *pdata;
 	int err, range, i;
-	unsigned char revid;
+	int revid;
 
 	if (!irq) {
 		dev_err(dev, "no IRQ?\n");
drivers/input/mouse/elan_i2c.h +1 -1
index c75b00c45d75..36e3cd908671 100644
@@ -78,7 +78,7 @@ struct elan_transport_ops {
 	int (*iap_reset)(struct i2c_client *client);
 
 	int (*prepare_fw_update)(struct i2c_client *client, u16 ic_type,
-				 u8 iap_version);
+				 u8 iap_version, u16 fw_page_size);
 	int (*write_fw_block)(struct i2c_client *client, u16 fw_page_size,
 			      const u8 *page, u16 checksum, int idx);
 	int (*finish_fw_update)(struct i2c_client *client,
drivers/input/mouse/elan_i2c_core.c +2 -1
index c599e21a8478..61ed3f5ca219 100644
@@ -497,7 +497,8 @@ static int __elan_update_firmware(struct elan_tp_data *data,
 	u16 sw_checksum = 0, fw_checksum = 0;
 
 	error = data->ops->prepare_fw_update(client, data->ic_type,
-					     data->iap_version);
+					     data->iap_version,
+					     data->fw_page_size);
 	if (error)
 		return error;
 
drivers/input/mouse/elan_i2c_i2c.c +5 -5
index 5a496d4ffa49..13dc097eb6c6 100644
@@ -517,7 +517,7 @@ static int elan_i2c_set_flash_key(struct i2c_client *client)
 	return 0;
 }
 
-static int elan_read_write_iap_type(struct i2c_client *client)
+static int elan_read_write_iap_type(struct i2c_client *client, u16 fw_page_size)
 {
 	int error;
 	u16 constant;
@@ -526,7 +526,7 @@ static int elan_read_write_iap_type(struct i2c_client *client)
 
 	do {
 		error = elan_i2c_write_cmd(client, ETP_I2C_IAP_TYPE_CMD,
-					   ETP_I2C_IAP_TYPE_REG);
+					   fw_page_size / 2);
 		if (error) {
 			dev_err(&client->dev,
 				"cannot write iap type: %d\n", error);
@@ -543,7 +543,7 @@ static int elan_read_write_iap_type(struct i2c_client *client)
 		constant = le16_to_cpup((__le16 *)val);
 		dev_dbg(&client->dev, "iap type reg: 0x%04x\n", constant);
 
-		if (constant == ETP_I2C_IAP_TYPE_REG)
+		if (constant == fw_page_size / 2)
 			return 0;
 
 	} while (--retry > 0);
@@ -553,7 +553,7 @@ static int elan_read_write_iap_type(struct i2c_client *client)
 }
 
 static int elan_i2c_prepare_fw_update(struct i2c_client *client, u16 ic_type,
-				      u8 iap_version)
+				      u8 iap_version, u16 fw_page_size)
 {
 	struct device *dev = &client->dev;
 	int error;
@@ -594,7 +594,7 @@ static int elan_i2c_prepare_fw_update(struct i2c_client *client, u16 ic_type,
 	}
 
 	if (ic_type >= 0x0D && iap_version >= 1) {
-		error = elan_read_write_iap_type(client);
+		error = elan_read_write_iap_type(client, fw_page_size);
 		if (error)
 			return error;
 	}
drivers/input/mouse/elan_i2c_smbus.c +1 -1
index 8ff823751f3b..1820f1cfc1dc 100644
@@ -340,7 +340,7 @@ static int elan_smbus_set_flash_key(struct i2c_client *client)
 }
 
 static int elan_smbus_prepare_fw_update(struct i2c_client *client, u16 ic_type,
-					u8 iap_version)
+					u8 iap_version, u16 fw_page_size)
 {
 	struct device *dev = &client->dev;
 	int len;
drivers/input/touchscreen/Kconfig +1 -0
index 35c867b2d9a7..e6e043388a97 100644
@@ -96,6 +96,7 @@ config TOUCHSCREEN_AD7879_SPI
 config TOUCHSCREEN_ADC
 	tristate "Generic ADC based resistive touchscreen"
 	depends on IIO
+	select IIO_BUFFER
 	select IIO_BUFFER_CB
 	help
 	  Say Y here if you want to use the generic ADC
drivers/iommu/intel/iommu.c +3 -2
index e58be1fe7585..f67b7e6ddf1b 100644
@@ -179,7 +179,7 @@ static int rwbf_quirk;
  * (used when kernel is launched w/ TXT)
  */
 static int force_on = 0;
-int intel_iommu_tboot_noforce;
+static int intel_iommu_tboot_noforce;
 static int no_platform_optin;
 
 #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry))
@@ -4846,7 +4846,8 @@ int __init intel_iommu_init(void)
 	 * Intel IOMMU is required for a TXT/tboot launch or platform
 	 * opt in, so enforce that.
 	 */
-	force_on = tboot_force_iommu() || platform_optin_force_iommu();
+	force_on = (!intel_iommu_tboot_noforce && tboot_force_iommu()) ||
+		    platform_optin_force_iommu();
 
 	if (iommu_init_mempool()) {
 		if (force_on)
drivers/misc/habanalabs/include/gaudi/gaudi_masks.h +0 -1
index 3510c42d24e3..b734b650fccf 100644
@@ -452,7 +452,6 @@ enum axi_id {
 
 #define QM_ARB_ERR_MSG_EN_MASK		(\
 					QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
-					QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
 					QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
 
 #define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK                               0x1
drivers/mmc/host/sdhci-of-arasan.c +19 -32

102 lines not on this page · raw message

drivers/mmc/host/sdhci-pci-core.c +11 -2
index 23da7f7fe093..9552708846ca 100644
@@ -665,6 +665,15 @@ static void sdhci_intel_set_power(struct sdhci_host *host, unsigned char mode,
 	}
 }
 
+static void sdhci_intel_set_uhs_signaling(struct sdhci_host *host,
+					  unsigned int timing)
+{
+	/* Set UHS timing to SDR25 for High Speed mode */
+	if (timing == MMC_TIMING_MMC_HS || timing == MMC_TIMING_SD_HS)
+		timing = MMC_TIMING_UHS_SDR25;
+	sdhci_set_uhs_signaling(host, timing);
+}
+
 #define INTEL_HS400_ES_REG 0x78
 #define INTEL_HS400_ES_BIT BIT(0)
 
@@ -721,7 +730,7 @@ static const struct sdhci_ops sdhci_intel_byt_ops = {
 	.enable_dma		= sdhci_pci_enable_dma,
 	.set_bus_width		= sdhci_set_bus_width,
 	.reset			= sdhci_reset,
-	.set_uhs_signaling	= sdhci_set_uhs_signaling,
+	.set_uhs_signaling	= sdhci_intel_set_uhs_signaling,
 	.hw_reset		= sdhci_pci_hw_reset,
 };
 
@@ -731,7 +740,7 @@ static const struct sdhci_ops sdhci_intel_glk_ops = {
 	.enable_dma		= sdhci_pci_enable_dma,
 	.set_bus_width		= sdhci_set_bus_width,
 	.reset			= sdhci_cqhci_reset,
-	.set_uhs_signaling	= sdhci_set_uhs_signaling,
+	.set_uhs_signaling	= sdhci_intel_set_uhs_signaling,
 	.hw_reset		= sdhci_pci_hw_reset,
 	.irq			= sdhci_cqhci_irq,
 };
drivers/net/can/dev.c +1 -1
index d5e52ffc7ed2..4bc9aa6c3478 100644
@@ -566,7 +566,7 @@ static void can_restart(struct net_device *dev)
 
 	cf->can_id |= CAN_ERR_RESTARTED;
 
-	netif_rx(skb);
+	netif_rx_ni(skb);
 
 	stats->rx_packets++;
 	stats->rx_bytes += cf->can_dlc;
drivers/net/can/flexcan.c +15 -11
index a330d6c56242..4cbe8889f546 100644
@@ -614,8 +614,10 @@ static int flexcan_get_berr_counter(const struct net_device *dev,
 	int err;
 
 	err = pm_runtime_get_sync(priv->dev);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put_noidle(priv->dev);
 		return err;
+	}
 
 	err = __flexcan_get_berr_counter(dev, bec);
 
@@ -1227,14 +1229,10 @@ static int flexcan_chip_start(struct net_device *dev)
 		priv->write(reg_mecr, &regs->mecr);
 	}
 
-	err = flexcan_transceiver_enable(priv);
-	if (err)
-		goto out_chip_disable;
-
 	/* synchronize with the can bus */
 	err = flexcan_chip_unfreeze(priv);
 	if (err)
-		goto out_transceiver_disable;
+		goto out_chip_disable;
 
 	priv->can.state = CAN_STATE_ERROR_ACTIVE;
 
@@ -1252,8 +1250,6 @@ static int flexcan_chip_start(struct net_device *dev)
 
 	return 0;
 
- out_transceiver_disable:
-	flexcan_transceiver_disable(priv);
  out_chip_disable:
 	flexcan_chip_disable(priv);
 	return err;
@@ -1283,7 +1279,6 @@ static int __flexcan_chip_stop(struct net_device *dev, bool disable_on_error)
 	priv->write(priv->reg_ctrl_default & ~FLEXCAN_CTRL_ERR_ALL,
 		    &regs->ctrl);
 
-	flexcan_transceiver_disable(priv);
 	priv->can.state = CAN_STATE_STOPPED;
 
 	return 0;
@@ -1310,17 +1305,23 @@ static int flexcan_open(struct net_device *dev)
 	int err;
 
 	err = pm_runtime_get_sync(priv->dev);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put_noidle(priv->dev);
 		return err;
+	}
 
 	err = open_candev(dev);
 	if (err)
 		goto out_runtime_put;
 
-	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
+	err = flexcan_transceiver_enable(priv);
 	if (err)
 		goto out_close;
 
+	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
+	if (err)
+		goto out_transceiver_disable;
+
 	priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
 	priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
 			 (sizeof(priv->regs->mb[1]) / priv->mb_size);
@@ -1369,6 +1370,8 @@ static int flexcan_open(struct net_device *dev)
 	can_rx_offload_del(&priv->offload);
  out_free_irq:
 	free_irq(dev->irq, dev);
+ out_transceiver_disable:
+	flexcan_transceiver_disable(priv);
  out_close:
 	close_candev(dev);
  out_runtime_put:
@@ -1387,6 +1390,7 @@ static int flexcan_close(struct net_device *dev)
 
 	can_rx_offload_del(&priv->offload);
 	free_irq(dev->irq, dev);
+	flexcan_transceiver_disable(priv);
 
 	close_candev(dev);
 	pm_runtime_put(priv->dev);
drivers/net/can/kvaser_pciefd.c +2 -2
index 6f766918211a..72acd1ba162d 100644
@@ -287,12 +287,12 @@ struct kvaser_pciefd_tx_packet {
 static const struct can_bittiming_const kvaser_pciefd_bittiming_const = {
 	.name = KVASER_PCIEFD_DRV_NAME,
 	.tseg1_min = 1,
-	.tseg1_max = 255,
+	.tseg1_max = 512,
 	.tseg2_min = 1,
 	.tseg2_max = 32,
 	.sjw_max = 16,
 	.brp_min = 1,
-	.brp_max = 4096,
+	.brp_max = 8192,
 	.brp_inc = 1,
 };
 
drivers/net/can/m_can/Kconfig +2 -1
index d9216147ca93..3acedb766c48 100644
@@ -16,7 +16,8 @@ config CAN_M_CAN_PLATFORM
 
 config CAN_M_CAN_TCAN4X5X
 	depends on CAN_M_CAN
-	depends on REGMAP_SPI
+	depends on SPI
+	select REGMAP_SPI
 	tristate "TCAN4X5X M_CAN device"
 	help
 	  Say Y here if you want support for Texas Instruments TCAN4x5x
drivers/net/can/m_can/m_can.c +13 -5
index 02c5795b7393..f3fc37e96b08 100644
@@ -665,7 +665,7 @@ static int m_can_handle_state_change(struct net_device *dev,
 	unsigned int ecr;
 
 	switch (new_state) {
-	case CAN_STATE_ERROR_ACTIVE:
+	case CAN_STATE_ERROR_WARNING:
 		/* error warning state */
 		cdev->can.can_stats.error_warning++;
 		cdev->can.state = CAN_STATE_ERROR_WARNING;
@@ -694,7 +694,7 @@ static int m_can_handle_state_change(struct net_device *dev,
 	__m_can_get_berr_counter(dev, &bec);
 
 	switch (new_state) {
-	case CAN_STATE_ERROR_ACTIVE:
+	case CAN_STATE_ERROR_WARNING:
 		/* error warning state */
 		cf->can_id |= CAN_ERR_CRTL;
 		cf->data[1] = (bec.txerr > bec.rxerr) ?
@@ -956,6 +956,8 @@ static irqreturn_t m_can_isr(int irq, void *dev_id)
 	struct net_device_stats *stats = &dev->stats;
 	u32 ir;
 
+	if (pm_runtime_suspended(cdev->dev))
+		return IRQ_NONE;
 	ir = m_can_read(cdev, M_CAN_IR);
 	if (!ir)
 		return IRQ_NONE;
@@ -1414,6 +1416,9 @@ static void m_can_stop(struct net_device *dev)
 	/* disable all interrupts */
 	m_can_disable_all_interrupts(cdev);
 
+	/* Set init mode to disengage from the network */
+	m_can_config_endisable(cdev, true);
+
 	/* set the state as STOPPED */
 	cdev->can.state = CAN_STATE_STOPPED;
 }
@@ -1812,6 +1817,12 @@ struct m_can_classdev *m_can_class_allocate_dev(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(m_can_class_allocate_dev);
 
+void m_can_class_free_dev(struct net_device *net)
+{
+	free_candev(net);
+}
+EXPORT_SYMBOL_GPL(m_can_class_free_dev);
+
 int m_can_class_register(struct m_can_classdev *m_can_dev)
 {
 	int ret;
@@ -1850,7 +1861,6 @@ int m_can_class_register(struct m_can_classdev *m_can_dev)
 	if (ret) {
 		if (m_can_dev->pm_clock_support)
 			pm_runtime_disable(m_can_dev->dev);
-		free_candev(m_can_dev->net);
 	}
 
 	return ret;
@@ -1908,8 +1918,6 @@ void m_can_class_unregister(struct m_can_classdev *m_can_dev)
 	unregister_candev(m_can_dev->net);
 
 	m_can_clk_stop(m_can_dev);
-
-	free_candev(m_can_dev->net);
 }
 EXPORT_SYMBOL_GPL(m_can_class_unregister);
 
drivers/net/can/m_can/m_can.h +1 -0
index 49f42b50627a..b2699a7c9997 100644
@@ -99,6 +99,7 @@ struct m_can_classdev {
 };
 
 struct m_can_classdev *m_can_class_allocate_dev(struct device *dev);
+void m_can_class_free_dev(struct net_device *net);
 int m_can_class_register(struct m_can_classdev *cdev);
 void m_can_class_unregister(struct m_can_classdev *cdev);
 int m_can_class_get_clocks(struct m_can_classdev *cdev);
drivers/net/can/m_can/m_can_platform.c +15 -8
index e6d0cb9ee02f..161cb9be018c 100644
@@ -67,32 +67,36 @@ static int m_can_plat_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
+	if (!priv) {
+		ret = -ENOMEM;
+		goto probe_fail;
+	}
 
 	mcan_class->device_data = priv;
 
-	m_can_class_get_clocks(mcan_class);
+	ret = m_can_class_get_clocks(mcan_class);
+	if (ret)
+		goto probe_fail;
 
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "m_can");
 	addr = devm_ioremap_resource(&pdev->dev, res);
 	irq = platform_get_irq_byname(pdev, "int0");
 	if (IS_ERR(addr) || irq < 0) {
 		ret = -EINVAL;
-		goto failed_ret;
+		goto probe_fail;
 	}
 
 	/* message ram could be shared */
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "message_ram");
 	if (!res) {
 		ret = -ENODEV;
-		goto failed_ret;
+		goto probe_fail;
 	}
 
 	mram_addr = devm_ioremap(&pdev->dev, res->start, resource_size(res));
 	if (!mram_addr) {
 		ret = -ENOMEM;
-		goto failed_ret;
+		goto probe_fail;
 	}
 
 	priv->base = addr;
@@ -111,9 +115,10 @@ static int m_can_plat_probe(struct platform_device *pdev)
 
 	m_can_init_ram(mcan_class);
 
-	ret = m_can_class_register(mcan_class);
+	return m_can_class_register(mcan_class);
 
-failed_ret:
+probe_fail:
+	m_can_class_free_dev(mcan_class->net);
 	return ret;
 }
 
@@ -134,6 +139,8 @@ static int m_can_plat_remove(struct platform_device *pdev)
 
 	m_can_class_unregister(mcan_class);
 
+	m_can_class_free_dev(mcan_class->net);
+
 	platform_set_drvdata(pdev, NULL);
 
 	return 0;
drivers/net/can/m_can/tcan4x5x.c +23 -9
index eacd428e07e9..e5d7d85e0b6d 100644
@@ -440,14 +440,18 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
 		return -ENOMEM;
 
 	priv = devm_kzalloc(&spi->dev, sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
+	if (!priv) {
+		ret = -ENOMEM;
+		goto out_m_can_class_free_dev;
+	}
 
 	priv->power = devm_regulator_get_optional(&spi->dev, "vsup");
-	if (PTR_ERR(priv->power) == -EPROBE_DEFER)
-		return -EPROBE_DEFER;
-	else
+	if (PTR_ERR(priv->power) == -EPROBE_DEFER) {
+		ret = -EPROBE_DEFER;
+		goto out_m_can_class_free_dev;
+	} else {
 		priv->power = NULL;
+	}
 
 	mcan_class->device_data = priv;
 
@@ -460,8 +464,10 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
 	}
 
 	/* Sanity check */
-	if (freq < 20000000 || freq > TCAN4X5X_EXT_CLK_DEF)
-		return -ERANGE;
+	if (freq < 20000000 || freq > TCAN4X5X_EXT_CLK_DEF) {
+		ret = -ERANGE;
+		goto out_m_can_class_free_dev;
+	}
 
 	priv->reg_offset = TCAN4X5X_MCAN_OFFSET;
 	priv->mram_start = TCAN4X5X_MRAM_START;
@@ -487,6 +493,10 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
 
 	priv->regmap = devm_regmap_init(&spi->dev, &tcan4x5x_bus,
 					&spi->dev, &tcan4x5x_regmap);
+	if (IS_ERR(priv->regmap)) {
+		ret = PTR_ERR(priv->regmap);
+		goto out_clk;
+	}
 
 	ret = tcan4x5x_power_enable(priv->power, 1);
 	if (ret)
@@ -514,8 +524,10 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
 		clk_disable_unprepare(mcan_class->cclk);
 		clk_disable_unprepare(mcan_class->hclk);
 	}
-
+ out_m_can_class_free_dev:
+	m_can_class_free_dev(mcan_class->net);
 	dev_err(&spi->dev, "Probe failed, err=%d\n", ret);
+
 	return ret;
 }
 
@@ -523,9 +535,11 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
 {
 	struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
 
+	m_can_class_unregister(priv->mcan_dev);
+
 	tcan4x5x_power_enable(priv->power, 0);
 
-	m_can_class_unregister(priv->mcan_dev);
+	m_can_class_free_dev(priv->mcan_dev->net);
 
 	return 0;
 }
drivers/net/can/ti_hecc.c +8 -5
index 228ecd45ca6c..0e8b5df7e983 100644
@@ -887,7 +887,8 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	priv->base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->base)) {
 		dev_err(&pdev->dev, "hecc ioremap failed\n");
-		return PTR_ERR(priv->base);
+		err = PTR_ERR(priv->base);
+		goto probe_exit_candev;
 	}
 
 	/* handle hecc-ram memory */
@@ -900,7 +901,8 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	priv->hecc_ram = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->hecc_ram)) {
 		dev_err(&pdev->dev, "hecc-ram ioremap failed\n");
-		return PTR_ERR(priv->hecc_ram);
+		err = PTR_ERR(priv->hecc_ram);
+		goto probe_exit_candev;
 	}
 
 	/* handle mbx memory */
@@ -913,13 +915,14 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	priv->mbx = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->mbx)) {
 		dev_err(&pdev->dev, "mbx ioremap failed\n");
-		return PTR_ERR(priv->mbx);
+		err = PTR_ERR(priv->mbx);
+		goto probe_exit_candev;
 	}
 
 	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
 	if (!irq) {
 		dev_err(&pdev->dev, "No irq resource\n");
-		goto probe_exit;
+		goto probe_exit_candev;
 	}
 
 	priv->ndev = ndev;
@@ -983,7 +986,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	clk_put(priv->clk);
 probe_exit_candev:
 	free_candev(ndev);
-probe_exit:
+
 	return err;
 }
 
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +1 -1
index 7ab87a758754..218fadc91155 100644
@@ -367,7 +367,7 @@ static const struct can_bittiming_const kvaser_usb_hydra_kcan_bittiming_c = {
 	.tseg2_max = 32,
 	.sjw_max = 16,
 	.brp_min = 1,
-	.brp_max = 4096,
+	.brp_max = 8192,
 	.brp_inc = 1,
 };
 
drivers/net/can/usb/mcba_usb.c +2 -2
index 21faa2ec4632..8f785c199e22 100644
@@ -326,8 +326,6 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb,
 	if (!ctx)
 		return NETDEV_TX_BUSY;
 
-	can_put_echo_skb(skb, priv->netdev, ctx->ndx);
-
 	if (cf->can_id & CAN_EFF_FLAG) {
 		/* SIDH    | SIDL                 | EIDH   | EIDL
 		 * 28 - 21 | 20 19 18 x x x 17 16 | 15 - 8 | 7 - 0
@@ -357,6 +355,8 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb,
 	if (cf->can_id & CAN_RTR_FLAG)
 		usb_msg.dlc |= MCBA_DLC_RTR_MASK;
 
+	can_put_echo_skb(skb, priv->netdev, ctx->ndx);
+
 	err = mcba_usb_xmit(priv, (struct mcba_usb_msg *)&usb_msg, ctx);
 	if (err)
 		goto xmit_failed;
drivers/net/can/usb/peak_usb/pcan_usb_core.c +2 -2
index c2764799f9ef..204ccb27d6d9 100644
@@ -156,7 +156,7 @@ void peak_usb_get_ts_time(struct peak_time_ref *time_ref, u32 ts, ktime_t *time)
 		if (time_ref->ts_dev_1 < time_ref->ts_dev_2) {
 			/* case when event time (tsw) wraps */
 			if (ts < time_ref->ts_dev_1)
-				delta_ts = 1 << time_ref->adapter->ts_used_bits;
+				delta_ts = BIT_ULL(time_ref->adapter->ts_used_bits);
 
 		/* Otherwise, sync time counter (ts_dev_2) has wrapped:
 		 * handle case when event time (tsn) hasn't.
@@ -168,7 +168,7 @@ void peak_usb_get_ts_time(struct peak_time_ref *time_ref, u32 ts, ktime_t *time)
 		 *              tsn            ts
 		 */
 		} else if (time_ref->ts_dev_1 < ts) {
-			delta_ts = -(1 << time_ref->adapter->ts_used_bits);
+			delta_ts = -BIT_ULL(time_ref->adapter->ts_used_bits);
 		}
 
 		/* add delay between last sync and event timestamps */
drivers/net/dsa/lantiq_gswip.c +11 -0
index 521ebc072903..2cf4ca2e43e2 100644
@@ -26,6 +26,7 @@
  */
 
 #include <linux/clk.h>
+#include <linux/delay.h>
 #include <linux/etherdevice.h>
 #include <linux/firmware.h>
 #include <linux/if_bridge.h>
@@ -1821,6 +1822,16 @@ static int gswip_gphy_fw_list(struct gswip_priv *priv,
 		i++;
 	}
 
+	/* The standalone PHY11G requires 300ms to be fully
+	 * initialized and ready for any MDIO communication after being
+	 * taken out of reset. For the SoC-internal GPHY variant there
+	 * is no (known) documentation for the minimum time after a
+	 * reset. Use the same value as for the standalone variant as
+	 * some users have reported internal PHYs not being detected
+	 * without any delay.
+	 */
+	msleep(300);
+
 	return 0;
 
 remove_gphy:
drivers/net/dsa/mv88e6xxx/global1_vtu.c +49 -10

94 lines not on this page · raw message

drivers/net/ethernet/broadcom/b44.c +2 -1
index 6fb620e25208..c6becf6cf3f3 100644
@@ -2383,7 +2383,8 @@ static int b44_init_one(struct ssb_device *sdev,
 		goto err_out_free_dev;
 	}
 
-	if (dma_set_mask_and_coherent(sdev->dma_dev, DMA_BIT_MASK(30))) {
+	err = dma_set_mask_and_coherent(sdev->dma_dev, DMA_BIT_MASK(30));
+	if (err) {
 		dev_err(sdev->dev,
 			"Required 30BIT DMA mask unsupported by the system\n");
 		goto err_out_powerdown;
drivers/net/ethernet/broadcom/bnxt/bnxt.c +3 -1
index b8d534b719d4..2326571e8c84 100644
@@ -4045,7 +4045,8 @@ static void bnxt_free_mem(struct bnxt *bp, bool irq_re_init)
 	bnxt_free_ntp_fltrs(bp, irq_re_init);
 	if (irq_re_init) {
 		bnxt_free_ring_stats(bp);
-		if (!(bp->fw_cap & BNXT_FW_CAP_PORT_STATS_NO_RESET))
+		if (!(bp->fw_cap & BNXT_FW_CAP_PORT_STATS_NO_RESET) ||
+		    test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
 			bnxt_free_port_stats(bp);
 		bnxt_free_ring_grps(bp);
 		bnxt_free_vnics(bp);
@@ -7617,6 +7618,7 @@ static void bnxt_add_one_ctr(u64 hw, u64 *sw, u64 mask)
 {
 	u64 sw_tmp;
 
+	hw &= mask;
 	sw_tmp = (*sw & ~mask) | hw;
 	if (hw < (*sw & mask))
 		sw_tmp += mask + 1;
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -1
index fecdfd875af1..cba41ffd3994 100644
@@ -2742,7 +2742,7 @@ static int bnxt_get_module_eeprom(struct net_device *dev,
 	/* Read A2 portion of the EEPROM */
 	if (length) {
 		start -= ETH_MODULE_SFF_8436_LEN;
-		rc = bnxt_read_sfp_module_eeprom_info(bp, I2C_DEV_ADDR_A2, 1,
+		rc = bnxt_read_sfp_module_eeprom_info(bp, I2C_DEV_ADDR_A2, 0,
 						      start, length, data);
 	}
 	return rc;
drivers/net/ethernet/faraday/ftgmac100.c +4 -0
index 00024dd41147..80fb1f537bb3 100644
@@ -1907,6 +1907,8 @@ static int ftgmac100_probe(struct platform_device *pdev)
 	clk_disable_unprepare(priv->rclk);
 	clk_disable_unprepare(priv->clk);
 err_ncsi_dev:
+	if (priv->ndev)
+		ncsi_unregister_dev(priv->ndev);
 	ftgmac100_destroy_mdio(netdev);
 err_setup_mdio:
 	iounmap(priv->base);
@@ -1926,6 +1928,8 @@ static int ftgmac100_remove(struct platform_device *pdev)
 	netdev = platform_get_drvdata(pdev);
 	priv = netdev_priv(netdev);
 
+	if (priv->ndev)
+		ncsi_unregister_dev(priv->ndev);
 	unregister_netdev(netdev);
 
 	clk_disable_unprepare(priv->rclk);
drivers/net/ethernet/freescale/enetc/Kconfig +1 -0
index 37b804f8bd76..e53a7b0a7c51 100644
@@ -15,6 +15,7 @@ config FSL_ENETC
 config FSL_ENETC_VF
 	tristate "ENETC VF driver"
 	depends on PCI && PCI_MSI
+	select FSL_ENETC_MDIO
 	select PHYLIB
 	select DIMLIB
 	help
drivers/net/ethernet/freescale/enetc/enetc.c +45 -17

115 lines not on this page · raw message

drivers/net/ethernet/freescale/enetc/enetc_hw.h +109 -6

115 lines not on this page · raw message

drivers/net/ethernet/freescale/enetc/enetc_mdio.c +6 -2
index 48c32a171afa..ee0116ed4738 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/fec_main.c +5 -7
index c7d2c01023f8..44b3f4c6e7a8 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/mvneta.c +3 -2
index 5bf0409f5d42..8e924ab69697 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mediatek/mtk_star_emac.c +2 -1
index 13250553263b..a8641a407c06 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx4/fw.c +3 -3
index f6ff9620a137..f6cfec81ccc3 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx4/fw.h +2 -2
index 650ae08c71de..8f020f26ebf5 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c +1 -1
index 3e44e4d820c5..95f2b26a3ee3 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +8 -5
index 979ff5658a3f..4245259241f4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +13 -7
index e8e6294c7cca..d4ee0a9c03db 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +7 -0
index d4755d61dd74..9d08a069c88e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/core.c +2 -1
index 05e90ef15871..5dab77ebd73e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/microchip/lan743x_main.c +7 -6
index bc368136bccc..87b6c59a1e03 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qed/qed_cxt.c +2 -2
index 0e4cd8890cff..0a22f8ce9a2c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qed/qed_cxt.h +0 -3
index 8b64495f8745..056e79620a0e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qed/qed_iwarp.c +9 -3
index 512cbef24097..a99861124630 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c +2 -1
index 0e2f2fb6c3a9..99ed9dc71a12 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +5 -0
index 29a7bfa2584d..3d7d3ab383f8 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +2 -0
index 122a0697229a..aa51d16965fe 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/am65-cpts.c +1 -2
index c59a289e428c..3a39d781de29 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/cpsw.c +7 -4
index 4a65edc5a375..5cdbc7e681b1 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/cpsw_new.c +6 -3
index 15672d0a4de6..5771e9f9d6b5 100644

Lines of this file are not shown. View the raw message.

drivers/net/geneve.c +1 -2
index 974a244f45ba..67c86ebfa7da 100644

Lines of this file are not shown. View the raw message.

drivers/net/ipa/gsi_trans.c +12 -3
index 41e9af35a582..c7dafd126e40 100644

Lines of this file are not shown. View the raw message.

drivers/net/netdevsim/dev.c +2 -0
index 32f339fedb21..1ae83ea4adbe 100644

Lines of this file are not shown. View the raw message.

drivers/net/netdevsim/health.c +1 -0
index 62958b238d50..21e2974660e7 100644

Lines of this file are not shown. View the raw message.

drivers/net/netdevsim/udp_tunnels.c +1 -0
index 22c06a76033c..2482b0f80b2f 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/mscc/mscc_macsec.c +0 -1
index 1d4c012194e9..72292bf6c51c 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/qmi_wwan.c +1 -1
index 3db5b5d10479..914b7150ec80 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-mcp23s08_spi.c +2 -0
index 7c72cffe1412..9ae10318f6f3 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-rockchip.c +2 -0
index 0401c1da79dd..7b398ed2113e 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/core.c +22 -16
index 79317d6bf851..3b329b5ed9b2 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/pfuze100-regulator.c +8 -5
index 7e8ba9246167..01a12cfcea7c 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/ti-abb-regulator.c +11 -1
index af9abcd9c166..16501ce0f56f 100644

Lines of this file are not shown. View the raw message.

drivers/s390/block/dasd.c +6 -0
index eb17fea8075c..217a7b84abdf 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd.c +27 -5
index 316b861305ea..54928a837dad 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd.h +2 -0
index 363589c0bd37..23f46c7b8cb2 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-bcm2835aux.c +7 -14
index 03b034c15d2b..fd58547110e6 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-cadence-quadspi.c +2 -0
index c6795c684b16..9f8cae7a35bb 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-fsl-lpspi.c +0 -3
index 85a5c952389a..cd23f269f576 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-npcm-fiu.c +1 -1
index 9468e71f03ad..e157ec59ee32 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi.c +63 -18

81 lines not on this page · raw message

drivers/staging/mt7621-pci/pci-mt7621.c +3 -12
index f961b353c22e..8831db383fad 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8723bs/os_dep/sdio_intf.c +1 -0
index 5b1392deb0a7..7256d55fcc1b 100644

Lines of this file are not shown. View the raw message.

drivers/tee/amdtee/amdtee_private.h +4 -4
index d7f798c3394b..337c8d82f74e 100644

Lines of this file are not shown. View the raw message.

drivers/tee/amdtee/core.c +19 -7
index 27b4cd77d0db..8a6a8f30bb42 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/ar933x_uart.c +4 -2
index 0c80a79d7442..c2be7cf91399 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/imx.c +11 -19
index ce8c472cf385..dadf2b860e01 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc2/platform.c +3 -0
index b28e90e0b685..8a7f86e1ef73 100644

Lines of this file are not shown. View the raw message.

fs/afs/dir.c +1 -0
index 1bb5b9d7f0a2..9068d5578a26 100644

Lines of this file are not shown. View the raw message.

fs/afs/inode.c +8 -0
index 0fe8844b4bee..b0d7b892090d 100644

Lines of this file are not shown. View the raw message.

fs/afs/internal.h +1 -0
index 17336cbb8419..932f501888e7 100644

Lines of this file are not shown. View the raw message.

fs/efivarfs/super.c +1 -0
index 15880a68faad..f943fd0b0699 100644

Lines of this file are not shown. View the raw message.

fs/ext4/ext4.h +2 -1
index 69187b6205b2..f7c68011e904 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/aops.c +1 -1
index d4af283fc888..317a47d49442 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/glops.c +12 -1
index c2c90747d79b..aeda8eda8458 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/log.c +2 -0
index 93032feb5159..1ceeec0ffb16 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/rgrp.c +5 -5
index ac306895bbbc..d035309cedd0 100644

Lines of this file are not shown. View the raw message.

fs/io_uring.c +0 -1
index 352bd3ad446b..e74a56f6915c 100644

Lines of this file are not shown. View the raw message.

fs/libfs.c +4 -2
index e0d42e977d9a..7bf691979a58 100644

Lines of this file are not shown. View the raw message.

fs/notify/fsnotify.c +7 -5
index a960ec3a569a..8d3ad5ef2925 100644

Lines of this file are not shown. View the raw message.

fs/super.c +4 -29
index 904459b35119..3a0777612c49 100644

Lines of this file are not shown. View the raw message.

fs/xfs/libxfs/xfs_attr_leaf.c +7 -1
index 305d4bc07337..e4c73019f0de 100644

Lines of this file are not shown. View the raw message.

fs/xfs/libxfs/xfs_rmap_btree.c +8 -8
index 577a66381327..beb81c84a937 100644

Lines of this file are not shown. View the raw message.

fs/xfs/scrub/bmap.c +4 -4
index 412e2ec55e38..fed56d213a3f 100644

Lines of this file are not shown. View the raw message.

fs/xfs/scrub/btree.c +27 -18

45 lines not on this page · raw message

fs/xfs/scrub/dir.c +17 -4
index 7c432997edad..b045e95c2ea7 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_iwalk.c +24 -3
index 233dcc8784db..2a45138831e3 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_mount.c +8 -3
index c8ae49a1e99c..2a491a043ec9 100644

Lines of this file are not shown. View the raw message.

include/drm/intel-gtt.h +1 -4
index 71d81923e6b0..abfefaaf897a 100644

Lines of this file are not shown. View the raw message.

include/linux/intel-iommu.h +1 -1
index b1ed2f25f7c0..bdf80d7a70fb 100644

Lines of this file are not shown. View the raw message.

include/linux/pagemap.h +2 -0
index 434c9c34aeb6..f2b142f33aef 100644

Lines of this file are not shown. View the raw message.

include/linux/pm_runtime.h +21 -0
index 940f136d8852..cfb329c828e8 100644

Lines of this file are not shown. View the raw message.

include/linux/sched.h +15 -1
index 8bf2295ebee4..12aa57de8eea 100644

Lines of this file are not shown. View the raw message.

include/linux/spi/spi.h +19 -0
index 99380c0825db..b390fdac1587 100644

Lines of this file are not shown. View the raw message.

include/linux/swiotlb.h +1 -0
index 046bb94bd4d6..fa5122c6711e 100644

Lines of this file are not shown. View the raw message.

include/net/ip_tunnels.h +4 -3
index 02ccd32542d0..61620677b034 100644

Lines of this file are not shown. View the raw message.

include/net/neighbour.h +1 -0
index 81ee17594c32..22ced1381ede 100644

Lines of this file are not shown. View the raw message.

include/net/tls.h +15 -1
index e5dac7e74e79..a12146139c71 100644

Lines of this file are not shown. View the raw message.

include/trace/events/sunrpc.h +2 -1
index ca2f27b9f919..1652cc32aebc 100644

Lines of this file are not shown. View the raw message.

kernel/fail_function.c +3 -2
index 63b349168da7..b0b1ad93fa95 100644

Lines of this file are not shown. View the raw message.

kernel/ptrace.c +5 -11
index 43d6179508d6..79de1294f8eb 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree.c +1 -1
index c8f62e2d0276..b4924fefe274 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree_stall.h +17 -5
index b5d3b4794db4..e3c0f6fb5806 100644

Lines of this file are not shown. View the raw message.

kernel/sched/core.c +10 -5
index b1e0da56abca..c4da7e17b906 100644

Lines of this file are not shown. View the raw message.

kernel/sched/fair.c +2 -1
index 48a6d442b444..c0c4d9ad7da8 100644

Lines of this file are not shown. View the raw message.

kernel/seccomp.c +2 -3
index c359ef4380ad..851c888dd9b5 100644

Lines of this file are not shown. View the raw message.

kernel/trace/bpf_trace.c +10 -0
index a8d4f253ed77..f236927ed211 100644

Lines of this file are not shown. View the raw message.

lib/strncpy_from_user.c +17 -2
index 34696a348864..2eaed320a4db 100644

Lines of this file are not shown. View the raw message.

mm/filemap.c +14 -4
index 407b94d8ce00..6024d15998a4 100644

Lines of this file are not shown. View the raw message.

mm/huge_memory.c +4 -5
index 18a6f8c8b284..17fc6829c7b9 100644

Lines of this file are not shown. View the raw message.

mm/memcontrol.c +7 -2
index 51ce5d172855..775283b8c510 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +5 -0
index 3fb35fe6a9e4..8a86bb70b343 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_device.c +1 -0
index 9a2fb4aa1a10..050fa0b6415d 100644

Lines of this file are not shown. View the raw message.

net/can/af_can.c +28 -10
index 5c06404bdf3e..0e71e0164ab3 100644

Lines of this file are not shown. View the raw message.

net/core/devlink.c +4 -2
index 9a8abc30659c..55dd9546b183 100644

Lines of this file are not shown. View the raw message.

net/core/neighbour.c +2 -0
index 8e39e28b0a8d..9500d28a43b0 100644

Lines of this file are not shown. View the raw message.

net/core/netpoll.c +18 -4
index 2338753e936b..fb74e26b682f 100644

Lines of this file are not shown. View the raw message.

net/core/skmsg.c +75 -19

94 lines not on this page · raw message

net/ipv4/arp.c +6 -0
index 687971d83b4e..922dd73e5740 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_diag.c +3 -1
index f1bd95f243b3..b0f583f261bb 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_bbr.c +1 -1
index 6c4d79baff26..6ea3dc2e4219 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_bpf.c +11 -7
index 7aa68f4aae6c..24e1be45d4cd 100644

Lines of this file are not shown. View the raw message.

net/ipv6/addrconf.c +6 -2
index 01146b66d666..8b6eb384bac7 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ah6.c +2 -1
index d88d97617f7e..440080da805b 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ndisc.c +7 -0
index 27f29b957ee7..76717478f173 100644

Lines of this file are not shown. View the raw message.

net/mac80211/rc80211_minstrel.c +5 -22
index 86bc469a28bc..b13b1da19386 100644

Lines of this file are not shown. View the raw message.

net/mac80211/rc80211_minstrel.h +0 -1
index dbb43bcd3c45..86cd80b3ffde 100644

Lines of this file are not shown. View the raw message.

net/mac80211/sta_info.c +4 -10
index 4fe284ff1ea3..ec6973ee88ef 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-manage.c +0 -5
index f1be3e3f6425..a9cb355324d1 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-netlink.c +3 -19
index 8b386d766e7d..a33ea45dec05 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-netlink.h +0 -3
index 7502723fba83..39a1a9d7bf77 100644

Lines of this file are not shown. View the raw message.

net/netlabel/netlabel_unlabeled.c +12 -5
index 77bb1bb22c3b..1ede0103b748 100644

Lines of this file are not shown. View the raw message.

net/rfkill/core.c +3 -0
index 971c73c7d34c..97101c55763d 100644

Lines of this file are not shown. View the raw message.

net/sctp/input.c +2 -2
index 55d4fc6f371d..d508f6f3dd08 100644

Lines of this file are not shown. View the raw message.

net/sctp/sm_sideeffect.c +2 -2
index 813d30767204..0948f14ce221 100644

Lines of this file are not shown. View the raw message.

net/sctp/transport.c +1 -1
index 806af58f4375..60fcf31cdcfb 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_ib.c +3 -3
index 1c314dbdc7fa..fc766b537ac7 100644

Lines of this file are not shown. View the raw message.

net/tls/tls_device.c +27 -10
index cec86229a6a0..54d3e161d198 100644

Lines of this file are not shown. View the raw message.

net/tls/tls_sw.c +1 -1
index 95ab5545a931..2fe9e2cf8659 100644

Lines of this file are not shown. View the raw message.

net/vmw_vsock/af_vsock.c +1 -1
index b4d7b8aba003..d10916ab4526 100644

Lines of this file are not shown. View the raw message.

net/x25/af_x25.c +1 -0
index 046d3fee66a9..a10487e7574c 100644

Lines of this file are not shown. View the raw message.

sound/core/control.c +1 -1
index aa0c0cf182af..6e1255e984d2 100644

Lines of this file are not shown. View the raw message.

sound/firewire/fireworks/fireworks_transaction.c +2 -2
index 0f533f5bd960..9f8c53b39f95 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +84 -1

85 lines not on this page · raw message

sound/pci/mixart/mixart_core.c +2 -3
index 0bdd33b0af65..fb8895af0363 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c +2 -0
index 922cd0176e1f..f95546c184aa 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/keembay/kmb_platform.c +3 -3
index 16f9fc4c663d..49079da5c406 100644

Lines of this file are not shown. View the raw message.

sound/soc/qcom/lpass-platform.c +4 -1
index e62ac7e65078..a1cabcd267b8 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks.c +5 -5
index fd1dbe9acd74..8ad15396033c 100644

Lines of this file are not shown. View the raw message.

tools/bpf/bpftool/feature.c +6 -1
index a43a6f10b564..359960a8f1de 100644

Lines of this file are not shown. View the raw message.

tools/bpf/bpftool/net.c +9 -9
index 56c3a2bae3ef..029c8188a2f9 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/Makefile +2 -0
index 9ae8f4ef0aac..8bf2c406b0e0 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-lock.c +2 -2
index f0a1dbacb46c..a2f1e53f37a7 100644

Lines of this file are not shown. View the raw message.

tools/testing/kunit/.gitattributes deleted +0 -1
deleted file mode 100644
index 5b7da1fc3b8f..000000000000

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/sockopt_multi.c +2 -1
index 29188d6f5c8d..51fac975b316 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/kvm/include/x86_64/processor.h +1 -1
index 82b7fe16a824..0a65e7bb5249 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/kvm/lib/x86_64/processor.c +2 -1
index f6eb34eaa0d2..1ccf6c9b3476 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/seccomp/seccomp_bpf.c +4 -4
index 9a9eb02539fb..687ca8afe0e8 100644

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.