Linux 5.15.38
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.38 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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/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/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/blk-iocost.c | 12 drivers/acpi/processor_idle.c | 8 drivers/base/arch_topology.c | 2 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 | 27 +- drivers/cpufreq/sun50i-cpufreq-nvmem.c | 4 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/dac/ad5446.c | 2 drivers/iio/dac/ad5592r-base.c | 2 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/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/fec_main.c | 2 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/ixgbe/ixgbe_ipsec.c | 3 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/samsung/Kconfig | 11 drivers/pinctrl/stm32/pinctrl-stm32.c | 23 + drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 4 drivers/tty/n_gsm.c | 209 ++++++++-------- 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/tree-log.c | 1 fs/ceph/caps.c | 4 fs/cifs/smb2ops.c | 8 fs/ext4/super.c | 19 - fs/gfs2/file.c | 33 +- fs/io_uring.c | 4 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/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/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/netfilter/ipvs/ip_vs_conn.c | 2 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/soc/codecs/wm8731.c | 19 - sound/soc/intel/common/soc-acpi-intel-tgl-match.c | 4 tools/objtool/check.c | 8 tools/objtool/elf.c | 189 ++++++++++++-- tools/objtool/include/objtool/elf.h | 4 tools/perf/arch/arm64/util/Build | 1 tools/perf/arch/arm64/util/machine.c | 28 -- 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 | 3 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 ++++++ 167 files changed, 1476 insertions(+), 902 deletions(-)
Adam Ford (2):
ARM: dts: am3517-evm: Fix misc pinmuxing
ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
Alexey Kardashevskiy (2):
powerpc/perf: Fix 32bit compile
powerpc/64: Add UADDR64 relocation support
Andreas Gruenbacher (4):
gfs2: Prevent endless loops in gfs2_file_buffered_write
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
Christophe JAILLET (1):
bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
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 Vacura (1):
usb: gadget: uvc: Fix crash when encoding data for usb request
Daniel Starke (15):
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 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 software flow control handling
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"
David Yat Sin (1):
drm/amdkfd: Fix GWS queue count
Dinh Nguyen (1):
net: ethernet: stmmac: fix write to sgmii_adapter_base
Dmitry Baryshkov (1):
cpufreq: qcom-hw: fix the race between LMH worker and cpuhp
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 (1):
btrfs: fix leaked plug after failure syncing log on zoned filesystems
Florian Westphal (1):
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
Greg Kroah-Hartman (1):
Linux 5.15.38
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()
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
Imre Deak (1):
drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses
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
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
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
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
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
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
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
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
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 (1):
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 (1):
iocost: don't reset the inuse weight of under-weighted debtors
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
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 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
Weitao Wang (1):
USB: Fix xhci event ring dequeue pointer ERDP update issue
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 (2):
iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
ASoC: wm8731: Disable the regulator when probing fails
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 = 15 -SUBLEVEL = 37 +SUBLEVEL = 38 EXTRAVERSION = NAME = Trick or Treat
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
@@ -403,7 +403,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>;
@@ -516,8 +518,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 >; };
@@ -810,6 +810,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
@@ -18,7 +18,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 HAVE_S3C2410_I2C if I2C
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
@@ -263,7 +263,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>,
@@ -277,7 +277,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>,
@@ -291,7 +291,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>,
@@ -307,7 +307,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>,
@@ -364,7 +364,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/imx8qm.dtsi +1 -1
@@ -155,7 +155,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
@@ -275,9 +275,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
@@ -132,10 +132,12 @@ extern void load_ucode_ap(void);void reload_early_microcode (void );extern bool get_builtin_firmware (struct cpio_data *cd,const char *name);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 ) { }static inline bool get_builtin_firmware (struct cpio_data *cd,const char *name) {return false; }#endif
arch/x86/kernel/cpu/microcode/core.c +3 -3
@@ -775,9 +775,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;
@@ -789,7 +789,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
@@ -121,7 +121,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
@@ -472,7 +472,6 @@ static __init void xen_setup_pci_msi(void) 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;
@@ -486,6 +485,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/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);
drivers/acpi/processor_idle.c +2 -6
@@ -95,11 +95,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}, {}, };
@@ -797,7 +792,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/base/arch_topology.c +1 -1
@@ -609,7 +609,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/bus/mhi/pci_generic.c +2 -0
@@ -1020,6 +1020,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);
@@ -1045,6 +1046,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
@@ -3162,13 +3162,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 +20 -7
@@ -24,12 +24,16 @@#define CLK_HW_DIV 2#define LUT_TURBO_IND 1 +#define GT_IRQ_STATUS BIT(2) +#define HZ_PER_KHZ 1000struct qcom_cpufreq_soc_data {u32 reg_enable; +u32 reg_domain_state;u32 reg_freq_lut;u32 reg_volt_lut; +u32 reg_intr_clr;u32 reg_current_vote;u32 reg_perf_state;u8 lut_row_size;
@@ -266,28 +270,31 @@ static void qcom_get_related_cpus(int index, struct cpumask *m) } } -static unsigned int qcom_lmh_get_throttle_freq (struct qcom_cpufreq_data *data) +static unsigned long qcom_lmh_get_throttle_freq (struct qcom_cpufreq_data *data) { -unsigned int val =readl_relaxed (data->base + data->soc_data->reg_current_vote); +unsigned int lval; + +if (data->soc_data->reg_current_vote) + lval =readl_relaxed (data->base + data->soc_data->reg_current_vote) &0x3ff ; +else + lval =readl_relaxed (data->base + data->soc_data->reg_domain_state) &0xff ; -return (val &0x3FF ) *19200 ; +return lval * xo_rate; }static void qcom_lmh_dcvs_notify (struct qcom_cpufreq_data *data) {unsigned long max_capacity, capacity, freq_hz, throttled_freq;struct cpufreq_policy *policy = data->policy; -int cpu =cpumask_first (policy->cpus); +int cpu =cpumask_first (policy->related_cpus);struct device *dev =get_cpu_device (cpu);struct dev_pm_opp *opp; -unsigned int freq;/* * Get the h/w throttled frequency, normalize it using the * registered opp table and use it to calculate thermal pressure. */ - freq =qcom_lmh_get_throttle_freq (data); - freq_hz = freq *HZ_PER_KHZ ; + freq_hz =qcom_lmh_get_throttle_freq (data); opp =dev_pm_opp_find_freq_floor (dev, &freq_hz);if (IS_ERR (opp) &&PTR_ERR (opp) == -ERANGE )
@@ -345,6 +352,10 @@ static irqreturn_t qcom_lmh_dcvs_handle_irq(int irq, void *data)disable_irq_nosync (c_data->throttle_irq);schedule_delayed_work (&c_data->throttle_work,0 ); +if (c_data->soc_data->reg_intr_clr) +writel_relaxed (GT_IRQ_STATUS , + c_data->base + c_data->soc_data->reg_intr_clr); +return IRQ_HANDLED ; }
@@ -359,8 +370,10 @@ static const struct qcom_cpufreq_soc_data qcom_soc_data = {static const struct qcom_cpufreq_soc_data epss_soc_data = { .reg_enable =0x0 , + .reg_domain_state =0x20 , .reg_freq_lut =0x100 , .reg_volt_lut =0x200 , + .reg_intr_clr =0x308 , .reg_perf_state =0x320 , .lut_row_size =4 , };
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/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
@@ -1428,6 +1428,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
@@ -96,6 +96,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)
@@ -125,6 +133,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 ;
@@ -373,14 +399,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
@@ -7458,7 +7458,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/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/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
@@ -389,6 +389,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/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
@@ -30,6 +30,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_device *spi;struct mutex lock;
@@ -38,6 +40,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 */
@@ -60,8 +63,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 5 msec for a page write, sometimes 20 msec; * it's important to recover from write timeouts. */
@@ -76,7 +77,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 ];
@@ -90,12 +90,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 >= (1U << (at25->addrlen *8 ))) instr |=AT25_INSTR_BIT3 ; + +mutex_lock (&at25->lock); + *cp++ = instr;/* 8/16/24-bit address is written MSB first */
@@ -114,7 +117,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);
@@ -122,8 +125,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. * * REVISIT that's potentially a problem with large chips, if
@@ -151,7 +152,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);
@@ -161,6 +162,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
@@ -2641,10 +2641,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
@@ -2945,17 +2958,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
@@ -3817,14 +3817,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
@@ -3854,7 +3859,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); }/**
@@ -5012,7 +5017,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
@@ -1663,9 +1663,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
@@ -14158,10 +14158,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);
@@ -14266,6 +14262,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
@@ -1991,6 +1991,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);
@@ -2097,6 +2102,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/fec_main.c +1 -1
@@ -3726,7 +3726,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_enet.c +9 -0
@@ -5092,6 +5092,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;
@@ -5209,7 +5216,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
@@ -93,6 +93,13 @@ static int hclge_send_mbx_msg(struct hclge_vport *vport, u8 *msg, u16 msg_len,enum hclge_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);
@@ -175,7 +182,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) {
@@ -586,9 +593,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;
@@ -598,17 +605,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;
@@ -624,13 +632,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, &hdev->vport[0 ].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)
@@ -805,10 +814,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
@@ -43,11 +43,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;
@@ -885,7 +880,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/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/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
@@ -1353,7 +1353,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
@@ -789,7 +789,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
@@ -965,6 +965,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 ();
@@ -972,7 +990,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
125 lines not on this page · raw message
drivers/pinctrl/samsung/Kconfig +4 -7
@@ -4,14 +4,13 @@ # config PINCTRL_SAMSUNG bool - depends on OF_GPIO + select GPIOLIB select PINMUX select PINCONF config PINCTRL_EXYNOS bool "Pinctrl common driver part for Samsung Exynos SoCs" - depends on OF_GPIO - depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST + depends on ARCH_EXYNOS || ARCH_S5PV210 || (COMPILE_TEST && OF) select PINCTRL_SAMSUNG select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210) select PINCTRL_EXYNOS_ARM64 if ARM64 && ARCH_EXYNOS
@@ -26,12 +25,10 @@ config PINCTRL_EXYNOS_ARM64 config PINCTRL_S3C24XX bool "Samsung S3C24XX SoC pinctrl driver" - depends on OF_GPIO - depends on ARCH_S3C24XX || COMPILE_TEST + depends on ARCH_S3C24XX || (COMPILE_TEST && OF) select PINCTRL_SAMSUNG config PINCTRL_S3C64XX bool "Samsung S3C64XX SoC pinctrl driver" - depends on OF_GPIO - depends on ARCH_S3C64XX || COMPILE_TEST + depends on ARCH_S3C64XX || (COMPILE_TEST && OF) select PINCTRL_SAMSUNG
drivers/pinctrl/stm32/pinctrl-stm32.c +21 -2
@@ -225,6 +225,13 @@ static void stm32_gpio_free(struct gpio_chip *chip, unsigned offset)pinctrl_gpio_free (chip->base + offset); } +static int stm32_gpio_get_noclk (struct gpio_chip *chip,unsigned int offset) +{ +struct stm32_gpio_bank *bank =gpiochip_get_data (chip); + +return !!(readl_relaxed (bank->base +STM32_GPIO_IDR ) &BIT (offset)); +} +static int stm32_gpio_get (struct gpio_chip *chip,unsigned offset) {struct stm32_gpio_bank *bank =gpiochip_get_data (chip);
@@ -232,7 +239,7 @@ static int stm32_gpio_get(struct gpio_chip *chip, unsigned offset)clk_enable (bank->clk); - ret = !!(readl_relaxed (bank->base +STM32_GPIO_IDR ) &BIT (offset)); + ret =stm32_gpio_get_noclk (chip, offset);clk_disable (bank->clk);
@@ -311,8 +318,12 @@ static void stm32_gpio_irq_trigger(struct irq_data *d)struct stm32_gpio_bank *bank = d->domain->host_data;int level; +/* Do not access the GPIO if this is not LEVEL triggered IRQ. */ +if (!(bank->irq_type[d->hwirq] &IRQ_TYPE_LEVEL_MASK )) +return ; +/* If level interrupt type then retrig */ - level =stm32_gpio_get (&bank->gpio_chip, d->hwirq); + level =stm32_gpio_get_noclk (&bank->gpio_chip, d->hwirq);if ((level ==0 && bank->irq_type[d->hwirq] ==IRQ_TYPE_LEVEL_LOW ) || (level ==1 && bank->irq_type[d->hwirq] ==IRQ_TYPE_LEVEL_HIGH ))irq_chip_retrigger_hierarchy (d);
@@ -354,6 +365,7 @@ static int stm32_gpio_irq_request_resources(struct irq_data *irq_data) {struct stm32_gpio_bank *bank = irq_data->domain->host_data;struct stm32_pinctrl *pctl =dev_get_drvdata (bank->gpio_chip.parent); +unsigned long flags;int ret; ret =stm32_gpio_direction_input (&bank->gpio_chip, irq_data->hwirq);
@@ -367,6 +379,10 @@ static int stm32_gpio_irq_request_resources(struct irq_data *irq_data)return ret; } + flags =irqd_get_trigger_type (irq_data); +if (flags &IRQ_TYPE_LEVEL_MASK ) +clk_enable (bank->clk); +return 0 ; }
@@ -374,6 +390,9 @@ static void stm32_gpio_irq_release_resources(struct irq_data *irq_data) {struct stm32_gpio_bank *bank = irq_data->domain->host_data; +if (bank->irq_type[irq_data->hwirq] &IRQ_TYPE_LEVEL_MASK ) +clk_disable (bank->clk); +gpiochip_unlock_as_irq (&bank->gpio_chip, irq_data->hwirq); }
drivers/thermal/intel/int340x_thermal/int3400_thermal.c +2 -2
@@ -67,7 +67,7 @@ static int evaluate_odvp(struct int3400_thermal_priv *priv);struct odvp_attr {int odvp;struct int3400_thermal_priv *priv; -struct kobj_attribute attr; +struct device_attribute attr; }; static ssize_t data_vault_read(struct file *file, struct kobject *kobj,
@@ -272,7 +272,7 @@ static int int3400_thermal_run_osc(acpi_handle handle,return result; } -static ssize_t odvp_show (struct kobject *kobj,struct kobj_attribute *attr, +static ssize_t odvp_show (struct device *dev,struct device_attribute *attr,char *buf) {struct odvp_attr *odvp_attr;
drivers/tty/n_gsm.c +109 -100
354 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/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/arm64/util/machine.c deleted +0 -28
Lines of this file are not shown. View the 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.