Linux 6.14.10
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.14.10 kernel.
All users of the 6.14 kernel series must upgrade.
The updated 6.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.14.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi | 4 arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 arch/arm64/boot/dts/qcom/sa8775p.dtsi | 248 -------- arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 arch/arm64/boot/dts/qcom/sm8450.dtsi | 2 arch/arm64/boot/dts/qcom/sm8550.dtsi | 2 arch/arm64/boot/dts/qcom/sm8650.dtsi | 2 arch/arm64/boot/dts/qcom/x1e001de-devkit.dts | 6 arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts | 4 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts | 2 arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts | 14 arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts | 7 arch/arm64/boot/dts/qcom/x1e80100-qcp.dts | 6 arch/arm64/boot/dts/qcom/x1e80100.dtsi | 309 +++++----- arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 40 - arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 2 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 2 arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi | 2 arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso | 3 arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso | 2 arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso | 2 arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 2 arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts | 13 arch/arm64/boot/dts/ti/k3-j721e-sk-csi2-dual-imx219.dtso | 35 + arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 31 + arch/arm64/boot/dts/ti/k3-j722s-evm.dts | 8 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 arch/arm64/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi | 2 arch/um/Makefile | 1 drivers/char/tpm/tpm-buf.c | 6 drivers/dma/idxd/cdev.c | 4 drivers/gpio/gpio-virtuser.c | 12 drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c | 20 drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 13 drivers/gpu/drm/xe/regs/xe_gt_regs.h | 1 drivers/gpu/drm/xe/xe_lrc.c | 4 drivers/gpu/drm/xe/xe_lrc_types.h | 4 drivers/gpu/drm/xe/xe_wa.c | 4 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 5 drivers/hid/hid-ids.h | 4 drivers/hid/hid-quirks.c | 2 drivers/iommu/iommu.c | 26 drivers/net/can/kvaser_pciefd.c | 81 +- drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 drivers/nvme/host/core.c | 30 drivers/nvme/host/multipath.c | 3 drivers/nvme/host/nvme.h | 3 drivers/nvme/host/pci.c | 2 drivers/nvme/target/pci-epf.c | 10 drivers/perf/arm-cmn.c | 11 drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c | 2 drivers/phy/starfive/phy-jh7110-usb.c | 7 drivers/platform/x86/fujitsu-laptop.c | 33 - drivers/platform/x86/thinkpad_acpi.c | 7 drivers/spi/spi-sun4i.c | 5 fs/coredump.c | 65 +- fs/nfs/client.c | 2 fs/nfs/dir.c | 15 fs/nfs/filelayout/filelayoutdev.c | 6 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 fs/nfs/pnfs.h | 4 fs/nfs/pnfs_nfs.c | 9 fs/smb/server/oplock.c | 7 include/linux/coredump.h | 1 include/linux/iommu.h | 2 include/linux/nfs_fs_sb.h | 12 kernel/module/Kconfig | 5 net/sched/sch_hfsc.c | 9 sound/pci/hda/patch_realtek.c | 5 70 files changed, 672 insertions(+), 538 deletions(-)
Abel Vesa (1):
arm64: dts: qcom: x1e80100: Fix PCIe 3rd controller DBI size
Alan Adamson (2):
nvme: multipath: enable BLK_FEAT_ATOMIC_WRITES for multipathing
nvme: all namespaces in a subsystem must adhere to a common atomic write size
Alessandro Grassi (1):
spi: spi-sun4i: fix early activation
Algea Cao (1):
phy: phy-rockchip-samsung-hdptx: Fix PHY PLL output 50.25MHz error
Alok Tiwari (1):
arm64: dts: qcom: sm8350: Fix typo in pil_camera_mem node
Aradhya Bhatia (1):
drm/xe/xe2hpg: Add Wa_22021007897
Aurabindo Pillai (1):
drm/amd/display: check stream id dml21 wrapper to get plane_id
Axel Forsman (1):
can: kvaser_pciefd: Force IRQ edge in case of nested IRQ
Christian Brauner (2):
coredump: fix error handling for replace_fd()
coredump: hand a pidfd to the usermode coredump helper
Damien Le Moal (1):
nvmet: pci-epf: cleanup nvmet_pci_epf_raise_irq()
George Shen (1):
drm/amd/display: fix link_set_dpms_off multi-display MST corner case
Greg Kroah-Hartman (1):
Linux 6.14.10
Hal Feng (1):
phy: starfive: jh7110-usb: Fix USB 2.0 host occasional detection failure
Ilya Guterman (1):
nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro
Jeff Layton (1):
nfs: don't share pNFS DS connections between net namespaces
Johan Hovold (5):
arm64: dts: qcom: x1e001de-devkit: mark l12b and l15b always-on
arm64: dts: qcom: x1e80100-dell-xps13-9345: mark l12b and l15b always-on
arm64: dts: qcom: x1e80100-hp-x14: mark l12b and l15b always-on
arm64: dts: qcom: x1e80100-qcp: mark l12b and l15b always-on
arm64: dts: qcom: x1e80100-yoga-slim7x: mark l12b and l15b always-onJohn Chau (1):
platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS
Judith Mendez (4):
arm64: dts: ti: k3-am62-main: Set eMMC clock parent to default
arm64: dts: ti: k3-am62a-main: Set eMMC clock parent to default
arm64: dts: ti: k3-am62p-j722s-common-main: Set eMMC clock parent to default
arm64: dts: ti: k3-am65-main: Add missing taps to sdhci0
Juerg Haefliger (1):
arm64: dts: qcom: x1e80100-hp-omnibook-x14: Enable SMB2360 0 and 1
Kailang Yang (1):
ALSA: hda/realtek - restore auto-mute mode for Dell Chrome platform
Karthik Sanagavarapu (1):
arm64: dts: qcom: sa8775p: Remove cdsp compute-cb@10
Ling Xu (1):
arm64: dts: qcom: sa8775p: Remove extra entries from the iommus property
Lukasz Czechowski (1):
arm64: dts: rockchip: fix internal USB hub instability on RK3399 Puma
Mario Limonciello (1):
HID: amd_sfh: Avoid clearing reports for SRA sensor
Mark Pearson (1):
platform/x86: thinkpad_acpi: Ignore battery threshold change event notification
Markus Burri (1):
gpio: virtuser: fix potential out-of-bound write
Masahiro Yamada (1):
um: let 'make clean' properly clean underlying SUBARCH as well
Milton Barrera (1):
HID: quirks: Add ADATA XPG alpha wireless mouse support
Namjae Jeon (1):
ksmbd: use list_first_entry_or_null for opinfo_get_list()
Niravkumar L Rabara (1):
arm64: dts: socfpga: agilex5: fix gpio0 address
Nishanth Menon (1):
net: ethernet: ti: am65-cpsw: Lower random mac address error print to info
Pedro Tammela (1):
net_sched: hfsc: Address reentrant enqueue adding class to eltree twice
Purva Yeshi (2):
dmaengine: idxd: cdev: Fix uninitialized use of sva in idxd_cdev_open
char: tpm: tpm-buf: Add sanity check fallback in read helpers
Robin Murphy (4):
perf/arm-cmn: Fix REQ2/SNP2 mixup perf/arm-cmn: Initialise cmn->cpu earlier perf/arm-cmn: Add CMN S3 ACPI binding
iommu: Handle yet another race around registration
Sami Tolvanen (1):
kbuild: Require pahole <v1.28 or >v1.29 with GENDWARFKSYMS on X86
Siddharth Vadapalli (3):
arm64: dts: ti: k3-j722s-evm: Enable "serdes_wiz0" and "serdes_wiz1"
arm64: dts: ti: k3-j722s-main: Disable "serdes_wiz0" and "serdes_wiz1"
arm64: dts: ti: k3-j784s4-j742s2-main-common: Fix length of serdes_ln_ctrlStephan Gerhold (13):
arm64: dts: qcom: ipq9574: Add missing properties for cryptobam
arm64: dts: qcom: sa8775p: Add missing properties for cryptobam
arm64: dts: qcom: sm8450: Add missing properties for cryptobam
arm64: dts: qcom: sm8550: Add missing properties for cryptobam
arm64: dts: qcom: sm8650: Add missing properties for cryptobam
arm64: dts: qcom: x1e001de-devkit: Fix vreg_l2j_1p2 voltage
arm64: dts: qcom: x1e80100-asus-vivobook-s15: Fix vreg_l2j_1p2 voltage
arm64: dts: qcom: x1e80100-hp-omnibook-x14: Fix vreg_l2j_1p2 voltage
arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Fix vreg_l2j_1p2 voltage
arm64: dts: qcom: x1e80100-qcp: Fix vreg_l2j_1p2 voltage
arm64: dts: qcom: x1e80100: Fix video thermal zone
arm64: dts: qcom: x1e80100: Apply consistent critical thermal shutdown
arm64: dts: qcom: x1e80100: Add GPU cooling
Trond Myklebust (1):
NFS: Avoid flushing data while holding directory locks in nfs_rename()
Umesh Nerlige Ramappa (1):
drm/xe: Save the gt pointer in lrc and drop the tile
Valtteri Koskivuori (1):
platform/x86: fujitsu-laptop: Support Lifebook S2110 hotkeys
Yemike Abhilash Chandra (7):
arm64: dts: ti: k3-am62x: Remove clock-names property from IMX219 overlay
arm64: dts: ti: k3-am62x: Rename I2C switch to I2C mux in IMX219 overlay
arm64: dts: ti: k3-am62x: Rename I2C switch to I2C mux in OV5640 overlay
arm64: dts: ti: k3-am68-sk: Fix regulator hierarchy
arm64: dts: ti: k3-j721e-sk: Add DT nodes for power regulators
arm64: dts: ti: k3-j721e-sk: Remove clock-names property from IMX219 overlay
arm64: dts: ti: k3-j721e-sk: Add requiried voltage supplies for IMX219
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 14 -SUBLEVEL = 9 +SUBLEVEL = 10 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi +2 -2
@@ -222,9 +222,9 @@ i3c1: i3c@10da1000 { status = "disabled"; }; - gpio0: gpio@ffc03200 { + gpio0: gpio@10c03200 { compatible = "snps,dw-apb-gpio"; - reg = <0xffc03200 0x100>; + reg = <0x10c03200 0x100>; #address-cells = <1>; #size-cells = <0>; resets = <&rst GPIO0_RESET>;
arch/arm64/boot/dts/qcom/ipq9574.dtsi +2 -0
@@ -378,6 +378,8 @@ cryptobam: dma-controller@704000 { interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <1>; + qcom,num-ees = <4>; + num-channels = <16>; qcom,controlled-remotely; };
arch/arm64/boot/dts/qcom/sa8775p.dtsi +25 -223
392 lines not on this page · raw message
arch/arm64/boot/dts/qcom/sm8350.dtsi +1 -1
@@ -455,7 +455,7 @@ cdsp_secure_heap: memory@80c00000 { no-map; }; - pil_camera_mem: mmeory@85200000 { + pil_camera_mem: memory@85200000 { reg = <0x0 0x85200000 0x0 0x500000>; no-map; };
arch/arm64/boot/dts/qcom/sm8450.dtsi +2 -0
@@ -5283,6 +5283,8 @@ cryptobam: dma-controller@1dc4000 { interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <0>; + qcom,num-ees = <4>; + num-channels = <16>; qcom,controlled-remotely; iommus = <&apps_smmu 0x584 0x11>, <&apps_smmu 0x588 0x0>,
arch/arm64/boot/dts/qcom/sm8550.dtsi +2 -0
@@ -1957,6 +1957,8 @@ cryptobam: dma-controller@1dc4000 { interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <0>; + qcom,num-ees = <4>; + num-channels = <20>; qcom,controlled-remotely; iommus = <&apps_smmu 0x480 0x0>, <&apps_smmu 0x481 0x0>;
arch/arm64/boot/dts/qcom/sm8650.dtsi +2 -0
@@ -2533,6 +2533,8 @@ cryptobam: dma-controller@1dc4000 { <&apps_smmu 0x481 0>; qcom,ee = <0>; + qcom,num-ees = <4>; + num-channels = <20>; qcom,controlled-remotely; };
arch/arm64/boot/dts/qcom/x1e001de-devkit.dts +4 -2
@@ -507,6 +507,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l13b_3p0: ldo13 {
@@ -528,6 +529,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l16b_2p9: ldo16 {
@@ -745,8 +747,8 @@ vreg_l1j_0p8: ldo1 { vreg_l2j_1p2: ldo2 { regulator-name = "vreg_l2j_1p2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; };
arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts +2 -2
@@ -330,8 +330,8 @@ vreg_l1j_0p8: ldo1 { vreg_l2j_1p2: ldo2 { regulator-name = "vreg_l2j_1p2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; };
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts +2 -0
@@ -359,6 +359,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l13b_3p0: ldo13 {
@@ -380,6 +381,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l17b_2p5: ldo17 {
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts +10 -4
@@ -633,6 +633,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l13b_3p0: ldo13 {
@@ -654,6 +655,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l16b_2p9: ldo16 {
@@ -871,8 +873,8 @@ vreg_l1j_0p8: ldo1 { vreg_l2j_1p2: ldo2 { regulator-name = "vreg_l2j_1p2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; };
@@ -1352,18 +1354,22 @@ &remoteproc_cdsp { status = "okay"; }; +&smb2360_0 { + status = "okay"; +}; + &smb2360_0_eusb2_repeater { vdd18-supply = <&vreg_l3d_1p8>; vdd3-supply = <&vreg_l2b_3p0>; +}; +&smb2360_1 { status = "okay"; }; &smb2360_1_eusb2_repeater { vdd18-supply = <&vreg_l3d_1p8>; vdd3-supply = <&vreg_l14b_3p0>; - - status = "okay"; }; &swr0 {
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts +4 -3
@@ -290,6 +290,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l14b_3p0: ldo14 {
@@ -304,8 +305,8 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; - }; regulators-1 {
@@ -508,8 +509,8 @@ vreg_l1j_0p8: ldo1 { vreg_l2j_1p2: ldo2 { regulator-name = "vreg_l2j_1p2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; };
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts +4 -2
@@ -437,6 +437,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l13b_3p0: ldo13 {
@@ -458,6 +459,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; }; vreg_l16b_2p9: ldo16 {
@@ -675,8 +677,8 @@ vreg_l1j_0p8: ldo1 { vreg_l2j_1p2: ldo2 { regulator-name = "vreg_l2j_1p2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; + regulator-min-microvolt = <1256000>; + regulator-max-microvolt = <1256000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; };
arch/arm64/boot/dts/qcom/x1e80100.dtsi +161 -148
690 lines not on this page · raw message
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +26 -14
@@ -60,16 +60,6 @@ vcc3v3_sys: regulator-vcc3v3-sys { vin-supply = <&vcc5v0_sys>; }; - vcc5v0_host: regulator-vcc5v0-host { - compatible = "regulator-fixed"; - gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>; - pinctrl-names = "default"; - pinctrl-0 = <&vcc5v0_host_en>; - regulator-name = "vcc5v0_host"; - regulator-always-on; - vin-supply = <&vcc5v0_sys>; - }; - vcc5v0_sys: regulator-vcc5v0-sys { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys";
@@ -521,10 +511,10 @@ pmic_int_l: pmic-int-l { }; }; - usb2 { - vcc5v0_host_en: vcc5v0-host-en { + usb { + cy3304_reset: cy3304-reset { rockchip,pins = - <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + <4 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>; }; };
@@ -591,7 +581,6 @@ u2phy1_otg: otg-port { }; u2phy1_host: host-port { - phy-supply = <&vcc5v0_host>; status = "okay"; }; };
@@ -603,6 +592,29 @@ &usbdrd3_1 { &usbdrd_dwc3_1 { status = "okay"; dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&cy3304_reset>; + #address-cells = <1>; + #size-cells = <0>; + + hub_2_0: hub@1 { + compatible = "usb4b4,6502", "usb4b4,6506"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>; + vdd-supply = <&vcc1v2_phy>; + vdd2-supply = <&vcc3v3_sys>; + + }; + + hub_3_0: hub@2 { + compatible = "usb4b4,6500", "usb4b4,6504"; + reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>; + vdd-supply = <&vcc1v2_phy>; + vdd2-supply = <&vcc3v3_sys>; + }; }; &usb_host1_ehci {
arch/arm64/boot/dts/ti/k3-am62-main.dtsi +0 -2
@@ -552,8 +552,6 @@ sdhci0: mmc@fa10000 { power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>; clocks = <&k3_clks 57 5>, <&k3_clks 57 6>; clock-names = "clk_ahb", "clk_xin"; - assigned-clocks = <&k3_clks 57 6>; - assigned-clock-parents = <&k3_clks 57 8>; bus-width = <8>; mmc-ddr-1_8v; mmc-hs200-1_8v;
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi +0 -2
@@ -575,8 +575,6 @@ sdhci0: mmc@fa10000 { power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>; clocks = <&k3_clks 57 5>, <&k3_clks 57 6>; clock-names = "clk_ahb", "clk_xin"; - assigned-clocks = <&k3_clks 57 6>; - assigned-clock-parents = <&k3_clks 57 8>; bus-width = <8>; mmc-hs200-1_8v; ti,clkbuf-sel = <0x7>;
arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi +0 -2
@@ -564,8 +564,6 @@ sdhci0: mmc@fa10000 { power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>; clocks = <&k3_clks 57 1>, <&k3_clks 57 2>; clock-names = "clk_ahb", "clk_xin"; - assigned-clocks = <&k3_clks 57 2>; - assigned-clock-parents = <&k3_clks 57 4>; bus-width = <8>; mmc-ddr-1_8v; mmc-hs200-1_8v;
arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso +1 -2
@@ -22,7 +22,7 @@ &main_i2c2 { #size-cells = <0>; status = "okay"; - i2c-switch@71 { + i2c-mux@71 { compatible = "nxp,pca9543"; #address-cells = <1>; #size-cells = <0>;
@@ -39,7 +39,6 @@ ov5640: camera@10 { reg = <0x10>; clocks = <&clk_imx219_fixed>; - clock-names = "xclk"; reset-gpios = <&exp1 13 GPIO_ACTIVE_HIGH>;
arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso +1 -1
@@ -22,7 +22,7 @@ &main_i2c2 { #size-cells = <0>; status = "okay"; - i2c-switch@71 { + i2c-mux@71 { compatible = "nxp,pca9543"; #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso +1 -1
@@ -22,7 +22,7 @@ &main_i2c2 { #size-cells = <0>; status = "okay"; - i2c-switch@71 { + i2c-mux@71 { compatible = "nxp,pca9543"; #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/ti/k3-am65-main.dtsi +2 -0
@@ -449,6 +449,8 @@ sdhci0: mmc@4f80000 { ti,otap-del-sel-mmc-hs = <0x0>; ti,otap-del-sel-ddr52 = <0x5>; ti,otap-del-sel-hs200 = <0x5>; + ti,itap-del-sel-legacy = <0xa>; + ti,itap-del-sel-mmc-hs = <0x1>; ti,itap-del-sel-ddr52 = <0x0>; dma-coherent; status = "disabled";
arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts +12 -1
@@ -44,6 +44,17 @@ vusb_main: regulator-vusb-main5v0 { regulator-boot-on; }; + vsys_5v0: regulator-vsys5v0 { + /* Output of LM61460 */ + compatible = "regulator-fixed"; + regulator-name = "vsys_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vusb_main>; + regulator-always-on; + regulator-boot-on; + }; + vsys_3v3: regulator-vsys3v3 { /* Output of LM5141 */ compatible = "regulator-fixed";
@@ -76,7 +87,7 @@ vdd_sd_dv: regulator-tlv71033 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; - vin-supply = <&vsys_3v3>; + vin-supply = <&vsys_5v0>; gpios = <&main_gpio0 49 GPIO_ACTIVE_HIGH>; states = <1800000 0x0>, <3300000 0x1>;
arch/arm64/boot/dts/ti/k3-j721e-sk-csi2-dual-imx219.dtso +33 -2
@@ -19,6 +19,33 @@ clk_imx219_fixed: imx219-xclk { #clock-cells = <0>; clock-frequency = <24000000>; }; + + reg_2p8v: regulator-2p8v { + compatible = "regulator-fixed"; + regulator-name = "2P8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + vin-supply = <&vdd_sd_dv>; + regulator-always-on; + }; + + reg_1p8v: regulator-1p8v { + compatible = "regulator-fixed"; + regulator-name = "1P8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vdd_sd_dv>; + regulator-always-on; + }; + + reg_1p2v: regulator-1p2v { + compatible = "regulator-fixed"; + regulator-name = "1P2V"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + vin-supply = <&vdd_sd_dv>; + regulator-always-on; + }; }; &csi_mux {
@@ -34,7 +61,9 @@ imx219_0: imx219-0@10 { reg = <0x10>; clocks = <&clk_imx219_fixed>; - clock-names = "xclk"; + VANA-supply = <®_2p8v>; + VDIG-supply = <®_1p8v>; + VDDL-supply = <®_1p2v>; port { csi2_cam0: endpoint {
@@ -56,7 +85,9 @@ imx219_1: imx219-1@10 { reg = <0x10>; clocks = <&clk_imx219_fixed>; - clock-names = "xclk"; + VANA-supply = <®_2p8v>; + VDIG-supply = <®_1p8v>; + VDDL-supply = <®_1p2v>; port { csi2_cam1: endpoint {
arch/arm64/boot/dts/ti/k3-j721e-sk.dts +31 -0
@@ -184,6 +184,17 @@ vsys_3v3: fixedregulator-vsys3v3 { regulator-boot-on; }; + vsys_5v0: fixedregulator-vsys5v0 { + /* Output of LM61460 */ + compatible = "regulator-fixed"; + regulator-name = "vsys_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vusb_main>; + regulator-always-on; + regulator-boot-on; + }; + vdd_mmc1: fixedregulator-sd { compatible = "regulator-fixed"; pinctrl-names = "default";
@@ -211,6 +222,20 @@ vdd_sd_dv_alt: gpio-regulator-tps659411 { <3300000 0x1>; }; + vdd_sd_dv: gpio-regulator-TLV71033 { + compatible = "regulator-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&vdd_sd_dv_pins_default>; + regulator-name = "tlv71033"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + vin-supply = <&vsys_5v0>; + gpios = <&main_gpio0 118 GPIO_ACTIVE_HIGH>; + states = <1800000 0x0>, + <3300000 0x1>; + }; + transceiver1: can-phy1 { compatible = "ti,tcan1042"; #phy-cells = <0>;
@@ -613,6 +638,12 @@ J721E_WKUP_IOPAD(0xd4, PIN_OUTPUT, 7) /* (G26) WKUP_GPIO0_9 */ >; }; + vdd_sd_dv_pins_default: vdd-sd-dv-default-pins { + pinctrl-single,pins = < + J721E_IOPAD(0x1dc, PIN_OUTPUT, 7) /* (Y1) SPI1_CLK.GPIO0_118 */ + >; + }; + wkup_uart0_pins_default: wkup-uart0-default-pins { pinctrl-single,pins = < J721E_WKUP_IOPAD(0xa0, PIN_INPUT, 0) /* (J29) WKUP_UART0_RXD */
arch/arm64/boot/dts/ti/k3-j722s-evm.dts +8 -0
@@ -815,6 +815,10 @@ &serdes_ln_ctrl { <J722S_SERDES1_LANE0_PCIE0_LANE0>; }; +&serdes_wiz0 { + status = "okay"; +}; + &serdes0 { status = "okay"; serdes0_usb_link: phy@0 {
@@ -826,6 +830,10 @@ serdes0_usb_link: phy@0 { }; }; +&serdes_wiz1 { + status = "okay"; +}; + &serdes1 { status = "okay"; serdes1_pcie_link: phy@0 {
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi +4 -0
@@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 { assigned-clocks = <&k3_clks 279 1>; assigned-clock-parents = <&k3_clks 279 5>; + status = "disabled"; + serdes0: serdes@f000000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f000000 0x00010000>;
@@ -70,6 +72,8 @@ serdes_wiz1: phy@f010000 { assigned-clocks = <&k3_clks 280 1>; assigned-clock-parents = <&k3_clks 280 5>; + status = "disabled"; + serdes1: serdes@f010000 { compatible = "ti,j721e-serdes-10g"; reg = <0x0f010000 0x00010000>;
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi +1 -1
@@ -77,7 +77,7 @@ pcie1_ctrl: pcie1-ctrl@4074 { serdes_ln_ctrl: mux-controller@4080 { compatible = "reg-mux"; - reg = <0x00004080 0x30>; + reg = <0x00004080 0x50>; #mux-control-cells = <1>; mux-reg-masks = <0x0 0x3>, <0x4 0x3>, /* SERDES0 lane0/1 select */ <0x8 0x3>, <0xc 0x3>, /* SERDES0 lane2/3 select */
arch/um/Makefile +1 -0
@@ -154,5 +154,6 @@ MRPROPER_FILES += $(HOST_DIR)/include/generated archclean: @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ -o -name '*.gcov' \) -type f -print | xargs rm -f + $(Q)$(MAKE) -f $(srctree)/Makefile ARCH=$(HEADER_ARCH) clean export HEADER_ARCH SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING DEV_NULL_PATH
drivers/char/tpm/tpm-buf.c +3 -3
@@ -201,7 +201,7 @@ static void tpm_buf_read(struct tpm_buf *buf, off_t *offset, size_t count, void*/ u8 tpm_buf_read_u8 (struct tpm_buf *buf,off_t *offset) { -u8 value; +u8 value =0 ;tpm_buf_read (buf, offset,sizeof (value), &value);
@@ -218,7 +218,7 @@ EXPORT_SYMBOL_GPL(tpm_buf_read_u8);*/ u16 tpm_buf_read_u16 (struct tpm_buf *buf,off_t *offset) { -u16 value; +u16 value =0 ;tpm_buf_read (buf, offset,sizeof (value), &value);
@@ -235,7 +235,7 @@ EXPORT_SYMBOL_GPL(tpm_buf_read_u16);*/ u32 tpm_buf_read_u32 (struct tpm_buf *buf,off_t *offset) { -u32 value; +u32 value =0 ;tpm_buf_read (buf, offset,sizeof (value), &value);
drivers/dma/idxd/cdev.c +2 -2
@@ -222,7 +222,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)struct idxd_wq *wq;struct device *dev, *fdev;int rc =0 ; -struct iommu_sva *sva; +struct iommu_sva *sva =NULL ;unsigned int pasid;struct idxd_cdev *idxd_cdev;
@@ -317,7 +317,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)if (device_user_pasid_enabled (idxd))idxd_xa_pasid_remove (ctx); failed_get_pasid: -if (device_user_pasid_enabled (idxd)) +if (device_user_pasid_enabled (idxd) && !IS_ERR_OR_NULL (sva))iommu_sva_unbind_device (sva); failed:mutex_unlock (&wq->wq_lock);
drivers/gpio/gpio-virtuser.c +10 -2
@@ -400,10 +400,15 @@ static ssize_t gpio_virtuser_direction_do_write(struct file *file,char buf[32 ], *trimmed;int ret, dir, val =0 ; - ret =simple_write_to_buffer (buf,sizeof (buf), ppos, user_buf, count); +if (count >=sizeof (buf)) +return -EINVAL ; + + ret =simple_write_to_buffer (buf,sizeof (buf) -1 , ppos, user_buf, count);if (ret <0 )return ret; + buf[ret] ='\0' ; + trimmed =strim (buf);if (strcmp (trimmed,"input" ) ==0 ) {
@@ -622,12 +627,15 @@ static ssize_t gpio_virtuser_consumer_write(struct file *file,char buf[GPIO_VIRTUSER_NAME_BUF_LEN +2 ];int ret; +if (count >=sizeof (buf)) +return -EINVAL ; + ret =simple_write_to_buffer (buf,GPIO_VIRTUSER_NAME_BUF_LEN , ppos, user_buf, count);if (ret <0 )return ret; - buf[strlen (buf) -1 ] ='\0' ; + buf[ret] ='\0' ; ret =gpiod_set_consumer_name (data->ad.desc, buf);if (ret)
drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c +11 -9
@@ -910,7 +910,7 @@ static void populate_dml21_plane_config_from_plane_state(struct dml2_context *dm }//TODO : Could be possibly moved to a common helper layer. -static bool dml21_wrapper_get_plane_id (const struct dc_state *context,const struct dc_plane_state *plane,unsigned int *plane_id) +static bool dml21_wrapper_get_plane_id (const struct dc_state *context,unsigned int stream_id,const struct dc_plane_state *plane,unsigned int *plane_id) {int i, j;
@@ -918,10 +918,12 @@ static bool dml21_wrapper_get_plane_id(const struct dc_state *context, const strreturn false;for (i =0 ; i < context->stream_count; i++) { -for (j =0 ; j < context->stream_status[i].plane_count; j++) { -if (context->stream_status[i].plane_states[j] == plane) { - *plane_id = (i <<16 ) | j; -return true; +if (context->streams[i]->stream_id == stream_id) { +for (j =0 ; j < context->stream_status[i].plane_count; j++) { +if (context->stream_status[i].plane_states[j] == plane) { + *plane_id = (i <<16 ) | j; +return true; + } } } }
@@ -944,14 +946,14 @@ static unsigned int map_stream_to_dml21_display_cfg(const struct dml2_context *dreturn location; } -static unsigned int map_plane_to_dml21_display_cfg (const struct dml2_context *dml_ctx, +static unsigned int map_plane_to_dml21_display_cfg (const struct dml2_context *dml_ctx,unsigned int stream_id,const struct dc_plane_state *plane,const struct dc_state *context) {unsigned int plane_id;int i =0 ;int location =-1 ; -if (!dml21_wrapper_get_plane_id (context, plane, &plane_id)) { +if (!dml21_wrapper_get_plane_id (context, stream_id, plane, &plane_id)) {ASSERT (false);return -1 ; }
@@ -1037,7 +1039,7 @@ bool dml21_map_dc_state_into_dml_display_cfg(const struct dc *in_dc, struct dc_s dml_dispcfg->plane_descriptors[disp_cfg_plane_location].stream_index = disp_cfg_stream_location; }else {for (plane_index =0 ; plane_index < context->stream_status[stream_index].plane_count; plane_index++) { - disp_cfg_plane_location =map_plane_to_dml21_display_cfg (dml_ctx, context->stream_status[stream_index].plane_states[plane_index], context); + disp_cfg_plane_location =map_plane_to_dml21_display_cfg (dml_ctx, context->streams[stream_index]->stream_id, context->stream_status[stream_index].plane_states[plane_index], context);if (disp_cfg_plane_location <0 ) disp_cfg_plane_location = dml_dispcfg->num_planes++;
@@ -1048,7 +1050,7 @@ bool dml21_map_dc_state_into_dml_display_cfg(const struct dc *in_dc, struct dc_spopulate_dml21_plane_config_from_plane_state (dml_ctx, &dml_dispcfg->plane_descriptors[disp_cfg_plane_location], context->stream_status[stream_index].plane_states[plane_index], context, stream_index); dml_dispcfg->plane_descriptors[disp_cfg_plane_location].stream_index = disp_cfg_stream_location; -if (dml21_wrapper_get_plane_id (context, context->stream_status[stream_index].plane_states[plane_index], &dml_ctx->v21.dml_to_dc_pipe_mapping.disp_cfg_to_plane_id[disp_cfg_plane_location])) +if (dml21_wrapper_get_plane_id (context, context->streams[stream_index]->stream_id, context->stream_status[stream_index].plane_states[plane_index], &dml_ctx->v21.dml_to_dc_pipe_mapping.disp_cfg_to_plane_id[disp_cfg_plane_location])) dml_ctx->v21.dml_to_dc_pipe_mapping.disp_cfg_to_plane_id_valid[disp_cfg_plane_location] = true;/* apply forced pstate policy */
drivers/gpu/drm/amd/display/dc/link/link_dpms.c +11 -2
@@ -148,6 +148,7 @@ void link_blank_dp_stream(struct dc_link *link, bool hw_init)void link_set_all_streams_dpms_off_for_link (struct dc_link *link) {struct pipe_ctx *pipes[MAX_PIPES ]; +struct dc_stream_state *streams[MAX_PIPES ];struct dc_state *state = link->dc->current_state;uint8_t count;int i;
@@ -160,10 +161,18 @@ void link_set_all_streams_dpms_off_for_link(struct dc_link *link)link_get_master_pipes_with_dpms_on (link, state, &count, pipes); +/* The subsequent call to dc_commit_updates_for_stream for a full update +* will release the current state and swap to a new state. Releasing the +* current state results in the stream pointers in the pipe_ctx structs +* to be zero'd. Hence, cache all streams prior to dc_commit_updates_for_stream. +*/ +for (i =0 ; i < count; i++) + streams[i] = pipes[i]->stream; +for (i =0 ; i < count; i++) { - stream_update.stream = pipes[i]->stream; + stream_update.stream = streams[i];dc_commit_updates_for_stream (link->ctx->dc,NULL ,0 , - pipes[i]->stream, &stream_update, + streams[i], &stream_update, state); }
drivers/gpu/drm/xe/regs/xe_gt_regs.h +1 -0
@@ -157,6 +157,7 @@#define XEHPG_SC_INSTDONE_EXTRA2 XE_REG_MCR(0x7108)#define COMMON_SLICE_CHICKEN4 XE_REG(0x7300, XE_REG_OPTION_MASKED) +#define SBE_PUSH_CONSTANT_BEHIND_FIX_ENABLE REG_BIT(12)#define DISABLE_TDC_LOAD_BALANCING_CALC REG_BIT(6)#define COMMON_SLICE_CHICKEN3 XE_REG(0x7304, XE_REG_OPTION_MASKED)
drivers/gpu/drm/xe/xe_lrc.c +2 -2
@@ -864,7 +864,7 @@ static void *empty_lrc_data(struct xe_hw_engine *hwe)static void xe_lrc_set_ppgtt (struct xe_lrc *lrc,struct xe_vm *vm) { -u64 desc =xe_vm_pdp4_descriptor (vm, lrc->tile); +u64 desc =xe_vm_pdp4_descriptor (vm,gt_to_tile (lrc->gt));xe_lrc_write_ctx_reg (lrc,CTX_PDP0_UDW ,upper_32_bits (desc));xe_lrc_write_ctx_reg (lrc,CTX_PDP0_LDW ,lower_32_bits (desc));
@@ -895,6 +895,7 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,int err;kref_init (&lrc->refcount); + lrc->gt = gt; lrc->flags =0 ; lrc_size = ring_size +xe_gt_lrc_size (gt, hwe->class);if (xe_gt_has_indirect_ring_state (gt))
@@ -913,7 +914,6 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,return PTR_ERR (lrc->bo); lrc->size = lrc_size; - lrc->tile =gt_to_tile (hwe->gt); lrc->ring.size = ring_size; lrc->ring.tail =0 ; lrc->ctx_timestamp =0 ;
drivers/gpu/drm/xe/xe_lrc_types.h +2 -2
@@ -25,8 +25,8 @@ struct xe_lrc {/** @size: size of lrc including any indirect ring state page */ u32 size; -/** @tile: tile which this LRC belongs to */ -struct xe_tile *tile; +/** @gt: gt which this LRC belongs to */ +struct xe_gt *gt;/** @flags: LRC flags */ #define XE_LRC_FLAG_INDIRECT_RING_STATE 0x1
drivers/gpu/drm/xe/xe_wa.c +4 -0
@@ -801,6 +801,10 @@ static const struct xe_rtp_entry_sr lrc_was[] = {XE_RTP_RULES (GRAPHICS_VERSION (2001 ),ENGINE_CLASS (RENDER )),XE_RTP_ACTIONS (SET (CHICKEN_RASTER_1 ,DIS_CLIP_NEGATIVE_BOUNDING_BOX )) }, + { XE_RTP_NAME("22021007897"), +XE_RTP_RULES (GRAPHICS_VERSION (2001 ),ENGINE_CLASS (RENDER )), +XE_RTP_ACTIONS (SET (COMMON_SLICE_CHICKEN4 ,SBE_PUSH_CONSTANT_BEHIND_FIX_ENABLE )) + },/* Xe3_LPG */ { XE_RTP_NAME("14021490052"),
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c +5 -0
@@ -83,6 +83,9 @@ static int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata)case ALS_IDX : privdata->dev_en.is_als_present = false;break ; +case SRA_IDX : + privdata->dev_en.is_sra_present = false; +break ; }if (cl_data->sensor_sts[i] ==SENSOR_ENABLED ) {
@@ -235,6 +238,8 @@ static int amd_sfh1_1_hid_client_init(struct amd_mp2_dev *privdata) cleanup:amd_sfh_hid_client_deinit (privdata);for (i =0 ; i < cl_data->num_hid_devices; i++) { +if (cl_data->sensor_idx[i] ==SRA_IDX ) +continue ;devm_kfree (dev, cl_data->feature_report[i]);devm_kfree (dev, in_data->input_report[i]);devm_kfree (dev, cl_data->report_descr[i]);
drivers/hid/hid-ids.h +4 -0
@@ -41,6 +41,10 @@#define USB_VENDOR_ID_ACTIONSTAR 0x2101#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011 +#define USB_VENDOR_ID_ADATA_XPG 0x125f +#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE 0x7505 +#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE 0x7506 +#define USB_VENDOR_ID_ADS_TECH 0x06e1#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155
drivers/hid/hid-quirks.c +2 -0
@@ -27,6 +27,8 @@static const struct hid_device_id hid_quirks[] = { {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_GAMEPAD ),HID_QUIRK_BADPAD }, {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_PREDATOR ),HID_QUIRK_BADPAD }, + {HID_USB_DEVICE (USB_VENDOR_ID_ADATA_XPG ,USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE ),HID_QUIRK_ALWAYS_POLL }, + {HID_USB_DEVICE (USB_VENDOR_ID_ADATA_XPG ,USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE ),HID_QUIRK_ALWAYS_POLL }, {HID_USB_DEVICE (USB_VENDOR_ID_AFATECH ,USB_DEVICE_ID_AFATECH_AF9016 ),HID_QUIRK_FULLSPEED_INTERVAL }, {HID_USB_DEVICE (USB_VENDOR_ID_AIREN ,USB_DEVICE_ID_AIREN_SLIMPLUS ),HID_QUIRK_NOGET }, {HID_USB_DEVICE (USB_VENDOR_ID_AKAI_09E8 ,USB_DEVICE_ID_AKAI_09E8_MIDIMIX ),HID_QUIRK_NO_INIT_REPORTS },
drivers/iommu/iommu.c +18 -8
@@ -273,6 +273,8 @@ int iommu_device_register(struct iommu_device *iommu, err =bus_iommu_probe (iommu_buses[i]);if (err)iommu_device_unregister (iommu); +else +WRITE_ONCE (iommu->ready, true);return err; }EXPORT_SYMBOL_GPL (iommu_device_register);
@@ -2801,31 +2803,39 @@ bool iommu_default_passthrough(void) }EXPORT_SYMBOL_GPL (iommu_default_passthrough); -const struct iommu_ops *iommu_ops_from_fwnode (const struct fwnode_handle *fwnode) +static const struct iommu_device *iommu_from_fwnode (const struct fwnode_handle *fwnode) { -const struct iommu_ops *ops =NULL ; -struct iommu_device *iommu; +const struct iommu_device *iommu, *ret =NULL ;spin_lock (&iommu_device_lock);list_for_each_entry (iommu, &iommu_device_list, list)if (iommu->fwnode == fwnode) { - ops = iommu->ops; + ret = iommu;break ; }spin_unlock (&iommu_device_lock); -return ops; +return ret; +} + +const struct iommu_ops *iommu_ops_from_fwnode (const struct fwnode_handle *fwnode) +{ +const struct iommu_device *iommu =iommu_from_fwnode (fwnode); + +return iommu ? iommu->ops :NULL ; }int iommu_fwspec_init (struct device *dev,struct fwnode_handle *iommu_fwnode) { -const struct iommu_ops *ops =iommu_ops_from_fwnode (iommu_fwnode); +const struct iommu_device *iommu =iommu_from_fwnode (iommu_fwnode);struct iommu_fwspec *fwspec =dev_iommu_fwspec_get (dev); -if (!ops) +if (!iommu)return driver_deferred_probe_check_state (dev); +if (!dev->iommu && !READ_ONCE (iommu->ready)) +return -EPROBE_DEFER ;if (fwspec) -return ops ==iommu_fwspec_ops (fwspec) ?0 : -EINVAL ; +return iommu->ops ==iommu_fwspec_ops (fwspec) ?0 : -EINVAL ;if (!dev_iommu_get (dev))return -ENOMEM ;
drivers/net/can/kvaser_pciefd.c +38 -43
155 lines not on this page · raw message
drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
@@ -2775,7 +2775,7 @@ static int am65_cpsw_nuss_init_slave_ports(struct am65_cpsw_common *common) port->slave.mac_addr);if (!is_valid_ether_addr (port->slave.mac_addr)) {eth_random_addr (port->slave.mac_addr); -dev_err (dev,"Use random MAC address\n" ); +dev_info (dev,"Use random MAC address\n" ); } }
drivers/nvme/host/core.c +27 -3
@@ -2059,7 +2059,21 @@ static bool nvme_update_disk_info(struct nvme_ns *ns, struct nvme_id_ns *id,if (id->nsfeat &NVME_NS_FEAT_ATOMICS && id->nawupf) atomic_bs = (1 +le16_to_cpu (id->nawupf)) * bs;else - atomic_bs = (1 + ns->ctrl->subsys->awupf) * bs; + atomic_bs = (1 + ns->ctrl->awupf) * bs; + +/* +* Set subsystem atomic bs. +*/ +if (ns->ctrl->subsys->atomic_bs) { +if (atomic_bs != ns->ctrl->subsys->atomic_bs) { +dev_err_ratelimited (ns->ctrl->device, +"%s: Inconsistent Atomic Write Size, Namespace will not be added: Subsystem=%d bytes, Controller/Namespace=%d bytes\n" , + ns->disk ? ns->disk->disk_name :"?" , + ns->ctrl->subsys->atomic_bs, + atomic_bs); + } + }else + ns->ctrl->subsys->atomic_bs = atomic_bs;nvme_update_atomic_write_disk_info (ns, id, lim, bs, atomic_bs); }
@@ -2201,6 +2215,17 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,nvme_set_chunk_sectors (ns, id, &lim);if (!nvme_update_disk_info (ns, id, &lim)) capacity =0 ; + +/* +* Validate the max atomic write size fits within the subsystem's +* atomic write capabilities. +*/ +if (lim.atomic_write_hw_max > ns->ctrl->subsys->atomic_bs) { +blk_mq_unfreeze_queue (ns->disk->queue, memflags); + ret = -ENXIO ; + goto out; + } +nvme_config_discard (ns, &lim);if (IS_ENABLED (CONFIG_BLK_DEV_ZONED ) && ns->head->ids.csi ==NVME_CSI_ZNS )
@@ -3031,7 +3056,6 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)kfree (subsys);return -EINVAL ; } - subsys->awupf =le16_to_cpu (id->awupf);nvme_mpath_default_iopolicy (subsys); subsys->dev.class = &nvme_subsys_class;
@@ -3441,7 +3465,7 @@ static int nvme_init_identify(struct nvme_ctrl *ctrl)dev_pm_qos_expose_latency_tolerance (ctrl->device); else if (!ctrl->apst_enabled && prev_apst_enabled)dev_pm_qos_hide_latency_tolerance (ctrl->device); - + ctrl->awupf =le16_to_cpu (id->awupf); out_free:kfree (id);return ret;
drivers/nvme/host/multipath.c +2 -1
@@ -638,7 +638,8 @@ int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl, struct nvme_ns_head *head)blk_set_stacking_limits (&lim); lim.dma_alignment =3 ; - lim.features |=BLK_FEAT_IO_STAT |BLK_FEAT_NOWAIT |BLK_FEAT_POLL ; + lim.features |=BLK_FEAT_IO_STAT |BLK_FEAT_NOWAIT | +BLK_FEAT_POLL |BLK_FEAT_ATOMIC_WRITES ;if (head->ids.csi ==NVME_CSI_ZNS ) lim.features |=BLK_FEAT_ZONED ;
drivers/nvme/host/nvme.h +2 -1
@@ -410,6 +410,7 @@ struct nvme_ctrl {enum nvme_ctrl_type cntrltype;enum nvme_dctype dctype; +u16 awupf;/* 0's based value. */ };static inline enum nvme_ctrl_state nvme_ctrl_state (struct nvme_ctrl *ctrl)
@@ -442,11 +443,11 @@ struct nvme_subsystem {u8 cmic;enum nvme_subsys_type subtype;u16 vendor_id; -u16 awupf;/* 0's based awupf value. */ struct ida ns_ida;#ifdef CONFIG_NVME_MULTIPATH enum nvme_iopolicy iopolicy;#endif +u32 atomic_bs; };/*
drivers/nvme/host/pci.c +2 -0
@@ -3742,6 +3742,8 @@ static const struct pci_device_id nvme_id_table[] = { .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(0x1e49, 0x0041), /* ZHITAI TiPro7000 NVMe SSD */ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, + { PCI_DEVICE(0x025e, 0xf1ac), /* SOLIDIGM P44 pro SSDPFKKW020X7 */ + .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(0xc0a9, 0x540a), /* Crucial P2 */ .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1d97, 0x2263), /* Lexar NM610 */
drivers/nvme/target/pci-epf.c +5 -5
@@ -596,9 +596,6 @@ static bool nvmet_pci_epf_should_raise_irq(struct nvmet_pci_epf_ctrl *ctrl,struct nvmet_pci_epf_irq_vector *iv = cq->iv;bool ret; -if (!test_bit (NVMET_PCI_EPF_Q_IRQ_ENABLED , &cq->flags)) -return false; -/* IRQ coalescing for the admin queue is not allowed. */ if (!cq->qid)return true;
@@ -625,7 +622,8 @@ static void nvmet_pci_epf_raise_irq(struct nvmet_pci_epf_ctrl *ctrl,struct pci_epf *epf = nvme_epf->epf;int ret =0 ; -if (!test_bit (NVMET_PCI_EPF_Q_LIVE , &cq->flags)) +if (!test_bit (NVMET_PCI_EPF_Q_LIVE , &cq->flags) || + !test_bit (NVMET_PCI_EPF_Q_IRQ_ENABLED , &cq->flags))return ;mutex_lock (&ctrl->irq_lock);
@@ -656,7 +654,9 @@ static void nvmet_pci_epf_raise_irq(struct nvmet_pci_epf_ctrl *ctrl, }if (ret) -dev_err (ctrl->dev,"Failed to raise IRQ (err=%d)\n" , ret); +dev_err_ratelimited (ctrl->dev, +"CQ[%u]: Failed to raise IRQ (err=%d)\n" , + cq->qid, ret); unlock:mutex_unlock (&ctrl->irq_lock);
drivers/perf/arm-cmn.c +6 -5
@@ -727,8 +727,8 @@ static umode_t arm_cmn_event_attr_is_visible(struct kobject *kobj,if ((chan ==5 && cmn->rsp_vc_num <2 ) || (chan ==6 && cmn->dat_vc_num <2 ) || - (chan ==7 && cmn->snp_vc_num <2 ) || - (chan ==8 && cmn->req_vc_num <2 )) + (chan ==7 && cmn->req_vc_num <2 ) || + (chan ==8 && cmn->snp_vc_num <2 ))return 0 ; }
@@ -884,8 +884,8 @@ static umode_t arm_cmn_event_attr_is_visible(struct kobject *kobj, _CMN_EVENT_XP(pub_##_name, (_event) | (4 << 5)), \ _CMN_EVENT_XP(rsp2_##_name, (_event) | (5 << 5)), \ _CMN_EVENT_XP(dat2_##_name, (_event) | (6 << 5)), \ - _CMN_EVENT_XP(snp2_##_name, (_event) | (7 << 5)), \ - _CMN_EVENT_XP(req2_##_name, (_event) | (8 << 5)) + _CMN_EVENT_XP(req2_##_name, (_event) | (7 << 5)), \ + _CMN_EVENT_XP(snp2_##_name, (_event) | (8 << 5))#define CMN_EVENT_XP_DAT (_name, _event) \ _CMN_EVENT_XP_PORT(dat_##_name, (_event) | (3 << 5)), \
@@ -2557,6 +2557,7 @@ static int arm_cmn_probe(struct platform_device *pdev) cmn->dev = &pdev->dev; cmn->part = (unsigned long )device_get_match_data (cmn->dev); + cmn->cpu =cpumask_local_spread (0 ,dev_to_node (cmn->dev));platform_set_drvdata (pdev, cmn);if (cmn->part ==PART_CMN600 &&has_acpi_companion (cmn->dev)) {
@@ -2584,7 +2585,6 @@ static int arm_cmn_probe(struct platform_device *pdev)if (err)return err; - cmn->cpu =cpumask_local_spread (0 ,dev_to_node (cmn->dev)); cmn->pmu = (struct pmu ) { .module =THIS_MODULE , .parent = cmn->dev,
@@ -2650,6 +2650,7 @@ static const struct acpi_device_id arm_cmn_acpi_match[] = { { "ARMHC600", PART_CMN600 }, { "ARMHC650" }, { "ARMHC700" }, + { "ARMHC003" }, {} };MODULE_DEVICE_TABLE (acpi, arm_cmn_acpi_match);
drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c +2 -0
@@ -325,6 +325,8 @@ static const struct ropll_config ropll_tmds_cfg[] = { 1, 1, 0, 0x20, 0x0c, 1, 0x0e, 0, 0, }, {650000 ,162 ,162 ,1 ,1 ,11 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,54 ,0 ,16 ,4 ,1 , 1, 1, 0, 0x20, 0x0c, 1, 0x0e, 0, 0, }, + { 502500, 84, 84, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 11, 1, 4, 5, + 4, 11, 1, 0, 0x20, 0x0c, 1, 0x0e, 0, 0, }, { 337500, 0x70, 0x70, 1, 1, 0xf, 1, 1, 1, 1, 1, 1, 1, 0x2, 0, 0x01, 5, 1, 1, 1, 0, 0x20, 0x0c, 1, 0x0e, 0, 0, }, { 400000, 100, 100, 1, 1, 11, 1, 1, 0, 1, 0, 1, 1, 0x9, 0, 0x05, 0,
drivers/phy/starfive/phy-jh7110-usb.c +7 -0
@@ -18,6 +18,8 @@#include <linux/usb/of.h> #define USB_125M_CLK_RATE 125000000 +#define USB_CLK_MODE_OFF 0x0 +#define USB_CLK_MODE_RX_NORMAL_PWR BIT(1)#define USB_LS_KEEPALIVE_OFF 0x4#define USB_LS_KEEPALIVE_ENABLE BIT(4)
@@ -78,6 +80,7 @@ static int jh7110_usb2_phy_init(struct phy *_phy) {struct jh7110_usb2_phy *phy =phy_get_drvdata (_phy);int ret; +unsigned int val; ret =clk_set_rate (phy->usb_125m_clk,USB_125M_CLK_RATE );if (ret)
@@ -87,6 +90,10 @@ static int jh7110_usb2_phy_init(struct phy *_phy)if (ret)return ret; + val =readl (phy->regs +USB_CLK_MODE_OFF ); + val |=USB_CLK_MODE_RX_NORMAL_PWR ; +writel (val, phy->regs +USB_CLK_MODE_OFF ); +return 0 ; }
drivers/platform/x86/fujitsu-laptop.c +29 -4
@@ -17,13 +17,13 @@/* * fujitsu-laptop.c - Fujitsu laptop support, providing access to additional * features made available on a range of Fujitsu laptops including the -* P2xxx/P5xxx/S6xxx/S7xxx series. +* P2xxx/P5xxx/S2xxx/S6xxx/S7xxx series. * * This driver implements a vendor-specific backlight control interface for * Fujitsu laptops and provides support for hotkeys present on certain Fujitsu * laptops. * -* This driver has been tested on a Fujitsu Lifebook S6410, S7020 and +* This driver has been tested on a Fujitsu Lifebook S2110, S6410, S7020 and * P8010. It should work on most P-series and S-series Lifebooks, but * YMMV. *
@@ -107,7 +107,11 @@#define KEY2_CODE 0x411#define KEY3_CODE 0x412#define KEY4_CODE 0x413 -#define KEY5_CODE 0x420 +#define KEY5_CODE 0x414 +#define KEY6_CODE 0x415 +#define KEY7_CODE 0x416 +#define KEY8_CODE 0x417 +#define KEY9_CODE 0x420/* Hotkey ringbuffer limits */ #define MAX_HOTKEY_RINGBUFFER_SIZE 100
@@ -560,7 +564,7 @@ static const struct key_entry keymap_default[] = { { KE_KEY, KEY2_CODE, { KEY_PROG2 } }, { KE_KEY, KEY3_CODE, { KEY_PROG3 } }, { KE_KEY, KEY4_CODE, { KEY_PROG4 } }, - { KE_KEY, KEY5_CODE, { KEY_RFKILL } }, + { KE_KEY, KEY9_CODE, { KEY_RFKILL } },/* Soft keys read from status flags */ { KE_KEY, FLAG_RFKILL, { KEY_RFKILL } }, { KE_KEY, FLAG_TOUCHPAD_TOGGLE, { KEY_TOUCHPAD_TOGGLE } },
@@ -584,6 +588,18 @@ static const struct key_entry keymap_p8010[] = { { KE_END, 0 } }; +static const struct key_entry keymap_s2110[] = { + {KE_KEY ,KEY1_CODE , {KEY_PROG1 } },/* "A" */ + {KE_KEY ,KEY2_CODE , {KEY_PROG2 } },/* "B" */ + {KE_KEY ,KEY3_CODE , {KEY_WWW } },/* "Internet" */ + {KE_KEY ,KEY4_CODE , {KEY_EMAIL } },/* "E-mail" */ + {KE_KEY ,KEY5_CODE , {KEY_STOPCD } }, + {KE_KEY ,KEY6_CODE , {KEY_PLAYPAUSE } }, + {KE_KEY ,KEY7_CODE , {KEY_PREVIOUSSONG } }, + {KE_KEY ,KEY8_CODE , {KEY_NEXTSONG } }, + {KE_END ,0 } +}; +static const struct key_entry *keymap = keymap_default;static int fujitsu_laptop_dmi_keymap_override (const struct dmi_system_id *id)
@@ -621,6 +637,15 @@ static const struct dmi_system_id fujitsu_laptop_dmi_table[] = { }, .driver_data = (void *)keymap_p8010 }, + { + .callback = fujitsu_laptop_dmi_keymap_override, + .ident = "Fujitsu LifeBook S2110", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S2110"), + }, + .driver_data = (void *)keymap_s2110 + }, {} };
drivers/platform/x86/thinkpad_acpi.c +7 -0
@@ -232,6 +232,7 @@ enum tpacpi_hkey_event_t {/* Thermal events */ TP_HKEY_EV_ALARM_BAT_HOT =0x6011 ,/* battery too hot */ TP_HKEY_EV_ALARM_BAT_XHOT =0x6012 ,/* battery critically hot */ +TP_HKEY_EV_ALARM_BAT_LIM_CHANGE =0x6013 ,/* battery charge limit changed*/ TP_HKEY_EV_ALARM_SENSOR_HOT =0x6021 ,/* sensor too hot */ TP_HKEY_EV_ALARM_SENSOR_XHOT =0x6022 ,/* sensor critically hot */ TP_HKEY_EV_THM_TABLE_CHANGED = 0x6030, /* windows; thermal table changed */
@@ -3780,6 +3781,10 @@ static bool hotkey_notify_6xxx(const u32 hkey, bool *send_acpi_ev)pr_alert ("THERMAL EMERGENCY: battery is extremely hot!\n" );/* recommended action: immediate sleep/hibernate */ break ; +case TP_HKEY_EV_ALARM_BAT_LIM_CHANGE : +pr_debug ("Battery Info: battery charge threshold changed\n" ); +/* User changed charging threshold. No action needed */ +return true;case TP_HKEY_EV_ALARM_SENSOR_HOT :pr_crit ("THERMAL ALARM: a sensor reports something is too hot!\n" );/* recommended action: warn user through gui, that */
@@ -11481,6 +11486,8 @@ static int __must_check __init get_thinkpad_model_data( tp->vendor =PCI_VENDOR_ID_IBM ; else if (dmi_name_in_vendors("LENOVO")) tp->vendor =PCI_VENDOR_ID_LENOVO ; + else if (dmi_name_in_vendors("NEC")) + tp->vendor =PCI_VENDOR_ID_LENOVO ; else return 0;
drivers/spi/spi-sun4i.c +4 -1
@@ -264,6 +264,9 @@ static int sun4i_spi_transfer_one(struct spi_controller *host,else reg |=SUN4I_CTL_DHB ; +/* Now that the settings are correct, enable the interface */ + reg |=SUN4I_CTL_ENABLE ; +sun4i_spi_write (sspi,SUN4I_CTL_REG , reg);/* Ensure that we have a parent clock fast enough */
@@ -404,7 +407,7 @@ static int sun4i_spi_runtime_resume(struct device *dev) }sun4i_spi_write (sspi,SUN4I_CTL_REG , -SUN4I_CTL_ENABLE |SUN4I_CTL_MASTER |SUN4I_CTL_TP ); +SUN4I_CTL_MASTER |SUN4I_CTL_TP );return 0 ;
fs/coredump.c +59 -6
119 lines not on this page · raw message
fs/nfs/client.c +2 -0
@@ -1100,6 +1100,8 @@ struct nfs_server *nfs_create_server(struct fs_context *fc)if (server->namelen ==0 || server->namelen >NFS2_MAXNAMLEN ) server->namelen =NFS2_MAXNAMLEN ; } +/* Linux 'subtree_check' borkenness mandates this setting */ + server->fh_expire_type =NFS_FH_VOL_RENAME ;if (!(fattr->valid &NFS_ATTR_FATTR )) { error = ctx->nfs_mod->rpc_ops->getattr(server, ctx->mntfh,
fs/nfs/dir.c +14 -1
@@ -2678,6 +2678,18 @@ nfs_unblock_rename(struct rpc_task *task, struct nfs_renamedata *data)unblock_revalidate (new_dentry); } +static bool nfs_rename_is_unsafe_cross_dir (struct dentry *old_dentry, +struct dentry *new_dentry) +{ +struct nfs_server *server =NFS_SB (old_dentry->d_sb); + +if (old_dentry->d_parent != new_dentry->d_parent) +return false; +if (server->fh_expire_type &NFS_FH_RENAME_UNSAFE ) +return !(server->fh_expire_type &NFS_FH_NOEXPIRE_WITH_OPEN ); +return true; +} +/* * RENAME * FIXME: Some nfsds, like the Linux user space nfsd, may generate a
@@ -2765,7 +2777,8 @@ int nfs_rename(struct mnt_idmap *idmap, struct inode *old_dir, } -if (S_ISREG (old_inode->i_mode)) +if (S_ISREG (old_inode->i_mode) && +nfs_rename_is_unsafe_cross_dir (old_dentry, new_dentry))nfs_sync_inode (old_inode); task =nfs_async_rename (old_dir, new_dir, old_dentry, new_dentry, must_unblock ? nfs_unblock_rename :NULL );
fs/nfs/filelayout/filelayoutdev.c +3 -3
@@ -76,6 +76,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,struct page *scratch;struct list_head dsaddrs;struct nfs4_pnfs_ds_addr *da; +struct net *net = server->nfs_client->cl_net;/* set up xdr stream */ scratch =alloc_page (gfp_flags);
@@ -159,8 +160,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev, mp_count =be32_to_cpup (p);/* multipath count */ for (j =0 ; j < mp_count; j++) { - da =nfs4_decode_mp_ds_addr (server->nfs_client->cl_net, - &stream, gfp_flags); + da =nfs4_decode_mp_ds_addr (net, &stream, gfp_flags);if (da)list_add_tail (&da->da_node, &dsaddrs); }
@@ -170,7 +170,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev, goto out_err_free_deviceid; } - dsaddr->ds_list[i] =nfs4_pnfs_ds_add (&dsaddrs, gfp_flags); + dsaddr->ds_list[i] =nfs4_pnfs_ds_add (net, &dsaddrs, gfp_flags);if (!dsaddr->ds_list[i]) goto out_err_drain_dsaddrs;trace_fl_getdevinfo (server, &pdev->dev_id, dsaddr->ds_list[i]->ds_remotestr);
fs/nfs/flexfilelayout/flexfilelayoutdev.c +3 -3
@@ -49,6 +49,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,struct nfs4_pnfs_ds_addr *da;struct nfs4_ff_layout_ds *new_ds =NULL ;struct nfs4_ff_ds_version *ds_versions =NULL ; +struct net *net = server->nfs_client->cl_net;u32 mp_count;u32 version_count;__be32 *p;
@@ -80,8 +81,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,for (i =0 ; i < mp_count; i++) {/* multipath ds */ - da =nfs4_decode_mp_ds_addr (server->nfs_client->cl_net, - &stream, gfp_flags); + da =nfs4_decode_mp_ds_addr (net, &stream, gfp_flags);if (da)list_add_tail (&da->da_node, &dsaddrs); }
@@ -149,7 +149,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev, new_ds->ds_versions = ds_versions; new_ds->ds_versions_cnt = version_count; - new_ds->ds =nfs4_pnfs_ds_add (&dsaddrs, gfp_flags); + new_ds->ds =nfs4_pnfs_ds_add (net, &dsaddrs, gfp_flags);if (!new_ds->ds) goto out_err_drain_dsaddrs;
fs/nfs/pnfs.h +3 -1
@@ -60,6 +60,7 @@ struct nfs4_pnfs_ds {struct list_head ds_node;/* nfs4_pnfs_dev_hlist dev_dslist */ char *ds_remotestr;/* comma sep list of addrs */ struct list_head ds_addrs; +const struct net *ds_net;struct nfs_client *ds_clp;refcount_t ds_count;unsigned long ds_state;
@@ -415,7 +416,8 @@ int pnfs_generic_commit_pagelist(struct inode *inode,int pnfs_generic_scan_commit_lists (struct nfs_commit_info *cinfo,int max);void pnfs_generic_write_commit_done (struct rpc_task *task,void *data);void nfs4_pnfs_ds_put (struct nfs4_pnfs_ds *ds); -struct nfs4_pnfs_ds *nfs4_pnfs_ds_add (struct list_head *dsaddrs, +struct nfs4_pnfs_ds *nfs4_pnfs_ds_add (const struct net *net, +struct list_head *dsaddrs,gfp_t gfp_flags);void nfs4_pnfs_v3_ds_connect_unload (void ); int nfs4_pnfs_ds_connect(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds,
fs/nfs/pnfs_nfs.c +5 -4
@@ -604,12 +604,12 @@ _same_data_server_addrs_locked(const struct list_head *dsaddrs1,* Lookup DS by addresses. nfs4_ds_cache_lock is held */ static struct nfs4_pnfs_ds * -_data_server_lookup_locked (const struct list_head *dsaddrs) +_data_server_lookup_locked (const struct net *net,const struct list_head *dsaddrs) {struct nfs4_pnfs_ds *ds;list_for_each_entry (ds, &nfs4_data_server_cache, ds_node) -if (_same_data_server_addrs_locked (&ds->ds_addrs, dsaddrs)) +if (ds->ds_net == net &&_same_data_server_addrs_locked (&ds->ds_addrs, dsaddrs))return ds;return NULL ; }
@@ -716,7 +716,7 @@ nfs4_pnfs_remotestr(struct list_head *dsaddrs, gfp_t gfp_flags)* uncached and return cached struct nfs4_pnfs_ds. */ struct nfs4_pnfs_ds * -nfs4_pnfs_ds_add (struct list_head *dsaddrs,gfp_t gfp_flags) +nfs4_pnfs_ds_add (const struct net *net,struct list_head *dsaddrs,gfp_t gfp_flags) {struct nfs4_pnfs_ds *tmp_ds, *ds =NULL ;char *remotestr;
@@ -734,13 +734,14 @@ nfs4_pnfs_ds_add(struct list_head *dsaddrs, gfp_t gfp_flags) remotestr =nfs4_pnfs_remotestr (dsaddrs, gfp_flags);spin_lock (&nfs4_ds_cache_lock); - tmp_ds =_data_server_lookup_locked (dsaddrs); + tmp_ds =_data_server_lookup_locked (net, dsaddrs);if (tmp_ds ==NULL ) {INIT_LIST_HEAD (&ds->ds_addrs);list_splice_init (dsaddrs, &ds->ds_addrs); ds->ds_remotestr = remotestr;refcount_set (&ds->ds_count,1 );INIT_LIST_HEAD (&ds->ds_node); + ds->ds_net = net; ds->ds_clp =NULL ;list_add (&ds->ds_node, &nfs4_data_server_cache); dprintk("%s add new data server %s\n", __func__,
fs/smb/server/oplock.c +2 -5
@@ -146,12 +146,9 @@ static struct oplock_info *opinfo_get_list(struct ksmbd_inode *ci) {struct oplock_info *opinfo; -if (list_empty (&ci->m_op_list)) -return NULL ; -down_read (&ci->m_lock); - opinfo = list_first_entry(&ci->m_op_list, struct oplock_info, - op_entry); + opinfo = list_first_entry_or_null(&ci->m_op_list, struct oplock_info, + op_entry);if (opinfo) {if (opinfo->conn ==NULL || !atomic_inc_not_zero (&opinfo->refcount))
include/linux/coredump.h +1 -0
@@ -28,6 +28,7 @@ struct coredump_params {int vma_count;size_t vma_data_size;struct core_vma_metadata *vma_meta; +struct pid *pid; };extern unsigned int core_file_note_size_limit;
include/linux/iommu.h +2 -0
@@ -735,6 +735,7 @@ struct iommu_domain_ops {* @dev: struct device for sysfs handling * @singleton_group: Used internally for drivers that have only one group * @max_pasids: number of supported PASIDs +* @ready: set once iommu_device_register() has completed successfully */ struct iommu_device {struct list_head list;
@@ -743,6 +744,7 @@ struct iommu_device {struct device *dev;struct iommu_group *singleton_group;u32 max_pasids; +bool ready; };/**
include/linux/nfs_fs_sb.h +9 -3
@@ -210,6 +210,15 @@ struct nfs_server {char *fscache_uniq;/* Uniquifier (or NULL) */ #endif +/* The following #defines numerically match the NFSv4 equivalents */ +#define NFS_FH_NOEXPIRE_WITH_OPEN (0x1) +#define NFS_FH_VOLATILE_ANY (0x2) +#define NFS_FH_VOL_MIGRATION (0x4) +#define NFS_FH_VOL_RENAME (0x8) +#define NFS_FH_RENAME_UNSAFE (NFS_FH_VOLATILE_ANY | NFS_FH_VOL_RENAME) +u32 fh_expire_type;/* V4 bitmask representing file +handle volatility type for +this filesystem */ u32 pnfs_blksize;/* layout_blksize attr */ #if IS_ENABLED (CONFIG_NFS_V4 )u32 attr_bitmask[3 ];/* V4 bitmask representing the set
@@ -233,9 +242,6 @@ struct nfs_server {u32 acl_bitmask;/* V4 bitmask representing the ACEs that are supported on this filesystem */ -u32 fh_expire_type;/* V4 bitmask representing file -handle volatility type for -this filesystem */ struct pnfs_layoutdriver_type *pnfs_curr_ld;/* Active layout driver */ struct rpc_wait_queue roc_rpcwaitq;void *pnfs_ld_data;/* per mount point data */
kernel/module/Kconfig +5 -0
@@ -192,6 +192,11 @@ config GENDWARFKSYMS depends on !DEBUG_INFO_REDUCED && !DEBUG_INFO_SPLIT # Requires ELF object files. depends on !LTO + # To avoid conflicts with the discarded __gendwarfksyms_ptr symbols on + # X86, requires pahole before commit 47dcb534e253 ("btf_encoder: Stop + # indexing symbols for VARs") or after commit 9810758003ce ("btf_encoder: + # Verify 0 address DWARF variables are in ELF section"). + depends on !X86 || !DEBUG_INFO_BTF || PAHOLE_VERSION < 128 || PAHOLE_VERSION > 129 help Calculate symbol versions from DWARF debugging information using gendwarfksyms. Requires DEBUG_INFO to be enabled.
net/sched/sch_hfsc.c +8 -1
@@ -175,6 +175,11 @@ struct hfsc_sched {#define HT_INFINITY 0xffffffffffffffffULL/* infinite time value */ +static bool cl_in_el_or_vttree (struct hfsc_class *cl) +{ +return ((cl->cl_flags &HFSC_FSC ) && cl->cl_nactive) || + ((cl->cl_flags &HFSC_RSC ) && !RB_EMPTY_NODE (&cl->el_node)); +}/* * eligible tree holds backlogged classes being sorted by their eligible times.
@@ -1040,6 +1045,8 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,if (cl ==NULL )return -ENOBUFS ; +RB_CLEAR_NODE (&cl->el_node); + err =tcf_block_get (&cl->block, &cl->filter_list, sch, extack);if (err) {kfree (cl);
@@ -1572,7 +1579,7 @@ hfsc_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free) sch->qstats.backlog += len; sch->q.qlen++; -if (first && !cl->cl_nactive) { +if (first && !cl_in_el_or_vttree (cl)) {if (cl->cl_flags &HFSC_RSC )init_ed (cl, len);if (cl->cl_flags &HFSC_FSC )
sound/pci/hda/patch_realtek.c +4 -1
@@ -6811,7 +6811,10 @@ static void alc256_fixup_chromebook(struct hda_codec *codec,switch (action) {case HDA_FIXUP_ACT_PRE_PROBE : - spec->gen.suppress_auto_mute =1 ; +if (codec->core.subsystem_id ==0x10280d76 ) + spec->gen.suppress_auto_mute =0 ; +else + spec->gen.suppress_auto_mute =1 ; spec->gen.suppress_auto_mic =1 ; spec->en_3kpull_low = false;break ;