Skip to contentSkip to conversation

Linux 5.4.148

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 22, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.148 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/admin-guide/devices.txt                      |    6 
 Documentation/devicetree/bindings/arm/tegra.yaml           |    2 
 Documentation/devicetree/bindings/mtd/gpmc-nand.txt        |    2 
 Makefile                                                   |    2 
 arch/arc/mm/cache.c                                        |    2 
 arch/arm/boot/compressed/Makefile                          |    2 
 arch/arm/boot/dts/imx53-ppd.dts                            |   23 +-
 arch/arm/boot/dts/qcom-apq8064.dtsi                        |    6 
 arch/arm/boot/dts/tegra20-tamonten.dtsi                    |   14 -
 arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts         |    8 
 arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts          |    7 
 arch/arm64/boot/dts/nvidia/tegra132.dtsi                   |    4 
 arch/arm64/boot/dts/nvidia/tegra194.dtsi                   |    6 
 arch/arm64/boot/dts/qcom/ipq8074-hk01.dts                  |    2 
 arch/arm64/include/asm/kernel-pgtable.h                    |    4 
 arch/arm64/kernel/fpsimd.c                                 |    2 
 arch/arm64/kernel/head.S                                   |   11 -
 arch/m68k/Kconfig.bus                                      |    2 
 arch/mips/mti-malta/malta-dtshim.c                         |    2 
 arch/openrisc/kernel/entry.S                               |    2 
 arch/parisc/kernel/signal.c                                |    6 
 arch/powerpc/configs/mpc885_ads_defconfig                  |    1 
 arch/powerpc/include/asm/pmc.h                             |    7 
 arch/powerpc/kernel/stacktrace.c                           |    1 
 arch/powerpc/kvm/book3s_64_vio_hv.c                        |    9 -
 arch/powerpc/kvm/book3s_hv.c                               |   20 ++
 arch/powerpc/kvm/book3s_hv_rmhandlers.S                    |   36 ++++
 arch/powerpc/perf/hv-gpci.c                                |    2 
 arch/s390/include/asm/setup.h                              |    2 
 arch/s390/kernel/early.c                                   |    4 
 arch/s390/kernel/jump_label.c                              |    2 
 arch/s390/mm/init.c                                        |    2 
 arch/s390/net/bpf_jit_comp.c                               |   67 ++++----
 arch/s390/pci/pci.c                                        |    5 
 arch/x86/mm/init_64.c                                      |    6 
 arch/x86/xen/enlighten_pv.c                                |    7 
 arch/x86/xen/p2m.c                                         |    4 
 arch/xtensa/platforms/iss/console.c                        |   17 +-
 block/bfq-iosched.c                                        |   18 +-
 block/blk-zoned.c                                          |    6 
 block/bsg.c                                                |    5 
 drivers/ata/libata-core.c                                  |    4 
 drivers/ata/sata_dwc_460ex.c                               |   12 -
 drivers/base/power/trace.c                                 |   10 +
 drivers/clk/at91/clk-generated.c                           |   32 ++-
 drivers/clk/at91/dt-compat.c                               |    8 
 drivers/clk/at91/pmc.h                                     |    4 
 drivers/clk/at91/sam9x60.c                                 |   10 -
 drivers/clk/at91/sama5d2.c                                 |   31 +--
 drivers/cpufreq/powernv-cpufreq.c                          |   16 +
 drivers/crypto/mxs-dcp.c                                   |   36 +---
 drivers/dma/imx-sdma.c                                     |   13 -
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                        |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c                    |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c                 |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c             |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c               |   84 +++++++---
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h               |    1 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c  |   16 -
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c  |   11 -
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c      |    2 
 drivers/gpu/drm/drm_debugfs.c                              |    3 
 drivers/gpu/drm/etnaviv/etnaviv_buffer.c                   |    3 
 drivers/gpu/drm/etnaviv/etnaviv_gem.c                      |    3 
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c               |    3 
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c                      |   43 +++--
 drivers/gpu/drm/etnaviv/etnaviv_gpu.h                      |    1 
 drivers/gpu/drm/etnaviv/etnaviv_iommu.c                    |    4 
 drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c                 |    8 
 drivers/gpu/drm/etnaviv/etnaviv_mmu.c                      |    1 
 drivers/gpu/drm/etnaviv/etnaviv_mmu.h                      |    4 
 drivers/gpu/drm/exynos/exynos_drm_dma.c                    |    2 
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c                   |   17 --
 drivers/gpu/drm/panfrost/panfrost_mmu.c                    |   31 +--
 drivers/gpu/drm/panfrost/panfrost_regs.h                   |    2 
 drivers/hid/hid-input.c                                    |    2 
 drivers/hid/i2c-hid/i2c-hid-core.c                         |    5 
 drivers/iio/dac/ad5624r_spi.c                              |   18 ++
 drivers/infiniband/core/iwcm.c                             |   19 +-
 drivers/infiniband/hw/efa/efa_verbs.c                      |    1 
 drivers/infiniband/hw/hfi1/init.c                          |    7 
 drivers/md/dm-crypt.c                                      |    7 
 drivers/media/dvb-frontends/dib8000.c                      |   58 ++++--
 drivers/media/i2c/imx258.c                                 |    4 
 drivers/media/i2c/tda1997x.c                               |    5 
 drivers/media/platform/tegra-cec/tegra_cec.c               |   10 -
 drivers/media/rc/rc-loopback.c                             |    2 
 drivers/media/usb/uvc/uvc_v4l2.c                           |   34 ++--
 drivers/media/v4l2-core/v4l2-dv-timings.c                  |    4 
 drivers/mfd/ab8500-core.c                                  |    2 
 drivers/mfd/axp20x.c                                       |    3 
 drivers/mfd/db8500-prcmu.c                                 |   14 -
 drivers/mfd/stmpe.c                                        |    4 
 drivers/mfd/tc3589x.c                                      |    2 
 drivers/mfd/tqmx86.c                                       |    2 
 drivers/mfd/wm8994-irq.c                                   |    2 
 drivers/misc/vmw_vmci/vmci_queue_pair.c                    |    6 
 drivers/mmc/core/block.c                                   |    3 
 drivers/mmc/host/rtsx_pci_sdmmc.c                          |   36 ++--
 drivers/mmc/host/sdhci-of-arasan.c                         |   18 +-
 drivers/mtd/nand/raw/cafe_nand.c                           |    4 
 drivers/net/bonding/bond_main.c                            |    3 
 drivers/net/dsa/b53/b53_common.c                           |    3 
 drivers/net/dsa/lantiq_gswip.c                             |    3 
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c          |    2 
 drivers/net/ethernet/chelsio/cxgb/cxgb2.c                  |    1 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c            |    8 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |   19 +-
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |    6 
 drivers/net/ethernet/ibm/ibmvnic.c                         |    8 
 drivers/net/ethernet/intel/iavf/iavf_main.c                |   58 ++++++
 drivers/net/ethernet/intel/igc/igc_main.c                  |    9 -
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c              |    8 
 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c   |    3 
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c          |    5 
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c |    1 
 drivers/net/ethernet/qlogic/qed/qed_mcp.c                  |    6 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c           |    1 
 drivers/net/ethernet/rdc/r6040.c                           |    9 -
 drivers/net/ethernet/renesas/sh_eth.c                      |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c        |   18 --
 drivers/net/ethernet/wiznet/w5100.c                        |    2 
 drivers/net/phy/dp83640_reg.h                              |    2 
 drivers/net/usb/cdc_mbim.c                                 |    5 
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c             |    3 
 drivers/net/wireless/ath/ath9k/hw.c                        |   12 -
 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c          |    4 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c          |    8 
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c               |   24 ++
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c               |   30 ++-
 drivers/ntb/test/ntb_msi_test.c                            |    4 
 drivers/ntb/test/ntb_perf.c                                |    1 
 drivers/nvme/host/tcp.c                                    |   14 -
 drivers/of/kobj.c                                          |    2 
 drivers/opp/of.c                                           |   12 -
 drivers/parport/ieee1284_ops.c                             |    2 
 drivers/pci/controller/pci-aardvark.c                      |   73 +++++++-
 drivers/pci/controller/pcie-xilinx-nwl.c                   |   12 +
 drivers/pci/hotplug/TODO                                   |    3 
 drivers/pci/hotplug/ibmphp_ebda.c                          |    5 
 drivers/pci/msi.c                                          |    3 
 drivers/pci/pci.c                                          |    8 
 drivers/pci/pcie/portdrv_core.c                            |    9 -
 drivers/pci/quirks.c                                       |   59 ++++++-
 drivers/pci/syscall.c                                      |    4 
 drivers/pinctrl/pinctrl-ingenic.c                          |    6 
 drivers/pinctrl/pinctrl-single.c                           |    1 
 drivers/pinctrl/pinctrl-stmfx.c                            |    6 
 drivers/pinctrl/samsung/pinctrl-samsung.c                  |    2 
 drivers/platform/chrome/cros_ec_proto.c                    |    9 +
 drivers/platform/x86/dell-smbios-wmi.c                     |    1 
 drivers/power/supply/max17042_battery.c                    |    6 
 drivers/rtc/rtc-tps65910.c                                 |    2 
 drivers/s390/char/sclp_early.c                             |    3 
 drivers/scsi/BusLogic.c                                    |    4 
 drivers/scsi/pcmcia/fdomain_cs.c                           |    4 
 drivers/scsi/qedf/qedf_main.c                              |   10 -
 drivers/scsi/qedi/qedi_main.c                              |   14 -
 drivers/scsi/qla2xxx/qla_nvme.c                            |    5 
 drivers/scsi/qla2xxx/qla_os.c                              |    6 
 drivers/scsi/smartpqi/smartpqi_init.c                      |    1 
 drivers/soc/aspeed/aspeed-lpc-ctrl.c                       |    2 
 drivers/soc/aspeed/aspeed-p2a-ctrl.c                       |    2 
 drivers/soc/qcom/qcom_aoss.c                               |    8 
 drivers/staging/board/board.c                              |    7 
 drivers/staging/ks7010/ks7010_sdio.c                       |    2 
 drivers/staging/rts5208/rtsx_scsi.c                        |   10 -
 drivers/target/target_core_xcopy.c                         |   96 +++--------
 drivers/target/target_core_xcopy.h                         |    1 
 drivers/tty/hvc/hvsi.c                                     |   19 +-
 drivers/tty/serial/8250/8250_pci.c                         |    2 
 drivers/tty/serial/8250/8250_port.c                        |    3 
 drivers/tty/serial/jsm/jsm_neo.c                           |    2 
 drivers/tty/serial/jsm/jsm_tty.c                           |    3 
 drivers/tty/serial/sh-sci.c                                |    7 
 drivers/usb/chipidea/host.c                                |   14 +
 drivers/usb/gadget/composite.c                             |    8 
 drivers/usb/gadget/function/u_ether.c                      |    5 
 drivers/usb/host/ehci-mv.c                                 |   23 +-
 drivers/usb/host/fotg210-hcd.c                             |   41 ++--
 drivers/usb/host/fotg210.h                                 |    5 
 drivers/usb/host/xhci.c                                    |   24 +-
 drivers/usb/musb/musb_dsps.c                               |   13 -
 drivers/usb/usbip/vhci_hcd.c                               |   32 +++
 drivers/vfio/Kconfig                                       |    2 
 drivers/vhost/net.c                                        |   11 +
 drivers/video/fbdev/asiliantfb.c                           |    3 
 drivers/video/fbdev/kyro/fbdev.c                           |    8 
 drivers/video/fbdev/riva/fbdev.c                           |    3 
 fs/btrfs/disk-io.c                                         |   45 ++---
 fs/btrfs/inode.c                                           |   10 -
 fs/btrfs/tree-log.c                                        |    4 
 fs/btrfs/volumes.c                                         |    3 
 fs/cifs/sess.c                                             |    2 
 fs/f2fs/checkpoint.c                                       |    2 
 fs/f2fs/data.c                                             |   23 ++
 fs/f2fs/dir.c                                              |   15 +
 fs/f2fs/f2fs.h                                             |   24 +-
 fs/f2fs/file.c                                             |    6 
 fs/f2fs/gc.c                                               |    6 
 fs/f2fs/inode.c                                            |    2 
 fs/f2fs/node.c                                             |    2 
 fs/f2fs/segment.c                                          |    9 -
 fs/f2fs/super.c                                            |   84 +++++-----
 fs/fscache/cookie.c                                        |   14 -
 fs/fscache/internal.h                                      |    2 
 fs/fscache/main.c                                          |   39 ++++
 fs/fuse/dev.c                                              |    4 
 fs/gfs2/lock_dlm.c                                         |    5 
 fs/lockd/svclock.c                                         |   30 +--
 fs/overlayfs/dir.c                                         |    6 
 fs/userfaultfd.c                                           |   93 +++++------
 include/crypto/public_key.h                                |    4 
 include/linux/hugetlb.h                                    |    9 +
 include/linux/list.h                                       |   29 ++-
 include/linux/memory_hotplug.h                             |    4 
 include/linux/pci.h                                        |    5 
 include/linux/pci_ids.h                                    |    3 
 include/linux/skbuff.h                                     |    2 
 include/linux/sunrpc/xprt.h                                |    1 
 include/uapi/linux/pkt_sched.h                             |    2 
 include/uapi/linux/serial_reg.h                            |    1 
 kernel/dma/debug.c                                         |    7 
 kernel/events/core.c                                       |    2 
 kernel/fork.c                                              |    1 
 kernel/pid_namespace.c                                     |    3 
 kernel/trace/trace_kprobe.c                                |    6 
 kernel/trace/trace_probe.c                                 |   25 +++
 kernel/trace/trace_probe.h                                 |    1 
 kernel/trace/trace_uprobe.c                                |    6 
 kernel/workqueue.c                                         |   12 -
 lib/test_bpf.c                                             |   13 +
 lib/test_stackinit.c                                       |   20 --
 mm/memory_hotplug.c                                        |    4 
 mm/vmscan.c                                                |    2 
 net/9p/trans_xen.c                                         |    4 
 net/bluetooth/hci_event.c                                  |  108 +++++++++----
 net/bluetooth/sco.c                                        |   74 +++++---
 net/caif/chnl_net.c                                        |   19 --
 net/core/flow_dissector.c                                  |   12 -
 net/dccp/minisocks.c                                       |    2 
 net/dsa/slave.c                                            |   12 -
 net/ipv4/ip_gre.c                                          |    9 -
 net/ipv4/ip_output.c                                       |    5 
 net/ipv4/nexthop.c                                         |    2 
 net/ipv4/tcp_fastopen.c                                    |    3 
 net/ipv4/tcp_input.c                                       |    2 
 net/ipv6/netfilter/nf_socket_ipv6.c                        |    4 
 net/l2tp/l2tp_core.c                                       |    4 
 net/mac80211/iface.c                                       |   11 +
 net/netlabel/netlabel_cipso_v4.c                           |    4 
 net/netlink/af_netlink.c                                   |    4 
 net/sched/sch_fq_codel.c                                   |   12 +
 net/sched/sch_taprio.c                                     |    4 
 net/sunrpc/auth_gss/svcauth_gss.c                          |    2 
 net/sunrpc/xprt.c                                          |    6 
 net/tipc/socket.c                                          |   36 +++-
 net/unix/af_unix.c                                         |    2 
 samples/bpf/test_override_return.sh                        |    1 
 samples/bpf/tracex7_user.c                                 |    5 
 scripts/gen_ksymdeps.sh                                    |    8 
 security/smack/smack_access.c                              |   17 --
 sound/soc/atmel/Kconfig                                    |    1 
 sound/soc/intel/boards/bytcr_rt5640.c                      |    9 -
 sound/soc/intel/skylake/skl-messages.c                     |   11 +
 sound/soc/intel/skylake/skl-pcm.c                          |   25 +--
 sound/soc/rockchip/rockchip_i2s.c                          |   35 ++--
 tools/perf/Makefile.config                                 |    8 
 tools/perf/util/machine.c                                  |    1 
 tools/testing/selftests/bpf/progs/xdp_tx.c                 |    2 
 tools/testing/selftests/bpf/test_maps.c                    |    2 
 tools/testing/selftests/bpf/test_xdp_veth.sh               |    2 
 tools/thermal/tmon/Makefile                                |    2 
 virt/kvm/arm/arm.c                                         |    8 
 274 files changed, 1902 insertions(+), 1108 deletions(-)

Adrian Bunk (1):
bnx2x: Fix enabling network interfaces without VFs

Alexander Egorenkov (1):
s390/sclp: fix Secure-IPL facility detection

Alexey Kardashevskiy (1):
KVM: PPC: Fix clearing never mapped TCEs in realmode

Alyssa Rosenzweig (3):
drm/panfrost: Simplify lock_region calculation drm/panfrost: Use u64 for size in lock_region drm/panfrost: Clamp lock region to Bifrost minimum

Anand Jain (1):
btrfs: fix upper limit for max_inline for page size 64K

Andreas Obergschwandtner (1):
ARM: tegra: tamonten: Fix UART pad setting

Andrey Grodzovsky (1):
drm/amdgpu: Fix BUG_ON assert

Andy Shevchenko (3):
include/linux/list.h: add a macro to test if entry is pointing to the head
ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n

Anirudh Rayabharam (1):
usbip: give back URBs for unsent unlink requests during cleanup

Anson Jacob (1):
drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex

Anthony Iliopoulos (1):
dma-debug: fix debugfs initialization order

Arnd Bergmann (1):
m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch

Arne Welzel (1):
dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()

Baptiste Lepers (1):
events: Reuse value read using READ_ONCE instead of re-reading it

Benjamin Hesmans (1):
netfilter: socket: icmp6: fix use-after-scope

Bob Peterson (1):
gfs2: Don't call dlm after protocol is unmounted

Cezary Rojewski (1):
ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER

Chao Yu (5):
f2fs: quota: fix potential deadlock
f2fs: show f2fs instance in printk_ratelimited
f2fs: fix to account missing .skipped_gc_rwsem
f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
f2fs: fix to unmap pages from userspace process in punch_hole()

Christoph Hellwig (1):
scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND

Christophe JAILLET (2):
staging: ks7010: Fix the initialization of the 'sleep_status' structure
mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()'

Claudiu Beznea (1):
clk: at91: clk-generated: pass the id of changeable parent at registration

Codrin Ciubotariu (2):
clk: at91: sam9x60: Don't use audio PLL
clk: at91: clk-generated: Limit the requested rate to our range

Colin Ian King (1):
parport: remove non-zero check on count

Damien Le Moal (1):
block: bfq: fix bfq_set_next_ioprio_data()

Dan Carpenter (4):
scsi: smartpqi: Fix an error code in pqi_get_raid_map()
scsi: qedi: Fix error codes in qedi_alloc_global_queues()
scsi: qedf: Fix error codes in qedf_alloc_global_queues()
PCI: Fix pci_dev_str_match_path() alloc while atomic bug

Daniele Palmas (1):
net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920

David Disseldorp (1):
scsi: target: avoid per-loop XCOPY buffer allocations

David Heidelberg (5):
ARM: 9105/1: atags_to_fdt: don't warn about stack size
ARM: dts: qcom: apq8064: correct clock names drm/msm: mdp4: drop vblank get/put from prepare/complete_commit drm/msi/mdp4: populate priv->kms in mdp4_kms_init
dt-bindings: arm: Fix Toradex compatible typo

David Hildenbrand (1):
mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()

David Howells (1):
fscache: Fix cookie key hashing

Desmond Cheong Zhi Xi (5):
btrfs: reset replace target device to allocation state on close
drm: avoid blocking in drm_clients_info's rcu section
Bluetooth: skip invalid hci_sync_conn_complete_evt
Bluetooth: schedule SCO timeouts with delayed_work
Bluetooth: avoid circular locks in sco_sock_connect

Ding Hui (1):
cifs: fix wrong release in sess_alloc_buffer() failed path

Dinghao Liu (1):
qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom

Dmitry Osipenko (1):
rtc: tps65910: Correct driver module alias

Dmitry Torokhov (1):
HID: input: do not report stylus battery state as "full"

Eran Ben Elisha (1):
net/mlx5: Fix variable type to match 64bit

Eric Dumazet (3):
net-caif: avoid user-triggerable WARN_ON(1) net/af_unix: fix a data-race in unix_dgram_poll
fq_codel: reject silly quantum parameters

Ernst Sjöstrand (1):
drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10

Evan Quan (1):
PCI: Add AMD GPU multi-function power dependencies

Evan Wang (1):
PCI: aardvark: Fix checking for PIO status

Evgeny Novikov (2):
USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
media: tegra-cec: Handle errors of clk_prepare_enable()

Florian Fainelli (1):
r6040: Restore MDIO clock frequency after MAC reset

Geert Uytterhoeven (1):
staging: board: Fix uninitialized spinlock when attaching genpd

George Cherian (1):
PCI: Add ACS quirks for Cavium multi-function devices

Greg Kroah-Hartman (2):
serial: 8250_pci: make setup_port() parameters explicitly unsigned Linux 5.4.148

Gustavo A. R. Silva (2):
ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
flow_dissector: Fix out-of-bounds warnings

Gustaw Lewandowski (1):
ASoC: Intel: Skylake: Fix passing loadable flag for module

Haimin Zhang (1):
fix array-index-out-of-bounds in taprio_change

Halil Pasic (1):
s390/pv: fix the forcing of the swiotlb

Hans Verkuil (1):
media: v4l2-dv-timings.c: fix wrong condition in two for-loops

Hans de Goede (4):
libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call
ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output
mfd: axp20x: Update AXP288 volatile ranges

Harshvardhan Jha (1):
9p/xen: Fix end of loop tests for list_for_each_entry

Heiko Carstens (1):
s390/jump_label: print real address in a case of a jump label bug

Hoang Le (1):
tipc: increase timeout in tipc_sk_enqueue()

Hyun Kwon (1):
PCI: xilinx-nwl: Enable the clock through CCF

Ilya Leoshkevich (2):
s390/bpf: Fix optimizing out zero-extensions s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant

Iwona Winiarska (2):
soc: aspeed: lpc-ctrl: Fix boundary check for mmap
soc: aspeed: p2a-ctrl: Fix boundary check for mmap

J. Bruce Fields (2):
rpc: fix gss_svc_init cleanup on failure
lockd: lockd server-side shouldn't set fl_ops

Jack Pham (1):
usb: gadget: composite: Allow bMaxPower=0 if self-powered

Jaehyoung Choi (1):
pinctrl: samsung: Fix pinctrl bank pin count

Jan Hoffmann (1):
net: dsa: lantiq_gswip: fix maximum frame length

Jason Gunthorpe (1):
vfio: Use config not menuconfig for VFIO_NOIOMMU

Jiaran Zhang (1):
net: hns3: fix the timing issue of VF clearing interrupt sources

Jim Broadus (1):
HID: i2c-hid: Fix Elan touchpad regression

Jiri Slaby (2):
xtensa: ISS: don't panic in rs_init
hvsi: don't panic on tty_register_driver failure

Joel Stanley (1):
powerpc/config: Renable MTD_PHYSMAP_OF

Johan Almbladh (3):
bpf/tests: Fix copy-and-paste error in double word test bpf/tests: Do not PASS tests without actually testing the result
mac80211: Fix monitor MTU limit so that A-MSDUs get through

Johannes Berg (2):
iwlwifi: mvm: avoid static queue number aliasing
iwlwifi: mvm: fix access to BSS elements

Jonathan Cameron (1):
iio: dac: ad5624r: Fix incorrect handling of an optional regulator.

Josef Bacik (1):
btrfs: wake up async_delalloc_pages waiters after submit

Juergen Gross (3):
xen: fix setting of max_pfn in shared_info
xen: reset legacy rtc flag for PV domU
PM: base: power: don't try to use non-existing RTC for storing data

Juhee Kang (1):
samples: bpf: Fix tracex7 error raised on the missing argument

Jussi Maki (1):
selftests/bpf: Fix xdp_tx.c prog section name

Kajol Jain (1):
powerpc/perf/hv-gpci: Fix counter value parsing

Kees Cook (2):
staging: rts5208: Fix get_ms_information() heap buffer size lib/test_stackinit: Fix static initializer test

Kelly Devilliv (2):
usb: host: fotg210: fix the endpoint's transactional opportunities calculation
usb: host: fotg210: fix the actual_length of an iso packet

Krzysztof Hałasa (1):
media: TDA1997x: fix tda1997x_query_dv_timings() return value

Krzysztof Kozlowski (1):
power: supply: max17042: handle fails of reading status register

Krzysztof Wilczyński (1):
PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure

Laurent Pinchart (1):
media: imx258: Rectify mismatch of VTS value

Leon Romanovsky (3):
RDMA/iwcm: Release resources if iw_cm module initialization fails
docs: Fix infiniband uverbs minor number
RDMA/efa: Remove double QP type assignment

Li Huafei (1):

      perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}

Li Jun (1):
usb: chipidea: host: fix port index underflow and UBSAN complains

Li Zhijian (1):
selftests/bpf: Enlarge select() timeout for test_maps

Lin, Zhenpeng (1):
dccp: don't duplicate ccid when cloning dccp sock

Linus Walleij (1):
mfd: db8500-prcmu: Adjust map to reality

Liu Zixian (1):
mm/hugetlb: initialize hugetlb_usage in mm_init

Luben Tuikov (1):
drm/amdgpu: Fix amdgpu_ras_eeprom_init()

Lucas Stach (8):
drm/etnaviv: return context from etnaviv_iommu_context_get drm/etnaviv: put submit prev MMU context when it exists drm/etnaviv: stop abusing mmu_context as FE running marker drm/etnaviv: keep MMU context across runtime suspend/resume drm/etnaviv: exec and MMU state is lost when resetting the GPU drm/etnaviv: fix MMU context leak on GPU reset drm/etnaviv: reference MMU context when setting up hardware state drm/etnaviv: add missing MMU context put when reaping MMU mapping

Luiz Augusto von Dentz (1):
Bluetooth: Fix handling of LE Enhanced Connection Complete

Luke Hsiao (1):
tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD

Maciej W. Rozycki (2):
serial: 8250: Define RX trigger levels for OxSemi 950 devices
scsi: BusLogic: Fix missing pr_cont() use

Maciej Żenczykowski (1):
usb: gadget: u_ether: fix a potential null pointer dereference

Manish Narani (1):
mmc: sdhci-of-arasan: Check return value of non-void funtions

Manivannan Sadhasivam (1):
soc: qcom: aoss: Fix the out of bound usage of cooling_devs

Maor Gottlieb (1):
net/mlx5: Fix potential sleeping in atomic context

Marc Zyngier (3):
pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
mfd: Don't use irq_create_mapping() to resolve a mapping

Marcos Paulo de Souza (1):
btrfs: tree-log: check btrfs_lookup_data_extent return value

Marek Behún (1):
PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported

Marek Marczykowski-Górecki (1):
PCI/MSI: Skip masking MSI-X on Xen PV

Mark Brown (1):
arm64/sve: Use correct size when reinitialising SVE state

Mark Rutland (1):
arm64: head: avoid over-mapping in map_memory

Masahiro Yamada (1):
kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y

Masami Hiramatsu (1):
tracing/probes: Reject events which have the same name of existing one

Mathias Nyman (1):
Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"

Matthias Schiffer (1):
mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set

Mauro Carvalho Chehab (2):
media: uvc: don't do DMA on stack
media: dib8000: rewrite the init prbs logic

Miaoqing Pan (1):
ath9k: fix sleeping in atomic context

Michael Petlan (1):
perf machine: Initialize srcline string member in add_location struct

Michal Suchanek (1):
powerpc/stacktrace: Include linux/delay.h

Mike Marciniszyn (1):
IB/hfi1: Adjust pkey entry in index 0

Mike Rapoport (1):
x86/mm: Fix kern_addr_valid() to cope with existing but not present entries

Miklos Szeredi (1):
fuse: fix use after free in fuse_read_interrupt()

Mikulas Patocka (1):
parisc: fix crash with signals and alloca

Miquel Raynal (1):
dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation

Nadav Amit (1):
userfaultfd: prevent concurrent API initialization

Nadezda Lutovinova (1):
usb: musb: musb_dsps: request_irq() after initializing musb

Nathan Chancellor (2):
net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe() drm/exynos: Always initialize mapping in exynos_drm_register_dma()

Nicholas Piggin (2):
KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live
KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers

Niklas Cassel (2):
blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN

Niklas Schnelle (1):
s390: make PCI mio support a machine flag

Nishad Kamdar (1):
mmc: core: Return correct emmc response in case of ioctl error

Oleksij Rempel (1):
MIPS: Malta: fix alignment of the devicetree buffer

Oliver Logush (1):
drm/amd/display: Fix timer_per_pixel unit error

Oliver Upton (1):
KVM: arm64: Handle PSCI resets before userspace touches vCPU state

Pali Rohár (2):
PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
PCI: aardvark: Fix masking and unmasking legacy INTx interrupts

Paolo Abeni (1):
vhost_net: fix OoB on sendmsg() failure.

Paolo Valente (1):
block, bfq: honor already-setup queue merges

Patryk Duda (1):
platform/chrome: cros_ec_proto: Send command again when timeout occurs

Paul Cercueil (1):
pinctrl: ingenic: Fix incorrect pull up/down info

Pratik R. Sampat (1):
cpufreq: powernv: Fix init_chip_info initialization in numa=off

Raag Jadav (1):
arm64: dts: ls1046a: fix eeprom entries

Rafael J. Wysocki (1):
PCI: Use pci_update_current_state() in pci_enable_device_flags()

Rafał Miłecki (1):
net: dsa: b53: Fix calculating number of switch ports

Rajendra Nayak (1):
opp: Don't print an error if required-opps is missing

Randy Dunlap (4):
openrisc: don't printk() unconditionally
ASoC: atmel: ATMEL drivers don't need HAS_DMA
ptp: dp83640: don't define PAGE0
ARC: export clear_user_page() for modules

Rik van Riel (1):
mm,vmscan: fix divide by zero in get_scan_count

Robin Gong (2):
Revert "dmaengine: imx-sdma: refine to load context only once"
dmaengine: imx-sdma: remove duplicated sdma_load_context

Rolf Eike Beer (1):
tools/thermal/tmon: Add cross compiling support

Ryoga Saito (1):
Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6

Saeed Mahameed (1):
net/mlx5: FWTrace, cancel work on alloc pd error flow

Sagi Grimberg (1):
nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data

Sasha Neftin (1):
igc: Check if num of q_vectors is smaller than max before array access

Saurav Kashyap (2):
scsi: qla2xxx: Changes to support kdump kernel
scsi: qla2xxx: Sync queue idx with queue_pair_map idx

Sean Anderson (1):
crypto: mxs-dcp - Use sg_mapping_iter to copy data

Sean Keely (1):
drm/amdkfd: Account for SH/SE count when setting up cu masks.

Sean Young (1):
media: rc-loopback: return number of emitters rather than error

Sebastian Reichel (1):
ARM: dts: imx53-ppd: Fix ACHC entry

Shai Malin (1):
qed: Handle management FW error

Shuah Khan (1):
usbip:vhci_hcd USB port can get stuck in the disabled state

Stefan Assmann (2):
iavf: do not override the adapter state in the watchdog task
iavf: fix locking of critical sections

Stuart Hayes (1):
PCI/portdrv: Enable Bandwidth Notification only if port supports it

Sugar Zhang (1):
ASoC: rockchip: i2s: Fix regmap_ops hang

Sukadev Bhattiprolu (1):
ibmvnic: check failover_pending in login response

Thierry Reding (1):
arm64: tegra: Fix compatible string for Tegra132 CPUs

Thomas Hebb (1):
mmc: rtsx_pci: Fix long reads when clock is prescaled

Tianjia Zhang (1):
Smack: Fix wrong semantics in smk_access_entry()

Trond Myklebust (1):
SUNRPC: Fix potential memory corruption

Tuo Li (2):
gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port() drm/display: fix possible null-pointer dereference in dcn10_set_clock()

Ulrich Hecht (1):
serial: sh-sci: fix break handling for sysrq

Umang Jain (1):
media: imx258: Limit the max analogue gain to 480

Vasily Averin (1):
memcg: enable accounting for pids in nested pid namespaces

Vidya Sagar (1):
arm64: tegra: Fix Tegra194 PCIe EP compatible string

Vinod Koul (1):
arm64: dts: qcom: sdm660: use reg value for memory node

Vishal Aslot (1):
PCI: ibmphp: Fix double unmap of io_mem

Vladimir Oltean (1):
net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup

Wang Hai (1):
VMCI: fix NULL pointer dereference when unmapping queue pair

Wasim Khan (1):
PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms

Wei Li (1):
scsi: fdomain: Fix error return code in fdomain_probe()

Willem de Bruijn (1):
ip_gre: validate csum_start only on pull

Xiaotan Luo (1):
ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B

Xin Long (2):
tipc: keep the skb in rcv queue until the whole data is read
tipc: fix an use-after-free issue in tipc_recvmsg

Xiyu Yang (1):
net/l2tp: Fix reference count leak in l2tp_udp_recv_core

Yajun Deng (1):
netlink: Deal with ESRCH error in nlmsg_notify()

Yang Li (3):
ethtool: Fix an error code in cxgb2.c
NTB: Fix an error code in ntb_msit_probe()
NTB: perf: Fix an error code in perf_setup_inbuf()

Yang Yingliang (1):
net: w5100: check return value after calling platform_get_resource()

Yangtao Li (1):

      f2fs: reduce the scope of setting fsck tag when de->name_len is zero

Yevgeny Kliteynik (1):
net/mlx5: DR, Enable QP retransmission

Yoshihiro Shimoda (1):
net: renesas: sh_eth: Fix freeing wrong tx descriptor

Yufeng Mo (4):
bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
net: hns3: pad the short tunnel frame before sending to hardware
net: hns3: change affinity_mask to numa node range
net: hns3: disable mac in flr process

Zekun Shen (1):
ath9k: fix OOB read ar9300_eeprom_restore_internal

Zhang Qilong (1):
iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed

Zhen Lei (2):
pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
workqueue: Fix possible memory leaks in wq_numa_init()

Zheyu Ma (5):
video: fbdev: kyro: fix a DoS bug by restricting user input
tty: serial: jsm: hold port lock when reporting modem line changes
video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
video: fbdev: kyro: Error out if 'pixclock' equals zero
video: fbdev: riva: Error out if 'pixclock' equals zero

chenying (1):
ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()

zhenggy (1):

      tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()

zhenwei pi (1):
crypto: public_key: fix overflow during implicit conversion

王贇 (1):
net: fix NULL pointer reference in cipso_v4_doi_free

author maintainer
#1 lore raw
Documentation/admin-guide/devices.txt +3 -3
index 1c5d2281efc9..771d9e7ae082 100644
@@ -3002,10 +3002,10 @@
 		65 = /dev/infiniband/issm1     Second InfiniBand IsSM device
 		  ...
 		127 = /dev/infiniband/issm63    63rd InfiniBand IsSM device
-		128 = /dev/infiniband/uverbs0   First InfiniBand verbs device
-		129 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
+		192 = /dev/infiniband/uverbs0   First InfiniBand verbs device
+		193 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
 		  ...
-		159 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
+		223 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
 
  232 char	Biometric Devices
 		0 = /dev/biometric/sensor0/fingerprint	first fingerprint sensor on first device
Documentation/devicetree/bindings/arm/tegra.yaml +1 -1
index 60b38eb5c61a..56e1945911f1 100644
@@ -49,7 +49,7 @@ properties:
           - const: toradex,apalis_t30
           - const: nvidia,tegra30
       - items:
-          - const: toradex,apalis_t30-eval-v1.1
+          - const: toradex,apalis_t30-v1.1-eval
           - const: toradex,apalis_t30-eval
           - const: toradex,apalis_t30-v1.1
           - const: toradex,apalis_t30
Documentation/devicetree/bindings/mtd/gpmc-nand.txt +1 -1
index 44919d48d241..c459f169a904 100644
@@ -122,7 +122,7 @@ on various other factors also like;
 	so the device should have enough free bytes available its OOB/Spare
 	area to accommodate ECC for entire page. In general following expression
 	helps in determining if given device can accommodate ECC syndrome:
-	"2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE"
+	"2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
 	where
 		OOBSIZE		number of bytes in OOB/spare area
 		PAGESIZE	number of bytes in main-area of device page
Makefile +1 -1
index 98227dae3494..b84706c6d624 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 147
+SUBLEVEL = 148
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arc/mm/cache.c +1 -1
index a2fbea3ee07c..102418ac5ff4 100644
@@ -1123,7 +1123,7 @@ void clear_user_page(void *to, unsigned long u_vaddr, struct page *page)
 	clear_page(to);
 	clear_bit(PG_dc_clean, &page->flags);
 }
-
+EXPORT_SYMBOL(clear_user_page);
 
 /**********************************************************************
  * Explicit Cache flush request from user space via syscall
arch/arm/boot/compressed/Makefile +2 -0
index f0b3a9281d69..fb6cb24bde5c 100644
@@ -90,6 +90,8 @@ $(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \
 	$(addprefix $(obj)/,$(libfdt_hdrs))
 
 ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
+CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
+CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
 OBJS	+= $(libfdt_objs) atags_to_fdt.o
 endif
 
arch/arm/boot/dts/imx53-ppd.dts +13 -10
index 5ff9a179c83c..c80d1700e094 100644
@@ -70,6 +70,12 @@
 		clock-frequency = <11289600>;
 	};
 
+	achc_24M: achc-clock {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <24000000>;
+	};
+
 	sgtlsound: sound {
 		compatible = "fsl,imx53-cpuvo-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
@@ -287,16 +293,13 @@
 		    &gpio4 12 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	spidev0: spi@0 {
-		compatible = "ge,achc";
-		reg = <0>;
-		spi-max-frequency = <1000000>;
-	};
-
-	spidev1: spi@1 {
-		compatible = "ge,achc";
-		reg = <1>;
-		spi-max-frequency = <1000000>;
+	spidev0: spi@1 {
+		compatible = "ge,achc", "nxp,kinetis-k20";
+		reg = <1>, <0>;
+		vdd-supply = <&reg_3v3>;
+		vdda-supply = <&reg_3v3>;
+		clocks = <&achc_24M>;
+		reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
 	};
 
 	gpioxra0: gpio@2 {
arch/arm/boot/dts/qcom-apq8064.dtsi +3 -3
index 8b79b4112ee1..2b075e287610 100644
@@ -1261,9 +1261,9 @@
 				<&mmcc DSI1_BYTE_CLK>,
 				<&mmcc DSI_PIXEL_CLK>,
 				<&mmcc DSI1_ESC_CLK>;
-			clock-names = "iface_clk", "bus_clk", "core_mmss_clk",
-					"src_clk", "byte_clk", "pixel_clk",
-					"core_clk";
+			clock-names = "iface", "bus", "core_mmss",
+					"src", "byte", "pixel",
+					"core";
 
 			assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
 					<&mmcc DSI1_ESC_SRC>,
arch/arm/boot/dts/tegra20-tamonten.dtsi +7 -7
index 20137fc578b1..394a6b4dc69d 100644
@@ -185,8 +185,9 @@
 				nvidia,pins = "ata", "atb", "atc", "atd", "ate",
 					"cdev1", "cdev2", "dap1", "dtb", "gma",
 					"gmb", "gmc", "gmd", "gme", "gpu7",
-					"gpv", "i2cp", "pta", "rm", "slxa",
-					"slxk", "spia", "spib", "uac";
+					"gpv", "i2cp", "irrx", "irtx", "pta",
+					"rm", "slxa", "slxk", "spia", "spib",
+					"uac";
 				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -211,7 +212,7 @@
 			conf_ddc {
 				nvidia,pins = "ddc", "dta", "dtd", "kbca",
 					"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
-					"sdc";
+					"sdc", "uad", "uca";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -221,10 +222,9 @@
 					"lvp0", "owc", "sdb";
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
-			conf_irrx {
-				nvidia,pins = "irrx", "irtx", "sdd", "spic",
-					"spie", "spih", "uaa", "uab", "uad",
-					"uca", "ucb";
+			conf_sdd {
+				nvidia,pins = "sdd", "spic", "spie", "spih",
+					"uaa", "uab", "ucb";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts +1 -7
index 3595be0f2527..2d6c73d7d397 100644
@@ -83,15 +83,9 @@
 			};
 
 			eeprom@52 {
-				compatible = "atmel,24c512";
+				compatible = "onnn,cat24c04", "atmel,24c04";
 				reg = <0x52>;
 			};
-
-			eeprom@53 {
-				compatible = "atmel,24c512";
-				reg = <0x53>;
-			};
-
 		};
 	};
 };
arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts +1 -6
index 274339759114..8858c1e92f23 100644
@@ -58,14 +58,9 @@
 	};
 
 	eeprom@52 {
-		compatible = "atmel,24c512";
+		compatible = "onnn,cat24c05", "atmel,24c04";
 		reg = <0x52>;
 	};
-
-	eeprom@53 {
-		compatible = "atmel,24c512";
-		reg = <0x53>;
-	};
 };
 
 &i2c3 {
arch/arm64/boot/dts/nvidia/tegra132.dtsi +2 -2
index 631a7f77c386..0b3eb8c0b8df 100644
@@ -1082,13 +1082,13 @@
 
 		cpu@0 {
 			device_type = "cpu";
-			compatible = "nvidia,denver";
+			compatible = "nvidia,tegra132-denver";
 			reg = <0>;
 		};
 
 		cpu@1 {
 			device_type = "cpu";
-			compatible = "nvidia,denver";
+			compatible = "nvidia,tegra132-denver";
 			reg = <1>;
 		};
 	};
arch/arm64/boot/dts/nvidia/tegra194.dtsi +3 -3
index 0821754f0fd6..90adff8aa9ba 100644
@@ -1434,7 +1434,7 @@
 	};
 
 	pcie_ep@14160000 {
-		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		compatible = "nvidia,tegra194-pcie-ep";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
 		reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x36040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
@@ -1466,7 +1466,7 @@
 	};
 
 	pcie_ep@14180000 {
-		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		compatible = "nvidia,tegra194-pcie-ep";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
 		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x38040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
@@ -1498,7 +1498,7 @@
 	};
 
 	pcie_ep@141a0000 {
-		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		compatible = "nvidia,tegra194-pcie-ep";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
 		reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x3a040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts +1 -1
index 70be3f95209b..830d9f2c1e5f 100644
@@ -20,7 +20,7 @@
 		stdout-path = "serial0";
 	};
 
-	memory {
+	memory@40000000 {
 		device_type = "memory";
 		reg = <0x0 0x40000000 0x0 0x20000000>;
 	};
arch/arm64/include/asm/kernel-pgtable.h +2 -2
index 817efd95d539..9679b74a2081 100644
@@ -65,8 +65,8 @@
 #define EARLY_KASLR	(0)
 #endif
 
-#define EARLY_ENTRIES(vstart, vend, shift) (((vend) >> (shift)) \
-					- ((vstart) >> (shift)) + 1 + EARLY_KASLR)
+#define EARLY_ENTRIES(vstart, vend, shift) \
+	((((vend) - 1) >> (shift)) - ((vstart) >> (shift)) + 1 + EARLY_KASLR)
 
 #define EARLY_PGDS(vstart, vend) (EARLY_ENTRIES(vstart, vend, PGDIR_SHIFT))
 
arch/arm64/kernel/fpsimd.c +1 -1
index 04b982a2799e..e62c9cbf99f4 100644
@@ -498,7 +498,7 @@ size_t sve_state_size(struct task_struct const *task)
 void sve_alloc(struct task_struct *task)
 {
 	if (task->thread.sve_state) {
-		memset(task->thread.sve_state, 0, sve_state_size(current));
+		memset(task->thread.sve_state, 0, sve_state_size(task));
 		return;
 	}
 
arch/arm64/kernel/head.S +6 -5
index a2e0b3754943..2f784d3b4b39 100644
@@ -194,7 +194,7 @@ ENDPROC(preserve_boot_args)
  * to be composed of multiple pages. (This effectively scales the end index).
  *
  *	vstart:	virtual address of start of range
- *	vend:	virtual address of end of range
+ *	vend:	virtual address of end of range - we map [vstart, vend]
  *	shift:	shift used to transform virtual address into index
  *	ptrs:	number of entries in page table
  *	istart:	index in table corresponding to vstart
@@ -231,17 +231,18 @@ ENDPROC(preserve_boot_args)
  *
  *	tbl:	location of page table
  *	rtbl:	address to be used for first level page table entry (typically tbl + PAGE_SIZE)
- *	vstart:	start address to map
- *	vend:	end address to map - we map [vstart, vend]
+ *	vstart:	virtual address of start of range
+ *	vend:	virtual address of end of range - we map [vstart, vend - 1]
  *	flags:	flags to use to map last level entries
  *	phys:	physical address corresponding to vstart - physical memory is contiguous
  *	pgds:	the number of pgd entries
  *
  * Temporaries:	istart, iend, tmp, count, sv - these need to be different registers
- * Preserves:	vstart, vend, flags
- * Corrupts:	tbl, rtbl, istart, iend, tmp, count, sv
+ * Preserves:	vstart, flags
+ * Corrupts:	tbl, rtbl, vend, istart, iend, tmp, count, sv
  */
 	.macro map_memory, tbl, rtbl, vstart, vend, flags, phys, pgds, istart, iend, tmp, count, sv
+	sub \vend, \vend, #1
 	add \rtbl, \tbl, #PAGE_SIZE
 	mov \sv, \rtbl
 	mov \count, #0
arch/m68k/Kconfig.bus +1 -1
index 9d0a3a23d50e..355c51309ed8 100644
@@ -63,7 +63,7 @@ source "drivers/zorro/Kconfig"
 
 endif
 
-if !MMU
+if COLDFIRE
 
 config ISA_DMA_API
         def_bool !M5272
arch/mips/mti-malta/malta-dtshim.c +1 -1
index 98a063093b69..0be28adff557 100644
@@ -22,7 +22,7 @@
 #define  ROCIT_CONFIG_GEN1_MEMMAP_SHIFT	8
 #define  ROCIT_CONFIG_GEN1_MEMMAP_MASK	(0xf << 8)
 
-static unsigned char fdt_buf[16 << 10] __initdata;
+static unsigned char fdt_buf[16 << 10] __initdata __aligned(8);
 
 /* determined physical memory size, not overridden by command line args	 */
 extern unsigned long physical_memsize;
arch/openrisc/kernel/entry.S +2 -0
index c6481cfc5220..6b27cf4a0d78 100644
@@ -547,6 +547,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
 	l.bnf	1f			// ext irq enabled, all ok.
 	l.nop
 
+#ifdef CONFIG_PRINTK
 	l.addi  r1,r1,-0x8
 	l.movhi r3,hi(42f)
 	l.ori	r3,r3,lo(42f)
@@ -560,6 +561,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
 		.string "\n\rESR interrupt bug: in _external_irq_handler (ESR %x)\n\r"
 		.align 4
 	.previous
+#endif
 
 	l.ori	r4,r4,SPR_SR_IEE	// fix the bug
 //	l.sw	PT_SR(r1),r4
arch/parisc/kernel/signal.c +6 -0
index 02895a8f2c55..92223f9ff05c 100644
@@ -238,6 +238,12 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
 #endif
 	
 	usp = (regs->gr[30] & ~(0x01UL));
+#ifdef CONFIG_64BIT
+	if (is_compat_task()) {
+		/* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */
+		usp = (compat_uint_t)usp;
+	}
+#endif
 	/*FIXME: frame_size parameter is unused, remove it. */
 	frame = get_sigframe(&ksig->ka, usp, sizeof(*frame));
 
arch/powerpc/configs/mpc885_ads_defconfig +1 -0
index 285d506c5a76..2f5e06309f09 100644
@@ -39,6 +39,7 @@ CONFIG_MTD_CFI_GEOMETRY=y
 # CONFIG_MTD_CFI_I2 is not set
 CONFIG_MTD_CFI_I4=y
 CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_PHYSMAP_OF=y
 # CONFIG_BLK_DEV is not set
 CONFIG_NETDEVICES=y
arch/powerpc/include/asm/pmc.h +7 -0
index c6bbe9778d3c..3c09109e708e 100644
@@ -34,6 +34,13 @@ static inline void ppc_set_pmu_inuse(int inuse)
 #endif
 }
 
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+static inline int ppc_get_pmu_inuse(void)
+{
+	return get_paca()->pmcregs_in_use;
+}
+#endif
+
 extern void power4_enable_pmcs(void);
 
 #else /* CONFIG_PPC64 */
arch/powerpc/kernel/stacktrace.c +1 -0
index b13c6213b0d9..890f95151fb4 100644
@@ -8,6 +8,7 @@
  * Copyright 2018 Nick Piggin, Michael Ellerman, IBM Corp.
  */
 
+#include <linux/delay.h>
 #include <linux/export.h>
 #include <linux/kallsyms.h>
 #include <linux/module.h>
arch/powerpc/kvm/book3s_64_vio_hv.c +6 -3
index ab6eeb8e753e..35fd67b4ceb4 100644
@@ -177,10 +177,13 @@ static void kvmppc_rm_tce_put(struct kvmppc_spapr_tce_table *stt,
 	idx -= stt->offset;
 	page = stt->pages[idx / TCES_PER_PAGE];
 	/*
-	 * page must not be NULL in real mode,
-	 * kvmppc_rm_ioba_validate() must have taken care of this.
+	 * kvmppc_rm_ioba_validate() allows pages not be allocated if TCE is
+	 * being cleared, otherwise it returns H_TOO_HARD and we skip this.
 	 */
-	WARN_ON_ONCE_RM(!page);
+	if (!page) {
+		WARN_ON_ONCE_RM(tce != 0);
+		return;
+	}
 	tbl = kvmppc_page_address(page);
 
 	tbl[idx % TCES_PER_PAGE] = tce;
arch/powerpc/kvm/book3s_hv.c +20 -0
index bba358f13471..6c99ccc3bfcb 100644
@@ -58,6 +58,7 @@
 #include <asm/kvm_book3s.h>
 #include <asm/mmu_context.h>
 #include <asm/lppaca.h>
+#include <asm/pmc.h>
 #include <asm/processor.h>
 #include <asm/cputhreads.h>
 #include <asm/page.h>
@@ -3559,6 +3560,18 @@ int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
 	    cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
 		kvmppc_restore_tm_hv(vcpu, vcpu->arch.shregs.msr, true);
 
+#ifdef CONFIG_PPC_PSERIES
+	if (kvmhv_on_pseries()) {
+		barrier();
+		if (vcpu->arch.vpa.pinned_addr) {
+			struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
+			get_lppaca()->pmcregs_in_use = lp->pmcregs_in_use;
+		} else {
+			get_lppaca()->pmcregs_in_use = 1;
+		}
+		barrier();
+	}
+#endif
 	kvmhv_load_guest_pmu(vcpu);
 
 	msr_check_and_set(MSR_FP | MSR_VEC | MSR_VSX);
@@ -3693,6 +3706,13 @@ int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
 	save_pmu |= nesting_enabled(vcpu->kvm);
 
 	kvmhv_save_guest_pmu(vcpu, save_pmu);
+#ifdef CONFIG_PPC_PSERIES
+	if (kvmhv_on_pseries()) {
+		barrier();
+		get_lppaca()->pmcregs_in_use = ppc_get_pmu_inuse();
+		barrier();
+	}
+#endif
 
 	vc->entry_exit_map = 0x101;
 	vc->in_guest = 0;
arch/powerpc/kvm/book3s_hv_rmhandlers.S +34 -2
index c6fbbd29bd87..feaf6ca2e76c 100644
@@ -3137,7 +3137,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_P9_TM_HV_ASSIST)
 	/* The following code handles the fake_suspend = 1 case */
 	mflr	r0
 	std	r0, PPC_LR_STKOFF(r1)
-	stdu	r1, -PPC_MIN_STKFRM(r1)
+	stdu	r1, -TM_FRAME_SIZE(r1)
 
 	/* Turn on TM. */
 	mfmsr	r8
@@ -3152,10 +3152,42 @@ BEGIN_FTR_SECTION
 END_FTR_SECTION_IFSET(CPU_FTR_P9_TM_XER_SO_BUG)
 	nop
 
+	/*
+	 * It's possible that treclaim. may modify registers, if we have lost
+	 * track of fake-suspend state in the guest due to it using rfscv.
+	 * Save and restore registers in case this occurs.
+	 */
+	mfspr	r3, SPRN_DSCR
+	mfspr	r4, SPRN_XER
+	mfspr	r5, SPRN_AMR
+	/* SPRN_TAR would need to be saved here if the kernel ever used it */
+	mfcr	r12
+	SAVE_NVGPRS(r1)
+	SAVE_GPR(2, r1)
+	SAVE_GPR(3, r1)
+	SAVE_GPR(4, r1)
+	SAVE_GPR(5, r1)
+	stw	r12, 8(r1)
+	std	r1, HSTATE_HOST_R1(r13)
+
 	/* We have to treclaim here because that's the only way to do S->N */
 	li	r3, TM_CAUSE_KVM_RESCHED
 	TRECLAIM(R3)
 
+	GET_PACA(r13)
+	ld	r1, HSTATE_HOST_R1(r13)
+	REST_GPR(2, r1)
+	REST_GPR(3, r1)
+	REST_GPR(4, r1)
+	REST_GPR(5, r1)
+	lwz	r12, 8(r1)
+	REST_NVGPRS(r1)
+	mtspr	SPRN_DSCR, r3
+	mtspr	SPRN_XER, r4
+	mtspr	SPRN_AMR, r5
+	mtcr	r12
+	HMT_MEDIUM
+
 	/*
 	 * We were in fake suspend, so we are not going to save the
 	 * register state as the guest checkpointed state (since
@@ -3183,7 +3215,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_P9_TM_XER_SO_BUG)
 	std	r5, VCPU_TFHAR(r9)
 	std	r6, VCPU_TFIAR(r9)
 
-	addi	r1, r1, PPC_MIN_STKFRM
+	addi	r1, r1, TM_FRAME_SIZE
 	ld	r0, PPC_LR_STKOFF(r1)
 	mtlr	r0
 	blr
arch/powerpc/perf/hv-gpci.c +1 -1
index 6884d16ec19b..732cfc53e260 100644
@@ -164,7 +164,7 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,
 	 */
 	count = 0;
 	for (i = offset; i < offset + length; i++)
-		count |= arg->bytes[i] << (i - offset);
+		count |= (u64)(arg->bytes[i]) << ((length - 1 - (i - offset)) * 8);
 
 	*value = count;
 out:
arch/s390/include/asm/setup.h +2 -0
index 1932088686a6..e6a5007f017d 100644
@@ -39,6 +39,7 @@
 #define MACHINE_FLAG_NX		BIT(15)
 #define MACHINE_FLAG_GS		BIT(16)
 #define MACHINE_FLAG_SCC	BIT(17)
+#define MACHINE_FLAG_PCI_MIO	BIT(18)
 
 #define LPP_MAGIC		BIT(31)
 #define LPP_PID_MASK		_AC(0xffffffff, UL)
@@ -106,6 +107,7 @@ extern unsigned long __swsusp_reset_dma;
 #define MACHINE_HAS_NX		(S390_lowcore.machine_flags & MACHINE_FLAG_NX)
 #define MACHINE_HAS_GS		(S390_lowcore.machine_flags & MACHINE_FLAG_GS)
 #define MACHINE_HAS_SCC		(S390_lowcore.machine_flags & MACHINE_FLAG_SCC)
+#define MACHINE_HAS_PCI_MIO	(S390_lowcore.machine_flags & MACHINE_FLAG_PCI_MIO)
 
 /*
  * Console mode. Override with conmode=
arch/s390/kernel/early.c +4 -0
index 2531776cf6cf..eb89cb0aa60b 100644
@@ -252,6 +252,10 @@ static __init void detect_machine_facilities(void)
 		clock_comparator_max = -1ULL >> 1;
 		__ctl_set_bit(0, 53);
 	}
+	if (IS_ENABLED(CONFIG_PCI) && test_facility(153)) {
+		S390_lowcore.machine_flags |= MACHINE_FLAG_PCI_MIO;
+		/* the control bit is set during PCI initialization */
+	}
 }
 
 static inline void save_vector_registers(void)
arch/s390/kernel/jump_label.c +1 -1
index ab584e8e3527..9156653b56f6 100644
@@ -36,7 +36,7 @@ static void jump_label_bug(struct jump_entry *entry, struct insn *expected,
 	unsigned char *ipe = (unsigned char *)expected;
 	unsigned char *ipn = (unsigned char *)new;
 
-	pr_emerg("Jump label code mismatch at %pS [%p]\n", ipc, ipc);
+	pr_emerg("Jump label code mismatch at %pS [%px]\n", ipc, ipc);
 	pr_emerg("Found:    %6ph\n", ipc);
 	pr_emerg("Expected: %6ph\n", ipe);
 	pr_emerg("New:      %6ph\n", ipn);
arch/s390/mm/init.c +1 -1
index c1d96e588152..5521f593cd20 100644
@@ -168,9 +168,9 @@ static void pv_init(void)
 		return;
 
 	/* make sure bounce buffers are shared */
+	swiotlb_force = SWIOTLB_FORCE;
 	swiotlb_init(1);
 	swiotlb_update_mem_attributes();
-	swiotlb_force = SWIOTLB_FORCE;
 }
 
 void __init mem_init(void)
arch/s390/net/bpf_jit_comp.c +37 -30

120 lines not on this page · raw message

arch/s390/pci/pci.c +2 -3
index 6105b1b6e49b..b8ddacf1efe1 100644
@@ -854,7 +854,6 @@ static void zpci_mem_exit(void)
 }
 
 static unsigned int s390_pci_probe __initdata = 1;
-static unsigned int s390_pci_no_mio __initdata;
 unsigned int s390_pci_force_floating __initdata;
 static unsigned int s390_pci_initialized;
 
@@ -865,7 +864,7 @@ char * __init pcibios_setup(char *str)
 		return NULL;
 	}
 	if (!strcmp(str, "nomio")) {
-		s390_pci_no_mio = 1;
+		S390_lowcore.machine_flags &= ~MACHINE_FLAG_PCI_MIO;
 		return NULL;
 	}
 	if (!strcmp(str, "force_floating")) {
@@ -890,7 +889,7 @@ static int __init pci_base_init(void)
 	if (!test_facility(69) || !test_facility(71))
 		return 0;
 
-	if (test_facility(153) && !s390_pci_no_mio) {
+	if (MACHINE_HAS_PCI_MIO) {
 		static_branch_enable(&have_mio);
 		ctl_set_bit(2, 5);
 	}
arch/x86/mm/init_64.c +3 -3
index b8541d77452c..a37ccafe065b 100644
@@ -1355,18 +1355,18 @@ int kern_addr_valid(unsigned long addr)
 		return 0;
 
 	p4d = p4d_offset(pgd, addr);
-	if (p4d_none(*p4d))
+	if (!p4d_present(*p4d))
 		return 0;
 
 	pud = pud_offset(p4d, addr);
-	if (pud_none(*pud))
+	if (!pud_present(*pud))
 		return 0;
 
 	if (pud_large(*pud))
 		return pfn_valid(pud_pfn(*pud));
 
 	pmd = pmd_offset(pud, addr);
-	if (pmd_none(*pmd))
+	if (!pmd_present(*pmd))
 		return 0;
 
 	if (pmd_large(*pmd))
arch/x86/xen/enlighten_pv.c +7 -0
index 3e66feff524a..b99074ca5e68 100644
@@ -1183,6 +1183,11 @@ static void __init xen_dom0_set_legacy_features(void)
 	x86_platform.legacy.rtc = 1;
 }
 
+static void __init xen_domu_set_legacy_features(void)
+{
+	x86_platform.legacy.rtc = 0;
+}
+
 /* First C function to be called on Xen boot */
 asmlinkage __visible void __init xen_start_kernel(void)
 {
@@ -1353,6 +1358,8 @@ asmlinkage __visible void __init xen_start_kernel(void)
 		add_preferred_console("xenboot", 0, NULL);
 		if (pci_xen)
 			x86_init.pci.arch_init = pci_xen_init;
+		x86_platform.set_legacy_features =
+				xen_domu_set_legacy_features;
 	} else {
 		const struct dom0_vga_console_info *info =
 			(void *)((char *)xen_start_info +
arch/x86/xen/p2m.c +2 -2
index 12fcb3858303..8b1e40ec58f6 100644
@@ -622,8 +622,8 @@ int xen_alloc_p2m_entry(unsigned long pfn)
 	}
 
 	/* Expanded the p2m? */
-	if (pfn > xen_p2m_last_pfn) {
-		xen_p2m_last_pfn = pfn;
+	if (pfn >= xen_p2m_last_pfn) {
+		xen_p2m_last_pfn = ALIGN(pfn + 1, P2M_PER_PAGE);
 		HYPERVISOR_shared_info->arch.max_pfn = xen_p2m_last_pfn;
 	}
 
arch/xtensa/platforms/iss/console.c +14 -3
index af81a62faba6..e7faea3d73d3 100644
@@ -168,9 +168,13 @@ static const struct tty_operations serial_ops = {
 
 int __init rs_init(void)
 {
-	tty_port_init(&serial_port);
+	int ret;
 
 	serial_driver = alloc_tty_driver(SERIAL_MAX_NUM_LINES);
+	if (!serial_driver)
+		return -ENOMEM;
+
+	tty_port_init(&serial_port);
 
 	pr_info("%s %s\n", serial_name, serial_version);
 
@@ -190,8 +194,15 @@ int __init rs_init(void)
 	tty_set_operations(serial_driver, &serial_ops);
 	tty_port_link_device(&serial_port, serial_driver, 0);
 
-	if (tty_register_driver(serial_driver))
-		panic("Couldn't register serial driver\n");
+	ret = tty_register_driver(serial_driver);
+	if (ret) {
+		pr_err("Couldn't register serial driver\n");
+		tty_driver_kref_put(serial_driver);
+		tty_port_destroy(&serial_port);
+
+		return ret;
+	}
+
 	return 0;
 }
 
block/bfq-iosched.c +14 -4
index 136232a01f71..8dee243e639f 100644
@@ -2523,6 +2523,15 @@ bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)
 	 * are likely to increase the throughput.
 	 */
 	bfqq->new_bfqq = new_bfqq;
+	/*
+	 * The above assignment schedules the following redirections:
+	 * each time some I/O for bfqq arrives, the process that
+	 * generated that I/O is disassociated from bfqq and
+	 * associated with new_bfqq. Here we increases new_bfqq->ref
+	 * in advance, adding the number of processes that are
+	 * expected to be associated with new_bfqq as they happen to
+	 * issue I/O.
+	 */
 	new_bfqq->ref += process_refs;
 	return new_bfqq;
 }
@@ -2582,6 +2591,10 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 {
 	struct bfq_queue *in_service_bfqq, *new_bfqq;
 
+	/* if a merge has already been setup, then proceed with that first */
+	if (bfqq->new_bfqq)
+		return bfqq->new_bfqq;
+
 	/*
 	 * Do not perform queue merging if the device is non
 	 * rotational and performs internal queueing. In fact, such a
@@ -2636,9 +2649,6 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 	if (bfq_too_late_for_merging(bfqq))
 		return NULL;
 
-	if (bfqq->new_bfqq)
-		return bfqq->new_bfqq;
-
 	if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq))
 		return NULL;
 
@@ -5004,7 +5014,7 @@ bfq_set_next_ioprio_data(struct bfq_queue *bfqq, struct bfq_io_cq *bic)
 	if (bfqq->new_ioprio >= IOPRIO_BE_NR) {
 		pr_crit("bfq_set_next_ioprio_data: new_ioprio %d\n",
 			bfqq->new_ioprio);
-		bfqq->new_ioprio = IOPRIO_BE_NR;
+		bfqq->new_ioprio = IOPRIO_BE_NR - 1;
 	}
 
 	bfqq->entity.new_weight = bfq_ioprio_to_weight(bfqq->new_ioprio);
block/blk-zoned.c +0 -6
index b17c094cb977..a85d0a06a6ff 100644
@@ -316,9 +316,6 @@ int blkdev_report_zones_ioctl(struct block_device *bdev, fmode_t mode,
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (copy_from_user(&rep, argp, sizeof(struct blk_zone_report)))
 		return -EFAULT;
 
@@ -374,9 +371,6 @@ int blkdev_reset_zones_ioctl(struct block_device *bdev, fmode_t mode,
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (!(mode & FMODE_WRITE))
 		return -EBADF;
 
block/bsg.c +4 -1
index 0d012efef527..c8b9714e6923 100644
@@ -371,10 +371,13 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	case SG_GET_RESERVED_SIZE:
 	case SG_SET_RESERVED_SIZE:
 	case SG_EMULATED_HOST:
-	case SCSI_IOCTL_SEND_COMMAND:
 		return scsi_cmd_ioctl(bd->queue, NULL, file->f_mode, cmd, uarg);
 	case SG_IO:
 		return bsg_sg_io(bd->queue, file->f_mode, uarg);
+	case SCSI_IOCTL_SEND_COMMAND:
+		pr_warn_ratelimited("%s: calling unsupported SCSI_IOCTL_SEND_COMMAND\n",
+				current->comm);
+		return -EINVAL;
 	default:
 		return -ENOTTY;
 	}
drivers/ata/libata-core.c +4 -0
index 7788af0ca109..5c354c7aff94 100644
@@ -4556,6 +4556,10 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 850*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 860*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 870*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "FCCT*M500*",			NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 
drivers/ata/sata_dwc_460ex.c +4 -8
index 9dcef6ac643b..982fe9112532 100644
@@ -1249,24 +1249,20 @@ static int sata_dwc_probe(struct platform_device *ofdev)
 	irq = irq_of_parse_and_map(np, 0);
 	if (irq == NO_IRQ) {
 		dev_err(&ofdev->dev, "no SATA DMA irq\n");
-		err = -ENODEV;
-		goto error_out;
+		return -ENODEV;
 	}
 
 #ifdef CONFIG_SATA_DWC_OLD_DMA
 	if (!of_find_property(np, "dmas", NULL)) {
 		err = sata_dwc_dma_init_old(ofdev, hsdev);
 		if (err)
-			goto error_out;
+			return err;
 	}
 #endif
 
 	hsdev->phy = devm_phy_optional_get(hsdev->dev, "sata-phy");
-	if (IS_ERR(hsdev->phy)) {
-		err = PTR_ERR(hsdev->phy);
-		hsdev->phy = NULL;
-		goto error_out;
-	}
+	if (IS_ERR(hsdev->phy))
+		return PTR_ERR(hsdev->phy);
 
 	err = phy_init(hsdev->phy);
 	if (err)
drivers/base/power/trace.c +10 -0
index 977d27bd1a22..9a9dec657c16 100644
@@ -13,6 +13,7 @@
 #include <linux/export.h>
 #include <linux/rtc.h>
 #include <linux/suspend.h>
+#include <linux/init.h>
 
 #include <linux/mc146818rtc.h>
 
@@ -165,6 +166,9 @@ void generate_pm_trace(const void *tracedata, unsigned int user)
 	const char *file = *(const char **)(tracedata + 2);
 	unsigned int user_hash_value, file_hash_value;
 
+	if (!x86_platform.legacy.rtc)
+		return;
+
 	user_hash_value = user % USERHASH;
 	file_hash_value = hash_string(lineno, file, FILEHASH);
 	set_magic_time(user_hash_value, file_hash_value, dev_hash_value);
@@ -267,6 +271,9 @@ static struct notifier_block pm_trace_nb = {
 
 static int early_resume_init(void)
 {
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	hash_value_early_read = read_magic_time();
 	register_pm_notifier(&pm_trace_nb);
 	return 0;
@@ -277,6 +284,9 @@ static int late_resume_init(void)
 	unsigned int val = hash_value_early_read;
 	unsigned int user, file, dev;
 
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	user = val % USERHASH;
 	val = val / USERHASH;
 	file = val % FILEHASH;
drivers/clk/at91/clk-generated.c +20 -12
index 44a46dcc0518..d7fe1303f79d 100644
@@ -18,8 +18,6 @@
 
 #define GENERATED_MAX_DIV	255
 
-#define GCK_INDEX_DT_AUDIO_PLL	5
-
 struct clk_generated {
 	struct clk_hw hw;
 	struct regmap *regmap;
@@ -29,7 +27,7 @@ struct clk_generated {
 	u32 gckdiv;
 	const struct clk_pcr_layout *layout;
 	u8 parent_id;
-	bool audio_pll_allowed;
+	int chg_pid;
 };
 
 #define to_clk_generated(hw) \
@@ -109,7 +107,7 @@ static void clk_generated_best_diff(struct clk_rate_request *req,
 		tmp_rate = parent_rate / div;
 	tmp_diff = abs(req->rate - tmp_rate);
 
-	if (*best_diff < 0 || *best_diff > tmp_diff) {
+	if (*best_diff < 0 || *best_diff >= tmp_diff) {
 		*best_rate = tmp_rate;
 		*best_diff = tmp_diff;
 		req->best_parent_rate = parent_rate;
@@ -129,7 +127,16 @@ static int clk_generated_determine_rate(struct clk_hw *hw,
 	int i;
 	u32 div;
 
-	for (i = 0; i < clk_hw_get_num_parents(hw) - 1; i++) {
+	/* do not look for a rate that is outside of our range */
+	if (gck->range.max && req->rate > gck->range.max)
+		req->rate = gck->range.max;
+	if (gck->range.min && req->rate < gck->range.min)
+		req->rate = gck->range.min;
+
+	for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
+		if (gck->chg_pid == i)
+			continue;
+
 		parent = clk_hw_get_parent_by_index(hw, i);
 		if (!parent)
 			continue;
@@ -161,10 +168,10 @@ static int clk_generated_determine_rate(struct clk_hw *hw,
 	 * that the only clks able to modify gck rate are those of audio IPs.
 	 */
 
-	if (!gck->audio_pll_allowed)
+	if (gck->chg_pid < 0)
 		goto end;
 
-	parent = clk_hw_get_parent_by_index(hw, GCK_INDEX_DT_AUDIO_PLL);
+	parent = clk_hw_get_parent_by_index(hw, gck->chg_pid);
 	if (!parent)
 		goto end;
 
@@ -271,8 +278,8 @@ struct clk_hw * __init
 at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
 			    const struct clk_pcr_layout *layout,
 			    const char *name, const char **parent_names,
-			    u8 num_parents, u8 id, bool pll_audio,
-			    const struct clk_range *range)
+			    u8 num_parents, u8 id,
+			    const struct clk_range *range, int chg_pid)
 {
 	struct clk_generated *gck;
 	struct clk_init_data init;
@@ -287,15 +294,16 @@ at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
 	init.ops = &generated_ops;
 	init.parent_names = parent_names;
 	init.num_parents = num_parents;
-	init.flags = CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE |
-		CLK_SET_RATE_PARENT;
+	init.flags = CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE;
+	if (chg_pid >= 0)
+		init.flags |= CLK_SET_RATE_PARENT;
 
 	gck->id = id;
 	gck->hw.init = &init;
 	gck->regmap = regmap;
 	gck->lock = lock;
 	gck->range = *range;
-	gck->audio_pll_allowed = pll_audio;
+	gck->chg_pid = chg_pid;
 	gck->layout = layout;
 
 	clk_generated_startup(gck);
drivers/clk/at91/dt-compat.c +5 -3
index aa1754eac59f..8a652c44c25a 100644
@@ -22,6 +22,8 @@
 
 #define SYSTEM_MAX_ID		31
 
+#define GCK_INDEX_DT_AUDIO_PLL	5
+
 #ifdef CONFIG_HAVE_AT91_AUDIO_PLL
 static void __init of_sama5d2_clk_audio_pll_frac_setup(struct device_node *np)
 {
@@ -135,7 +137,7 @@ static void __init of_sama5d2_clk_generated_setup(struct device_node *np)
 		return;
 
 	for_each_child_of_node(np, gcknp) {
-		bool pll_audio = false;
+		int chg_pid = INT_MIN;
 
 		if (of_property_read_u32(gcknp, "reg", &id))
 			continue;
@@ -152,12 +154,12 @@ static void __init of_sama5d2_clk_generated_setup(struct device_node *np)
 		if (of_device_is_compatible(np, "atmel,sama5d2-clk-generated") &&
 		    (id == GCK_ID_I2S0 || id == GCK_ID_I2S1 ||
 		     id == GCK_ID_CLASSD))
-			pll_audio = true;
+			chg_pid = GCK_INDEX_DT_AUDIO_PLL;
 
 		hw = at91_clk_register_generated(regmap, &pmc_pcr_lock,
 						 &dt_pcr_layout, name,
 						 parent_names, num_parents,
-						 id, pll_audio, &range);
+						 id, &range, chg_pid);
 		if (IS_ERR(hw))
 			continue;
 
drivers/clk/at91/pmc.h +2 -2
index 9b8db9cdcda5..8a88ad236074 100644
@@ -118,8 +118,8 @@ struct clk_hw * __init
 at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
 			    const struct clk_pcr_layout *layout,
 			    const char *name, const char **parent_names,
-			    u8 num_parents, u8 id, bool pll_audio,
-			    const struct clk_range *range);
+			    u8 num_parents, u8 id,
+			    const struct clk_range *range, int chg_pid);
 
 struct clk_hw * __init
 at91_clk_register_h32mx(struct regmap *regmap, const char *name,
drivers/clk/at91/sam9x60.c +3 -7
index e3f4c8f20223..39923899478f 100644
@@ -124,7 +124,6 @@ static const struct {
 	char *n;
 	u8 id;
 	struct clk_range r;
-	bool pll;
 } sam9x60_gck[] = {
 	{ .n = "flex0_gclk",  .id = 5, },
 	{ .n = "flex1_gclk",  .id = 6, },
@@ -144,11 +143,9 @@ static const struct {
 	{ .n = "sdmmc1_gclk", .id = 26, .r = { .min = 0, .max = 105000000 }, },
 	{ .n = "flex11_gclk", .id = 32, },
 	{ .n = "flex12_gclk", .id = 33, },
-	{ .n = "i2s_gclk",    .id = 34, .r = { .min = 0, .max = 105000000 },
-		.pll = true, },
+	{ .n = "i2s_gclk",    .id = 34, .r = { .min = 0, .max = 105000000 }, },
 	{ .n = "pit64b_gclk", .id = 37, },
-	{ .n = "classd_gclk", .id = 42, .r = { .min = 0, .max = 100000000 },
-		.pll = true, },
+	{ .n = "classd_gclk", .id = 42, .r = { .min = 0, .max = 100000000 }, },
 	{ .n = "tcb1_gclk",   .id = 45, },
 	{ .n = "dbgu_gclk",   .id = 47, },
 };
@@ -285,8 +282,7 @@ static void __init sam9x60_pmc_setup(struct device_node *np)
 						 sam9x60_gck[i].n,
 						 parent_names, 6,
 						 sam9x60_gck[i].id,
-						 sam9x60_gck[i].pll,
-						 &sam9x60_gck[i].r);
+						 &sam9x60_gck[i].r, INT_MIN);
 		if (IS_ERR(hw))
 			goto err_free;
 
drivers/clk/at91/sama5d2.c +15 -16
index ff7e3f727082..d3c4bceb032d 100644
@@ -115,21 +115,20 @@ static const struct {
 	char *n;
 	u8 id;
 	struct clk_range r;
-	bool pll;
+	int chg_pid;
 } sama5d2_gck[] = {
-	{ .n = "sdmmc0_gclk", .id = 31, },
-	{ .n = "sdmmc1_gclk", .id = 32, },
-	{ .n = "tcb0_gclk",   .id = 35, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "tcb1_gclk",   .id = 36, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "pwm_gclk",    .id = 38, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "isc_gclk",    .id = 46, },
-	{ .n = "pdmic_gclk",  .id = 48, },
-	{ .n = "i2s0_gclk",   .id = 54, .pll = true },
-	{ .n = "i2s1_gclk",   .id = 55, .pll = true },
-	{ .n = "can0_gclk",   .id = 56, .r = { .min = 0, .max = 80000000 }, },
-	{ .n = "can1_gclk",   .id = 57, .r = { .min = 0, .max = 80000000 }, },
-	{ .n = "classd_gclk", .id = 59, .r = { .min = 0, .max = 100000000 },
-	  .pll = true },
+	{ .n = "sdmmc0_gclk", .id = 31, .chg_pid = INT_MIN, },
+	{ .n = "sdmmc1_gclk", .id = 32, .chg_pid = INT_MIN, },
+	{ .n = "tcb0_gclk",   .id = 35, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "tcb1_gclk",   .id = 36, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "pwm_gclk",    .id = 38, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "isc_gclk",    .id = 46, .chg_pid = INT_MIN, },
+	{ .n = "pdmic_gclk",  .id = 48, .chg_pid = INT_MIN, },
+	{ .n = "i2s0_gclk",   .id = 54, .chg_pid = 5, },
+	{ .n = "i2s1_gclk",   .id = 55, .chg_pid = 5, },
+	{ .n = "can0_gclk",   .id = 56, .chg_pid = INT_MIN, .r = { .min = 0, .max = 80000000 }, },
+	{ .n = "can1_gclk",   .id = 57, .chg_pid = INT_MIN, .r = { .min = 0, .max = 80000000 }, },
+	{ .n = "classd_gclk", .id = 59, .chg_pid = 5, .r = { .min = 0, .max = 100000000 }, },
 };
 
 static const struct clk_programmable_layout sama5d2_programmable_layout = {
@@ -317,8 +316,8 @@ static void __init sama5d2_pmc_setup(struct device_node *np)
 						 sama5d2_gck[i].n,
 						 parent_names, 6,
 						 sama5d2_gck[i].id,
-						 sama5d2_gck[i].pll,
-						 &sama5d2_gck[i].r);
+						 &sama5d2_gck[i].r,
+						 sama5d2_gck[i].chg_pid);
 		if (IS_ERR(hw))
 			goto err_free;
 
drivers/cpufreq/powernv-cpufreq.c +14 -2
index bc6ccf2c7aae..c636c9ba0100 100644
@@ -36,6 +36,7 @@
 #define MAX_PSTATE_SHIFT	32
 #define LPSTATE_SHIFT		48
 #define GPSTATE_SHIFT		56
+#define MAX_NR_CHIPS		32
 
 #define MAX_RAMP_DOWN_TIME				5120
 /*
@@ -1050,12 +1051,20 @@ static int init_chip_info(void)
 	unsigned int *chip;
 	unsigned int cpu, i;
 	unsigned int prev_chip_id = UINT_MAX;
+	cpumask_t *chip_cpu_mask;
 	int ret = 0;
 
 	chip = kcalloc(num_possible_cpus(), sizeof(*chip), GFP_KERNEL);
 	if (!chip)
 		return -ENOMEM;
 
+	/* Allocate a chip cpu mask large enough to fit mask for all chips */
+	chip_cpu_mask = kcalloc(MAX_NR_CHIPS, sizeof(cpumask_t), GFP_KERNEL);
+	if (!chip_cpu_mask) {
+		ret = -ENOMEM;
+		goto free_and_return;
+	}
+
 	for_each_possible_cpu(cpu) {
 		unsigned int id = cpu_to_chip_id(cpu);
 
@@ -1063,22 +1072,25 @@ static int init_chip_info(void)
 			prev_chip_id = id;
 			chip[nr_chips++] = id;
 		}
+		cpumask_set_cpu(cpu, &chip_cpu_mask[nr_chips-1]);
 	}
 
 	chips = kcalloc(nr_chips, sizeof(struct chip), GFP_KERNEL);
 	if (!chips) {
 		ret = -ENOMEM;
-		goto free_and_return;
+		goto out_free_chip_cpu_mask;
 	}
 
 	for (i = 0; i < nr_chips; i++) {
 		chips[i].id = chip[i];
-		cpumask_copy(&chips[i].mask, cpumask_of_node(chip[i]));
+		cpumask_copy(&chips[i].mask, &chip_cpu_mask[i]);
 		INIT_WORK(&chips[i].throttle, powernv_cpufreq_work_fn);
 		for_each_cpu(cpu, &chips[i].mask)
 			per_cpu(chip_info, cpu) =  &chips[i];
 	}
 
+out_free_chip_cpu_mask:
+	kfree(chip_cpu_mask);
 free_and_return:
 	kfree(chip);
 	return ret;
drivers/crypto/mxs-dcp.c +9 -27
index 66fa524b6261..547111079207 100644
@@ -298,21 +298,20 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)
 
 	struct scatterlist *dst = req->dst;
 	struct scatterlist *src = req->src;
-	const int nents = sg_nents(req->src);
+	int dst_nents = sg_nents(dst);
 
 	const int out_off = DCP_BUF_SZ;
 	uint8_t *in_buf = sdcp->coh->aes_in_buf;
 	uint8_t *out_buf = sdcp->coh->aes_out_buf;
 
-	uint8_t *out_tmp, *src_buf, *dst_buf = NULL;
 	uint32_t dst_off = 0;
+	uint8_t *src_buf = NULL;
 	uint32_t last_out_len = 0;
 
 	uint8_t *key = sdcp->coh->aes_key;
 
 	int ret = 0;
-	int split = 0;
-	unsigned int i, len, clen, rem = 0, tlen = 0;
+	unsigned int i, len, clen, tlen = 0;
 	int init = 0;
 	bool limit_hit = false;
 
@@ -330,7 +329,7 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)
 		memset(key + AES_KEYSIZE_128, 0, AES_KEYSIZE_128);
 	}
 
-	for_each_sg(req->src, src, nents, i) {
+	for_each_sg(req->src, src, sg_nents(src), i) {
 		src_buf = sg_virt(src);
 		len = sg_dma_len(src);
 		tlen += len;
@@ -355,34 +354,17 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)
 			 * submit the buffer.
 			 */
 			if (actx->fill == out_off || sg_is_last(src) ||
-				limit_hit) {
+			    limit_hit) {
 				ret = mxs_dcp_run_aes(actx, req, init);
 				if (ret)
 					return ret;
 				init = 0;
 
-				out_tmp = out_buf;
+				sg_pcopy_from_buffer(dst, dst_nents, out_buf,
+						     actx->fill, dst_off);
+				dst_off += actx->fill;
 				last_out_len = actx->fill;
-				while (dst && actx->fill) {
-					if (!split) {
-						dst_buf = sg_virt(dst);
-						dst_off = 0;
-					}
-					rem = min(sg_dma_len(dst) - dst_off,
-						  actx->fill);
-
-					memcpy(dst_buf + dst_off, out_tmp, rem);
-					out_tmp += rem;
-					dst_off += rem;
-					actx->fill -= rem;
-
-					if (dst_off == sg_dma_len(dst)) {
-						dst = sg_next(dst);
-						split = 0;
-					} else {
-						split = 1;
-					}
-				}
+				actx->fill = 0;
 			}
 		} while (len);
 
drivers/dma/imx-sdma.c +1 -12
index 67736c801f3c..cc70da05db4b 100644
@@ -377,7 +377,6 @@ struct sdma_channel {
 	unsigned long			watermark_level;
 	u32				shp_addr, per_addr;
 	enum dma_status			status;
-	bool				context_loaded;
 	struct imx_dma_data		data;
 	struct work_struct		terminate_worker;
 };
@@ -988,9 +987,6 @@ static int sdma_load_context(struct sdma_channel *sdmac)
 	int ret;
 	unsigned long flags;
 
-	if (sdmac->context_loaded)
-		return 0;
-
 	if (sdmac->direction == DMA_DEV_TO_MEM)
 		load_address = sdmac->pc_from_device;
 	else if (sdmac->direction == DMA_DEV_TO_DEV)
@@ -1033,8 +1029,6 @@ static int sdma_load_context(struct sdma_channel *sdmac)
 
 	spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
 
-	sdmac->context_loaded = true;
-
 	return ret;
 }
 
@@ -1074,7 +1068,6 @@ static void sdma_channel_terminate_work(struct work_struct *work)
 	sdmac->desc = NULL;
 	spin_unlock_irqrestore(&sdmac->vc.lock, flags);
 	vchan_dma_desc_free_list(&sdmac->vc, &head);
-	sdmac->context_loaded = false;
 }
 
 static int sdma_disable_channel_async(struct dma_chan *chan)
@@ -1141,7 +1134,6 @@ static void sdma_set_watermarklevel_for_p2p(struct sdma_channel *sdmac)
 static int sdma_config_channel(struct dma_chan *chan)
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
-	int ret;
 
 	sdma_disable_channel(chan);
 
@@ -1181,9 +1173,7 @@ static int sdma_config_channel(struct dma_chan *chan)
 		sdmac->watermark_level = 0; /* FIXME: M3_BASE_ADDRESS */
 	}
 
-	ret = sdma_load_context(sdmac);
-
-	return ret;
+	return 0;
 }
 
 static int sdma_set_channel_priority(struct sdma_channel *sdmac,
@@ -1335,7 +1325,6 @@ static void sdma_free_chan_resources(struct dma_chan *chan)
 
 	sdmac->event_id0 = 0;
 	sdmac->event_id1 = 0;
-	sdmac->context_loaded = false;
 
 	sdma_set_channel_priority(sdmac, 0);
 
drivers/gpu/drm/amd/amdgpu/amdgpu.h +1 -1
index d1e278e999ee..1b2fa8379830 100644
@@ -762,7 +762,7 @@ enum amd_hw_ip_block_type {
 	MAX_HWIP
 };
 
-#define HWIP_MAX_INSTANCE	8
+#define HWIP_MAX_INSTANCE	10
 
 struct amd_powerplay {
 	void *pp_handle;
drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c +1 -1
index 70dbe343f51d..89cecdba81ac 100644
@@ -339,7 +339,7 @@ static void amdgpu_i2c_put_byte(struct amdgpu_i2c_chan *i2c_bus,
 void
 amdgpu_i2c_router_select_ddc_port(const struct amdgpu_connector *amdgpu_connector)
 {
-	u8 val;
+	u8 val = 0;
 
 	if (!amdgpu_connector->router.ddc_valid)
 		return;
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +1 -1
index 28361a9c5add..532d1842f6a3 100644
@@ -200,7 +200,7 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
 		c++;
 	}
 
-	BUG_ON(c >= AMDGPU_BO_MAX_PLACEMENTS);
+	BUG_ON(c > AMDGPU_BO_MAX_PLACEMENTS);
 
 	placement->num_placement = c;
 	placement->placement = places;
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +1 -1
index 8a32b5c93778..bd7ae3e130b6 100644
@@ -138,7 +138,7 @@ int amdgpu_ras_eeprom_init(struct amdgpu_ras_eeprom_control *control)
 		return ret;
 	}
 
-	__decode_table_header_from_buff(hdr, &buff[2]);
+	__decode_table_header_from_buff(hdr, buff);
 
 	if (hdr->header == EEPROM_TABLE_HDR_VAL) {
 		control->num_recs = (hdr->tbl_size - EEPROM_TABLE_HEADER_SIZE) /
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c +63 -21

99 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h +1 -0
index fbdb16418847..4edc012e3138 100644
@@ -27,6 +27,7 @@
 #include "kfd_priv.h"
 
 #define KFD_MAX_NUM_SE 8
+#define KFD_MAX_NUM_SH_PER_SE 2
 
 /**
  * struct mqd_manager
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +8 -8
index f3dfb2887ae0..2cdcefab2d7d 100644
@@ -95,29 +95,29 @@ static ssize_t dp_link_settings_read(struct file *f, char __user *buf,
 
 	rd_buf_ptr = rd_buf;
 
-	str_len = strlen("Current:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Current:  %d  %d  %d  ",
+	str_len = strlen("Current:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Current:  %d  0x%x  %d  ",
 			link->cur_link_settings.lane_count,
 			link->cur_link_settings.link_rate,
 			link->cur_link_settings.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Verified:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Verified:  %d  %d  %d  ",
+	str_len = strlen("Verified:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Verified:  %d  0x%x  %d  ",
 			link->verified_link_cap.lane_count,
 			link->verified_link_cap.link_rate,
 			link->verified_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Reported:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Reported:  %d  %d  %d  ",
+	str_len = strlen("Reported:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Reported:  %d  0x%x  %d  ",
 			link->reported_link_cap.lane_count,
 			link->reported_link_cap.link_rate,
 			link->reported_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Preferred:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  %d  %d\n",
+	str_len = strlen("Preferred:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  0x%x  %d\n",
 			link->preferred_link_setting.lane_count,
 			link->preferred_link_setting.link_rate,
 			link->preferred_link_setting.link_spread);
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +5 -6
index 60123db7ba02..bc5ebea1abed 100644
@@ -3264,13 +3264,12 @@ static enum dc_status dcn10_set_clock(struct dc *dc,
 	struct dc_clock_config clock_cfg = {0};
 	struct dc_clocks *current_clocks = &context->bw_ctx.bw.dcn.clk;
 
-	if (dc->clk_mgr && dc->clk_mgr->funcs->get_clock)
-				dc->clk_mgr->funcs->get_clock(dc->clk_mgr,
-						context, clock_type, &clock_cfg);
-
-	if (!dc->clk_mgr->funcs->get_clock)
+	if (!dc->clk_mgr || !dc->clk_mgr->funcs->get_clock)
 		return DC_FAIL_UNSUPPORTED_1;
 
+	dc->clk_mgr->funcs->get_clock(dc->clk_mgr,
+		context, clock_type, &clock_cfg);
+
 	if (clk_khz > clock_cfg.max_clock_khz)
 		return DC_FAIL_CLK_EXCEED_MAX;
 
@@ -3288,7 +3287,7 @@ static enum dc_status dcn10_set_clock(struct dc *dc,
 	else
 		return DC_ERROR_UNEXPECTED;
 
-	if (dc->clk_mgr && dc->clk_mgr->funcs->update_clocks)
+	if (dc->clk_mgr->funcs->update_clocks)
 				dc->clk_mgr->funcs->update_clocks(dc->clk_mgr,
 				context, true);
 	return DC_OK;
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 -1
index 2b1175bb2dae..d2ea4c003d44 100644
@@ -2232,7 +2232,7 @@ void dcn20_set_mcif_arb_params(
 				wb_arb_params->cli_watermark[k] = get_wm_writeback_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
 				wb_arb_params->pstate_watermark[k] = get_wm_writeback_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
 			}
-			wb_arb_params->time_per_pixel = 16.0 / context->res_ctx.pipe_ctx[i].stream->phy_pix_clk; /* 4 bit fraction, ms */
+			wb_arb_params->time_per_pixel = 16.0 * 1000 / (context->res_ctx.pipe_ctx[i].stream->phy_pix_clk / 1000); /* 4 bit fraction, ms */
 			wb_arb_params->slice_lines = 32;
 			wb_arb_params->arbitration_slice = 2;
 			wb_arb_params->max_scaled_time = dcn20_calc_max_scaled_time(wb_arb_params->time_per_pixel,
drivers/gpu/drm/drm_debugfs.c +2 -1
index 00debd02c322..0ba92428ef56 100644
@@ -91,6 +91,7 @@ static int drm_clients_info(struct seq_file *m, void *data)
 	mutex_lock(&dev->filelist_mutex);
 	list_for_each_entry_reverse(priv, &dev->filelist, lhead) {
 		struct task_struct *task;
+		bool is_current_master = drm_is_current_master(priv);
 
 		rcu_read_lock(); /* locks pid_task()->comm */
 		task = pid_task(priv->pid, PIDTYPE_PID);
@@ -99,7 +100,7 @@ static int drm_clients_info(struct seq_file *m, void *data)
 			   task ? task->comm : "<unknown>",
 			   pid_vnr(priv->pid),
 			   priv->minor->index,
-			   drm_is_current_master(priv) ? 'y' : 'n',
+			   is_current_master ? 'y' : 'n',
 			   priv->authenticated ? 'y' : 'n',
 			   from_kuid_munged(seq_user_ns(m), uid),
 			   priv->magic);
drivers/gpu/drm/etnaviv/etnaviv_buffer.c +1 -2
index 0c9c40720ca9..35225ff8792d 100644
@@ -397,8 +397,7 @@ void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, u32 exec_state,
 		if (switch_mmu_context) {
 			struct etnaviv_iommu_context *old_context = gpu->mmu_context;
 
-			etnaviv_iommu_context_get(mmu_context);
-			gpu->mmu_context = mmu_context;
+			gpu->mmu_context = etnaviv_iommu_context_get(mmu_context);
 			etnaviv_iommu_context_put(old_context);
 		}
 
drivers/gpu/drm/etnaviv/etnaviv_gem.c +1 -2
index cb1faaac380a..519948637186 100644
@@ -304,8 +304,7 @@ struct etnaviv_vram_mapping *etnaviv_gem_mapping_get(
 		list_del(&mapping->obj_node);
 	}
 
-	etnaviv_iommu_context_get(mmu_context);
-	mapping->context = mmu_context;
+	mapping->context = etnaviv_iommu_context_get(mmu_context);
 	mapping->use = 1;
 
 	ret = etnaviv_iommu_map_gem(mmu_context, etnaviv_obj,
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c +1 -2
index 1ba83a90cdef..7085b08b1db4 100644
@@ -534,8 +534,7 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
 		goto err_submit_objects;
 
 	submit->ctx = file->driver_priv;
-	etnaviv_iommu_context_get(submit->ctx->mmu);
-	submit->mmu_context = submit->ctx->mmu;
+	submit->mmu_context = etnaviv_iommu_context_get(submit->ctx->mmu);
 	submit->exec_state = args->exec_state;
 	submit->flags = args->flags;
 
drivers/gpu/drm/etnaviv/etnaviv_gpu.c +25 -18

100 lines not on this page · raw message

drivers/gpu/drm/etnaviv/etnaviv_gpu.h +1 -0
index 8f9bd4edc96a..02478c75f896 100644
@@ -101,6 +101,7 @@ struct etnaviv_gpu {
 	struct workqueue_struct *wq;
 	struct drm_gpu_scheduler sched;
 	bool initialized;
+	bool fe_running;
 
 	/* 'ring'-buffer: */
 	struct etnaviv_cmdbuf buffer;
drivers/gpu/drm/etnaviv/etnaviv_iommu.c +4 -0
index 1a7c89a67bea..afe5dd6a9925 100644
@@ -92,6 +92,10 @@ static void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu,
 	struct etnaviv_iommuv1_context *v1_context = to_v1_context(context);
 	u32 pgtable;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	/* set base addresses */
 	gpu_write(gpu, VIVS_MC_MEMORY_BASE_ADDR_RA, context->global->memory_base);
 	gpu_write(gpu, VIVS_MC_MEMORY_BASE_ADDR_FE, context->global->memory_base);
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c +8 -0
index f8bf488e9d71..d664ae29ae20 100644
@@ -172,6 +172,10 @@ static void etnaviv_iommuv2_restore_nonsec(struct etnaviv_gpu *gpu,
 	if (gpu_read(gpu, VIVS_MMUv2_CONTROL) & VIVS_MMUv2_CONTROL_ENABLE)
 		return;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	prefetch = etnaviv_buffer_config_mmuv2(gpu,
 				(u32)v2_context->mtlb_dma,
 				(u32)context->global->bad_page_dma);
@@ -192,6 +196,10 @@ static void etnaviv_iommuv2_restore_sec(struct etnaviv_gpu *gpu,
 	if (gpu_read(gpu, VIVS_MMUv2_SEC_CONTROL) & VIVS_MMUv2_SEC_CONTROL_ENABLE)
 		return;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	gpu_write(gpu, VIVS_MMUv2_PTA_ADDRESS_LOW,
 		  lower_32_bits(context->global->v2.pta_dma));
 	gpu_write(gpu, VIVS_MMUv2_PTA_ADDRESS_HIGH,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c +1 -0
index 3607d348c298..707f5c1a5874 100644
@@ -204,6 +204,7 @@ static int etnaviv_iommu_find_iova(struct etnaviv_iommu_context *context,
 		 */
 		list_for_each_entry_safe(m, n, &list, scan_node) {
 			etnaviv_iommu_remove_mapping(context, m);
+			etnaviv_iommu_context_put(m->context);
 			m->context = NULL;
 			list_del_init(&m->mmu_node);
 			list_del_init(&m->scan_node);
drivers/gpu/drm/etnaviv/etnaviv_mmu.h +3 -1
index d1d6902fd13b..e4a0b7d09c2e 100644
@@ -105,9 +105,11 @@ void etnaviv_iommu_dump(struct etnaviv_iommu_context *ctx, void *buf);
 struct etnaviv_iommu_context *
 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global,
 			   struct etnaviv_cmdbuf_suballoc *suballoc);
-static inline void etnaviv_iommu_context_get(struct etnaviv_iommu_context *ctx)
+static inline struct etnaviv_iommu_context *
+etnaviv_iommu_context_get(struct etnaviv_iommu_context *ctx)
 {
 	kref_get(&ctx->refcount);
+	return ctx;
 }
 void etnaviv_iommu_context_put(struct etnaviv_iommu_context *ctx);
 void etnaviv_iommu_restore(struct etnaviv_gpu *gpu,
drivers/gpu/drm/exynos/exynos_drm_dma.c +2 -0
index 58b89ec11b0e..a3c9d8b9e1a1 100644
@@ -140,6 +140,8 @@ int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
 				EXYNOS_DEV_ADDR_START, EXYNOS_DEV_ADDR_SIZE);
 		else if (IS_ENABLED(CONFIG_IOMMU_DMA))
 			mapping = iommu_get_domain_for_dev(priv->dma_dev);
+		else
+			mapping = ERR_PTR(-ENODEV);
 
 		if (IS_ERR(mapping))
 			return PTR_ERR(mapping);
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +3 -14
index 20194d86d033..4f0c6d58e06f 100644
@@ -108,13 +108,6 @@ static void mdp4_disable_commit(struct msm_kms *kms)
 
 static void mdp4_prepare_commit(struct msm_kms *kms, struct drm_atomic_state *state)
 {
-	int i;
-	struct drm_crtc *crtc;
-	struct drm_crtc_state *crtc_state;
-
-	/* see 119ecb7fd */
-	for_each_new_crtc_in_state(state, crtc, crtc_state, i)
-		drm_crtc_vblank_get(crtc);
 }
 
 static void mdp4_flush_commit(struct msm_kms *kms, unsigned crtc_mask)
@@ -133,12 +126,6 @@ static void mdp4_wait_flush(struct msm_kms *kms, unsigned crtc_mask)
 
 static void mdp4_complete_commit(struct msm_kms *kms, unsigned crtc_mask)
 {
-	struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
-	struct drm_crtc *crtc;
-
-	/* see 119ecb7fd */
-	for_each_crtc_mask(mdp4_kms->dev, crtc, crtc_mask)
-		drm_crtc_vblank_put(crtc);
 }
 
 static long mdp4_round_pixclk(struct msm_kms *kms, unsigned long rate,
@@ -418,6 +405,7 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
 {
 	struct platform_device *pdev = to_platform_device(dev->dev);
 	struct mdp4_platform_config *config = mdp4_get_config(pdev);
+	struct msm_drm_private *priv = dev->dev_private;
 	struct mdp4_kms *mdp4_kms;
 	struct msm_kms *kms = NULL;
 	struct msm_gem_address_space *aspace;
@@ -432,7 +420,8 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
 
 	mdp_kms_init(&mdp4_kms->base, &kms_funcs);
 
-	kms = &mdp4_kms->base.base;
+	priv->kms = &mdp4_kms->base.base;
+	kms = priv->kms;
 
 	mdp4_kms->dev = dev;
 
drivers/gpu/drm/panfrost/panfrost_mmu.c +11 -20
index bfd503d22088..8a014dc11571 100644
@@ -52,25 +52,16 @@ static int write_cmd(struct panfrost_device *pfdev, u32 as_nr, u32 cmd)
 }
 
 static void lock_region(struct panfrost_device *pfdev, u32 as_nr,
-			u64 iova, size_t size)
+			u64 iova, u64 size)
 {
 	u8 region_width;
 	u64 region = iova & PAGE_MASK;
-	/*
-	 * fls returns:
-	 * 1 .. 32
-	 *
-	 * 10 + fls(num_pages)
-	 * results in the range (11 .. 42)
-	 */
-
-	size = round_up(size, PAGE_SIZE);
 
-	region_width = 10 + fls(size >> PAGE_SHIFT);
-	if ((size >> PAGE_SHIFT) != (1ul << (region_width - 11))) {
-		/* not pow2, so must go up to the next pow2 */
-		region_width += 1;
-	}
+	/* The size is encoded as ceil(log2) minus(1), which may be calculated
+	 * with fls. The size must be clamped to hardware bounds.
+	 */
+	size = max_t(u64, size, AS_LOCK_REGION_MIN_SIZE);
+	region_width = fls64(size - 1) - 1;
 	region |= region_width;
 
 	/* Lock the region that needs to be updated */
@@ -81,7 +72,7 @@ static void lock_region(struct panfrost_device *pfdev, u32 as_nr,
 
 
 static int mmu_hw_do_operation_locked(struct panfrost_device *pfdev, int as_nr,
-				      u64 iova, size_t size, u32 op)
+				      u64 iova, u64 size, u32 op)
 {
 	if (as_nr < 0)
 		return 0;
@@ -98,7 +89,7 @@ static int mmu_hw_do_operation_locked(struct panfrost_device *pfdev, int as_nr,
 
 static int mmu_hw_do_operation(struct panfrost_device *pfdev,
 			       struct panfrost_mmu *mmu,
-			       u64 iova, size_t size, u32 op)
+			       u64 iova, u64 size, u32 op)
 {
 	int ret;
 
@@ -115,7 +106,7 @@ static void panfrost_mmu_enable(struct panfrost_device *pfdev, struct panfrost_m
 	u64 transtab = cfg->arm_mali_lpae_cfg.transtab;
 	u64 memattr = cfg->arm_mali_lpae_cfg.memattr;
 
-	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0UL, AS_COMMAND_FLUSH_MEM);
+	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0ULL, AS_COMMAND_FLUSH_MEM);
 
 	mmu_write(pfdev, AS_TRANSTAB_LO(as_nr), transtab & 0xffffffffUL);
 	mmu_write(pfdev, AS_TRANSTAB_HI(as_nr), transtab >> 32);
@@ -131,7 +122,7 @@ static void panfrost_mmu_enable(struct panfrost_device *pfdev, struct panfrost_m
 
 static void panfrost_mmu_disable(struct panfrost_device *pfdev, u32 as_nr)
 {
-	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0UL, AS_COMMAND_FLUSH_MEM);
+	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0ULL, AS_COMMAND_FLUSH_MEM);
 
 	mmu_write(pfdev, AS_TRANSTAB_LO(as_nr), 0);
 	mmu_write(pfdev, AS_TRANSTAB_HI(as_nr), 0);
@@ -231,7 +222,7 @@ static size_t get_pgsize(u64 addr, size_t size)
 
 static void panfrost_mmu_flush_range(struct panfrost_device *pfdev,
 				     struct panfrost_mmu *mmu,
-				     u64 iova, size_t size)
+				     u64 iova, u64 size)
 {
 	if (mmu->as < 0)
 		return;
drivers/gpu/drm/panfrost/panfrost_regs.h +2 -0
index eddaa62ad8b0..2ae3a4d301d3 100644
@@ -318,6 +318,8 @@
 #define AS_FAULTSTATUS_ACCESS_TYPE_READ		(0x2 << 8)
 #define AS_FAULTSTATUS_ACCESS_TYPE_WRITE	(0x3 << 8)
 
+#define AS_LOCK_REGION_MIN_SIZE                 (1ULL << 15)
+
 #define gpu_write(dev, reg, data) writel(data, dev->iomem + reg)
 #define gpu_read(dev, reg) readl(dev->iomem + reg)
 
drivers/hid/hid-input.c +0 -2
index 6d551ae251c0..ea4c97f5b073 100644
@@ -415,8 +415,6 @@ static int hidinput_get_battery_property(struct power_supply *psy,
 
 		if (dev->battery_status == HID_BATTERY_UNKNOWN)
 			val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
-		else if (dev->battery_capacity == 100)
-			val->intval = POWER_SUPPLY_STATUS_FULL;
 		else
 			val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
 		break;
drivers/hid/i2c-hid/i2c-hid-core.c +2 -3
index 6f7a3702b5fb..ac076ac73de5 100644
@@ -178,8 +178,6 @@ static const struct i2c_hid_quirks {
 		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
 	{ I2C_VENDOR_ID_RAYDIUM, I2C_PRODUCT_ID_RAYDIUM_3118,
 		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
-	{ USB_VENDOR_ID_ELAN, HID_ANY_ID,
-		 I2C_HID_QUIRK_BOGUS_IRQ },
 	{ USB_VENDOR_ID_ALPS_JP, HID_ANY_ID,
 		 I2C_HID_QUIRK_RESET_ON_RESUME },
 	{ I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA2393,
@@ -190,7 +188,8 @@ static const struct i2c_hid_quirks {
 	 * Sending the wakeup after reset actually break ELAN touchscreen controller
 	 */
 	{ USB_VENDOR_ID_ELAN, HID_ANY_ID,
-		 I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET },
+		 I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET |
+		 I2C_HID_QUIRK_BOGUS_IRQ },
 	{ 0, 0 }
 };
 
drivers/iio/dac/ad5624r_spi.c +17 -1
index e6c022e1dc1c..17cc8b3fc5d8 100644
@@ -229,7 +229,7 @@ static int ad5624r_probe(struct spi_device *spi)
 	if (!indio_dev)
 		return -ENOMEM;
 	st = iio_priv(indio_dev);
-	st->reg = devm_regulator_get(&spi->dev, "vcc");
+	st->reg = devm_regulator_get_optional(&spi->dev, "vref");
 	if (!IS_ERR(st->reg)) {
 		ret = regulator_enable(st->reg);
 		if (ret)
@@ -240,6 +240,22 @@ static int ad5624r_probe(struct spi_device *spi)
 			goto error_disable_reg;
 
 		voltage_uv = ret;
+	} else {
+		if (PTR_ERR(st->reg) != -ENODEV)
+			return PTR_ERR(st->reg);
+		/* Backwards compatibility. This naming is not correct */
+		st->reg = devm_regulator_get_optional(&spi->dev, "vcc");
+		if (!IS_ERR(st->reg)) {
+			ret = regulator_enable(st->reg);
+			if (ret)
+				return ret;
+
+			ret = regulator_get_voltage(st->reg);
+			if (ret < 0)
+				goto error_disable_reg;
+
+			voltage_uv = ret;
+		}
 	}
 
 	spi_set_drvdata(spi, indio_dev);
drivers/infiniband/core/iwcm.c +12 -7
index da8adadf4755..75b6da00065a 100644
@@ -1187,29 +1187,34 @@ static int __init iw_cm_init(void)
 
 	ret = iwpm_init(RDMA_NL_IWCM);
 	if (ret)
-		pr_err("iw_cm: couldn't init iwpm\n");
-	else
-		rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
+		return ret;
+
 	iwcm_wq = alloc_ordered_workqueue("iw_cm_wq", 0);
 	if (!iwcm_wq)
-		return -ENOMEM;
+		goto err_alloc;
 
 	iwcm_ctl_table_hdr = register_net_sysctl(&init_net, "net/iw_cm",
 						 iwcm_ctl_table);
 	if (!iwcm_ctl_table_hdr) {
 		pr_err("iw_cm: couldn't register sysctl paths\n");
-		destroy_workqueue(iwcm_wq);
-		return -ENOMEM;
+		goto err_sysctl;
 	}
 
+	rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
 	return 0;
+
+err_sysctl:
+	destroy_workqueue(iwcm_wq);
+err_alloc:
+	iwpm_exit(RDMA_NL_IWCM);
+	return -ENOMEM;
 }
 
 static void __exit iw_cm_cleanup(void)
 {
+	rdma_nl_unregister(RDMA_NL_IWCM);
 	unregister_net_sysctl_table(iwcm_ctl_table_hdr);
 	destroy_workqueue(iwcm_wq);
-	rdma_nl_unregister(RDMA_NL_IWCM);
 	iwpm_exit(RDMA_NL_IWCM);
 }
 
drivers/infiniband/hw/efa/efa_verbs.c +0 -1
index 4edae89e8e3c..17f1e59ab12e 100644
@@ -745,7 +745,6 @@ struct ib_qp *efa_create_qp(struct ib_pd *ibpd,
 	rq_entry_inserted = true;
 	qp->qp_handle = create_qp_resp.qp_handle;
 	qp->ibqp.qp_num = create_qp_resp.qp_num;
-	qp->ibqp.qp_type = init_attr->qp_type;
 	qp->max_send_wr = init_attr->cap.max_send_wr;
 	qp->max_recv_wr = init_attr->cap.max_recv_wr;
 	qp->max_send_sge = init_attr->cap.max_send_sge;
drivers/infiniband/hw/hfi1/init.c +1 -6
index fbff6b2f00e7..1256dbd5b2ef 100644
@@ -664,12 +664,7 @@ void hfi1_init_pportdata(struct pci_dev *pdev, struct hfi1_pportdata *ppd,
 
 	ppd->pkeys[default_pkey_idx] = DEFAULT_P_KEY;
 	ppd->part_enforce |= HFI1_PART_ENFORCE_IN;
-
-	if (loopback) {
-		dd_dev_err(dd, "Faking data partition 0x8001 in idx %u\n",
-			   !default_pkey_idx);
-		ppd->pkeys[!default_pkey_idx] = 0x8001;
-	}
+	ppd->pkeys[0] = 0x8001;
 
 	INIT_WORK(&ppd->link_vc_work, handle_verify_cap);
 	INIT_WORK(&ppd->link_up_work, handle_link_up);
drivers/md/dm-crypt.c +6 -1
index d85648b9c247..571c04e70343 100644
@@ -2092,7 +2092,12 @@ static void *crypt_page_alloc(gfp_t gfp_mask, void *pool_data)
 	struct crypt_config *cc = pool_data;
 	struct page *page;
 
-	if (unlikely(percpu_counter_compare(&cc->n_allocated_pages, dm_crypt_pages_per_client) >= 0) &&
+	/*
+	 * Note, percpu_counter_read_positive() may over (and under) estimate
+	 * the current usage by at most (batch - 1) * num_online_cpus() pages,
+	 * but avoids potential spinlock contention of an exact result.
+	 */
+	if (unlikely(percpu_counter_read_positive(&cc->n_allocated_pages) >= dm_crypt_pages_per_client) &&
 	    likely(gfp_mask & __GFP_NORETRY))
 		return NULL;
 
drivers/media/dvb-frontends/dib8000.c +41 -17

97 lines not on this page · raw message

drivers/media/i2c/imx258.c +2 -2
index f86ae18bc104..ffaa4a91e571 100644
@@ -22,7 +22,7 @@
 #define IMX258_CHIP_ID			0x0258
 
 /* V_TIMING internal */
-#define IMX258_VTS_30FPS		0x0c98
+#define IMX258_VTS_30FPS		0x0c50
 #define IMX258_VTS_30FPS_2K		0x0638
 #define IMX258_VTS_30FPS_VGA		0x034c
 #define IMX258_VTS_MAX			0xffff
@@ -46,7 +46,7 @@
 /* Analog gain control */
 #define IMX258_REG_ANALOG_GAIN		0x0204
 #define IMX258_ANA_GAIN_MIN		0
-#define IMX258_ANA_GAIN_MAX		0x1fff
+#define IMX258_ANA_GAIN_MAX		480
 #define IMX258_ANA_GAIN_STEP		1
 #define IMX258_ANA_GAIN_DEFAULT		0x0
 
drivers/media/i2c/tda1997x.c +3 -2
index 1088161498df..18a2027ba145 100644
@@ -1695,14 +1695,15 @@ static int tda1997x_query_dv_timings(struct v4l2_subdev *sd,
 				     struct v4l2_dv_timings *timings)
 {
 	struct tda1997x_state *state = to_state(sd);
+	int ret;
 
 	v4l_dbg(1, debug, state->client, "%s\n", __func__);
 	memset(timings, 0, sizeof(struct v4l2_dv_timings));
 	mutex_lock(&state->lock);
-	tda1997x_detect_std(state, timings);
+	ret = tda1997x_detect_std(state, timings);
 	mutex_unlock(&state->lock);
 
-	return 0;
+	return ret;
 }
 
 static const struct v4l2_subdev_video_ops tda1997x_video_ops = {
drivers/media/platform/tegra-cec/tegra_cec.c +6 -4
index a632602131f2..efb80a78d2fa 100644
@@ -366,7 +366,11 @@ static int tegra_cec_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
-	clk_prepare_enable(cec->clk);
+	ret = clk_prepare_enable(cec->clk);
+	if (ret) {
+		dev_err(&pdev->dev, "Unable to prepare clock for CEC\n");
+		return ret;
+	}
 
 	/* set context info. */
 	cec->dev = &pdev->dev;
@@ -446,9 +450,7 @@ static int tegra_cec_resume(struct platform_device *pdev)
 
 	dev_notice(&pdev->dev, "Resuming\n");
 
-	clk_prepare_enable(cec->clk);
-
-	return 0;
+	return clk_prepare_enable(cec->clk);
 }
 #endif
 
drivers/media/rc/rc-loopback.c +1 -1
index ef8b83b707df..13ab7312fa3b 100644
@@ -42,7 +42,7 @@ static int loop_set_tx_mask(struct rc_dev *dev, u32 mask)
 
 	if ((mask & (RXMASK_REGULAR | RXMASK_LEARNING)) != mask) {
 		dprintk("invalid tx mask: %u\n", mask);
-		return -EINVAL;
+		return 2;
 	}
 
 	dprintk("setting tx mask: %u\n", mask);
drivers/media/usb/uvc/uvc_v4l2.c +23 -11
index 7d60dd3b0bd8..db7f8f8ee2f9 100644
@@ -894,8 +894,8 @@ static int uvc_ioctl_g_input(struct file *file, void *fh, unsigned int *input)
 {
 	struct uvc_fh *handle = fh;
 	struct uvc_video_chain *chain = handle->chain;
+	u8 *buf;
 	int ret;
-	u8 i;
 
 	if (chain->selector == NULL ||
 	    (chain->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
@@ -903,22 +903,27 @@ static int uvc_ioctl_g_input(struct file *file, void *fh, unsigned int *input)
 		return 0;
 	}
 
+	buf = kmalloc(1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
 	ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, chain->selector->id,
 			     chain->dev->intfnum,  UVC_SU_INPUT_SELECT_CONTROL,
-			     &i, 1);
-	if (ret < 0)
-		return ret;
+			     buf, 1);
+	if (!ret)
+		*input = *buf - 1;
 
-	*input = i - 1;
-	return 0;
+	kfree(buf);
+
+	return ret;
 }
 
 static int uvc_ioctl_s_input(struct file *file, void *fh, unsigned int input)
 {
 	struct uvc_fh *handle = fh;
 	struct uvc_video_chain *chain = handle->chain;
+	u8 *buf;
 	int ret;
-	u32 i;
 
 	ret = uvc_acquire_privileges(handle);
 	if (ret < 0)
@@ -934,10 +939,17 @@ static int uvc_ioctl_s_input(struct file *file, void *fh, unsigned int input)
 	if (input >= chain->selector->bNrInPins)
 		return -EINVAL;
 
-	i = input + 1;
-	return uvc_query_ctrl(chain->dev, UVC_SET_CUR, chain->selector->id,
-			      chain->dev->intfnum, UVC_SU_INPUT_SELECT_CONTROL,
-			      &i, 1);
+	buf = kmalloc(1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	*buf = input + 1;
+	ret = uvc_query_ctrl(chain->dev, UVC_SET_CUR, chain->selector->id,
+			     chain->dev->intfnum, UVC_SU_INPUT_SELECT_CONTROL,
+			     buf, 1);
+	kfree(buf);
+
+	return ret;
 }
 
 static int uvc_ioctl_queryctrl(struct file *file, void *fh,
drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
index 4f23e939ead0..60454e1b727e 100644
@@ -196,7 +196,7 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t,
 	if (!v4l2_valid_dv_timings(t, cap, fnc, fnc_handle))
 		return false;
 
-	for (i = 0; i < v4l2_dv_timings_presets[i].bt.width; i++) {
+	for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {
 		if (v4l2_valid_dv_timings(v4l2_dv_timings_presets + i, cap,
 					  fnc, fnc_handle) &&
 		    v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i,
@@ -218,7 +218,7 @@ bool v4l2_find_dv_timings_cea861_vic(struct v4l2_dv_timings *t, u8 vic)
 {
 	unsigned int i;
 
-	for (i = 0; i < v4l2_dv_timings_presets[i].bt.width; i++) {
+	for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {
 		const struct v4l2_bt_timings *bt =
 			&v4l2_dv_timings_presets[i].bt;
 
drivers/mfd/ab8500-core.c +1 -1
index 3e9dc92cb467..842de1f352df 100644
@@ -493,7 +493,7 @@ static int ab8500_handle_hierarchical_line(struct ab8500 *ab8500,
 		if (line == AB8540_INT_GPIO43F || line == AB8540_INT_GPIO44F)
 			line += 1;
 
-		handle_nested_irq(irq_create_mapping(ab8500->domain, line));
+		handle_nested_irq(irq_find_mapping(ab8500->domain, line));
 	}
 
 	return 0;
drivers/mfd/axp20x.c +2 -1
index aa59496e4376..9db1000944c3 100644
@@ -125,12 +125,13 @@ static const struct regmap_range axp288_writeable_ranges[] = {
 
 static const struct regmap_range axp288_volatile_ranges[] = {
 	regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON),
+	regmap_reg_range(AXP22X_PWR_OUT_CTRL1, AXP22X_ALDO3_V_OUT),
 	regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL),
 	regmap_reg_range(AXP288_BC_DET_STAT, AXP20X_VBUS_IPSOUT_MGMT),
 	regmap_reg_range(AXP20X_CHRG_BAK_CTRL, AXP20X_CHRG_BAK_CTRL),
 	regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L),
 	regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL),
-	regmap_reg_range(AXP22X_GPIO_STATE, AXP22X_GPIO_STATE),
+	regmap_reg_range(AXP20X_GPIO1_CTRL, AXP22X_GPIO_STATE),
 	regmap_reg_range(AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L),
 	regmap_reg_range(AXP20X_FG_RES, AXP288_FG_CC_CAP_REG),
 };
drivers/mfd/db8500-prcmu.c +6 -8
index dfac6afa82ca..f1f2ad9ff0b3 100644
@@ -1695,22 +1695,20 @@ static long round_clock_rate(u8 clock, unsigned long rate)
 }
 
 static const unsigned long db8500_armss_freqs[] = {
-	200000000,
-	400000000,
-	800000000,
+	199680000,
+	399360000,
+	798720000,
 	998400000
 };
 
 /* The DB8520 has slightly higher ARMSS max frequency */
 static const unsigned long db8520_armss_freqs[] = {
-	200000000,
-	400000000,
-	800000000,
+	199680000,
+	399360000,
+	798720000,
 	1152000000
 };
 
-
-
 static long round_armss_rate(unsigned long rate)
 {
 	unsigned long freq = 0;
drivers/mfd/stmpe.c +2 -2
index 1aee3b3253fc..508349399f8a 100644
@@ -1091,7 +1091,7 @@ static irqreturn_t stmpe_irq(int irq, void *data)
 
 	if (variant->id_val == STMPE801_ID ||
 	    variant->id_val == STMPE1600_ID) {
-		int base = irq_create_mapping(stmpe->domain, 0);
+		int base = irq_find_mapping(stmpe->domain, 0);
 
 		handle_nested_irq(base);
 		return IRQ_HANDLED;
@@ -1119,7 +1119,7 @@ static irqreturn_t stmpe_irq(int irq, void *data)
 		while (status) {
 			int bit = __ffs(status);
 			int line = bank * 8 + bit;
-			int nestedirq = irq_create_mapping(stmpe->domain, line);
+			int nestedirq = irq_find_mapping(stmpe->domain, line);
 
 			handle_nested_irq(nestedirq);
 			status &= ~(1 << bit);
drivers/mfd/tc3589x.c +1 -1
index 67c9995bb1aa..23cfbd050120 100644
@@ -187,7 +187,7 @@ static irqreturn_t tc3589x_irq(int irq, void *data)
 
 	while (status) {
 		int bit = __ffs(status);
-		int virq = irq_create_mapping(tc3589x->domain, bit);
+		int virq = irq_find_mapping(tc3589x->domain, bit);
 
 		handle_nested_irq(virq);
 		status &= ~(1 << bit);
drivers/mfd/tqmx86.c +2 -0
index 22d2f02d855c..ccc5a9ac788c 100644
@@ -210,6 +210,8 @@ static int tqmx86_probe(struct platform_device *pdev)
 
 		/* Assumes the IRQ resource is first. */
 		tqmx_gpio_resources[0].start = gpio_irq;
+	} else {
+		tqmx_gpio_resources[0].flags = 0;
 	}
 
 	ocores_platfom_data.clock_khz = tqmx86_board_id_to_clk_rate(board_id);
drivers/mfd/wm8994-irq.c +1 -1
index 6c3a619e2628..651a028bc519 100644
@@ -154,7 +154,7 @@ static irqreturn_t wm8994_edge_irq(int irq, void *data)
 	struct wm8994 *wm8994 = data;
 
 	while (gpio_get_value_cansleep(wm8994->pdata.irq_gpio))
-		handle_nested_irq(irq_create_mapping(wm8994->edge_irq, 0));
+		handle_nested_irq(irq_find_mapping(wm8994->edge_irq, 0));
 
 	return IRQ_HANDLED;
 }
drivers/misc/vmw_vmci/vmci_queue_pair.c +4 -2
index c2338750313c..a49782dd903c 100644
@@ -2238,7 +2238,8 @@ int vmci_qp_broker_map(struct vmci_handle handle,
 
 	result = VMCI_SUCCESS;
 
-	if (context_id != VMCI_HOST_CONTEXT_ID) {
+	if (context_id != VMCI_HOST_CONTEXT_ID &&
+	    !QPBROKERSTATE_HAS_MEM(entry)) {
 		struct vmci_qp_page_store page_store;
 
 		page_store.pages = guest_mem;
@@ -2345,7 +2346,8 @@ int vmci_qp_broker_unmap(struct vmci_handle handle,
 		goto out;
 	}
 
-	if (context_id != VMCI_HOST_CONTEXT_ID) {
+	if (context_id != VMCI_HOST_CONTEXT_ID &&
+	    QPBROKERSTATE_HAS_MEM(entry)) {
 		qp_acquire_queue_mutex(entry->produce_q);
 		result = qp_save_headers(entry);
 		if (result < VMCI_SUCCESS)
drivers/mmc/core/block.c +1 -2
index 8322d22a59c4..e92f9373e227 100644
@@ -591,6 +591,7 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
 	}
 
 	mmc_wait_for_req(card->host, &mrq);
+	memcpy(&idata->ic.response, cmd.resp, sizeof(cmd.resp));
 
 	if (cmd.error) {
 		dev_err(mmc_dev(card->host), "%s: cmd error %d\n",
@@ -640,8 +641,6 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
 	if (idata->ic.postsleep_min_us)
 		usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
 
-	memcpy(&(idata->ic.response), cmd.resp, sizeof(cmd.resp));
-
 	if (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
 		/*
 		 * Ensure RPMB/R1B command has completed by polling CMD13
drivers/mmc/host/rtsx_pci_sdmmc.c +23 -13
index 11087976ab19..9ff718b61c72 100644
@@ -539,9 +539,22 @@ static int sd_write_long_data(struct realtek_pci_sdmmc *host,
 	return 0;
 }
 
+static inline void sd_enable_initial_mode(struct realtek_pci_sdmmc *host)
+{
+	rtsx_pci_write_register(host->pcr, SD_CFG1,
+			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_128);
+}
+
+static inline void sd_disable_initial_mode(struct realtek_pci_sdmmc *host)
+{
+	rtsx_pci_write_register(host->pcr, SD_CFG1,
+			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_0);
+}
+
 static int sd_rw_multi(struct realtek_pci_sdmmc *host, struct mmc_request *mrq)
 {
 	struct mmc_data *data = mrq->data;
+	int err;
 
 	if (host->sg_count < 0) {
 		data->error = host->sg_count;
@@ -550,22 +563,19 @@ static int sd_rw_multi(struct realtek_pci_sdmmc *host, struct mmc_request *mrq)
 		return data->error;
 	}
 
-	if (data->flags & MMC_DATA_READ)
-		return sd_read_long_data(host, mrq);
+	if (data->flags & MMC_DATA_READ) {
+		if (host->initial_mode)
+			sd_disable_initial_mode(host);
 
-	return sd_write_long_data(host, mrq);
-}
+		err = sd_read_long_data(host, mrq);
 
-static inline void sd_enable_initial_mode(struct realtek_pci_sdmmc *host)
-{
-	rtsx_pci_write_register(host->pcr, SD_CFG1,
-			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_128);
-}
+		if (host->initial_mode)
+			sd_enable_initial_mode(host);
 
-static inline void sd_disable_initial_mode(struct realtek_pci_sdmmc *host)
-{
-	rtsx_pci_write_register(host->pcr, SD_CFG1,
-			SD_CLK_DIVIDE_MASK, SD_CLK_DIVIDE_0);
+		return err;
+	}
+
+	return sd_write_long_data(host, mrq);
 }
 
 static void sd_normal_rw(struct realtek_pci_sdmmc *host,
drivers/mmc/host/sdhci-of-arasan.c +15 -3
index 7023cbec4017..dd10f7abf5a7 100644
@@ -192,7 +192,12 @@ static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock)
 			 * through low speeds without power cycling.
 			 */
 			sdhci_set_clock(host, host->max_clk);
-			phy_power_on(sdhci_arasan->phy);
+			if (phy_power_on(sdhci_arasan->phy)) {
+				pr_err("%s: Cannot power on phy.\n",
+				       mmc_hostname(host->mmc));
+				return;
+			}
+
 			sdhci_arasan->is_phy_on = true;
 
 			/*
@@ -228,7 +233,12 @@ static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock)
 		msleep(20);
 
 	if (ctrl_phy) {
-		phy_power_on(sdhci_arasan->phy);
+		if (phy_power_on(sdhci_arasan->phy)) {
+			pr_err("%s: Cannot power on phy.\n",
+			       mmc_hostname(host->mmc));
+			return;
+		}
+
 		sdhci_arasan->is_phy_on = true;
 	}
 }
@@ -416,7 +426,9 @@ static int sdhci_arasan_suspend(struct device *dev)
 		ret = phy_power_off(sdhci_arasan->phy);
 		if (ret) {
 			dev_err(dev, "Cannot power off phy.\n");
-			sdhci_resume_host(host);
+			if (sdhci_resume_host(host))
+				dev_err(dev, "Cannot resume host.\n");
+
 			return ret;
 		}
 		sdhci_arasan->is_phy_on = false;
drivers/mtd/nand/raw/cafe_nand.c +3 -1
index 2d1c22dc88c1..cc5009200cc2 100644
@@ -757,7 +757,7 @@ static int cafe_nand_probe(struct pci_dev *pdev,
 			  "CAFE NAND", mtd);
 	if (err) {
 		dev_warn(&pdev->dev, "Could not register IRQ %d\n", pdev->irq);
-		goto out_ior;
+		goto out_free_rs;
 	}
 
 	/* Disable master reset, enable NAND clock */
@@ -801,6 +801,8 @@ static int cafe_nand_probe(struct pci_dev *pdev,
 	/* Disable NAND IRQ in global IRQ mask register */
 	cafe_writel(cafe, ~1 & cafe_readl(cafe, GLOBAL_IRQ_MASK), GLOBAL_IRQ_MASK);
 	free_irq(pdev->irq, mtd);
+ out_free_rs:
+	free_rs(cafe->rs);
  out_ior:
 	pci_iounmap(pdev, cafe->mmio);
  out_free_mtd:
drivers/net/bonding/bond_main.c +2 -1
index e21643377162..1949f631e1bc 100644
@@ -1926,7 +1926,6 @@ static int __bond_release_one(struct net_device *bond_dev,
 	/* recompute stats just before removing the slave */
 	bond_get_stats(bond->dev, &bond->bond_stats);
 
-	bond_upper_dev_unlink(bond, slave);
 	/* unregister rx_handler early so bond_handle_frame wouldn't be called
 	 * for this slave anymore.
 	 */
@@ -1935,6 +1934,8 @@ static int __bond_release_one(struct net_device *bond_dev,
 	if (BOND_MODE(bond) == BOND_MODE_8023AD)
 		bond_3ad_unbind_slave(slave);
 
+	bond_upper_dev_unlink(bond, slave);
+
 	if (bond_mode_can_use_xmit_hash(bond))
 		bond_update_slave_arr(bond, slave);
 
drivers/net/dsa/b53/b53_common.c +1 -2
index e78b683f7305..825d840cdb8c 100644
@@ -2353,9 +2353,8 @@ static int b53_switch_init(struct b53_device *dev)
 			dev->cpu_port = 5;
 	}
 
-	/* cpu port is always last */
-	dev->num_ports = dev->cpu_port + 1;
 	dev->enabled_ports |= BIT(dev->cpu_port);
+	dev->num_ports = fls(dev->enabled_ports);
 
 	/* Include non standard CPU port built-in PHYs to be probed */
 	if (is539x(dev) || is531x5(dev)) {
drivers/net/dsa/lantiq_gswip.c +2 -1
index af3d56636a07..3225de0f655f 100644
@@ -837,7 +837,8 @@ static int gswip_setup(struct dsa_switch *ds)
 
 	gswip_switch_mask(priv, 0, GSWIP_MAC_CTRL_2_MLEN,
 			  GSWIP_MAC_CTRL_2p(cpu_port));
-	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8, GSWIP_MAC_FLEN);
+	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8 + ETH_FCS_LEN,
+		       GSWIP_MAC_FLEN);
 	gswip_switch_mask(priv, 0, GSWIP_BM_QUEUE_GCTRL_GL_MOD,
 			  GSWIP_BM_QUEUE_GCTRL);
 
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +1 -1
index cf39623b828b..4630998d47fd 100644
@@ -1246,7 +1246,7 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
 
 	/* SR-IOV capability was enabled but there are no VFs*/
 	if (iov->total == 0) {
-		err = -EINVAL;
+		err = 0;
 		goto failed;
 	}
 
drivers/net/ethernet/chelsio/cxgb/cxgb2.c +1 -0
index 0ccdde366ae1..540d99f59226 100644
@@ -1153,6 +1153,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (!adapter->registered_device_map) {
 		pr_err("%s: could not register any net devices\n",
 		       pci_name(pdev));
+		err = -EINVAL;
 		goto out_release_adapter_res;
 	}
 
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +6 -2
index e64e17516206..db9c8f943811 100644
@@ -56,6 +56,7 @@ MODULE_PARM_DESC(debug, " Network interface message level setting");
 #define HNS3_OUTER_VLAN_TAG	2
 
 #define HNS3_MIN_TX_LEN		33U
+#define HNS3_MIN_TUN_PKT_LEN	65U
 
 /* hns3_pci_tbl - PCI Device ID Table
  *
@@ -931,8 +932,11 @@ static int hns3_set_l2l3l4(struct sk_buff *skb, u8 ol4_proto,
 			       l4.tcp->doff);
 		break;
 	case IPPROTO_UDP:
-		if (hns3_tunnel_csum_bug(skb))
-			return skb_checksum_help(skb);
+		if (hns3_tunnel_csum_bug(skb)) {
+			int ret = skb_put_padto(skb, HNS3_MIN_TUN_PKT_LEN);
+
+			return ret ? ret : skb_checksum_help(skb);
+		}
 
 		hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4CS_B, 1);
 		hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4T_S,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +11 -8
index aa402e267121..f44e8401496b 100644
@@ -1328,9 +1328,10 @@ static void hclge_init_kdump_kernel_config(struct hclge_dev *hdev)
 
 static int hclge_configure(struct hclge_dev *hdev)
 {
+	const struct cpumask *cpumask = cpu_online_mask;
 	struct hclge_cfg cfg;
 	unsigned int i;
-	int ret;
+	int node, ret;
 
 	ret = hclge_get_cfg(hdev, &cfg);
 	if (ret) {
@@ -1390,11 +1391,12 @@ static int hclge_configure(struct hclge_dev *hdev)
 
 	hclge_init_kdump_kernel_config(hdev);
 
-	/* Set the init affinity based on pci func number */
-	i = cpumask_weight(cpumask_of_node(dev_to_node(&hdev->pdev->dev)));
-	i = i ? PCI_FUNC(hdev->pdev->devfn) % i : 0;
-	cpumask_set_cpu(cpumask_local_spread(i, dev_to_node(&hdev->pdev->dev)),
-			&hdev->affinity_mask);
+	/* Set the affinity based on numa node */
+	node = dev_to_node(&hdev->pdev->dev);
+	if (node != NUMA_NO_NODE)
+		cpumask = cpumask_of_node(node);
+
+	cpumask_copy(&hdev->affinity_mask, cpumask);
 
 	return ret;
 }
@@ -6683,11 +6685,12 @@ static void hclge_ae_stop(struct hnae3_handle *handle)
 	hclge_clear_arfs_rules(handle);
 	spin_unlock_bh(&hdev->fd_rule_lock);
 
-	/* If it is not PF reset, the firmware will disable the MAC,
+	/* If it is not PF reset or FLR, the firmware will disable the MAC,
 	 * so it only need to stop phy here.
 	 */
 	if (test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state) &&
-	    hdev->reset_type != HNAE3_FUNC_RESET) {
+	    hdev->reset_type != HNAE3_FUNC_RESET &&
+	    hdev->reset_type != HNAE3_FLR_RESET) {
 		hclge_mac_stop_phy(hdev);
 		hclge_update_link_status(hdev);
 		return;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +3 -3
index ea348ebbbf2e..db2e9dd5681e 100644
@@ -1956,6 +1956,8 @@ static irqreturn_t hclgevf_misc_irq_handle(int irq, void *data)
 
 	hclgevf_enable_vector(&hdev->misc_vector, false);
 	event_cause = hclgevf_check_evt_cause(hdev, &clearval);
+	if (event_cause != HCLGEVF_VECTOR0_EVENT_OTHER)
+		hclgevf_clear_event_cause(hdev, clearval);
 
 	switch (event_cause) {
 	case HCLGEVF_VECTOR0_EVENT_RST:
@@ -1968,10 +1970,8 @@ static irqreturn_t hclgevf_misc_irq_handle(int irq, void *data)
 		break;
 	}
 
-	if (event_cause != HCLGEVF_VECTOR0_EVENT_OTHER) {
-		hclgevf_clear_event_cause(hdev, clearval);
+	if (event_cause != HCLGEVF_VECTOR0_EVENT_OTHER)
 		hclgevf_enable_vector(&hdev->misc_vector, true);
-	}
 
 	return IRQ_HANDLED;
 }
drivers/net/ethernet/ibm/ibmvnic.c +8 -0
index ecfe588f330e..cfe7229593ea 100644
@@ -4277,6 +4277,14 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
 		return 0;
 	}
 
+	if (adapter->failover_pending) {
+		adapter->init_done_rc = -EAGAIN;
+		netdev_dbg(netdev, "Failover pending, ignoring login response\n");
+		complete(&adapter->init_done);
+		/* login response buffer will be released on reset */
+		return 0;
+	}
+
 	netdev->mtu = adapter->req_mtu - ETH_HLEN;
 
 	netdev_dbg(adapter->netdev, "Login Response Buffer:\n");
drivers/net/ethernet/intel/iavf/iavf_main.c +50 -8

135 lines not on this page · raw message

drivers/net/ethernet/intel/igc/igc_main.c +8 -1
index 084cf4a4114a..9ba05d9aa8e0 100644
@@ -2693,6 +2693,7 @@ static irqreturn_t igc_msix_ring(int irq, void *data)
  */
 static int igc_request_msix(struct igc_adapter *adapter)
 {
+	unsigned int num_q_vectors = adapter->num_q_vectors;
 	int i = 0, err = 0, vector = 0, free_vector = 0;
 	struct net_device *netdev = adapter->netdev;
 
@@ -2701,7 +2702,13 @@ static int igc_request_msix(struct igc_adapter *adapter)
 	if (err)
 		goto err_out;
 
-	for (i = 0; i < adapter->num_q_vectors; i++) {
+	if (num_q_vectors > MAX_Q_VECTORS) {
+		num_q_vectors = MAX_Q_VECTORS;
+		dev_warn(&adapter->pdev->dev,
+			 "The number of queue vectors (%d) is higher than max allowed (%d)\n",
+			 adapter->num_q_vectors, MAX_Q_VECTORS);
+	}
+	for (i = 0; i < num_q_vectors; i++) {
 		struct igc_q_vector *q_vector = adapter->q_vector[i];
 
 		vector++;
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +4 -4
index 76547d35cd0e..bf091a6c0cd2 100644
@@ -865,7 +865,7 @@ static void cb_timeout_handler(struct work_struct *work)
 	ent->ret = -ETIMEDOUT;
 	mlx5_core_warn(dev, "cmd[%d]: %s(0x%x) Async, timeout. Will cause a leak of a command resource\n",
 		       ent->idx, mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
-	mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+	mlx5_cmd_comp_handler(dev, 1ULL << ent->idx, true);
 
 out:
 	cmd_ent_put(ent); /* for the cmd_ent_get() took on schedule delayed work */
@@ -977,7 +977,7 @@ static void cmd_work_handler(struct work_struct *work)
 		MLX5_SET(mbox_out, ent->out, status, status);
 		MLX5_SET(mbox_out, ent->out, syndrome, drv_synd);
 
-		mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+		mlx5_cmd_comp_handler(dev, 1ULL << ent->idx, true);
 		return;
 	}
 
@@ -991,7 +991,7 @@ static void cmd_work_handler(struct work_struct *work)
 		poll_timeout(ent);
 		/* make sure we read the descriptor after ownership is SW */
 		rmb();
-		mlx5_cmd_comp_handler(dev, 1UL << ent->idx, (ent->ret == -ETIMEDOUT));
+		mlx5_cmd_comp_handler(dev, 1ULL << ent->idx, (ent->ret == -ETIMEDOUT));
 	}
 }
 
@@ -1051,7 +1051,7 @@ static void wait_func_handle_exec_timeout(struct mlx5_core_dev *dev,
 		       mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
 
 	ent->ret = -ETIMEDOUT;
-	mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+	mlx5_cmd_comp_handler(dev, 1ULL << ent->idx, true);
 }
 
 static int wait_func(struct mlx5_core_dev *dev, struct mlx5_cmd_work_ent *ent)
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +2 -1
index dc36b0db3722..97359417c6e7 100644
@@ -1005,7 +1005,7 @@ int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer)
 	err = mlx5_core_alloc_pd(dev, &tracer->buff.pdn);
 	if (err) {
 		mlx5_core_warn(dev, "FWTracer: Failed to allocate PD %d\n", err);
-		return err;
+		goto err_cancel_work;
 	}
 
 	err = mlx5_fw_tracer_create_mkey(tracer);
@@ -1029,6 +1029,7 @@ int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer)
 	mlx5_core_destroy_mkey(dev, &tracer->buff.mkey);
 err_dealloc_pd:
 	mlx5_core_dealloc_pd(dev, tracer->buff.pdn);
+err_cancel_work:
 	cancel_work_sync(&tracer->read_fw_strings_work);
 	return err;
 }
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +2 -3
index 739bf5dc5a25..5fe4e028567a 100644
@@ -1606,9 +1606,9 @@ static int build_match_list(struct match_list_head *match_head,
 
 		curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC);
 		if (!curr_match) {
+			rcu_read_unlock();
 			free_match_list(match_head, ft_locked);
-			err = -ENOMEM;
-			goto out;
+			return -ENOMEM;
 		}
 		if (!tree_get_node(&g->node)) {
 			kfree(curr_match);
@@ -1617,7 +1617,6 @@ static int build_match_list(struct match_list_head *match_head,
 		curr_match->g = g;
 		list_add_tail(&curr_match->list, &match_head->list);
 	}
-out:
 	rcu_read_unlock();
 	return err;
 }
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c +1 -0
index f012aac83b10..401564b94eb1 100644
@@ -603,6 +603,7 @@ static int dr_cmd_modify_qp_rtr2rts(struct mlx5_core_dev *mdev,
 	MLX5_SET(qpc, qpc, log_ack_req_freq, 0);
 	MLX5_SET(qpc, qpc, retry_count, attr->retry_cnt);
 	MLX5_SET(qpc, qpc, rnr_retry, attr->rnr_retry);
+	MLX5_SET(qpc, qpc, primary_address_path.ack_timeout, 0x8); /* ~1ms */
 
 	return mlx5_core_qp_modify(mdev, MLX5_CMD_OP_RTR2RTS_QP, 0, qpc,
 				   &dr_qp->mqp);
drivers/net/ethernet/qlogic/qed/qed_mcp.c +5 -1
index 5d85ae59bc51..3769b15b04b3 100644
@@ -3173,6 +3173,7 @@ qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
 			  struct qed_nvm_image_att *p_image_att)
 {
 	enum nvm_image_type type;
+	int rc;
 	u32 i;
 
 	/* Translate image_id into MFW definitions */
@@ -3198,7 +3199,10 @@ qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
 		return -EINVAL;
 	}
 
-	qed_mcp_nvm_info_populate(p_hwfn);
+	rc = qed_mcp_nvm_info_populate(p_hwfn);
+	if (rc)
+		return rc;
+
 	for (i = 0; i < p_hwfn->nvm_info.num_images; i++)
 		if (type == p_hwfn->nvm_info.image_att[i].image_type)
 			break;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c +0 -1
index c48a0e2d4d7e..6a009d51ec51 100644
@@ -440,7 +440,6 @@ int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter)
 	QLCWR32(adapter, QLCNIC_CRB_PEG_NET_4 + 0x3c, 1);
 	msleep(20);
 
-	qlcnic_rom_unlock(adapter);
 	/* big hammer don't reset CAM block on reset */
 	QLCWR32(adapter, QLCNIC_ROMUSB_GLB_SW_RESET, 0xfeffffff);
 
drivers/net/ethernet/rdc/r6040.c +8 -1
index 274e5b4bc4ac..f158fdf3aab2 100644
@@ -119,6 +119,8 @@
 #define PHY_ST		0x8A	/* PHY status register */
 #define MAC_SM		0xAC	/* MAC status machine */
 #define  MAC_SM_RST	0x0002	/* MAC status machine reset */
+#define MD_CSC		0xb6	/* MDC speed control register */
+#define  MD_CSC_DEFAULT	0x0030
 #define MAC_ID		0xBE	/* Identifier register */
 
 #define TX_DCNT		0x80	/* TX descriptor count */
@@ -354,8 +356,9 @@ static void r6040_reset_mac(struct r6040_private *lp)
 {
 	void __iomem *ioaddr = lp->base;
 	int limit = MAC_DEF_TIMEOUT;
-	u16 cmd;
+	u16 cmd, md_csc;
 
+	md_csc = ioread16(ioaddr + MD_CSC);
 	iowrite16(MAC_RST, ioaddr + MCR1);
 	while (limit--) {
 		cmd = ioread16(ioaddr + MCR1);
@@ -367,6 +370,10 @@ static void r6040_reset_mac(struct r6040_private *lp)
 	iowrite16(MAC_SM_RST, ioaddr + MAC_SM);
 	iowrite16(0, ioaddr + MAC_SM);
 	mdelay(5);
+
+	/* Restore MDIO clock frequency */
+	if (md_csc != MD_CSC_DEFAULT)
+		iowrite16(md_csc, ioaddr + MD_CSC);
 }
 
 static void r6040_init_mac_regs(struct net_device *dev)
drivers/net/ethernet/renesas/sh_eth.c +1 -0
index 931a44fe7afe..50d85d037230 100644
@@ -2567,6 +2567,7 @@ static int sh_eth_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 	else
 		txdesc->status |= cpu_to_le32(TD_TACT);
 
+	wmb(); /* cur_tx must be incremented after TACT bit was set */
 	mdp->cur_tx++;
 
 	if (!(sh_eth_read(ndev, EDTRR) & mdp->cd->edtrr_trns))
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +8 -10
index 0f56f8e33691..03b11f191c26 100644
@@ -288,10 +288,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 		val &= ~NSS_COMMON_GMAC_CTL_PHY_IFACE_SEL;
 		break;
 	default:
-		dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
-			phy_modes(gmac->phy_mode));
-		err = -EINVAL;
-		goto err_remove_config_dt;
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_GMAC_CTL(gmac->id), val);
 
@@ -308,10 +305,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 			NSS_COMMON_CLK_SRC_CTRL_OFFSET(gmac->id);
 		break;
 	default:
-		dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
-			phy_modes(gmac->phy_mode));
-		err = -EINVAL;
-		goto err_remove_config_dt;
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_CLK_SRC_CTRL, val);
 
@@ -328,8 +322,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 				NSS_COMMON_CLK_GATE_GMII_TX_EN(gmac->id);
 		break;
 	default:
-		/* We don't get here; the switch above will have errored out */
-		unreachable();
+		goto err_unsupported_phy;
 	}
 	regmap_write(gmac->nss_common, NSS_COMMON_CLK_GATE, val);
 
@@ -360,6 +353,11 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 
 	return 0;
 
+err_unsupported_phy:
+	dev_err(&pdev->dev, "Unsupported PHY mode: \"%s\"\n",
+		phy_modes(gmac->phy_mode));
+	err = -EINVAL;
+
 err_remove_config_dt:
 	stmmac_remove_config_dt(pdev, plat_dat);
 
drivers/net/ethernet/wiznet/w5100.c +2 -0
index bede1ff289c5..a65b7291e12a 100644
@@ -1052,6 +1052,8 @@ static int w5100_mmio_probe(struct platform_device *pdev)
 		mac_addr = data->mac_addr;
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!mem)
+		return -EINVAL;
 	if (resource_size(mem) < W5100_BUS_DIRECT_SIZE)
 		ops = &w5100_mmio_indirect_ops;
 	else
drivers/net/phy/dp83640_reg.h +1 -1
index 21aa24c741b9..daae7fa58fb8 100644
@@ -5,7 +5,7 @@
 #ifndef HAVE_DP83640_REGISTERS
 #define HAVE_DP83640_REGISTERS
 
-#define PAGE0                     0x0000
+/* #define PAGE0                  0x0000 */
 #define PHYCR2                    0x001c /* PHY Control Register 2 */
 
 #define PAGE4                     0x0004
drivers/net/usb/cdc_mbim.c +5 -0
index eb100eb33de3..77ac5a721e7b 100644
@@ -653,6 +653,11 @@ static const struct usb_device_id mbim_devs[] = {
 	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
 	},
 
+	/* Telit LN920 */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x1061, USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
+	  .driver_info = (unsigned long)&cdc_mbim_info_avoid_altsetting_toggle,
+	},
+
 	/* default entry */
 	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
 	  .driver_info = (unsigned long)&cdc_mbim_info_zlp,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +2 -1
index b4885a700296..b0a4ca3559fd 100644
@@ -3351,7 +3351,8 @@ static int ar9300_eeprom_restore_internal(struct ath_hw *ah,
 			"Found block at %x: code=%d ref=%d length=%d major=%d minor=%d\n",
 			cptr, code, reference, length, major, minor);
 		if ((!AR_SREV_9485(ah) && length >= 1024) ||
-		    (AR_SREV_9485(ah) && length > EEPROM_DATA_LEN_9485)) {
+		    (AR_SREV_9485(ah) && length > EEPROM_DATA_LEN_9485) ||
+		    (length > cptr)) {
 			ath_dbg(common, EEPROM, "Skipping bad header\n");
 			cptr -= COMP_HDR_LEN;
 			continue;
drivers/net/wireless/ath/ath9k/hw.c +7 -5
index 9fd8e64288ff..7e2e22b6bbbc 100644
@@ -1622,7 +1622,6 @@ static void ath9k_hw_apply_gpio_override(struct ath_hw *ah)
 		ath9k_hw_gpio_request_out(ah, i, NULL,
 					  AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
 		ath9k_hw_set_gpio(ah, i, !!(ah->gpio_val & BIT(i)));
-		ath9k_hw_gpio_free(ah, i);
 	}
 }
 
@@ -2730,14 +2729,17 @@ static void ath9k_hw_gpio_cfg_output_mux(struct ath_hw *ah, u32 gpio, u32 type)
 static void ath9k_hw_gpio_cfg_soc(struct ath_hw *ah, u32 gpio, bool out,
 				  const char *label)
 {
+	int err;
+
 	if (ah->caps.gpio_requested & BIT(gpio))
 		return;
 
-	/* may be requested by BSP, free anyway */
-	gpio_free(gpio);
-
-	if (gpio_request_one(gpio, out ? GPIOF_OUT_INIT_LOW : GPIOF_IN, label))
+	err = gpio_request_one(gpio, out ? GPIOF_OUT_INIT_LOW : GPIOF_IN, label);
+	if (err) {
+		ath_err(ath9k_hw_common(ah), "request GPIO%d failed:%d\n",
+			gpio, err);
 		return;
+	}
 
 	ah->caps.gpio_requested |= BIT(gpio);
 }
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +3 -1
index 9c417dd06291..7736621dca65 100644
@@ -1043,8 +1043,10 @@ int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm,
 		return -ENOMEM;
 
 #ifdef CONFIG_IWLWIFI_DEBUGFS
-	if (mvm->beacon_inject_active)
+	if (mvm->beacon_inject_active) {
+		dev_kfree_skb(beacon);
 		return -EBUSY;
+	}
 #endif
 
 	ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon);
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +6 -2
index 09b1a6beee77..081cbc9ec736 100644
@@ -2970,16 +2970,20 @@ static void iwl_mvm_check_he_obss_narrow_bw_ru_iter(struct wiphy *wiphy,
 						    void *_data)
 {
 	struct iwl_mvm_he_obss_narrow_bw_ru_data *data = _data;
+	const struct cfg80211_bss_ies *ies;
 	const struct element *elem;
 
-	elem = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, bss->ies->data,
-				  bss->ies->len);
+	rcu_read_lock();
+	ies = rcu_dereference(bss->ies);
+	elem = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, ies->data,
+				  ies->len);
 
 	if (!elem || elem->datalen < 10 ||
 	    !(elem->data[10] &
 	      WLAN_EXT_CAPA10_OBSS_NARROW_BW_RU_TOLERANCE_SUPPORT)) {
 		data->tolerated = false;
 	}
+	rcu_read_unlock();
 }
 
 static void iwl_mvm_check_he_obss_narrow_bw_ru(struct ieee80211_hw *hw,
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +20 -4
index 8b0576cde797..a9aab6c690e8 100644
@@ -687,10 +687,26 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
 
 	mvm->fw_restart = iwlwifi_mod_params.fw_restart ? -1 : 0;
 
-	mvm->aux_queue = IWL_MVM_DQA_AUX_QUEUE;
-	mvm->snif_queue = IWL_MVM_DQA_INJECT_MONITOR_QUEUE;
-	mvm->probe_queue = IWL_MVM_DQA_AP_PROBE_RESP_QUEUE;
-	mvm->p2p_dev_queue = IWL_MVM_DQA_P2P_DEVICE_QUEUE;
+	if (iwl_mvm_has_new_tx_api(mvm)) {
+		/*
+		 * If we have the new TX/queue allocation API initialize them
+		 * all to invalid numbers. We'll rewrite the ones that we need
+		 * later, but that doesn't happen for all of them all of the
+		 * time (e.g. P2P Device is optional), and if a dynamic queue
+		 * ends up getting number 2 (IWL_MVM_DQA_P2P_DEVICE_QUEUE) then
+		 * iwl_mvm_is_static_queue() erroneously returns true, and we
+		 * might have things getting stuck.
+		 */
+		mvm->aux_queue = IWL_MVM_INVALID_QUEUE;
+		mvm->snif_queue = IWL_MVM_INVALID_QUEUE;
+		mvm->probe_queue = IWL_MVM_INVALID_QUEUE;
+		mvm->p2p_dev_queue = IWL_MVM_INVALID_QUEUE;
+	} else {
+		mvm->aux_queue = IWL_MVM_DQA_AUX_QUEUE;
+		mvm->snif_queue = IWL_MVM_DQA_INJECT_MONITOR_QUEUE;
+		mvm->probe_queue = IWL_MVM_DQA_AP_PROBE_RESP_QUEUE;
+		mvm->p2p_dev_queue = IWL_MVM_DQA_P2P_DEVICE_QUEUE;
+	}
 
 	mvm->sf_state = SF_UNINIT;
 	if (iwl_mvm_has_unified_ucode(mvm))
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +18 -12
index 40cafcf40ccf..5df4bbb6c6de 100644
@@ -346,8 +346,9 @@ static int iwl_mvm_invalidate_sta_queue(struct iwl_mvm *mvm, int queue,
 }
 
 static int iwl_mvm_disable_txq(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
-			       int queue, u8 tid, u8 flags)
+			       u16 *queueptr, u8 tid, u8 flags)
 {
+	int queue = *queueptr;
 	struct iwl_scd_txq_cfg_cmd cmd = {
 		.scd_queue = queue,
 		.action = SCD_CFG_DISABLE_QUEUE,
@@ -356,6 +357,7 @@ static int iwl_mvm_disable_txq(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
 
 	if (iwl_mvm_has_new_tx_api(mvm)) {
 		iwl_trans_txq_free(mvm->trans, queue);
+		*queueptr = IWL_MVM_INVALID_QUEUE;
 
 		return 0;
 	}
@@ -517,6 +519,7 @@ static int iwl_mvm_free_inactive_queue(struct iwl_mvm *mvm, int queue,
 	u8 sta_id, tid;
 	unsigned long disable_agg_tids = 0;
 	bool same_sta;
+	u16 queue_tmp = queue;
 	int ret;
 
 	lockdep_assert_held(&mvm->mutex);
@@ -539,7 +542,7 @@ static int iwl_mvm_free_inactive_queue(struct iwl_mvm *mvm, int queue,
 		iwl_mvm_invalidate_sta_queue(mvm, queue,
 					     disable_agg_tids, false);
 
-	ret = iwl_mvm_disable_txq(mvm, old_sta, queue, tid, 0);
+	ret = iwl_mvm_disable_txq(mvm, old_sta, &queue_tmp, tid, 0);
 	if (ret) {
 		IWL_ERR(mvm,
 			"Failed to free inactive queue %d (ret=%d)\n",
@@ -1209,6 +1212,7 @@ static int iwl_mvm_sta_alloc_queue(struct iwl_mvm *mvm,
 	unsigned int wdg_timeout =
 		iwl_mvm_get_wd_timeout(mvm, mvmsta->vif, false, false);
[… more lines in the raw message]

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

drivers/ntb/test/ntb_msi_test.c +3 -1
index 99d826ed9c34..662067dc9ce2 100644

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

drivers/ntb/test/ntb_perf.c +1 -0
index 5ce4766a6c9e..251fe75798c1 100644

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

drivers/nvme/host/tcp.c +3 -11
index f6427a10a990..38bbbbbc6f47 100644

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

drivers/of/kobj.c +1 -1
index a32e60b024b8..6675b5e56960 100644

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

drivers/opp/of.c +2 -10
index 603c688fe23d..30cc407c8f93 100644

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

drivers/parport/ieee1284_ops.c +1 -1
index 5d41dda6da4e..75daa16f38b7 100644

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

drivers/pci/controller/pci-aardvark.c +64 -9

73 lines not on this page · raw message

drivers/pci/controller/pcie-xilinx-nwl.c +12 -0
index 45c0f344ccd1..11b046b20b92 100644

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

drivers/pci/hotplug/TODO +0 -3
index a32070be5adf..cc6194aa24c1 100644

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

drivers/pci/hotplug/ibmphp_ebda.c +1 -4
index 11a2661dc062..7fb75401ad8a 100644

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

drivers/pci/msi.c +3 -0
index 5bb37671a86a..c8bd243717b7 100644

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

drivers/pci/pci.c +2 -6
index 58c33b65d451..b9550cd4280c 100644

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

drivers/pci/pcie/portdrv_core.c +7 -2
index 1b330129089f..8637f6068f9c 100644

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

drivers/pci/quirks.c +57 -2

59 lines not on this page · raw message

drivers/pci/syscall.c +3 -1
index 8b003c890b87..c9f03418e71e 100644

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

drivers/pinctrl/pinctrl-ingenic.c +3 -3
index 91596eee0bda..ba078a709846 100644

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

drivers/pinctrl/pinctrl-single.c +1 -0
index a9d511982780..fb1c8965cb99 100644

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

drivers/pinctrl/pinctrl-stmfx.c +4 -2
index ccdf0bb21414..835c14bb315b 100644

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

drivers/pinctrl/samsung/pinctrl-samsung.c +1 -1
index f26574ef234a..601fffeba39f 100644

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

drivers/platform/chrome/cros_ec_proto.c +9 -0
index f659f96bda12..9b575e9dd71c 100644

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

drivers/platform/x86/dell-smbios-wmi.c +1 -0
index c97bd4a45242..5821e9d9a4ce 100644

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

drivers/power/supply/max17042_battery.c +5 -1
index ab4740c3bf57..f8f8207a1895 100644

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

drivers/rtc/rtc-tps65910.c +1 -1
index 2c0467a9e717..8d1b1fda62dd 100644

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

drivers/s390/char/sclp_early.c +2 -1
index cc5e84b80c69..faa3a4b8ed91 100644

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

drivers/scsi/BusLogic.c +2 -2
index 6e988233fb81..6a54556119dd 100644

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

drivers/scsi/pcmcia/fdomain_cs.c +3 -1
index e42acf314d06..33df6a9ba9b5 100644

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

drivers/scsi/qedf/qedf_main.c +5 -5
index 7a6306f8483e..c95e04cc6424 100644

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

drivers/scsi/qedi/qedi_main.c +7 -7
index 1ec42c5f0b2a..92c4a367b7bd 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +3 -2
index 11656e864fca..97453c12b735 100644

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

drivers/scsi/qla2xxx/qla_os.c +6 -0
index 052ce7881407..28cbefe715e5 100644

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

drivers/scsi/smartpqi/smartpqi_init.c +1 -0
index 9bc451004184..80ff00025c03 100644

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

drivers/soc/aspeed/aspeed-lpc-ctrl.c +1 -1
index 01ed21e8bfee..040c7dc1d479 100644

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

drivers/soc/aspeed/aspeed-p2a-ctrl.c +1 -1
index b60fbeaffcbd..20b5fb2a207c 100644

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

drivers/soc/qcom/qcom_aoss.c +6 -2
index 33a27e6c6d67..45c5aa712eda 100644

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

drivers/staging/board/board.c +6 -1
index cb6feb34dd40..f980af037345 100644

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

drivers/staging/ks7010/ks7010_sdio.c +1 -1
index 4b379542ecd5..3fbe223d59b8 100644

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

drivers/staging/rts5208/rtsx_scsi.c +3 -7
index 1deb74112ad4..11d9d9155eef 100644

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

drivers/target/target_core_xcopy.c +30 -66

96 lines not on this page · raw message

drivers/target/target_core_xcopy.h +1 -0
index 974bc1e19ff2..a1805a14eea0 100644

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

drivers/tty/hvc/hvsi.c +16 -3
index 66f95f758be0..73226337f561 100644

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

drivers/tty/serial/8250/8250_pci.c +1 -1
index 43fc5b6a25d3..a2bb103f22fc 100644

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

drivers/tty/serial/8250/8250_port.c +2 -1
index 8a7c6d65f10e..777ef1a9591c 100644

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

drivers/tty/serial/jsm/jsm_neo.c +2 -0
index bf0e2a4cb0ce..c6f927a76c3b 100644

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

drivers/tty/serial/jsm/jsm_tty.c +3 -0
index 689774c073ca..8438454ca653 100644

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

drivers/tty/serial/sh-sci.c +6 -1
index 97ee1fc1cd24..ecff9b208808 100644

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

drivers/usb/chipidea/host.c +11 -3
index 48e4a5ca1835..f5f56ee07729 100644

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

drivers/usb/gadget/composite.c +6 -2
index 24dad1d78d1e..6bd3fdb925cd 100644

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

drivers/usb/gadget/function/u_ether.c +3 -2
index 99b840daf3d9..57da62e33184 100644

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

drivers/usb/host/ehci-mv.c +11 -12
index b6f196f5e252..b0e0f8ea98a9 100644

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

drivers/usb/host/fotg210-hcd.c +19 -22

41 lines not on this page · raw message

drivers/usb/host/fotg210.h +0 -5
index 1b4db95e5c43..291add93d84e 100644

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

drivers/usb/host/xhci.c +12 -12
index a3813c75a3de..505da4999e20 100644

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

drivers/usb/musb/musb_dsps.c +6 -7
index 327d4f7baaf7..89d659cef5c6 100644

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

drivers/usb/usbip/vhci_hcd.c +31 -1
index 98636fbf7188..170abb06a8a4 100644

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

drivers/vfio/Kconfig +1 -1
index 503ed2f3fbb5..65743de8aad1 100644

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

drivers/vhost/net.c +10 -1
index 48e574ae6033..cec9173aac6f 100644

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

drivers/video/fbdev/asiliantfb.c +3 -0
index ea31054a28ca..c1d6e6336225 100644

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

drivers/video/fbdev/kyro/fbdev.c +8 -0
index a7bd9f25911b..74bf26b527b9 100644

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

drivers/video/fbdev/riva/fbdev.c +3 -0
index ca593a3e41d7..51c9d9508c0b 100644

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

fs/btrfs/disk-io.c +23 -22

45 lines not on this page · raw message

fs/btrfs/inode.c +5 -5
index 33b8fedab6c6..b859ed50cf46 100644

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

fs/btrfs/tree-log.c +3 -1
index 5412361d0c27..8ea4b3da85d1 100644

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

fs/btrfs/volumes.c +3 -0
index e882c790292f..8deee49a6b3f 100644

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

fs/cifs/sess.c +1 -1
index 85bd644f9773..30f841a880ac 100644

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

fs/f2fs/checkpoint.c +1 -1
index a57219c51c01..f7d27cbbeb86 100644

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

fs/f2fs/data.c +19 -4
index 64ee2a064e33..1679f9c0b63b 100644

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

fs/f2fs/dir.c +10 -5
index 78d041f9775a..99c4a868d73b 100644

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

fs/f2fs/f2fs.h +13 -11
index 4ca3c2a0a0f5..031a17bf52a2 100644

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

fs/f2fs/file.c +2 -4
index 6e58b2e62b18..516007bb1ced 100644

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

fs/f2fs/gc.c +4 -2
index a78aa5480454..4b6c36208f55 100644

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

fs/f2fs/inode.c +1 -1
index 386ad54c13c3..502bd491336a 100644

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

fs/f2fs/node.c +1 -1
index 48bb5d3c709d..4cb182c20eed 100644

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

fs/f2fs/segment.c +5 -4
index 5ba677f85533..78c54bb7898d 100644

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

fs/f2fs/super.c +48 -36

84 lines not on this page · raw message

fs/fscache/cookie.c +1 -13
index 0ce39658a620..44a426c8ea01 100644

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

fs/fscache/internal.h +2 -0
index 9616af3768e1..d09d4e69c818 100644

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

fs/fscache/main.c +39 -0
index 59c2494efda3..3aa3756c7176 100644

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

fs/fuse/dev.c +2 -2
index 16aa55b73ccf..7205a89fbb5f 100644

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

fs/gfs2/lock_dlm.c +5 -0
index 72dec177b349..94c290a333a0 100644

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

fs/lockd/svclock.c +12 -18
index 498cb70c2c0d..273a81971ed5 100644

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

fs/overlayfs/dir.c +4 -2
index 6509ec3cb373..073be36b0686 100644

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

fs/userfaultfd.c +45 -48

93 lines not on this page · raw message

include/crypto/public_key.h +2 -2
index 0588ef3bc6ff..48722f2b8543 100644

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

include/linux/hugetlb.h +9 -0
index a0513c444446..cef70d6e1657 100644

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

include/linux/list.h +19 -10
index 85c92555e31f..ce19c6b632a5 100644

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

include/linux/memory_hotplug.h +2 -2
index 451efd4499cc..961e35c68e41 100644

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

include/linux/pci.h +3 -2
index 6a6a819c5b49..9a937f8b2783 100644

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

include/linux/pci_ids.h +2 -1
index 0ad57693f392..42588645478d 100644

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

include/linux/skbuff.h +1 -1
index 6493c98c8631..b04b5bd43f54 100644

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

include/linux/sunrpc/xprt.h +1 -0
index d7ef5b97174c..3c6c4b1dbf1a 100644

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

include/uapi/linux/pkt_sched.h +2 -0
index edbbf4bfdd9e..4a245d7a5c8d 100644

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

include/uapi/linux/serial_reg.h +1 -0
index be07b5470f4b..f51bc8f36813 100644

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

kernel/dma/debug.c +4 -3
index cb6425e52bf7..01e893cf9b9f 100644

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

kernel/events/core.c +1 -1
index 2f848123cdae..1993a741d2dc 100644

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

kernel/fork.c +1 -0
index 50f37d5afb32..cf2cebd214b9 100644

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

kernel/pid_namespace.c +2 -1
index a6a79f85c81a..f26415341c75 100644

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

kernel/trace/trace_kprobe.c +5 -1
index 233322c77b76..5de084dab4fa 100644

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

kernel/trace/trace_probe.c +25 -0
index f98d6d94cbbf..23e85cb15134 100644

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

kernel/trace/trace_probe.h +1 -0
index a0ff9e200ef6..bab9e0dba9af 100644

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

kernel/trace/trace_uprobe.c +5 -1
index 5294843de6ef..b515db036bec 100644

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

kernel/workqueue.c +7 -5
index 6aeb53b4e19f..885d4792abdf 100644

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

lib/test_bpf.c +10 -3
index 5ef3eccee27c..3ae002ced4c7 100644

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

lib/test_stackinit.c +7 -13
index 2d7d257a430e..35d398b065e4 100644

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

mm/memory_hotplug.c +2 -2
index 308beca3ffeb..bcc2686bd0a1 100644

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

mm/vmscan.c +1 -1
index fad9be4703ec..de94881eaa92 100644

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

net/9p/trans_xen.c +2 -2
index 3963eb11c3fb..44e6c74ed428 100644

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

net/bluetooth/hci_event.c +77 -31

108 lines not on this page · raw message

net/bluetooth/sco.c +45 -29

74 lines not on this page · raw message

net/caif/chnl_net.c +3 -16
index a56628962852..910f164dd20c 100644

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

net/core/flow_dissector.c +8 -4
index 96957a7c732f..b740a74f06f2 100644

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

net/dccp/minisocks.c +2 -0
index 25187528c308..1f352d669c94 100644

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

net/dsa/slave.c +5 -7
index 75b4cd4bcafb..59759ceb426a 100644

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

net/ipv4/ip_gre.c +6 -3
index fd8298b8b1c5..c4989e5903e4 100644

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

net/ipv4/ip_output.c +3 -2
index f52bc9c22e5b..0ec529d77a56 100644

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

net/ipv4/nexthop.c +2 -0
index f5f4369c131c..858bb10d8341 100644

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

net/ipv4/tcp_fastopen.c +1 -2
index 8af4fefe371f..a5ec77a5ad6f 100644

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

net/ipv4/tcp_input.c +1 -1
index a1768ded2d54..c0fcfa296468 100644

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

net/ipv6/netfilter/nf_socket_ipv6.c +1 -3
index b9df879c48d3..69c021704abd 100644

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

net/l2tp/l2tp_core.c +3 -1
index 95805a6331be..421b2c89ce12 100644

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

net/mac80211/iface.c +9 -2
index 6f576306a4d7..ddc001ad9055 100644

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

net/netlabel/netlabel_cipso_v4.c +2 -2
index 8cd3daf0e3db..1778e4e8ce24 100644

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

net/netlink/af_netlink.c +3 -1
index 9d993b4cf1af..acc76a738cfd 100644

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

net/sched/sch_fq_codel.c +10 -2
index 76d72c3f52ed..86fb2f953bd5 100644

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

net/sched/sch_taprio.c +3 -1
index a4de4853c79d..da9ed0613eb7 100644

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

net/sunrpc/auth_gss/svcauth_gss.c +1 -1
index d5470c7fe879..c0016473a255 100644

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

net/sunrpc/xprt.c +4 -2
index 639837b3a5d9..3653898f465f 100644

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

net/tipc/socket.c +28 -8
index a5922ce9109c..fbbac9ba2862 100644

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

net/unix/af_unix.c +1 -1
index 52ee3a9bb709..3098710c9c34 100644

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

samples/bpf/test_override_return.sh +1 -0
index e68b9ee6814b..35db26f736b9 100755

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

samples/bpf/tracex7_user.c +5 -0
index ea6dae78f0df..2ed13e9f3fcb 100644

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

scripts/gen_ksymdeps.sh +7 -1
index 1324986e1362..725e8c9c1b53 100755

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

security/smack/smack_access.c +8 -9
index 38ac3da4e791..beeba1a9be17 100644

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

sound/soc/atmel/Kconfig +0 -1
index 71f2d42188c4..51e75b781968 100644

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

sound/soc/intel/boards/bytcr_rt5640.c +6 -3
index c67b86e2d0c0..7830d014d924 100644

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

sound/soc/intel/skylake/skl-messages.c +9 -2
index 476ef1897961..79c6cf2c14bf 100644

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

sound/soc/intel/skylake/skl-pcm.c +9 -16
index 7f287424af9b..439dd4ba690c 100644

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

sound/soc/rockchip/rockchip_i2s.c +22 -13
index 61c984f10d8e..086c90e09577 100644

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

tools/perf/Makefile.config +4 -4
index 9832affd5d54..c75c9b03d6e7 100644

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

tools/perf/util/machine.c +1 -0
index 767fe1bfd922..8c3addc2e9e1 100644

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

tools/testing/selftests/bpf/progs/xdp_tx.c +1 -1
index 57912e7c94b0..9ed477776eca 100644

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

tools/testing/selftests/bpf/test_maps.c +1 -1
index 1c4219ceced2..45c7a55f0b8b 100644

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

tools/testing/selftests/bpf/test_xdp_veth.sh +1 -1
index ba8ffcdaac30..995278e684b6 100755

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

tools/thermal/tmon/Makefile +1 -1
index 59e417ec3e13..25d7f8f37cfd 100644

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

virt/kvm/arm/arm.c +8 -0
index 4af85605730e..f7150fbeeb55 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.