Linux 5.10.144
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.144 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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
------------
Documentation/input/joydev/joystick.rst | 1 Makefile | 2 arch/arm/boot/dts/imx28-evk.dts | 2 arch/arm/boot/dts/imx28-m28evk.dts | 2 arch/arm/boot/dts/imx28-sps1.dts | 2 arch/arm/boot/dts/imx6dl-rex-basic.dts | 2 arch/arm/boot/dts/imx6q-ba16.dtsi | 2 arch/arm/boot/dts/imx6q-bx50v3.dtsi | 2 arch/arm/boot/dts/imx6q-cm-fx6.dts | 2 arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 2 arch/arm/boot/dts/imx6q-dms-ba16.dts | 2 arch/arm/boot/dts/imx6q-gw5400-a.dts | 2 arch/arm/boot/dts/imx6q-marsboard.dts | 2 arch/arm/boot/dts/imx6q-rex-pro.dts | 2 arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 2 arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 2 arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 2 arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi | 4 - arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 2 arch/arm/boot/dts/imx6sl-evk.dts | 2 arch/arm/boot/dts/imx6sx-nitrogen6sx.dts | 2 arch/arm/boot/dts/imx6sx-sdb-reva.dts | 4 - arch/arm/boot/dts/imx6sx-sdb.dts | 4 - arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi | 2 arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi | 2 arch/x86/kernel/ftrace.c | 7 - arch/x86/kernel/ftrace_64.S | 19 +++- drivers/gpio/gpio-mockup.c | 9 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 drivers/gpu/drm/msm/msm_rd.c | 3 drivers/hid/intel-ish-hid/ishtp-hid.h | 2 drivers/hid/intel-ish-hid/ishtp/client.c | 68 +++++++++-------- drivers/input/joystick/iforce/iforce-main.c | 1 drivers/input/touchscreen/goodix.c | 2 drivers/iommu/intel/iommu.c | 28 ++++++- drivers/net/ethernet/broadcom/tg3.c | 8 +- drivers/net/ieee802154/cc2520.c | 1 drivers/nvme/target/tcp.c | 3 drivers/perf/arm_pmu_platform.c | 2 drivers/platform/x86/acer-wmi.c | 9 ++ drivers/soc/fsl/Kconfig | 1 drivers/usb/storage/unusual_uas.h | 7 + fs/tracefs/inode.c | 31 +++++-- mm/mmap.c | 9 +- 53 files changed, 191 insertions(+), 94 deletions(-)
Brian Norris (1):
tracefs: Only clobber mode/uid/gid on remount if asked
Chengming Gui (1):
drm/amd/amdgpu: skip ucode loading if ucode_size == 0
Even Xu (1):
hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
Greg Kroah-Hartman (1):
Linux 5.10.144
Greg Tulli (1):
Input: iforce - add support for Boeder Force Feedback Wheel
Hans de Goede (1):
platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
Hu Xiaoying (1):
usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
Jann Horn (1):
mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
Jarrah Gosbell (1):
Input: goodix - add compatible string for GT1158
Jason Wang (1):
HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
Kai-Heng Feng (1):
tg3: Disable tg3 device on system reboot to avoid triggering AER
Krzysztof Kozlowski (1):
ARM: dts: imx: align SPI NOR node name with dtschema
Li Qiong (1):
ieee802154: cc2520: add rc code in cc2520_tx()
Lu Baolu (1):
iommu/vt-d: Correctly calculate sagaw value of IOMMU
Marco Felsch (1):
ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible
Mathew McBride (1):
soc: fsl: select FSL_GUTS driver for DPIO
Maurizio Lombardi (1):
nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
Ondrej Jirman (1):
Input: goodix - add support for GT1158
Peter Zijlstra (2):
x86/ibt,ftrace: Make function-graph play nice x86/ftrace: Use alternative RET encoding
Rob Clark (1):
drm/msm/rd: Fix FIFO-full deadlock
Thadeu Lima de Souza Cascardo (1):
Revert "x86/ftrace: Use alternative RET encoding"
Wei Yongjun (1):
gpio: mockup: remove gpio debugfs when remove device
Yu Zhe (1):
perf/arm_pmu_platform: fix tests for platform_get_irq() failure
Greg Kroah-Hartman
maintainerDocumentation/input/joydev/joystick.rst +1 -0
@@ -517,6 +517,7 @@ All I-Force devices are supported by the iforce module. This includes: * AVB Mag Turbo Force * AVB Top Shot Pegasus * AVB Top Shot Force Feedback Racing Wheel +* Boeder Force Feedback Wheel * Logitech WingMan Force * Logitech WingMan Force Wheel * Guillemot Race Leader Force Feedback
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 143 +SUBLEVEL = 144 EXTRAVERSION = NAME = Dare mighty things
arch/arm/boot/dts/imx28-evk.dts +1 -1
@@ -129,7 +129,7 @@ ssp2: spi@80014000 { pinctrl-0 = <&spi2_pins_a>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "sst,sst25vf016b", "jedec,spi-nor";
arch/arm/boot/dts/imx28-m28evk.dts +1 -1
@@ -33,7 +33,7 @@ ssp2: spi@80014000 { pinctrl-0 = <&spi2_pins_a>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "m25p80", "jedec,spi-nor";
arch/arm/boot/dts/imx28-sps1.dts +1 -1
@@ -51,7 +51,7 @@ ssp2: spi@80014000 { pinctrl-0 = <&spi2_pins_a>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "everspin,mr25h256", "mr25h256";
arch/arm/boot/dts/imx6dl-rex-basic.dts +1 -1
@@ -19,7 +19,7 @@ memory@10000000 { }; &ecspi3 { - flash: m25p80@0 { + flash: flash@0 { compatible = "sst,sst25vf016b", "jedec,spi-nor"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6q-ba16.dtsi +1 -1
@@ -139,7 +139,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: n25q032@0 { + flash: flash@0 { compatible = "jedec,spi-nor"; #address-cells = <1>; #size-cells = <1>;
arch/arm/boot/dts/imx6q-bx50v3.dtsi +1 -1
@@ -160,7 +160,7 @@ &ecspi5 { pinctrl-0 = <&pinctrl_ecspi5>; status = "okay"; - m25_eeprom: m25p80@0 { + m25_eeprom: flash@0 { compatible = "atmel,at25"; spi-max-frequency = <10000000>; size = <0x8000>;
arch/arm/boot/dts/imx6q-cm-fx6.dts +1 -1
@@ -260,7 +260,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - m25p80@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p", "jedec,spi-nor";
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts +1 -1
@@ -102,7 +102,7 @@ &ecspi5 { cs-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "m25p80", "jedec,spi-nor"; spi-max-frequency = <40000000>; reg = <0>;
arch/arm/boot/dts/imx6q-dms-ba16.dts +1 -1
@@ -47,7 +47,7 @@ &ecspi5 { pinctrl-0 = <&pinctrl_ecspi5>; status = "okay"; - m25_eeprom: m25p80@0 { + m25_eeprom: flash@0 { compatible = "atmel,at25256B", "atmel,at25"; spi-max-frequency = <20000000>; size = <0x8000>;
arch/arm/boot/dts/imx6q-gw5400-a.dts +1 -1
@@ -137,7 +137,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "sst,w25q256", "jedec,spi-nor"; spi-max-frequency = <30000000>; reg = <0>;
arch/arm/boot/dts/imx6q-marsboard.dts +1 -1
@@ -100,7 +100,7 @@ &ecspi1 { cs-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; status = "okay"; - m25p80@0 { + flash@0 { compatible = "microchip,sst25vf016b"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6q-rex-pro.dts +1 -1
@@ -19,7 +19,7 @@ memory@10000000 { }; &ecspi3 { - flash: m25p80@0 { + flash: flash@0 { compatible = "sst,sst25vf032b", "jedec,spi-nor"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi +1 -1
@@ -96,7 +96,7 @@ &ecspi4 { pinctrl-0 = <&pinctrl_ecspi4>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q128a11", "jedec,spi-nor";
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi +1 -1
@@ -131,7 +131,7 @@ &ecspi4 { pinctrl-0 = <&pinctrl_ecspi4>; status = "okay"; - flash: m25p80@1 { + flash: flash@1 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q128a11", "jedec,spi-nor";
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi +1 -1
@@ -35,7 +35,7 @@ &ecspi3 { pinctrl-0 = <&pinctrl_ecspi3>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "sst,sst25vf040b", "jedec,spi-nor";
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi +2 -2
@@ -248,8 +248,8 @@ &ecspi4 { status = "okay"; /* default boot source: workaround #1 for errata ERR006282 */ - smarc_flash: spi-flash@0 { - compatible = "winbond,w25q16dw", "jedec,spi-nor"; + smarc_flash: flash@0 { + compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <20000000>; };
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi +1 -1
@@ -179,7 +179,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "microchip,sst25vf016b"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +1 -1
@@ -321,7 +321,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "microchip,sst25vf016b"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi +1 -1
@@ -252,7 +252,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "microchip,sst25vf016b"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +1 -1
@@ -237,7 +237,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "sst,sst25vf016b", "jedec,spi-nor"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +1 -1
@@ -272,7 +272,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>; status = "disabled"; /* pin conflict with WEIM NOR */ - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p32", "jedec,spi-nor";
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi +1 -1
@@ -313,7 +313,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "sst,sst25vf016b", "jedec,spi-nor"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6qdl-sabresd.dtsi +1 -1
@@ -194,7 +194,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p32", "jedec,spi-nor";
arch/arm/boot/dts/imx6sl-evk.dts +1 -1
@@ -137,7 +137,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p32", "jedec,spi-nor";
arch/arm/boot/dts/imx6sx-nitrogen6sx.dts +1 -1
@@ -107,7 +107,7 @@ &ecspi1 { pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; - flash: m25p80@0 { + flash: flash@0 { compatible = "microchip,sst25vf016b"; spi-max-frequency = <20000000>; reg = <0>;
arch/arm/boot/dts/imx6sx-sdb-reva.dts +2 -2
@@ -123,7 +123,7 @@ &qspi2 { pinctrl-0 = <&pinctrl_qspi2>; status = "okay"; - flash0: s25fl128s@0 { + flash0: flash@0 { reg = <0>; #address-cells = <1>; #size-cells = <1>;
@@ -133,7 +133,7 @@ flash0: s25fl128s@0 { spi-tx-bus-width = <4>; }; - flash1: s25fl128s@2 { + flash1: flash@2 { reg = <2>; #address-cells = <1>; #size-cells = <1>;
arch/arm/boot/dts/imx6sx-sdb.dts +2 -2
@@ -108,7 +108,7 @@ &qspi2 { pinctrl-0 = <&pinctrl_qspi2>; status = "okay"; - flash0: n25q256a@0 { + flash0: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q256a", "jedec,spi-nor";
@@ -118,7 +118,7 @@ flash0: n25q256a@0 { reg = <0>; }; - flash1: n25q256a@2 { + flash1: flash@2 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q256a", "jedec,spi-nor";
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi +1 -1
@@ -239,7 +239,7 @@ &qspi { pinctrl-0 = <&pinctrl_qspi>; status = "okay"; - flash0: n25q256a@0 { + flash0: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q256a", "jedec,spi-nor";
arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi +1 -1
@@ -19,7 +19,7 @@ memory@80000000 { }; &qspi { - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-nand";
arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi +1 -1
@@ -18,7 +18,7 @@ memory@80000000 { }; &qspi { - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-nand";
arch/arm/boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi +1 -1
@@ -19,7 +19,7 @@ &ecspi2 { pinctrl-0 = <&pinctrl_ecspi2>; status = "okay"; - spi-flash@0 { + flash@0 { compatible = "mxicy,mx25v8035f", "jedec,spi-nor"; spi-max-frequency = <50000000>; reg = <0>;
arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi +1 -1
@@ -18,7 +18,7 @@ memory@80000000 { }; &qspi { - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "spi-nand";
arch/x86/kernel/ftrace.c +2 -5
@@ -322,12 +322,12 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)unsigned long offset;unsigned long npages;unsigned long size; -unsigned long retq;unsigned long *ptr;void *trampoline;void *ip;/* 48 8b 15 <offset> is movq <offset>(%rip), %rdx */ unsigned const char op_ref[] = {0x48 ,0x8b ,0x15 }; +unsigned const char retq[] = {RET_INSN_OPCODE ,INT3_INSN_OPCODE };union ftrace_op_code_union op_ptr;int ret;
@@ -367,13 +367,10 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size) ip = trampoline + size;/* The trampoline ends with ret(q) */ - retq = (unsigned long )ftrace_stub;if (cpu_feature_enabled (X86_FEATURE_RETHUNK ))memcpy (ip,text_gen_insn (JMP32_INSN_OPCODE , ip, &__x86_return_thunk),JMP32_INSN_SIZE );else - ret =copy_from_kernel_nofault (ip, (void *)retq,RET_SIZE ); -if (WARN_ON (ret <0 )) - goto fail; +memcpy (ip, retq,sizeof (retq));/* No need to test direct calls on created trampolines */ if (ops->flags &FTRACE_OPS_FL_SAVE_REGS ) {
arch/x86/kernel/ftrace_64.S +15 -4
@@ -170,7 +170,6 @@ SYM_INNER_LABEL(ftrace_graph_call, SYM_L_GLOBAL) /* * This is weak to keep gas from relaxing the jumps. - * It is also used to copy the RET for trampolines. */ SYM_INNER_LABEL_ALIGN(ftrace_stub, SYM_L_WEAK) UNWIND_HINT_FUNC
@@ -325,7 +324,7 @@ SYM_FUNC_END(ftrace_graph_caller) SYM_CODE_START(return_to_handler) UNWIND_HINT_EMPTY - subq $24, %rsp + subq $16, %rsp /* Save the return values */ movq %rax, (%rsp)
@@ -337,7 +336,19 @@ SYM_CODE_START(return_to_handler) movq %rax, %rdi movq 8(%rsp), %rdx movq (%rsp), %rax - addq $24, %rsp - JMP_NOSPEC rdi + + addq $16, %rsp + /* + * Jump back to the old return address. This cannot be JMP_NOSPEC rdi + * since IBT would demand that contain ENDBR, which simply isn't so for + * return addresses. Use a retpoline here to keep the RSB balanced. + */ + ANNOTATE_INTRA_FUNCTION_CALL + call .Ldo_rop + int3 +.Ldo_rop: + mov %rdi, (%rsp) + UNWIND_HINT_FUNC + RET SYM_CODE_END(return_to_handler) #endif
drivers/gpio/gpio-mockup.c +8 -1
@@ -375,6 +375,13 @@ static void gpio_mockup_debugfs_setup(struct device *dev, } } +static void gpio_mockup_debugfs_cleanup (void *data) +{ +struct gpio_mockup_chip *chip = data; + +debugfs_remove_recursive (chip->dbg_dir); +} +static void gpio_mockup_dispose_mappings (void *data) {struct gpio_mockup_chip *chip = data;
@@ -457,7 +464,7 @@ static int gpio_mockup_probe(struct platform_device *pdev)gpio_mockup_debugfs_setup (dev, chip); -return 0 ; +return devm_add_action_or_reset (dev, gpio_mockup_debugfs_cleanup, chip); }static struct platform_driver gpio_mockup_driver = {
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +1 -1
@@ -1921,7 +1921,7 @@ static int psp_load_smu_fw(struct psp_context *psp)static bool fw_load_skip_check (struct psp_context *psp,struct amdgpu_firmware_info *ucode) { -if (!ucode->fw) +if (!ucode->fw || !ucode->ucode_size)return true; if (ucode->ucode_id == AMDGPU_UCODE_ID_SMC &&
drivers/gpu/drm/msm/msm_rd.c +3 -0
@@ -191,6 +191,9 @@ static int rd_open(struct inode *inode, struct file *file) file->private_data = rd; rd->open = true; +/* Reset fifo to clear any previously unread data: */ + rd->fifo.head = rd->fifo.tail =0 ; +/* the parsing tools need to know gpu-id to know which * register database to load. */
drivers/hid/intel-ish-hid/ishtp-hid.h +1 -1
@@ -110,7 +110,7 @@ struct report_list {* @multi_packet_cnt: Count of fragmented packet count * * This structure is used to store completion flags and per client data like -* like report description, number of HID devices etc. +* report description, number of HID devices etc. */ struct ishtp_cl_data {/* completion flags */
drivers/hid/intel-ish-hid/ishtp/client.c +39 -29
91 lines not on this page · raw message
drivers/input/joystick/iforce/iforce-main.c +1 -0
@@ -50,6 +50,7 @@ static struct iforce_device iforce_device[] = { { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce }, { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce }, { 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce }, + { 0x05ef, 0x8886, "Boeder Force Feedback Wheel", btn_wheel, abs_wheel, ff_iforce }, { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //? { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //? { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce },
drivers/input/touchscreen/goodix.c +2 -0
@@ -154,6 +154,7 @@ static const struct goodix_chip_data gt9x_chip_data = {static const struct goodix_chip_id goodix_chip_ids[] = { { .id ="1151" , .data = >1x_chip_data }, + { .id ="1158" , .data = >1x_chip_data }, { .id ="5663" , .data = >1x_chip_data }, { .id ="5688" , .data = >1x_chip_data }, { .id ="917S" , .data = >1x_chip_data },
@@ -1385,6 +1386,7 @@ MODULE_DEVICE_TABLE(acpi, goodix_acpi_match);#ifdef CONFIG_OF static const struct of_device_id goodix_of_match[] = { { .compatible ="goodix,gt1151" }, + { .compatible ="goodix,gt1158" }, { .compatible ="goodix,gt5663" }, { .compatible ="goodix,gt5688" }, { .compatible = "goodix,gt911" },
drivers/iommu/intel/iommu.c +25 -3
@@ -560,14 +560,36 @@ static inline int domain_pfn_supported(struct dmar_domain *domain,return !(addr_width <BITS_PER_LONG && pfn >> addr_width); } +/* +* Calculate the Supported Adjusted Guest Address Widths of an IOMMU. +* Refer to 11.4.2 of the VT-d spec for the encoding of each bit of +* the returned SAGAW. +*/ +static unsigned long __iommu_calculate_sagaw (struct intel_iommu *iommu) +{ +unsigned long fl_sagaw, sl_sagaw; + + fl_sagaw =BIT (2 ) | (cap_fl1gp_support (iommu->cap) ?BIT (3 ) :0 ); + sl_sagaw =cap_sagaw (iommu->cap); + +/* Second level only. */ +if (!sm_supported (iommu) || !ecap_flts (iommu->ecap)) +return sl_sagaw; + +/* First level only. */ +if (!ecap_slts (iommu->ecap)) +return fl_sagaw; + +return fl_sagaw & sl_sagaw; +} +static int __iommu_calculate_agaw (struct intel_iommu *iommu,int max_gaw) {unsigned long sagaw;int agaw =-1 ; - sagaw =cap_sagaw (iommu->cap); -for (agaw =width_to_agaw (max_gaw); - agaw >=0 ; agaw--) { + sagaw =__iommu_calculate_sagaw (iommu); +for (agaw =width_to_agaw (max_gaw); agaw >=0 ; agaw--) {if (test_bit (agaw, &sagaw))break ; }
drivers/net/ethernet/broadcom/tg3.c +6 -2
@@ -18146,16 +18146,20 @@ static void tg3_shutdown(struct pci_dev *pdev)struct net_device *dev =pci_get_drvdata (pdev);struct tg3 *tp =netdev_priv (dev); +tg3_reset_task_cancel (tp); +rtnl_lock (); +netif_device_detach (dev);if (netif_running (dev))dev_close (dev); -if (system_state ==SYSTEM_POWER_OFF ) -tg3_power_down (tp); +tg3_power_down (tp);rtnl_unlock (); + +pci_disable_device (pdev); }/**
drivers/net/ieee802154/cc2520.c +1 -0
@@ -504,6 +504,7 @@ cc2520_tx(struct ieee802154_hw *hw, struct sk_buff *skb) goto err_tx;if (status &CC2520_STATUS_TX_UNDERFLOW ) { + rc = -EINVAL ;dev_err (&priv->spi->dev,"cc2520 tx underflow exception\n" ); goto err_tx; }
drivers/nvme/target/tcp.c +3 -0
@@ -1471,6 +1471,9 @@ static void nvmet_tcp_state_change(struct sock *sk) goto done;switch (sk->sk_state) { +case TCP_FIN_WAIT2 : +case TCP_LAST_ACK : +break ;case TCP_FIN_WAIT1 :case TCP_CLOSE_WAIT :case TCP_CLOSE :
drivers/perf/arm_pmu_platform.c +1 -1
@@ -117,7 +117,7 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)if (num_irqs ==1 ) {int irq =platform_get_irq (pdev,0 ); -if (irq &&irq_is_percpu_devid (irq)) +if ((irq >0 ) &&irq_is_percpu_devid (irq))return pmu_parse_percpu_irq (pmu, irq); }
drivers/platform/x86/acer-wmi.c +8 -1
@@ -93,6 +93,7 @@ static const struct key_entry acer_wmi_keymap[] __initconst = { {KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */ {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ + {KE_KEY, 0x27, {KEY_HELP} }, {KE_KEY, 0x29, {KEY_PROG3} }, /* P_Key for TM8372 */ {KE_IGNORE, 0x41, {KEY_MUTE} }, {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} },
@@ -106,7 +107,13 @@ static const struct key_entry acer_wmi_keymap[] __initconst = { {KE_IGNORE, 0x48, {KEY_VOLUMEUP} }, {KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} }, {KE_IGNORE, 0x4a, {KEY_VOLUMEDOWN} }, - {KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} }, +/* +* 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate input event +* with the "Video Bus" input device events. But sometimes it is not +* a dup. Map it to KEY_UNKNOWN instead of using KE_IGNORE so that +* udev/hwdb can override it on systems where it is not a dup. +*/ + {KE_KEY, 0x61, {KEY_UNKNOWN} }, {KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} }, {KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} }, {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */
drivers/soc/fsl/Kconfig +1 -0
@@ -24,6 +24,7 @@ config FSL_MC_DPIO tristate "QorIQ DPAA2 DPIO driver" depends on FSL_MC_BUS select SOC_BUS + select FSL_GUTS help Driver for the DPAA2 DPIO object. A DPIO provides queue and buffer management facilities for software to interact with
drivers/usb/storage/unusual_uas.h +7 -0
@@ -62,6 +62,13 @@ UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128, USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_UAS), +/* Reported-by: Tom Hu <[email protected]> */ +UNUSUAL_DEV (0x0b05 ,0x1932 ,0x0000 ,0x9999 , +"ASUS" , +"External HDD" , +USB_SC_DEVICE ,USB_PR_DEVICE ,NULL , +US_FL_IGNORE_UAS ), +/* Reported-by: David Webb <[email protected]> */ UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999, "Seagate",
fs/tracefs/inode.c +23 -8
@@ -139,6 +139,8 @@ struct tracefs_mount_opts {kuid_t uid;kgid_t gid;umode_t mode; +/* Opt_* bitfield. */ +unsigned int opts; };enum {
@@ -239,6 +241,7 @@ static int tracefs_parse_options(char *data, struct tracefs_mount_opts *opts)kgid_t gid;char *p; + opts->opts =0 ; opts->mode =TRACEFS_DEFAULT_MODE ;while ((p =strsep (&data,"," )) !=NULL ) {
@@ -273,24 +276,36 @@ static int tracefs_parse_options(char *data, struct tracefs_mount_opts *opts)* but traditionally tracefs has ignored all mount options */ } + + opts->opts |=BIT (token); }return 0 ; } -static int tracefs_apply_options (struct super_block *sb) +static int tracefs_apply_options (struct super_block *sb,bool remount) {struct tracefs_fs_info *fsi = sb->s_fs_info;struct inode *inode = sb->s_root->d_inode;struct tracefs_mount_opts *opts = &fsi->mount_opts; - inode->i_mode &= ~S_IALLUGO ; - inode->i_mode |= opts->mode; +/* +* On remount, only reset mode/uid/gid if they were provided as mount +* options. +*/ + +if (!remount || opts->opts &BIT (Opt_mode)) { + inode->i_mode &= ~S_IALLUGO ; + inode->i_mode |= opts->mode; + } - inode->i_uid = opts->uid; +if (!remount || opts->opts &BIT (Opt_uid)) + inode->i_uid = opts->uid; -/* Set all the group ids to the mount option */ -set_gid (sb->s_root, opts->gid); +if (!remount || opts->opts &BIT (Opt_gid)) { +/* Set all the group ids to the mount option */ +set_gid (sb->s_root, opts->gid); + }return 0 ; }
@@ -305,7 +320,7 @@ static int tracefs_remount(struct super_block *sb, int *flags, char *data)if (err) goto fail; -tracefs_apply_options (sb); +tracefs_apply_options (sb, true); fail:return err;
@@ -357,7 +372,7 @@ static int trace_fill_super(struct super_block *sb, void *data, int silent) sb->s_op = &tracefs_super_operations; -tracefs_apply_options (sb); +tracefs_apply_options (sb, false);return 0 ;
mm/mmap.c +7 -2
@@ -2664,6 +2664,7 @@ static void unmap_region(struct mm_struct *mm, {struct vm_area_struct *next =vma_next (mm, prev);struct mmu_gather tlb; +struct vm_area_struct *cur_vma;lru_add_drain ();tlb_gather_mmu (&tlb, mm, start, end);
@@ -2678,8 +2679,12 @@ static void unmap_region(struct mm_struct *mm,* concurrent flush in this region has to be coming through the rmap, * and we synchronize against that using the rmap lock. */ -if ((vma->vm_flags & (VM_PFNMAP |VM_MIXEDMAP )) !=0 ) -tlb_flush_mmu (&tlb); +for (cur_vma = vma; cur_vma; cur_vma = cur_vma->vm_next) { +if ((cur_vma->vm_flags & (VM_PFNMAP |VM_MIXEDMAP )) !=0 ) { +tlb_flush_mmu (&tlb); +break ; + } + }free_pgtables (&tlb, vma, prev ? prev->vm_end :FIRST_USER_ADDRESS , next ? next->vm_start :USER_PGTABLES_CEILING );