Linux 5.17.6
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.17.6 kernel.
All users of the 5.17 kernel series must upgrade.
The updated 5.17.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.17.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/am33xx-l4.dtsi | 2 arch/arm/boot/dts/am3517-evm.dts | 45 arch/arm/boot/dts/am3517-som.dtsi | 9 arch/arm/boot/dts/at91-sama5d3_xplained.dts | 8 arch/arm/boot/dts/at91-sama5d4_xplained.dts | 6 arch/arm/boot/dts/at91-sama7g5ek.dts | 2 arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 6 arch/arm/boot/dts/dra7-l4.dtsi | 4 arch/arm/boot/dts/imx6qdl-apalis.dtsi | 10 arch/arm/boot/dts/imx6ull-colibri.dtsi | 2 arch/arm/boot/dts/logicpd-som-lv-35xx-devkit.dts | 15 arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts | 15 arch/arm/boot/dts/logicpd-som-lv.dtsi | 15 arch/arm/boot/dts/omap3-gta04.dtsi | 2 arch/arm/mach-exynos/Kconfig | 1 arch/arm/mach-omap2/omap4-common.c | 2 arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi | 40 arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi | 40 arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 1 arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 20 arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 4 arch/arm64/boot/dts/freescale/imx8mn.dtsi | 10 arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi | 2 arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 arch/powerpc/kernel/reloc_64.S | 67 - arch/powerpc/kernel/vmlinux.lds.S | 2 arch/powerpc/perf/Makefile | 4 arch/powerpc/tools/relocs_check.sh | 7 arch/riscv/kernel/patch.c | 2 arch/x86/include/asm/microcode.h | 2 arch/x86/kernel/cpu/microcode/core.c | 6 arch/x86/lib/usercopy_64.c | 2 arch/x86/pci/xen.c | 6 arch/x86/power/cpu.c | 10 arch/xtensa/platforms/iss/console.c | 8 block/bfq-iosched.c | 12 block/blk-iocost.c | 12 block/blk-mq.c | 9 drivers/acpi/processor_idle.c | 8 drivers/android/binder.c | 10 drivers/base/arch_topology.c | 11 drivers/block/Kconfig | 16 drivers/block/floppy.c | 43 drivers/bus/fsl-mc/fsl-mc-msi.c | 6 drivers/bus/mhi/pci_generic.c | 2 drivers/bus/sunxi-rsb.c | 2 drivers/bus/ti-sysc.c | 16 drivers/clk/sunxi/clk-sun9i-mmc.c | 2 drivers/cpufreq/qcom-cpufreq-hw.c | 42 drivers/cpufreq/sun50i-cpufreq-nvmem.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 105 +- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 83 - drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 1 drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 34 drivers/gpu/drm/i915/i915_reg.h | 2 drivers/gpu/drm/sun4i/sun4i_frontend.c | 3 drivers/iio/chemical/scd4x.c | 5 drivers/iio/dac/ad3552r.c | 6 drivers/iio/dac/ad5446.c | 2 drivers/iio/dac/ad5592r-base.c | 2 drivers/iio/filter/Kconfig | 1 drivers/iio/imu/bmi160/bmi160_core.c | 20 drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 15 drivers/iio/magnetometer/ak8975.c | 1 drivers/input/keyboard/cypress-sf.c | 14 drivers/interconnect/qcom/sc7180.c | 21 drivers/interconnect/qcom/sdx55.c | 21 drivers/memory/renesas-rpc-if.c | 60 - drivers/misc/eeprom/at25.c | 19 drivers/mtd/nand/raw/mtk_ecc.c | 12 drivers/mtd/nand/raw/qcom_nandc.c | 24 drivers/mtd/nand/raw/sh_flctl.c | 14 drivers/net/bonding/bond_main.c | 13 drivers/net/dsa/lantiq_gswip.c | 3 drivers/net/dsa/mv88e6xxx/port_hidden.c | 5 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 9 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 drivers/net/ethernet/freescale/enetc/enetc_qos.c | 4 drivers/net/ethernet/freescale/fec_main.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_tqp_stats.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 9 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 31 drivers/net/ethernet/ibm/ibmvnic.c | 129 -- drivers/net/ethernet/ibm/ibmvnic.h | 6 drivers/net/ethernet/intel/ice/ice_main.c | 3 drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 3 drivers/net/ethernet/microchip/lan966x/lan966x_mac.c | 4 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 12 drivers/net/hippi/rrunner.c | 2 drivers/net/phy/marvell10g.c | 2 drivers/net/virtio_net.c | 20 drivers/net/wireguard/device.c | 3 drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.c | 20 drivers/phy/motorola/phy-mapphone-mdm6600.c | 3 drivers/phy/samsung/phy-exynos5250-sata.c | 21 drivers/phy/ti/phy-am654-serdes.c | 2 drivers/phy/ti/phy-omap-usb2.c | 2 drivers/pinctrl/mediatek/Kconfig | 1 drivers/pinctrl/pinctrl-pistachio.c | 6 drivers/pinctrl/pinctrl-rockchip.c | 45 drivers/pinctrl/qcom/pinctrl-sm6350.c | 16 drivers/pinctrl/samsung/Kconfig | 11 drivers/pinctrl/stm32/pinctrl-stm32.c | 23 drivers/platform/x86/asus-wmi.c | 15 drivers/soc/imx/imx8m-blk-ctrl.c | 2 drivers/tee/optee/ffa_abi.c | 1 drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 4 drivers/tty/n_gsm.c | 477 +++++----- drivers/tty/serial/8250/8250_pci.c | 8 drivers/tty/serial/8250/8250_port.c | 2 drivers/tty/serial/amba-pl011.c | 9 drivers/tty/serial/imx.c | 2 drivers/usb/cdns3/cdns3-gadget.c | 7 drivers/usb/core/devio.c | 14 drivers/usb/core/quirks.c | 6 drivers/usb/dwc3/core.c | 11 drivers/usb/dwc3/drd.c | 11 drivers/usb/dwc3/dwc3-pci.c | 8 drivers/usb/dwc3/gadget.c | 31 drivers/usb/gadget/configfs.c | 2 drivers/usb/gadget/function/uvc_queue.c | 2 drivers/usb/host/xhci-hub.c | 2 drivers/usb/host/xhci-pci.c | 4 drivers/usb/host/xhci-ring.c | 1 drivers/usb/host/xhci-tegra.c | 4 drivers/usb/host/xhci.c | 11 drivers/usb/misc/uss720.c | 3 drivers/usb/mtu3/mtu3_dr.c | 6 drivers/usb/phy/phy-generic.c | 7 drivers/usb/serial/cp210x.c | 2 drivers/usb/serial/option.c | 12 drivers/usb/serial/whiteheat.c | 5 drivers/usb/typec/ucsi/ucsi.c | 24 drivers/video/fbdev/udlfb.c | 14 fs/btrfs/ctree.h | 1 fs/btrfs/dev-replace.c | 7 fs/btrfs/disk-io.c | 1 fs/btrfs/extent_io.c | 1 fs/btrfs/inode.c | 18 fs/btrfs/scrub.c | 26 fs/btrfs/tree-log.c | 1 fs/btrfs/volumes.h | 3 fs/btrfs/zoned.h | 4 fs/ceph/caps.c | 4 fs/cifs/smb2ops.c | 8 fs/erofs/zdata.c | 12 fs/erofs/zdata.h | 2 fs/ext4/super.c | 19 fs/f2fs/inode.c | 3 fs/gfs2/file.c | 30 fs/io_uring.c | 5 fs/kernfs/dir.c | 7 fs/ksmbd/smb2pdu.c | 13 fs/ksmbd/vfs_cache.c | 1 fs/zonefs/super.c | 46 include/linux/kernel.h | 2 include/linux/mtd/mtd.h | 6 include/memory/renesas-rpc-if.h | 1 include/net/bluetooth/hci.h | 1 include/net/ip6_tunnel.h | 2 include/net/ip_tunnels.h | 2 include/net/tcp.h | 8 lib/hexdump.c | 41 mm/kasan/quarantine.c | 7 net/bluetooth/hci_event.c | 65 - net/core/lwt_bpf.c | 7 net/dsa/port.c | 2 net/ipv4/ip_gre.c | 12 net/ipv4/syncookies.c | 8 net/ipv4/tcp_input.c | 15 net/ipv4/tcp_minisocks.c | 2 net/ipv4/tcp_output.c | 1 net/ipv4/tcp_rate.c | 11 net/ipv6/ip6_gre.c | 16 net/ipv6/netfilter.c | 10 net/ipv6/syncookies.c | 3 net/mctp/device.c | 2 net/netfilter/ipvs/ip_vs_conn.c | 2 net/netfilter/nf_conntrack_proto_tcp.c | 21 net/netfilter/nf_conntrack_standalone.c | 2 net/netfilter/nft_set_rbtree.c | 6 net/netfilter/nft_socket.c | 52 - net/sctp/sm_sideeffect.c | 4 net/smc/af_smc.c | 2 net/tls/tls_device.c | 12 net/xdp/xsk.c | 2 sound/hda/intel-dsp-config.c | 9 sound/soc/codecs/cs35l41-lib.c | 6 sound/soc/codecs/rt5682.c | 9 sound/soc/codecs/rt711.c | 7 sound/soc/codecs/wm8731.c | 19 sound/soc/intel/common/soc-acpi-intel-tgl-match.c | 4 sound/soc/soc-pcm.c | 2 tools/objtool/check.c | 8 tools/objtool/elf.c | 189 +++ tools/objtool/include/objtool/elf.h | 4 tools/perf/arch/arm64/util/machine.c | 21 tools/perf/arch/powerpc/util/Build | 1 tools/perf/arch/powerpc/util/machine.c | 25 tools/perf/arch/s390/util/machine.c | 16 tools/perf/util/arm-spe.c | 2 tools/perf/util/symbol-elf.c | 2 tools/perf/util/symbol.c | 37 tools/perf/util/symbol.h | 3 tools/testing/selftests/vm/mremap_test.c | 83 + 209 files changed, 1988 insertions(+), 1179 deletions(-)
Adam Ford (3):
soc: imx: imx8m-blk-ctrl: Fix IMX8MN_DISPBLK_PD_ISI hang
ARM: dts: am3517-evm: Fix misc pinmuxing
ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
Alessandro Astone (2):
binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
binder: Address corner cases in deferred copy and fixup
Alex Deucher (1):
drm/amdgpu: don't runtime suspend if there are displays attached (v3)
Alexander Stein (1):
arm64: dts: imx8mq-tqma8mq: change the spi-nor tx
Alexey Kardashevskiy (2):
powerpc/perf: Fix 32bit compile
powerpc/64: Add UADDR64 relocation support
Andreas Gruenbacher (3):
gfs2: Minor retry logic cleanup
gfs2: Make sure not to return short direct writes
gfs2: No short reads or writes upon glock contention
Baruch Siach (1):
net: phy: marvell10g: fix return value on error
Borislav Petkov (1):
x86/cpu: Load microcode during restore_processor_state()
Bruno Thomsen (1):
USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
Chao Song (1):
ASoC: Intel: soc-acpi: correct device endpoints for max98373
Christian Hewitt (2):
arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
Christoph Hellwig (2):
btrfs: fix direct I/O read repair for split bios
btrfs: fix direct I/O writes for split bios on zoned devices
Christophe JAILLET (2):
bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
ASoC: soc-pcm: use GFP_KERNEL when the code is sleepable
Christophe Leroy (1):
eeprom: at25: Use DMA safe buffers
Chuanhong Guo (1):
mtd: rawnand: fix ecc parameters for mt7622
Claudiu Beznea (2):
ARM: dts: at91: sama5d4_xplained: fix pinctrl phandle name
ARM: dts: at91: fix pinctrl phandles
Damien Le Moal (2):
zonefs: Fix management of open zones
zonefs: Clear inode information flags on inode creation
Dan Carpenter (4):
iio: dac: ad3552r: fix signedness bug in ad3552r_reset() iio:dac:ad3552r: Fix an IS_ERR() vs NULL check
net: lan966x: fix a couple off by one bugs
platform/x86: asus-wmi: Potential buffer overflow in asus_wmi_evaluate_method_buf()
Dan Vacura (1):
usb: gadget: uvc: Fix crash when encoding data for usb request
Daniel Starke (21):
tty: n_gsm: fix missing mux reset on config change at responder
tty: n_gsm: fix restart handling via CLD command
tty: n_gsm: fix decoupled mux resource
tty: n_gsm: fix mux cleanup after unregister tty device
tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
tty: n_gsm: fix frame reception handling
tty: n_gsm: fix malformed counter for out of frame data
tty: n_gsm: fix insufficient txframe size
tty: n_gsm: fix wrong DLCI release order
tty: n_gsm: fix missing explicit ldisc flush
tty: n_gsm: fix wrong command retry handling
tty: n_gsm: fix wrong command frame length field encoding
tty: n_gsm: fix wrong signal octets encoding in MSC
tty: n_gsm: fix missing tty wakeup in convergence layer type 2
tty: n_gsm: fix reset fifo race condition
tty: n_gsm: fix incorrect UA handling
tty: n_gsm: fix missing update of modem controls after DLCI open
tty: n_gsm: fix broken virtual tty handling
tty: n_gsm: fix invalid use of MSC in advanced option
tty: n_gsm: fix software flow control handling
tty: n_gsm: fix sometimes uninitialized warning in gsm_dlci_modem_output()
Daniele Palmas (1):
USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
Dany Madden (1):
Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits"
Darren Hart (1):
topology: make core_mask include at least cluster_siblings
David Yat Sin (1):
drm/amdkfd: Fix GWS queue count
Dinh Nguyen (1):
net: ethernet: stmmac: fix write to sgmii_adapter_base
Dmitry Baryshkov (3):
cpufreq: qcom-hw: drop affinity hint before freeing the IRQ
cpufreq: qcom-hw: fix the race between LMH worker and cpuhp
cpufreq: qcom-hw: fix the opp entries refcounting
Dongliang Mu (1):
tee: optee: add missing mutext_destroy in optee_ffa_probe
Duoming Zhou (2):
arch: xtensa: platforms: Fix deadlock in rs_close()
drivers: net: hippi: Fix deadlock in rr_close()
Eric Dumazet (2):
tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
tcp: make sure treq->af_specific is initialized
Eugen Hristev (1):
ARM: dts: at91: sama7g5ek: enable pull-up on flexcom3 console lines
Evan Green (1):
xhci: Enable runtime PM on second Alderlake controller
Eyal Birger (1):
bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt hook
Fabio Estevam (2):
ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
Fawzi Khaber (1):
iio: imu: inv_icm42600: Fix I2C init possible nack
Filipe Manana (2):
btrfs: fix leaked plug after failure syncing log on zoned filesystems
btrfs: fix assertion failure during scrub due to block group reallocation
Florian Westphal (2):
netfilter: nf_conntrack_tcp: re-init for syn packets only
netfilter: nft_socket: only do sk lookups when indev is available
Francesco Ruggeri (1):
tcp: md5: incorrect tcp_header_len for incoming connections
Geert Uytterhoeven (1):
memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual Mode
Gongjun Song (1):
ALSA: hda: intel-dsp-config: Add RaptorLake PCI IDs
Greg Kroah-Hartman (1):
Linux 5.17.6
Guillaume Giraudon (1):
arm64: dts: meson-sm1-bananapi-m5: fix wrong GPIO pin labeling for CON1
Guo Ren (1):
riscv: patch_text: Fixup last cpu should be master
H. Nikolaus Schaller (1):
ARM: dts: Fix mmc order for omap3-gta04
Hangyu Hua (1):
usb: misc: fix improper handling of refcount in uss720_probe()
Hans de Goede (1):
platform/x86: asus-wmi: Fix driver not binding when fan curve control probe fails
Heikki Krogerus (3):
usb: typec: ucsi: Fix reuse of completion structure
usb: typec: ucsi: Fix role swapping
usb: dwc3: pci: add support for the Intel Meteor Lake-P
Heiner Kallweit (1):
phy: amlogic: fix error path in phy_g12a_usb3_pcie_probe()
Henry Lin (1):
xhci: stop polling roothubs after shutdown
Hongyu Jin (1):
erofs: fix use-after-free of on-stack io[]
Hui Wang (1):
ASoC: cs35l41: Fix a shift-out-of-bounds warning found by UBSAN
Imre Deak (1):
drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses
Jaegeuk Kim (1):
f2fs: should not truncate blocks during roll-forward recovery
Jan Kara (1):
bfq: Fix warning in bfqq_request_over_limit()
Jens Axboe (2):
io_uring: check reserved fields for send/sendmsg
io_uring: check reserved fields for recv/recvmsg
Jian Shen (3):
net: hns3: clear inited state and stop client after failed to register netdev
net: hns3: add validity check for message data length
net: hns3: add return value for mailbox handling in PF
Jie Wang (1):
net: hns3: modify the return code of hclge_get_ring_chain_from_mbx
Johan Hovold (2):
serial: imx: fix overrun interrupts in DMA mode
arm64: dts: imx8mm-venice: fix spi2 pin configuration
Jonathan Lemon (1):
net: bcmgenet: hide status block before TX timestamping
Joseph Ravichandran (1):
io_uring: fix uninitialized field in rw io_kiocb
Jouni Högander (1):
drm/i915: Check EDID for HDR static metadata when choosing blc
Kees Cook (2):
USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
thermal: int340x: Fix attr.show callback prototype
Krzysztof Kozlowski (2):
pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config
phy: samsung: exynos5250-sata: fix missing device put in probe error paths
Leon Romanovsky (1):
ixgbe: ensure IPsec VF<->PF compatibility
Lin Ma (1):
mctp: defer the kfree of object mdev->addrs
Lino Sanfilippo (1):
serial: amba-pl011: do not time out prematurely when draining tx fifo
Liu Ying (1):
arm64: dts: imx8qm: Correct SCU clock controller's compatible property
Luca Ceresoli (1):
pinctrl: rockchip: fix RK3308 pinmux bits
Luca Weiss (1):
pinctrl: qcom: sm6350: fix order of UFS & SDC pins
Luiz Augusto von Dentz (1):
Bluetooth: hci_event: Fix checking for invalid handle on error status
Lv Ruyi (1):
pinctrl: pistachio: fix use of irq_of_parse_and_map()
Maciej Fijalkowski (1):
xsk: Fix l2fwd for copy mode + busy poll combo
Maciej W. Rozycki (2):
serial: 8250: Also set sticky MCR bits in console restoration
serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
Macpaul Lin (1):
usb: mtu3: fix USB 3.0 dual-role-switch from device to host
Manish Chopra (1):
bnx2x: fix napi API usage sequence
Manivannan Sadhasivam (2):
bus: mhi: host: pci_generic: Add missing poweroff() PM callback
bus: mhi: host: pci_generic: Flush recovery worker during freeze
Marek Vasut (3):
arm64: dts: imx8mn: Fix SAI nodes
pinctrl: stm32: Do not call stm32_gpio_get() for edge triggered IRQs in EOI
pinctrl: stm32: Keep pinctrl block clock enabled when LEVEL IRQ requested
Mark Brown (1):
ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
Martin Blumenstingl (1):
net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
Martin Willi (1):
netfilter: Update ip6_route_me_harder to consider L3 domain
Mathias Nyman (1):
xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
Max Krummenacher (1):
ARM: dts: imx6ull-colibri: fix vqmmc regulator
Maxim Mikityanskiy (1):
tls: Skip tls_append_frag on zero copy size
Md Sadre Alam (1):
mtd: rawnand: qcom: fix memory corruption that causes panic
Miaoqian Lin (8):
phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
mtd: rawnand: Fix return value check of wait_for_completion_timeout
net: dsa: Add missing of_node_put() in dsa_port_link_register_of drm/amd/display: Fix memory leak in dcn21_clock_source_create
Michael Hennerich (1):
iio: dac: ad5446: Fix read_raw not returning set value
Mikulas Patocka (3):
hex2bin: make the function hex_to_bin constant-time
hex2bin: fix access beyond string end
x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
Minchan Kim (1):
kernfs: fix NULL dereferencing in kernfs_remove
Miquel Raynal (1):
ARM: dts: am33xx-l4: Add missing touchscreen clock properties
Namhyung Kim (3):
perf symbol: Pass is_kallsyms to symbols__fixup_end() perf symbol: Update symbols__fixup_end() perf symbol: Remove arch__symbols__fixup_end()
Namjae Jeon (2):
ksmbd: increment reference count of parent fp
ksmbd: set fixed sector size to FS_SECTOR_SIZE_INFORMATION
Naohiro Aota (1):
btrfs: zoned: use dedicated lock for data relocation
Nathan Rossi (1):
net: dsa: mv88e6xxx: Fix port_hidden_wait to account for port_base_addr
Nikolay Aleksandrov (2):
virtio_net: fix wrong buf address calculation when using xdp
wireguard: device: check for metadata_dst with skb_valid_dst()
Oleksandr Ocheretnyi (1):
mtd: fix 'part' field data corruption in mtd_info
Oliver Neukum (2):
USB: quirks: add a Realtek card reader
USB: quirks: add STRING quirk for VCOM device
Pablo Neira Ayuso (1):
netfilter: nft_set_rbtree: overlap detection with element re-addition after deletion
Pavel Skripkin (1):
video: fbdev: udlfb: properly check endpoint type
Pawel Laszczak (1):
usb: cdns3: Fix issue for clear halt endpoint
Peilin Ye (3):
ip_gre: Make o_seqno start from 0 in native mode
ip6_gre: Make o_seqno start from 0 in native mode ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
Peng Li (1):
net: hns3: fix error log of tx/rx tqps stats
Pengcheng Yang (3):
ipvs: correctly print the memory size of ip_vs_conn_tab
tcp: ensure to use the most recently sent skb when filling the rate sample
tcp: fix F-RTO may not work correctly when receiving DSACK
Peter Zijlstra (2):
objtool: Fix code relocs vs weak symbols
objtool: Fix type of reloc::addend
Petr Oros (1):
ice: wait 5 s for EMP reset after firmware flash
Pierre-Louis Bossart (1):
ASoC: rt711/5682: check if bus is active before deferred jack detection
Ronnie Sahlberg (1):
cifs: destage any unwritten data to the server before calling copychunk_write
Samuel Holland (1):
drm/sun4i: Remove obsolete references to PHYS_OFFSET
Sean Anderson (1):
usb: phy: generic: Get the vbus supply
Shin'ichiro Kawasaki (1):
bus: fsl-mc-msi: Fix MSI descriptor mutex lock for msi_first_desc()
Sidhartha Kumar (2):
selftest/vm: verify mmap addr in mremap_test selftest/vm: verify remap destination address in mremap_test
Slark Xiao (1):
USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
Stephen Boyd (2):
interconnect: qcom: sc7180: Drop IP0 interconnects
interconnect: qcom: sdx55: Drop IP0 interconnects
Sven Peter (1):
usb: dwc3: Try usb-role-switch first in dwc3_drd_init
Tasos Sahanidis (1):
usb: core: Don't hold the device lock while sleeping in do_proc_control()
Tejun Heo (2):
iocost: don't reset the inuse weight of under-weighted debtors Revert "block: inherit request start time from bio for BLK_CGROUP"
Thinh Nguyen (3):
usb: dwc3: core: Fix tx/rx threshold settings
usb: dwc3: core: Only handle soft-reset in DCTL
usb: dwc3: gadget: Return proper request status
Thomas Gleixner (1):
x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
Tim Harvey (1):
ARM: dts: imx8mm-venice-gw{71xx,72xx,73xx}: fix OTG controller OC mode
Timothy Hayes (1):
perf arm-spe: Fix addresses of synthesized SPE events
Tom Rix (1):
iio: scd4x: check return of scd4x_write_and_fetch
Tong Zhang (1):
iio:imu:bmi160: disable regulator in error path
Tony Lindgren (2):
bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific
ARM: dts: dra7: Fix suspend warning for vpe powerdomain
Vijayavardhan Vennapusa (1):
usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
Ville Syrjälä (2):
Revert "ACPI: processor: idle: fix lockup regression on 32-bit ThinkPad T40"
ACPI: processor: idle: Avoid falling back to C3 type C-states
Vladimir Oltean (1):
net: enetc: allow tc-etf offload even with NETIF_F_CSUM_MASK
Vladimir Zapolskiy (2):
cpufreq: qcom-cpufreq-hw: Fix throttle frequency value on EPSS platforms
cpufreq: qcom-cpufreq-hw: Clear dcvs interrupts
Volodymyr Mytnyk (1):
netfilter: conntrack: fix udp offload timeout sysctl
Wang Qing (1):
arch_topology: Do not set llc_sibling if llc_id is invalid
Wang ShaoBo (1):
iio:filter:admv8818: select REGMAP_SPI for ADMV8818
Weitao Wang (1):
USB: Fix xhci event ring dequeue pointer ERDP update issue
Willy Tarreau (1):
floppy: disable FDRAWCMD by default
Xiaobing Luo (1):
cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
Xin Long (1):
sctp: check asoc strreset_chunk in sctp_generate_reconf_event
Xiubo Li (1):
ceph: fix possible NULL pointer dereference for req->r_session
Yang Yingliang (2):
clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource()
net: fec: add missing of_node_put() in fec_enet_init_stop_mode()
Ye Bin (1):
ext4: fix bug_on in start_this_handle during umount filesystem
YueHaibing (1):
pinctrl: mediatek: moore: Fix build error
Zheyu Ma (3):
iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
ASoC: wm8731: Disable the regulator when probing fails
Input: cypress-sf - register a callback to disable the regulators
Zizhuang Deng (1):
iio: dac: ad5592r: Fix the missing return value.
Zqiang (1):
kasan: prevent cpu_quarantine corruption when CPU offline and cache shrink occur at same time
liuyacan (1):
net/smc: sync err code when tcp connection was refused
suresh kumar (1):
bonding: do not discard lowest hash bit for non layer3+4 hashing
zhangqilong (1):
usb: xhci: tegra:Fix PM usage reference leak of tegra_xusb_unpowergate_partitions
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 17 -SUBLEVEL = 5 +SUBLEVEL = 6 EXTRAVERSION = NAME = Superb Owl
arch/arm/boot/dts/am33xx-l4.dtsi +2 -0
@@ -263,6 +263,8 @@ tscadc: tscadc@0 { compatible = "ti,am3359-tscadc"; reg = <0x0 0x1000>; interrupts = <16>; + clocks = <&adc_tsc_fck>; + clock-names = "fck"; status = "disabled"; dmas = <&edma 53 0>, <&edma 57 0>; dma-names = "fifo0", "fifo1";
arch/arm/boot/dts/am3517-evm.dts +40 -5
87 lines not on this page · raw message
arch/arm/boot/dts/am3517-som.dtsi +9 -0
@@ -69,6 +69,8 @@ nand@0,0 { }; &i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; clock-frequency = <400000>; s35390a: s35390a@30 {
@@ -179,6 +181,13 @@ bluetooth { &omap3_pmx_core { + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ + OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ + >; + }; + wl12xx_buffer_pins: pinmux_wl12xx_buffer_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4) /* mmc1_dat7.gpio_129 */
arch/arm/boot/dts/at91-sama5d3_xplained.dts +4 -4
@@ -57,8 +57,8 @@ slot@0 { }; spi0: spi@f0004000 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_spi0_cs>; + pinctrl-names = "default", "cs"; + pinctrl-1 = <&pinctrl_spi0_cs>; cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>; status = "okay"; };
@@ -171,8 +171,8 @@ slot@0 { }; spi1: spi@f8008000 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_spi1_cs>; + pinctrl-names = "default", "cs"; + pinctrl-1 = <&pinctrl_spi1_cs>; cs-gpios = <&pioC 25 0>; status = "okay"; };
arch/arm/boot/dts/at91-sama5d4_xplained.dts +3 -3
@@ -81,8 +81,8 @@ usart4: serial@fc010000 { }; spi1: spi@fc018000 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_spi0_cs>; + pinctrl-names = "default", "cs"; + pinctrl-1 = <&pinctrl_spi1_cs>; cs-gpios = <&pioB 21 0>; status = "okay"; };
@@ -140,7 +140,7 @@ pinctrl_macb0_phy_irq: macb0_phy_irq_0 { atmel,pins = <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; }; - pinctrl_spi0_cs: spi0_cs_default { + pinctrl_spi1_cs: spi1_cs_default { atmel,pins = <AT91_PIOB 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; };
arch/arm/boot/dts/at91-sama7g5ek.dts +1 -1
@@ -465,7 +465,7 @@ pinctrl_flx0_default: flx0_default { pinctrl_flx3_default: flx3_default { pinmux = <PIN_PD16__FLEXCOM3_IO0>, <PIN_PD17__FLEXCOM3_IO1>; - bias-disable; + bias-pull-up; }; pinctrl_flx4_default: flx4_default {
arch/arm/boot/dts/at91sam9g20ek_common.dtsi +6 -0
@@ -219,6 +219,12 @@ i2c-gpio-0 { wm8731: wm8731@1b { compatible = "wm8731"; reg = <0x1b>; + + /* PCK0 at 12MHz */ + clocks = <&pmc PMC_TYPE_SYSTEM 8>; + clock-names = "mclk"; + assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>; + assigned-clock-rates = <12000000>; }; };
arch/arm/boot/dts/dra7-l4.dtsi +2 -2
@@ -4188,11 +4188,11 @@ target-module@1d0010 { /* 0x489d0000, ap 27 30.0 */ reg = <0x1d0010 0x4>; reg-names = "sysc"; ti,sysc-midle = <SYSC_IDLE_FORCE>, - <SYSC_IDLE_NO>, - <SYSC_IDLE_SMART>; + <SYSC_IDLE_NO>; ti,sysc-sidle = <SYSC_IDLE_FORCE>, <SYSC_IDLE_NO>, <SYSC_IDLE_SMART>; + power-domains = <&prm_vpe>; clocks = <&vpe_clkctrl DRA7_VPE_VPE_CLKCTRL 0>; clock-names = "fck"; #address-cells = <1>;
arch/arm/boot/dts/imx6qdl-apalis.dtsi +8 -2
@@ -286,6 +286,8 @@ vgen6_reg: vgen6 { codec: sgtl5000@a { compatible = "fsl,sgtl5000"; reg = <0x0a>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sgtl5000>; clocks = <&clks IMX6QDL_CLK_CKO>; VDDA-supply = <®_module_3v3_audio>; VDDIO-supply = <®_module_3v3>;
@@ -517,8 +519,6 @@ MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x130b0 MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0 MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0 - /* SGTL5000 sys_mclk */ - MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0 >; };
@@ -811,6 +811,12 @@ MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x000b0 >; }; + pinctrl_sgtl5000: sgtl5000grp { + fsl,pins = < + MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0 + >; + }; + pinctrl_spdif: spdifgrp { fsl,pins = < MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0
arch/arm/boot/dts/imx6ull-colibri.dtsi +1 -1
@@ -37,7 +37,7 @@ reg_module_3v3_avdd: regulator-module-3v3-avdd { reg_sd1_vmmc: regulator-sd1-vmmc { compatible = "regulator-gpio"; - gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>; + gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_snvs_reg_sd>; regulator-always-on;
arch/arm/boot/dts/logicpd-som-lv-35xx-devkit.dts +15 -0
@@ -11,3 +11,18 @@ / { model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit"; compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3430", "ti,omap3"; }; + +&omap3_pmx_core2 { + pinctrl-names = "default"; + pinctrl-0 = <&hsusb2_2_pins>; + hsusb2_2_pins: pinmux_hsusb2_2_pins { + pinctrl-single,pins = < + OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ + OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ + OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ + OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ + OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ + OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ + >; + }; +};
arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts +15 -0
@@ -11,3 +11,18 @@ / { model = "LogicPD Zoom DM3730 SOM-LV Development Kit"; compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3"; }; + +&omap3_pmx_core2 { + pinctrl-names = "default"; + pinctrl-0 = <&hsusb2_2_pins>; + hsusb2_2_pins: pinmux_hsusb2_2_pins { + pinctrl-single,pins = < + OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ + OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ + OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ + OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ + OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ + OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ + >; + }; +};
arch/arm/boot/dts/logicpd-som-lv.dtsi +0 -15
@@ -265,21 +265,6 @@ OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */ }; }; -&omap3_pmx_core2 { - pinctrl-names = "default"; - pinctrl-0 = <&hsusb2_2_pins>; - hsusb2_2_pins: pinmux_hsusb2_2_pins { - pinctrl-single,pins = < - OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ - OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ - OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ - OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ - OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ - OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ - >; - }; -}; - &uart2 { interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>; pinctrl-names = "default";
arch/arm/boot/dts/omap3-gta04.dtsi +2 -0
@@ -31,6 +31,8 @@ chosen { aliases { display0 = &lcd; display1 = &tv0; + /delete-property/ mmc2; + /delete-property/ mmc3; }; ldo_3v3: fixedregulator {
arch/arm/mach-exynos/Kconfig +0 -1
@@ -17,7 +17,6 @@ menuconfig ARCH_EXYNOS select EXYNOS_PMU select EXYNOS_SROM select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS - select GPIOLIB select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5 select HAVE_ARM_SCU if SMP select PINCTRL
arch/arm/mach-omap2/omap4-common.c +2 -0
@@ -314,10 +314,12 @@ void __init omap_gic_of_init(void) np =of_find_compatible_node (NULL ,NULL ,"arm,cortex-a9-gic" ); gic_dist_base_addr =of_iomap (np,0 ); +of_node_put (np);WARN_ON (!gic_dist_base_addr); np =of_find_compatible_node (NULL ,NULL ,"arm,cortex-a9-twd-timer" ); twd_base =of_iomap (np,0 ); +of_node_put (np);WARN_ON (!twd_base); skip_errata_init:
arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi +0 -40
@@ -11,26 +11,6 @@ cpu_opp_table_0: opp-table-0 { compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <761000>;
@@ -71,26 +51,6 @@ cpub_opp_table_1: opp-table-1 { compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <731000>;
arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi +0 -40
@@ -11,26 +11,6 @@ cpu_opp_table_0: opp-table-0 { compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <731000>;
@@ -76,26 +56,6 @@ cpub_opp_table_1: opp-table-1 { compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <751000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <751000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <751000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <751000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <771000>;
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +1 -0
@@ -437,6 +437,7 @@ &gpio { "", "eMMC_RST#", /* BOOT_12 */ "eMMC_DS", /* BOOT_13 */ + "", "", /* GPIOC */ "SD_D0_B", /* GPIOC_0 */ "SD_D1_B", /* GPIOC_1 */
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +0 -20
@@ -95,26 +95,6 @@ cpu_opp_table: opp-table { compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <730000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <730000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <730000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <666666666>; - opp-microvolt = <750000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <770000>;
arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi +3 -1
@@ -103,12 +103,14 @@ &uart3 { &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; status = "okay"; };
@@ -166,7 +168,7 @@ pinctrl_spi2: spi2grp { fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; };
arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi +3 -1
@@ -139,12 +139,14 @@ &uart4 { &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; vbus-supply = <®_usb_otg2_vbus>; status = "okay"; };
@@ -231,7 +233,7 @@ pinctrl_spi2: spi2grp { fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; };
arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi +3 -1
@@ -166,12 +166,14 @@ &uart4 { &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; vbus-supply = <®_usb_otg2_vbus>; status = "okay"; };
@@ -280,7 +282,7 @@ pinctrl_spi2: spi2grp { fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; };
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts +4 -0
@@ -59,6 +59,10 @@ pmic@4b { interrupts = <3 IRQ_TYPE_LEVEL_LOW>; rohm,reset-snvs-powered; + #clock-cells = <0>; + clocks = <&osc_32k 0>; + clock-output-names = "clk-32k-out"; + regulators { buck1_reg: BUCK1 { regulator-name = "buck1";
arch/arm64/boot/dts/freescale/imx8mn.dtsi +5 -5
@@ -291,7 +291,7 @@ spba2: spba-bus@30000000 { ranges; sai2: sai@30020000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30020000 0x10000>; interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk IMX8MN_CLK_SAI2_IPG>,
@@ -305,7 +305,7 @@ sai2: sai@30020000 { }; sai3: sai@30030000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30030000 0x10000>; interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
@@ -319,7 +319,7 @@ sai3: sai@30030000 { }; sai5: sai@30050000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30050000 0x10000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk IMX8MN_CLK_SAI5_IPG>,
@@ -335,7 +335,7 @@ sai5: sai@30050000 { }; sai6: sai@30060000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30060000 0x10000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk IMX8MN_CLK_SAI6_IPG>,
@@ -392,7 +392,7 @@ spdif1: spdif@30090000 { }; sai7: sai@300b0000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x300b0000 0x10000>; interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk IMX8MN_CLK_SAI7_IPG>,
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi +1 -1
@@ -253,7 +253,7 @@ flash0: flash@0 { #address-cells = <1>; #size-cells = <1>; spi-max-frequency = <84000000>; - spi-tx-bus-width = <4>; + spi-tx-bus-width = <1>; spi-rx-bus-width = <4>; }; };
arch/arm64/boot/dts/freescale/imx8qm.dtsi +1 -1
@@ -193,7 +193,7 @@ pd: imx8qx-pd { }; clk: clock-controller { - compatible = "fsl,imx8qxp-clk", "fsl,scu-clk"; + compatible = "fsl,imx8qm-clk", "fsl,scu-clk"; #clock-cells = <2>; };
arch/powerpc/kernel/reloc_64.S +47 -20
107 lines not on this page · raw message
arch/powerpc/kernel/vmlinux.lds.S +0 -2
@@ -281,9 +281,7 @@ SECTIONS . = ALIGN(8); .dynsym : AT(ADDR(.dynsym) - LOAD_OFFSET) { -#ifdef CONFIG_PPC32 __dynamic_symtab = .; -#endif *(.dynsym) } .dynstr : AT(ADDR(.dynstr) - LOAD_OFFSET) { *(.dynstr) }
arch/powerpc/perf/Makefile +2 -2
@@ -3,11 +3,11 @@ obj-y += callchain.o callchain_$(BITS).o perf_regs.o obj-$(CONFIG_COMPAT) += callchain_32.o -obj-$(CONFIG_PPC_PERF_CTRS) += core-book3s.o bhrb.o +obj-$(CONFIG_PPC_PERF_CTRS) += core-book3s.o obj64-$(CONFIG_PPC_PERF_CTRS) += ppc970-pmu.o power5-pmu.o \ power5+-pmu.o power6-pmu.o power7-pmu.o \ isa207-common.o power8-pmu.o power9-pmu.o \ - generic-compat-pmu.o power10-pmu.o + generic-compat-pmu.o power10-pmu.o bhrb.o obj32-$(CONFIG_PPC_PERF_CTRS) += mpc7450-pmu.o obj-$(CONFIG_PPC_POWERNV) += imc-pmu.o
arch/powerpc/tools/relocs_check.sh +1 -6
@@ -39,6 +39,7 @@ $objdump -R "$vmlinux" | # R_PPC_NONE grep -F -w -v 'R_PPC64_RELATIVE R_PPC64_NONE +R_PPC64_UADDR64 R_PPC_ADDR16_LO R_PPC_ADDR16_HI R_PPC_ADDR16_HA
@@ -54,9 +55,3 @@ fi num_bad=$(echo "$bad_relocs" | wc -l) echo "WARNING: $num_bad bad relocations" echo "$bad_relocs" - -# If we see this type of relocation it's an idication that -# we /may/ be using an old version of binutils. -if echo "$bad_relocs" | grep -q -F -w R_PPC64_UADDR64; then - echo "WARNING: You need at least binutils >= 2.19 to build a CONFIG_RELOCATABLE kernel" -fi
arch/riscv/kernel/patch.c +1 -1
@@ -104,7 +104,7 @@ static int patch_text_cb(void *data)struct patch_insn *patch = data;int ret =0 ; -if (atomic_inc_return (&patch->cpu_count) ==1 ) { +if (atomic_inc_return (&patch->cpu_count) ==num_online_cpus ()) { ret =patch_text_nosync (patch->addr, &patch->insn,GET_INSN_LENGTH (patch->insn));
arch/x86/include/asm/microcode.h +2 -0
@@ -131,10 +131,12 @@ extern void __init load_ucode_bsp(void);extern void load_ucode_ap (void );void reload_early_microcode (void );extern bool initrd_gone; +void microcode_bsp_resume (void );#else static inline void __init load_ucode_bsp (void ) { }static inline void load_ucode_ap (void ) { }static inline void reload_early_microcode (void ) { } +static inline void microcode_bsp_resume (void ) { }#endif #endif /* _ASM_X86_MICROCODE_H */
arch/x86/kernel/cpu/microcode/core.c +3 -3
@@ -758,9 +758,9 @@ static struct subsys_interface mc_cpu_interface = { };/** -* mc_bp_resume - Update boot CPU microcode during resume. +* microcode_bsp_resume - Update boot CPU microcode during resume. */ -static void mc_bp_resume (void ) +void microcode_bsp_resume (void ) {int cpu =smp_processor_id ();struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
@@ -772,7 +772,7 @@ static void mc_bp_resume(void) }static struct syscore_ops mc_syscore_ops = { - .resume = mc_bp_resume, + .resume = microcode_bsp_resume, };static int mc_cpu_starting (unsigned int cpu)
arch/x86/lib/usercopy_64.c +1 -1
@@ -119,7 +119,7 @@ void __memcpy_flushcache(void *_dst, const void *_src, size_t size)/* cache copy and flush to align dest */ if (!IS_ALIGNED (dest,8 )) { -unsigned len =min_t (unsigned, size,ALIGN (dest,8 ) - dest); +size_t len =min_t (size_t, size,ALIGN (dest,8 ) - dest);memcpy ((void *) dest, (void *) source, len);clean_cache_range ((void *) dest, len);
arch/x86/pci/xen.c +5 -1
@@ -467,7 +467,6 @@ static __init void xen_setup_pci_msi(void)else xen_msi_ops.setup_msi_irqs = xen_setup_msi_irqs; xen_msi_ops.teardown_msi_irqs = xen_pv_teardown_msi_irqs; - pci_msi_ignore_mask =1 ; }else if (xen_hvm_domain ()) { xen_msi_ops.setup_msi_irqs = xen_hvm_setup_msi_irqs; xen_msi_ops.teardown_msi_irqs = xen_teardown_msi_irqs;
@@ -481,6 +480,11 @@ static __init void xen_setup_pci_msi(void)* in allocating the native domain and never use it. */ x86_init.irqs.create_pci_msi_domain = xen_create_pci_msi_domain; +/* +* With XEN PIRQ/Eventchannels in use PCI/MSI[-X] masking is solely +* controlled by the hypervisor. +*/ + pci_msi_ignore_mask = 1; }#else /* CONFIG_PCI_MSI */
arch/x86/power/cpu.c +9 -1
@@ -25,6 +25,7 @@#include <asm/cpu.h> #include <asm/mmu_context.h> #include <asm/cpu_device_id.h> +#include <asm/microcode.h> #ifdef CONFIG_X86_32 __visible unsigned long saved_context_ebx;
@@ -262,11 +263,18 @@ static void notrace __restore_processor_state(struct saved_context *ctxt) x86_platform.restore_sched_clock_state ();mtrr_bp_restore ();perf_restore_debug_store (); -msr_restore_context (ctxt); c = &cpu_data (smp_processor_id ());if (cpu_has (c,X86_FEATURE_MSR_IA32_FEAT_CTL ))init_ia32_feat_ctl (c); + +microcode_bsp_resume (); + +/* +* This needs to happen after the microcode has been updated upon resume +* because some of the MSRs are "emulated" in microcode. +*/ +msr_restore_context (ctxt); }/* Needed by apm.c */
arch/xtensa/platforms/iss/console.c +0 -8
@@ -36,24 +36,19 @@ static void rs_poll(struct timer_list *);static struct tty_driver *serial_driver;static struct tty_port serial_port; static DEFINE_TIMER(serial_timer, rs_poll); -static DEFINE_SPINLOCK (timer_lock);static int rs_open (struct tty_struct *tty,struct file * filp) { -spin_lock_bh (&timer_lock);if (tty->count ==1 )mod_timer (&serial_timer, jiffies +SERIAL_TIMER_VALUE ); -spin_unlock_bh (&timer_lock);return 0 ; }static void rs_close (struct tty_struct *tty,struct file * filp) { -spin_lock_bh (&timer_lock);if (tty->count ==1 )del_timer_sync (&serial_timer); -spin_unlock_bh (&timer_lock); }
@@ -73,8 +68,6 @@ static void rs_poll(struct timer_list *unused)int rd =1 ;unsigned char c; -spin_lock (&timer_lock); -while (simc_poll (0 )) { rd =simc_read (0 , &c,1 );if (rd <=0 )
@@ -87,7 +80,6 @@ static void rs_poll(struct timer_list *unused)tty_flip_buffer_push (port);if (rd)mod_timer (&serial_timer, jiffies +SERIAL_TIMER_VALUE ); -spin_unlock (&timer_lock); }
block/bfq-iosched.c +9 -3
@@ -569,7 +569,7 @@ static bool bfqq_request_over_limit(struct bfq_queue *bfqq, int limit)struct bfq_entity *entity = &bfqq->entity;struct bfq_entity *inline_entities[BFQ_LIMIT_INLINE_DEPTH ];struct bfq_entity **entities = inline_entities; -int depth, level; +int depth, level, alloc_depth =BFQ_LIMIT_INLINE_DEPTH ;int class_idx = bfqq->ioprio_class -1 ;struct bfq_sched_data *sched_data;unsigned long wsum;
@@ -578,15 +578,21 @@ static bool bfqq_request_over_limit(struct bfq_queue *bfqq, int limit)if (!entity->on_st_or_in_serv)return false; +retry: +spin_lock_irq (&bfqd->lock);/* +1 for bfqq entity, root cgroup not included */ depth =bfqg_to_blkg (bfqq_group (bfqq))->blkcg->css.cgroup->level +1 ; -if (depth >BFQ_LIMIT_INLINE_DEPTH ) { +if (depth > alloc_depth) { +spin_unlock_irq (&bfqd->lock); +if (entities != inline_entities) +kfree (entities); entities =kmalloc_array (depth,sizeof (*entities),GFP_NOIO );if (!entities)return false; + alloc_depth = depth; + goto retry; } -spin_lock_irq (&bfqd->lock); sched_data = entity->sched_data;/* Gather our ancestors as we need to traverse them in reverse order */ level =0 ;
block/blk-iocost.c +11 -1
@@ -2322,7 +2322,17 @@ static void ioc_timer_fn(struct timer_list *timer) iocg->hweight_donating = hwa; iocg->hweight_after_donation = new_hwi;list_add (&iocg->surplus_list, &surpluses); - }else { + }else if (!iocg->abs_vdebt) { +/* +* @iocg doesn't have enough to donate. Reset +* its inuse to active. +* +* Don't reset debtors as their inuse's are +* owned by debt handling. This shouldn't affect +* donation calculuation in any meaningful way +* as @iocg doesn't have a meaningful amount of +* share anyway. +*/ TRACE_IOCG_PATH (inuse_shortage, iocg, &now, iocg->inuse, iocg->active, iocg->hweight_inuse, new_hwi);
block/blk-mq.c +1 -8
@@ -1122,14 +1122,7 @@ void blk_mq_start_request(struct request *rq)trace_block_rq_issue (rq);if (test_bit (QUEUE_FLAG_STATS , &q->queue_flags)) { -u64 start_time; -#ifdef CONFIG_BLK_CGROUP -if (rq->bio) - start_time =bio_issue_time (&rq->bio->bi_issue); - else -#endif - start_time =ktime_get_ns (); - rq->io_start_time_ns = start_time; + rq->io_start_time_ns =ktime_get_ns (); rq->stats_sectors =blk_rq_sectors (rq); rq->rq_flags |=RQF_STATS ;rq_qos_issue (q, rq);
drivers/acpi/processor_idle.c +2 -6
@@ -96,11 +96,6 @@ static const struct dmi_system_id processor_power_dmi_table[] = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")}, (void *)1}, - /* T40 can not handle C3 idle state */ - { set_max_cstate, "IBM ThinkPad T40", { - DMI_MATCH(DMI_SYS_VENDOR, "IBM"), - DMI_MATCH(DMI_PRODUCT_NAME, "23737CU")}, - (void *)2}, {}, };
@@ -795,7 +790,8 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)if (cx->type ==ACPI_STATE_C1 || cx->type ==ACPI_STATE_C2 || cx->type ==ACPI_STATE_C3 ) { state->enter_dead = acpi_idle_play_dead; - drv->safe_state_index = count; +if (cx->type !=ACPI_STATE_C3 ) + drv->safe_state_index = count; }/* * Halt-induced C1 is not good for ->enter_s2idle, because it
drivers/android/binder.c +9 -1
@@ -2295,6 +2295,7 @@ static int binder_do_deferred_txn_copies(struct binder_alloc *alloc, {int ret =0 ;struct binder_sg_copy *sgc, *tmpsgc; +struct binder_ptr_fixup *tmppf;struct binder_ptr_fixup *pf = list_first_entry_or_null(pf_head, struct binder_ptr_fixup, node);
@@ -2349,7 +2350,11 @@ static int binder_do_deferred_txn_copies(struct binder_alloc *alloc,list_del (&sgc->node);kfree (sgc); } -BUG_ON (!list_empty (pf_head)); +list_for_each_entry_safe (pf, tmppf, pf_head, node) { +BUG_ON (pf->skip_size ==0 ); +list_del (&pf->node); +kfree (pf); + }BUG_ON (!list_empty (sgc_head));return ret >0 ? -EINVAL : ret;
@@ -2486,6 +2491,9 @@ static int binder_translate_fd_array(struct list_head *pf_head,struct binder_proc *proc = thread->proc;int ret; +if (fda->num_fds ==0 ) +return 0 ; + fd_buf_size =sizeof (u32) * fda->num_fds;if (fda->num_fds >=SIZE_MAX /sizeof (u32)) { binder_user_error("%d:%d got transaction with invalid number of fds (%lld)\n",
drivers/base/arch_topology.c +10 -1
@@ -628,6 +628,15 @@ const struct cpumask *cpu_coregroup_mask(int cpu) core_mask = &cpu_topology[cpu].llc_sibling; } +/* +* For systems with no shared cpu-side LLC but with clusters defined, +* extend core_mask to cluster_siblings. The sched domain builder will +* then remove MC as redundant with CLS if SCHED_CLUSTER is enabled. +*/ +if (IS_ENABLED (CONFIG_SCHED_CLUSTER ) && +cpumask_subset (core_mask, &cpu_topology[cpu].cluster_sibling)) + core_mask = &cpu_topology[cpu].cluster_sibling; +return core_mask; }
@@ -645,7 +654,7 @@ void update_siblings_masks(unsigned int cpuid)for_each_online_cpu (cpu) { cpu_topo = &cpu_topology[cpu]; -if (cpuid_topo->llc_id == cpu_topo->llc_id) { +if (cpu_topo->llc_id !=-1 && cpuid_topo->llc_id == cpu_topo->llc_id) {cpumask_set_cpu (cpu, &cpuid_topo->llc_sibling);cpumask_set_cpu (cpuid, &cpu_topo->llc_sibling); }
drivers/block/Kconfig +16 -0
@@ -33,6 +33,22 @@ config BLK_DEV_FD To compile this driver as a module, choose M here: the module will be called floppy. +config BLK_DEV_FD_RAWCMD + bool "Support for raw floppy disk commands (DEPRECATED)" + depends on BLK_DEV_FD + help + If you want to use actual physical floppies and expect to do + special low-level hardware accesses to them (access and use + non-standard formats, for example), then enable this. + + Note that the code enabled by this option is rarely used and + might be unstable or insecure, and distros should not enable it. + + Note: FDRAWCMD is deprecated and will be removed from the kernel + in the near future. + + If unsure, say N. + config AMIGA_FLOPPY tristate "Amiga floppy support" depends on AMIGA
drivers/block/floppy.c +32 -11
67 lines not on this page · raw message
drivers/bus/fsl-mc/fsl-mc-msi.c +5 -1
@@ -224,8 +224,12 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev, unsigned int irq_count)if (error)return error; +msi_lock_descs (dev);if (msi_first_desc (dev,MSI_DESC_ALL )) -return -EINVAL ; + error = -EINVAL ; +msi_unlock_descs (dev); +if (error) +return error;/* * NOTE: Calling this function will trigger the invocation of the
drivers/bus/mhi/pci_generic.c +2 -0
@@ -1060,6 +1060,7 @@ static int __maybe_unused mhi_pci_freeze(struct device *dev)* the intermediate restore kernel reinitializes MHI device with new * context. */ +flush_work (&mhi_pdev->recovery_work);if (test_and_clear_bit (MHI_PCI_DEV_STARTED , &mhi_pdev->status)) {mhi_power_down (mhi_cntrl, true);mhi_unprepare_after_power_down (mhi_cntrl);
@@ -1085,6 +1086,7 @@ static const struct dev_pm_ops mhi_pci_pm_ops = { .resume = mhi_pci_resume, .freeze = mhi_pci_freeze, .thaw = mhi_pci_restore, + .poweroff = mhi_pci_freeze, .restore = mhi_pci_restore,#endif };
drivers/bus/sunxi-rsb.c +2 -0
@@ -227,6 +227,8 @@ static struct sunxi_rsb_device *sunxi_rsb_device_create(struct sunxi_rsb *rsb,dev_dbg (&rdev->dev,"device %s registered\n" ,dev_name (&rdev->dev)); +return rdev; + err_device_add:put_device (&rdev->dev);
drivers/bus/ti-sysc.c +15 -1
@@ -3232,13 +3232,27 @@ static int sysc_check_disabled_devices(struct sysc *ddata)*/ static int sysc_check_active_timer (struct sysc *ddata) { +int error; +if (ddata->cap->type !=TI_SYSC_OMAP2_TIMER && ddata->cap->type !=TI_SYSC_OMAP4_TIMER )return 0 ; +/* +* Quirk for omap3 beagleboard revision A to B4 to use gpt12. +* Revision C and later are fixed with commit 23885389dbbb ("ARM: +* dts: Fix timer regression for beagleboard revision c"). This all +* can be dropped if we stop supporting old beagleboard revisions +* A to B4 at some point. +*/ +if (sysc_soc->soc ==SOC_3430 ) + error = -ENXIO ; +else + error = -EBUSY ; +if ((ddata->cfg.quirks &SYSC_QUIRK_NO_RESET_ON_INIT ) && (ddata->cfg.quirks &SYSC_QUIRK_NO_IDLE )) -return -ENXIO ; +return error;return 0 ; }
drivers/clk/sunxi/clk-sun9i-mmc.c +2 -0
@@ -109,6 +109,8 @@ static int sun9i_a80_mmc_config_clk_probe(struct platform_device *pdev)spin_lock_init (&data->lock); r =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!r) +return -EINVAL ;/* one clock/reset pair per word */ count =DIV_ROUND_UP ((resource_size (r)),SUN9I_MMC_WIDTH ); data->membase =devm_ioremap_resource (&pdev->dev, r);
drivers/cpufreq/qcom-cpufreq-hw.c +31 -11
100 lines not on this page · raw message
drivers/cpufreq/sun50i-cpufreq-nvmem.c +3 -1
@@ -98,8 +98,10 @@ static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev)return -ENOMEM ; ret =sun50i_cpufreq_get_efuse (&speed); -if (ret) +if (ret) { +kfree (opp_tables);return ret; + }snprintf (name,MAX_NAME_LEN ,"speed%d" , speed);
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +70 -35
123 lines not on this page · raw message
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +37 -46
180 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +1 -0
@@ -1427,6 +1427,7 @@ static struct clock_source *dcn21_clock_source_create(return &clk_src->base; } +kfree (clk_src);BREAK_TO_DEBUGGER ();return NULL ; }
drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +26 -8
@@ -97,6 +97,14 @@#define INTEL_EDP_BRIGHTNESS_OPTIMIZATION_1 0x359 +enum intel_dp_aux_backlight_modparam { +INTEL_DP_AUX_BACKLIGHT_AUTO =-1 , +INTEL_DP_AUX_BACKLIGHT_OFF =0 , +INTEL_DP_AUX_BACKLIGHT_ON =1 , +INTEL_DP_AUX_BACKLIGHT_FORCE_VESA =2 , +INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL =3 , +}; +/* Intel EDP backlight callbacks */ static bool intel_dp_aux_supports_hdr_backlight (struct intel_connector *connector)
@@ -126,6 +134,24 @@ intel_dp_aux_supports_hdr_backlight(struct intel_connector *connector)return false; } +/* +* If we don't have HDR static metadata there is no way to +* runtime detect used range for nits based control. For now +* do not use Intel proprietary eDP backlight control if we +* don't have this data in panel EDID. In case we find panel +* which supports only nits based control, but doesn't provide +* HDR static metadata we need to start maintaining table of +* ranges for such panels. +*/ +if (i915->params.enable_dpcd_backlight !=INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL && + !(connector->base.hdr_sink_metadata.hdmi_type1.metadata_type & +BIT (HDMI_STATIC_METADATA_TYPE1 ))) { +drm_info (&i915->drm, +"Panel is missing HDR static metadata. Possible support for Intel HDR backlight interface is not used. If your backlight controls don't work try booting with i915.enable_dpcd_backlight=%d. needs this, please file a _new_ bug report on drm/i915, see " FDO_BUG_URL " for details.\n" , +INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL ); +return false; + } + panel->backlight.edp.intel.sdr_uses_aux = tcon_cap[2 ] &INTEL_EDP_SDR_TCON_BRIGHTNESS_AUX_CAP ;
@@ -413,14 +439,6 @@ static const struct intel_panel_bl_funcs intel_dp_vesa_bl_funcs = { .get = intel_dp_aux_vesa_get_backlight, }; -enum intel_dp_aux_backlight_modparam { -INTEL_DP_AUX_BACKLIGHT_AUTO =-1 , -INTEL_DP_AUX_BACKLIGHT_OFF =0 , -INTEL_DP_AUX_BACKLIGHT_ON =1 , -INTEL_DP_AUX_BACKLIGHT_FORCE_VESA =2 , -INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL =3 , -}; -int intel_dp_aux_init_backlight_funcs (struct intel_connector *connector) {struct drm_device *dev = connector->base.dev;
drivers/gpu/drm/i915/i915_reg.h +1 -1
@@ -7578,7 +7578,7 @@ enum {#define _SEL_FETCH_PLANE_BASE_6_A 0x70940#define _SEL_FETCH_PLANE_BASE_7_A 0x70960#define _SEL_FETCH_PLANE_BASE_CUR_A 0x70880 -#define _SEL_FETCH_PLANE_BASE_1_B 0x70990 +#define _SEL_FETCH_PLANE_BASE_1_B 0x71890#define _SEL_FETCH_PLANE_BASE_A (plane) _PICK(plane, \ _SEL_FETCH_PLANE_BASE_1_A, \
drivers/gpu/drm/sun4i/sun4i_frontend.c +0 -3
@@ -222,13 +222,11 @@ void sun4i_frontend_update_buffer(struct sun4i_frontend *frontend,/* Set the physical address of the buffer in memory */ paddr =drm_fb_cma_get_gem_addr (fb, state,0 ); - paddr -=PHYS_OFFSET ;DRM_DEBUG_DRIVER ("Setting buffer #0 address to %pad\n" , &paddr);regmap_write (frontend->regs,SUN4I_FRONTEND_BUF_ADDR0_REG , paddr);if (fb->format->num_planes >1 ) { paddr =drm_fb_cma_get_gem_addr (fb, state, swap ?2 :1 ); - paddr -=PHYS_OFFSET ;DRM_DEBUG_DRIVER ("Setting buffer #1 address to %pad\n" , &paddr);regmap_write (frontend->regs,SUN4I_FRONTEND_BUF_ADDR1_REG , paddr);
@@ -236,7 +234,6 @@ void sun4i_frontend_update_buffer(struct sun4i_frontend *frontend,if (fb->format->num_planes >2 ) { paddr =drm_fb_cma_get_gem_addr (fb, state, swap ?1 :2 ); - paddr -=PHYS_OFFSET ;DRM_DEBUG_DRIVER ("Setting buffer #2 address to %pad\n" , &paddr);regmap_write (frontend->regs,SUN4I_FRONTEND_BUF_ADDR2_REG , paddr);
drivers/iio/chemical/scd4x.c +4 -1
@@ -471,12 +471,15 @@ static ssize_t calibration_forced_value_store(struct device *dev, ret =scd4x_write_and_fetch (state,CMD_FRC , arg, &val,sizeof (val));mutex_unlock (&state->lock); +if (ret) +return ret; +if (val ==0xff ) {dev_err (dev,"forced calibration has failed" );return -EINVAL ; } -return ret ?: len; +return len; } static IIO_DEVICE_ATTR_RW(calibration_auto_enable, 0);
drivers/iio/dac/ad3552r.c +3 -3
@@ -656,7 +656,7 @@ static int ad3552r_reset(struct ad3552r_desc *dac) {struct reg_addr_pool addr;int ret; -u16 val; +int val; dac->gpio_reset =devm_gpiod_get_optional (&dac->spi->dev,"reset" ,GPIOD_OUT_LOW );
@@ -809,10 +809,10 @@ static int ad3552r_configure_custom_gain(struct ad3552r_desc *dac, gain_child =fwnode_get_named_child_node (child,"custom-output-range-config" ); -if (IS_ERR (gain_child)) { +if (!gain_child) {dev_err (dev,"mandatory custom-output-range-config property missing\n" ); -return PTR_ERR (gain_child); +return -EINVAL ; } dac->ch_data[ch].range_override =1 ;
drivers/iio/dac/ad5446.c +1 -1
@@ -178,7 +178,7 @@ static int ad5446_read_raw(struct iio_dev *indio_dev,switch (m) {case IIO_CHAN_INFO_RAW : - *val = st->cached_val; + *val = st->cached_val >> chan->scan_type.shift;return IIO_VAL_INT ;case IIO_CHAN_INFO_SCALE : *val = st->vref_mv;
drivers/iio/dac/ad5592r-base.c +1 -1
@@ -523,7 +523,7 @@ static int ad5592r_alloc_channels(struct iio_dev *iio_dev)if (!ret) st->channel_modes[reg] = tmp; -fwnode_property_read_u32 (child,"adi,off-state" , &tmp); + ret =fwnode_property_read_u32 (child,"adi,off-state" , &tmp);if (!ret) st->channel_offstate[reg] = tmp; }
drivers/iio/filter/Kconfig +1 -0
@@ -8,6 +8,7 @@ menu "Filters" config ADMV8818 tristate "Analog Devices ADMV8818 High-Pass and Low-Pass Filter" depends on SPI && COMMON_CLK && 64BIT + select REGMAP_SPI help Say yes here to build support for Analog Devices ADMV8818 2 GHz to 18 GHz, Digitally Tunable, High-Pass and Low-Pass Filter.
drivers/iio/imu/bmi160/bmi160_core.c +14 -6
@@ -730,7 +730,7 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi) ret =regmap_write (data->regmap,BMI160_REG_CMD ,BMI160_CMD_SOFTRESET );if (ret) -return ret; + goto disable_regulator;usleep_range (BMI160_SOFTRESET_USLEEP ,BMI160_SOFTRESET_USLEEP +1 );
@@ -741,29 +741,37 @@ static int bmi160_chip_init(struct bmi160_data *data, bool use_spi)if (use_spi) { ret =regmap_read (data->regmap,BMI160_REG_DUMMY , &val);if (ret) -return ret; + goto disable_regulator; } ret =regmap_read (data->regmap,BMI160_REG_CHIP_ID , &val);if (ret) {dev_err (dev,"Error reading chip id\n" ); -return ret; + goto disable_regulator; }if (val !=BMI160_CHIP_ID_VAL ) {dev_err (dev,"Wrong chip id, got %x expected %x\n" , val,BMI160_CHIP_ID_VAL ); -return -ENODEV ; + ret = -ENODEV ; + goto disable_regulator; } ret =bmi160_set_mode (data,BMI160_ACCEL , true);if (ret) -return ret; + goto disable_regulator; ret =bmi160_set_mode (data,BMI160_GYRO , true);if (ret) -return ret; + goto disable_accel;return 0 ; + +disable_accel: +bmi160_set_mode (data,BMI160_ACCEL , false); + +disable_regulator: +regulator_bulk_disable (ARRAY_SIZE (data->supplies), data->supplies); +return ret; } static int bmi160_data_rdy_trigger_set_state(struct iio_trigger *trig,
drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c +9 -6
@@ -18,12 +18,15 @@ static int inv_icm42600_i2c_bus_setup(struct inv_icm42600_state *st)unsigned int mask, val;int ret; -/* setup interface registers */ - ret =regmap_update_bits (st->map,INV_ICM42600_REG_INTF_CONFIG6 , -INV_ICM42600_INTF_CONFIG6_MASK , -INV_ICM42600_INTF_CONFIG6_I3C_EN ); -if (ret) -return ret; +/* +* setup interface registers +* This register write to REG_INTF_CONFIG6 enables a spike filter that +* is impacting the line and can prevent the I2C ACK to be seen by the +* controller. So we don't test the return value. +*/ +regmap_update_bits (st->map,INV_ICM42600_REG_INTF_CONFIG6 , +INV_ICM42600_INTF_CONFIG6_MASK , +INV_ICM42600_INTF_CONFIG6_I3C_EN ); ret =regmap_update_bits (st->map,INV_ICM42600_REG_INTF_CONFIG4 ,INV_ICM42600_INTF_CONFIG4_I3C_BUS_ONLY ,0 );
drivers/iio/magnetometer/ak8975.c +1 -0
@@ -416,6 +416,7 @@ static int ak8975_power_on(const struct ak8975_data *data)if (ret) {dev_warn (&data->client->dev,"Failed to enable specified Vid supply\n" ); +regulator_disable (data->vdd);return ret; }
drivers/input/keyboard/cypress-sf.c +14 -0
@@ -61,6 +61,14 @@ static irqreturn_t cypress_sf_irq_handler(int irq, void *devid)return IRQ_HANDLED ; } +static void cypress_sf_disable_regulators (void *arg) +{ +struct cypress_sf_data *touchkey = arg; + +regulator_bulk_disable (ARRAY_SIZE (touchkey->regulators), + touchkey->regulators); +} +static int cypress_sf_probe (struct i2c_client *client) {struct cypress_sf_data *touchkey;
@@ -121,6 +129,12 @@ static int cypress_sf_probe(struct i2c_client *client)return error; } + error =devm_add_action_or_reset (&client->dev, + cypress_sf_disable_regulators, + touchkey); +if (error) +return error; + touchkey->input_dev =devm_input_allocate_device (&client->dev);if (!touchkey->input_dev) {dev_err (&client->dev,"Failed to allocate input device\n" );
drivers/interconnect/qcom/sc7180.c +0 -21
@@ -47,7 +47,6 @@ DEFINE_QNODE(qnm_mnoc_sf, SC7180_MASTER_MNOC_SF_MEM_NOC, 1, 32, SC7180_SLAVE_GEMDEFINE_QNODE (qnm_snoc_gc,SC7180_MASTER_SNOC_GC_MEM_NOC ,1 ,8 ,SC7180_SLAVE_LLCC );DEFINE_QNODE (qnm_snoc_sf,SC7180_MASTER_SNOC_SF_MEM_NOC ,1 ,16 ,SC7180_SLAVE_LLCC );DEFINE_QNODE (qxm_gpu,SC7180_MASTER_GFX3D ,2 ,32 ,SC7180_SLAVE_GEM_NOC_SNOC ,SC7180_SLAVE_LLCC ); -DEFINE_QNODE (ipa_core_master,SC7180_MASTER_IPA_CORE ,1 ,8 ,SC7180_SLAVE_IPA_CORE );DEFINE_QNODE (llcc_mc,SC7180_MASTER_LLCC ,2 ,4 ,SC7180_SLAVE_EBI1 );DEFINE_QNODE (qhm_mnoc_cfg,SC7180_MASTER_CNOC_MNOC_CFG ,1 ,4 ,SC7180_SLAVE_SERVICE_MNOC );DEFINE_QNODE (qxm_camnoc_hf0,SC7180_MASTER_CAMNOC_HF0 ,2 ,32 ,SC7180_SLAVE_MNOC_HF_MEM_NOC );
@@ -129,7 +128,6 @@ DEFINE_QNODE(qhs_mdsp_ms_mpu_cfg, SC7180_SLAVE_MSS_PROC_MS_MPU_CFG, 1, 4);DEFINE_QNODE (qns_gem_noc_snoc,SC7180_SLAVE_GEM_NOC_SNOC ,1 ,8 ,SC7180_MASTER_GEM_NOC_SNOC );DEFINE_QNODE (qns_llcc,SC7180_SLAVE_LLCC ,1 ,16 ,SC7180_MASTER_LLCC );DEFINE_QNODE (srvc_gemnoc,SC7180_SLAVE_SERVICE_GEM_NOC ,1 ,4 ); -DEFINE_QNODE (ipa_core_slave,SC7180_SLAVE_IPA_CORE ,1 ,8 );DEFINE_QNODE (ebi,SC7180_SLAVE_EBI1 ,2 ,4 );DEFINE_QNODE (qns_mem_noc_hf,SC7180_SLAVE_MNOC_HF_MEM_NOC ,1 ,32 ,SC7180_MASTER_MNOC_HF_MEM_NOC );DEFINE_QNODE (qns_mem_noc_sf,SC7180_SLAVE_MNOC_SF_MEM_NOC ,1 ,32 ,SC7180_MASTER_MNOC_SF_MEM_NOC );
@@ -160,7 +158,6 @@ DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi);DEFINE_QBCM (bcm_sh0,"SH0" , true, &qns_llcc);DEFINE_QBCM (bcm_mm0,"MM0" , false, &qns_mem_noc_hf);DEFINE_QBCM (bcm_ce0,"CE0" , false, &qxm_crypto); -DEFINE_QBCM (bcm_ip0,"IP0" , false, &ipa_core_slave);DEFINE_QBCM (bcm_cn0,"CN0" , true, &qnm_snoc, &xm_qdss_dap, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_ahb2phy0, &qhs_aop, &qhs_aoss, &qhs_boot_rom, &qhs_camera_cfg, &qhs_camera_nrt_throttle_cfg, &qhs_camera_rt_throttle_cfg, &qhs_clk_ctl, &qhs_cpr_cx, &qhs_cpr_mx, &qhs_crypto0_cfg, &qhs_dcc_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_display_rt_throttle_cfg, &qhs_display_throttle_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_mss_cfg, &qhs_npu_cfg, &qhs_npu_dma_throttle_cfg, &qhs_npu_dsp_throttle_cfg, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qm_cfg, &qhs_qm_mpu_cfg, &qhs_qup0, &qhs_qup1, &qhs_security, &qhs_snoc_cfg, &qhs_tcsr, &qhs_tlmm_1, &qhs_tlmm_2, &qhs_tlmm_3, &qhs_ufs_mem_cfg, &qhs_usb3, &qhs_venus_cfg, &qhs_venus_throttle_cfg, &qhs_vsense_ctrl_cfg, &srvc_cnoc);DEFINE_QBCM (bcm_mm1,"MM1" , false, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_hf1_uncomp, &qxm_camnoc_sf_uncomp, &qhm_mnoc_cfg, &qxm_mdp0, &qxm_rot, &qxm_venus0, &qxm_venus_arm9);DEFINE_QBCM (bcm_sh2,"SH2" , false, &acm_sys_tcu);
@@ -372,22 +369,6 @@ static struct qcom_icc_desc sc7180_gem_noc = { .num_bcms = ARRAY_SIZE(gem_noc_bcms), }; -static struct qcom_icc_bcm *ipa_virt_bcms[] = { - &bcm_ip0, -}; - -static struct qcom_icc_node *ipa_virt_nodes[] = { - [MASTER_IPA_CORE ] = &ipa_core_master, - [SLAVE_IPA_CORE ] = &ipa_core_slave, -}; - -static struct qcom_icc_desc sc7180_ipa_virt = { - .nodes = ipa_virt_nodes, - .num_nodes =ARRAY_SIZE (ipa_virt_nodes), - .bcms = ipa_virt_bcms, - .num_bcms =ARRAY_SIZE (ipa_virt_bcms), -}; -static struct qcom_icc_bcm *mc_virt_bcms[] = { &bcm_acv, &bcm_mc0,
@@ -519,8 +500,6 @@ static const struct of_device_id qnoc_of_match[] = { .data = &sc7180_dc_noc}, { .compatible = "qcom,sc7180-gem-noc", .data = &sc7180_gem_noc}, - { .compatible = "qcom,sc7180-ipa-virt", - .data = &sc7180_ipa_virt}, { .compatible = "qcom,sc7180-mc-virt", .data = &sc7180_mc_virt}, { .compatible = "qcom,sc7180-mmss-noc",
drivers/interconnect/qcom/sdx55.c +0 -21
@@ -18,7 +18,6 @@#include "icc-rpmh.h" #include "sdx55.h" -DEFINE_QNODE (ipa_core_master,SDX55_MASTER_IPA_CORE ,1 ,8 ,SDX55_SLAVE_IPA_CORE );DEFINE_QNODE (llcc_mc,SDX55_MASTER_LLCC ,4 ,4 ,SDX55_SLAVE_EBI_CH0 );DEFINE_QNODE (acm_tcu,SDX55_MASTER_TCU_0 ,1 ,8 ,SDX55_SLAVE_LLCC ,SDX55_SLAVE_MEM_NOC_SNOC ,SDX55_SLAVE_MEM_NOC_PCIE_SNOC );DEFINE_QNODE (qnm_snoc_gc,SDX55_MASTER_SNOC_GC_MEM_NOC ,1 ,8 ,SDX55_SLAVE_LLCC );
@@ -40,7 +39,6 @@ DEFINE_QNODE(xm_pcie, SDX55_MASTER_PCIE, 1, 8, SDX55_SLAVE_ANOC_SNOC);DEFINE_QNODE (xm_qdss_etr,SDX55_MASTER_QDSS_ETR ,1 ,8 ,SDX55_SLAVE_SNOC_CFG ,SDX55_SLAVE_EMAC_CFG ,SDX55_SLAVE_USB3 ,SDX55_SLAVE_AOSS ,SDX55_SLAVE_SPMI_FETCHER ,SDX55_SLAVE_QDSS_CFG ,SDX55_SLAVE_PDM ,SDX55_SLAVE_SNOC_MEM_NOC_GC ,SDX55_SLAVE_TCSR ,SDX55_SLAVE_CNOC_DDRSS ,SDX55_SLAVE_SPMI_VGI_COEX ,SDX55_SLAVE_QPIC ,SDX55_SLAVE_OCIMEM ,SDX55_SLAVE_IPA_CFG ,SDX55_SLAVE_USB3_PHY_CFG ,SDX55_SLAVE_AOP ,SDX55_SLAVE_BLSP_1 ,SDX55_SLAVE_SDCC_1 ,SDX55_SLAVE_CNOC_MSS ,SDX55_SLAVE_PCIE_PARF ,SDX55_SLAVE_ECC_CFG ,SDX55_SLAVE_AUDIO ,SDX55_SLAVE_AOSS ,SDX55_SLAVE_PRNG ,SDX55_SLAVE_CRYPTO_0_CFG ,SDX55_SLAVE_TCU ,SDX55_SLAVE_CLK_CTL ,SDX55_SLAVE_IMEM_CFG );DEFINE_QNODE (xm_sdc1,SDX55_MASTER_SDCC_1 ,1 ,8 ,SDX55_SLAVE_AOSS ,SDX55_SLAVE_IPA_CFG ,SDX55_SLAVE_ANOC_SNOC ,SDX55_SLAVE_AOP ,SDX55_SLAVE_AUDIO );DEFINE_QNODE (xm_usb3,SDX55_MASTER_USB3 ,1 ,8 ,SDX55_SLAVE_ANOC_SNOC ); -DEFINE_QNODE (ipa_core_slave,SDX55_SLAVE_IPA_CORE ,1 ,8 );DEFINE_QNODE (ebi,SDX55_SLAVE_EBI_CH0 ,1 ,4 );DEFINE_QNODE (qns_llcc,SDX55_SLAVE_LLCC ,1 ,16 ,SDX55_SLAVE_EBI_CH0 );DEFINE_QNODE (qns_memnoc_snoc,SDX55_SLAVE_MEM_NOC_SNOC ,1 ,8 ,SDX55_MASTER_MEM_NOC_SNOC );
@@ -82,7 +80,6 @@ DEFINE_QNODE(xs_sys_tcu_cfg, SDX55_SLAVE_TCU, 1, 8);DEFINE_QBCM (bcm_mc0,"MC0" , true, &ebi);DEFINE_QBCM (bcm_sh0,"SH0" , true, &qns_llcc);DEFINE_QBCM (bcm_ce0,"CE0" , false, &qxm_crypto); -DEFINE_QBCM (bcm_ip0,"IP0" , false, &ipa_core_slave);DEFINE_QBCM (bcm_pn0,"PN0" , false, &qhm_snoc_cfg);DEFINE_QBCM (bcm_sh3,"SH3" , false, &xm_apps_rdwr);DEFINE_QBCM (bcm_sh4,"SH4" , false, &qns_memnoc_snoc, &qns_sys_pcie);
@@ -219,22 +216,6 @@ static const struct qcom_icc_desc sdx55_system_noc = { .num_bcms = ARRAY_SIZE(system_noc_bcms), }; -static struct qcom_icc_bcm *ipa_virt_bcms[] = { - &bcm_ip0, -}; - -static struct qcom_icc_node *ipa_virt_nodes[] = { - [MASTER_IPA_CORE ] = &ipa_core_master, - [SLAVE_IPA_CORE ] = &ipa_core_slave, -}; - -static const struct qcom_icc_desc sdx55_ipa_virt = { - .nodes = ipa_virt_nodes, - .num_nodes =ARRAY_SIZE (ipa_virt_nodes), - .bcms = ipa_virt_bcms, - .num_bcms =ARRAY_SIZE (ipa_virt_bcms), -}; -static const struct of_device_id qnoc_of_match[] = { { .compatible ="qcom,sdx55-mc-virt" , .data = &sdx55_mc_virt},
@@ -242,8 +223,6 @@ static const struct of_device_id qnoc_of_match[] = { .data = &sdx55_mem_noc}, { .compatible = "qcom,sdx55-system-noc", .data = &sdx55_system_noc}, - { .compatible = "qcom,sdx55-ipa-virt", - .data = &sdx55_ipa_virt}, { } };MODULE_DEVICE_TABLE (of, qnoc_of_match);
drivers/memory/renesas-rpc-if.c +46 -14
101 lines not on this page · raw message
drivers/misc/eeprom/at25.c +11 -8
@@ -31,6 +31,8 @@*/ #define FM25_SN_LEN 8/* serial number length */ +#define EE_MAXADDRLEN 3/* 24 bit addresses, up to 2 MBytes */ +struct at25_data {struct spi_eeprom chip;struct spi_device *spi;
@@ -39,6 +41,7 @@ struct at25_data {struct nvmem_config nvmem_config;struct nvmem_device *nvmem;u8 sernum[FM25_SN_LEN ]; +u8 command[EE_MAXADDRLEN +1 ]; };#define AT25_WREN 0x06/* latch the write enable */
@@ -61,8 +64,6 @@ struct at25_data {#define FM25_ID_LEN 9/* ID length */ -#define EE_MAXADDRLEN 3/* 24 bit addresses, up to 2 MBytes */ -/* * Specs often allow 5ms for a page write, sometimes 20ms; * it's important to recover from write timeouts.
@@ -78,7 +79,6 @@ static int at25_ee_read(void *priv, unsigned int offset, {struct at25_data *at25 = priv;char *buf = val; -u8 command[EE_MAXADDRLEN +1 ];u8 *cp;ssize_t status;struct spi_transfer t[2 ];
@@ -92,12 +92,15 @@ static int at25_ee_read(void *priv, unsigned int offset,if (unlikely (!count))return -EINVAL ; - cp = command; + cp = at25->command; instr =AT25_READ ;if (at25->chip.flags &EE_INSTR_BIT3_IS_ADDR )if (offset >=BIT (at25->addrlen *8 )) instr |=AT25_INSTR_BIT3 ; + +mutex_lock (&at25->lock); + *cp++ = instr;/* 8/16/24-bit address is written MSB first */
@@ -116,7 +119,7 @@ static int at25_ee_read(void *priv, unsigned int offset,spi_message_init (&m);memset (t,0 ,sizeof (t)); - t[0 ].tx_buf = command; + t[0 ].tx_buf = at25->command; t[0 ].len = at25->addrlen +1 ;spi_message_add_tail (&t[0 ], &m);
@@ -124,8 +127,6 @@ static int at25_ee_read(void *priv, unsigned int offset, t[1 ].len = count;spi_message_add_tail (&t[1 ], &m); -mutex_lock (&at25->lock); -/* * Read it all at once. *
@@ -152,7 +153,7 @@ static int fm25_aux_read(struct at25_data *at25, u8 *buf, uint8_t command,spi_message_init (&m);memset (t,0 ,sizeof (t)); - t[0 ].tx_buf = &command; + t[0 ].tx_buf = at25->command; t[0 ].len =1 ;spi_message_add_tail (&t[0 ], &m);
@@ -162,6 +163,8 @@ static int fm25_aux_read(struct at25_data *at25, u8 *buf, uint8_t command,mutex_lock (&at25->lock); + at25->command[0 ] = command; + status =spi_sync (at25->spi, &m);dev_dbg (&at25->spi->dev,"read %d aux bytes --> %d\n" , len, status);
drivers/mtd/nand/raw/mtk_ecc.c +8 -4
@@ -43,6 +43,7 @@struct mtk_ecc_caps {u32 err_mask; +u32 err_shift;const u8 *ecc_strength;const u32 *ecc_regs;u8 num_ecc_strength;
@@ -76,7 +77,7 @@ static const u8 ecc_strength_mt2712[] = { };static const u8 ecc_strength_mt7622[] = { -4 ,6 ,8 ,10 ,12 ,14 ,16 +4 ,6 ,8 ,10 ,12 };enum mtk_ecc_regs {
@@ -221,7 +222,7 @@ void mtk_ecc_get_stats(struct mtk_ecc *ecc, struct mtk_ecc_stats *stats,for (i =0 ; i < sectors; i++) { offset = (i >>2 ) <<2 ; err =readl (ecc->regs +ECC_DECENUM0 + offset); - err = err >> ((i %4 ) *8 ); + err = err >> ((i %4 ) * ecc->caps->err_shift); err &= ecc->caps->err_mask;if (err == ecc->caps->err_mask) {/* uncorrectable errors */
@@ -449,6 +450,7 @@ EXPORT_SYMBOL(mtk_ecc_get_parity_bits);static const struct mtk_ecc_caps mtk_ecc_caps_mt2701 = { .err_mask =0x3f , + .err_shift =8 , .ecc_strength = ecc_strength_mt2701, .ecc_regs = mt2701_ecc_regs, .num_ecc_strength =20 ,
@@ -459,6 +461,7 @@ static const struct mtk_ecc_caps mtk_ecc_caps_mt2701 = {static const struct mtk_ecc_caps mtk_ecc_caps_mt2712 = { .err_mask =0x7f , + .err_shift =8 , .ecc_strength = ecc_strength_mt2712, .ecc_regs = mt2712_ecc_regs, .num_ecc_strength =23 ,
@@ -468,10 +471,11 @@ static const struct mtk_ecc_caps mtk_ecc_caps_mt2712 = { };static const struct mtk_ecc_caps mtk_ecc_caps_mt7622 = { - .err_mask =0x3f , + .err_mask =0x1f , + .err_shift =5 , .ecc_strength = ecc_strength_mt7622, .ecc_regs = mt7622_ecc_regs, - .num_ecc_strength =7 , + .num_ecc_strength =5 , .ecc_mode_shift =4 , .parity_bits =13 , .pg_irq_sel =0 ,
drivers/mtd/nand/raw/qcom_nandc.c +13 -11
@@ -2651,10 +2651,23 @@ static int qcom_nand_attach_chip(struct nand_chip *chip) ecc->engine_type =NAND_ECC_ENGINE_TYPE_ON_HOST ;mtd_set_ooblayout (mtd, &qcom_nand_ooblayout_ops); +/* Free the initially allocated BAM transaction for reading the ONFI params */ +if (nandc->props->is_bam) +free_bam_transaction (nandc); nandc->max_cwperpage = max_t(unsigned int, nandc->max_cwperpage, cwperpage); +/* Now allocate the BAM transaction based on updated max_cwperpage */ +if (nandc->props->is_bam) { + nandc->bam_txn =alloc_bam_transaction (nandc); +if (!nandc->bam_txn) { +dev_err (nandc->dev, +"failed to allocate bam transaction\n" ); +return -ENOMEM ; + } + } +/* * DATA_UD_BYTES varies based on whether the read/write command protects * spare data with ECC too. We protect spare data by default, so we set
@@ -2955,17 +2968,6 @@ static int qcom_nand_host_init_and_register(struct qcom_nand_controller *nandc,if (ret)return ret; -if (nandc->props->is_bam) { -free_bam_transaction (nandc); - nandc->bam_txn =alloc_bam_transaction (nandc); -if (!nandc->bam_txn) { -dev_err (nandc->dev, -"failed to allocate bam transaction\n" ); -nand_cleanup (chip); -return -ENOMEM ; - } - } - ret =mtd_device_parse_register (mtd, probes,NULL ,NULL ,0 );if (ret)nand_cleanup (chip);
drivers/mtd/nand/raw/sh_flctl.c +8 -6
@@ -384,7 +384,8 @@ static int flctl_dma_fifo0_transfer(struct sh_flctl *flctl, unsigned long *buf,dma_addr_t dma_addr;dma_cookie_t cookie;uint32_t reg; -int ret; +int ret =0 ; +unsigned long time_left;if (dir ==DMA_FROM_DEVICE ) { chan = flctl->chan_fifo0_rx;
@@ -425,13 +426,14 @@ static int flctl_dma_fifo0_transfer(struct sh_flctl *flctl, unsigned long *buf, goto out; } - ret = + time_left =wait_for_completion_timeout (&flctl->dma_complete,msecs_to_jiffies (3000 )); -if (ret <=0 ) { +if (time_left ==0 ) {dmaengine_terminate_all (chan);dev_err (&flctl->pdev->dev,"wait_for_completion_timeout\n" ); + ret = -ETIMEDOUT ; } out:
@@ -441,7 +443,7 @@ static int flctl_dma_fifo0_transfer(struct sh_flctl *flctl, unsigned long *buf,dma_unmap_single (chan->device->dev, dma_addr, len, dir); -/* ret > 0 is success */ +/* ret == 0 is success */ return ret; }
@@ -465,7 +467,7 @@ static void read_fiforeg(struct sh_flctl *flctl, int rlen, int offset)/* initiate DMA transfer */ if (flctl->chan_fifo0_rx && rlen >=32 && -flctl_dma_fifo0_transfer (flctl, buf, rlen,DMA_FROM_DEVICE ) >0 ) + !flctl_dma_fifo0_transfer (flctl, buf, rlen,DMA_FROM_DEVICE )) goto convert;/* DMA success */ /* do polling transfer */
@@ -524,7 +526,7 @@ static void write_ec_fiforeg(struct sh_flctl *flctl, int rlen,/* initiate DMA transfer */ if (flctl->chan_fifo0_tx && rlen >=32 && -flctl_dma_fifo0_transfer (flctl, buf, rlen,DMA_TO_DEVICE ) >0 ) + !flctl_dma_fifo0_transfer (flctl, buf, rlen,DMA_TO_DEVICE ))return ;/* DMA success */ /* do polling transfer */
drivers/net/bonding/bond_main.c +9 -4
@@ -3819,14 +3819,19 @@ static bool bond_flow_dissect(struct bonding *bond, struct sk_buff *skb, const vreturn true; } -static u32 bond_ip_hash (u32 hash,struct flow_keys *flow) +static u32 bond_ip_hash (u32 hash,struct flow_keys *flow,int xmit_policy) { hash ^= (__force u32 )flow_get_u32_dst (flow) ^ (__force u32 )flow_get_u32_src (flow); hash ^= (hash >>16 ); hash ^= (hash >>8 ); +/* discard lowest hash bit to deal with the common even ports pattern */ -return hash >>1 ; +if (xmit_policy ==BOND_XMIT_POLICY_LAYER34 || + xmit_policy ==BOND_XMIT_POLICY_ENCAP34 ) +return hash >>1 ; + +return hash; }/* Generate hash based on xmit policy. If @skb is given it is used to linearize
@@ -3856,7 +3861,7 @@ static u32 __bond_xmit_hash(struct bonding *bond, struct sk_buff *skb, const voimemcpy (&hash, &flow.ports.ports,sizeof (hash)); } -return bond_ip_hash (hash, &flow); +return bond_ip_hash (hash, &flow, bond->params.xmit_policy); }/**
@@ -5051,7 +5056,7 @@ static u32 bond_sk_hash_l34(struct sock *sk)/* L4 */ memcpy (&hash, &flow.ports.ports,sizeof (hash));/* L3 */ -return bond_ip_hash (hash, &flow); +return bond_ip_hash (hash, &flow,BOND_XMIT_POLICY_LAYER34 ); } static struct net_device *__bond_sk_get_lower_dev(struct bonding *bond,
drivers/net/dsa/lantiq_gswip.c +0 -3
@@ -1637,9 +1637,6 @@ static void gswip_phylink_mac_config(struct dsa_switch *ds, int port,break ;case PHY_INTERFACE_MODE_RMII : miicfg |=GSWIP_MII_CFG_MODE_RMIIM ; - -/* Configure the RMII clock as output: */ - miicfg |=GSWIP_MII_CFG_RMII_CLK ;break ;case PHY_INTERFACE_MODE_RGMII :case PHY_INTERFACE_MODE_RGMII_ID :
drivers/net/dsa/mv88e6xxx/port_hidden.c +3 -2
@@ -40,8 +40,9 @@ int mv88e6xxx_port_hidden_wait(struct mv88e6xxx_chip *chip) {int bit =__bf_shf (MV88E6XXX_PORT_RESERVED_1A_BUSY ); -return mv88e6xxx_wait_bit (chip,MV88E6XXX_PORT_RESERVED_1A_CTRL_PORT , -MV88E6XXX_PORT_RESERVED_1A , bit,0 ); +return mv88e6xxx_port_wait_bit (chip, +MV88E6XXX_PORT_RESERVED_1A_CTRL_PORT , +MV88E6XXX_PORT_RESERVED_1A , bit,0 ); } int mv88e6xxx_port_hidden_read(struct mv88e6xxx_chip *chip, int block, int port,
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +5 -4
@@ -14153,10 +14153,6 @@ static int bnx2x_eeh_nic_unload(struct bnx2x *bp)/* Stop Tx */ bnx2x_tx_disable (bp); -/* Delete all NAPI objects */ -bnx2x_del_all_napi (bp); -if (CNIC_LOADED (bp)) -bnx2x_del_all_napi_cnic (bp);netdev_reset_tc (bp->dev);del_timer_sync (&bp->timer);
@@ -14261,6 +14257,11 @@ static pci_ers_result_t bnx2x_io_slot_reset(struct pci_dev *pdev)bnx2x_drain_tx_queues (bp);bnx2x_send_unload_req (bp,UNLOAD_RECOVERY );bnx2x_netif_stop (bp,1 ); +bnx2x_del_all_napi (bp); + +if (CNIC_LOADED (bp)) +bnx2x_del_all_napi_cnic (bp); +bnx2x_free_irq (bp);/* Report UNLOAD_DONE to MCP */
drivers/net/ethernet/broadcom/genet/bcmgenet.c +7 -0
@@ -2035,6 +2035,11 @@ static struct sk_buff *bcmgenet_add_tsb(struct net_device *dev,return skb; } +static void bcmgenet_hide_tsb (struct sk_buff *skb) +{ +__skb_pull (skb,sizeof (struct status_64 )); +} +static netdev_tx_t bcmgenet_xmit (struct sk_buff *skb,struct net_device *dev) {struct bcmgenet_priv *priv =netdev_priv (dev);
@@ -2141,6 +2146,8 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev) }GENET_CB (skb)->last_cb = tx_cb_ptr; + +bcmgenet_hide_tsb (skb);skb_tx_timestamp (skb);/* Decrement total BD count and advance our write pointer */
drivers/net/ethernet/freescale/enetc/enetc_qos.c +0 -4
@@ -308,10 +308,6 @@ int enetc_setup_tc_txtime(struct net_device *ndev, void *type_data)if (tc <0 || tc >= priv->num_tx_rings)return -EINVAL ; -/* Do not support TXSTART and TX CSUM offload simutaniously */ -if (ndev->features &NETIF_F_CSUM_MASK ) -return -EBUSY ; -/* TSD and Qbv are mutually exclusive in hardware */ if (enetc_rd (&priv->si->hw,ENETC_QBV_PTGCR_OFFSET ) &ENETC_QBV_TGE )return -EBUSY ;
drivers/net/ethernet/freescale/fec_main.c +1 -1
@@ -3731,7 +3731,7 @@ static int fec_enet_init_stop_mode(struct fec_enet_private *fep, ARRAY_SIZE(out_val));if (ret) {dev_dbg (&fep->pdev->dev,"no stop mode property\n" ); -return ret; + goto out; } fep->stop_gpr.gpr =syscon_node_to_regmap (gpr_np);
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_tqp_stats.c +2 -2
@@ -75,7 +75,7 @@ int hclge_comm_tqps_update_stats(struct hnae3_handle *handle, ret =hclge_comm_cmd_send (hw, &desc,1 );if (ret) {dev_err (&hw->cmq.csq.pdev->dev, -"failed to get tqp stat, ret = %d, tx = %u.\n" , +"failed to get tqp stat, ret = %d, rx = %u.\n" , ret, i);return ret; }
@@ -89,7 +89,7 @@ int hclge_comm_tqps_update_stats(struct hnae3_handle *handle, ret =hclge_comm_cmd_send (hw, &desc,1 );if (ret) {dev_err (&hw->cmq.csq.pdev->dev, -"failed to get tqp stat, ret = %d, rx = %u.\n" , +"failed to get tqp stat, ret = %d, tx = %u.\n" , ret, i);return ret; }
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +9 -0
@@ -5132,6 +5132,13 @@ static void hns3_state_init(struct hnae3_handle *handle)set_bit (HNS3_NIC_STATE_RXD_ADV_LAYOUT_ENABLE , &priv->state); } +static void hns3_state_uninit (struct hnae3_handle *handle) +{ +struct hns3_nic_priv *priv = handle->priv; + +clear_bit (HNS3_NIC_STATE_INITED , &priv->state); +} +static int hns3_client_init (struct hnae3_handle *handle) {struct pci_dev *pdev = handle->pdev;
@@ -5249,7 +5256,9 @@ static int hns3_client_init(struct hnae3_handle *handle)return ret; out_reg_netdev_fail: +hns3_state_uninit (handle);hns3_dbg_uninit (handle); +hns3_client_stop (handle); out_client_start:hns3_free_rx_cpu_rmap (netdev);hns3_nic_uninit_irq (priv);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +20 -11
@@ -94,6 +94,13 @@ static int hclge_send_mbx_msg(struct hclge_vport *vport, u8 *msg, u16 msg_len,enum hclge_comm_cmd_status status;struct hclge_desc desc; +if (msg_len >HCLGE_MBX_MAX_MSG_SIZE ) { +dev_err (&hdev->pdev->dev, +"msg data length(=%u) exceeds maximum(=%u)\n" , + msg_len,HCLGE_MBX_MAX_MSG_SIZE ); +return -EMSGSIZE ; + } + resp_pf_to_vf = (struct hclge_mbx_pf_to_vf_cmd *)desc.data;hclge_cmd_setup_basic_desc (&desc,HCLGEVF_OPC_MBX_PF_TO_VF , false);
@@ -176,7 +183,7 @@ static int hclge_get_ring_chain_from_mbx( ring_num = req->msg.ring_num;if (ring_num >HCLGE_MBX_MAX_RING_CHAIN_PARAM_NUM ) -return -ENOMEM ; +return -EINVAL ;for (i =0 ; i < ring_num; i++) {if (req->msg.param[i].tqp_index >= vport->nic.kinfo.rss_size) {
@@ -587,9 +594,9 @@ static int hclge_set_vf_mtu(struct hclge_vport *vport,return hclge_set_vport_mtu (vport, mtu); } -static void hclge_get_queue_id_in_pf (struct hclge_vport *vport, -struct hclge_mbx_vf_to_pf_cmd *mbx_req, -struct hclge_respond_to_vf_msg *resp_msg) +static int hclge_get_queue_id_in_pf (struct hclge_vport *vport, +struct hclge_mbx_vf_to_pf_cmd *mbx_req, +struct hclge_respond_to_vf_msg *resp_msg) {struct hnae3_handle *handle = &vport->nic;struct hclge_dev *hdev = vport->back;
@@ -599,17 +606,18 @@ static void hclge_get_queue_id_in_pf(struct hclge_vport *vport,if (queue_id >= handle->kinfo.num_tqps) {dev_err (&hdev->pdev->dev,"Invalid queue id(%u) from VF %u\n" , queue_id, mbx_req->mbx_src_vfid); -return ; +return -EINVAL ; } qid_in_pf =hclge_covert_handle_qid_global (&vport->nic, queue_id);memcpy (resp_msg->data, &qid_in_pf,sizeof (qid_in_pf)); resp_msg->len =sizeof (qid_in_pf); +return 0 ; } -static void hclge_get_rss_key (struct hclge_vport *vport, -struct hclge_mbx_vf_to_pf_cmd *mbx_req, -struct hclge_respond_to_vf_msg *resp_msg) +static int hclge_get_rss_key (struct hclge_vport *vport, +struct hclge_mbx_vf_to_pf_cmd *mbx_req, +struct hclge_respond_to_vf_msg *resp_msg) {#define HCLGE_RSS_MBX_RESP_LEN 8struct hclge_dev *hdev = vport->back;
@@ -627,13 +635,14 @@ static void hclge_get_rss_key(struct hclge_vport *vport,dev_warn (&hdev->pdev->dev,"failed to get the rss hash key, the index(%u) invalid !\n" , index); -return ; +return -EINVAL ; }memcpy (resp_msg->data, &rss_cfg->rss_hash_key[index *HCLGE_RSS_MBX_RESP_LEN ],HCLGE_RSS_MBX_RESP_LEN ); resp_msg->len =HCLGE_RSS_MBX_RESP_LEN ; +return 0 ; }static void hclge_link_fail_parse (struct hclge_dev *hdev,u8 link_fail_code)
@@ -809,10 +818,10 @@ void hclge_mbx_handler(struct hclge_dev *hdev) "VF fail(%d) to set mtu\n", ret);break ;case HCLGE_MBX_GET_QID_IN_PF : -hclge_get_queue_id_in_pf (vport, req, &resp_msg); + ret =hclge_get_queue_id_in_pf (vport, req, &resp_msg);break ;case HCLGE_MBX_GET_RSS_KEY : -hclge_get_rss_key (vport, req, &resp_msg); + ret =hclge_get_rss_key (vport, req, &resp_msg);break ;case HCLGE_MBX_GET_LINK_MODE :hclge_get_link_mode (vport, req);
drivers/net/ethernet/ibm/ibmvnic.c +35 -94
192 lines not on this page · raw message
drivers/net/ethernet/ibm/ibmvnic.h +0 -6
@@ -41,11 +41,6 @@#define IBMVNIC_RESET_DELAY 100 -static const char ibmvnic_priv_flags[][ETH_GSTRING_LEN ] = { -#define IBMVNIC_USE_SERVER_MAXES 0x1 -"use-server-maxes" -}; -struct ibmvnic_login_buffer {__be32 len;__be32 version;
@@ -883,7 +878,6 @@ struct ibmvnic_adapter {struct ibmvnic_control_ip_offload_buffer ip_offload_ctrl;dma_addr_t ip_offload_ctrl_tok;u32 msg_enable; -u32 priv_flags;/* Vital Product Data (VPD) */ struct ibmvnic_vpd *vpd;
drivers/net/ethernet/intel/ice/ice_main.c +3 -0
@@ -6662,12 +6662,15 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type)dev_dbg (dev,"rebuilding PF after reset_type=%d\n" , reset_type); +#define ICE_EMP_RESET_SLEEP_MS 5000if (reset_type ==ICE_RESET_EMPR ) {/* If an EMP reset has occurred, any previously pending flash * update will have completed. We no longer know whether or * not the NVM update EMP reset is restricted. */ pf->fw_emp_reset_disabled = false; + +msleep (ICE_EMP_RESET_SLEEP_MS ); } err =ice_init_all_ctrlq (hw);
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c +2 -1
@@ -903,7 +903,8 @@ int ixgbe_ipsec_vf_add_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)/* Tx IPsec offload doesn't seem to work on this * device, so block these requests for now. */ -if (!(sam->flags &XFRM_OFFLOAD_INBOUND )) { + sam->flags = sam->flags & ~XFRM_OFFLOAD_IPV6 ; +if (sam->flags !=XFRM_OFFLOAD_INBOUND ) { err = -EOPNOTSUPP ; goto err_out; }
drivers/net/ethernet/microchip/lan966x/lan966x_mac.c +2 -2
@@ -346,7 +346,7 @@ static void lan966x_mac_irq_process(struct lan966x *lan966x, u32 row,lan966x_mac_process_raw_entry (&raw_entries[column], mac, &vid, &dest_idx); -if (WARN_ON (dest_idx > lan966x->num_phys_ports)) +if (WARN_ON (dest_idx >= lan966x->num_phys_ports))continue ;/* If the entry in SW is found, then there is nothing
@@ -393,7 +393,7 @@ static void lan966x_mac_irq_process(struct lan966x *lan966x, u32 row,lan966x_mac_process_raw_entry (&raw_entries[column], mac, &vid, &dest_idx); -if (WARN_ON (dest_idx > lan966x->num_phys_ports)) +if (WARN_ON (dest_idx >= lan966x->num_phys_ports))continue ; mac_entry =lan966x_mac_alloc_entry (mac, vid, dest_idx);
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c +7 -5
@@ -65,8 +65,9 @@ static void socfpga_dwmac_fix_mac_speed(void *priv, unsigned int speed)struct phy_device *phy_dev = ndev->phydev;u32 val; -writew (SGMII_ADAPTER_DISABLE , - sgmii_adapter_base +SGMII_ADAPTER_CTRL_REG ); +if (sgmii_adapter_base) +writew (SGMII_ADAPTER_DISABLE , + sgmii_adapter_base +SGMII_ADAPTER_CTRL_REG );if (splitter_base) { val =readl (splitter_base +EMAC_SPLITTER_CTRL_REG );
@@ -88,10 +89,11 @@ static void socfpga_dwmac_fix_mac_speed(void *priv, unsigned int speed)writel (val, splitter_base +EMAC_SPLITTER_CTRL_REG ); } -writew (SGMII_ADAPTER_ENABLE , - sgmii_adapter_base +SGMII_ADAPTER_CTRL_REG ); -if (phy_dev) +if (phy_dev && sgmii_adapter_base) { +writew (SGMII_ADAPTER_ENABLE , + sgmii_adapter_base +SGMII_ADAPTER_CTRL_REG );tse_pcs_fix_mac_speed (&dwmac->pcs, phy_dev, speed); + } }static int socfpga_dwmac_parse_data (struct socfpga_dwmac *dwmac,struct device *dev)
drivers/net/hippi/rrunner.c +2 -0
@@ -1355,7 +1355,9 @@ static int rr_close(struct net_device *dev) rrpriv->fw_running =0 ; +spin_unlock_irqrestore (&rrpriv->lock, flags);del_timer_sync (&rrpriv->timer); +spin_lock_irqsave (&rrpriv->lock, flags);writel (0 , ®s->TxPi);writel (0 , ®s->IpRxPi);
drivers/net/phy/marvell10g.c +1 -1
@@ -880,7 +880,7 @@ static int mv3310_read_status_copper(struct phy_device *phydev) cssr1 =phy_read_mmd (phydev,MDIO_MMD_PCS ,MV_PCS_CSSR1 );if (cssr1 <0 ) -return val; +return cssr1;/* If the link settings are not resolved, mark the link down */ if (!(cssr1 &MV_PCS_CSSR1_RESOLVED )) {
drivers/net/virtio_net.c +19 -1
@@ -978,6 +978,24 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,* xdp.data_meta were adjusted */ len = xdp.data_end - xdp.data + vi->hdr_len + metasize; + +/* recalculate headroom if xdp.data or xdp_data_meta +* were adjusted, note that offset should always point +* to the start of the reserved bytes for virtio_net +* header which are followed by xdp.data, that means +* that offset is equal to the headroom (when buf is +* starting at the beginning of the page, otherwise +* there is a base offset inside the page) but it's used +* with a different starting point (buf start) than +* xdp.data (buf start + vnet hdr size). If xdp.data or +* data_meta were adjusted by the xdp prog then the +* headroom size has changed and so has the offset, we +* can use data_hard_start, which points at buf start + +* vnet hdr size, to calculate the new headroom and use +* it later to compute buf start in page_to_skb() +*/ + headroom = xdp.data - xdp.data_hard_start - metasize; +/* We can only create skb based on xdp_page. */ if (unlikely (xdp_page != page)) {rcu_read_unlock ();
@@ -985,7 +1003,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, head_skb =page_to_skb (vi, rq, xdp_page, offset, len,PAGE_SIZE , false, metasize, -VIRTIO_XDP_HEADROOM ); + headroom);return head_skb; }break ;
drivers/net/wireguard/device.c +2 -1
@@ -19,6 +19,7 @@#include <linux/if_arp.h> #include <linux/icmp.h> #include <linux/suspend.h> +#include <net/dst_metadata.h> #include <net/icmp.h> #include <net/rtnetlink.h> #include <net/ip_tunnels.h>
@@ -152,7 +153,7 @@ static netdev_tx_t wg_xmit(struct sk_buff *skb, struct net_device *dev) goto err_peer; } - mtu =skb_dst (skb) ?dst_mtu (skb_dst (skb)) : dev->mtu; + mtu =skb_valid_dst (skb) ?dst_mtu (skb_dst (skb)) : dev->mtu;__skb_queue_head_init (&packets);if (!skb_is_gso (skb)) {
drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.c +12 -8
@@ -414,19 +414,19 @@ static int phy_g12a_usb3_pcie_probe(struct platform_device *pdev) ret =clk_prepare_enable (priv->clk_ref);if (ret) - goto err_disable_clk_ref; +return ret; priv->reset =devm_reset_control_array_get_exclusive (dev); -if (IS_ERR (priv->reset)) -return PTR_ERR (priv->reset); +if (IS_ERR (priv->reset)) { + ret =PTR_ERR (priv->reset); + goto err_disable_clk_ref; + } priv->phy =devm_phy_create (dev, np, &phy_g12a_usb3_pcie_ops);if (IS_ERR (priv->phy)) { ret =PTR_ERR (priv->phy); -if (ret != -EPROBE_DEFER ) -dev_err (dev,"failed to create PHY\n" ); - -return ret; +dev_err_probe (dev, ret,"failed to create PHY\n" ); + goto err_disable_clk_ref; }phy_set_drvdata (priv->phy, priv);
@@ -434,8 +434,12 @@ static int phy_g12a_usb3_pcie_probe(struct platform_device *pdev) phy_provider =devm_of_phy_provider_register (dev, phy_g12a_usb3_pcie_xlate); +if (IS_ERR (phy_provider)) { + ret =PTR_ERR (phy_provider); + goto err_disable_clk_ref; + } -return PTR_ERR_OR_ZERO (phy_provider); +return 0 ; err_disable_clk_ref:clk_disable_unprepare (priv->clk_ref);
drivers/phy/motorola/phy-mapphone-mdm6600.c +2 -1
@@ -629,7 +629,8 @@ static int phy_mdm6600_probe(struct platform_device *pdev) cleanup:if (error <0 )phy_mdm6600_device_power_off (ddata); - +pm_runtime_disable (ddata->dev); +pm_runtime_dont_use_autosuspend (ddata->dev);return error; }
drivers/phy/samsung/phy-exynos5250-sata.c +15 -6
@@ -187,6 +187,7 @@ static int exynos_sata_phy_probe(struct platform_device *pdev)return -EINVAL ; sata_phy->client =of_find_i2c_device_by_node (node); +of_node_put (node);if (!sata_phy->client)return -EPROBE_DEFER ;
@@ -195,20 +196,21 @@ static int exynos_sata_phy_probe(struct platform_device *pdev) sata_phy->phyclk =devm_clk_get (dev,"sata_phyctrl" );if (IS_ERR (sata_phy->phyclk)) {dev_err (dev,"failed to get clk for PHY\n" ); -return PTR_ERR (sata_phy->phyclk); + ret =PTR_ERR (sata_phy->phyclk); + goto put_dev; } ret =clk_prepare_enable (sata_phy->phyclk);if (ret <0 ) {dev_err (dev,"failed to enable source clk\n" ); -return ret; + goto put_dev; } sata_phy->phy =devm_phy_create (dev,NULL , &exynos_sata_phy_ops);if (IS_ERR (sata_phy->phy)) { -clk_disable_unprepare (sata_phy->phyclk);dev_err (dev,"failed to create PHY\n" ); -return PTR_ERR (sata_phy->phy); + ret =PTR_ERR (sata_phy->phy); + goto clk_disable; }phy_set_drvdata (sata_phy->phy, sata_phy);
@@ -216,11 +218,18 @@ static int exynos_sata_phy_probe(struct platform_device *pdev) phy_provider =devm_of_phy_provider_register (dev, of_phy_simple_xlate);if (IS_ERR (phy_provider)) { -clk_disable_unprepare (sata_phy->phyclk); -return PTR_ERR (phy_provider); + ret =PTR_ERR (phy_provider); + goto clk_disable; }return 0 ; + +clk_disable: +clk_disable_unprepare (sata_phy->phyclk); +put_dev: +put_device (&sata_phy->client->dev); + +return ret; }static const struct of_device_id exynos_sata_phy_of_match[] = {
drivers/phy/ti/phy-am654-serdes.c +1 -1
@@ -838,7 +838,7 @@ static int serdes_am654_probe(struct platform_device *pdev) clk_err:of_clk_del_provider (node); - +pm_runtime_disable (dev);return ret; }
drivers/phy/ti/phy-omap-usb2.c +1 -1
@@ -215,7 +215,7 @@ static int omap_usb2_enable_clocks(struct omap_usb *phy)return 0 ; err1: -clk_disable (phy->wkupclk); +clk_disable_unprepare (phy->wkupclk); err0:return ret;
drivers/pinctrl/mediatek/Kconfig +1 -0
@@ -30,6 +30,7 @@ config PINCTRL_MTK_MOORE select GENERIC_PINMUX_FUNCTIONS select GPIOLIB select OF_GPIO + select EINT_MTK select PINCTRL_MTK_V2 config PINCTRL_MTK_PARIS
drivers/pinctrl/pinctrl-pistachio.c +3 -3
@@ -1374,10 +1374,10 @@ static int pistachio_gpio_register(struct pistachio_pinctrl *pctl) } irq =irq_of_parse_and_map (child,0 ); -if (irq <0 ) { -dev_err (pctl->dev,"No IRQ for bank %u: %d\n" , i, irq); +if (!irq) { +dev_err (pctl->dev,"No IRQ for bank %u\n" , i);of_node_put (child); - ret = irq; + ret = -EINVAL ; goto err; }
drivers/pinctrl/pinctrl-rockchip.c +30 -15
52 lines not on this page · raw message
drivers/thermal/intel/int340x_thermal/int3400_thermal.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/tty/n_gsm.c +276 -201
477 lines not on this page · raw message
drivers/usb/gadget/function/uvc_queue.c +2 -0
Lines of this file are not shown. View the raw message.
fs/zonefs/super.c +41 -5
46 lines not on this page · raw message
lib/hexdump.c +31 -10
41 lines not on this page · raw message
net/bluetooth/hci_event.c +36 -29
65 lines not on this page · raw message
net/netfilter/nf_conntrack_proto_tcp.c +6 -15
Lines of this file are not shown. View the raw message.
net/netfilter/nf_conntrack_standalone.c +1 -1
Lines of this file are not shown. View the raw message.
net/netfilter/nft_socket.c +38 -14
52 lines not on this page · raw message
sound/soc/intel/common/soc-acpi-intel-tgl-match.c +2 -2
Lines of this file are not shown. View the raw message.
tools/objtool/elf.c +166 -23
189 lines not on this page · raw message
tools/perf/arch/powerpc/util/machine.c deleted +0 -25
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vm/mremap_test.c +79 -4
83 lines not on this page · 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.