Linux 5.15.139
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.139 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/qcom-mdm9615.dtsi | 14 - arch/arm/boot/dts/r8a7792-blanche.dts | 2 arch/arm/lib/memset.S | 1 arch/arm/xen/enlighten.c | 25 + arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 arch/arm64/boot/dts/freescale/imx8mn.dtsi | 1 arch/arm64/boot/dts/freescale/imx8qm-ss-img.dtsi | 2 arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 4 arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 4 arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 3 arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 5 arch/arm64/boot/dts/qcom/sc7280.dtsi | 8 arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 2 arch/powerpc/include/asm/nohash/32/pte-40x.h | 3 arch/powerpc/kernel/traps.c | 2 arch/powerpc/perf/imc-pmu.c | 2 arch/powerpc/platforms/pseries/lpar.c | 4 arch/powerpc/sysdev/xive/native.c | 2 arch/sh/Kconfig.debug | 11 arch/x86/events/intel/pt.c | 14 - arch/x86/include/asm/page.h | 10 arch/x86/include/asm/uaccess.h | 2 arch/x86/kernel/cpu/bugs.c | 2 arch/x86/kernel/head64.c | 2 arch/x86/kvm/emulate.c | 4 arch/x86/kvm/x86.c | 2 arch/x86/kvm/x86.h | 7 arch/x86/lib/copy_mc.c | 8 arch/x86/mm/maccess.c | 24 + block/blk-core.c | 14 - drivers/acpi/device_sysfs.c | 10 drivers/base/regmap/regmap-debugfs.c | 2 drivers/base/regmap/regmap.c | 16 - drivers/char/hw_random/geode-rng.c | 6 drivers/clk/clk-npcm7xx.c | 2 drivers/clk/clk-scmi.c | 1 drivers/clk/imx/Kconfig | 1 drivers/clk/imx/clk-imx8mq.c | 17 - drivers/clk/imx/clk-imx8qxp.c | 2 drivers/clk/keystone/pll.c | 15 - drivers/clk/mediatek/clk-mt2701.c | 8 drivers/clk/mediatek/clk-mt6765.c | 6 drivers/clk/mediatek/clk-mt6779.c | 4 drivers/clk/mediatek/clk-mt6797.c | 6 drivers/clk/mediatek/clk-mt7629-eth.c | 4 drivers/clk/mediatek/clk-mt7629.c | 6 drivers/clk/qcom/Kconfig | 1 drivers/clk/qcom/clk-rcg2.c | 14 - drivers/clk/qcom/gcc-sm8150.c | 2 drivers/clk/qcom/mmcc-msm8998.c | 7 drivers/clk/renesas/rzg2l-cpg.c | 20 - drivers/clk/ti/apll.c | 13 drivers/clk/ti/autoidle.c | 2 drivers/clk/ti/clk-dra7-atl.c | 6 drivers/clk/ti/clk.c | 52 ++- drivers/clk/ti/clkctrl.c | 4 drivers/clk/ti/clock.h | 11 drivers/clk/ti/clockdomain.c | 2 drivers/clk/ti/composite.c | 6 drivers/clk/ti/divider.c | 12 drivers/clk/ti/dpll.c | 10 drivers/clk/ti/fapll.c | 11 drivers/clk/ti/fixed-factor.c | 4 drivers/clk/ti/gate.c | 8 drivers/clk/ti/interface.c | 9 drivers/clk/ti/mux.c | 8 drivers/crypto/caam/caamalg.c | 3 drivers/crypto/caam/caamalg_qi2.c | 3 drivers/crypto/hisilicon/hpre/hpre_main.c | 2 drivers/crypto/qat/qat_common/adf_accel_devices.h | 2 drivers/crypto/qat/qat_common/adf_transport_debug.c | 4 drivers/crypto/qat/qat_common/qat_algs_send.c | 46 +-- drivers/cxl/core/memdev.c | 3 drivers/devfreq/event/rockchip-dfi.c | 15 - drivers/dma/idxd/Makefile | 6 drivers/dma/pxa_dma.c | 1 drivers/dma/ti/edma.c | 4 drivers/firmware/arm_ffa/bus.c | 1 drivers/firmware/ti_sci.c | 46 --- drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 8 drivers/gpu/drm/bridge/lontium-lt8912b.c | 62 ++-- drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 75 ++--- drivers/gpu/drm/bridge/tc358768.c | 25 + drivers/gpu/drm/drm_mipi_dsi.c | 81 ++++++ drivers/gpu/drm/drm_syncobj.c | 3 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 drivers/gpu/drm/mediatek/mtk_dsi.c | 4 drivers/gpu/drm/msm/dsi/dsi_host.c | 3 drivers/gpu/drm/radeon/evergreen.c | 7 drivers/gpu/drm/rockchip/cdn-dp-core.c | 15 - drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 2 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 8 drivers/hid/hid-cp2112.c | 9 drivers/hid/hid-logitech-hidpp.c | 76 ++--- drivers/hwmon/axi-fan-control.c | 29 +- drivers/hwmon/coretemp.c | 2 drivers/i2c/busses/i2c-bcm-iproc.c | 133 +++++----- drivers/i3c/master.c | 4 drivers/infiniband/core/device.c | 2 drivers/infiniband/core/sa_query.c | 4 drivers/infiniband/core/sysfs.c | 10 drivers/infiniband/core/user_mad.c | 4 drivers/infiniband/hw/hfi1/efivar.c | 2 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 5 drivers/infiniband/hw/hns/hns_roce_qp.c | 2 drivers/infiniband/hw/mlx5/qp.c | 27 ++ drivers/input/rmi4/rmi_bus.c | 2 drivers/leds/leds-pwm.c | 2 drivers/leds/leds-turris-omnia.c | 65 +++- drivers/leds/trigger/ledtrig-cpu.c | 4 drivers/media/i2c/max9286.c | 2 drivers/media/pci/bt8xx/bttv-driver.c | 1 drivers/media/platform/s3c-camif/camif-capture.c | 6 drivers/media/test-drivers/vidtv/vidtv_mux.c | 7 drivers/media/test-drivers/vidtv/vidtv_psi.c | 45 +++ drivers/media/usb/dvb-usb-v2/af9035.c | 13 drivers/mfd/arizona-spi.c | 3 drivers/mfd/dln2.c | 1 drivers/mfd/mfd-core.c | 17 - drivers/misc/ti-st/st_core.c | 7 drivers/mmc/core/mmc.c | 2 drivers/net/can/dev/dev.c | 10 drivers/net/can/dev/skb.c | 6 drivers/net/ethernet/broadcom/tg3.c | 3 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 2 drivers/net/ethernet/google/gve/gve_main.c | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 10 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 80 +++--- drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h | 34 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c | 2 drivers/net/ethernet/realtek/r8169_main.c | 15 - drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 2 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 14 - drivers/net/ethernet/toshiba/spider_net.c | 2 drivers/net/ipvlan/ipvlan_core.c | 8 drivers/net/ipvlan/ipvlan_main.c | 1 drivers/net/macsec.c | 6 drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 5 drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 7 drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 4 drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 21 + drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 72 +++-- drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 2 drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 drivers/net/wireless/intel/iwlwifi/queue/tx.c | 9 drivers/net/wireless/intel/iwlwifi/queue/tx.h | 2 drivers/net/wireless/mediatek/mt76/dma.c | 46 +-- drivers/net/wireless/mediatek/mt76/mac80211.c | 1 drivers/net/wireless/mediatek/mt76/mt76.h | 5 drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 78 ++++- drivers/net/wireless/mediatek/mt76/mt7603/core.c | 2 drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 23 + drivers/net/wireless/mediatek/mt76/mt7603/regs.h | 5 drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 3 drivers/net/wireless/mediatek/mt76/sdio.c | 6 drivers/net/wireless/mediatek/mt76/testmode.c | 4 drivers/net/wireless/mediatek/mt76/tx.c | 2 drivers/net/wireless/mediatek/mt76/usb.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c | 2 drivers/net/wireless/realtek/rtw88/debug.c | 4 drivers/nvdimm/of_pmem.c | 8 drivers/nvdimm/region_devs.c | 8 drivers/pcmcia/cs.c | 1 drivers/pcmcia/ds.c | 14 - drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 4 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 4 drivers/platform/x86/wmi.c | 50 +-- drivers/pwm/pwm-brcmstb.c | 4 drivers/pwm/pwm-sti.c | 29 +- drivers/rtc/rtc-pcf85363.c | 2 drivers/scsi/ibmvscsi/ibmvfc.c | 3 drivers/scsi/ufs/ufshcd.c | 2 drivers/soc/qcom/llcc-qcom.c | 3 drivers/spi/Kconfig | 1 drivers/spi/spi-nxp-fspi.c | 2 drivers/spi/spi-tegra20-slink.c | 2 drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 24 - drivers/thermal/thermal_core.c | 6 drivers/tty/tty_jobctrl.c | 17 - drivers/usb/chipidea/host.c | 48 +-- drivers/usb/dwc2/hcd.c | 2 drivers/usb/host/xhci-pci.c | 2 drivers/usb/host/xhci-plat.c | 23 + drivers/usb/usbip/stub_dev.c | 9 drivers/video/fbdev/fsl-diu-fb.c | 2 drivers/video/fbdev/imsttfb.c | 33 +- drivers/xen/xen-pciback/conf_space.c | 19 - drivers/xen/xen-pciback/conf_space_capability.c | 8 drivers/xen/xen-pciback/conf_space_header.c | 21 - fs/btrfs/ioctl.c | 10 fs/ext4/extents.c | 10 fs/f2fs/data.c | 4 fs/f2fs/file.c | 1 fs/f2fs/super.c | 33 ++ fs/fs-writeback.c | 41 ++- fs/pstore/platform.c | 9 include/drm/drm_mipi_dsi.h | 4 include/linux/cpuhotplug.h | 1 include/linux/idr.h | 6 include/linux/mfd/core.h | 2 include/linux/netdevice.h | 1 include/net/flow.h | 2 include/net/netfilter/nf_nat_redirect.h | 3 include/net/tcp.h | 2 kernel/bpf/helpers.c | 25 + kernel/futex/core.c | 12 kernel/irq/matrix.c | 6 kernel/livepatch/core.c | 2 kernel/padata.c | 6 kernel/sched/core.c | 10 kernel/sched/deadline.c | 2 kernel/sched/fair.c | 22 - kernel/sched/rt.c | 4 kernel/trace/trace_kprobe.c | 2 mm/readahead.c | 3 net/9p/client.c | 6 net/dccp/ipv4.c | 6 net/dccp/ipv6.c | 6 net/hsr/hsr_forward.c | 4 net/ipv4/syncookies.c | 20 - net/ipv4/tcp_input.c | 9 net/ipv4/tcp_metrics.c | 15 - net/ipv4/udp.c | 6 net/ipv6/ip6_output.c | 8 net/ipv6/syncookies.c | 7 net/llc/llc_input.c | 10 net/llc/llc_s_ac.c | 3 net/llc/llc_station.c | 3 net/netfilter/nf_nat_redirect.c | 98 ++++--- net/netfilter/nf_tables_api.c | 4 net/netfilter/nft_redir.c | 84 ++---- net/netfilter/xt_REDIRECT.c | 10 net/netfilter/xt_recent.c | 2 net/smc/af_smc.c | 4 net/smc/smc.h | 5 net/smc/smc_cdc.c | 11 net/smc/smc_close.c | 5 net/tipc/link.c | 4 net/tipc/netlink.c | 4 scripts/mod/file2alias.c | 10 sound/soc/codecs/hdmi-codec.c | 27 +- sound/soc/fsl/fsl_easrc.c | 8 sound/soc/fsl/mpc5200_dma.c | 3 sound/soc/intel/skylake/skl-sst-utils.c | 1 sound/soc/ti/ams-delta.c | 4 tools/iio/iio_generic_buffer.c | 13 tools/perf/util/hist.c | 10 tools/perf/util/machine.c | 22 - tools/testing/selftests/bpf/prog_tests/tailcalls.c | 85 +++++- tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c | 42 +++ tools/testing/selftests/net/pmtu.sh | 2 tools/testing/selftests/pidfd/pidfd_fdinfo_test.c | 2 tools/testing/selftests/pidfd/pidfd_test.c | 12 tools/testing/selftests/resctrl/resctrl_tests.c | 5 259 files changed, 1896 insertions(+), 1187 deletions(-)
Aananth V (1):
tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed
Abel Vesa (1):
clk: imx: Select MXC_CLK for CLK_IMX8QXP
Adam Dunlap (1):
x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot
Adam Ford (2):
arm64: dts: imx8mm: Add sound-dai-cells to micfil node
arm64: dts: imx8mn: Add sound-dai-cells to micfil node
Adrian Hunter (1):
x86: Share definition of __is_canonical_address()
Amit Kumar Mahapatra (1):
spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
Andrii Staikov (1):
i40e: fix potential memory leaks in i40e_remove()
AngeloGioacchino Del Regno (1):
drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling
Armin Wolf (2):
platform/x86: wmi: Fix probe failure when failing to register WMI devices platform/x86: wmi: Fix opening of char device
Arnd Bergmann (1):
fbdev: fsl-diu-fb: mark wr_reg_wa() static
Barnabás Pőcze (1):
platform/x86: wmi: remove unnecessary initializations
Basavaraj Natikar (1):
xhci: Loosen RPM as default policy to cover for AMD xHC 1.1
Bastien Nocera (2):
Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures"
HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk
Ben Wolsieffer (2):
futex: Don't include process MM in futex key on no-MMU
regmap: prevent noinc writes from clobbering cache
Benjamin Gray (1):
powerpc/xive: Fix endian conversion size
Cezary Rojewski (1):
ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails
Chao Yu (3):
f2fs: compress: fix to avoid use-after-free on dic
f2fs: compress: fix to avoid redundant compress extension
f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()
Chen Ni (1):
libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value
Chen Yu (1):
genirq/matrix: Exclude managed interrupts in irq_matrix_allocated()
Chengchang Tang (2):
RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() RDMA/hns: Fix signed-unsigned mixed comparisons
Chris Packham (1):
ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins
Christophe JAILLET (7):
ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias()
regmap: debugfs: Fix a erroneous check after snprintf() drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe()
crypto: hisilicon/hpre - Fix a erroneous check after snprintf()
leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
media: i2c: max9286: Fix some redundant of_node_put() calls
Christophe Leroy (2):
powerpc: Only define __parse_fpscr() when required powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro
Claudiu Beznea (2):
clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields
clk: renesas: rzg2l: Fix computation formula
D. Wythe (3):
net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc net/smc: put sk reference if close work was canceled
Dan Carpenter (8):
thermal: core: prevent potential string overflow
clk: keystone: pll: fix a couple NULL vs IS_ERR() checks
clk: ti: fix double free in of_ti_divider_clk_setup() drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map()
dmaengine: ti: edma: handle irq_of_parse_and_map() errors
Input: synaptics-rmi4 - fix use after free in rmi_unregister_function()
hsr: Prevent use after free in prp_create_tagged_frame()
fbdev: imsttfb: fix a resource leak in probe
Dan Williams (1):
cxl/mem: Fix shutdown order
Daniel Mentz (1):
scsi: ufs: core: Leave space for '\0' in utf8 desc string
Danila Tikhonov (1):
clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src
Danny Kaehn (2):
hid: cp2112: Fix duplicate workqueue initialization
hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip
Dario Binacchi (1):
clk: ti: change ti_clk_register[_omap_hw]() API
David Howells (1):
iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()
Devi Priya (1):
clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies
Dhruva Gole (1):
firmware: ti_sci: Mark driver as non removable
Dinghao Liu (2):
mfd: dln2: Fix double put in dln2_probe
i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs
Dmitry Antipov (1):
wifi: rtlwifi: fix EDCA limit set by BT coexistence
Dmitry Baryshkov (3):
drm/bridge: lt9611uxc: fix the race in the error path drm/msm/dsi: use msm_gem_kernel_put to free TX buffer
arm64: dts: qcom: sdm845-mtp: fix WiFi configuration
Dmitry Osipenko (1):
drm/bridge: tc358768: Disable non-continuous clock mode
Dominique Martinet (1):
Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
Dragos Bogdan (1):
hwmon: (axi-fan-control) Fix possible NULL pointer dereference
Eric Dumazet (9):
udp: add missing WRITE_ONCE() around up->encap_rcv
tcp_metrics: add missing barriers on delete
tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics()
tcp_metrics: do not create an entry from tcp_init_metrics()
chtls: fix tp->rcv_tstamp initialization
tcp: fix cookie_init_timestamp() overflows
net: add DEV_STATS_READ() helper
ipvlan: properly track tx_errors
inet: shrink struct flowi_common
Erik Kurzinger (1):
drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE
Fabio Estevam (1):
arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry
Felix Fietkau (5):
wifi: mt76: mt7603: rework/fix rx pse hang check
mt76: dma: use kzalloc instead of devm_kzalloc for txwi
mt76: add support for overriding the device used for DMA mapping
mt76: pass original queue id from __mt76_tx_queue_skb to the driver
wifi: mt76: mt7603: improve stuck beacon handling
Fenghua Yu (1):
dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers
Filipe Manana (1):
btrfs: use u64 for buffer sizes in the tree search ioctls
Florian Fainelli (1):
pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume
Florian Westphal (1):
netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses
Furong Xu (1):
net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs
Gaurav Jain (2):
crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure
crypto: caam/jr - fix Chacha20 + Poly1305 self test failure
Gaurav Kohli (1):
arm64: dts: qcom: msm8916: Fix iommu local address range
Geert Uytterhoeven (3):
clk: renesas: rzg2l: Simplify multiplication/shift logic
ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name
sh: bios: Revive earlyprintk support
George Shuklin (1):
tg3: power down device only on SYSTEM_POWER_OFF
Giovanni Cabiddu (2):
crypto: qat - increase size of buffers
crypto: qat - fix deadlock in backlog processing
Gou Hao (1):
ext4: move 'ix' sanity check to corrent position
Greg Kroah-Hartman (1):
Linux 5.15.139
Gregory Greenman (1):
wifi: iwlwifi: call napi_synchronize() before freeing rx/tx queues
Gustavo A. R. Silva (5):
gve: Use size_add() in call to struct_size()
mlxsw: Use size_mul() in call to struct_size()
tipc: Use size_add() in calls to struct_size()
net: spider_net: Use size_add() in call to struct_size() RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
Han Xu (1):
spi: nxp-fspi: use the correct ioremap function
Hangbin Liu (1):
selftests: pmtu.sh: fix result checking
Hangyu Hua (1):
9p/net: fix possible memory leak in p9_check_errors()
Hans Verkuil (1):
media: dvb-usb-v2: af9035: fix missing unlock
Hans de Goede (4):
HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only
HID: logitech-hidpp: Revert "Don't restart communication if not necessary"
HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event()
mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs
Heiner Kallweit (2):
r8169: fix rare issue with broken rx after link-down on RTL8125
r8169: respect userspace disabling IFF_MULTICAST
Helge Deller (1):
fbdev: imsttfb: Fix error path of imsttfb_probe()
Herve Codina (1):
mfd: core: Ensure disabled devices are skipped without aborting
Hou Tao (1):
bpf: Check map->usercnt after timer->timer is assigned
Ian Rogers (2):
perf machine: Avoid out of bounds LBR memory read perf hist: Add missing puts to hist__account_cycles
Ilpo Järvinen (1):
selftests/resctrl: Ensure the benchmark commands fits to its array
Jakub Sitnicki (1):
selftests/bpf: Test tail call counting with bpf2bpf and data on stack
Jason-JH.Lin (2):
drm/mediatek: Fix iommu fault by swapping FBs after updating plane state drm/mediatek: Fix iommu fault during crtc enabling
Javier Carrasco (1):
rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call
Jeremy Sowden (1):
netfilter: nft_redir: use struct nf_nat_range2 throughout and deduplicate eval call-backs
Jernej Skrabec (1):
media: cedrus: Fix clock/reset sequence
Jerome Brunet (1):
ASoC: hdmi-codec: register hpd callback on component probe
Jia-Ju Bai (1):
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
Jiasheng Jiang (9):
pstore/platform: Add check for kstrdup
clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data
media: vidtv: psi: Add check for kstrdup
media: vidtv: mux: Add check and kfree for kstrdup
Jingbo Xu (1):
writeback, cgroup: switch inodes with dirty timestamps to release dying cgwbs
Jinjie Ruan (2):
wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()
Johannes Berg (2):
iwlwifi: pcie: adjust to Bz completion descriptor
wifi: iwlwifi: pcie: synchronize IRQs before NAPI
Jonas Blixt (1):
USB: usbip: fix stub_dev hub disconnect
Jonas Gorski (1):
hwrng: geode - fix accessing registers
Jonas Karlman (2):
drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs drm/rockchip: vop: Fix call to crtc reset helper
Jonathan Neuschäfer (1):
clk: npcm7xx: Fix incorrect kfree
Josh Poimboeuf (1):
x86/srso: Fix SBPB enablement for (possible) future fixed HW
Juhee Kang (1):
r8169: use tp_to_dev instead of open code
Junhao He (1):
perf: hisi: Fix use-after-free when register pmu fails
Katya Orlova (1):
media: s3c-camif: Avoid inappropriate kfree()
Konrad Dybcio (3):
clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks
clk: qcom: mmcc-msm8998: Fix the SMMU GDSC
arm64: dts: qcom: sc7280: Add missing LMH interrupts
Konstantin Meskhidze (1):
drm/radeon: possible buffer overflow
Krzysztof Kozlowski (2):
arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory
ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator
Kuninori Morimoto (2):
ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described
ASoC: ams-delta.c: use component after check
Kuniyuki Iwashima (2):
dccp: Call security_inet_conn_request() after setting IPv4 addresses. dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses.
Kursad Oney (1):
ARM: 9321/1: memset: cast the constant byte to unsigned char
Leon Hwang (1):
selftests/bpf: Correct map_fd to data_fd in tailcalls
Leon Romanovsky (1):
RDMA/hfi1: Workaround truncation compilation error
Luoyouming (1):
RDMA/hns: The UD mode can only be configured with DCQCN
Maciej Wieczor-Retman (1):
selftests/pidfd: Fix ksft print formats
Maciej Żenczykowski (1):
netfilter: xt_recent: fix (increase) ipv6 literal buffer length
Marc Kleine-Budde (3):
can: dev: can_restart(): don't crash kernel if carrier is OK
can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on()
can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds
Marek Behún (2):
leds: turris-omnia: Drop unnecessary mutex locking
leds: turris-omnia: Do not use SMBUS calls
Marek Marczykowski-Górecki (1):
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
Mark Rutland (1):
arm64/arm: xen: enlighten: Fix KPTI checks
Masahiro Yamada (1):
modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host
Matti Vaittinen (1):
tools: iio: iio_generic_buffer ensure alignment
Maxime Ripard (6):
drm/mipi-dsi: Create devm device registration drm/mipi-dsi: Create devm device attachment drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers drm/bridge: lt8912b: Register and attach our DSI device at probe drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers drm/bridge: lt9611uxc: Register and attach our DSI device at probe
Miaohe Lin (1):
block: remove unneeded return value of bio_check_ro()
Michał Mirosław (3):
mfd: core: Un-constify mfd_cell.of_reg
usb: chipidea: Fix DMA overwrite for Tegra
usb: chipidea: Simplify Tegra DMA alignment code
Miri Korenblit (1):
wifi: iwlwifi: empty overflow queue during flush
NeilBrown (1):
Fix termination state for idr_for_each_entry_ul()
Patrick Thompson (1):
net: r8169: Disable multicast filter for RTL8168H and RTL8107E
Patrisious Haddad (1):
IB/mlx5: Fix rdma counter binding for RAW QP
Peng Fan (1):
clk: imx: imx8mq: correct error handling path
Peter Zijlstra (1):
sched: Fix stop_one_cpu_nowait() vs hotplug
Phil Sutter (1):
netfilter: nf_tables: Drop pointless memset when dumping rules
Qais Yousef (1):
sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0
Ratheesh Kannoth (2):
octeontx2-pf: Fix error codes
octeontx2-pf: Fix holes in error code
Reuben Hawkins (1):
vfs: fix readahead(2) on block devices
Robert Chiras (1):
clk: imx: imx8qxp: Fix elcdif_pll clock
Roman Bacik (1):
i2c: iproc: handle invalid slave state
Sascha Hauer (1):
PM / devfreq: rockchip-dfi: Make pmu regmap mandatory
Sebastian Andrzej Siewior (1):
powerpc/imc-pmu: Use the correct spinlock initializer.
Sergey Shtylyov (1):
usb: host: xhci-plat: fix possible kernel oops while resuming
Shigeru Yoshida (1):
tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING
Stefan Eichenberger (1):
drm/bridge: lt8912b: Add hot plug detection
Stephan Gerhold (1):
arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators
Sudeep Holla (2):
firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device
clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped
Tomas Glozar (1):
nd_btt: Make BTT lanes preemptible
Tomi Valkeinen (6):
drm/bridge: lt8912b: Fix bridge_detach
drm/bridge: lt8912b: Fix crash on bridge detach drm/bridge: lt8912b: Manually disable HPD only if it was enabled drm/bridge: lt8912b: Add missing drm_bridge_attach call drm/bridge: tc358768: Fix use of uninitialized variable drm/bridge: tc358768: Fix bit updates
Tony Lindgren (3):
clk: ti: Add ti_dt_clk_name() helper to use clock-output-names
clk: ti: Update pll and clockdomain clocks to use ti_dt_clk_name()
clk: ti: Update component clocks to use ti_dt_clk_name()
Tyrel Datwyler (1):
scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code
Uwe Kleine-König (3):
soc: qcom: llcc: Handle a second device without data corruption
leds: pwm: Don't disable the PWM when the LED should be off
pwm: sti: Reduce number of allocations and drop usage of chip_data
Varadarajan Narayanan (1):
clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM
Wang Yufen (1):
powerpc/pseries: fix potential memory leak in init_cpu_associativity()
WangJinchao (1):
padata: Fix refcnt handling in padata_free_shell()
Willem de Bruijn (1):
llc: verify mac len before reading mac header
Xiaogang Chen (1):
drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code
Yan Zhai (1):
ipv6: avoid atomic fragment on GSO packets
Yang Yingliang (3):
pcmcia: cs: fix possible hung task and memory leak pccardd()
pcmcia: ds: fix refcount leak in pcmcia_device_add()
pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()
Yi Yang (1):
tty: tty_jobctrl: fix pid memleak in disassociate_ctty()
Yu Kuai (1):
blk-core: use pr_warn_ratelimited() in bio_check_ro()
Yujie Liu (1):
tracing/kprobes: Fix the order of argument descriptions
Yuntao Wang (1):
x86/boot: Fix incorrect startup_gdt_descr.size
Zhang Rui (1):
hwmon: (coretemp) Fix potentially truncated sysfs attribute name
Zhang Shurong (2):
spi: tegra: Fix missing IRQ check in tegra_slink_probe()
ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe
Zheng Wang (1):
media: bttv: fix use after free error due to btv->timeout timer
Zheng Yejian (1):
livepatch: Fix missing newline character in klp_resolve_symbols()
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 138 +SUBLEVEL = 139 EXTRAVERSION = NAME = Trick or Treat
arch/arm/boot/dts/qcom-mdm9615.dtsi +6 -8
@@ -82,14 +82,12 @@ cxo_board { }; }; - regulators { - vsdcc_fixed: vsdcc-regulator { - compatible = "regulator-fixed"; - regulator-name = "SDCC Power"; - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <2700000>; - regulator-always-on; - }; + vsdcc_fixed: vsdcc-regulator { + compatible = "regulator-fixed"; + regulator-name = "SDCC Power"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + regulator-always-on; }; soc: soc {
arch/arm/boot/dts/r8a7792-blanche.dts +1 -1
@@ -239,7 +239,7 @@ du1_pins: du1 { }; keyboard_pins: keyboard { - pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_02"; + pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2"; bias-pull-up; };
arch/arm/lib/memset.S +1 -0
@@ -17,6 +17,7 @@ ENTRY(__memset) ENTRY(mmioset) WEAK(memset) UNWIND( .fnstart ) + and r1, r1, #255 @ cast to unsigned char ands r3, r0, #3 @ 1 unaligned? mov ip, r0 @ preserve r0 as return value bne 6f @ 1
arch/arm/xen/enlighten.c +16 -9
@@ -159,9 +159,6 @@ static int xen_starting_cpu(unsigned int cpu)BUG_ON (err);per_cpu (xen_vcpu, cpu) = vcpup; -if (!xen_kernel_unmapped_at_usr ()) -xen_setup_runstate_info (cpu); - after_register_vcpu_info:enable_percpu_irq (xen_events_irq,0 );return 0 ;
@@ -394,9 +391,6 @@ static int __init xen_guest_init(void)return -EINVAL ; } -if (!xen_kernel_unmapped_at_usr ()) -xen_time_setup_guest (); -if (xen_initial_domain ())pvclock_gtod_register_notifier (&xen_pvclock_gtod_notifier);
@@ -406,7 +400,13 @@ static int __init xen_guest_init(void) }early_initcall (xen_guest_init); -static int __init xen_pm_init (void ) +static int xen_starting_runstate_cpu (unsigned int cpu) +{ +xen_setup_runstate_info (cpu); +return 0 ; +} + +static int __init xen_late_init (void ) {if (!xen_domain ())return -ENODEV ;
@@ -419,9 +419,16 @@ static int __init xen_pm_init(void)do_settimeofday64 (&ts); } -return 0 ; +if (xen_kernel_unmapped_at_usr ()) +return 0 ; + +xen_time_setup_guest (); + +return cpuhp_setup_state (CPUHP_AP_ARM_XEN_RUNSTATE_STARTING , +"arm/xen_runstate:starting" , + xen_starting_runstate_cpu,NULL ); } -late_initcall (xen_pm_init); +late_initcall (xen_late_init);/* empty stubs */
arch/arm64/boot/dts/freescale/imx8mm.dtsi +1 -0
@@ -366,6 +366,7 @@ micfil: audio-controller@30080000 { "pll8k", "pll11k", "clkext3"; dmas = <&sdma2 24 25 0x80000000>; dma-names = "rx"; + #sound-dai-cells = <0>; status = "disabled"; };
arch/arm64/boot/dts/freescale/imx8mn.dtsi +1 -0
@@ -340,6 +340,7 @@ micfil: audio-controller@30080000 { "pll8k", "pll11k", "clkext3"; dmas = <&sdma2 24 25 0x80000000>; dma-names = "rx"; + #sound-dai-cells = <0>; status = "disabled"; };
arch/arm64/boot/dts/freescale/imx8qm-ss-img.dtsi +1 -1
@@ -8,5 +8,5 @@ &jpegdec { }; &jpegenc { - compatible = "nxp,imx8qm-jpgdec", "nxp,imx8qxp-jpgenc"; + compatible = "nxp,imx8qm-jpgenc", "nxp,imx8qxp-jpgenc"; };
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi +2 -2
@@ -107,7 +107,7 @@ cp0_sdhci_pins: cp0-sdhi-pins-0 { "mpp59", "mpp60", "mpp61"; marvell,function = "sdio"; }; - cp0_spi0_pins: cp0-spi-pins-0 { + cp0_spi1_pins: cp0-spi-pins-1 { marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; marvell,function = "spi1"; };
@@ -149,7 +149,7 @@ &cp0_sdhci0 { &cp0_spi1 { pinctrl-names = "default"; - pinctrl-0 = <&cp0_spi0_pins>; + pinctrl-0 = <&cp0_spi1_pins>; reg = <0x700680 0x50>, /* control */ <0x2000000 0x1000000>; /* CS0 */ status = "okay";
arch/arm64/boot/dts/marvell/cn9130-db.dtsi +2 -2
@@ -307,7 +307,7 @@ &cp0_sdhci0 { &cp0_spi1 { status = "disabled"; pinctrl-names = "default"; - pinctrl-0 = <&cp0_spi0_pins>; + pinctrl-0 = <&cp0_spi1_pins>; reg = <0x700680 0x50>; spi-flash@0 {
@@ -371,7 +371,7 @@ cp0_sdhci_pins: cp0-sdhi-pins-0 { "mpp59", "mpp60", "mpp61"; marvell,function = "sdio"; }; - cp0_spi0_pins: cp0-spi-pins-0 { + cp0_spi1_pins: cp0-spi-pins-1 { marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; marvell,function = "spi1"; };
arch/arm64/boot/dts/qcom/apq8016-sbc.dts +3 -0
@@ -190,6 +190,9 @@ adv_bridge: bridge@39 { pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>; avdd-supply = <&pm8916_l6>; + a2vdd-supply = <&pm8916_l6>; + dvdd-supply = <&pm8916_l6>; + pvdd-supply = <&pm8916_l6>; v1p2-supply = <&pm8916_l6>; v3p3-supply = <&pm8916_l17>;
arch/arm64/boot/dts/qcom/msm8916.dtsi +1 -1
@@ -1233,7 +1233,7 @@ apps_iommu: iommu@1ef0000 { #size-cells = <1>; #iommu-cells = <1>; compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; - ranges = <0 0x01e20000 0x40000>; + ranges = <0 0x01e20000 0x20000>; reg = <0x01ef0000 0x3000>; clocks = <&gcc GCC_SMMU_CFG_CLK>, <&gcc GCC_APSS_TCU_CLK>;
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts +0 -5
@@ -99,11 +99,6 @@ rmtfs_mem: rmtfs@ca100000 { qcom,client-id = <1>; }; - audio_mem: audio@cb400000 { - reg = <0 0xcb000000 0 0x400000>; - no-mem; - }; - qseecom_mem: qseecom@cb400000 { reg = <0 0xcb400000 0 0x1c00000>; no-mem;
arch/arm64/boot/dts/qcom/sc7280.dtsi +8 -0
@@ -1851,6 +1851,14 @@ cpufreq_hw: cpufreq@18591000 { reg = <0 0x18591000 0 0x1000>, <0 0x18592000 0 0x1000>, <0 0x18593000 0 0x1000>; + + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "dcvsh-irq-0", + "dcvsh-irq-1", + "dcvsh-irq-2"; + clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>; clock-names = "xo", "alternate"; #freq-domain-cells = <1>;
arch/arm64/boot/dts/qcom/sdm845-mtp.dts +2 -0
@@ -572,6 +572,8 @@ &wifi { vdd-1.8-xo-supply = <&vreg_l7a_1p8>; vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; + + qcom,snoc-host-cap-8bit-quirk; }; /* PINCTRL - additions to nodes defined in sdm845.dtsi */
arch/powerpc/include/asm/nohash/32/pte-40x.h +0 -3
@@ -69,9 +69,6 @@#define _PTE_NONE_MASK 0 -/* Until my rework is finished, 40x still needs atomic PTE updates */ -#define PTE_ATOMIC_UPDATES 1 -#define _PAGE_BASE_NC (_PAGE_PRESENT | _PAGE_ACCESSED)#define _PAGE_BASE (_PAGE_BASE_NC)
arch/powerpc/kernel/traps.c +2 -0
@@ -1148,6 +1148,7 @@ static void emulate_single_step(struct pt_regs *regs)__single_step_exception (regs); } +#ifdef CONFIG_PPC_FPU_REGS static inline int __parse_fpscr (unsigned long fpscr) {int ret =FPE_FLTUNK ;
@@ -1174,6 +1175,7 @@ static inline int __parse_fpscr(unsigned long fpscr) return ret; } +#endif static void parse_fpe (struct pt_regs *regs) {
arch/powerpc/perf/imc-pmu.c +1 -1
@@ -50,7 +50,7 @@ static int trace_imc_mem_size;* core and trace-imc */ static struct imc_pmu_ref imc_global_refc = { - .lock =__SPIN_LOCK_INITIALIZER (imc_global_refc.lock), + .lock =__SPIN_LOCK_UNLOCKED (imc_global_refc.lock), .id =0 , .refc =0 , };
arch/powerpc/platforms/pseries/lpar.c +3 -1
@@ -524,8 +524,10 @@ static ssize_t vcpudispatch_stats_write(struct file *file, const char __user *p,if (cmd) { rc =init_cpu_associativity (); -if (rc) +if (rc) { +destroy_cpu_associativity (); goto out; + }for_each_possible_cpu (cpu) { disp =per_cpu_ptr (&vcpu_disp_data, cpu);
arch/powerpc/sysdev/xive/native.c +1 -1
@@ -786,7 +786,7 @@ int xive_native_get_queue_info(u32 vp_id, u32 prio,if (out_qpage) *out_qpage =be64_to_cpu (qpage);if (out_qsize) - *out_qsize =be32_to_cpu (qsize); + *out_qsize =be64_to_cpu (qsize);if (out_qeoi_page) *out_qeoi_page =be64_to_cpu (qeoi_page);if (out_escalate_irq)
arch/sh/Kconfig.debug +11 -0
@@ -22,6 +22,17 @@ config STACK_DEBUG every function call and will therefore incur a major performance hit. Most users should say N. +config EARLY_PRINTK + bool "Early printk" + depends on SH_STANDARD_BIOS + help + Say Y here to redirect kernel printk messages to the serial port + used by the SH-IPL bootloader, starting very early in the boot + process and ending when the kernel's serial console is initialised. + This option is only useful while porting the kernel to a new machine, + when the kernel may crash or hang before the serial console is + initialised. If unsure, say N. + config 4KSTACKS bool "Use 4Kb for kernel stacks instead of 8Kb" depends on DEBUG_KERNEL && (MMU || BROKEN) && !PAGE_SIZE_64KB
arch/x86/events/intel/pt.c +2 -12
@@ -1360,20 +1360,10 @@ static void pt_addr_filters_fini(struct perf_event *event) }#ifdef CONFIG_X86_64 -static u64 canonical_address (u64 vaddr,u8 vaddr_bits) -{ -return ((s64 )vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits); -} - -static u64 is_canonical_address (u64 vaddr,u8 vaddr_bits) -{ -return canonical_address (vaddr, vaddr_bits) == vaddr; -} -/* Clamp to a canonical address greater-than-or-equal-to the address given */ static u64 clamp_to_ge_canonical_addr (u64 vaddr,u8 vaddr_bits) { -return is_canonical_address (vaddr, vaddr_bits) ? +return __is_canonical_address (vaddr, vaddr_bits) ? vaddr : -BIT_ULL (vaddr_bits -1 ); }
@@ -1381,7 +1371,7 @@ static u64 clamp_to_ge_canonical_addr(u64 vaddr, u8 vaddr_bits)/* Clamp to a canonical address less-than-or-equal-to the address given */ static u64 clamp_to_le_canonical_addr (u64 vaddr,u8 vaddr_bits) { -return is_canonical_address (vaddr, vaddr_bits) ? +return __is_canonical_address (vaddr, vaddr_bits) ? vaddr :BIT_ULL (vaddr_bits -1 ) -1 ; }
arch/x86/include/asm/page.h +10 -0
@@ -71,6 +71,16 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,extern bool __virt_addr_valid (unsigned long kaddr);#define virt_addr_valid (kaddr) __virt_addr_valid((unsigned long) (kaddr)) +static __always_inline u64 __canonical_address(u64 vaddr, u8 vaddr_bits) +{ +return ((s64 )vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits); +} + +static __always_inline u64 __is_canonical_address(u64 vaddr, u8 vaddr_bits) +{ +return __canonical_address (vaddr, vaddr_bits) == vaddr; +} +#endif /* __ASSEMBLY__ */ #include <asm-generic/memory_model.h>
arch/x86/include/asm/uaccess.h +1 -1
@@ -543,7 +543,7 @@ copy_mc_to_kernel(void *to, const void *from, unsigned len);#define copy_mc_to_kernel copy_mc_to_kernelunsigned long __must_check -copy_mc_to_user (void *to,const void *from,unsigned len); +copy_mc_to_user (void __user *to,const void *from,unsigned len);#endif /*
arch/x86/kernel/cpu/bugs.c +1 -1
@@ -2477,7 +2477,7 @@ static void __init srso_select_mitigation(void)pr_info ("%s%s\n" , srso_strings[srso_mitigation], (has_microcode ?"" :", no microcode" )); pred_cmd: -if ((boot_cpu_has (X86_FEATURE_SRSO_NO ) || srso_cmd ==SRSO_CMD_OFF ) && +if ((!boot_cpu_has_bug (X86_BUG_SRSO ) || srso_cmd ==SRSO_CMD_OFF ) &&boot_cpu_has (X86_FEATURE_SBPB )) x86_pred_cmd =PRED_CMD_SBPB ; }
arch/x86/kernel/head64.c +1 -1
@@ -79,7 +79,7 @@ static struct desc_struct startup_gdt[GDT_ENTRIES] = {* while the kernel still uses a direct mapping. */ static struct desc_ptr startup_gdt_descr = { - .size =sizeof (startup_gdt), + .size =sizeof (startup_gdt)-1 , .address =0 , };
arch/x86/kvm/emulate.c +2 -2
@@ -687,7 +687,7 @@ static inline u8 ctxt_virt_addr_bits(struct x86_emulate_ctxt *ctxt)static inline bool emul_is_noncanonical_address (u64 la,struct x86_emulate_ctxt *ctxt) { -return get_canonical (la,ctxt_virt_addr_bits (ctxt)) != la; +return !__is_canonical_address (la,ctxt_virt_addr_bits (ctxt)); }/*
@@ -737,7 +737,7 @@ static __always_inline int __linearize(struct x86_emulate_ctxt *ctxt,case X86EMUL_MODE_PROT64 : *linear = la; va_bits =ctxt_virt_addr_bits (ctxt); -if (get_canonical (la, va_bits) != la) +if (!__is_canonical_address (la, va_bits)) goto bad; *max_size =min_t (u64, ~0u , (1ull << va_bits) - la);
arch/x86/kvm/x86.c +1 -1
@@ -1745,7 +1745,7 @@ static int __kvm_set_msr(struct kvm_vcpu *vcpu, u32 index, u64 data,* value, and that something deterministic happens if the guest * invokes 64-bit SYSENTER. */ - data =get_canonical (data,vcpu_virt_addr_bits (vcpu)); + data =__canonical_address (data,vcpu_virt_addr_bits (vcpu));break ;case MSR_TSC_AUX :if (!kvm_is_supported_user_return_msr (MSR_TSC_AUX ))
arch/x86/kvm/x86.h +1 -6
@@ -211,14 +211,9 @@ static inline u8 vcpu_virt_addr_bits(struct kvm_vcpu *vcpu)return kvm_read_cr4_bits (vcpu,X86_CR4_LA57 ) ?57 :48 ; } -static inline u64 get_canonical (u64 la,u8 vaddr_bits) -{ -return ((int64_t )la << (64 - vaddr_bits)) >> (64 - vaddr_bits); -} -static inline bool is_noncanonical_address (u64 la,struct kvm_vcpu *vcpu) { -return get_canonical (la,vcpu_virt_addr_bits (vcpu)) != la; +return !__is_canonical_address (la,vcpu_virt_addr_bits (vcpu)); } static inline void vcpu_cache_mmio_info(struct kvm_vcpu *vcpu,
arch/x86/lib/copy_mc.c +4 -4
@@ -70,23 +70,23 @@ unsigned long __must_check copy_mc_to_kernel(void *dst, const void *src, unsigne }EXPORT_SYMBOL_GPL (copy_mc_to_kernel); -unsigned long __must_check copy_mc_to_user (void *dst,const void *src,unsigned len) +unsigned long __must_check copy_mc_to_user (void __user *dst,const void *src,unsigned len) {unsigned long ret;if (copy_mc_fragile_enabled) {__uaccess_begin (); - ret =copy_mc_fragile (dst, src, len); + ret =copy_mc_fragile ((__force void *)dst, src, len);__uaccess_end ();return ret; }if (static_cpu_has (X86_FEATURE_ERMS )) {__uaccess_begin (); - ret =copy_mc_enhanced_fast_string (dst, src, len); + ret =copy_mc_enhanced_fast_string ((__force void *)dst, src, len);__uaccess_end ();return ret; } -return copy_user_generic (dst, src, len); +return copy_user_generic ((__force void *)dst, src, len); }
arch/x86/mm/maccess.c +14 -10
@@ -4,22 +4,26 @@#include <linux/kernel.h> #ifdef CONFIG_X86_64 -static __always_inline u64 canonical_address(u64 vaddr, u8 vaddr_bits) -{ -return ((s64 )vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits); -} -bool copy_from_kernel_nofault_allowed (const void *unsafe_src,size_t size) {unsigned long vaddr = (unsigned long )unsafe_src;/* -* Range covering the highest possible canonical userspace address -* as well as non-canonical address range. For the canonical range -* we also need to include the userspace guard page. +* Do not allow userspace addresses. This disallows +* normal userspace and the userspace guard page: */ -return vaddr >=TASK_SIZE_MAX +PAGE_SIZE && -canonical_address (vaddr, boot_cpu_data.x86_virt_bits) == vaddr; +if (vaddr <TASK_SIZE_MAX +PAGE_SIZE ) +return false; + +/* +* Allow everything during early boot before 'x86_virt_bits' +* is initialized. Needed for instruction decoding in early +* exception handlers. +*/ +if (!boot_cpu_data.x86_virt_bits) +return true; + +return __is_canonical_address (vaddr, boot_cpu_data.x86_virt_bits); }#else bool copy_from_kernel_nofault_allowed (const void *unsafe_src,size_t size)
block/blk-core.c +5 -9
@@ -693,18 +693,15 @@ static inline bool should_fail_request(struct block_device *part,#endif /* CONFIG_FAIL_MAKE_REQUEST */ -static inline bool bio_check_ro (struct bio *bio) +static inline void bio_check_ro (struct bio *bio) {if (op_is_write (bio_op (bio)) &&bdev_read_only (bio->bi_bdev)) {if (op_is_flush (bio->bi_opf) && !bio_sectors (bio)) -return false; -pr_warn ("Trying to write to read-only block-device %pg\n" , - bio->bi_bdev); +return ; +pr_warn_ratelimited ("Trying to write to read-only block-device %pg\n" , + bio->bi_bdev);/* Older lvm-tools actually trigger this */ -return false; } - -return false; } static noinline int should_fail_bio(struct bio *bio)
@@ -810,8 +807,7 @@ static noinline_for_stack bool submit_bio_checks(struct bio *bio)if (should_fail_bio (bio)) goto end_io; -if (unlikely (bio_check_ro (bio))) - goto end_io; +bio_check_ro (bio);if (!bio_flagged (bio,BIO_REMAPPED )) {if (unlikely (bio_check_eod (bio))) goto end_io;
drivers/acpi/device_sysfs.c +6 -4
@@ -157,8 +157,8 @@ static int create_pnp_modalias(struct acpi_device *acpi_dev, char *modalias,return 0 ; len =snprintf (modalias, size,"acpi:" ); -if (len <=0 ) -return len; +if (len >= size) +return -ENOMEM ; size -= len;
@@ -211,8 +211,10 @@ static int create_of_modalias(struct acpi_device *acpi_dev, char *modalias, len =snprintf (modalias, size,"of:N%sT" , (char *)buf.pointer);ACPI_FREE (buf.pointer); -if (len <=0 ) -return len; +if (len >= size) +return -ENOMEM ; + + size -= len; of_compatible = acpi_dev->data.of_compatible;if (of_compatible->type ==ACPI_TYPE_PACKAGE ) {
drivers/base/regmap/regmap-debugfs.c +1 -1
@@ -48,7 +48,7 @@ static ssize_t regmap_name_read_file(struct file *file, name = map->dev->driver->name; ret =snprintf (buf,PAGE_SIZE ,"%s\n" , name); -if (ret <0 ) { +if (ret >=PAGE_SIZE ) {kfree (buf);return ret; }
drivers/base/regmap/regmap.c +9 -7
@@ -1683,17 +1683,19 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg, }if (!map->cache_bypass && map->format.parse_val) { -unsigned int ival; +unsigned int ival, offset;int val_bytes = map->format.val_bytes; -for (i =0 ; i < val_len / val_bytes; i++) { - ival = map->format.parse_val (val + (i * val_bytes)); - ret =regcache_write (map, - reg +regmap_get_offset (map, i), - ival); + +/* Cache the last written value for noinc writes */ + i = noinc ? val_len - val_bytes :0 ; +for (; i < val_len; i += val_bytes) { + ival = map->format.parse_val (val + i); + offset = noinc ?0 :regmap_get_offset (map, i / val_bytes); + ret =regcache_write (map, reg + offset, ival);if (ret) {dev_err (map->dev,"Error in caching of register: %x ret: %d\n" , - reg +regmap_get_offset (map, i), ret); + reg + offset, ret);return ret; } }
drivers/char/hw_random/geode-rng.c +4 -2
@@ -58,7 +58,8 @@ struct amd_geode_priv {static int geode_rng_data_read (struct hwrng *rng,u32 *data) { -void __iomem *mem = (void __iomem *)rng->priv; +struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; +void __iomem *mem = priv->membase; *data =readl (mem +GEODE_RNG_DATA_REG );
@@ -67,7 +68,8 @@ static int geode_rng_data_read(struct hwrng *rng, u32 *data)static int geode_rng_data_present (struct hwrng *rng,int wait) { -void __iomem *mem = (void __iomem *)rng->priv; +struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; +void __iomem *mem = priv->membase;int data, i;for (i =0 ; i <20 ; i++) {
drivers/clk/clk-npcm7xx.c +1 -1
@@ -539,7 +539,7 @@ static void __init npcm7xx_clk_init(struct device_node *clk_np)return ; npcm7xx_init_fail: -kfree (npcm7xx_clk_data->hws); +kfree (npcm7xx_clk_data); npcm7xx_init_np_err:iounmap (clk_base); npcm7xx_init_error:
drivers/clk/clk-scmi.c +1 -0
@@ -178,6 +178,7 @@ static int scmi_clocks_probe(struct scmi_device *sdev) sclk->info = scmi_proto_clk_ops->info_get (ph, idx);if (!sclk->info) {dev_dbg (dev,"invalid clock info for idx %d\n" , idx); +devm_kfree (dev, sclk);continue ; }
drivers/clk/imx/Kconfig +1 -0
@@ -96,5 +96,6 @@ config CLK_IMX8QXP depends on (ARCH_MXC && ARM64) || COMPILE_TEST depends on IMX_SCU && HAVE_ARM_SMCCC select MXC_CLK_SCU + select MXC_CLK help Build the driver for IMX8QXP SCU based clocks.
drivers/clk/imx/clk-imx8mq.c +10 -7
@@ -288,8 +288,7 @@ static int imx8mq_clocks_probe(struct platform_device *pdev)void __iomem *base;int err; - clk_hw_data =kzalloc (struct_size (clk_hw_data, hws, -IMX8MQ_CLK_END ),GFP_KERNEL ); + clk_hw_data =devm_kzalloc (dev,struct_size (clk_hw_data, hws,IMX8MQ_CLK_END ),GFP_KERNEL );if (WARN_ON (!clk_hw_data))return -ENOMEM ;
@@ -306,10 +305,12 @@ static int imx8mq_clocks_probe(struct platform_device *pdev) hws[IMX8MQ_CLK_EXT4 ] =imx_obtain_fixed_clk_hw (np,"clk_ext4" ); np =of_find_compatible_node (NULL ,NULL ,"fsl,imx8mq-anatop" ); - base =of_iomap (np,0 ); + base =devm_of_iomap (dev, np,0 ,NULL );of_node_put (np); -if (WARN_ON (!base)) -return -ENOMEM ; +if (WARN_ON (IS_ERR (base))) { + err =PTR_ERR (base); + goto unregister_hws; + } hws[IMX8MQ_ARM_PLL_REF_SEL ] =imx_clk_hw_mux ("arm_pll_ref_sel" , base +0x28 ,16 ,2 , pll_ref_sels,ARRAY_SIZE (pll_ref_sels)); hws[IMX8MQ_GPU_PLL_REF_SEL ] =imx_clk_hw_mux ("gpu_pll_ref_sel" , base +0x18 ,16 ,2 , pll_ref_sels,ARRAY_SIZE (pll_ref_sels));
@@ -395,8 +396,10 @@ static int imx8mq_clocks_probe(struct platform_device *pdev) np = dev->of_node; base =devm_platform_ioremap_resource (pdev,0 ); -if (WARN_ON (IS_ERR (base))) -return PTR_ERR (base); +if (WARN_ON (IS_ERR (base))) { + err =PTR_ERR (base); + goto unregister_hws; + }/* CORE */ hws[IMX8MQ_CLK_A53_DIV ] =imx8m_clk_hw_composite_core ("arm_a53_div" , imx8mq_a53_sels, base +0x8000 );
drivers/clk/imx/clk-imx8qxp.c +1 -1
@@ -148,10 +148,10 @@ static int imx8qxp_clk_probe(struct platform_device *pdev)imx_clk_scu ("adc0_clk" ,IMX_SC_R_ADC_0 ,IMX_SC_PM_CLK_PER );imx_clk_scu ("adc1_clk" ,IMX_SC_R_ADC_1 ,IMX_SC_PM_CLK_PER );imx_clk_scu ("pwm_clk" ,IMX_SC_R_LCD_0_PWM_0 ,IMX_SC_PM_CLK_PER ); +imx_clk_scu ("elcdif_pll" ,IMX_SC_R_ELCDIF_PLL ,IMX_SC_PM_CLK_PLL );imx_clk_scu2 ("lcd_clk" , lcd_sels,ARRAY_SIZE (lcd_sels),IMX_SC_R_LCD_0 ,IMX_SC_PM_CLK_PER );imx_clk_scu2 ("lcd_pxl_clk" , lcd_pxl_sels,ARRAY_SIZE (lcd_pxl_sels),IMX_SC_R_LCD_0 ,IMX_SC_PM_CLK_MISC0 );imx_clk_scu ("lcd_pxl_bypass_div_clk" ,IMX_SC_R_LCD_0 ,IMX_SC_PM_CLK_BYPASS ); -imx_clk_scu ("elcdif_pll" ,IMX_SC_R_ELCDIF_PLL ,IMX_SC_PM_CLK_PLL );/* Audio SS */ imx_clk_scu ("audio_pll0_clk" ,IMX_SC_R_AUDIO_PLL_0 ,IMX_SC_PM_CLK_PLL );
drivers/clk/keystone/pll.c +9 -6
@@ -281,12 +281,13 @@ static void __init of_pll_div_clk_init(struct device_node *node) clk =clk_register_divider (NULL , clk_name, parent_name,0 , reg, shift, mask,0 ,NULL ); -if (clk) { -of_clk_add_provider (node, of_clk_src_simple_get, clk); - }else { +if (IS_ERR (clk)) {pr_err ("%s: error registering divider %s\n" , __func__, clk_name);iounmap (reg); +return ; } + +of_clk_add_provider (node, of_clk_src_simple_get, clk); }CLK_OF_DECLARE (pll_divider_clock,"ti,keystone,pll-divider-clock" , of_pll_div_clk_init);
@@ -328,10 +329,12 @@ static void __init of_pll_mux_clk_init(struct device_node *node) clk =clk_register_mux (NULL , clk_name, (const char **)&parents,ARRAY_SIZE (parents) ,0 , reg, shift, mask,0 ,NULL ); -if (clk) -of_clk_add_provider (node, of_clk_src_simple_get, clk); -else +if (IS_ERR (clk)) {pr_err ("%s: error registering mux %s\n" , __func__, clk_name); +return ; + } + +of_clk_add_provider (node, of_clk_src_simple_get, clk); }CLK_OF_DECLARE (pll_mux_clock,"ti,keystone,pll-mux-clock" , of_pll_mux_clk_init);
drivers/clk/mediatek/clk-mt2701.c +8 -0
@@ -675,6 +675,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_fixed_clks (top_fixed_clks,ARRAY_SIZE (top_fixed_clks), clk_data);
@@ -742,6 +744,8 @@ static void __init mtk_infrasys_init_early(struct device_node *node)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return ;for (i =0 ; i <CLK_INFRA_NR ; i++) infra_clk_data->clks[i] =ERR_PTR (-EPROBE_DEFER );
@@ -768,6 +772,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return -ENOMEM ; }else {for (i =0 ; i <CLK_INFRA_NR ; i++) {if (infra_clk_data->clks[i] ==ERR_PTR (-EPROBE_DEFER ))
@@ -896,6 +902,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_PERI_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, peri_clks,ARRAY_SIZE (peri_clks), clk_data);
drivers/clk/mediatek/clk-mt6765.c +6 -0
@@ -785,6 +785,8 @@ static int clk_mt6765_apmixed_probe(struct platform_device *pdev) } clk_data =mtk_alloc_clk_data (CLK_APMIXED_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_plls (node, plls,ARRAY_SIZE (plls), clk_data);
@@ -820,6 +822,8 @@ static int clk_mt6765_top_probe(struct platform_device *pdev) } clk_data =mtk_alloc_clk_data (CLK_TOP_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_fixed_clks (fixed_clks,ARRAY_SIZE (fixed_clks), clk_data);
@@ -860,6 +864,8 @@ static int clk_mt6765_ifr_probe(struct platform_device *pdev) } clk_data =mtk_alloc_clk_data (CLK_IFR_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, ifr_clks,ARRAY_SIZE (ifr_clks), clk_data);
drivers/clk/mediatek/clk-mt6779.c +4 -0
@@ -1216,6 +1216,8 @@ static int clk_mt6779_apmixed_probe(struct platform_device *pdev)struct device_node *node = pdev->dev.of_node; clk_data =mtk_alloc_clk_data (CLK_APMIXED_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_plls (node, plls,ARRAY_SIZE (plls), clk_data);
@@ -1236,6 +1238,8 @@ static int clk_mt6779_top_probe(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_fixed_clks (top_fixed_clks,ARRAY_SIZE (top_fixed_clks), clk_data);
drivers/clk/mediatek/clk-mt6797.c +6 -0
@@ -391,6 +391,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_factors (top_fixed_divs,ARRAY_SIZE (top_fixed_divs), clk_data);
@@ -563,6 +565,8 @@ static void mtk_infrasys_init_early(struct device_node *node)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return ;for (i =0 ; i <CLK_INFRA_NR ; i++) infra_clk_data->clks[i] =ERR_PTR (-EPROBE_DEFER );
@@ -587,6 +591,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)if (!infra_clk_data) { infra_clk_data =mtk_alloc_clk_data (CLK_INFRA_NR ); +if (!infra_clk_data) +return -ENOMEM ; }else {for (i =0 ; i <CLK_INFRA_NR ; i++) {if (infra_clk_data->clks[i] ==ERR_PTR (-EPROBE_DEFER ))
drivers/clk/mediatek/clk-mt7629-eth.c +4 -0
@@ -83,6 +83,8 @@ static int clk_mt7629_ethsys_init(struct platform_device *pdev)int r; clk_data =mtk_alloc_clk_data (CLK_ETH_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, eth_clks,CLK_ETH_NR_CLK , clk_data);
@@ -105,6 +107,8 @@ static int clk_mt7629_sgmiisys_init(struct platform_device *pdev)int r; clk_data =mtk_alloc_clk_data (CLK_SGMII_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, sgmii_clks[id++],CLK_SGMII_NR_CLK , clk_data);
drivers/clk/mediatek/clk-mt7629.c +6 -0
@@ -580,6 +580,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_TOP_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_fixed_clks (top_fixed_clks,ARRAY_SIZE (top_fixed_clks), clk_data);
@@ -603,6 +605,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)struct clk_onecell_data *clk_data; clk_data =mtk_alloc_clk_data (CLK_INFRA_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, infra_clks,ARRAY_SIZE (infra_clks), clk_data);
@@ -626,6 +630,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)return PTR_ERR (base); clk_data =mtk_alloc_clk_data (CLK_PERI_NR_CLK ); +if (!clk_data) +return -ENOMEM ;mtk_clk_register_gates (node, peri_clks,ARRAY_SIZE (peri_clks), clk_data);
drivers/clk/qcom/Kconfig +1 -0
@@ -127,6 +127,7 @@ config IPQ_APSS_6018 tristate "IPQ APSS Clock Controller" select IPQ_APSS_PLL depends on QCOM_APCS_IPC || COMPILE_TEST + depends on QCOM_SMEM help Support for APSS clock controller on IPQ platforms. The APSS clock controller manages the Mux and enable block that feeds the
drivers/clk/qcom/clk-rcg2.c +4 -10
@@ -148,17 +148,11 @@ static int clk_rcg2_set_parent(struct clk_hw *hw, u8 index)static unsigned long calc_rate (unsigned long rate,u32 m,u32 n,u32 mode,u32 hid_div) { -if (hid_div) { - rate *=2 ; - rate /= hid_div +1 ; - } +if (hid_div) + rate =mult_frac (rate,2 , hid_div +1 ); -if (mode) { -u64 tmp = rate; - tmp *= m; -do_div (tmp, n); - rate = tmp; - } +if (mode) + rate =mult_frac (rate, m, n);return rate; }
drivers/clk/qcom/gcc-sm8150.c +1 -1
@@ -792,7 +792,7 @@ static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { .name = "gcc_sdcc2_apps_clk_src", .parent_data = gcc_parents_6, .num_parents = ARRAY_SIZE(gcc_parents_6), - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_OPS_PARENT_ENABLE, .ops = &clk_rcg2_floor_ops, }, };
drivers/clk/qcom/mmcc-msm8998.c +6 -1
@@ -2487,6 +2487,7 @@ static struct clk_branch fd_ahb_clk = {static struct clk_branch mnoc_ahb_clk = { .halt_reg =0x5024 , + .halt_check =BRANCH_HALT_SKIP , .clkr = { .enable_reg =0x5024 , .enable_mask =BIT (0 ),
@@ -2502,6 +2503,7 @@ static struct clk_branch mnoc_ahb_clk = {static struct clk_branch bimc_smmu_ahb_clk = { .halt_reg =0xe004 , + .halt_check =BRANCH_HALT_SKIP , .hwcg_reg =0xe004 , .hwcg_bit =1 , .clkr = {
@@ -2519,6 +2521,7 @@ static struct clk_branch bimc_smmu_ahb_clk = {static struct clk_branch bimc_smmu_axi_clk = { .halt_reg =0xe008 , + .halt_check =BRANCH_HALT_SKIP , .hwcg_reg =0xe008 , .hwcg_bit =1 , .clkr = {
@@ -2659,11 +2662,13 @@ static struct gdsc camss_cpp_gdsc = {static struct gdsc bimc_smmu_gdsc = { .gdscr =0xe020 , .gds_hw_ctrl =0xe024 , + .cxcs = (unsigned int []){0xe008 }, + .cxc_count =1 , .pd = { .name ="bimc_smmu" , }, .pwrsts =PWRSTS_OFF_ON , - .flags =HW_CTRL |ALWAYS_ON , + .flags =VOTABLE , };static struct clk_regmap *mmcc_msm8998_clocks[] = {
drivers/clk/renesas/rzg2l-cpg.c +10 -10
@@ -11,6 +11,7 @@* Copyright (C) 2015 Renesas Electronics Corp. */ +#include <linux/bitfield.h> #include <linux/clk.h> #include <linux/clk-provider.h> #include <linux/clk/renesas.h>
@@ -37,14 +38,13 @@#define WARN_DEBUG (x) do { } while (0)#endif -#define DIV_RSMASK (v, s, m) ((v >> s) & m)#define GET_SHIFT (val) ((val >> 12) & 0xff)#define GET_WIDTH (val) ((val >> 8) & 0xf) -#define KDIV (val) DIV_RSMASK(val, 16, 0xffff) -#define MDIV (val) DIV_RSMASK(val, 6, 0x3ff) -#define PDIV (val) DIV_RSMASK(val, 0, 0x3f) -#define SDIV (val) DIV_RSMASK(val, 0, 0x7) +#define KDIV (val) ((s16)FIELD_GET(GENMASK(31, 16), val)) +#define MDIV (val) FIELD_GET(GENMASK(15, 6), val) +#define PDIV (val) FIELD_GET(GENMASK(5, 0), val) +#define SDIV (val) FIELD_GET(GENMASK(2, 0), val)#define CLK_ON_R (reg) (reg)#define CLK_MON_R (reg) (0x180 + (reg))
@@ -146,18 +146,18 @@ static unsigned long rzg2l_cpg_pll_clk_recalc_rate(struct clk_hw *hw,struct pll_clk *pll_clk =to_pll (hw);struct rzg2l_cpg_priv *priv = pll_clk->priv;unsigned int val1, val2; -unsigned int mult =1 ; -unsigned int div =1 ; +u64 rate;if (pll_clk->type !=CLK_TYPE_SAM_PLL )return parent_rate; val1 =readl (priv->base +GET_REG_SAMPLL_CLK1 (pll_clk->conf)); val2 =readl (priv->base +GET_REG_SAMPLL_CLK2 (pll_clk->conf)); - mult =MDIV (val1) +KDIV (val1) /65536 ; - div =PDIV (val1) * (1 <<SDIV (val2)); -return DIV_ROUND_CLOSEST_ULL ((u64 )parent_rate * mult, div); + rate =mul_u64_u32_shr (parent_rate, (MDIV (val1) <<16 ) +KDIV (val1), +16 +SDIV (val2)); + +return DIV_ROUND_CLOSEST_ULL (rate,PDIV (val1)); }static const struct clk_ops rzg2l_cpg_pll_ops = {
drivers/clk/ti/apll.c +9 -4
@@ -139,6 +139,7 @@ static void __init omap_clk_register_apll(void *user,struct clk_hw *hw = user;struct clk_hw_omap *clk_hw =to_clk_hw_omap (hw);struct dpll_data *ad = clk_hw->dpll_data; +const char *name;struct clk *clk;const struct clk_init_data *init = clk_hw->hw.init;
@@ -166,7 +167,8 @@ static void __init omap_clk_register_apll(void *user, ad->clk_bypass =__clk_get_hw (clk); - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, node->name); + name =ti_dt_clk_name (node); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (!IS_ERR (clk)) {of_clk_add_provider (node, of_clk_src_simple_get, clk);kfree (init->parent_names);
@@ -198,7 +200,7 @@ static void __init of_dra7_apll_setup(struct device_node *node) clk_hw->dpll_data = ad; clk_hw->hw.init = init; - init->name = node->name; + init->name =ti_dt_clk_name (node); init->ops = &apll_ck_ops; init->num_parents =of_clk_get_parent_count (node);
@@ -347,6 +349,7 @@ static void __init of_omap2_apll_setup(struct device_node *node)struct dpll_data *ad =NULL ;struct clk_hw_omap *clk_hw =NULL ;struct clk_init_data *init =NULL ; +const char *name;struct clk *clk;const char *parent_name;u32 val;
@@ -362,7 +365,8 @@ static void __init of_omap2_apll_setup(struct device_node *node) clk_hw->dpll_data = ad; clk_hw->hw.init = init; init->ops = &omap2_apll_ops; - init->name = node->name; + name =ti_dt_clk_name (node); + init->name = name; clk_hw->ops = &omap2_apll_hwops; init->num_parents =of_clk_get_parent_count (node);
@@ -403,7 +407,8 @@ static void __init of_omap2_apll_setup(struct device_node *node)if (ret) goto cleanup; - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, node->name); + name =ti_dt_clk_name (node); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (!IS_ERR (clk)) {of_clk_add_provider (node, of_clk_src_simple_get, clk);kfree (init);
drivers/clk/ti/autoidle.c +1 -1
@@ -205,7 +205,7 @@ int __init of_ti_clk_autoidle_setup(struct device_node *node)return -ENOMEM ; clk->shift = shift; - clk->name = node->name; + clk->name =ti_dt_clk_name (node); ret =ti_clk_get_reg_addr (node,0 , &clk->reg);if (ret) {kfree (clk);
drivers/clk/ti/clk-dra7-atl.c +4 -2
@@ -173,6 +173,7 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node)struct dra7_atl_desc *clk_hw =NULL ;struct clk_init_data init = {NULL };const char **parent_names =NULL ; +const char *name;struct clk *clk; clk_hw =kzalloc (sizeof (*clk_hw),GFP_KERNEL );
@@ -183,7 +184,8 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node) clk_hw->hw.init = &init; clk_hw->divider =1 ; - init.name = node->name; + name =ti_dt_clk_name (node); + init.name = name; init.ops = &atl_clk_ops; init.flags =CLK_IGNORE_UNUSED ; init.num_parents =of_clk_get_parent_count (node);
@@ -203,7 +205,7 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node) init.parent_names = parent_names; - clk =ti_clk_register (NULL , &clk_hw->hw, node->name); + clk =of_ti_clk_register (node, &clk_hw->hw, name);if (!IS_ERR (clk)) {of_clk_add_provider (node, of_clk_src_simple_get, clk);
drivers/clk/ti/clk.c +34 -18
115 lines not on this page · raw message
drivers/clk/ti/clkctrl.c +2 -2
@@ -317,7 +317,7 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider, init.ops = ops; init.flags =0 ; - clk =ti_clk_register (NULL , clk_hw, init.name); + clk =of_ti_clk_register (node, clk_hw, init.name);if (IS_ERR_OR_NULL (clk)) { ret = -EINVAL ; goto cleanup;
@@ -701,7 +701,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node) init.ops = &omap4_clkctrl_clk_ops; hw->hw.init = &init; - clk =ti_clk_register_omap_hw (NULL , &hw->hw, init.name); + clk =of_ti_clk_register_omap_hw (node, &hw->hw, init.name);if (IS_ERR_OR_NULL (clk)) goto cleanup;
drivers/clk/ti/clock.h +6 -5
@@ -210,11 +210,12 @@ extern const struct omap_clkctrl_data dm816_clkctrl_data[];typedef void (*ti_of_clk_init_cb_t )(void *,struct device_node *); -struct clk *ti_clk_register (struct device *dev,struct clk_hw *hw, -const char *con); -struct clk *ti_clk_register_omap_hw (struct device *dev,struct clk_hw *hw, -const char *con); -int ti_clk_add_alias (struct device *dev,struct clk *clk,const char *con); +struct clk *of_ti_clk_register (struct device_node *node,struct clk_hw *hw, +const char *con); +struct clk *of_ti_clk_register_omap_hw (struct device_node *node, +struct clk_hw *hw,const char *con); +const char *ti_dt_clk_name (struct device_node *np); +int ti_clk_add_alias (struct clk *clk,const char *con);void ti_clk_add_aliases (void );void ti_clk_latch (struct clk_omap_reg *reg,s8 shift);
drivers/clk/ti/clockdomain.c +1 -1
@@ -131,7 +131,7 @@ static void __init of_ti_clockdomain_setup(struct device_node *node) {struct clk *clk;struct clk_hw *clk_hw; -const char *clkdm_name = node->name; +const char *clkdm_name =ti_dt_clk_name (node);int i;unsigned int num_clks;
drivers/clk/ti/composite.c +4 -2
@@ -125,6 +125,7 @@ static void __init _register_composite(void *user,struct component_clk *comp;int num_parents =0 ;const char **parent_names =NULL ; +const char *name;int i;int ret;
@@ -172,7 +173,8 @@ static void __init _register_composite(void *user, goto cleanup; } - clk = clk_register_composite(NULL, node->name, + name =ti_dt_clk_name (node); + clk = clk_register_composite(NULL, name, parent_names, num_parents, _get_hw(cclk, CLK_COMPONENT_TYPE_MUX), &ti_clk_mux_ops,
@@ -182,7 +184,7 @@ static void __init _register_composite(void *user, &ti_composite_gate_ops, 0);if (!IS_ERR (clk)) { - ret =ti_clk_add_alias (NULL , clk, node->name); + ret =ti_clk_add_alias (clk, name);if (ret) {clk_unregister (clk); goto cleanup;
drivers/clk/ti/divider.c +4 -8
@@ -317,13 +317,14 @@ static struct clk *_register_divider(struct device_node *node,u32 flags, struct clk_omap_divider *div) { - struct clk *clk; struct clk_init_data init;const char *parent_name; +const char *name; parent_name =of_clk_get_parent_name (node,0 ); - init.name = node->name; + name =ti_dt_clk_name (node); + init.name = name; init.ops = &ti_clk_divider_ops; init.flags = flags; init.parent_names = (parent_name ? &parent_name :NULL );
@@ -332,12 +333,7 @@ static struct clk *_register_divider(struct device_node *node, div->hw.init = &init;/* register the clock */ - clk =ti_clk_register (NULL , &div->hw, node->name); - -if (IS_ERR (clk)) -kfree (div); - -return clk; +return of_ti_clk_register (node, &div->hw, name); } int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div,
drivers/clk/ti/dpll.c +6 -4
@@ -164,6 +164,7 @@ static void __init _register_dpll(void *user,struct clk_hw *hw = user;struct clk_hw_omap *clk_hw =to_clk_hw_omap (hw);struct dpll_data *dd = clk_hw->dpll_data; +const char *name;struct clk *clk;const struct clk_init_data *init = hw->init;
@@ -193,7 +194,8 @@ static void __init _register_dpll(void *user, dd->clk_bypass =__clk_get_hw (clk);/* register the clock */ - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, node->name); + name =ti_dt_clk_name (node); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (!IS_ERR (clk)) {of_clk_add_provider (node, of_clk_src_simple_get, clk);
@@ -227,7 +229,7 @@ static void _register_dpll_x2(struct device_node *node,struct clk *clk;struct clk_init_data init = {NULL };struct clk_hw_omap *clk_hw; -const char *name = node->name; +const char *name =ti_dt_clk_name (node);const char *parent_name; parent_name =of_clk_get_parent_name (node,0 );
@@ -265,7 +267,7 @@ static void _register_dpll_x2(struct device_node *node,#endif /* register the clock */ - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, name); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (IS_ERR (clk))kfree (clk_hw);
@@ -304,7 +306,7 @@ static void __init of_ti_dpll_setup(struct device_node *node, clk_hw->ops = &clkhwops_omap3_dpll; clk_hw->hw.init = init; - init->name = node->name; + init->name =ti_dt_clk_name (node); init->ops = ops; init->num_parents =of_clk_get_parent_count (node);
drivers/clk/ti/fapll.c +7 -4
@@ -19,6 +19,8 @@#include <linux/of_address.h> #include <linux/clk/ti.h> +#include "clock.h" +/* FAPLL Control Register PLL_CTRL */ #define FAPLL_MAIN_MULT_N_SHIFT 16#define FAPLL_MAIN_DIV_P_SHIFT 8
@@ -542,6 +544,7 @@ static void __init ti_fapll_setup(struct device_node *node)struct clk_init_data *init =NULL ;const char *parent_name[2 ];struct clk *pll_clk; +const char *name;int i; fd =kzalloc (sizeof (*fd),GFP_KERNEL );
@@ -559,7 +562,8 @@ static void __init ti_fapll_setup(struct device_node *node) goto free; init->ops = &ti_fapll_ops; - init->name = node->name; + name =ti_dt_clk_name (node); + init->name = name; init->num_parents =of_clk_get_parent_count (node);if (init->num_parents !=2 ) {
@@ -591,7 +595,7 @@ static void __init ti_fapll_setup(struct device_node *node)if (fapll_is_ddr_pll (fd->base)) fd->bypass_bit_inverted = true; - fd->name = node->name; + fd->name = name; fd->hw.init = init;/* Register the parent PLL */
@@ -638,8 +642,7 @@ static void __init ti_fapll_setup(struct device_node *node) freq =NULL ; } synth_clk =ti_fapll_synth_setup (fd, freq, div, output_instance, - output_name, node->name, - pll_clk); + output_name, name, pll_clk);if (IS_ERR (synth_clk))continue ;
drivers/clk/ti/fixed-factor.c +2 -2
@@ -36,7 +36,7 @@static void __init of_ti_fixed_factor_clk_setup (struct device_node *node) {struct clk *clk; -const char *clk_name = node->name; +const char *clk_name =ti_dt_clk_name (node);const char *parent_name;u32 div, mult;u32 flags =0 ;
@@ -62,7 +62,7 @@ static void __init of_ti_fixed_factor_clk_setup(struct device_node *node)if (!IS_ERR (clk)) {of_clk_add_provider (node, of_clk_src_simple_get, clk);of_ti_clk_autoidle_setup (node); -ti_clk_add_alias (NULL , clk, clk_name); +ti_clk_add_alias (clk, clk_name); } } CLK_OF_DECLARE(ti_fixed_factor_clk, "ti,fixed-factor-clock",
drivers/clk/ti/gate.c +5 -3
@@ -93,7 +93,7 @@ static int omap36xx_gate_clk_enable_with_hsdiv_restore(struct clk_hw *hw)return ret; } -static struct clk *_register_gate(struct device *dev, const char *name, +static struct clk *_register_gate(struct device_node *node, const char *name, const char *parent_name, unsigned long flags, struct clk_omap_reg *reg, u8 bit_idx, u8 clk_gate_flags, const struct clk_ops *ops,
@@ -123,7 +123,7 @@ static struct clk *_register_gate(struct device *dev, const char *name, init.flags = flags; - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, name); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (IS_ERR (clk))kfree (clk_hw);
@@ -138,6 +138,7 @@ static void __init _of_ti_gate_clk_setup(struct device_node *node,struct clk *clk;const char *parent_name;struct clk_omap_reg reg; +const char *name;u8 enable_bit =0 ;u32 val;u32 flags =0 ;
@@ -164,7 +165,8 @@ static void __init _of_ti_gate_clk_setup(struct device_node *node,if (of_property_read_bool (node,"ti,set-bit-to-disable" )) clk_gate_flags |=INVERT_ENABLE ; - clk =_register_gate (NULL , node->name, parent_name, flags, ®, + name =ti_dt_clk_name (node); + clk =_register_gate (node, name, parent_name, flags, ®, enable_bit, clk_gate_flags, ops, hw_ops);if (!IS_ERR (clk))
drivers/clk/ti/interface.c +6 -3
@@ -32,7 +32,8 @@ static const struct clk_ops ti_interface_clk_ops = { .is_enabled = &omap2_dflt_clk_is_enabled, }; -static struct clk *_register_interface (struct device *dev,const char *name, +static struct clk *_register_interface (struct device_node *node, +const char *name,const char *parent_name,struct clk_omap_reg *reg,u8 bit_idx,const struct clk_hw_omap_ops *ops)
@@ -57,7 +58,7 @@ static struct clk *_register_interface(struct device *dev, const char *name, init.num_parents =1 ; init.parent_names = &parent_name; - clk =ti_clk_register_omap_hw (NULL , &clk_hw->hw, name); + clk =of_ti_clk_register_omap_hw (node, &clk_hw->hw, name);if (IS_ERR (clk))kfree (clk_hw);
@@ -72,6 +73,7 @@ static void __init _of_ti_interface_clk_setup(struct device_node *node,const char *parent_name;struct clk_omap_reg reg;u8 enable_bit =0 ; +const char *name;u32 val;if (ti_clk_get_reg_addr (node,0 , ®))
@@ -86,7 +88,8 @@ static void __init _of_ti_interface_clk_setup(struct device_node *node,return ; } - clk =_register_interface (NULL , node->name, parent_name, ®, + name =ti_dt_clk_name (node); + clk =_register_interface (node, name, parent_name, ®, enable_bit, ops);if (!IS_ERR (clk))
drivers/clk/ti/mux.c +5 -3
@@ -126,7 +126,7 @@ const struct clk_ops ti_clk_mux_ops = { .restore_context = clk_mux_restore_context, }; -static struct clk *_register_mux(struct device *dev, const char *name, +static struct clk *_register_mux(struct device_node *node, const char *name, const char * const *parent_names, u8 num_parents, unsigned long flags, struct clk_omap_reg *reg, u8 shift, u32 mask,
@@ -156,7 +156,7 @@ static struct clk *_register_mux(struct device *dev, const char *name, mux->table = table; mux->hw.init = &init; - clk =ti_clk_register (dev, &mux->hw, name); + clk =of_ti_clk_register (node, &mux->hw, name);if (IS_ERR (clk))kfree (mux);
@@ -176,6 +176,7 @@ static void of_mux_clk_setup(struct device_node *node)struct clk_omap_reg reg;unsigned int num_parents;const char **parent_names; +const char *name;u8 clk_mux_flags =0 ;u32 mask =0 ;u32 shift =0 ;
@@ -213,7 +214,8 @@ static void of_mux_clk_setup(struct device_node *node) mask = (1 <<fls (mask)) -1 ; - clk =_register_mux (NULL , node->name, parent_names, num_parents, + name =ti_dt_clk_name (node); + clk =_register_mux (node, name, parent_names, num_parents, flags, ®, shift, mask, latch, clk_mux_flags,NULL );
drivers/crypto/caam/caamalg.c +2 -1
@@ -566,7 +566,8 @@ static int chachapoly_setkey(struct crypto_aead *aead, const u8 *key,if (keylen !=CHACHA_KEY_SIZE + saltlen)return -EINVAL ; - ctx->cdata.key_virt = key; +memcpy (ctx->key, key, keylen); + ctx->cdata.key_virt = ctx->key; ctx->cdata.keylen = keylen - saltlen;return chachapoly_set_sh_desc (aead);
drivers/crypto/caam/caamalg_qi2.c +2 -1
@@ -639,7 +639,8 @@ static int chachapoly_setkey(struct crypto_aead *aead, const u8 *key,if (keylen !=CHACHA_KEY_SIZE + saltlen)return -EINVAL ; - ctx->cdata.key_virt = key; +memcpy (ctx->key, key, keylen); + ctx->cdata.key_virt = ctx->key; ctx->cdata.keylen = keylen - saltlen;return chachapoly_set_sh_desc (aead);
drivers/crypto/hisilicon/hpre/hpre_main.c +1 -1
@@ -854,7 +854,7 @@ static int hpre_cluster_debugfs_init(struct hisi_qm *qm)for (i =0 ; i < clusters_num; i++) { ret =snprintf (buf,HPRE_DBGFS_VAL_MAX_LEN ,"cluster%d" , i); -if (ret <0 ) +if (ret >=HPRE_DBGFS_VAL_MAX_LEN )return -EINVAL ; tmp_d =debugfs_create_dir (buf, qm->debug.debug_root);
drivers/crypto/qat/qat_common/adf_accel_devices.h +1 -1
@@ -24,7 +24,7 @@#define ADF_PCI_MAX_BARS 3#define ADF_DEVICE_NAME_LENGTH 32#define ADF_ETR_MAX_RINGS_PER_BANK 16 -#define ADF_MAX_MSIX_VECTOR_NAME 16 +#define ADF_MAX_MSIX_VECTOR_NAME 48#define ADF_DEVICE_NAME_PREFIX "qat_"enum adf_accel_capabilities {
drivers/crypto/qat/qat_common/adf_transport_debug.c +2 -2
@@ -90,7 +90,7 @@ DEFINE_SEQ_ATTRIBUTE(adf_ring_debug);int adf_ring_debugfs_add (struct adf_etr_ring_data *ring,const char *name) {struct adf_etr_ring_debug_entry *ring_debug; -char entry_name[8 ]; +char entry_name[16 ]; ring_debug =kzalloc (sizeof (*ring_debug),GFP_KERNEL );if (!ring_debug)
@@ -192,7 +192,7 @@ int adf_bank_debugfs_add(struct adf_etr_bank_data *bank) {struct adf_accel_dev *accel_dev = bank->accel_dev;struct dentry *parent = accel_dev->transport->debug; -char name[8 ]; +char name[16 ];snprintf (name,sizeof (name),"bank_%02d" , bank->bank_number); bank->bank_debug_dir =debugfs_create_dir (name, parent);
drivers/crypto/qat/qat_common/qat_algs_send.c +25 -21
65 lines not on this page · raw message
drivers/cxl/core/memdev.c +1 -2
@@ -139,10 +139,9 @@ static void cxl_memdev_unregister(void *_cxlmd)struct cdev *cdev = &cxlmd->cdev;const struct cdevm_file_operations *cdevm_fops; +cdev_device_del (&cxlmd->cdev, dev); cdevm_fops =container_of (cdev->ops,typeof (*cdevm_fops), fops); cdevm_fops->shutdown (dev); - -cdev_device_del (&cxlmd->cdev, dev);put_device (dev); }
drivers/devfreq/event/rockchip-dfi.c +8 -7
@@ -194,14 +194,15 @@ static int rockchip_dfi_probe(struct platform_device *pdev)return PTR_ERR (data->clk); } -/* try to find the optional reference to the pmu syscon */ node =of_parse_phandle (np,"rockchip,pmu" ,0 ); -if (node) { - data->regmap_pmu =syscon_node_to_regmap (node); -of_node_put (node); -if (IS_ERR (data->regmap_pmu)) -return PTR_ERR (data->regmap_pmu); - } +if (!node) +return dev_err_probe (&pdev->dev, -ENODEV ,"Can't find pmu_grf registers\n" ); + + data->regmap_pmu =syscon_node_to_regmap (node); +of_node_put (node); +if (IS_ERR (data->regmap_pmu)) +return PTR_ERR (data->regmap_pmu); + data->dev = dev; desc =devm_kzalloc (dev,sizeof (*desc),GFP_KERNEL );
drivers/dma/idxd/Makefile +3 -3
@@ -1,12 +1,12 @@ ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=IDXD +obj-$(CONFIG_INTEL_IDXD_BUS) += idxd_bus.o +idxd_bus-y := bus.o + obj-$(CONFIG_INTEL_IDXD) += idxd.o idxd-y := init.o irq.o device.o sysfs.o submit.o dma.o cdev.o idxd-$(CONFIG_INTEL_IDXD_PERFMON) += perfmon.o -obj-$(CONFIG_INTEL_IDXD_BUS) += idxd_bus.o -idxd_bus-y := bus.o - obj-$(CONFIG_INTEL_IDXD_COMPAT) += idxd_compat.o idxd_compat-y := compat.o
drivers/dma/pxa_dma.c +0 -1
@@ -722,7 +722,6 @@ static void pxad_free_desc(struct virt_dma_desc *vd)dma_addr_t dma;struct pxad_desc_sw *sw_desc =to_pxad_sw_desc (vd); -BUG_ON (sw_desc->nb_desc ==0 );for (i = sw_desc->nb_desc -1 ; i >=0 ; i--) {if (i >0 ) dma = sw_desc->hw_desc[i -1 ]->ddadr;
drivers/dma/ti/edma.c +2 -2
@@ -2459,7 +2459,7 @@ static int edma_probe(struct platform_device *pdev)if (irq <0 && node) irq =irq_of_parse_and_map (node,0 ); -if (irq >=0 ) { +if (irq >0 ) { irq_name =devm_kasprintf (dev,GFP_KERNEL ,"%s_ccint" ,dev_name (dev)); ret = devm_request_irq(dev, irq, dma_irq_handler, 0, irq_name,
@@ -2475,7 +2475,7 @@ static int edma_probe(struct platform_device *pdev)if (irq <0 && node) irq =irq_of_parse_and_map (node,2 ); -if (irq >=0 ) { +if (irq >0 ) { irq_name =devm_kasprintf (dev,GFP_KERNEL ,"%s_ccerrint" ,dev_name (dev)); ret = devm_request_irq(dev, irq, dma_ccerr_handler, 0, irq_name,
drivers/firmware/arm_ffa/bus.c +1 -0
@@ -192,6 +192,7 @@ struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id) dev->release = ffa_release_device;dev_set_name (&ffa_dev->dev,"arm-ffa-%d" , id); + ffa_dev->id = id; ffa_dev->vm_id = vm_id;uuid_copy (&ffa_dev->uuid, uuid);
drivers/firmware/ti_sci.c +1 -45
63 lines not on this page · raw message
drivers/gpu/drm/amd/amdkfd/kfd_svm.c +4 -4
@@ -433,11 +433,11 @@ svm_range_validate_svm_bo(struct amdgpu_device *adev, struct svm_range *prange)/* We need a new svm_bo. Spin-loop to wait for concurrent * svm_range_bo_release to finish removing this range from -* its range list. After this, it is safe to reuse the -* svm_bo pointer and svm_bo_list head. +* its range list and set prange->svm_bo to null. After this, +* it is safe to reuse the svm_bo pointer and svm_bo_list head. */ -while (!list_empty_careful (&prange->svm_bo_list)) - ; +while (!list_empty_careful (&prange->svm_bo_list) || prange->svm_bo) +cond_resched ();return false; }
drivers/gpu/drm/bridge/lontium-lt8912b.c +34 -28
129 lines not on this page · raw message
drivers/gpu/drm/bridge/lontium-lt9611uxc.c +31 -44
135 lines not on this page · raw message
drivers/gpu/drm/bridge/tc358768.c +18 -7
@@ -217,6 +217,10 @@ static void tc358768_update_bits(struct tc358768_priv *priv, u32 reg, u32 mask,u32 tmp, orig;tc358768_read (priv, reg, &orig); + +if (priv->error) +return ; + tmp = orig & ~mask; tmp |= val & mask;if (tmp != orig)
@@ -633,6 +637,7 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge) {struct tc358768_priv *priv =bridge_to_tc358768 (bridge);struct mipi_dsi_device *dsi_dev = priv->output.dev; +unsigned long mode_flags = dsi_dev->mode_flags;u32 val, val2, lptxcnt, hact, data_type;s32 raw_val;const struct drm_display_mode *mode;
@@ -640,6 +645,11 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge)u32 dsiclk, dsibclk;int ret, i; +if (mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS ) { +dev_warn_once (priv->dev,"Non-continuous mode unimplemented, falling back to continuous\n" ); + mode_flags &= ~MIPI_DSI_CLOCK_NON_CONTINUOUS ; + } +tc358768_hw_enable (priv); ret =tc358768_sw_reset (priv);
@@ -775,8 +785,8 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge) val |=BIT (i +1 );tc358768_write (priv,TC358768_HSTXVREGEN , val); -if (!(dsi_dev->mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS )) -tc358768_write (priv,TC358768_TXOPTIONCNTRL ,0x1 ); +tc358768_write (priv,TC358768_TXOPTIONCNTRL , + (mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS ) ?0 :BIT (0 ));/* TXTAGOCNT[26:16] RXTASURECNT[10:0] */ val =tc358768_to_ns ((lptxcnt +1 ) * dsibclk_nsk *4 );
@@ -812,11 +822,12 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge)tc358768_write (priv,TC358768_DSI_HACT , hact);/* VSYNC polarity */ -if (!(mode->flags &DRM_MODE_FLAG_NVSYNC )) -tc358768_update_bits (priv,TC358768_CONFCTL ,BIT (5 ),BIT (5 )); +tc358768_update_bits (priv,TC358768_CONFCTL ,BIT (5 ), + (mode->flags &DRM_MODE_FLAG_PVSYNC ) ?BIT (5 ) :0 ); +/* HSYNC polarity */ -if (mode->flags &DRM_MODE_FLAG_PHSYNC ) -tc358768_update_bits (priv,TC358768_PP_MISC ,BIT (0 ),BIT (0 )); +tc358768_update_bits (priv,TC358768_PP_MISC ,BIT (0 ), + (mode->flags &DRM_MODE_FLAG_PHSYNC ) ?BIT (0 ) :0 );/* Start DSI Tx */ tc358768_write (priv,TC358768_DSI_START ,0x1 );
@@ -832,7 +843,7 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge) val |=TC358768_DSI_CONTROL_TXMD ; -if (!(dsi_dev->mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS )) +if (!(mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS )) val |=TC358768_DSI_CONTROL_HSCKMD ;if (dsi_dev->mode_flags &MIPI_DSI_MODE_NO_EOT_PACKET )
drivers/gpu/drm/drm_mipi_dsi.c +81 -0
93 lines not on this page · raw message
drivers/gpu/drm/drm_syncobj.c +2 -1
@@ -1056,7 +1056,8 @@ static signed long drm_syncobj_array_wait_timeout(struct drm_syncobj **syncobjs, fence =drm_syncobj_fence_get (syncobjs[i]);if (!fence ||dma_fence_chain_find_seqno (&fence, points[i])) {dma_fence_put (fence); -if (flags &DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT ) { +if (flags & (DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT | +DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE )) {continue ; }else { timeout = -EINVAL ;
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +3 -0
@@ -362,6 +362,9 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc)unsigned int local_layer; plane_state =to_mtk_plane_state (plane->state); + +/* should not enable layer before crtc enabled */ + plane_state->pending.enable = false; comp =mtk_drm_ddp_comp_for_plane (crtc, plane, &local_layer);if (comp) mtk_ddp_comp_layer_config(comp, local_layer,
drivers/gpu/drm/mediatek/mtk_drm_plane.c +1 -1
@@ -154,9 +154,9 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane, plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w; -swap (plane->state->fb, new_state->fb);mtk_plane_update_new_state (new_state, new_plane_state); +swap (plane->state->fb, new_state->fb);wmb ();/* Make sure the above parameters are set before update */ new_plane_state->pending.async_dirty = true;mtk_drm_crtc_async_update (new_state->crtc, plane, state);
drivers/gpu/drm/mediatek/mtk_dsi.c +2 -2
@@ -406,7 +406,7 @@ static void mtk_dsi_rxtx_control(struct mtk_dsi *dsi)if (dsi->mode_flags &MIPI_DSI_CLOCK_NON_CONTINUOUS ) tmp_reg |=HSTX_CKLP_EN ; -if (!(dsi->mode_flags &MIPI_DSI_MODE_NO_EOT_PACKET )) +if (dsi->mode_flags &MIPI_DSI_MODE_NO_EOT_PACKET ) tmp_reg |=DIS_EOT ;writel (tmp_reg, dsi->regs +DSI_TXRX_CTRL );
@@ -483,7 +483,7 @@ static void mtk_dsi_config_vdo_timing(struct mtk_dsi *dsi) timing->da_hs_zero + timing->da_hs_exit +3 ; delta = dsi->mode_flags &MIPI_DSI_MODE_VIDEO_BURST ?18 :12 ; - delta += dsi->mode_flags &MIPI_DSI_MODE_NO_EOT_PACKET ?2 :0 ; + delta += dsi->mode_flags &MIPI_DSI_MODE_NO_EOT_PACKET ?0 :2 ; horizontal_frontporch_byte = vm->hfront_porch * dsi_tmp_buf_bpp; horizontal_front_back_byte = horizontal_frontporch_byte + horizontal_backporch_byte;
drivers/gpu/drm/msm/dsi/dsi_host.c +1 -2
@@ -1154,8 +1154,7 @@ static void dsi_tx_buf_free(struct msm_dsi_host *msm_host) priv = dev->dev_private;if (msm_host->tx_gem_obj) { -msm_gem_unpin_iova (msm_host->tx_gem_obj, priv->kms->aspace); -drm_gem_object_put (msm_host->tx_gem_obj); +msm_gem_kernel_put (msm_host->tx_gem_obj, priv->kms->aspace); msm_host->tx_gem_obj =NULL ; }
drivers/gpu/drm/radeon/evergreen.c +4 -3
@@ -4820,14 +4820,15 @@ int evergreen_irq_process(struct radeon_device *rdev)break ;case 44 :/* hdmi */ afmt_idx = src_data; -if (!(afmt_status[afmt_idx] &AFMT_AZ_FORMAT_WTRIG )) -DRM_DEBUG ("IH: IH event w/o asserted irq bit?\n" ); -if (afmt_idx >5 ) {DRM_ERROR ("Unhandled interrupt: %d %d\n" , src_id, src_data);break ; } + +if (!(afmt_status[afmt_idx] &AFMT_AZ_FORMAT_WTRIG )) +DRM_DEBUG ("IH: IH event w/o asserted irq bit?\n" ); + afmt_status[afmt_idx] &= ~AFMT_AZ_FORMAT_WTRIG ; queue_hdmi = true;DRM_DEBUG ("IH: HDMI%d\n" , afmt_idx +1 );
drivers/gpu/drm/rockchip/cdn-dp-core.c +13 -2
@@ -1146,6 +1146,7 @@ static int cdn_dp_probe(struct platform_device *pdev)struct cdn_dp_device *dp;struct extcon_dev *extcon;struct phy *phy; +int ret;int i; dp =devm_kzalloc (dev,sizeof (*dp),GFP_KERNEL );
@@ -1186,9 +1187,19 @@ static int cdn_dp_probe(struct platform_device *pdev)mutex_init (&dp->lock);dev_set_drvdata (dev, dp); -cdn_dp_audio_codec_init (dp, dev); + ret =cdn_dp_audio_codec_init (dp, dev); +if (ret) +return ret; + + ret =component_add (dev, &cdn_dp_component_ops); +if (ret) + goto err_audio_deinit; -return component_add (dev, &cdn_dp_component_ops); +return 0 ; + +err_audio_deinit: +platform_device_unregister (dp->audio_pdev); +return ret; }static int cdn_dp_remove (struct platform_device *pdev)
drivers/gpu/drm/rockchip/rockchip_drm_gem.c +1 -1
@@ -39,7 +39,7 @@ static int rockchip_gem_iommu_map(struct rockchip_gem_object *rk_obj) ret =iommu_map_sgtable (private->domain, rk_obj->dma_addr, rk_obj->sgt, prot); -if (ret < rk_obj->base.size) { +if (ret < (ssize_t )rk_obj->base.size) {DRM_ERROR ("failed to map buffer: size=%zd request_size=%zd\n" , ret, rk_obj->base.size); ret = -ENOMEM ;
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +6 -2
@@ -1554,7 +1554,8 @@ static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc)if (WARN_ON (!crtc->state))return NULL ; - rockchip_state =kzalloc (sizeof (*rockchip_state),GFP_KERNEL ); + rockchip_state =kmemdup (to_rockchip_crtc_state (crtc->state), +sizeof (*rockchip_state),GFP_KERNEL );if (!rockchip_state)return NULL ;
@@ -1579,7 +1580,10 @@ static void vop_crtc_reset(struct drm_crtc *crtc)if (crtc->state)vop_crtc_destroy_state (crtc, crtc->state); -__drm_atomic_helper_crtc_reset (crtc, &crtc_state->base); +if (crtc_state) +__drm_atomic_helper_crtc_reset (crtc, &crtc_state->base); +else +__drm_atomic_helper_crtc_reset (crtc,NULL ); }#ifdef CONFIG_DRM_ANALOGIX_DP
drivers/hid/hid-cp2112.c +6 -3
@@ -1157,8 +1157,6 @@ static unsigned int cp2112_gpio_irq_startup(struct irq_data *d)struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct cp2112_device *dev =gpiochip_get_data (gc); -INIT_DELAYED_WORK (&dev->gpio_poll_worker, cp2112_gpio_poll_callback); -if (!dev->gpio_poll) { dev->gpio_poll = true;schedule_delayed_work (&dev->gpio_poll_worker,0 );
@@ -1173,7 +1171,10 @@ static void cp2112_gpio_irq_shutdown(struct irq_data *d)struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct cp2112_device *dev =gpiochip_get_data (gc); -cancel_delayed_work_sync (&dev->gpio_poll_worker); +if (!dev->irq_mask) { + dev->gpio_poll = false; +cancel_delayed_work_sync (&dev->gpio_poll_worker); + } }static int cp2112_gpio_irq_type (struct irq_data *d,unsigned int type)
@@ -1354,6 +1355,8 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) girq->handler = handle_simple_irq; girq->threaded = true; +INIT_DELAYED_WORK (&dev->gpio_poll_worker, cp2112_gpio_poll_callback); + ret =gpiochip_add_data (&dev->gc, dev);if (ret <0 ) {hid_err (hdev,"error registering gpio chip\n" );
drivers/hid/hid-logitech-hidpp.c +28 -48
162 lines not on this page · raw message
drivers/hwmon/axi-fan-control.c +16 -13
@@ -508,6 +508,21 @@ static int axi_fan_control_probe(struct platform_device *pdev)return -ENODEV ; } + ret =axi_fan_control_init (ctl, pdev->dev.of_node); +if (ret) { +dev_err (&pdev->dev,"Failed to initialize device\n" ); +return ret; + } + + ctl->hdev =devm_hwmon_device_register_with_info (&pdev->dev, + name, + ctl, + &axi_chip_info, + axi_fan_control_groups); + +if (IS_ERR (ctl->hdev)) +return PTR_ERR (ctl->hdev); + ctl->irq =platform_get_irq (pdev,0 );if (ctl->irq <0 )return ctl->irq;
@@ -521,19 +536,7 @@ static int axi_fan_control_probe(struct platform_device *pdev)return ret; } - ret =axi_fan_control_init (ctl, pdev->dev.of_node); -if (ret) { -dev_err (&pdev->dev,"Failed to initialize device\n" ); -return ret; - } - - ctl->hdev =devm_hwmon_device_register_with_info (&pdev->dev, - name, - ctl, - &axi_chip_info, - axi_fan_control_groups); - -return PTR_ERR_OR_ZERO (ctl->hdev); +return 0 ; }static struct platform_driver axi_fan_control_driver = {
drivers/hwmon/coretemp.c +1 -1
@@ -41,7 +41,7 @@ MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius");#define PKG_SYSFS_ATTR_NO 1/* Sysfs attribute for package temp */ #define BASE_SYSFS_ATTR_NO 2/* Sysfs Base attr no for coretemp */ #define NUM_REAL_CORES 128/* Number of Real cores per cpu */ -#define CORETEMP_NAME_LENGTH 19/* String Length of attrs */ +#define CORETEMP_NAME_LENGTH 28/* String Length of attrs */ #define MAX_CORE_ATTRS 4/* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1)#define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO)
drivers/i2c/busses/i2c-bcm-iproc.c +75 -58
166 lines not on this page · raw message
drivers/i3c/master.c +3 -1
@@ -1506,9 +1506,11 @@ i3c_master_register_new_i3c_devs(struct i3c_master_controller *master) desc->dev->dev.of_node = desc->boardinfo->of_node; ret =device_register (&desc->dev->dev); -if (ret) +if (ret) {dev_err (&master->dev,"Failed to add I3C device (err = %d)\n" , ret); +put_device (&desc->dev->dev); + } } }
drivers/infiniband/core/device.c +1 -1
@@ -803,7 +803,7 @@ static int alloc_port_data(struct ib_device *device)* empty slots at the beginning. */ pdata_rcu =kzalloc (struct_size (pdata_rcu, pdata, -rdma_end_port (device) +1 ), +size_add (rdma_end_port (device),1 )),GFP_KERNEL );if (!pdata_rcu)return -ENOMEM ;
drivers/infiniband/core/sa_query.c +3 -1
@@ -2132,7 +2132,9 @@ static int ib_sa_add_one(struct ib_device *device) s =rdma_start_port (device); e =rdma_end_port (device); - sa_dev =kzalloc (struct_size (sa_dev, port, e - s +1 ),GFP_KERNEL ); + sa_dev =kzalloc (struct_size (sa_dev, port, +size_add (size_sub (e, s),1 )), +GFP_KERNEL );if (!sa_dev)return -ENOMEM ;
drivers/infiniband/core/sysfs.c +5 -5
@@ -902,7 +902,7 @@ alloc_hw_stats_device(struct ib_device *ibdev)* Two extra attribue elements here, one for the lifespan entry and * one to NULL terminate the list for the sysfs core code */ - data =kzalloc (struct_size (data, attrs, stats->num_counters +1 ), + data =kzalloc (struct_size (data, attrs,size_add (stats->num_counters,1 )),GFP_KERNEL );if (!data) goto err_free_stats;
@@ -1001,7 +1001,7 @@ alloc_hw_stats_port(struct ib_port *port, struct attribute_group *group)* Two extra attribue elements here, one for the lifespan entry and * one to NULL terminate the list for the sysfs core code */ - data =kzalloc (struct_size (data, attrs, stats->num_counters +1 ), + data =kzalloc (struct_size (data, attrs,size_add (stats->num_counters,1 )),GFP_KERNEL );if (!data) goto err_free_stats;
@@ -1125,7 +1125,7 @@ static int setup_gid_attrs(struct ib_port *port,int ret; gid_attr_group =kzalloc (struct_size (gid_attr_group, attrs_list, - attr->gid_tbl_len *2 ), +size_mul (attr->gid_tbl_len,2 )),GFP_KERNEL );if (!gid_attr_group)return -ENOMEM ;
@@ -1190,8 +1190,8 @@ static struct ib_port *setup_port(struct ib_core_device *coredev, int port_num,int ret; p =kvzalloc (struct_size (p, attrs_list, - attr->gid_tbl_len + attr->pkey_tbl_len), -GFP_KERNEL ); +size_add (attr->gid_tbl_len, attr->pkey_tbl_len)), +GFP_KERNEL );if (!p)return ERR_PTR (-ENOMEM ); p->ibdev = device;
drivers/infiniband/core/user_mad.c +3 -1
@@ -1378,7 +1378,9 @@ static int ib_umad_add_one(struct ib_device *device) s =rdma_start_port (device); e =rdma_end_port (device); - umad_dev =kzalloc (struct_size (umad_dev, ports, e - s +1 ),GFP_KERNEL ); + umad_dev =kzalloc (struct_size (umad_dev, ports, +size_add (size_sub (e, s),1 )), +GFP_KERNEL );if (!umad_dev)return -ENOMEM ;
drivers/infiniband/hw/hfi1/efivar.c +1 -1
@@ -110,7 +110,7 @@ int read_hfi1_efi_var(struct hfi1_devdata *dd, const char *kind, unsigned long *size, void **return_data) { char prefix_name[64]; -char name[64 ]; +char name[128 ];int result;int i;
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +4 -1
@@ -244,7 +244,7 @@ static bool check_inl_data_len(struct hns_roce_qp *qp, unsigned int len)struct hns_roce_dev *hr_dev =to_hr_dev (qp->ibqp.device);int mtu =ib_mtu_enum_to_int (qp->path_mtu); -if (len > qp->max_inline_data || len > mtu) { +if (mtu <0 || len > qp->max_inline_data || len > mtu) {ibdev_err (&hr_dev->ib_dev,"invalid length of data, data len = %u, max inline len = %u, path mtu = %d.\n" , len, qp->max_inline_data, mtu);
@@ -4556,6 +4556,9 @@ static int check_cong_type(struct ib_qp *ibqp, {struct hns_roce_dev *hr_dev =to_hr_dev (ibqp->device); +if (ibqp->qp_type ==IB_QPT_UD ) + hr_dev->caps.cong_type =CONG_TYPE_DCQCN ; +/* different congestion types match different configurations */ switch (hr_dev->caps.cong_type) {case CONG_TYPE_DCQCN :
drivers/infiniband/hw/hns/hns_roce_qp.c +1 -1
@@ -1049,7 +1049,7 @@ static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev, {struct hns_roce_ib_create_qp_resp resp = {};struct ib_device *ibdev = &hr_dev->ib_dev; -struct hns_roce_ib_create_qp ucmd; +struct hns_roce_ib_create_qp ucmd = {};int ret;mutex_init (&hr_qp->mutex);
drivers/infiniband/hw/mlx5/qp.c +27 -0
@@ -3955,6 +3955,30 @@ static unsigned int get_tx_affinity(struct ib_qp *qp,return tx_affinity; } +static int __mlx5_ib_qp_set_raw_qp_counter (struct mlx5_ib_qp *qp,u32 set_id, +struct mlx5_core_dev *mdev) +{ +struct mlx5_ib_raw_packet_qp *raw_packet_qp = &qp->raw_packet_qp; +struct mlx5_ib_rq *rq = &raw_packet_qp->rq; +u32 in[MLX5_ST_SZ_DW (modify_rq_in)] = {}; +void *rqc; + +if (!qp->rq.wqe_cnt) +return 0 ; + +MLX5_SET (modify_rq_in, in, rq_state, rq->state); +MLX5_SET (modify_rq_in, in, uid,to_mpd (qp->ibqp.pd)->uid); + + rqc =MLX5_ADDR_OF (modify_rq_in, in, ctx); +MLX5_SET (rqc, rqc, state,MLX5_RQC_STATE_RDY ); + +MLX5_SET64 (modify_rq_in, in, modify_bitmask, +MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_RQ_COUNTER_SET_ID ); +MLX5_SET (rqc, rqc, counter_set_id, set_id); + +return mlx5_core_modify_rq (mdev, rq->base.mqp.qpn, in); +} +static int __mlx5_ib_qp_set_counter (struct ib_qp *qp,struct rdma_counter *counter) {
@@ -3970,6 +3994,9 @@ static int __mlx5_ib_qp_set_counter(struct ib_qp *qp,else set_id =mlx5_ib_get_counters_id (dev, mqp->port -1 ); +if (mqp->type ==IB_QPT_RAW_PACKET ) +return __mlx5_ib_qp_set_raw_qp_counter (mqp, set_id, dev->mdev); + base = &mqp->trans_qp.base;MLX5_SET (rts2rts_qp_in, in, opcode,MLX5_CMD_OP_RTS2RTS_QP );MLX5_SET (rts2rts_qp_in, in, qpn, base->mqp.qpn);
drivers/input/rmi4/rmi_bus.c +1 -1
@@ -276,11 +276,11 @@ void rmi_unregister_function(struct rmi_function *fn)device_del (&fn->dev);of_node_put (fn->dev.of_node); -put_device (&fn->dev);for (i =0 ; i < fn->num_of_irqs; i++)irq_dispose_mapping (fn->irq[i]); +put_device (&fn->dev); }/**
drivers/leds/leds-pwm.c +1 -1
@@ -53,7 +53,7 @@ static int led_pwm_set(struct led_classdev *led_cdev, duty = led_dat->pwmstate.period - duty; led_dat->pwmstate.duty_cycle = duty; - led_dat->pwmstate.enabled = duty >0 ; + led_dat->pwmstate.enabled = true;return pwm_apply_state (led_dat->pwm, &led_dat->pwmstate); }
drivers/leds/leds-turris-omnia.c +43 -22
122 lines not on this page · raw message
drivers/leds/trigger/ledtrig-cpu.c +2 -2
@@ -130,7 +130,7 @@ static int ledtrig_prepare_down_cpu(unsigned int cpu)static int __init ledtrig_cpu_init (void ) { -int cpu; +unsigned int cpu;int ret;/* Supports up to 9999 cpu cores */
@@ -152,7 +152,7 @@ static int __init ledtrig_cpu_init(void)if (cpu >=8 )continue ; -snprintf (trig->name,MAX_NAME_LEN ,"cpu%d" , cpu); +snprintf (trig->name,MAX_NAME_LEN ,"cpu%u" , cpu);led_trigger_register_simple (trig->name, &trig->_trig); }
drivers/media/i2c/max9286.c +0 -2
@@ -1231,7 +1231,6 @@ static int max9286_parse_dt(struct max9286_priv *priv) i2c_mux_mask |=BIT (id); } -of_node_put (node);of_node_put (i2c_mux);/* Parse the endpoints */
@@ -1295,7 +1294,6 @@ static int max9286_parse_dt(struct max9286_priv *priv) priv->source_mask |=BIT (ep.port); priv->nsources++; } -of_node_put (node);/* * Parse the initial value of the reverse channel amplitude from
drivers/media/pci/bt8xx/bttv-driver.c +1 -0
@@ -4250,6 +4250,7 @@ static void bttv_remove(struct pci_dev *pci_dev)/* free resources */ free_irq (btv->c.pci->irq,btv); +del_timer_sync (&btv->timeout);iounmap (btv->bt848_mmio);release_mem_region (pci_resource_start (btv->c.pci,0 ),pci_resource_len (btv->c.pci,0 ));
drivers/media/platform/s3c-camif/camif-capture.c +2 -4
@@ -1132,12 +1132,12 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx) ret =vb2_queue_init (q);if (ret) - goto err_vd_rel; +return ret; vp->pad.flags =MEDIA_PAD_FL_SINK ; ret =media_entity_pads_init (&vfd->entity,1 , &vp->pad);if (ret) - goto err_vd_rel; +return ret;video_set_drvdata (vfd, vp);
@@ -1170,8 +1170,6 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx)v4l2_ctrl_handler_free (&vp->ctrl_handler); err_me_cleanup:media_entity_cleanup (&vfd->entity); -err_vd_rel: -video_device_release (vfd);return ret; }
drivers/media/test-drivers/vidtv/vidtv_mux.c +6 -1
@@ -504,13 +504,16 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe, m->priv = args->priv; m->network_id = args->network_id; m->network_name =kstrdup (args->network_name,GFP_KERNEL ); +if (!m->network_name) + goto free_mux_buf; + m->timing.current_jiffies =get_jiffies_64 ();if (args->channels) m->channels = args->channels;else if (vidtv_channels_init (m) <0 ) - goto free_mux_buf; + goto free_mux_network_name;/* will alloc data for pmt_sections after initializing pat */ if (vidtv_channel_si_init (m) <0 )
@@ -527,6 +530,8 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe,vidtv_channel_si_destroy (m); free_channels:vidtv_channels_destroy (m); +free_mux_network_name: +kfree (m->network_name); free_mux_buf:vfree (m->mux_buf); free_mux:
drivers/media/test-drivers/vidtv/vidtv_psi.c +40 -5
31 lines not on this page · raw message
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +7 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +46 -34
80 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h +17 -17
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +12 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +13 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/toshiba/spider_net.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/dvm/tx.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-trans.h +4 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/tx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/internal.h +15 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/rx.c +53 -19
72 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/trans.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/queue/tx.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/queue/tx.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/dma.c +24 -22
46 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mac80211.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76.h +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c +56 -22
78 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7603/core.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/mac.c +16 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/regs.h +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/sdio.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/testmode.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/tx.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/usb.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/debug.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/wmi.c +21 -29
50 lines not on this page · raw message
drivers/staging/media/sunxi/cedrus/cedrus_hw.c +12 -12
Lines of this file are not shown. View the raw message.
drivers/usb/chipidea/host.c +20 -28
48 lines not on this page · raw message
drivers/xen/xen-pciback/conf_space_capability.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/xen/xen-pciback/conf_space_header.c +3 -18
Lines of this file are not shown. View the raw message.
fs/fs-writeback.c +29 -12
41 lines not on this page · raw message
include/net/netfilter/nf_nat_redirect.h +1 -2
Lines of this file are not shown. View the raw message.
net/netfilter/nf_nat_redirect.c +58 -40
98 lines not on this page · raw message
net/netfilter/nft_redir.c +31 -53
84 lines not on this page · raw message
sound/soc/intel/skylake/skl-sst-utils.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/tailcalls.c +70 -15
85 lines not on this page · raw message
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c new file +42 -0
42 lines not on this page · raw message
tools/testing/selftests/pidfd/pidfd_fdinfo_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/pidfd/pidfd_test.c +6 -6
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl_tests.c +5 -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.