Linux 5.10.82
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.82 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm/boot/dts/bcm-nsp.dtsi | 4 arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 22 + arch/arm/boot/dts/ls1021a-tsn.dts | 2 arch/arm/boot/dts/ls1021a.dtsi | 66 ++-- arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 2 arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi | 2 arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 6 arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 8 arch/arm/boot/dts/sun8i-a33.dtsi | 4 arch/arm/boot/dts/sun8i-a83t.dtsi | 4 arch/arm/boot/dts/sun8i-h3.dtsi | 4 arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 6 arch/arm64/boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi | 2 arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi | 2 arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 2 arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 2 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 16 - arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 16 - arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 4 arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 2 arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 arch/arm64/boot/dts/qcom/msm8998.dtsi | 20 - arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 4 arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 4 arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 arch/arm64/kernel/vdso32/Makefile | 3 arch/hexagon/include/asm/timer-regs.h | 26 - arch/hexagon/include/asm/timex.h | 3 arch/hexagon/kernel/time.c | 12 arch/hexagon/lib/io.c | 4 arch/mips/Kconfig | 3 arch/mips/bcm63xx/clk.c | 6 arch/mips/generic/yamon-dt.c | 2 arch/mips/lantiq/clk.c | 6 arch/mips/sni/time.c | 4 arch/powerpc/boot/dts/charon.dts | 2 arch/powerpc/boot/dts/digsy_mtc.dts | 2 arch/powerpc/boot/dts/lite5200.dts | 2 arch/powerpc/boot/dts/lite5200b.dts | 2 arch/powerpc/boot/dts/media5200.dts | 2 arch/powerpc/boot/dts/mpc5200b.dtsi | 2 arch/powerpc/boot/dts/o2d.dts | 2 arch/powerpc/boot/dts/o2d.dtsi | 2 arch/powerpc/boot/dts/o2dnt2.dts | 2 arch/powerpc/boot/dts/o3dnt.dts | 2 arch/powerpc/boot/dts/pcm032.dts | 2 arch/powerpc/boot/dts/tqm5200.dts | 2 arch/powerpc/kernel/head_8xx.S | 13 arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 arch/powerpc/sysdev/dcr-low.S | 2 arch/s390/include/asm/kexec.h | 6 arch/s390/kernel/ipl.c | 3 arch/s390/kernel/machine_kexec_file.c | 18 + arch/sh/Kconfig.debug | 1 arch/sh/include/asm/sfp-machine.h | 8 arch/sh/kernel/cpu/sh4a/smp-shx3.c | 5 arch/sh/math-emu/math.c | 103 ------- arch/x86/Kconfig | 3 arch/x86/events/intel/core.c | 4 arch/x86/events/intel/uncore_snbep.c | 4 arch/x86/hyperv/hv_init.c | 3 arch/x86/kvm/vmx/nested.c | 22 + block/blk-core.c | 4 block/ioprio.c | 9 drivers/base/firmware_loader/main.c | 13 drivers/bus/ti-sysc.c | 110 +++++++ drivers/clk/clk-ast2600.c | 12 drivers/clk/imx/clk-imx6ul.c | 2 drivers/clk/ingenic/cgu.c | 6 drivers/clk/qcom/gcc-msm8996.c | 15 - drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 1 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 4 drivers/gpu/drm/amd/display/dc/dml/display_mode_enums.h | 4 drivers/gpu/drm/i915/display/intel_dp.c | 11 drivers/gpu/drm/nouveau/nouveau_drm.c | 42 ++ drivers/gpu/drm/nouveau/nouveau_drv.h | 5 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c | 1 drivers/gpu/drm/udl/udl_connector.c | 2 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 12 drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h | 4 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 2 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 drivers/net/ethernet/intel/e100.c | 18 - drivers/net/ethernet/intel/i40e/i40e.h | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 160 +++++++---- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 121 ++------ drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 30 +- drivers/net/ethernet/intel/iavf/iavf_main.c | 14 drivers/net/ethernet/intel/ice/ice_main.c | 3 drivers/net/ethernet/mellanox/mlx5/core/cq.c | 5 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 4 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 11 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 28 - drivers/net/ethernet/mellanox/mlx5/core/lag.c | 28 - drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 5 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 24 + drivers/net/ipa/ipa_endpoint.c | 2 drivers/net/tun.c | 5 drivers/pinctrl/qcom/pinctrl-sdm845.c | 1 drivers/platform/x86/hp_accel.c | 2 drivers/scsi/advansys.c | 4 drivers/scsi/lpfc/lpfc_sli.c | 1 drivers/scsi/qla2xxx/qla_mbx.c | 6 drivers/scsi/scsi_debug.c | 11 drivers/scsi/scsi_sysfs.c | 30 +- drivers/scsi/ufs/ufshcd.c | 57 +-- drivers/scsi/ufs/ufshcd.h | 1 drivers/sh/maple/maple.c | 5 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 7 drivers/staging/rtl8723bs/core/rtw_recv.c | 10 drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 22 - drivers/staging/rtl8723bs/core/rtw_xmit.c | 16 - drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c | 2 drivers/staging/wfx/bus_sdio.c | 17 - drivers/target/target_core_alua.c | 1 drivers/target/target_core_device.c | 2 drivers/target/target_core_internal.h | 1 drivers/target/target_core_transport.c | 76 +++-- drivers/tty/tty_buffer.c | 3 drivers/usb/host/max3421-hcd.c | 25 - drivers/usb/host/ohci-tmio.c | 2 drivers/usb/musb/tusb6010.c | 5 drivers/usb/typec/tps6598x.c | 2 drivers/video/console/sticon.c | 12 fs/btrfs/async-thread.c | 14 fs/btrfs/volumes.c | 21 - fs/f2fs/f2fs.h | 3 fs/f2fs/super.c | 4 fs/inode.c | 7 fs/udf/dir.c | 32 ++ fs/udf/namei.c | 3 fs/udf/super.c | 2 include/linux/fs.h | 2 include/linux/perf_event.h | 1 include/linux/platform_data/ti-sysc.h | 1 include/linux/trace_events.h | 2 include/linux/virtio_net.h | 7 include/net/nfc/nci_core.h | 1 include/rdma/rdma_netlink.h | 2 include/sound/hdaudio_ext.h | 2 include/target/target_core_base.h | 6 include/trace/events/f2fs.h | 12 include/uapi/linux/tcp.h | 2 ipc/util.c | 6 kernel/events/core.c | 142 ++++----- kernel/sched/core.c | 3 kernel/trace/trace_events_hist.c | 14 mm/hugetlb.c | 23 + mm/slab.h | 2 net/core/sock.c | 189 ++++++------- net/ipv4/tcp.c | 122 ++++++-- net/nfc/core.c | 32 +- net/nfc/nci/core.c | 34 +- net/sched/act_mirred.c | 11 net/smc/smc_core.c | 3 net/tipc/crypto.c | 4 net/tipc/link.c | 7 net/wireless/util.c | 1 security/selinux/ss/hashtab.c | 17 - sound/core/Makefile | 2 sound/hda/ext/hdac_ext_stream.c | 46 +-- sound/hda/hdac_stream.c | 4 sound/hda/intel-dsp-config.c | 22 + sound/isa/Kconfig | 2 sound/isa/gus/gus_dma.c | 2 sound/pci/Kconfig | 1 sound/soc/codecs/nau8824.c | 40 ++ sound/soc/soc-dapm.c | 29 + sound/soc/sof/intel/hda-dai.c | 7 tools/perf/bench/futex-lock-pi.c | 1 tools/perf/bench/futex-requeue.c | 1 tools/perf/bench/futex-wake-parallel.c | 1 tools/perf/bench/futex-wake.c | 1 tools/perf/tests/shell/record+zstd_comp_decomp.sh | 2 tools/perf/util/bpf-event.c | 6 tools/perf/util/env.c | 5 tools/perf/util/env.h | 2 180 files changed, 1482 insertions(+), 982 deletions(-)
Adrian Hunter (2):
scsi: ufs: core: Fix task management completion
scsi: ufs: core: Fix task management completion timeout race
Alex Elder (1):
net: ipa: disable HOLB drop when updating timer
Alexander Antonov (2):
perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
Alexander Mikhalitsyn (1):
ipc: WARN if trying to remove ipc object which is absent
Alistair Delva (1):
block: Check ADMIN before NICE for IOPRIO_CLASS_RT
Alvin Lee (1):
drm/amd/display: Update swizzle mode enums
Amit Kumar Mahapatra (1):
arm64: zynqmp: Do not duplicate flash partition label property
Anatolij Gustschin (1):
powerpc/5200: dts: fix memory node unit name
AngeloGioacchino Del Regno (1):
arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
Arjun Roy (3):
net-zerocopy: Copy straggler unaligned data for TCP Rx. zerocopy.
net-zerocopy: Refactor skb frag fast-forward op.
tcp: Fix uninitialized access in skb frags array for Rx 0cp.
Baoquan He (1):
s390/kexec: fix memory leak of ipl report buffer
Bart Van Assche (1):
MIPS: sni: Fix the build
Bjorn Andersson (1):
pinctrl: qcom: sdm845: Enable dual edge errata
Bongsu Jeon (1):
net: nfc: nci: Change the NCI close sequence
Chao Yu (1):
f2fs: fix incorrect return value in f2fs_sanity_check_ckpt()
Chengfeng Ye (1):
ALSA: gus: fix null pointer dereference on pointer block
Christian Lamparter (1):
ARM: BCM53016: Specify switch ports for Meraki MR32
Christophe JAILLET (1):
platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
Christophe Leroy (2):
powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX
Colin Ian King (1):
MIPS: generic/yamon-dt: fix uninitialized variable error
David Heidelberg (1):
ARM: dts: qcom: fix memory and mdio nodes naming for RB3011
Dmitry Baryshkov (1):
clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk
Eric Dumazet (1):
net: reduce indentation level in sk_clone_lock()
Eryk Rybak (3):
i40e: Fix correct max_pkt_size on VF RX queue
i40e: Fix changing previously set num_queue_pairs for PFs
i40e: Fix ping is lost after configuring ADq on VF
Ewan D. Milne (1):
scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id()
Fabio Aiuto (1):
staging: rtl8723bs: remove possible deadlock when disconnect (v2)
Gao Xiang (1):
f2fs: fix up f2fs_lookup tracepoints
Greg Kroah-Hartman (1):
Linux 5.10.82
Grzegorz Szczurek (2):
iavf: Fix for setting queues to 0
i40e: Fix display error code in dmesg
Guanghui Feng (1):
tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
Guo Zhi (1):
scsi: advansys: Fix kernel pointer leak
Hans Verkuil (1):
drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
Hans de Goede (1):
ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
Heiko Carstens (1):
s390/kexec: fix return code handling
Hyeong-Jun Kim (1):
f2fs: compress: disallow disabling compress on non-empty compressed file
Ian Rogers (1):
perf bpf: Avoid memory leak from perf_env__insert_btf()
Imre Deak (1):
drm/i915/dp: Ensure sink rate values are always valid
Jacob Keller (1):
iavf: prevent accidental free of filter structure
James Clark (1):
perf tests: Remove bash construct from record+zstd_comp_decomp.sh
James Smart (1):
scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
Jan Kara (1):
udf: Fix crash after seekdir
Jedrzej Jagielski (1):
i40e: Fix creation of first queue by omitting it if is not power of two
Jeremy Cline (3):
drm/nouveau: Add a dedicated mutex for the clients list drm/nouveau: use drm_dev_unplug() during device removal drm/nouveau: clean up all clients on device removal
Jesse Brandeburg (1):
e100: fix device suspend/resume
Joel Stanley (1):
clk/ast2600: Fix soc revision for AHB
Johan Hovold (1):
drm/udl: fix control-message timeout
Jonathan Davies (1):
net: virtio_net_hdr_to_skb: count transport header in UFO
Josef Bacik (2):
fs: export an inode_update_time helper
btrfs: update device path inode time instead of bd_inode
Jérôme Pouiller (1):
staging: wfx: ensure IRQ is ready before enabling it
Karen Sornek (1):
i40e: Fix warning message and call stack during rmmod i40e driver
Keoseong Park (1):
f2fs: fix to use WHINT_MODE
Laibin Qiu (1):
blkcg: Remove extra blkcg_bio_issue_init
Leon Romanovsky (2):
RDMA/netlink: Add __maybe_unused to static inline in C file
ice: Delete always true check of PF pointer
Li Yang (2):
ARM: dts: ls1021a: move thermal-zones node out of soc/
ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
Like Xu (1):
perf/x86/vlbr: Add c->flags to vlbr event constraints
Lin Ma (3):
NFC: reorganize the functions in nci_request
NFC: reorder the logic in nfc_{un,}register_device
NFC: add NCI_UNREG flag to eliminate the race
Linus Walleij (1):
ARM: dts: ux500: Skomer regulator fixes
Lu Wei (1):
maple: fix wrong return value of maple_bus_init().
Luis Chamberlain (1):
firmware_loader: fix pre-allocated buf built-in firmware use
Maher Sanalla (1):
net/mlx5: Lag, update tracker when state change event received
Masami Hiramatsu (1):
tracing/histogram: Do not copy the fixed-size char array field over the field size
Mateusz Palczewski (1):
iavf: Fix return of set the new channel count
Matthew Hagan (1):
ARM: dts: NSP: Fix mpcore, mmc node names
Matthias Brugger (1):
arm64: dts: rockchip: Disable CDN DP on Pinebook Pro
Maxim Levitsky (1):
KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested state load
Maxime Ripard (3):
ARM: dts: sunxi: Fix OPPs node name
arm64: dts: allwinner: h5: Fix GPU thermal zone node name
arm64: dts: allwinner: a100: Fix thermal zone node name
Meng Li (1):
net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 platform
Michael Ellerman (2):
powerpc/dcr: Use cmplwi instead of 3-argument cmpli
KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()
Michael Walle (2):
arm64: dts: hisilicon: fix arm,sp805 compatible string
arm64: dts: freescale: fix arm,sp805 compatible string
Michal Maloszewski (1):
i40e: Fix NULL ptr dereference on VSI filter sync
Michal Simek (1):
arm64: zynqmp: Fix serial compatible string
Mike Christie (3):
scsi: target: Fix ordered tag handling
scsi: target: Fix alua_tg_pt_gps_count tracking
scsi: core: sysfs: Fix hang when device state is set via sysfs
Mitch Williams (1):
iavf: validate pointers
Nadav Amit (1):
hugetlbfs: flush TLBs correctly after huge_pmd_unshare
Nathan Chancellor (2):
hexagon: export raw I/O routines for modules
hexagon: clean up timer-regs.h
Nguyen Dinh Phi (1):
cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
Nicholas Nunley (2):
iavf: check for null in iavf_fix_features
iavf: free q_vectors before queues in iavf_disable_vf
Nick Desaulniers (2):
sh: check return code of request_irq
arm64: vdso32: suppress error message for 'make mrproper'
Nicolas Dichtel (1):
tun: fix bonding active backup with arp monitoring
Nikolay Borisov (1):
btrfs: fix memory ordering between normal and ordered work functions
Ondrej Mosnacek (1):
selinux: fix NULL-pointer dereference when hashtab allocation fails
Paul Cercueil (1):
clk: ingenic: Fix bugs with divided dividers
Pavel Skripkin (2):
net: bnx2x: fix variable dereferenced before check
net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
Pierre-Louis Bossart (4):
ASoC: SOF: Intel: hda-dai: fix potential locking issue
ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 codec
ALSA: hda: hdac_ext_stream: fix potential locking issues
ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign()
Piotr Marczak (1):
iavf: Fix failure to exit out from last all-multicast mode
Punit Agrawal (1):
net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices
Raed Salem (1):
net/mlx5: E-Switch, return error if encap isn't supported
Randy Dunlap (8):
ALSA: ISA: not for M68K
sh: fix kconfig unmet dependency warning for FRAME_POINTER
sh: math-emu: drop unused functions
sh: define __BIG_ENDIAN for math-emu
mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
mips: bcm63xx: add support for clk_get_parent()
mips: lantiq: add support for clk_get_parent() x86/Kconfig: Fix an unused variable error in dell-smm-hwmon
Roger Quadros (1):
ARM: dts: omap: fix gpmc,mux-add-data type
Roi Dayan (1):
net/mlx5: E-Switch, Change mode lock from mutex to rw semaphore
Rustam Kovhaev (1):
mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
Sasha Levin (1):
Revert "perf: Rework perf_event_exit_event()"
Sean Christopherson (1):
x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
Selvin Xavier (1):
RDMA/bnxt_re: Check if the vlan is valid before reporting
Shawn Guo (1):
arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property
Sohaib Mohamed (1):
perf bench futex: Fix memory leak of perf_cpu_map__new()
Sriharsha Basavapatna (1):
bnxt_en: reject indirect blk offload when hw-tc-offload is off
Stefan Riedmueller (1):
clk: imx: imx6ul: Move csi_sel mux to correct base register
Steven Rostedt (VMware) (1):
tracing: Add length protection to histogram string copies
Surabhi Boob (1):
iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
Sven Peter (1):
usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
Sven Schnelle (1):
parisc/sticon: fix reverse colors
Tadeusz Struk (1):
tipc: check for null after calling kmemdup
Takashi Iwai (1):
ASoC: DAPM: Cover regression by kctl change notification fix
Teng Qi (1):
iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()
Tetsuo Handa (1):
sock: fix /proc/net/sockstat underflow in sk_clone_lock()
Tony Lindgren (2):
bus: ti-sysc: Add quirk handling for reinit on context lost
bus: ti-sysc: Use context lost quirk for otg
Uwe Kleine-König (1):
usb: max-3421: Use driver data instead of maintaining a list of bound devices
Valentine Fatiev (1):
net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove()
Vincent Donnefort (1):
sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
Wen Gu (1):
net/smc: Make sure the link_id is unique
Xin Long (2):
tipc: only accept encrypted MSG_CRYPTO msgs
net: sched: act_mirred: drop dst for the direction from egress to ingress
Yang Yingliang (2):
usb: musb: tusb6010: check return value after calling platform_get_resource()
usb: host: ohci-tmio: check return value after calling platform_get_resource()
Ye Bin (2):
scsi: scsi_debug: Fix out-of-bound read in resp_readcap16()
scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()
hongao (1):
drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 81 +SUBLEVEL = 82 EXTRAVERSION = NAME = Dare mighty things
arch/arm/boot/dts/bcm-nsp.dtsi +2 -2
@@ -77,7 +77,7 @@ pmu { interrupt-affinity = <&cpu0>, <&cpu1>; }; - mpcore@19000000 { + mpcore-bus@19000000 { compatible = "simple-bus"; ranges = <0x00000000 0x19000000 0x00023000>; #address-cells = <1>;
@@ -219,7 +219,7 @@ dma: dma@20000 { status = "disabled"; }; - sdio: sdhci@21000 { + sdio: mmc@21000 { compatible = "brcm,sdhci-iproc-cygnus"; reg = <0x21000 0x100>; interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/bcm53016-meraki-mr32.dts +22 -0
@@ -195,3 +195,25 @@ partition4@800000 { }; }; }; + +&srab { + status = "okay"; + + ports { + port@0 { + reg = <0>; + label = "poe"; + }; + + port@5 { + reg = <5>; + label = "cpu"; + ethernet = <&gmac0>; + + fixed-link { + speed = <1000>; + duplex-full; + }; + }; + }; +};
arch/arm/boot/dts/ls1021a-tsn.dts +1 -1
@@ -251,7 +251,7 @@ &qspi { flash@0 { /* Rev. A uses 64MB flash, Rev. B & C use 32MB flash */ - compatible = "jedec,spi-nor", "s25fl256s1", "s25fl512s"; + compatible = "jedec,spi-nor"; spi-max-frequency = <20000000>; #address-cells = <1>; #size-cells = <1>;
arch/arm/boot/dts/ls1021a.dtsi +33 -33
76 lines not on this page · raw message
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi +1 -1
@@ -29,7 +29,7 @@ ethernet@gpmc { compatible = "smsc,lan9221","smsc,lan9115"; bank-width = <2>; - gpmc,mux-add-data; + gpmc,mux-add-data = <0>; gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <42>; gpmc,cs-wr-off-ns = <36>;
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi +1 -1
@@ -22,7 +22,7 @@ smsc2: ethernet@4,0 { compatible = "smsc,lan9221","smsc,lan9115"; bank-width = <2>; - gpmc,mux-add-data; + gpmc,mux-add-data = <0>; gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <42>; gpmc,cs-wr-off-ns = <36>;
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts +3 -3
@@ -19,12 +19,12 @@ chosen { stdout-path = "serial0:115200n8"; }; - memory@0 { + memory@42000000 { reg = <0x42000000 0x3e000000>; device_type = "memory"; }; - mdio0: mdio@0 { + mdio0: mdio-0 { status = "okay"; compatible = "virtual,mdio-gpio"; gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
@@ -91,7 +91,7 @@ port@5 { }; }; - mdio1: mdio@1 { + mdio1: mdio-1 { status = "okay"; compatible = "virtual,mdio-gpio"; gpios = <&qcom_pinmux 11 GPIO_ACTIVE_HIGH>,
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts +4 -4
@@ -262,10 +262,10 @@ ab8500_ldo_aux1 { }; ab8500_ldo_aux2 { - /* Supplies the Cypress TMA140 touchscreen only with 3.3V */ + /* Supplies the Cypress TMA140 touchscreen only with 3.0V */ regulator-name = "AUX2"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; }; ab8500_ldo_aux3 {
@@ -284,9 +284,9 @@ ab8500_ldo_aux4 { ab8500_ldo_aux5 { regulator-name = "AUX5"; + /* Intended for 1V8 for touchscreen but actually left unused */ regulator-min-microvolt = <1050000>; regulator-max-microvolt = <2790000>; - regulator-always-on; }; ab8500_ldo_aux6 {
arch/arm/boot/dts/sun8i-a33.dtsi +2 -2
@@ -46,7 +46,7 @@ #include <dt-bindings/thermal/thermal.h> / { - cpu0_opp_table: opp_table0 { + cpu0_opp_table: opp-table-cpu { compatible = "operating-points-v2"; opp-shared;
@@ -164,7 +164,7 @@ iio-hwmon { io-channels = <&ths>; }; - mali_opp_table: gpu-opp-table { + mali_opp_table: opp-table-gpu { compatible = "operating-points-v2"; opp-144000000 {
arch/arm/boot/dts/sun8i-a83t.dtsi +2 -2
@@ -200,7 +200,7 @@ de: display-engine { status = "disabled"; }; - cpu0_opp_table: opp_table0 { + cpu0_opp_table: opp-table-cluster0 { compatible = "operating-points-v2"; opp-shared;
@@ -253,7 +253,7 @@ opp-1200000000 { }; }; - cpu1_opp_table: opp_table1 { + cpu1_opp_table: opp-table-cluster1 { compatible = "operating-points-v2"; opp-shared;
arch/arm/boot/dts/sun8i-h3.dtsi +2 -2
@@ -44,7 +44,7 @@ #include <dt-bindings/thermal/thermal.h> / { - cpu0_opp_table: opp_table0 { + cpu0_opp_table: opp-table-cpu { compatible = "operating-points-v2"; opp-shared;
@@ -112,7 +112,7 @@ cpu3: cpu@3 { }; }; - gpu_opp_table: gpu-opp-table { + gpu_opp_table: opp-table-gpu { compatible = "operating-points-v2"; opp-120000000 {
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi +3 -3
@@ -343,19 +343,19 @@ r_i2c1: i2c@7081800 { }; thermal-zones { - cpu-thermal-zone { + cpu-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 0>; }; - ddr-thermal-zone { + ddr-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 2>; }; - gpu-thermal-zone { + gpu-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 1>;
arch/arm64/boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi +1 -1
@@ -4,7 +4,7 @@ */ / { - cpu0_opp_table: opp_table0 { + cpu0_opp_table: opp-table-cpu { compatible = "operating-points-v2"; opp-shared;
arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi +1 -1
@@ -2,7 +2,7 @@ // Copyright (C) 2020 Chen-Yu Tsai <[email protected]> / { - cpu_opp_table: cpu-opp-table { + cpu_opp_table: opp-table-cpu { compatible = "operating-points-v2"; opp-shared;
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +1 -1
@@ -204,7 +204,7 @@ cpu-hot-limit { }; }; - gpu_thermal { + gpu-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 1>;
arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi +1 -1
@@ -3,7 +3,7 @@ // Copyright (C) 2020 Clément Péron <[email protected]> / { - cpu_opp_table: cpu-opp-table { + cpu_opp_table: opp-table-cpu { compatible = "allwinner,sun50i-h6-operating-points"; nvmem-cells = <&cpu_speed_grade>; opp-shared;
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +8 -8
@@ -673,56 +673,56 @@ ptp-timer@8b95000 { }; cluster1_core0_watchdog: wdt@c000000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc000000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster1_core1_watchdog: wdt@c010000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc010000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster1_core2_watchdog: wdt@c020000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc020000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster1_core3_watchdog: wdt@c030000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc030000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core0_watchdog: wdt@c100000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc100000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core1_watchdog: wdt@c110000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc110000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core2_watchdog: wdt@c120000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc120000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core3_watchdog: wdt@c130000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc130000 0x0 0x1000>; clocks = <&clockgen 4 15>, <&clockgen 4 15>; clock-names = "wdog_clk", "apb_pclk";
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +8 -8
@@ -351,56 +351,56 @@ serial3: serial@21d0600 { }; cluster1_core0_watchdog: wdt@c000000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc000000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster1_core1_watchdog: wdt@c010000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc010000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core0_watchdog: wdt@c100000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc100000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster2_core1_watchdog: wdt@c110000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc110000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster3_core0_watchdog: wdt@c200000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc200000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster3_core1_watchdog: wdt@c210000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc210000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster4_core0_watchdog: wdt@c300000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc300000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk"; }; cluster4_core1_watchdog: wdt@c310000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xc310000 0x0 0x1000>; clocks = <&clockgen 4 3>, <&clockgen 4 3>; clock-names = "wdog_clk", "apb_pclk";
arch/arm64/boot/dts/hisilicon/hi3660.dtsi +2 -2
@@ -1086,7 +1086,7 @@ dwmmc2: dwmmc2@ff3ff000 { }; watchdog0: watchdog@e8a06000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xe8a06000 0x0 0x1000>; interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; clocks = <&crg_ctrl HI3660_OSC32K>,
@@ -1095,7 +1095,7 @@ watchdog0: watchdog@e8a06000 { }; watchdog1: watchdog@e8a07000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xe8a07000 0x0 0x1000>; interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; clocks = <&crg_ctrl HI3660_OSC32K>,
arch/arm64/boot/dts/hisilicon/hi6220.dtsi +1 -1
@@ -840,7 +840,7 @@ dwmmc_2: dwmmc2@f723f000 { }; watchdog0: watchdog@f8005000 { - compatible = "arm,sp805-wdt", "arm,primecell"; + compatible = "arm,sp805", "arm,primecell"; reg = <0x0 0xf8005000 0x0 0x1000>; interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ao_ctrl HI6220_WDT0_PCLK>,
arch/arm64/boot/dts/qcom/ipq6018.dtsi +1 -1
@@ -200,7 +200,7 @@ cryptobam: dma@704000 { clock-names = "bam_clk"; #dma-cells = <1>; qcom,ee = <1>; - qcom,controlled-remotely = <1>; + qcom,controlled-remotely; qcom,config-pipe-trust-reg = <0>; };
arch/arm64/boot/dts/qcom/msm8998.dtsi +12 -8
@@ -300,38 +300,42 @@ idle-states { LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 { compatible = "arm,idle-state"; idle-state-name = "little-retention"; + /* CPU Retention (C2D), L2 Active */ arm,psci-suspend-param = <0x00000002>; entry-latency-us = <81>; exit-latency-us = <86>; - min-residency-us = <200>; + min-residency-us = <504>; }; LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 { compatible = "arm,idle-state"; idle-state-name = "little-power-collapse"; + /* CPU + L2 Power Collapse (C3, D4) */ arm,psci-suspend-param = <0x40000003>; - entry-latency-us = <273>; - exit-latency-us = <612>; - min-residency-us = <1000>; + entry-latency-us = <814>; + exit-latency-us = <4562>; + min-residency-us = <9183>; local-timer-stop; }; BIG_CPU_SLEEP_0: cpu-sleep-1-0 { compatible = "arm,idle-state"; idle-state-name = "big-retention"; + /* CPU Retention (C2D), L2 Active */ arm,psci-suspend-param = <0x00000002>; entry-latency-us = <79>; exit-latency-us = <82>; - min-residency-us = <200>; + min-residency-us = <1302>; }; BIG_CPU_SLEEP_1: cpu-sleep-1-1 { compatible = "arm,idle-state"; idle-state-name = "big-power-collapse"; + /* CPU + L2 Power Collapse (C3, D4) */ arm,psci-suspend-param = <0x40000003>; - entry-latency-us = <336>; - exit-latency-us = <525>; - min-residency-us = <1000>; + entry-latency-us = <724>; + exit-latency-us = <2027>; + min-residency-us = <9419>; local-timer-stop; }; };
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +0 -4
@@ -379,10 +379,6 @@ mains_charger: dc-charger { }; }; -&cdn_dp { - status = "okay"; -}; - &cpu_b0 { cpu-supply = <&vdd_cpu_b>; };
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts +2 -2
@@ -131,7 +131,7 @@ spi0_flash0: flash@0 { reg = <0>; partition@0 { - label = "data"; + label = "spi0-data"; reg = <0x0 0x100000>; }; };
@@ -149,7 +149,7 @@ spi1_flash0: flash@0 { reg = <0>; partition@0 { - label = "data"; + label = "spi1-data"; reg = <0x0 0x84000>; }; };
arch/arm64/boot/dts/xilinx/zynqmp.dtsi +2 -2
@@ -688,7 +688,7 @@ ttc3: timer@ff140000 { }; uart0: serial@ff000000 { - compatible = "cdns,uart-r1p12", "xlnx,xuartps"; + compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12"; status = "disabled"; interrupt-parent = <&gic>; interrupts = <0 21 4>;
@@ -698,7 +698,7 @@ uart0: serial@ff000000 { }; uart1: serial@ff010000 { - compatible = "cdns,uart-r1p12", "xlnx,xuartps"; + compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12"; status = "disabled"; interrupt-parent = <&gic>; interrupts = <0 22 4>;
arch/arm64/kernel/vdso32/Makefile +2 -1
@@ -48,7 +48,8 @@ cc32-as-instr = $(call try-run,\ # As a result we set our own flags here. # KBUILD_CPPFLAGS and NOSTDINC_FLAGS from top-level Makefile -VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc -isystem $(shell $(CC_COMPAT) -print-file-name=include) +VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc +VDSO_CPPFLAGS += -isystem $(shell $(CC_COMPAT) -print-file-name=include 2>/dev/null) VDSO_CPPFLAGS += $(LINUXINCLUDE) # Common C and assembly flags
arch/hexagon/include/asm/timer-regs.h deleted +0 -26
@@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* -* Timer support for Hexagon -* -* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. -*/ - -#ifndef _ASM_TIMER_REGS_H -#define _ASM_TIMER_REGS_H - -/* This stuff should go into a platform specific file */ -#define TCX0_CLK_RATE 19200 -#define TIMER_ENABLE 0 -#define TIMER_CLR_ON_MATCH 1 - -/* -* 8x50 HDD Specs 5-8. Simulator co-sim not fixed until -* release 1.1, and then it's "adjustable" and probably not defaulted. -*/ -#define RTOS_TIMER_INT 3 -#ifdef CONFIG_HEXAGON_COMET -#define RTOS_TIMER_REGS_ADDR 0xAB000000UL -#endif -#define SLEEP_CLK_RATE 32000 - -#endif
arch/hexagon/include/asm/timex.h +1 -2
@@ -7,11 +7,10 @@#define _ASM_TIMEX_H#include <asm-generic/timex.h> -#include <asm/timer-regs.h> #include <asm/hexagon_vm.h> /* Using TCX0 as our clock. CLOCK_TICK_RATE scheduled to be removed. */ -#define CLOCK_TICK_RATE TCX0_CLK_RATE +#define CLOCK_TICK_RATE 19200#define ARCH_HAS_READ_CURRENT_TIMER
arch/hexagon/kernel/time.c +10 -2
@@ -17,9 +17,10 @@#include <linux/of_irq.h> #include <linux/module.h> -#include <asm/timer-regs.h> #include <asm/hexagon_vm.h> +#define TIMER_ENABLE BIT(0) +/* * For the clocksource we need: * pcycle frequency (600MHz)
@@ -33,6 +34,13 @@ cycles_t pcycle_freq_mhz;cycles_t thread_freq_mhz;cycles_t sleep_clk_freq; +/* +* 8x50 HDD Specs 5-8. Simulator co-sim not fixed until +* release 1.1, and then it's "adjustable" and probably not defaulted. +*/ +#define RTOS_TIMER_INT 3 +#define RTOS_TIMER_REGS_ADDR 0xAB000000UL +static struct resource rtos_timer_resources[] = { { .start =RTOS_TIMER_REGS_ADDR ,
@@ -80,7 +88,7 @@ static int set_next_event(unsigned long delta, struct clock_event_device *evt)iowrite32 (0 , &rtos_timer->clear);iowrite32 (delta, &rtos_timer->match); -iowrite32 (1 <<TIMER_ENABLE , &rtos_timer->enable); +iowrite32 (TIMER_ENABLE , &rtos_timer->enable);return 0 ; }
arch/hexagon/lib/io.c +4 -0
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void *data, int len) *dst++ = *src; } +EXPORT_SYMBOL (__raw_readsw);/* * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void *data, int len) } +EXPORT_SYMBOL (__raw_writesw);/* Pretty sure len is pre-adjusted for the length of the access already */ void __raw_readsl (const void __iomem *addr,void *data,int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void *data, int len) } +EXPORT_SYMBOL (__raw_readsl);void __raw_writesl (void __iomem *addr,const void *data,int len) {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void *data, int len) } +EXPORT_SYMBOL (__raw_writesl);
arch/mips/Kconfig +3 -0
@@ -320,6 +320,9 @@ config BCM63XX select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_BIG_ENDIAN select SYS_HAS_EARLY_PRINTK + select SYS_HAS_CPU_BMIPS32_3300 + select SYS_HAS_CPU_BMIPS4350 + select SYS_HAS_CPU_BMIPS4380 select SWAP_IO_SPACE select GPIOLIB select MIPS_L1_CACHE_SHIFT_4
arch/mips/bcm63xx/clk.c +6 -0
@@ -381,6 +381,12 @@ void clk_disable(struct clk *clk)EXPORT_SYMBOL (clk_disable); +struct clk *clk_get_parent (struct clk *clk) +{ +return NULL ; +} +EXPORT_SYMBOL (clk_get_parent); +unsigned long clk_get_rate (struct clk *clk) {if (!clk)
arch/mips/generic/yamon-dt.c +1 -1
@@ -75,7 +75,7 @@ static unsigned int __init gen_fdt_mem_array(__init int yamon_dt_append_memory (void *fdt,const struct yamon_mem_region *regions) { -unsigned long phys_memsize, memsize; +unsigned long phys_memsize =0 , memsize;__be32 mem_array[2 *MAX_MEM_ARRAY_ENTRIES ];unsigned int mem_entries;int i, err, mem_off;
arch/mips/lantiq/clk.c +6 -0
@@ -158,6 +158,12 @@ void clk_deactivate(struct clk *clk) }EXPORT_SYMBOL (clk_deactivate); +struct clk *clk_get_parent (struct clk *clk) +{ +return NULL ; +} +EXPORT_SYMBOL (clk_get_parent); +static inline u32 get_counter_resolution (void ) {u32 res;
arch/mips/sni/time.c +2 -2
@@ -18,14 +18,14 @@ static int a20r_set_periodic(struct clock_event_device *evt) { *(volatile u8 *)(A20R_PT_CLOCK_BASE +12 ) =0x34 ;wmb (); - *(volatile u8 *)(A20R_PT_CLOCK_BASE +0 ) =SNI_COUNTER0_DIV ; + *(volatile u8 *)(A20R_PT_CLOCK_BASE +0 ) =SNI_COUNTER0_DIV &0xff ;wmb (); *(volatile u8 *)(A20R_PT_CLOCK_BASE +0 ) =SNI_COUNTER0_DIV >>8 ;wmb (); *(volatile u8 *)(A20R_PT_CLOCK_BASE +12 ) =0xb4 ;wmb (); - *(volatile u8 *)(A20R_PT_CLOCK_BASE +8 ) =SNI_COUNTER2_DIV ; + *(volatile u8 *)(A20R_PT_CLOCK_BASE +8 ) =SNI_COUNTER2_DIV &0xff ;wmb (); *(volatile u8 *)(A20R_PT_CLOCK_BASE +8 ) =SNI_COUNTER2_DIV >>8 ;wmb ();
arch/powerpc/boot/dts/charon.dts +1 -1
@@ -35,7 +35,7 @@ PowerPC,5200@0 { }; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>; // 128MB };
arch/powerpc/boot/dts/digsy_mtc.dts +1 -1
@@ -16,7 +16,7 @@ / { model = "intercontrol,digsy-mtc"; compatible = "intercontrol,digsy-mtc"; - memory { + memory@0 { reg = <0x00000000 0x02000000>; // 32MB };
arch/powerpc/boot/dts/lite5200.dts +1 -1
@@ -32,7 +32,7 @@ PowerPC,5200@0 { }; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x04000000>; // 64MB };
arch/powerpc/boot/dts/lite5200b.dts +1 -1
@@ -31,7 +31,7 @@ tmr3 { led4 { gpios = <&gpio_simple 2 1>; }; }; - memory { + memory@0 { reg = <0x00000000 0x10000000>; // 256MB };
arch/powerpc/boot/dts/media5200.dts +1 -1
@@ -32,7 +32,7 @@ PowerPC,5200@0 { }; }; - memory { + memory@0 { reg = <0x00000000 0x08000000>; // 128MB RAM };
arch/powerpc/boot/dts/mpc5200b.dtsi +1 -1
@@ -33,7 +33,7 @@ powerpc: PowerPC,5200@0 { }; }; - memory: memory { + memory: memory@0 { device_type = "memory"; reg = <0x00000000 0x04000000>; // 64MB };
arch/powerpc/boot/dts/o2d.dts +1 -1
@@ -12,7 +12,7 @@ / { model = "ifm,o2d"; compatible = "ifm,o2d"; - memory { + memory@0 { reg = <0x00000000 0x08000000>; // 128MB };
arch/powerpc/boot/dts/o2d.dtsi +1 -1
@@ -19,7 +19,7 @@ / { model = "ifm,o2d"; compatible = "ifm,o2d"; - memory { + memory@0 { reg = <0x00000000 0x04000000>; // 64MB };
arch/powerpc/boot/dts/o2dnt2.dts +1 -1
@@ -12,7 +12,7 @@ / { model = "ifm,o2dnt2"; compatible = "ifm,o2d"; - memory { + memory@0 { reg = <0x00000000 0x08000000>; // 128MB };
arch/powerpc/boot/dts/o3dnt.dts +1 -1
@@ -12,7 +12,7 @@ / { model = "ifm,o3dnt"; compatible = "ifm,o2d"; - memory { + memory@0 { reg = <0x00000000 0x04000000>; // 64MB };
arch/powerpc/boot/dts/pcm032.dts +1 -1
@@ -20,7 +20,7 @@ / { model = "phytec,pcm032"; compatible = "phytec,pcm032"; - memory { + memory@0 { reg = <0x00000000 0x08000000>; // 128MB };
arch/powerpc/boot/dts/tqm5200.dts +1 -1
@@ -32,7 +32,7 @@ PowerPC,5200@0 { }; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x04000000>; // 64MB };
arch/powerpc/kernel/head_8xx.S +7 -6
@@ -766,6 +766,7 @@ _GLOBAL(mmu_pin_tlb) #ifdef CONFIG_PIN_TLB_DATA LOAD_REG_IMMEDIATE(r6, PAGE_OFFSET) LOAD_REG_IMMEDIATE(r7, MI_SVALID | MI_PS8MEG | _PMD_ACCESSED) + li r8, 0 #ifdef CONFIG_PIN_TLB_IMMR li r0, 3 #else
@@ -774,26 +775,26 @@ _GLOBAL(mmu_pin_tlb) mtctr r0 cmpwi r4, 0 beq 4f - LOAD_REG_IMMEDIATE(r8, 0xf0 | _PAGE_RO | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT) LOAD_REG_ADDR(r9, _sinittext) 2: ori r0, r6, MD_EVALID + ori r12, r8, 0xf0 | _PAGE_RO | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT mtspr SPRN_MD_CTR, r5 mtspr SPRN_MD_EPN, r0 mtspr SPRN_MD_TWC, r7 - mtspr SPRN_MD_RPN, r8 + mtspr SPRN_MD_RPN, r12 addi r5, r5, 0x100 addis r6, r6, SZ_8M@h addis r8, r8, SZ_8M@h cmplw r6, r9 bdnzt lt, 2b - -4: LOAD_REG_IMMEDIATE(r8, 0xf0 | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT) +4: 2: ori r0, r6, MD_EVALID + ori r12, r8, 0xf0 | _PAGE_DIRTY | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT mtspr SPRN_MD_CTR, r5 mtspr SPRN_MD_EPN, r0 mtspr SPRN_MD_TWC, r7 - mtspr SPRN_MD_RPN, r8 + mtspr SPRN_MD_RPN, r12 addi r5, r5, 0x100 addis r6, r6, SZ_8M@h addis r8, r8, SZ_8M@h
@@ -814,7 +815,7 @@ _GLOBAL(mmu_pin_tlb) #endif #if defined(CONFIG_PIN_TLB_IMMR) || defined(CONFIG_PIN_TLB_DATA) lis r0, (MD_RSV4I | MD_TWAM)@h - mtspr SPRN_MI_CTR, r0 + mtspr SPRN_MD_CTR, r0 #endif mtspr SPRN_SRR1, r10 mtspr SPRN_SRR0, r11
arch/powerpc/kvm/book3s_hv_rmhandlers.S +2 -2
@@ -2539,7 +2539,7 @@ hcall_real_table: .globl hcall_real_table_end hcall_real_table_end: -_GLOBAL(kvmppc_h_set_xdabr) +_GLOBAL_TOC(kvmppc_h_set_xdabr) EXPORT_SYMBOL_GPL(kvmppc_h_set_xdabr) andi. r0, r5, DABRX_USER | DABRX_KERNEL beq 6f
@@ -2549,7 +2549,7 @@ EXPORT_SYMBOL_GPL(kvmppc_h_set_xdabr) 6: li r3, H_PARAMETER blr -_GLOBAL(kvmppc_h_set_dabr) +_GLOBAL_TOC(kvmppc_h_set_dabr) EXPORT_SYMBOL_GPL(kvmppc_h_set_dabr) li r5, DABRX_USER | DABRX_KERNEL 3:
arch/powerpc/sysdev/dcr-low.S +1 -1
@@ -11,7 +11,7 @@ #include <asm/export.h> #define DCR_ACCESS_PROLOG(table) \ - cmpli cr0,r3,1024; \ + cmplwi cr0,r3,1024; \ rlwinm r3,r3,4,18,27; \ lis r5,table@h; \ ori r5,r5,table@l; \
arch/s390/include/asm/kexec.h +6 -0
@@ -74,6 +74,12 @@ void *kexec_file_add_components(struct kimage *image,int arch_kexec_do_relocs (int r_type,void *loc,unsigned long val,unsigned long addr); +#define ARCH_HAS_KIMAGE_ARCH + +struct kimage_arch { +void *ipl_buf; +}; +extern const struct kexec_file_ops s390_kexec_image_ops;extern const struct kexec_file_ops s390_kexec_elf_ops;
arch/s390/kernel/ipl.c +2 -1
@@ -2156,7 +2156,7 @@ void *ipl_report_finish(struct ipl_report *report) buf =vzalloc (report->size);if (!buf) -return ERR_PTR (-ENOMEM ); + goto out; ptr = buf;memcpy (ptr, report->ipib, report->ipib->hdr.len);
@@ -2195,6 +2195,7 @@ void *ipl_report_finish(struct ipl_report *report) }BUG_ON (ptr > buf + report->size); +out:return buf; }
arch/s390/kernel/machine_kexec_file.c +17 -1
@@ -12,6 +12,7 @@#include <linux/kexec.h> #include <linux/module_signature.h> #include <linux/verification.h> +#include <linux/vmalloc.h> #include <asm/boot_data.h> #include <asm/ipl.h> #include <asm/setup.h>
@@ -170,6 +171,7 @@ static int kexec_file_add_ipl_report(struct kimage *image,struct kexec_buf buf;unsigned long addr;void *ptr, *end; +int ret; buf.image = image;
@@ -199,9 +201,13 @@ static int kexec_file_add_ipl_report(struct kimage *image, ptr += len; } + ret = -ENOMEM ; buf.buffer =ipl_report_finish (data->report); +if (!buf.buffer) + goto out; buf.bufsz = data->report->size; buf.memsz = buf.bufsz; + image->arch.ipl_buf = buf.buffer; data->memsz += buf.memsz;
@@ -209,7 +215,9 @@ static int kexec_file_add_ipl_report(struct kimage *image, data->kernel_buf + offsetof(struct lowcore , ipl_parmblock_ptr); *lc_ipl_parmblock_ptr = (__u32 )buf.mem; -return kexec_add_buffer (&buf); + ret =kexec_add_buffer (&buf); +out: +return ret; } void *kexec_file_add_components(struct kimage *image,
@@ -321,3 +329,11 @@ int arch_kexec_kernel_image_probe(struct kimage *image, void *buf,return kexec_image_probe_default (image, buf, buf_len); } + +int arch_kimage_file_post_load_cleanup (struct kimage *image) +{ +vfree (image->arch.ipl_buf); + image->arch.ipl_buf =NULL ; + +return kexec_image_post_load_cleanup_default (image); +}
arch/sh/Kconfig.debug +1 -0
@@ -57,6 +57,7 @@ config DUMP_CODE config DWARF_UNWINDER bool "Enable the DWARF unwinder for stacktraces" + depends on DEBUG_KERNEL select FRAME_POINTER default n help
arch/sh/include/asm/sfp-machine.h +8 -0
@@ -13,6 +13,14 @@#ifndef _SFP_MACHINE_H#define _SFP_MACHINE_H +#ifdef __BIG_ENDIAN__ +#define __BYTE_ORDER __BIG_ENDIAN +#define __LITTLE_ENDIAN 0 +#else +#define __BYTE_ORDER __LITTLE_ENDIAN +#define __BIG_ENDIAN 0 +#endif +#define _FP_W_TYPE_SIZE 32#define _FP_W_TYPE unsigned long#define _FP_WS_TYPE signed long
arch/sh/kernel/cpu/sh4a/smp-shx3.c +3 -2
@@ -73,8 +73,9 @@ static void shx3_prepare_cpus(unsigned int max_cpus)BUILD_BUG_ON (SMP_MSG_NR >=8 );for (i =0 ; i <SMP_MSG_NR ; i++) -request_irq (104 + i, ipi_interrupt_handler, -IRQF_PERCPU ,"IPI" , (void *)(long )i); +if (request_irq (104 + i, ipi_interrupt_handler, +IRQF_PERCPU ,"IPI" , (void *)(long )i)) +pr_err ("Failed to request irq %d\n" , i);for (i =0 ; i < max_cpus; i++)set_cpu_present (i, true);
arch/sh/math-emu/math.c +0 -103
109 lines not on this page · raw message
arch/x86/Kconfig +2 -1
@@ -1266,7 +1266,8 @@ config TOSHIBA config I8K tristate "Dell i8k legacy laptop support" - select HWMON + depends on HWMON + depends on PROC_FS select SENSORS_DELL_SMM help This option enables legacy /proc/i8k userspace interface in hwmon
arch/x86/events/intel/core.c +3 -1
@@ -2879,8 +2879,10 @@ intel_vlbr_constraints(struct perf_event *event) {struct event_constraint *c = &vlbr_constraint; -if (unlikely (constraint_match (c, event->hw.config))) +if (unlikely (constraint_match (c, event->hw.config))) { + event->hw.flags |= c->flags;return c; + }return NULL ; }
arch/x86/events/intel/uncore_snbep.c +4 -0
@@ -3545,6 +3545,9 @@ static int skx_cha_hw_config(struct intel_uncore_box *box, struct perf_event *evstruct hw_perf_event_extra *reg1 = &event->hw.extra_reg;struct extra_reg *er;int idx =0 ; +/* Any of the CHA events may be filtered by Thread/Core-ID.*/ +if (event->hw.config &SNBEP_CBO_PMON_CTL_TID_EN ) + idx =SKX_CHA_MSR_PMON_BOX_FILTER_TID ;for (er = skx_uncore_cha_extra_regs; er->msr; er++) {if (er->event != (event->hw.config & er->config_mask))
@@ -3612,6 +3615,7 @@ static struct event_constraint skx_uncore_iio_constraints[] = {UNCORE_EVENT_CONSTRAINT (0xc0 ,0xc ),UNCORE_EVENT_CONSTRAINT (0xc5 ,0xc ),UNCORE_EVENT_CONSTRAINT (0xd4 ,0xc ), +UNCORE_EVENT_CONSTRAINT (0xd5 ,0xc ), EVENT_CONSTRAINT_END };
arch/x86/hyperv/hv_init.c +3 -0
@@ -176,6 +176,9 @@ void set_hv_tscchange_cb(void (*cb)(void))return ; } +if (!hv_vp_index) +return ; + hv_reenlightenment_cb = cb;/* Make sure callback is registered before we write to MSRs */
arch/x86/kvm/vmx/nested.c +17 -5
@@ -2851,6 +2851,17 @@ static int nested_vmx_check_controls(struct kvm_vcpu *vcpu,return 0 ; } +static int nested_vmx_check_address_space_size (struct kvm_vcpu *vcpu, +struct vmcs12 *vmcs12) +{ +#ifdef CONFIG_X86_64 +if (CC (!!(vmcs12->vm_exit_controls &VM_EXIT_HOST_ADDR_SPACE_SIZE ) != + !!(vcpu->arch.efer &EFER_LMA ))) +return -EINVAL ; +#endif +return 0 ; +} +static int nested_vmx_check_host_state (struct kvm_vcpu *vcpu,struct vmcs12 *vmcs12) {
@@ -2875,18 +2886,16 @@ static int nested_vmx_check_host_state(struct kvm_vcpu *vcpu,return -EINVAL ;#ifdef CONFIG_X86_64 - ia32e = !!(vcpu->arch.efer &EFER_LMA ); + ia32e = !!(vmcs12->vm_exit_controls &VM_EXIT_HOST_ADDR_SPACE_SIZE );#else ia32e = false;#endif if (ia32e) { -if (CC (!(vmcs12->vm_exit_controls &VM_EXIT_HOST_ADDR_SPACE_SIZE )) || -CC (!(vmcs12->host_cr4 &X86_CR4_PAE ))) +if (CC (!(vmcs12->host_cr4 &X86_CR4_PAE )))return -EINVAL ; }else { -if (CC (vmcs12->vm_exit_controls &VM_EXIT_HOST_ADDR_SPACE_SIZE ) || -CC (vmcs12->vm_entry_controls &VM_ENTRY_IA32E_MODE ) || +if (CC (vmcs12->vm_entry_controls &VM_ENTRY_IA32E_MODE ) ||CC (vmcs12->host_cr4 &X86_CR4_PCIDE ) ||CC ((vmcs12->host_rip) >>32 ))return -EINVAL ;
@@ -3555,6 +3564,9 @@ static int nested_vmx_run(struct kvm_vcpu *vcpu, bool launch)if (nested_vmx_check_controls (vcpu, vmcs12))return nested_vmx_fail (vcpu,VMXERR_ENTRY_INVALID_CONTROL_FIELD ); +if (nested_vmx_check_address_space_size (vcpu, vmcs12)) +return nested_vmx_fail (vcpu,VMXERR_ENTRY_INVALID_HOST_STATE_FIELD ); +if (nested_vmx_check_host_state (vcpu, vmcs12))return nested_vmx_fail (vcpu,VMXERR_ENTRY_INVALID_HOST_STATE_FIELD );
block/blk-core.c +1 -3
@@ -897,10 +897,8 @@ static noinline_for_stack bool submit_bio_checks(struct bio *bio)if (unlikely (!current->io_context))create_task_io_context (current,GFP_ATOMIC , q->node); -if (blk_throtl_bio (bio)) { -blkcg_bio_issue_init (bio); +if (blk_throtl_bio (bio))return false; - }blk_cgroup_bio_start (bio);blkcg_bio_issue_init (bio);
block/ioprio.c +8 -1
@@ -69,7 +69,14 @@ int ioprio_check_cap(int ioprio)switch (class) {case IOPRIO_CLASS_RT : -if (!capable (CAP_SYS_NICE ) && !capable (CAP_SYS_ADMIN )) +/* +* Originally this only checked for CAP_SYS_ADMIN, +* which was implicitly allowed for pid 0 by security +* modules such as SELinux. Make sure we check +* CAP_SYS_ADMIN first to avoid a denial/avc for +* possibly missing CAP_SYS_NICE permission. +*/ +if (!capable (CAP_SYS_ADMIN ) && !capable (CAP_SYS_NICE ))return -EPERM ; fallthrough;/* rt has prio field too */
drivers/base/firmware_loader/main.c +7 -6
@@ -99,12 +99,15 @@ static struct firmware_cache fw_cache;extern struct builtin_fw __start_builtin_fw[];extern struct builtin_fw __end_builtin_fw[]; -static void fw_copy_to_prealloc_buf (struct firmware *fw, +static bool fw_copy_to_prealloc_buf (struct firmware *fw,void *buf,size_t size) { -if (!buf || size < fw->size) -return ; +if (!buf) +return true; +if (size < fw->size) +return false;memcpy (buf, fw->data, fw->size); +return true; } static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,
@@ -116,9 +119,7 @@ static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,if (strcmp (name, b_fw->name) ==0 ) { fw->size = b_fw->size; fw->data = b_fw->data; -fw_copy_to_prealloc_buf (fw, buf, size); - -return true; +return fw_copy_to_prealloc_buf (fw, buf, size); } }
drivers/bus/ti-sysc.c +103 -7
186 lines not on this page · raw message
drivers/clk/clk-ast2600.c +7 -5
@@ -51,6 +51,8 @@ static DEFINE_SPINLOCK(aspeed_g6_clk_lock);static struct clk_hw_onecell_data *aspeed_g6_clk_data;static void __iomem *scu_g6_base; +/* AST2600 revision: A0, A1, A2, etc */ +static u8 soc_rev;/* * Clocks marked with CLK_IS_CRITICAL:
@@ -191,9 +193,8 @@ static struct clk_hw *ast2600_calc_pll(const char *name, u32 val)static struct clk_hw *ast2600_calc_apll (const char *name,u32 val) {unsigned int mult, div; -u32 chip_id =readl (scu_g6_base +ASPEED_G6_SILICON_REV ); -if (((chip_id &CHIP_REVISION_ID ) >>16 ) >=2 ) { +if (soc_rev >=2 ) {if (val &BIT (24 )) {/* Pass through mode */ mult = div =1 ;
@@ -707,7 +708,7 @@ static const u32 ast2600_a1_axi_ahb200_tbl[] = {static void __init aspeed_g6_cc (struct regmap *map) {struct clk_hw *hw; -u32 val, div, divbits, chip_id, axi_div, ahb_div; +u32 val, div, divbits, axi_div, ahb_div;clk_hw_register_fixed_rate (NULL ,"clkin" ,NULL ,0 ,25000000 );
@@ -738,8 +739,7 @@ static void __init aspeed_g6_cc(struct regmap *map) axi_div =2 ; divbits = (val >>11 ) &0x3 ; -regmap_read (map,ASPEED_G6_SILICON_REV , &chip_id); -if (chip_id &BIT (16 )) { +if (soc_rev >=1 ) {if (!divbits) { ahb_div = ast2600_a1_axi_ahb200_tbl[(val >>8 ) &0x3 ];if (val &BIT (16 ))
@@ -784,6 +784,8 @@ static void __init aspeed_g6_cc_init(struct device_node *np)if (!scu_g6_base)return ; + soc_rev = (readl (scu_g6_base +ASPEED_G6_SILICON_REV ) &CHIP_REVISION_ID ) >>16 ; + aspeed_g6_clk_data =kzalloc (struct_size (aspeed_g6_clk_data, hws,ASPEED_G6_NUM_CLKS ),GFP_KERNEL );if (!aspeed_g6_clk_data)
drivers/clk/imx/clk-imx6ul.c +1 -1
@@ -161,7 +161,6 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) hws[IMX6UL_PLL5_BYPASS ] =imx_clk_hw_mux_flags ("pll5_bypass" , base +0xa0 ,16 ,1 , pll5_bypass_sels,ARRAY_SIZE (pll5_bypass_sels),CLK_SET_RATE_PARENT ); hws[IMX6UL_PLL6_BYPASS ] =imx_clk_hw_mux_flags ("pll6_bypass" , base +0xe0 ,16 ,1 , pll6_bypass_sels,ARRAY_SIZE (pll6_bypass_sels),CLK_SET_RATE_PARENT ); hws[IMX6UL_PLL7_BYPASS ] =imx_clk_hw_mux_flags ("pll7_bypass" , base +0x20 ,16 ,1 , pll7_bypass_sels,ARRAY_SIZE (pll7_bypass_sels),CLK_SET_RATE_PARENT ); - hws[IMX6UL_CLK_CSI_SEL ] =imx_clk_hw_mux_flags ("csi_sel" , base +0x3c ,9 ,2 , csi_sels,ARRAY_SIZE (csi_sels),CLK_SET_RATE_PARENT );/* Do not bypass PLLs initially */ clk_set_parent (hws[IMX6UL_PLL1_BYPASS ]->clk, hws[IMX6UL_CLK_PLL1 ]->clk);
@@ -270,6 +269,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) hws[IMX6UL_CLK_ECSPI_SEL ] =imx_clk_hw_mux ("ecspi_sel" , base +0x38 ,18 ,1 , ecspi_sels,ARRAY_SIZE (ecspi_sels)); hws[IMX6UL_CLK_LCDIF_PRE_SEL ] =imx_clk_hw_mux_flags ("lcdif_pre_sel" , base +0x38 ,15 ,3 , lcdif_pre_sels,ARRAY_SIZE (lcdif_pre_sels),CLK_SET_RATE_PARENT ); hws[IMX6UL_CLK_LCDIF_SEL ] =imx_clk_hw_mux ("lcdif_sel" , base +0x38 ,9 ,3 , lcdif_sels,ARRAY_SIZE (lcdif_sels)); + hws[IMX6UL_CLK_CSI_SEL ] =imx_clk_hw_mux ("csi_sel" , base +0x3c ,9 ,2 , csi_sels,ARRAY_SIZE (csi_sels)); hws[IMX6UL_CLK_LDB_DI0_DIV_SEL ] =imx_clk_hw_mux ("ldb_di0" , base +0x20 ,10 ,1 , ldb_di0_div_sels,ARRAY_SIZE (ldb_di0_div_sels)); hws[IMX6UL_CLK_LDB_DI1_DIV_SEL ] =imx_clk_hw_mux ("ldb_di1" , base +0x20 ,11 ,1 , ldb_di1_div_sels,ARRAY_SIZE (ldb_di1_div_sels));
drivers/clk/ingenic/cgu.c +3 -3
@@ -425,15 +425,15 @@ ingenic_clk_calc_div(const struct ingenic_cgu_clk_info *clk_info, }/* Impose hardware constraints */ - div =min_t (unsigned, div,1 << clk_info->div.bits); - div =max_t (unsigned, div,1 ); + div = clamp_t(unsigned int, div, clk_info->div.div, + clk_info->div.div << clk_info->div.bits);/* * If the divider value itself must be divided before being written to * the divider register, we must ensure we don't have any bits set that * would be lost as a result of doing so. */ - div /= clk_info->div.div; + div =DIV_ROUND_UP (div, clk_info->div.div); div *= clk_info->div.div;return div;
drivers/clk/qcom/gcc-msm8996.c +0 -15
@@ -2937,20 +2937,6 @@ static struct clk_branch gcc_smmu_aggre0_ahb_clk = { }, }; -static struct clk_branch gcc_aggre1_pnoc_ahb_clk = { - .halt_reg =0x82014 , - .clkr = { - .enable_reg =0x82014 , - .enable_mask =BIT (0 ), - .hw.init = &(struct clk_init_data ){ - .name ="gcc_aggre1_pnoc_ahb_clk" , - .parent_names = (const char *[]){"periph_noc_clk_src" }, - .num_parents =1 , - .ops = &clk_branch2_ops, - }, - }, -}; -static struct clk_branch gcc_aggre2_ufs_axi_clk = { .halt_reg =0x83014 , .clkr = {
@@ -3474,7 +3460,6 @@ static struct clk_regmap *gcc_msm8996_clocks[] = { [GCC_AGGRE0_CNOC_AHB_CLK] = &gcc_aggre0_cnoc_ahb_clk.clkr, [GCC_SMMU_AGGRE0_AXI_CLK] = &gcc_smmu_aggre0_axi_clk.clkr, [GCC_SMMU_AGGRE0_AHB_CLK] = &gcc_smmu_aggre0_ahb_clk.clkr, - [GCC_AGGRE1_PNOC_AHB_CLK] = &gcc_aggre1_pnoc_ahb_clk.clkr, [GCC_AGGRE2_UFS_AXI_CLK] = &gcc_aggre2_ufs_axi_clk.clkr, [GCC_AGGRE2_USB3_AXI_CLK] = &gcc_aggre2_usb3_axi_clk.clkr, [GCC_QSPI_AHB_CLK] = &gcc_qspi_ahb_clk.clkr,
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +1 -0
@@ -827,6 +827,7 @@ static int amdgpu_connector_vga_get_modes(struct drm_connector *connector)amdgpu_connector_get_edid (connector); ret =amdgpu_connector_ddc_get_modes (connector); +amdgpu_get_native_mode (connector);return ret; }
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +3 -1
@@ -1852,7 +1852,9 @@ static void swizzle_to_dml_params(case DC_SW_VAR_D_X : *sw_mode = dm_sw_var_d_x;break ; - +case DC_SW_VAR_R_X : + *sw_mode = dm_sw_var_r_x; +break ;default :ASSERT (0 );/* Not supported */ break ;
drivers/gpu/drm/amd/display/dc/dml/display_mode_enums.h +2 -2
@@ -80,11 +80,11 @@ enum dm_swizzle_mode { dm_sw_SPARE_13 =24 , dm_sw_64kb_s_x =25 , dm_sw_64kb_d_x =26 , - dm_sw_SPARE_14 =27 , + dm_sw_64kb_r_x =27 , dm_sw_SPARE_15 =28 , dm_sw_var_s_x =29 , dm_sw_var_d_x =30 , - dm_sw_64kb_r_x, + dm_sw_var_r_x =31 , dm_sw_gfx7_2d_thin_l_vp, dm_sw_gfx7_2d_thin_gl, };
drivers/gpu/drm/i915/display/intel_dp.c +11 -0
@@ -154,6 +154,12 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv, enum pipe pipe);static void intel_dp_unset_edid (struct intel_dp *intel_dp); +static void intel_dp_set_default_sink_rates (struct intel_dp *intel_dp) +{ + intel_dp->sink_rates[0 ] =162000 ; + intel_dp->num_sink_rates =1 ; +} +/* update sink rates from dpcd */ static void intel_dp_set_sink_rates (struct intel_dp *intel_dp) {
@@ -4678,6 +4684,9 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)*/ intel_psr_init_dpcd (intel_dp); +/* Clear the default sink rates */ + intel_dp->num_sink_rates =0 ; +/* Read the eDP 1.4+ supported link rates. */ if (intel_dp->edp_dpcd[0 ] >=DP_EDP_14 ) {__le16 sink_rates[DP_MAX_SUPPORTED_RATES ];
@@ -7779,6 +7788,8 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,return false;intel_dp_set_source_rates (intel_dp); +intel_dp_set_default_sink_rates (intel_dp); +intel_dp_set_common_rates (intel_dp); intel_dp->reset_link_params = true; intel_dp->pps_pipe =INVALID_PIPE ;
drivers/gpu/drm/nouveau/nouveau_drm.c +37 -5
94 lines not on this page · raw message
drivers/gpu/drm/nouveau/nouveau_drv.h +5 -0
@@ -142,6 +142,11 @@ struct nouveau_drm {struct list_head clients; +/** +* @clients_lock: Protects access to the @clients list of &struct nouveau_cli. +*/ +struct mutex clients_lock; +u8 old_pm_cap;struct {
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c +0 -1
@@ -62,7 +62,6 @@ gv100_hdmi_ctrl(struct nvkm_ior *ior, int head, bool enable, u8 max_ac_packet,nvkm_wr32 (device,0x6f0108 + hdmi, vendor_infoframe.header);nvkm_wr32 (device,0x6f010c + hdmi, vendor_infoframe.subpack0_low);nvkm_wr32 (device,0x6f0110 + hdmi, vendor_infoframe.subpack0_high); -nvkm_wr32 (device,0x6f0110 + hdmi,0x00000000 );nvkm_wr32 (device,0x6f0114 + hdmi,0x00000000 );nvkm_wr32 (device,0x6f0118 + hdmi,0x00000000 );nvkm_wr32 (device,0x6f011c + hdmi,0x00000000 );
drivers/gpu/drm/udl/udl_connector.c +1 -1
@@ -30,7 +30,7 @@ static int udl_get_edid_block(void *data, u8 *buf, unsigned int block, ret =usb_control_msg (udl->udev,usb_rcvctrlpipe (udl->udev,0 ), (0x02 ), (0x80 | (0x02 <<5 )), bval, -0xA1 , read_buff,2 ,HZ ); +0xA1 , read_buff,2 ,1000 );if (ret <1 ) {DRM_ERROR ("Read EDID byte %d failed err %x\n" , i, ret);kfree (read_buff);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +4 -2
@@ -1465,6 +1465,8 @@ st_lsm6dsx_set_odr(struct st_lsm6dsx_sensor *sensor, u32 req_odr)int err;switch (sensor->id) { +case ST_LSM6DSX_ID_GYRO : +break ;case ST_LSM6DSX_ID_EXT0 :case ST_LSM6DSX_ID_EXT1 :case ST_LSM6DSX_ID_EXT2 :
@@ -1490,8 +1492,8 @@ st_lsm6dsx_set_odr(struct st_lsm6dsx_sensor *sensor, u32 req_odr) }break ; } -default : -break ; +default :/* should never occur */ +return -EINVAL ; }if (req_odr >0 ) {
drivers/infiniband/hw/bnxt_re/ib_verbs.c +9 -3
@@ -3368,8 +3368,11 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp,struct ib_wc *wc, struct bnxt_qplib_cqe *cqe) { + struct bnxt_re_dev *rdev; +u16 vlan_id =0 ;u8 nw_type; + rdev = qp->rdev; wc->opcode =IB_WC_RECV ; wc->status =__rc_to_ib_wc_status (cqe->status);
@@ -3381,9 +3384,12 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp,memcpy (wc->smac, cqe->smac,ETH_ALEN ); wc->wc_flags |=IB_WC_WITH_SMAC ;if (cqe->flags &CQ_RES_UD_FLAGS_META_FORMAT_VLAN ) { - wc->vlan_id = (cqe->cfa_meta &0xFFF ); -if (wc->vlan_id <0x1000 ) - wc->wc_flags |=IB_WC_WITH_VLAN ; + vlan_id = (cqe->cfa_meta &0xFFF ); + } +/* Mark only if vlan_id is non zero */ +if (vlan_id &&bnxt_re_check_if_vlan_valid (rdev, vlan_id)) { + wc->vlan_id = vlan_id; + wc->wc_flags |=IB_WC_WITH_VLAN ; } nw_type = (cqe->flags &CQ_RES_UD_FLAGS_ROCE_IP_VER_MASK ) >>CQ_RES_UD_FLAGS_ROCE_IP_VER_SFT ;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h +3 -1
@@ -635,11 +635,13 @@ static int bnx2x_ilt_client_mem_op(struct bnx2x *bp, int cli_num, {int i, rc;struct bnx2x_ilt *ilt =BP_ILT (bp); -struct ilt_client_info *ilt_cli = &ilt->clients[cli_num]; +struct ilt_client_info *ilt_cli;if (!ilt || !ilt->lines)return -1 ; + ilt_cli = &ilt->clients[cli_num]; +if (ilt_cli->flags & (ILT_CLIENT_SKIP_INIT |ILT_CLIENT_SKIP_MEM ))return 0 ;
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +1 -1
@@ -1854,7 +1854,7 @@ static int bnxt_tc_setup_indr_block_cb(enum tc_setup_type type,struct flow_cls_offload *flower = type_data;struct bnxt *bp = priv->bp; -if (flower->common.chain_index) +if (!tc_cls_can_offload_and_chain0 (bp->dev, type_data))return -EOPNOTSUPP ;switch (type) {
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
@@ -4432,10 +4432,10 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)fsl_mc_portal_free (priv->mc_io); -free_netdev (net_dev); -dev_dbg (net_dev->dev.parent,"Removed interface %s\n" , net_dev->name); +free_netdev (net_dev); +return 0 ; }
drivers/net/ethernet/intel/e100.c +13 -5
@@ -2997,9 +2997,10 @@ static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake)struct net_device *netdev =pci_get_drvdata (pdev);struct nic *nic =netdev_priv (netdev); +netif_device_detach (netdev); +if (netif_running (netdev))e100_down (nic); -netif_device_detach (netdev);if ((nic->flags & wol_magic) |e100_asf (nic)) {/* enable reverse auto-negotiation */
@@ -3016,7 +3017,7 @@ static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake) *enable_wake = false; } -pci_clear_master (pdev); +pci_disable_device (pdev); }static int __e100_power_off (struct pci_dev *pdev,bool wake)
@@ -3036,8 +3037,6 @@ static int __maybe_unused e100_suspend(struct device *dev_d)__e100_shutdown (to_pci_dev (dev_d), &wake); -device_wakeup_disable (dev_d); -return 0 ; }
@@ -3045,6 +3044,14 @@ static int __maybe_unused e100_resume(struct device *dev_d) {struct net_device *netdev =dev_get_drvdata (dev_d);struct nic *nic =netdev_priv (netdev); +int err; + + err =pci_enable_device (to_pci_dev (dev_d)); +if (err) { +netdev_err (netdev,"Resume cannot enable PCI device, aborting\n" ); +return err; + } +pci_set_master (to_pci_dev (dev_d));/* disable reverse auto-negotiation */ if (nic->phy == phy_82552_v) {
@@ -3056,10 +3063,11 @@ static int __maybe_unused e100_resume(struct device *dev_d) smartspeed & ~(E100_82552_REV_ANEG)); } -netif_device_attach (netdev);if (netif_running (netdev))e100_up (nic); +netif_device_attach (netdev); +return 0 ; }
drivers/net/ethernet/intel/i40e/i40e.h +2 -0
@@ -159,6 +159,7 @@ enum i40e_vsi_state_t { __I40E_VSI_OVERFLOW_PROMISC, __I40E_VSI_REINIT_REQUESTED, __I40E_VSI_DOWN_REQUESTED, + __I40E_VSI_RELEASING,/* This must be last as it determines the size of the BITMAP */ __I40E_VSI_STATE_SIZE__, };
@@ -1144,6 +1145,7 @@ void i40e_ptp_save_hw_time(struct i40e_pf *pf);void i40e_ptp_restore_hw_time (struct i40e_pf *pf);void i40e_ptp_init (struct i40e_pf *pf);void i40e_ptp_stop (struct i40e_pf *pf); +int i40e_update_adq_vsi_queues (struct i40e_vsi *vsi,int vsi_offset);int i40e_is_vsi_uplink_mode_veb (struct i40e_vsi *vsi);i40e_status i40e_get_partition_bw_setting (struct i40e_pf *pf);i40e_status i40e_set_partition_bw_setting (struct i40e_pf *pf);
drivers/net/ethernet/intel/i40e/i40e_main.c +104 -56
229 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +41 -80
225 lines not on this page · raw message
drivers/net/ethernet/intel/iavf/iavf_ethtool.c +22 -8
@@ -892,6 +892,7 @@ static int iavf_set_channels(struct net_device *netdev, {struct iavf_adapter *adapter =netdev_priv (netdev);u32 num_req = ch->combined_count; +int i;if ((adapter->vf_res->vf_cap_flags &VIRTCHNL_VF_OFFLOAD_ADQ ) && adapter->num_tc) {
@@ -902,7 +903,7 @@ static int iavf_set_channels(struct net_device *netdev,/* All of these should have already been checked by ethtool before this * even gets to us, but just to be sure. */ -if (num_req > adapter->vsi_res->num_queue_pairs) +if (num_req ==0 || num_req > adapter->vsi_res->num_queue_pairs)return -EINVAL ;if (num_req == adapter->num_active_queues)
@@ -914,6 +915,20 @@ static int iavf_set_channels(struct net_device *netdev, adapter->num_req_queues = num_req; adapter->flags |=IAVF_FLAG_REINIT_ITR_NEEDED ;iavf_schedule_reset (adapter); + +/* wait for the reset is done */ +for (i =0 ; i <IAVF_RESET_WAIT_COMPLETE_COUNT ; i++) { +msleep (IAVF_RESET_WAIT_MS ); +if (adapter->flags &IAVF_FLAG_RESET_PENDING ) +continue ; +break ; + } +if (i ==IAVF_RESET_WAIT_COMPLETE_COUNT ) { + adapter->flags &= ~IAVF_FLAG_REINIT_ITR_NEEDED ; + adapter->num_active_queues = num_req; +return -EOPNOTSUPP ; + } +return 0 ; }
@@ -960,14 +975,13 @@ static int iavf_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,if (hfunc) *hfunc =ETH_RSS_HASH_TOP ; -if (!indir) -return 0 ; - -memcpy (key, adapter->rss_key, adapter->rss_key_size); +if (key) +memcpy (key, adapter->rss_key, adapter->rss_key_size); -/* Each 32 bits pointed by 'indir' is stored with a lut entry */ -for (i =0 ; i < adapter->rss_lut_size; i++) - indir[i] = (u32 )adapter->rss_lut[i]; +if (indir) +/* Each 32 bits pointed by 'indir' is stored with a lut entry */ +for (i =0 ; i < adapter->rss_lut_size; i++) + indir[i] = (u32 )adapter->rss_lut[i];return 0 ; }
drivers/net/ethernet/intel/iavf/iavf_main.c +7 -7
@@ -1616,8 +1616,7 @@ static int iavf_process_aq_command(struct iavf_adapter *adapter)iavf_set_promiscuous (adapter,FLAG_VF_MULTICAST_PROMISC );return 0 ; } - -if ((adapter->aq_required &IAVF_FLAG_AQ_RELEASE_PROMISC ) && +if ((adapter->aq_required &IAVF_FLAG_AQ_RELEASE_PROMISC ) || (adapter->aq_required &IAVF_FLAG_AQ_RELEASE_ALLMULTI )) {iavf_set_promiscuous (adapter,0 );return 0 ;
@@ -2047,8 +2046,8 @@ static void iavf_disable_vf(struct iavf_adapter *adapter)iavf_free_misc_irq (adapter);iavf_reset_interrupt_capability (adapter); -iavf_free_queues (adapter);iavf_free_q_vectors (adapter); +iavf_free_queues (adapter);memset (adapter->vf_res,0 ,IAVF_VIRTCHNL_VF_RESOURCE_SIZE );iavf_shutdown_adminq (&adapter->hw); adapter->netdev->flags &= ~IFF_UP ;
@@ -2330,7 +2329,7 @@ static void iavf_adminq_task(struct work_struct *work)/* check for error indications */ val =rd32 (hw, hw->aq.arq.len); -if (val ==0xdeadbeef )/* indicates device in reset */ +if (val ==0xdeadbeef || val ==0xffffffff )/* device in reset */ goto freedom; oldval = val;if (val &IAVF_VF_ARQLEN1_ARQVFE_MASK ) {
@@ -3028,11 +3027,11 @@ static int iavf_configure_clsflower(struct iavf_adapter *adapter,/* start out with flow type and eth type IPv4 to begin with */ filter->f.flow_type =VIRTCHNL_TCP_V4_FLOW ; err =iavf_parse_cls_flower (adapter, cls_flower, filter); -if (err <0 ) +if (err) goto err; err =iavf_handle_tclass (adapter, tc, filter); -if (err <0 ) +if (err) goto err;/* add filter to the list */
@@ -3419,7 +3418,8 @@ static netdev_features_t iavf_fix_features(struct net_device *netdev, {struct iavf_adapter *adapter =netdev_priv (netdev); -if (!(adapter->vf_res->vf_cap_flags &VIRTCHNL_VF_OFFLOAD_VLAN )) +if (adapter->vf_res && + !(adapter->vf_res->vf_cap_flags &VIRTCHNL_VF_OFFLOAD_VLAN )) features &= ~(NETIF_F_HW_VLAN_CTAG_TX |NETIF_F_HW_VLAN_CTAG_RX |NETIF_F_HW_VLAN_CTAG_FILTER );
drivers/net/ethernet/intel/ice/ice_main.c +0 -3
@@ -4361,9 +4361,6 @@ static void ice_remove(struct pci_dev *pdev)struct ice_pf *pf =pci_get_drvdata (pdev);int i; -if (!pf) -return ; -for (i =0 ; i <ICE_MAX_RESET_WAIT ; i++) {if (!ice_is_reset_in_progress (pf->state))break ;
drivers/net/ethernet/mellanox/mlx5/core/cq.c +3 -2
@@ -163,13 +163,14 @@ int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)MLX5_SET (destroy_cq_in, in, cqn, cq->cqn);MLX5_SET (destroy_cq_in, in, uid, cq->uid); err =mlx5_cmd_exec_in (dev, destroy_cq, in); +if (err) +return err;synchronize_irq (cq->irqn); -mlx5_cq_put (cq);wait_for_completion (&cq->free); -return err; +return 0 ; }EXPORT_SYMBOL (mlx5_core_destroy_cq);
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +3 -1
@@ -507,6 +507,8 @@ void mlx5_debug_cq_remove(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)if (!mlx5_debugfs_root)return ; -if (cq->dbg) +if (cq->dbg) {rem_res_tree (cq->dbg); + cq->dbg =NULL ; + } }
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +5 -6
@@ -1663,7 +1663,7 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs)if (!ESW_ALLOWED (esw))return 0 ; -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock);if (esw->mode ==MLX5_ESWITCH_NONE ) { ret =mlx5_eswitch_enable_locked (esw,MLX5_ESWITCH_LEGACY , num_vfs); }else {
@@ -1675,7 +1675,7 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs)if (!ret) esw->esw_funcs.num_vfs = num_vfs; } -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return ret; }
@@ -1719,10 +1719,10 @@ void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf)if (!ESW_ALLOWED (esw))return ; -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock);mlx5_eswitch_disable_locked (esw, clear_vf); esw->esw_funcs.num_vfs =0 ; -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock); }int mlx5_eswitch_init (struct mlx5_core_dev *dev)
@@ -1778,7 +1778,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)atomic64_set (&esw->offloads.num_flows,0 );ida_init (&esw->offloads.vport_metadata_ida);mutex_init (&esw->state_lock); -mutex_init (&esw->mode_lock); +init_rwsem (&esw->mode_lock); mlx5_esw_for_all_vports(esw, i, vport) { vport->vport =mlx5_eswitch_index_to_vport_num (esw, i);
@@ -1813,7 +1813,6 @@ void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) esw->dev->priv.eswitch =NULL ;destroy_workqueue (esw->work_queue);esw_offloads_cleanup_reps (esw); -mutex_destroy (&esw->mode_lock);mutex_destroy (&esw->state_lock);ida_destroy (&esw->offloads.vport_metadata_ida);mlx5e_mod_hdr_tbl_destroy (&esw->offloads.mod_hdr);
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +1 -1
@@ -262,7 +262,7 @@ struct mlx5_eswitch {/* Protects eswitch mode change that occurs via one or more * user commands, i.e. sriov state change, devlink commands. */ -struct mutex mode_lock; +struct rw_semaphore mode_lock;struct {bool enabled;
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +14 -14
@@ -2508,7 +2508,7 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,if (esw_mode_from_devlink (mode, &mlx5_mode))return -EINVAL ; -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); cur_mlx5_mode = esw->mode;if (cur_mlx5_mode == mlx5_mode) goto unlock;
@@ -2521,7 +2521,7 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode, err = -EINVAL ; unlock: -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return err; }
@@ -2534,14 +2534,14 @@ int mlx5_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode)if (IS_ERR (esw))return PTR_ERR (esw); -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); err =eswitch_devlink_esw_mode_check (esw);if (err) goto unlock; err =esw_mode_to_devlink (esw->mode, mode); unlock: -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return err; }
@@ -2557,7 +2557,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,if (IS_ERR (esw))return PTR_ERR (esw); -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); err =eswitch_devlink_esw_mode_check (esw);if (err) goto out;
@@ -2599,7 +2599,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, } esw->offloads.inline_mode = mlx5_mode; -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return 0 ; revert_inline_mode:
@@ -2609,7 +2609,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, vport, esw->offloads.inline_mode); out: -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return err; }
@@ -2622,14 +2622,14 @@ int mlx5_devlink_eswitch_inline_mode_get(struct devlink *devlink, u8 *mode)if (IS_ERR (esw))return PTR_ERR (esw); -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); err =eswitch_devlink_esw_mode_check (esw);if (err) goto unlock; err =esw_inline_mode_to_devlink (esw->offloads.inline_mode, mode); unlock: -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return err; }
@@ -2645,7 +2645,7 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink,if (IS_ERR (esw))return PTR_ERR (esw); -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); err =eswitch_devlink_esw_mode_check (esw);if (err) goto unlock;
@@ -2691,7 +2691,7 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, } unlock: -mutex_unlock (&esw->mode_lock); +up_write (&esw->mode_lock);return err; }
@@ -2706,15 +2706,15 @@ int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink,return PTR_ERR (esw); -mutex_lock (&esw->mode_lock); +down_write (&esw->mode_lock); err =eswitch_devlink_esw_mode_check (esw);if (err) goto unlock; *encap = esw->offloads.encap; unlock: -mutex_unlock (&esw->mode_lock); -return 0 ; +up_write (&esw->mode_lock); +return err; } static bool
drivers/net/ethernet/mellanox/mlx5/core/lag.c +13 -15
@@ -365,6 +365,7 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev,bool is_bonded, is_in_lag, mode_supported;int bond_status =0 ;int num_slaves =0 ; +int changed =0 ;int idx;if (!netif_is_lag_master (upper))
@@ -401,27 +402,27 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev,*/ is_in_lag = num_slaves ==MLX5_MAX_PORTS && bond_status ==0x3 ; -if (!mlx5_lag_is_ready (ldev) && is_in_lag) { -NL_SET_ERR_MSG_MOD (info->info.extack, -"Can't activate LAG offload, PF is configured with more than 64 VFs" ); -return 0 ; - } -/* Lag mode must be activebackup or hash. */ mode_supported = tracker->tx_type ==NETDEV_LAG_TX_TYPE_ACTIVEBACKUP || tracker->tx_type ==NETDEV_LAG_TX_TYPE_HASH ; -if (is_in_lag && !mode_supported) -NL_SET_ERR_MSG_MOD (info->info.extack, -"Can't activate LAG offload, TX type isn't supported" ); - is_bonded = is_in_lag && mode_supported;if (tracker->is_bonded != is_bonded) { tracker->is_bonded = is_bonded; -return 1 ; + changed =1 ; } -return 0 ; +if (!is_in_lag) +return changed; + +if (!mlx5_lag_is_ready (ldev)) +NL_SET_ERR_MSG_MOD (info->info.extack, +"Can't activate LAG offload, PF is configured with more than 64 VFs" ); +else if (!mode_supported) +NL_SET_ERR_MSG_MOD (info->info.extack, +"Can't activate LAG offload, TX type isn't supported" ); + +return changed; } static int mlx5_handle_changelowerstate_event(struct mlx5_lag *ldev,
@@ -464,9 +465,6 @@ static int mlx5_lag_netdev_event(struct notifier_block *this, ldev = container_of(this, struct mlx5_lag, nb); -if (!mlx5_lag_is_ready (ldev) && event ==NETDEV_CHANGELOWERSTATE ) -return NOTIFY_DONE ; - tracker = ldev->tracker;switch (event) {
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +5 -0
@@ -21,6 +21,7 @@#include <linux/delay.h> #include <linux/mfd/syscon.h> #include <linux/regmap.h> +#include <linux/pm_runtime.h> #include "stmmac_platform.h"
@@ -1335,6 +1336,8 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)return ret; } +pm_runtime_get_sync (dev); +if (bsp_priv->integrated_phy)rk_gmac_integrated_phy_powerup (bsp_priv);
@@ -1346,6 +1349,8 @@ static void rk_gmac_powerdown(struct rk_priv_data *gmac)if (gmac->integrated_phy)rk_gmac_integrated_phy_powerdown (gmac); +pm_runtime_put_sync (&gmac->pdev->dev); +phy_power_on (gmac, false);gmac_clk_enable (gmac, false); }
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c +22 -2
@@ -485,8 +485,28 @@ static int socfpga_dwmac_resume(struct device *dev) }#endif /* CONFIG_PM_SLEEP */ -static SIMPLE_DEV_PM_OPS(socfpga_dwmac_pm_ops, stmmac_suspend, - socfpga_dwmac_resume); +static int __maybe_unused socfpga_dwmac_runtime_suspend (struct device *dev) +{ +struct net_device *ndev =dev_get_drvdata (dev); +struct stmmac_priv *priv =netdev_priv (ndev); + +stmmac_bus_clks_config (priv, false); + +return 0 ; +} + +static int __maybe_unused socfpga_dwmac_runtime_resume (struct device *dev) +{ +struct net_device *ndev =dev_get_drvdata (dev); +struct stmmac_priv *priv =netdev_priv (ndev); + +return stmmac_bus_clks_config (priv, true); +} + +static const struct dev_pm_ops socfpga_dwmac_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(stmmac_suspend, socfpga_dwmac_resume) +SET_RUNTIME_PM_OPS (socfpga_dwmac_runtime_suspend, socfpga_dwmac_runtime_resume,NULL ) +};static const struct socfpga_dwmac_ops socfpga_gen5_ops = { .set_phy_mode = socfpga_gen5_set_phy_mode,
drivers/net/ipa/ipa_endpoint.c +2 -0
@@ -703,6 +703,7 @@ static void ipa_endpoint_init_hol_block_timer(struct ipa_endpoint *endpoint,u32 offset;u32 val; +/* This should only be changed when HOL_BLOCK_EN is disabled */ offset =IPA_REG_ENDP_INIT_HOL_BLOCK_TIMER_N_OFFSET (endpoint_id); val =ipa_reg_init_hol_block_timer_val (ipa, microseconds);iowrite32 (val, ipa->reg_virt + offset);
@@ -730,6 +731,7 @@ void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa)if (endpoint->toward_ipa || endpoint->ee_id !=GSI_EE_MODEM )continue ; +ipa_endpoint_init_hol_block_enable (endpoint, false);ipa_endpoint_init_hol_block_timer (endpoint,0 );ipa_endpoint_init_hol_block_enable (endpoint, true); }
drivers/net/tun.c +5 -0
@@ -1021,6 +1021,7 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev) {struct tun_struct *tun =netdev_priv (dev);int txq = skb->queue_mapping; +struct netdev_queue *queue;struct tun_file *tfile;int len = skb->len;
@@ -1065,6 +1066,10 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev)if (ptr_ring_produce (&tfile->tx_ring, skb)) goto drop; +/* NETIF_F_LLTX requires to do our own update of trans_start */ + queue =netdev_get_tx_queue (dev, txq); + queue->trans_start = jiffies; +/* Notify and wake up reader process */ if (tfile->flags &TUN_FASYNC )kill_fasync (&tfile->fasync,SIGIO ,POLL_IN );
drivers/pinctrl/qcom/pinctrl-sdm845.c +1 -0
@@ -1310,6 +1310,7 @@ static const struct msm_pinctrl_soc_data sdm845_pinctrl = { .ngpios = 151, .wakeirq_map = sdm845_pdc_map, .nwakeirq_map = ARRAY_SIZE(sdm845_pdc_map), + .wakeirq_dual_edge_errata = true, };static const struct msm_pinctrl_soc_data sdm845_acpi_pinctrl = {
drivers/platform/x86/hp_accel.c +2 -0
@@ -372,9 +372,11 @@ static int lis3lv02d_add(struct acpi_device *device)INIT_WORK (&hpled_led.work, delayed_set_status_worker); ret =led_classdev_register (NULL , &hpled_led.led_classdev);if (ret) { +i8042_remove_filter (hp_accel_i8042_filter);lis3lv02d_joystick_disable (&lis3_dev);lis3lv02d_poweroff (&lis3_dev);flush_work (&hpled_led.work); +lis3lv02d_remove_fs (&lis3_dev);return ret; }
drivers/scsi/advansys.c +2 -2
@@ -3366,8 +3366,8 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) shost->host_no);seq_printf (m, -" iop_base 0x%lx, cable_detect: %X, err_code %u\n" , - (unsigned long )v->iop_base, +" iop_base 0x%p, cable_detect: %X, err_code %u\n" , + v->iop_base,AdvReadWordRegister (iop_base,IOPW_SCSI_CFG1 ) &CABLE_DETECT , v->err_code);
drivers/scsi/lpfc/lpfc_sli.c +1 -0
@@ -20080,6 +20080,7 @@ lpfc_drain_txq(struct lpfc_hba *phba) fail_msg, piocbq->iotag, piocbq->sli4_xritag);list_add_tail (&piocbq->list, &completions); + fail_msg =NULL ; }spin_unlock_irqrestore (&pring->ring_lock, iflags); }
drivers/scsi/qla2xxx/qla_mbx.c +2 -4
@@ -1650,10 +1650,8 @@ qla2x00_get_adapter_id(scsi_qla_host_t *vha, uint16_t *id, uint8_t *al_pa, mcp->in_mb |=MBX_13 |MBX_12 |MBX_11 |MBX_10 ;if (IS_FWI2_CAPABLE (vha->hw)) mcp->in_mb |=MBX_19 |MBX_18 |MBX_17 |MBX_16 ; -if (IS_QLA27XX (vha->hw) ||IS_QLA28XX (vha->hw)) { - mcp->in_mb |=MBX_15 ; - mcp->out_mb |=MBX_7 |MBX_21 |MBX_22 |MBX_23 ; - } +if (IS_QLA27XX (vha->hw) ||IS_QLA28XX (vha->hw)) + mcp->in_mb |=MBX_15 |MBX_21 |MBX_22 |MBX_23 ; mcp->tov =MBX_TOV_SECONDS ; mcp->flags =0 ;
drivers/scsi/scsi_debug.c +6 -5
@@ -1855,7 +1855,7 @@ static int resp_readcap16(struct scsi_cmnd *scp, {unsigned char *cmd = scp->cmnd;unsigned char arr[SDEBUG_READCAP16_ARR_SZ ]; -int alloc_len; +u32 alloc_len; alloc_len =get_unaligned_be32 (cmd +10 );/* following just in case virtual_gb changed */
@@ -1884,7 +1884,7 @@ static int resp_readcap16(struct scsi_cmnd *scp, }return fill_from_dev_buffer (scp, arr, -min_t (int, alloc_len,SDEBUG_READCAP16_ARR_SZ )); +min_t (u32, alloc_len,SDEBUG_READCAP16_ARR_SZ )); }#define SDEBUG_MAX_TGTPGS_ARR_SZ 1412
@@ -1895,8 +1895,9 @@ static int resp_report_tgtpgs(struct scsi_cmnd *scp,unsigned char *cmd = scp->cmnd;unsigned char *arr;int host_no = devip->sdbg_host->shost->host_no; -int n, ret, alen, rlen;int port_group_a, port_group_b, port_a, port_b; +u32 alen, n, rlen; +int ret; alen =get_unaligned_be32 (cmd +6 ); arr =kzalloc (SDEBUG_MAX_TGTPGS_ARR_SZ ,GFP_ATOMIC );
@@ -1958,9 +1959,9 @@ static int resp_report_tgtpgs(struct scsi_cmnd *scp,* - The constructed command length * - The maximum array size */ - rlen =min_t (int, alen, n); + rlen =min (alen, n); ret =fill_from_dev_buffer (scp, arr, -min_t (int, rlen,SDEBUG_MAX_TGTPGS_ARR_SZ )); +min_t (u32, rlen,SDEBUG_MAX_TGTPGS_ARR_SZ ));kfree (arr);return ret; }
drivers/scsi/scsi_sysfs.c +19 -11
@@ -796,6 +796,7 @@ store_state_field(struct device *dev, struct device_attribute *attr,int i, ret;struct scsi_device *sdev =to_scsi_device (dev);enum scsi_device_state state =0 ; +bool rescan_dev = false;for (i =0 ; i <ARRAY_SIZE (sdev_states); i++) {const int len =strlen (sdev_states[i].name);
@@ -814,20 +815,27 @@ store_state_field(struct device *dev, struct device_attribute *attr, }mutex_lock (&sdev->state_mutex); - ret =scsi_device_set_state (sdev, state); -/* -* If the device state changes to SDEV_RUNNING, we need to -* run the queue to avoid I/O hang, and rescan the device -* to revalidate it. Running the queue first is necessary -* because another thread may be waiting inside -* blk_mq_freeze_queue_wait() and because that call may be -* waiting for pending I/O to finish. -*/ -if (ret ==0 && state ==SDEV_RUNNING ) { +if (sdev->sdev_state ==SDEV_RUNNING && state ==SDEV_RUNNING ) { + ret = count; + }else { + ret =scsi_device_set_state (sdev, state); +if (ret ==0 && state ==SDEV_RUNNING ) + rescan_dev = true; + } +mutex_unlock (&sdev->state_mutex); + +if (rescan_dev) { +/* +* If the device state changes to SDEV_RUNNING, we need to +* run the queue to avoid I/O hang, and rescan the device +* to revalidate it. Running the queue first is necessary +* because another thread may be waiting inside +* blk_mq_freeze_queue_wait() and because that call may be +* waiting for pending I/O to finish. +*/ blk_mq_run_hw_queues (sdev->request_queue, true);scsi_rescan_device (dev); } -mutex_unlock (&sdev->state_mutex);return ret ==0 ? count : -EINVAL ; }
drivers/scsi/ufs/ufshcd.c +23 -34
96 lines not on this page · raw message
drivers/scsi/ufs/ufshcd.h +1 -0
@@ -734,6 +734,7 @@ struct ufs_hba {struct blk_mq_tag_set tmf_tag_set;struct request_queue *tmf_queue; +struct request **tmf_rqs;struct uic_command *active_uic_cmd;struct mutex uic_cmd_mutex;
drivers/sh/maple/maple.c +4 -1
@@ -835,8 +835,10 @@ static int __init maple_bus_init(void) maple_queue_cache =KMEM_CACHE (maple_buffer,SLAB_HWCACHE_ALIGN ); -if (!maple_queue_cache) +if (!maple_queue_cache) { + retval = -ENOMEM ; goto cleanup_bothirqs; + }INIT_LIST_HEAD (&maple_waitq);INIT_LIST_HEAD (&maple_sentq);
@@ -849,6 +851,7 @@ static int __init maple_bus_init(void)if (!mdev[i]) {while (i-- >0 )maple_free_dev (mdev[i]); + retval = -ENOMEM ; goto cleanup_cache; } baseunits[i] = mdev[i];
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +2 -5
@@ -6679,7 +6679,6 @@ u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)struct sta_info *psta_bmc;struct list_head *xmitframe_plist, *xmitframe_phead;struct xmit_frame *pxmitframe =NULL ; -struct xmit_priv *pxmitpriv = &padapter->xmitpriv;struct sta_priv *pstapriv = &padapter->stapriv;/* for BC/MC Frames */
@@ -6690,8 +6689,7 @@ u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)if ((pstapriv->tim_bitmap&BIT (0 )) && (psta_bmc->sleepq_len >0 )) {msleep (10 );/* 10ms, ATIM(HIQ) Windows */ -/* spin_lock_bh(&psta_bmc->sleep_q.lock); */ -spin_lock_bh (&pxmitpriv->lock); +spin_lock_bh (&psta_bmc->sleep_q.lock);
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_recv.c +3 -7
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c +12 -10
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_xmit.c +7 -9
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/target/target_core_transport.c +54 -22
76 lines not on this page · raw message
kernel/events/core.c +63 -79
142 lines not on this page · raw message
net/core/sock.c +93 -96
189 lines not on this page · raw message
net/ipv4/tcp.c +97 -25
122 lines not on this page · raw message
sound/hda/ext/hdac_ext_stream.c +28 -18
46 lines not on this page · raw message
tools/perf/tests/shell/record+zstd_comp_decomp.sh +1 -1
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.