Linux 5.4.232
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.232 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h | 2 arch/parisc/kernel/firmware.c | 5 arch/parisc/kernel/ptrace.c | 15 arch/powerpc/perf/imc-pmu.c | 14 arch/riscv/Makefile | 3 arch/riscv/mm/cacheflush.c | 4 arch/s390/boot/compressed/decompressor.c | 2 arch/x86/kvm/x86.c | 3 drivers/ata/libata-core.c | 2 drivers/bus/sunxi-rsb.c | 8 drivers/firewire/core-cdev.c | 4 drivers/firmware/efi/efi.c | 2 drivers/firmware/efi/memattr.c | 2 drivers/fpga/stratix10-soc.c | 4 drivers/fsi/fsi-sbefifo.c | 6 drivers/i2c/busses/i2c-rk3x.c | 44 drivers/iio/accel/hid-sensor-accel-3d.c | 1 drivers/iio/adc/berlin2-adc.c | 4 drivers/iio/adc/stm32-dfsdm-adc.c | 1 drivers/iio/adc/twl6030-gpadc.c | 32 drivers/infiniband/hw/hfi1/file_ops.c | 7 drivers/infiniband/hw/usnic/usnic_uiom.c | 8 drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 drivers/input/serio/i8042-x86ia64io.h | 1188 ++++---- drivers/iommu/amd_iommu.c | 5 drivers/iommu/arm-smmu-v3.c | 2 drivers/iommu/arm-smmu.c | 2 drivers/iommu/dma-iommu.c | 6 drivers/iommu/exynos-iommu.c | 2 drivers/iommu/intel-iommu.c | 2 drivers/iommu/iommu.c | 43 drivers/iommu/ipmmu-vmsa.c | 2 drivers/iommu/msm_iommu.c | 2 drivers/iommu/mtk_iommu.c | 2 drivers/iommu/mtk_iommu_v1.c | 2 drivers/iommu/omap-iommu.c | 2 drivers/iommu/qcom_iommu.c | 2 drivers/iommu/rockchip-iommu.c | 2 drivers/iommu/s390-iommu.c | 2 drivers/iommu/tegra-gart.c | 2 drivers/iommu/tegra-smmu.c | 2 drivers/iommu/virtio-iommu.c | 2 drivers/mmc/core/sdio_bus.c | 17 drivers/mmc/core/sdio_cis.c | 12 drivers/mmc/host/mmc_spi.c | 8 drivers/net/bonding/bond_debugfs.c | 2 drivers/net/ethernet/broadcom/bgmac-bcma.c | 6 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 drivers/net/ethernet/intel/i40e/i40e_main.c | 4 drivers/net/ethernet/intel/ice/ice_main.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 28 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 15 drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 2 drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 3 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 drivers/net/phy/meson-gxl.c | 4 drivers/net/usb/kalmia.c | 8 drivers/net/usb/plusb.c | 4 drivers/net/virtio_net.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 17 drivers/nvme/host/pci.c | 3 drivers/nvme/target/fc.c | 4 drivers/nvmem/core.c | 3 drivers/pinctrl/aspeed/pinctrl-aspeed.c | 2 drivers/pinctrl/intel/pinctrl-intel.c | 16 drivers/pinctrl/pinctrl-single.c | 2 drivers/scsi/iscsi_tcp.c | 9 drivers/scsi/scsi_scan.c | 7 drivers/target/target_core_file.c | 4 drivers/target/target_core_tmr.c | 4 drivers/tty/serial/8250/8250_dma.c | 26 drivers/tty/vt/vc_screen.c | 9 drivers/usb/core/quirks.c | 3 drivers/usb/dwc3/dwc3-qcom.c | 10 drivers/usb/gadget/function/f_fs.c | 4 drivers/usb/typec/altmodes/displayport.c | 8 drivers/video/fbdev/core/fbcon.c | 7 drivers/video/fbdev/smscufx.c | 46 drivers/watchdog/diag288_wdt.c | 15 drivers/xen/pvcalls-back.c | 8 fs/aio.c | 4 fs/btrfs/volumes.c | 18 fs/btrfs/zlib.c | 2 fs/ceph/mds_client.c | 6 fs/f2fs/gc.c | 18 fs/nilfs2/ioctl.c | 7 fs/nilfs2/super.c | 9 fs/nilfs2/the_nilfs.c | 8 fs/proc/task_mmu.c | 4 fs/squashfs/squashfs_fs.h | 2 fs/squashfs/squashfs_fs_sb.h | 2 fs/squashfs/xattr.h | 4 fs/squashfs/xattr_id.c | 2 fs/xfs/libxfs/xfs_defer.c | 358 +- fs/xfs/libxfs/xfs_defer.h | 49 fs/xfs/libxfs/xfs_inode_fork.c | 2 fs/xfs/libxfs/xfs_trans_inode.c | 2 fs/xfs/xfs_aops.c | 4 fs/xfs/xfs_bmap_item.c | 238 - fs/xfs/xfs_bmap_item.h | 3 fs/xfs/xfs_extfree_item.c | 175 - fs/xfs/xfs_extfree_item.h | 18 fs/xfs/xfs_icreate_item.c | 1 fs/xfs/xfs_inode.c | 4 fs/xfs/xfs_inode_item.c | 2 fs/xfs/xfs_inode_item.h | 4 fs/xfs/xfs_iwalk.c | 27 fs/xfs/xfs_log.c | 68 fs/xfs/xfs_log.h | 3 fs/xfs/xfs_log_cil.c | 8 fs/xfs/xfs_log_recover.c | 160 - fs/xfs/xfs_mount.c | 3 fs/xfs/xfs_refcount_item.c | 173 - fs/xfs/xfs_refcount_item.h | 3 fs/xfs/xfs_rmap_item.c | 161 - fs/xfs/xfs_rmap_item.h | 3 fs/xfs/xfs_stats.c | 4 fs/xfs/xfs_stats.h | 1 fs/xfs/xfs_super.c | 8 fs/xfs/xfs_trace.h | 1 fs/xfs/xfs_trans.h | 10 include/linux/hugetlb.h | 18 include/linux/iommu.h | 21 include/linux/stmmac.h | 1 include/net/sock.h | 13 kernel/sched/psi.c | 7 kernel/trace/trace.c | 3 mm/memblock.c | 8 mm/mempolicy.c | 3 mm/swapfile.c | 13 net/bridge/br_netfilter_hooks.c | 1 net/can/j1939/address-claim.c | 40 net/can/j1939/transport.c | 4 net/core/dev.c | 2 net/core/filter.c | 3 net/dccp/ipv6.c | 7 net/ipv6/datagram.c | 2 net/ipv6/tcp_ipv6.c | 11 net/mpls/af_mpls.c | 4 net/netfilter/nft_tproxy.c | 8 net/netrom/af_netrom.c | 5 net/openvswitch/datapath.c | 12 net/rds/message.c | 6 net/rose/af_rose.c | 8 net/sched/sch_htb.c | 5 net/sctp/diag.c | 4 net/sunrpc/xprtrdma/verbs.c | 4 net/x25/af_x25.c | 6 net/xfrm/xfrm_input.c | 3 sound/pci/hda/patch_conexant.c | 1 sound/pci/hda/patch_realtek.c | 2 sound/pci/hda/patch_via.c | 3 sound/pci/lx6464es/lx_core.c | 11 sound/soc/codecs/cs42l56.c | 6 sound/soc/intel/boards/bytcr_rt5651.c | 2 sound/soc/sof/intel/hda-dai.c | 8 sound/synth/emux/emux_nrpn.c | 3 tools/testing/selftests/bpf/verifier/search_pruning.c | 36 tools/testing/selftests/net/fib_tests.sh | 1727 ++++++++++++ tools/testing/selftests/net/forwarding/lib.sh | 4 tools/testing/selftests/net/udpgso_bench.sh | 24 tools/testing/selftests/net/udpgso_bench_rx.c | 4 tools/testing/selftests/net/udpgso_bench_tx.c | 36 tools/virtio/linux/bug.h | 8 tools/virtio/linux/build_bug.h | 7 tools/virtio/linux/cpumask.h | 7 tools/virtio/linux/gfp.h | 7 tools/virtio/linux/kernel.h | 1 tools/virtio/linux/kmsan.h | 12 tools/virtio/linux/scatterlist.h | 1 tools/virtio/linux/topology.h | 7 177 files changed, 4189 insertions(+), 1339 deletions(-)
Aaron Thompson (1):
Revert "mm: Always release pages to the buddy allocator in memblock_free_late()."
Al Viro (3):
WRITE is "data source", not destination...
fix iov_iter_bvec() "direction" argument
fix "direction" argument of iov_iter_kvec()
Alan Stern (1):
net: USB: Fix wrong-direction WARNING in plusb.c
Alexander Egorenkov (2):
watchdog: diag288_wdt: do not use stack buffers for hardware data
watchdog: diag288_wdt: fix __diag288() inline assembly
Alexander Potapenko (1):
btrfs: zlib: zero-initialize zlib workspace
Amit Engel (1):
nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
Anand Jain (1):
btrfs: free device in btrfs_close_devices for a single device filesystem
Andrea Righi (1):
mm: swap: properly update readahead statistics in unuse_pte_range()
Andreas Kemnade (2):
iio:adc:twl6030: Enable measurements of VUSB, VBAT and others iio:adc:twl6030: Enable measurement of VAC
Andreas Schwab (1):
riscv: disable generation of unwind tables
Andrei Gherzan (4):
selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking
Andrew Morton (1):
revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
Andrey Konovalov (1):
net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
Andy Shevchenko (3):
ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
nvme-pci: Move enumeration by class to be last in the table
Anirudh Venkataramanan (1):
ice: Do not use WQ_MEM_RECLAIM flag for workqueue
Anton Gusev (1):
efi: fix potential NULL deref in efi_mem_reserve_persistent
Ard Biesheuvel (1):
efi: Accept version 2 of memory attributes table
Arnd Bergmann (1):
ASoC: cs42l56: fix DT probe
Artemii Karasev (2):
ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
Bo Liu (1):
ALSA: hda/conexant: add a new hda codec SN6180
Brian Foster (1):
xfs: sync lazy sb accounting on quiesce of read-only mounts
Chao Yu (1):
f2fs: fix to do sanity check on i_extra_isize in is_alive()
Chris Healy (1):
net: phy: meson-gxl: Add generic dummy stubs for MMD register access
Christian Hopps (1):
xfrm: fix bug with DSCP copy to v6 from v4 tunnel
Christoph Hellwig (8):
xfs: remove the xfs_efi_log_item_t typedef
xfs: remove the xfs_efd_log_item_t typedef
xfs: remove the xfs_inode_log_item_t typedef
xfs: factor out a xfs_defer_create_intent helper
xfs: merge the ->log_item defer op into ->create_intent
xfs: merge the ->diff_items defer op into ->create_intent
xfs: turn dfp_intent into a xfs_log_item
xfs: refactor xfs_defer_finish_noroll
Cristian Ciocaltea (1):
net: stmmac: Restrict warning on disabling DMA store and fwd mode
Damien Le Moal (1):
ata: libata: Fix sata_down_spd_limit() when no link speed is reported
Dan Carpenter (2):
ALSA: pci: lx6464es: fix a debug loop
net: sched: sch: Fix off by one in htb_activate_prios()
Darrick J. Wong (15):
xfs: log new intent items created as part of finishing recovered intent items
xfs: proper replay of deferred ops queued during log recovery
xfs: xfs_defer_capture should absorb remaining block reservations
xfs: xfs_defer_capture should absorb remaining transaction reservation
xfs: clean up bmap intent item recovery checking
xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
xfs: fix an incore inode UAF in xfs_bui_recover
xfs: change the order in which child and parent defer ops are finished
xfs: periodically relog deferred intent items
xfs: expose the log push threshold
xfs: only relog deferred intent items if free space in the log gets low
xfs: fix missing CoW blocks writeback conversion retry
xfs: ensure inobt record walks always make forward progress
xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
xfs: prevent UAF in xfs_log_item_in_current_chkpt
Dave Chinner (1):
xfs: fix finobt btree block recovery ordering
Dean Luick (1):
IB/hfi1: Restore allocated resources on failed copyout
Devid Antonio Filoni (1):
can: j1939: do not wait 250 ms if the same addr was already claimed
Dmitry Perchanov (1):
iio: hid: fix the retval in accel_3d_capture_sample
Dongliang Mu (1):
fbdev: smscufx: fix error handling code in ufx_usb_probe
Dragos Tatulea (1):
IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
Eduard Zingerman (1):
selftests/bpf: Verify copy_register_state() preserves parent/live fields
Fedor Pchelkin (2):
squashfs: harden sanity check in squashfs_read_xattr_id_table
net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
Felix Riemann (1):
net: Fix unwanted sign extension in netdev_stats_to_stats64()
Florian Westphal (2):
netfilter: br_netfilter: disable sabotage_in hook after first suppression
netfilter: nft_tproxy: restrict to prerouting hook
George Kennedy (1):
vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
Greg Kroah-Hartman (2):
kvm: initialize all of the kvm_debugregs structure before sending it to userspace Linux 5.4.232
Guillaume Nault (2):
ipv6: Fix datagram socket connection with DSCP.
ipv6: Fix tcp socket connection with DSCP.
Guo Ren (1):
riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
Hangbin Liu (1):
selftests: forwarding: lib: quote the sysctl values
Heiner Kallweit (4):
net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
Helge Deller (2):
parisc: Fix return code of pdc_iodc_print()
parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
Hyunwoo Kim (3):
netrom: Fix use-after-free caused by accept on already connected socket net/x25: Fix to not accept on connected socket
net/rose: Fix to not accept on connected socket
Ido Schimmel (1):
ipv4: Fix incorrect route flushing when source address is deleted
Ilpo Järvinen (2):
serial: 8250_dma: Fix DMA Rx completion race
serial: 8250_dma: Fix DMA Rx rearm race
Jakub Kicinski (1):
net: mpls: fix stale pointer if allocation fails during device rename
Jason Xing (3):
ixgbe: allow to increase MTU to 3K with XDP enabled
i40e: add double of VLAN header when computing the max MTU
ixgbe: add double of VLAN header when computing the max MTU
Joel Stanley (1):
pinctrl: aspeed: Fix confusing types in return value
Joerg Roedel (1):
iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
Johannes Zink (1):
net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
Josef Bacik (1):
btrfs: limit device extents to the device size
Kailang Yang (1):
ALSA: hda/realtek - fixed wrong gpio assigned
Kees Cook (1):
net: sched: sch: Bounds check priority
Kuniyuki Iwashima (1):
dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
Longlong Xia (1):
mm/swapfile: add cond_resched() in get_swap_pages()
Mark Pearson (1):
usb: core: add quirk for Alcor Link AK9563 smartcard reader
Martin K. Petersen (1):
scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT"
Maurizio Lombardi (1):
scsi: target: core: Fix warning on RT kernels
Maxim Korotkov (1):
pinctrl: single: fix potential NULL dereference
Michael Chan (1):
bnxt_en: Fix mqprio and XDP ring checking logic
Michael Ellerman (1):
powerpc/imc-pmu: Revert nest_init_lock to being a mutex
Michael Walle (1):
nvmem: core: fix cell removal on error
Mike Christie (1):
scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
Mike Kravetz (3):
mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
migrate: hugetlb: check for hugetlb shared PMD in node migration
hugetlb: check for undefined shift on 32 bit architectures
Miko Larsson (1):
net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
Minsuk Kang (1):
wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads
Munehisa Kamata (1):
sched/psi: Fix use-after-free in ep_remove_wait_queue()
Natalia Petrova (1):
i40e: Add checking for null for nlmsg_find_attr()
Neel Patel (1):
ionic: clean interrupt before enabling queue to avoid credit race
Neil Armstrong (1):
usb: dwc3: qcom: enable vbus override when in OTG dr-mode
Olivier Moysan (1):
iio: adc: stm32-dfsdm: fill module aliases
Parav Pandit (1):
virtio-net: Keep stop() to follow mirror sequence of open()
Phillip Lougher (1):
Squashfs: fix handling and sanity checking of xattr_ids count
Pierluigi Passaro (1):
arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
Pierre-Louis Bossart (1):
ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
Pietro Borrello (2):
rds: rds_rm_zerocopy_callback() use list_first_entry()
sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
Prashant Malani (1):
usb: typec: altmodes/displayport: Fix probe pin assign check
Qi Zheng (1):
bonding: fix error checking in bond_debug_reregister()
Rafał Miłecki (1):
net: bgmac: fix BCM5358 support by setting correct flags
Randy Dunlap (1):
i2c: rk3x: fix a bunch of kernel-doc warnings
Ryusuke Konishi (1):
nilfs2: fix underflow in second superblock position calculations
Samuel Thibault (1):
fbcon: Check font dimension limits
Seth Jenkins (1):
aio: fix mremap after fork null-deref
Shaoying Xu (1):
Revert "ipv4: Fix incorrect route flushing when source address is deleted"
Shiju Jose (1):
tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw
Shunsuke Mie (1):
tools/virtio: fix the vringh test for virtio ring changes
Takashi Sakamoto (1):
firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region
Toke Høiland-Jørgensen (1):
bpf: Always return target ifindex in bpf_fib_lookup
Tom Murphy (1):
iommu: Add gfp parameter to iommu_ops::map
Udipto Goswami (1):
usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
Vasily Gorbik (1):
s390/decompressor: specify __decompress() buf len to avoid overflow
Werner Sembach (4):
Input: i8042 - move __initconst to fix code styling warning
Input: i8042 - merge quirk tables
Input: i8042 - add TUXEDO devices to i8042 quirk tables
Input: i8042 - add Clevo PCX0DX to i8042 quirk table
Wesley Cheng (1):
usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
Xiongfeng Wang (1):
iio: adc: berlin2-adc: Add missing of_node_put() in error path
Xiubo Li (1):
ceph: flush cap releases when the session is flushed
Yang Yingliang (3):
RDMA/usnic: use iommu_map_atomic() under spin_lock()
mmc: sdio: fix possible resource leaks in some error paths
mmc: mmc_spi: fix error handling in mmc_spi_probe()
Yuan Can (1):
bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
Zhang Xiaoxu (1):
xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
Zheng Yongjun (1):
fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
Ziyang Xuan (1):
can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 231 +SUBLEVEL = 232 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arm64/boot/dts/amlogic/meson-axg.dtsi +2 -2
@@ -1705,7 +1705,7 @@ sd_emmc_b: sd@5000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x5000 0x0 0x800>; - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -1717,7 +1717,7 @@ sd_emmc_c: mmc@7000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x7000 0x0 0x800>; - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>,
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +3 -3
@@ -2317,7 +2317,7 @@ sd_emmc_a: sd@ffe03000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe03000 0x0 0x800>; - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_A>, <&clkc CLKID_SD_EMMC_A_CLK0>,
@@ -2329,7 +2329,7 @@ sd_emmc_b: sd@ffe05000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe05000 0x0 0x800>; - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -2341,7 +2341,7 @@ sd_emmc_c: mmc@ffe07000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe07000 0x0 0x800>; - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>,
arch/arm64/boot/dts/amlogic/meson-gx.dtsi +3 -3
@@ -528,21 +528,21 @@ sd_emmc_a: mmc@70000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x70000 0x0 0x800>; - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; sd_emmc_b: mmc@72000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x72000 0x0 0x800>; - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; sd_emmc_c: mmc@74000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x74000 0x0 0x800>; - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; };
arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h +1 -1
@@ -585,7 +585,7 @@#define MX8MM_IOMUXC_UART1_RXD_GPIO5_IO22 0x234 0x49C 0x000 0x5 0x0#define MX8MM_IOMUXC_UART1_RXD_TPSMP_HDATA24 0x234 0x49C 0x000 0x7 0x0#define MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX 0x238 0x4A0 0x000 0x0 0x0 -#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX 0x238 0x4A0 0x4F4 0x0 0x0 +#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX 0x238 0x4A0 0x4F4 0x0 0x1#define MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x238 0x4A0 0x000 0x1 0x0#define MX8MM_IOMUXC_UART1_TXD_GPIO5_IO23 0x238 0x4A0 0x000 0x5 0x0#define MX8MM_IOMUXC_UART1_TXD_TPSMP_HDATA25 0x238 0x4A0 0x000 0x7 0x0
arch/parisc/kernel/firmware.c +3 -2
@@ -1229,7 +1229,7 @@ static char __attribute__((aligned(64))) iodc_dbuf[4096];*/ int pdc_iodc_print (const unsigned char *str,unsigned count) { -unsigned int i; +unsigned int i, found =0 ;unsigned long flags;for (i =0 ; i < count;) {
@@ -1238,6 +1238,7 @@ int pdc_iodc_print(const unsigned char *str, unsigned count) iodc_dbuf[i+0 ] ='\r' ; iodc_dbuf[i+1 ] ='\n' ; i +=2 ; + found =1 ; goto print;default : iodc_dbuf[i] = str[i];
@@ -1254,7 +1255,7 @@ int pdc_iodc_print(const unsigned char *str, unsigned count) __pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);spin_unlock_irqrestore (&pdc_lock, flags); -return i; +return i - found; }#if !defined(BOOTLOADER )
arch/parisc/kernel/ptrace.c +13 -2
@@ -128,6 +128,12 @@ long arch_ptrace(struct task_struct *child, long request,unsigned long tmp;long ret = -EIO ; +unsigned long user_regs_struct_size =sizeof (struct user_regs_struct ); +#ifdef CONFIG_64BIT +if (is_compat_task ()) + user_regs_struct_size /=2 ; +#endif +switch (request) {/* Read the word at location addr in the USER area. For ptraced
@@ -183,14 +189,14 @@ long arch_ptrace(struct task_struct *child, long request,return copy_regset_to_user (child,task_user_regset_view (current),REGSET_GENERAL , -0 ,sizeof (struct user_regs_struct ), +0 , user_regs_struct_size, datap);case PTRACE_SETREGS :/* Set all gp regs in the child. */ return copy_regset_from_user (child,task_user_regset_view (current),REGSET_GENERAL , -0 ,sizeof (struct user_regs_struct ), +0 , user_regs_struct_size, datap);case PTRACE_GETFPREGS :/* Get the child FPU state. */
@@ -304,6 +310,11 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, } }break ; +case PTRACE_GETREGS : +case PTRACE_SETREGS : +case PTRACE_GETFPREGS : +case PTRACE_SETFPREGS : +return arch_ptrace (child, request, addr, data);default : ret =compat_ptrace_request (child, request, addr, data);
arch/powerpc/perf/imc-pmu.c +7 -7
@@ -21,7 +21,7 @@* Used to avoid races in counting the nest-pmu units during hotplug * register and unregister */ -static DEFINE_SPINLOCK (nest_init_lock); +static DEFINE_MUTEX (nest_init_lock); static DEFINE_PER_CPU(struct imc_pmu_ref *, local_nest_imc_refc);static struct imc_pmu **per_nest_pmu_arr;static cpumask_t nest_imc_cpumask;
@@ -1605,7 +1605,7 @@ static void imc_common_mem_free(struct imc_pmu *pmu_ptr)static void imc_common_cpuhp_mem_free (struct imc_pmu *pmu_ptr) {if (pmu_ptr->domain ==IMC_DOMAIN_NEST ) { -spin_lock (&nest_init_lock); +mutex_lock (&nest_init_lock);if (nest_pmus ==1 ) {cpuhp_remove_state (CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE );kfree (nest_imc_refc);
@@ -1615,7 +1615,7 @@ static void imc_common_cpuhp_mem_free(struct imc_pmu *pmu_ptr)if (nest_pmus >0 ) nest_pmus--; -spin_unlock (&nest_init_lock); +mutex_unlock (&nest_init_lock); }/* Free core_imc memory */
@@ -1772,11 +1772,11 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id* rest. To handle the cpuhotplug callback unregister, we track * the number of nest pmus in "nest_pmus". */ -spin_lock (&nest_init_lock); +mutex_lock (&nest_init_lock);if (nest_pmus ==0 ) { ret =init_nest_pmu_ref ();if (ret) { -spin_unlock (&nest_init_lock); +mutex_unlock (&nest_init_lock);kfree (per_nest_pmu_arr); per_nest_pmu_arr =NULL ; goto err_free_mem;
@@ -1784,7 +1784,7 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id/* Register for cpu hotplug notification. */ ret =nest_pmu_cpumask_init ();if (ret) { -spin_unlock (&nest_init_lock); +mutex_unlock (&nest_init_lock);kfree (nest_imc_refc);kfree (per_nest_pmu_arr); per_nest_pmu_arr =NULL ;
@@ -1792,7 +1792,7 @@ int init_imc_pmu(struct device_node *parent, struct imc_pmu *pmu_ptr, int pmu_id } } nest_pmus++; -spin_unlock (&nest_init_lock); +mutex_unlock (&nest_init_lock);break ;case IMC_DOMAIN_CORE : ret =core_imc_pmu_cpumask_init ();
arch/riscv/Makefile +3 -0
@@ -75,6 +75,9 @@ ifeq ($(CONFIG_PERF_EVENTS),y) KBUILD_CFLAGS += -fno-omit-frame-pointer endif +# Avoid generating .eh_frame sections. +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables + KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax) KBUILD_AFLAGS_MODULE += $(call as-option,-Wa$(comma)-mno-relax)
arch/riscv/mm/cacheflush.c +3 -1
@@ -71,6 +71,8 @@ void flush_icache_pte(pte_t pte) {struct page *page =pte_page (pte); -if (!test_and_set_bit (PG_dcache_clean, &page->flags)) +if (!test_bit (PG_dcache_clean, &page->flags)) {flush_icache_all (); +set_bit (PG_dcache_clean, &page->flags); + } }
arch/s390/boot/compressed/decompressor.c +1 -1
@@ -80,6 +80,6 @@ void *decompress_kernel(void)void *output = (void *)decompress_offset;__decompress (_compressed_start, _compressed_end - _compressed_start, -NULL ,NULL , output,0 ,NULL , error); +NULL ,NULL , output, vmlinux.image_size,NULL , error);return output; }
arch/x86/kvm/x86.c +1 -2
@@ -3948,12 +3948,11 @@ static void kvm_vcpu_ioctl_x86_get_debugregs(struct kvm_vcpu *vcpu, {unsigned long val; +memset (dbgregs,0 ,sizeof (*dbgregs));memcpy (dbgregs->db, vcpu->arch.db,sizeof (vcpu->arch.db));kvm_get_dr (vcpu,6 , &val); dbgregs->dr6 = val; dbgregs->dr7 = vcpu->arch.dr7; - dbgregs->flags =0 ; -memset (&dbgregs->reserved,0 ,sizeof (dbgregs->reserved)); } static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
drivers/ata/libata-core.c +1 -1
@@ -3096,7 +3096,7 @@ int sata_down_spd_limit(struct ata_link *link, u32 spd_limit)*/ if (spd >1 ) mask &= (1 << (spd -1 )) -1 ; -else +else if (link->sata_spd)return -EINVAL ;/* were we already at the bottom? */
drivers/bus/sunxi-rsb.c +7 -1
@@ -781,7 +781,13 @@ static int __init sunxi_rsb_init(void)return ret; } -return platform_driver_register (&sunxi_rsb_driver); + ret =platform_driver_register (&sunxi_rsb_driver); +if (ret) { +bus_unregister (&sunxi_rsb_bus); +return ret; + } + +return 0 ; }module_init (sunxi_rsb_init);
drivers/firewire/core-cdev.c +3 -1
@@ -818,8 +818,10 @@ static int ioctl_send_response(struct client *client, union ioctl_arg *arg) r = container_of(resource, struct inbound_transaction_resource, resource); -if (is_fcp_request (r->request)) +if (is_fcp_request (r->request)) { +kfree (r->data); goto out; + }if (a->length !=fw_get_response_length (r->request)) { ret = -EINVAL ;
drivers/firmware/efi/efi.c +2 -0
@@ -1022,6 +1022,8 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size)/* first try to find a slot in an existing linked list entry */ for (prsv = efi_memreserve_root->next; prsv; ) { rsv =memremap (prsv,sizeof (*rsv),MEMREMAP_WB ); +if (!rsv) +return -ENOMEM ; index =atomic_fetch_add_unless (&rsv->count,1 , rsv->size);if (index < rsv->size) { rsv->entry[index].base = addr;
drivers/firmware/efi/memattr.c +1 -1
@@ -32,7 +32,7 @@ int __init efi_memattr_init(void)return -ENOMEM ; } -if (tbl->version >1 ) { +if (tbl->version >2 ) {pr_warn ("Unexpected EFI Memory Attributes table version %d\n" , tbl->version); goto unmap;
drivers/fpga/stratix10-soc.c +2 -2
@@ -218,9 +218,9 @@ static int s10_ops_write_init(struct fpga_manager *mgr,/* Allocate buffers from the service layer's pool. */ for (i =0 ; i <NUM_SVC_BUFS ; i++) { kbuf =stratix10_svc_allocate_memory (priv->chan,SVC_BUF_SIZE ); -if (!kbuf) { +if (IS_ERR (kbuf)) {s10_free_buffers (mgr); - ret = -ENOMEM ; + ret =PTR_ERR (kbuf); goto init_done; }
drivers/fsi/fsi-sbefifo.c +3 -3
@@ -640,7 +640,7 @@ static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo) } ffdc_iov.iov_base = ffdc; ffdc_iov.iov_len =SBEFIFO_MAX_FFDC_SIZE ; -iov_iter_kvec (&ffdc_iter,WRITE , &ffdc_iov,1 ,SBEFIFO_MAX_FFDC_SIZE ); +iov_iter_kvec (&ffdc_iter,READ , &ffdc_iov,1 ,SBEFIFO_MAX_FFDC_SIZE ); cmd[0 ] =cpu_to_be32 (2 ); cmd[1 ] =cpu_to_be32 (SBEFIFO_CMD_GET_SBE_FFDC ); rc =sbefifo_do_command (sbefifo, cmd,2 , &ffdc_iter);
@@ -737,7 +737,7 @@ int sbefifo_submit(struct device *dev, const __be32 *command, size_t cmd_len, rbytes = (*resp_len) *sizeof (__be32); resp_iov.iov_base = response; resp_iov.iov_len = rbytes; -iov_iter_kvec (&resp_iter,WRITE , &resp_iov,1 , rbytes); +iov_iter_kvec (&resp_iter,READ , &resp_iov,1 , rbytes);/* Perform the command */ mutex_lock (&sbefifo->lock);
@@ -817,7 +817,7 @@ static ssize_t sbefifo_user_read(struct file *file, char __user *buf,/* Prepare iov iterator */ resp_iov.iov_base = buf; resp_iov.iov_len = len; -iov_iter_init (&resp_iter,WRITE , &resp_iov,1 , len); +iov_iter_init (&resp_iter,READ , &resp_iov,1 , len);/* Perform the command */ mutex_lock (&sbefifo->lock);
drivers/i2c/busses/i2c-rk3x.c +22 -22
123 lines not on this page · raw message
drivers/iio/accel/hid-sensor-accel-3d.c +1 -0
@@ -279,6 +279,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev,hid_sensor_convert_timestamp ( &accel_state->common_attributes, *(int64_t *)raw_data); + ret =0 ;break ;default :break ;
drivers/iio/adc/berlin2-adc.c +3 -1
@@ -289,8 +289,10 @@ static int berlin2_adc_probe(struct platform_device *pdev)int ret; indio_dev =devm_iio_device_alloc (&pdev->dev,sizeof (*priv)); -if (!indio_dev) +if (!indio_dev) { +of_node_put (parent_np);return -ENOMEM ; + } priv =iio_priv (indio_dev);platform_set_drvdata (pdev, indio_dev);
drivers/iio/adc/stm32-dfsdm-adc.c +1 -0
@@ -1544,6 +1544,7 @@ static const struct of_device_id stm32_dfsdm_adc_match[] = { }, {} }; +MODULE_DEVICE_TABLE (of, stm32_dfsdm_adc_match);static int stm32_dfsdm_adc_probe (struct platform_device *pdev) {
drivers/iio/adc/twl6030-gpadc.c +32 -0
@@ -57,6 +57,18 @@#define TWL6030_GPADCS BIT(1)#define TWL6030_GPADCR BIT(0) +#define USB_VBUS_CTRL_SET 0x04 +#define USB_ID_CTRL_SET 0x06 + +#define TWL6030_MISC1 0xE4 +#define VBUS_MEAS 0x01 +#define ID_MEAS 0x01 + +#define VAC_MEAS 0x04 +#define VBAT_MEAS 0x02 +#define BB_MEAS 0x01 + +/** * struct twl6030_chnl_calib - channel calibration * @gain: slope coefficient for ideal curve
@@ -927,6 +939,26 @@ static int twl6030_gpadc_probe(struct platform_device *pdev)return ret; } + ret =twl_i2c_write_u8 (TWL_MODULE_USB ,VBUS_MEAS ,USB_VBUS_CTRL_SET ); +if (ret <0 ) { +dev_err (dev,"failed to wire up inputs\n" ); +return ret; + } + + ret =twl_i2c_write_u8 (TWL_MODULE_USB ,ID_MEAS ,USB_ID_CTRL_SET ); +if (ret <0 ) { +dev_err (dev,"failed to wire up inputs\n" ); +return ret; + } + + ret =twl_i2c_write_u8 (TWL6030_MODULE_ID0 , +VBAT_MEAS |BB_MEAS |VAC_MEAS , +TWL6030_MISC1 ); +if (ret <0 ) { +dev_err (dev,"failed to wire up inputs\n" ); +return ret; + } + indio_dev->name =DRIVER_NAME ; indio_dev->dev.parent = dev; indio_dev->info = &twl6030_gpadc_iio_info;
drivers/infiniband/hw/hfi1/file_ops.c +5 -2
@@ -1363,12 +1363,15 @@ static int user_exp_rcv_setup(struct hfi1_filedata *fd, unsigned long arg, addr = arg + offsetof(struct hfi1_tid_info , tidcnt);if (copy_to_user ((void __user *)addr, &tinfo.tidcnt,sizeof (tinfo.tidcnt))) -return -EFAULT ; + ret = -EFAULT ; addr = arg + offsetof(struct hfi1_tid_info , length); -if (copy_to_user ((void __user *)addr, &tinfo.length, +if (!ret &©_to_user ((void __user *)addr, &tinfo.length,sizeof (tinfo.length))) ret = -EFAULT ; + +if (ret) +hfi1_user_exp_rcv_invalid (fd, &tinfo); }return ret;
drivers/infiniband/hw/usnic/usnic_uiom.c +4 -4
@@ -281,8 +281,8 @@ static int usnic_uiom_map_sorted_intervals(struct list_head *intervals, size = pa_end - pa_start +PAGE_SIZE ;usnic_dbg ("va 0x%lx pa %pa size 0x%zx flags 0x%x" , va_start, &pa_start, size, flags); - err =iommu_map (pd->domain, va_start, pa_start, - size, flags); + err =iommu_map_atomic (pd->domain, va_start, + pa_start, size, flags);if (err) {usnic_err ("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n" , va_start, &pa_start, size, err);
@@ -298,8 +298,8 @@ static int usnic_uiom_map_sorted_intervals(struct list_head *intervals, size = pa - pa_start +PAGE_SIZE ;usnic_dbg ("va 0x%lx pa %pa size 0x%zx flags 0x%x\n" , va_start, &pa_start, size, flags); - err =iommu_map (pd->domain, va_start, pa_start, - size, flags); + err =iommu_map_atomic (pd->domain, va_start, + pa_start, size, flags);if (err) {usnic_err ("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n" , va_start, &pa_start, size, err);
drivers/infiniband/ulp/ipoib/ipoib_main.c +8 -0
@@ -2171,6 +2171,14 @@ int ipoib_intf_init(struct ib_device *hca, u8 port, const char *name, rn->attach_mcast = ipoib_mcast_attach; rn->detach_mcast = ipoib_mcast_detach; rn->hca = hca; + + rc =netif_set_real_num_tx_queues (dev,1 ); +if (rc) + goto out; + + rc =netif_set_real_num_rx_queues (dev,1 ); +if (rc) + goto out; } priv->rn_ops = dev->netdev_ops;
drivers/input/serio/i8042-x86ia64io.h +707 -481
1,715 lines not on this page · raw message
drivers/iommu/amd_iommu.c +3 -2
@@ -3098,7 +3098,8 @@ static int amd_iommu_attach_device(struct iommu_domain *dom, }static int amd_iommu_map (struct iommu_domain *dom,unsigned long iova, -phys_addr_t paddr,size_t page_size,int iommu_prot) +phys_addr_t paddr,size_t page_size,int iommu_prot, +gfp_t gfp) {struct protection_domain *domain =to_pdomain (dom);int prot =0 ;
@@ -3113,7 +3114,7 @@ static int amd_iommu_map(struct iommu_domain *dom, unsigned long iova, prot |=IOMMU_PROT_IW ;mutex_lock (&domain->api_lock); - ret =iommu_map_page (domain, iova, paddr, page_size, prot,GFP_KERNEL ); + ret =iommu_map_page (domain, iova, paddr, page_size, prot, gfp);mutex_unlock (&domain->api_lock);domain_flush_np_cache (domain, iova, page_size);
drivers/iommu/arm-smmu-v3.c +1 -1
@@ -2451,7 +2451,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev) }static int arm_smmu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct io_pgtable_ops *ops =to_smmu_domain (domain)->pgtbl_ops;
drivers/iommu/arm-smmu.c +1 -1
@@ -1160,7 +1160,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev) }static int arm_smmu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct io_pgtable_ops *ops =to_smmu_domain (domain)->pgtbl_ops;struct arm_smmu_device *smmu =to_smmu_domain (domain)->smmu;
drivers/iommu/dma-iommu.c +3 -3
@@ -477,7 +477,7 @@ static dma_addr_t __iommu_dma_map(struct device *dev, phys_addr_t phys,if (!iova)return DMA_MAPPING_ERROR ; -if (iommu_map (domain, iova, phys - iova_off, size, prot)) { +if (iommu_map_atomic (domain, iova, phys - iova_off, size, prot)) {iommu_dma_free_iova (cookie, iova, size);return DMA_MAPPING_ERROR ; }
@@ -612,7 +612,7 @@ static void *iommu_dma_alloc_remap(struct device *dev, size_t size,arch_dma_prep_coherent (sg_page (sg), sg->length); } -if (iommu_map_sg (domain, iova, sgt.sgl, sgt.orig_nents, ioprot) +if (iommu_map_sg_atomic (domain, iova, sgt.sgl, sgt.orig_nents, ioprot) < size) goto out_free_sg;
@@ -872,7 +872,7 @@ static int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg,* We'll leave any physical concatenation to the IOMMU driver's * implementation - it knows better than we do. */ -if (iommu_map_sg (domain, iova, sg, nents, prot) < iova_len) +if (iommu_map_sg_atomic (domain, iova, sg, nents, prot) < iova_len) goto out_free_iova;return __finalise_sg (dev, sg, nents, iova);
drivers/iommu/exynos-iommu.c +1 -1
@@ -1077,7 +1077,7 @@ static int lv2set_page(sysmmu_pte_t *pent, phys_addr_t paddr, size_t size,*/ static int exynos_iommu_map (struct iommu_domain *iommu_domain,unsigned long l_iova,phys_addr_t paddr,size_t size, -int prot) +int prot,gfp_t gfp) {struct exynos_iommu_domain *domain =to_exynos_domain (iommu_domain);sysmmu_pte_t *entry;
drivers/iommu/intel-iommu.c +1 -1
@@ -5458,7 +5458,7 @@ static void intel_iommu_aux_detach_device(struct iommu_domain *domain,static int intel_iommu_map (struct iommu_domain *domain,unsigned long iova,phys_addr_t hpa, -size_t size,int iommu_prot) +size_t size,int iommu_prot,gfp_t gfp) {struct dmar_domain *dmar_domain =to_dmar_domain (domain);u64 max_addr;
drivers/iommu/iommu.c +37 -6
84 lines not on this page · raw message
drivers/iommu/ipmmu-vmsa.c +1 -1
@@ -724,7 +724,7 @@ static void ipmmu_detach_device(struct iommu_domain *io_domain, }static int ipmmu_map (struct iommu_domain *io_domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct ipmmu_vmsa_domain *domain =to_vmsa_domain (io_domain);
drivers/iommu/msm_iommu.c +1 -1
@@ -504,7 +504,7 @@ static void msm_iommu_detach_dev(struct iommu_domain *domain, }static int msm_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t pa,size_t len,int prot) +phys_addr_t pa,size_t len,int prot,gfp_t gfp) {struct msm_priv *priv =to_msm_priv (domain);unsigned long flags;
drivers/iommu/mtk_iommu.c +1 -1
@@ -427,7 +427,7 @@ static void mtk_iommu_detach_device(struct iommu_domain *domain, }static int mtk_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct mtk_iommu_domain *dom =to_mtk_domain (domain);struct mtk_iommu_data *data =mtk_iommu_get_m4u_data ();
drivers/iommu/mtk_iommu_v1.c +1 -1
@@ -295,7 +295,7 @@ static void mtk_iommu_detach_device(struct iommu_domain *domain, }static int mtk_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct mtk_iommu_domain *dom =to_mtk_domain (domain);unsigned int page_num = size >>MT2701_IOMMU_PAGE_SHIFT ;
drivers/iommu/omap-iommu.c +1 -1
@@ -1339,7 +1339,7 @@ static u32 iotlb_init_entry(struct iotlb_entry *e, u32 da, u32 pa, int pgsz) }static int omap_iommu_map (struct iommu_domain *domain,unsigned long da, -phys_addr_t pa,size_t bytes,int prot) +phys_addr_t pa,size_t bytes,int prot,gfp_t gfp) {struct omap_iommu_domain *omap_domain =to_omap_domain (domain);struct device *dev = omap_domain->dev;
drivers/iommu/qcom_iommu.c +1 -1
@@ -419,7 +419,7 @@ static void qcom_iommu_detach_dev(struct iommu_domain *domain, struct device *de }static int qcom_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {int ret;unsigned long flags;
drivers/iommu/rockchip-iommu.c +1 -1
@@ -758,7 +758,7 @@ static int rk_iommu_map_iova(struct rk_iommu_domain *rk_domain, u32 *pte_addr, }static int rk_iommu_map (struct iommu_domain *domain,unsigned long _iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct rk_iommu_domain *rk_domain =to_rk_domain (domain);unsigned long flags;
drivers/iommu/s390-iommu.c +1 -1
@@ -265,7 +265,7 @@ static int s390_iommu_update_trans(struct s390_domain *s390_domain, }static int s390_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct s390_domain *s390_domain =to_s390_domain (domain);int flags =ZPCI_PTE_VALID , rc =0 ;
drivers/iommu/tegra-gart.c +1 -1
@@ -178,7 +178,7 @@ static inline int __gart_iommu_map(struct gart_device *gart, unsigned long iova, }static int gart_iommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t pa,size_t bytes,int prot) +phys_addr_t pa,size_t bytes,int prot,gfp_t gfp) {struct gart_device *gart = gart_handle;int ret;
drivers/iommu/tegra-smmu.c +1 -1
@@ -651,7 +651,7 @@ static void tegra_smmu_set_pte(struct tegra_smmu_as *as, unsigned long iova, }static int tegra_smmu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {struct tegra_smmu_as *as =to_smmu_as (domain);dma_addr_t pte_dma;
drivers/iommu/virtio-iommu.c +1 -1
@@ -715,7 +715,7 @@ static int viommu_attach_dev(struct iommu_domain *domain, struct device *dev) }static int viommu_map (struct iommu_domain *domain,unsigned long iova, -phys_addr_t paddr,size_t size,int prot) +phys_addr_t paddr,size_t size,int prot,gfp_t gfp) {int ret;u32 flags;
drivers/mmc/core/sdio_bus.c +14 -3
@@ -269,6 +269,12 @@ static void sdio_release_func(struct device *dev)if (!(func->card->quirks &MMC_QUIRK_NONSTD_SDIO ))sdio_free_func_cis (func); +/* +* We have now removed the link to the tuples in the +* card structure, so remove the reference. +*/ +put_device (&func->card->dev); +kfree (func->info);kfree (func->tmpbuf);kfree (func);
@@ -299,6 +305,12 @@ struct sdio_func *sdio_alloc_func(struct mmc_card *card)device_initialize (&func->dev); +/* +* We may link to tuples in the card structure, +* we need make sure we have a reference to it. +*/ +get_device (&func->card->dev); + func->dev.parent = &card->dev; func->dev.bus = &sdio_bus_type; func->dev.release = sdio_release_func;
@@ -352,10 +364,9 @@ int sdio_add_func(struct sdio_func *func)*/ void sdio_remove_func (struct sdio_func *func) { -if (!sdio_func_present (func)) -return ; +if (sdio_func_present (func)) +device_del (&func->dev); -device_del (&func->dev);of_node_put (func->dev.of_node);put_device (&func->dev); }
drivers/mmc/core/sdio_cis.c +0 -12
@@ -383,12 +383,6 @@ int sdio_read_func_cis(struct sdio_func *func)if (ret)return ret; -/* -* Since we've linked to tuples in the card structure, -* we must make sure we have a reference to it. -*/ -get_device (&func->card->dev); -/* * Vendor/device id is optional for function CIS, so * copy it from the card structure as needed.
@@ -414,11 +408,5 @@ void sdio_free_func_cis(struct sdio_func *func) } func->tuples =NULL ; - -/* -* We have now removed the link to the tuples in the -* card structure, so remove the reference. -*/ -put_device (&func->card->dev); }
drivers/mmc/host/mmc_spi.c +4 -4
@@ -1420,7 +1420,7 @@ static int mmc_spi_probe(struct spi_device *spi) status =mmc_add_host (mmc);if (status !=0 ) - goto fail_add_host; + goto fail_glue_init;/* * Index 0 is card detect
@@ -1428,7 +1428,7 @@ static int mmc_spi_probe(struct spi_device *spi)*/ status =mmc_gpiod_request_cd (mmc,NULL ,0 , false,1 ,NULL );if (status == -EPROBE_DEFER ) - goto fail_add_host; + goto fail_gpiod_request;if (!status) {/* * The platform has a CD GPIO signal that may support
@@ -1443,7 +1443,7 @@ static int mmc_spi_probe(struct spi_device *spi)/* Index 1 is write protect/read only */ status =mmc_gpiod_request_ro (mmc,NULL ,1 ,0 ,NULL );if (status == -EPROBE_DEFER ) - goto fail_add_host; + goto fail_gpiod_request;if (!status) has_ro = true;
@@ -1457,7 +1457,7 @@ static int mmc_spi_probe(struct spi_device *spi) ? ", cd polling" : "");return 0 ; -fail_add_host: +fail_gpiod_request:mmc_remove_host (mmc); fail_glue_init:if (host->dma_dev)
drivers/net/bonding/bond_debugfs.c +1 -1
@@ -76,7 +76,7 @@ void bond_debug_reregister(struct bonding *bond) d =debugfs_rename (bonding_debug_root, bond->debug_dir, bonding_debug_root, bond->dev->name); -if (d) { +if (!IS_ERR (d)) { bond->debug_dir = d; }else {netdev_warn (bond->dev,"failed to reregister, so just unregister old one\n" );
drivers/net/ethernet/broadcom/bgmac-bcma.c +3 -3
@@ -228,12 +228,12 @@ static int bgmac_probe(struct bcma_device *core) bgmac->feature_flags |=BGMAC_FEAT_CLKCTLST ; bgmac->feature_flags |=BGMAC_FEAT_FLW_CTRL1 ; bgmac->feature_flags |=BGMAC_FEAT_SW_TYPE_PHY ; -if (ci->pkg ==BCMA_PKG_ID_BCM47188 || - ci->pkg ==BCMA_PKG_ID_BCM47186 ) { +if ((ci->id ==BCMA_CHIP_ID_BCM5357 && ci->pkg ==BCMA_PKG_ID_BCM47186 ) || + (ci->id ==BCMA_CHIP_ID_BCM53572 && ci->pkg ==BCMA_PKG_ID_BCM47188 )) { bgmac->feature_flags |=BGMAC_FEAT_SW_TYPE_RGMII ; bgmac->feature_flags |=BGMAC_FEAT_IOST_ATTACHED ; } -if (ci->pkg ==BCMA_PKG_ID_BCM5358 ) +if (ci->id ==BCMA_CHIP_ID_BCM5357 && ci->pkg ==BCMA_PKG_ID_BCM5358 ) bgmac->feature_flags |=BGMAC_FEAT_SW_TYPE_EPHYRMII ;break ;case BCMA_CHIP_ID_BCM53573 :
drivers/net/ethernet/broadcom/bnxt/bnxt.c +6 -2
@@ -8205,10 +8205,14 @@ int bnxt_reserve_rings(struct bnxt *bp, bool irq_re_init)netdev_err (bp->dev,"ring reservation/IRQ init failure rc: %d\n" , rc);return rc; } -if (tcs && (bp->tx_nr_rings_per_tc * tcs != bp->tx_nr_rings)) { +if (tcs && (bp->tx_nr_rings_per_tc * tcs != + bp->tx_nr_rings - bp->tx_nr_rings_xdp)) {netdev_err (bp->dev,"tx ring reservation failure\n" );netdev_reset_tc (bp->dev); - bp->tx_nr_rings_per_tc = bp->tx_nr_rings; +if (bp->tx_nr_rings_xdp) + bp->tx_nr_rings_per_tc = bp->tx_nr_rings_xdp; +else + bp->tx_nr_rings_per_tc = bp->tx_nr_rings;return -ENOMEM ; }return 0 ;
drivers/net/ethernet/intel/i40e/i40e_main.c +3 -1
@@ -2702,7 +2702,7 @@ static int i40e_change_mtu(struct net_device *netdev, int new_mtu)struct i40e_pf *pf = vsi->back;if (i40e_enabled_xdp_vsi (vsi)) { -int frame_size = new_mtu +ETH_HLEN +ETH_FCS_LEN +VLAN_HLEN ; +int frame_size = new_mtu +I40E_PACKET_HDR_PAD ;if (frame_size >i40e_max_xdp_frame_size (vsi))return -EINVAL ;
@@ -12535,6 +12535,8 @@ static int i40e_ndo_bridge_setlink(struct net_device *dev, } br_spec =nlmsg_find_attr (nlh,sizeof (struct ifinfomsg ),IFLA_AF_SPEC ); +if (!br_spec) +return -EINVAL ;nla_for_each_nested (attr, br_spec, rem) {__u16 mode;
drivers/net/ethernet/intel/ice/ice_main.c +1 -1
@@ -3211,7 +3211,7 @@ static int __init ice_module_init(void)pr_info ("%s - version %s\n" , ice_driver_string, ice_drv_ver);pr_info ("%s\n" , ice_copyright); - ice_wq =alloc_workqueue ("%s" ,WQ_MEM_RECLAIM ,0 ,KBUILD_MODNAME ); + ice_wq =alloc_workqueue ("%s" ,0 ,0 ,KBUILD_MODNAME );if (!ice_wq) {pr_err ("Failed to create workqueue\n" );return -ENOMEM ;
drivers/net/ethernet/intel/ixgbe/ixgbe.h +2 -0
@@ -67,6 +67,8 @@#define IXGBE_RXBUFFER_4K 4096#define IXGBE_MAX_RXBUFFER 16384/* largest size for a single descriptor */ +#define IXGBE_PKT_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2)) +/* Attempt to maximize the headroom available for incoming frames. We * use a 2K buffer for receives and need 1536/1534 to store the data for * the frame. This leaves us with 512 bytes of room. From that we need
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +17 -11
@@ -6721,6 +6721,18 @@ static void ixgbe_free_all_rx_resources(struct ixgbe_adapter *adapter)ixgbe_free_rx_resources (adapter->rx_ring[i]); } +/** +* ixgbe_max_xdp_frame_size - returns the maximum allowed frame size for XDP +* @adapter: device handle, pointer to adapter +*/ +static int ixgbe_max_xdp_frame_size (struct ixgbe_adapter *adapter) +{ +if (PAGE_SIZE >=8192 || adapter->flags2 &IXGBE_FLAG2_RX_LEGACY ) +return IXGBE_RXBUFFER_2K ; +else +return IXGBE_RXBUFFER_3K ; +} +/** * ixgbe_change_mtu - Change the Maximum Transfer Unit * @netdev: network interface device structure
@@ -6732,18 +6744,12 @@ static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu) {struct ixgbe_adapter *adapter =netdev_priv (netdev); -if (adapter->xdp_prog) { -int new_frame_size = new_mtu +ETH_HLEN +ETH_FCS_LEN + -VLAN_HLEN ; -int i; - -for (i =0 ; i < adapter->num_rx_queues; i++) { -struct ixgbe_ring *ring = adapter->rx_ring[i]; +if (ixgbe_enabled_xdp_adapter (adapter)) { +int new_frame_size = new_mtu +IXGBE_PKT_HDR_PAD ; -if (new_frame_size >ixgbe_rx_bufsz (ring)) { -e_warn (probe,"Requested MTU size is not supported with XDP\n" ); -return -EINVAL ; - } +if (new_frame_size >ixgbe_max_xdp_frame_size (adapter)) { +e_warn (probe,"Requested MTU size is not supported with XDP\n" ); +return -EINVAL ; } }
drivers/net/ethernet/pensando/ionic/ionic_lif.c +12 -3
@@ -190,6 +190,7 @@ static int ionic_qcq_enable(struct ionic_qcq *qcq) .oper = IONIC_Q_ENABLE, }, }; +int ret; idev = &lif->ionic->idev; dev = lif->ionic->dev;
@@ -197,16 +198,24 @@ static int ionic_qcq_enable(struct ionic_qcq *qcq)dev_dbg (dev,"q_enable.index %d q_enable.qtype %d\n" , ctx.cmd.q_control.index, ctx.cmd.q_control.type); +if (qcq->flags &IONIC_QCQ_F_INTR ) +ionic_intr_clean (idev->intr_ctrl, qcq->intr.index); + + ret =ionic_adminq_post_wait (lif, &ctx); +if (ret) +return ret; + +if (qcq->napi.poll) +napi_enable (&qcq->napi); +if (qcq->flags &IONIC_QCQ_F_INTR ) {irq_set_affinity_hint (qcq->intr.vector, &qcq->intr.affinity_mask); -napi_enable (&qcq->napi); -ionic_intr_clean (idev->intr_ctrl, qcq->intr.index);ionic_intr_mask (idev->intr_ctrl, qcq->intr.index,IONIC_INTR_MASK_CLEAR ); } -return ionic_adminq_post_wait (lif, &ctx); +return 0 ; }static int ionic_qcq_disable (struct ionic_qcq *qcq)
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +2 -0
@@ -505,6 +505,8 @@ static int qcom_ethqos_probe(struct platform_device *pdev) plat_dat->has_gmac4 =1 ; plat_dat->pmt =1 ; plat_dat->tso_en =of_property_read_bool (np,"snps,tso" ); +if (of_device_is_compatible (np,"qcom,qcs404-ethqos" )) + plat_dat->rx_clk_runs_in_lpi =1 ; ret =stmmac_dvr_probe (&pdev->dev, plat_dat, &stmmac_res);if (ret)
drivers/net/ethernet/stmicro/stmmac/dwmac5.c +2 -1
@@ -520,9 +520,9 @@ int dwmac5_flex_pps_config(void __iomem *ioaddr, int index,return 0 ; } - val |=PPSCMDx (index,0x2 ); val |=TRGTMODSELx (index,0x2 ); val |=PPSEN0 ; +writel (val, ioaddr +MAC_PPS_CONTROL );writel (cfg->start.tv_sec, ioaddr +MAC_PPSx_TARGET_TIME_SEC (index));
@@ -547,6 +547,7 @@ int dwmac5_flex_pps_config(void __iomem *ioaddr, int index,writel (period -1 , ioaddr +MAC_PPSx_WIDTH (index));/* Finally, activate it */ + val |=PPSCMDx (index,0x2 );writel (val, ioaddr +MAC_PPS_CONTROL );return 0 ; }
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +2 -1
@@ -932,7 +932,8 @@ static void stmmac_mac_link_up(struct phylink_config *config,stmmac_mac_set (priv, priv->ioaddr, true);if (phy && priv->dma_cap.eee) { - priv->eee_active =phy_init_eee (phy,1 ) >=0 ; + priv->eee_active = +phy_init_eee (phy, !priv->plat->rx_clk_runs_in_lpi) >=0 ; priv->eee_enabled =stmmac_eee_init (priv);stmmac_set_eee_pls (priv, priv->hw, true); }
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +1 -1
@@ -554,7 +554,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac) dma_cfg->mixed_burst =of_property_read_bool (np,"snps,mixed-burst" ); plat->force_thresh_dma_mode =of_property_read_bool (np,"snps,force_thresh_dma_mode" ); -if (plat->force_thresh_dma_mode) { +if (plat->force_thresh_dma_mode && plat->force_sf_dma_mode) { plat->force_sf_dma_mode =0 ;dev_warn (&pdev->dev,"force_sf_dma_mode is ignored if force_thresh_dma_mode is set.\n" );
drivers/net/phy/meson-gxl.c +4 -0
@@ -235,6 +235,8 @@ static struct phy_driver meson_gxl_phy[] = { .config_intr = meson_gxl_config_intr, .suspend = genphy_suspend, .resume = genphy_resume, + .read_mmd = genphy_read_mmd_unsupported, + .write_mmd = genphy_write_mmd_unsupported, }, { PHY_ID_MATCH_EXACT(0x01803301), .name = "Meson G12A Internal PHY",
@@ -245,6 +247,8 @@ static struct phy_driver meson_gxl_phy[] = { .config_intr = meson_gxl_config_intr, .suspend = genphy_suspend, .resume = genphy_resume, + .read_mmd = genphy_read_mmd_unsupported, + .write_mmd = genphy_write_mmd_unsupported, }, };
drivers/net/usb/kalmia.c +4 -4
@@ -65,8 +65,8 @@ kalmia_send_init_packet(struct usbnet *dev, u8 *init_msg, u8 init_msg_len, init_msg, init_msg_len, &act_len, KALMIA_USB_TIMEOUT);if (status !=0 ) {netdev_err (dev->net, -"Error sending init packet. Status %i, length %i\n" , - status, act_len); +"Error sending init packet. Status %i\n" , + status);return status; }else if (act_len != init_msg_len) {
@@ -83,8 +83,8 @@ kalmia_send_init_packet(struct usbnet *dev, u8 *init_msg, u8 init_msg_len,if (status !=0 )netdev_err (dev->net, -"Error receiving init result. Status %i, length %i\n" , - status, act_len); +"Error receiving init result. Status %i\n" , + status);else if (act_len != expected_len)netdev_err (dev->net,"Unexpected init result length: %i\n" , act_len);
drivers/net/usb/plusb.c +1 -3
@@ -57,9 +57,7 @@static inline int pl_vendor_req (struct usbnet *dev,u8 req,u8 val,u8 index) { -return usbnet_read_cmd (dev, req, -USB_DIR_IN |USB_TYPE_VENDOR | -USB_RECIP_DEVICE , +return usbnet_write_cmd (dev, req,USB_TYPE_VENDOR |USB_RECIP_DEVICE , val, index,NULL ,0 ); }
drivers/net/virtio_net.c +1 -1
@@ -1910,8 +1910,8 @@ static int virtnet_close(struct net_device *dev)cancel_delayed_work_sync (&vi->refill);for (i =0 ; i < vi->max_queue_pairs; i++) { -xdp_rxq_info_unreg (&vi->rq[i].xdp_rxq);napi_disable (&vi->rq[i].napi); +xdp_rxq_info_unreg (&vi->rq[i].xdp_rxq);virtnet_napi_tx_disable (&vi->sq[i].napi); }
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +17 -0
@@ -87,6 +87,9 @@#define BRCMF_ASSOC_PARAMS_FIXED_SIZE \ (sizeof(struct brcmf_assoc_params_le) - sizeof(u16)) +#define BRCMF_MAX_CHANSPEC_LIST \ + (BRCMF_DCMD_MEDLEN / sizeof(__le32) - 1) +static bool check_vif_up (struct brcmf_cfg80211_vif *vif) {if (!test_bit (BRCMF_VIF_STATUS_READY , &vif->sme_state)) {
@@ -6067,6 +6070,13 @@ static int brcmf_construct_chaninfo(struct brcmf_cfg80211_info *cfg, band->channels[i].flags =IEEE80211_CHAN_DISABLED ; total =le32_to_cpu (list->count); +if (total >BRCMF_MAX_CHANSPEC_LIST ) { +bphy_err (drvr,"Invalid count of channel Spec. (%u)\n" , + total); + err = -EINVAL ; + goto fail_pbuf; + } +for (i =0 ; i < total; i++) { ch.chspec = (u16 )le32_to_cpu (list->element[i]); cfg->d11inf.decchspec (&ch);
@@ -6212,6 +6222,13 @@ static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg) band =cfg_to_wiphy (cfg)->bands[NL80211_BAND_2GHZ ]; list = (struct brcmf_chanspec_list *)pbuf; num_chan =le32_to_cpu (list->count); +if (num_chan >BRCMF_MAX_CHANSPEC_LIST ) { +bphy_err (drvr,"Invalid count of channel Spec. (%u)\n" , + num_chan); +kfree (pbuf); +return -EINVAL ; + } +for (i =0 ; i < num_chan; i++) { ch.chspec = (u16 )le32_to_cpu (list->element[i]); cfg->d11inf.decchspec (&ch);
drivers/nvme/host/pci.c +2 -1
@@ -3199,7 +3199,6 @@ static const struct pci_device_id nvme_id_table[] = { NVME_QUIRK_IGNORE_DEV_SUBNQN, }, { PCI_DEVICE(0x1c5c, 0x1504), /* SK Hynix PC400 */ .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, - { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) }, { PCI_DEVICE(0x2646, 0x2263), /* KINGSTON A2000 NVMe SSD */ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
@@ -3209,6 +3208,8 @@ static const struct pci_device_id nvme_id_table[] = { .driver_data = NVME_QUIRK_SINGLE_VECTOR | NVME_QUIRK_128_BYTES_SQES | NVME_QUIRK_SHARED_TAGS }, + + { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) }, { 0, } };MODULE_DEVICE_TABLE (pci, nvme_id_table);
drivers/nvme/target/fc.c +3 -1
@@ -1362,8 +1362,10 @@ nvmet_fc_ls_create_association(struct nvmet_fc_tgtport *tgtport,else { queue =nvmet_fc_alloc_target_queue (iod->assoc,0 ,be16_to_cpu (rqst->assoc_cmd.sqsize)); -if (!queue) +if (!queue) { ret =VERR_QUEUE_ALLOC_FAIL ; +nvmet_fc_tgt_a_put (iod->assoc); + } } }
drivers/nvmem/core.c +1 -2
@@ -439,7 +439,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)if (config->cells) { rval =nvmem_add_cells (nvmem, config->cells, config->ncells);if (rval) - goto err_teardown_compat; + goto err_remove_cells; } rval =nvmem_add_cells_from_table (nvmem);
@@ -456,7 +456,6 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) err_remove_cells:nvmem_device_remove_all_cells (nvmem); -err_teardown_compat:if (config->compat)nvmem_sysfs_remove_compat (nvmem, config); err_device_del:
drivers/pinctrl/aspeed/pinctrl-aspeed.c +1 -1
@@ -115,7 +115,7 @@ static int aspeed_disable_sig(struct aspeed_pinmux_data *ctx,int ret =0 ;if (!exprs) -return true; +return -EINVAL ;while (*exprs && !ret) { ret =aspeed_sig_expr_disable (ctx, *exprs);
drivers/pinctrl/intel/pinctrl-intel.c +13 -3
@@ -1510,6 +1510,12 @@ int intel_pinctrl_probe_by_uid(struct platform_device *pdev)EXPORT_SYMBOL_GPL (intel_pinctrl_probe_by_uid);#ifdef CONFIG_PM_SLEEP +static bool __intel_gpio_is_direct_irq (u32 value) +{ +return (value &PADCFG0_GPIROUTIOXAPIC ) && (value &PADCFG0_GPIOTXDIS ) && + (__intel_gpio_get_gpio_mode (value) ==PADCFG0_PMODE_GPIO ); +} +static bool intel_pinctrl_should_save (struct intel_pinctrl *pctrl,unsigned int pin) {const struct pin_desc *pd =pin_desc_get (pctrl->pctldev, pin);
@@ -1543,8 +1549,7 @@ static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int* See https://bugzilla.kernel.org/show_bug.cgi?id=214749. */ value =readl (intel_get_padcfg (pctrl, pin,PADCFG0 )); -if ((value &PADCFG0_GPIROUTIOXAPIC ) && (value &PADCFG0_GPIOTXDIS ) && - (__intel_gpio_get_gpio_mode (value) ==PADCFG0_PMODE_GPIO )) +if (__intel_gpio_is_direct_irq (value))return true;return false;
@@ -1656,7 +1661,12 @@ int intel_pinctrl_resume_noirq(struct device *dev)void __iomem *padcfg;u32 val; -if (!intel_pinctrl_should_save (pctrl, desc->number)) +if (!(intel_pinctrl_should_save (pctrl, desc->number) || +/* +* If the firmware mangled the register contents too much, +* check the saved value for the Direct IRQ mode. +*/ +__intel_gpio_is_direct_irq (pads[i].padcfg0)))continue ; padcfg =intel_get_padcfg (pctrl, desc->number,PADCFG0 );
drivers/pinctrl/pinctrl-single.c +2 -0
@@ -345,6 +345,8 @@ static int pcs_set_mux(struct pinctrl_dev *pctldev, unsigned fselector,if (!pcs->fmask)return 0 ; function =pinmux_generic_get_function (pctldev, fselector); +if (!function) +return -EINVAL ; func = function->data;if (!func)return -EINVAL ;
drivers/scsi/iscsi_tcp.c +6 -3
@@ -770,7 +770,7 @@ static int iscsi_sw_tcp_host_get_param(struct Scsi_Host *shost, enum iscsi_host_param param, char *buf) { struct iscsi_sw_tcp_host *tcp_sw_host = iscsi_host_priv(shost); -struct iscsi_session *session = tcp_sw_host->session; +struct iscsi_session *session;struct iscsi_conn *conn;struct iscsi_tcp_conn *tcp_conn;struct iscsi_sw_tcp_conn *tcp_sw_conn;
@@ -779,6 +779,7 @@ static int iscsi_sw_tcp_host_get_param(struct Scsi_Host *shost,switch (param) {case ISCSI_HOST_PARAM_IPADDRESS : + session = tcp_sw_host->session;if (!session)return -ENOTCONN ;
@@ -867,12 +868,14 @@ iscsi_sw_tcp_session_create(struct iscsi_endpoint *ep, uint16_t cmds_max,if (!cls_session) goto remove_host; session = cls_session->dd_data; - tcp_sw_host =iscsi_host_priv (shost); - tcp_sw_host->session = session;
Lines of this file are not shown. View the raw message.
drivers/usb/typec/altmodes/displayport.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/smscufx.c +31 -15
46 lines not on this page · raw message
fs/xfs/libxfs/xfs_defer.c +277 -81
358 lines not on this page · raw message
fs/xfs/libxfs/xfs_defer.h +43 -6
49 lines not on this page · raw message
fs/xfs/xfs_bmap_item.c +125 -113
238 lines not on this page · raw message
fs/xfs/xfs_extfree_item.c +98 -77
175 lines not on this page · raw message
fs/xfs/xfs_log.c +50 -18
68 lines not on this page · raw message
fs/xfs/xfs_log_recover.c +92 -68
160 lines not on this page · raw message
fs/xfs/xfs_refcount_item.c +93 -80
173 lines not on this page · raw message
fs/xfs/xfs_rmap_item.c +91 -70
161 lines not on this page · raw message
tools/testing/selftests/bpf/verifier/search_pruning.c +36 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/fib_tests.sh new file +1727 -0
1,727 lines not on this page · raw message
tools/testing/selftests/net/forwarding/lib.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench.sh +20 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench_rx.c +3 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench_tx.c +29 -7
Lines of this file are not shown. View the raw message.
tools/virtio/linux/build_bug.h new file +7 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.