stable-rc/linux-5.3.y build: 208 builds: 178 failed, 30 passed, 1068 errors, 162 warnings (v5.3.6-111-gd8fee438c028)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-5.3.y/kernel/v5.3.6-111-g…
Tree: stable-rc
Branch: linux-5.3.y
Git Describe: v5.3.6-111-gd8fee438c028
Git Commit: d8fee438c02867cd53e85dcb6cc7d3475b222483
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 7 unique architectures
Build Failures Detected:
arc:
axs103_defconfig: (gcc-8) FAIL
axs103_smp_defconfig: (gcc-8) FAIL
haps_hs_defconfig: (gcc-8) FAIL
haps_hs_smp_defconfig: (gcc-8) FAIL
hsdk_defconfig: (gcc-8) FAIL
nsim_hs_defconfig: (gcc-8) FAIL
nsim_hs_smp_defconfig: (gcc-8) FAIL
nsimosci_hs_defconfig: (gcc-8) FAIL
nsimosci_hs_smp_defconfig: (gcc-8) FAIL
vdk_hs38_defconfig: (gcc-8) FAIL
vdk_hs38_smp_defconfig: (gcc-8) FAIL
arm64:
defconfig: (gcc-8) FAIL
arm:
acs5k_defconfig: (gcc-8) FAIL
acs5k_tiny_defconfig: (gcc-8) FAIL
am200epdkit_defconfig: (gcc-8) FAIL
aspeed_g4_defconfig: (gcc-8) FAIL
aspeed_g5_defconfig: (gcc-8) FAIL
assabet_defconfig: (gcc-8) FAIL
at91_dt_defconfig: (gcc-8) FAIL
axm55xx_defconfig: (gcc-8) FAIL
badge4_defconfig: (gcc-8) FAIL
bcm2835_defconfig: (gcc-8) FAIL
cerfcube_defconfig: (gcc-8) FAIL
clps711x_defconfig: (gcc-8) FAIL
cm_x2xx_defconfig: (gcc-8) FAIL
cm_x300_defconfig: (gcc-8) FAIL
colibri_pxa270_defconfig: (gcc-8) FAIL
colibri_pxa300_defconfig: (gcc-8) FAIL
collie_defconfig: (gcc-8) FAIL
corgi_defconfig: (gcc-8) FAIL
davinci_all_defconfig: (gcc-8) FAIL
dove_defconfig: (gcc-8) FAIL
ebsa110_defconfig: (gcc-8) FAIL
efm32_defconfig: (gcc-8) FAIL
em_x270_defconfig: (gcc-8) FAIL
ep93xx_defconfig: (gcc-8) FAIL
eseries_pxa_defconfig: (gcc-8) FAIL
exynos_defconfig: (gcc-8) FAIL
ezx_defconfig: (gcc-8) FAIL
footbridge_defconfig: (gcc-8) FAIL
gemini_defconfig: (gcc-8) FAIL
h3600_defconfig: (gcc-8) FAIL
h5000_defconfig: (gcc-8) FAIL
hackkit_defconfig: (gcc-8) FAIL
hisi_defconfig: (gcc-8) FAIL
imote2_defconfig: (gcc-8) FAIL
imx_v4_v5_defconfig: (gcc-8) FAIL
imx_v6_v7_defconfig: (gcc-8) FAIL
integrator_defconfig: (gcc-8) FAIL
iop13xx_defconfig: (gcc-8) FAIL
iop32x_defconfig: (gcc-8) FAIL
iop33x_defconfig: (gcc-8) FAIL
ixp4xx_defconfig: (gcc-8) FAIL
jornada720_defconfig: (gcc-8) FAIL
keystone_defconfig: (gcc-8) FAIL
ks8695_defconfig: (gcc-8) FAIL
lart_defconfig: (gcc-8) FAIL
lpc18xx_defconfig: (gcc-8) FAIL
lpc32xx_defconfig: (gcc-8) FAIL
lpd270_defconfig: (gcc-8) FAIL
lubbock_defconfig: (gcc-8) FAIL
magician_defconfig: (gcc-8) FAIL
mainstone_defconfig: (gcc-8) FAIL
mini2440_defconfig: (gcc-8) FAIL
mmp2_defconfig: (gcc-8) FAIL
moxart_defconfig: (gcc-8) FAIL
mps2_defconfig: (gcc-8) FAIL
multi_v5_defconfig: (gcc-8) FAIL
multi_v7_defconfig: (gcc-8) FAIL
mv78xx0_defconfig: (gcc-8) FAIL
mvebu_v5_defconfig: (gcc-8) FAIL
mvebu_v7_defconfig: (gcc-8) FAIL
mxs_defconfig: (gcc-8) FAIL
neponset_defconfig: (gcc-8) FAIL
netwinder_defconfig: (gcc-8) FAIL
nhk8815_defconfig: (gcc-8) FAIL
omap1_defconfig: (gcc-8) FAIL
omap2plus_defconfig: (gcc-8) FAIL
orion5x_defconfig: (gcc-8) FAIL
oxnas_v6_defconfig: (gcc-8) FAIL
palmz72_defconfig: (gcc-8) FAIL
pcm027_defconfig: (gcc-8) FAIL
pleb_defconfig: (gcc-8) FAIL
pxa168_defconfig: (gcc-8) FAIL
pxa255-idp_defconfig: (gcc-8) FAIL
pxa3xx_defconfig: (gcc-8) FAIL
pxa910_defconfig: (gcc-8) FAIL
pxa_defconfig: (gcc-8) FAIL
qcom_defconfig: (gcc-8) FAIL
realview_defconfig: (gcc-8) FAIL
rpc_defconfig: (gcc-8) FAIL
s3c2410_defconfig: (gcc-8) FAIL
s5pv210_defconfig: (gcc-8) FAIL
sama5_defconfig: (gcc-8) FAIL
shannon_defconfig: (gcc-8) FAIL
shmobile_defconfig: (gcc-8) FAIL
simpad_defconfig: (gcc-8) FAIL
socfpga_defconfig: (gcc-8) FAIL
spear13xx_defconfig: (gcc-8) FAIL
spitz_defconfig: (gcc-8) FAIL
sunxi_defconfig: (gcc-8) FAIL
tango4_defconfig: (gcc-8) FAIL
tct_hammer_defconfig: (gcc-8) FAIL
tegra_defconfig: (gcc-8) FAIL
trizeps4_defconfig: (gcc-8) FAIL
u8500_defconfig: (gcc-8) FAIL
versatile_defconfig: (gcc-8) FAIL
vexpress_defconfig: (gcc-8) FAIL
viper_defconfig: (gcc-8) FAIL
vt8500_v6_v7_defconfig: (gcc-8) FAIL
xcep_defconfig: (gcc-8) FAIL
zeus_defconfig: (gcc-8) FAIL
i386:
i386_defconfig: (gcc-8) FAIL
mips:
32r2el_defconfig: (gcc-8) FAIL
ar7_defconfig: (gcc-8) FAIL
ath25_defconfig: (gcc-8) FAIL
ath79_defconfig: (gcc-8) FAIL
bcm47xx_defconfig: (gcc-8) FAIL
bcm63xx_defconfig: (gcc-8) FAIL
bigsur_defconfig: (gcc-8) FAIL
bmips_be_defconfig: (gcc-8) FAIL
bmips_stb_defconfig: (gcc-8) FAIL
capcella_defconfig: (gcc-8) FAIL
cavium_octeon_defconfig: (gcc-8) FAIL
ci20_defconfig: (gcc-8) FAIL
cobalt_defconfig: (gcc-8) FAIL
db1xxx_defconfig: (gcc-8) FAIL
decstation_64_defconfig: (gcc-8) FAIL
decstation_defconfig: (gcc-8) FAIL
decstation_r4k_defconfig: (gcc-8) FAIL
fuloong2e_defconfig: (gcc-8) FAIL
gcw0_defconfig: (gcc-8) FAIL
gpr_defconfig: (gcc-8) FAIL
ip22_defconfig: (gcc-8) FAIL
ip27_defconfig: (gcc-8) FAIL
ip28_defconfig: (gcc-8) FAIL
ip32_defconfig: (gcc-8) FAIL
jazz_defconfig: (gcc-8) FAIL
jmr3927_defconfig: (gcc-8) FAIL
lasat_defconfig: (gcc-8) FAIL
lemote2f_defconfig: (gcc-8) FAIL
loongson1b_defconfig: (gcc-8) FAIL
loongson1c_defconfig: (gcc-8) FAIL
loongson3_defconfig: (gcc-8) FAIL
malta_defconfig: (gcc-8) FAIL
malta_kvm_defconfig: (gcc-8) FAIL
malta_kvm_guest_defconfig: (gcc-8) FAIL
malta_qemu_32r6_defconfig: (gcc-8) FAIL
maltaaprp_defconfig: (gcc-8) FAIL
maltasmvp_defconfig: (gcc-8) FAIL
maltasmvp_eva_defconfig: (gcc-8) FAIL
maltaup_defconfig: (gcc-8) FAIL
maltaup_xpa_defconfig: (gcc-8) FAIL
markeins_defconfig: (gcc-8) FAIL
mips_paravirt_defconfig: (gcc-8) FAIL
mpc30x_defconfig: (gcc-8) FAIL
msp71xx_defconfig: (gcc-8) FAIL
mtx1_defconfig: (gcc-8) FAIL
nlm_xlp_defconfig: (gcc-8) FAIL
nlm_xlr_defconfig: (gcc-8) FAIL
omega2p_defconfig: (gcc-8) FAIL
pistachio_defconfig: (gcc-8) FAIL
pnx8335_stb225_defconfig: (gcc-8) FAIL
qi_lb60_defconfig: (gcc-8) FAIL
rb532_defconfig: (gcc-8) FAIL
rbtx49xx_defconfig: (gcc-8) FAIL
rm200_defconfig: (gcc-8) FAIL
rt305x_defconfig: (gcc-8) FAIL
sb1250_swarm_defconfig: (gcc-8) FAIL
tb0219_defconfig: (gcc-8) FAIL
tb0226_defconfig: (gcc-8) FAIL
tb0287_defconfig: (gcc-8) FAIL
vocore2_defconfig: (gcc-8) FAIL
workpad_defconfig: (gcc-8) FAIL
xway_defconfig: (gcc-8) FAIL
riscv:
defconfig: (gcc-8) FAIL
rv32_defconfig: (gcc-8) FAIL
x86_64:
x86_64_defconfig: (gcc-8) FAIL
Errors and Warnings Detected:
arc:
allnoconfig (gcc-8): 1 warning
axs103_defconfig (gcc-8): 6 errors, 1 warning
axs103_smp_defconfig (gcc-8): 6 errors, 1 warning
haps_hs_defconfig (gcc-8): 6 errors, 1 warning
haps_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
hsdk_defconfig (gcc-8): 6 errors, 1 warning
nsim_hs_defconfig (gcc-8): 6 errors, 1 warning
nsim_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
nsimosci_hs_defconfig (gcc-8): 6 errors, 1 warning
nsimosci_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
tinyconfig (gcc-8): 1 warning
vdk_hs38_defconfig (gcc-8): 6 errors, 1 warning
vdk_hs38_smp_defconfig (gcc-8): 6 errors, 1 warning
arm64:
defconfig (gcc-8): 6 errors, 3 warnings
arm:
acs5k_defconfig (gcc-8): 6 errors
acs5k_tiny_defconfig (gcc-8): 6 errors
am200epdkit_defconfig (gcc-8): 6 errors
aspeed_g4_defconfig (gcc-8): 6 errors
aspeed_g5_defconfig (gcc-8): 6 errors
assabet_defconfig (gcc-8): 6 errors
at91_dt_defconfig (gcc-8): 6 errors, 4 warnings
axm55xx_defconfig (gcc-8): 6 errors
badge4_defconfig (gcc-8): 6 errors
bcm2835_defconfig (gcc-8): 6 errors
cerfcube_defconfig (gcc-8): 6 errors
clps711x_defconfig (gcc-8): 6 errors
cm_x2xx_defconfig (gcc-8): 6 errors
cm_x300_defconfig (gcc-8): 6 errors
colibri_pxa270_defconfig (gcc-8): 6 errors
colibri_pxa300_defconfig (gcc-8): 6 errors
collie_defconfig (gcc-8): 6 errors
corgi_defconfig (gcc-8): 6 errors
davinci_all_defconfig (gcc-8): 6 errors
dove_defconfig (gcc-8): 6 errors
ebsa110_defconfig (gcc-8): 6 errors
efm32_defconfig (gcc-8): 6 errors
em_x270_defconfig (gcc-8): 6 errors
ep93xx_defconfig (gcc-8): 6 errors
eseries_pxa_defconfig (gcc-8): 6 errors
exynos_defconfig (gcc-8): 6 errors
ezx_defconfig (gcc-8): 6 errors
footbridge_defconfig (gcc-8): 6 errors
gemini_defconfig (gcc-8): 6 errors
h3600_defconfig (gcc-8): 6 errors
h5000_defconfig (gcc-8): 6 errors
hackkit_defconfig (gcc-8): 6 errors
hisi_defconfig (gcc-8): 6 errors
imote2_defconfig (gcc-8): 6 errors
imx_v4_v5_defconfig (gcc-8): 6 errors, 1 warning
imx_v6_v7_defconfig (gcc-8): 6 errors
integrator_defconfig (gcc-8): 6 errors
iop13xx_defconfig (gcc-8): 6 errors
iop32x_defconfig (gcc-8): 6 errors
iop33x_defconfig (gcc-8): 6 errors
ixp4xx_defconfig (gcc-8): 6 errors
jornada720_defconfig (gcc-8): 6 errors
keystone_defconfig (gcc-8): 6 errors
ks8695_defconfig (gcc-8): 6 errors
lart_defconfig (gcc-8): 6 errors
lpc18xx_defconfig (gcc-8): 6 errors
lpc32xx_defconfig (gcc-8): 6 errors
lpd270_defconfig (gcc-8): 6 errors
lubbock_defconfig (gcc-8): 6 errors
magician_defconfig (gcc-8): 6 errors
mainstone_defconfig (gcc-8): 6 errors
mini2440_defconfig (gcc-8): 6 errors, 2 warnings
mmp2_defconfig (gcc-8): 6 errors
moxart_defconfig (gcc-8): 6 errors
mps2_defconfig (gcc-8): 6 errors
multi_v5_defconfig (gcc-8): 6 errors, 3 warnings
multi_v7_defconfig (gcc-8): 6 errors, 16 warnings
mv78xx0_defconfig (gcc-8): 6 errors
mvebu_v5_defconfig (gcc-8): 6 errors
mvebu_v7_defconfig (gcc-8): 6 errors
mxs_defconfig (gcc-8): 6 errors
neponset_defconfig (gcc-8): 6 errors
netwinder_defconfig (gcc-8): 6 errors
nhk8815_defconfig (gcc-8): 6 errors
omap1_defconfig (gcc-8): 6 errors
omap2plus_defconfig (gcc-8): 6 errors, 1 warning
orion5x_defconfig (gcc-8): 6 errors
oxnas_v6_defconfig (gcc-8): 6 errors
palmz72_defconfig (gcc-8): 6 errors
pcm027_defconfig (gcc-8): 6 errors
pleb_defconfig (gcc-8): 6 errors
pxa168_defconfig (gcc-8): 6 errors
pxa255-idp_defconfig (gcc-8): 6 errors
pxa3xx_defconfig (gcc-8): 6 errors
pxa910_defconfig (gcc-8): 6 errors
pxa_defconfig (gcc-8): 6 errors
qcom_defconfig (gcc-8): 6 errors, 2 warnings
realview_defconfig (gcc-8): 6 errors
rpc_defconfig (gcc-8): 6 errors
s3c2410_defconfig (gcc-8): 6 errors
s3c6400_defconfig (gcc-8): 1 warning
s5pv210_defconfig (gcc-8): 6 errors, 1 warning
sama5_defconfig (gcc-8): 6 errors, 4 warnings
shannon_defconfig (gcc-8): 6 errors
shmobile_defconfig (gcc-8): 6 errors, 2 warnings
simpad_defconfig (gcc-8): 6 errors
socfpga_defconfig (gcc-8): 6 errors
spear13xx_defconfig (gcc-8): 6 errors
spitz_defconfig (gcc-8): 6 errors
sunxi_defconfig (gcc-8): 6 errors
tango4_defconfig (gcc-8): 6 errors
tct_hammer_defconfig (gcc-8): 6 errors, 2 warnings
tegra_defconfig (gcc-8): 6 errors
trizeps4_defconfig (gcc-8): 6 errors
u8500_defconfig (gcc-8): 6 errors, 6 warnings
versatile_defconfig (gcc-8): 6 errors
vexpress_defconfig (gcc-8): 6 errors
viper_defconfig (gcc-8): 6 errors
vt8500_v6_v7_defconfig (gcc-8): 6 errors
xcep_defconfig (gcc-8): 6 errors
zeus_defconfig (gcc-8): 6 errors
i386:
i386_defconfig (gcc-8): 6 errors
mips:
32r2el_defconfig (gcc-8): 6 errors, 1 warning
allnoconfig (gcc-8): 1 warning
ar7_defconfig (gcc-8): 6 errors, 1 warning
ath25_defconfig (gcc-8): 6 errors, 1 warning
ath79_defconfig (gcc-8): 6 errors, 1 warning
bcm47xx_defconfig (gcc-8): 6 errors, 1 warning
bcm63xx_defconfig (gcc-8): 6 errors, 1 warning
bigsur_defconfig (gcc-8): 6 errors, 3 warnings
bmips_be_defconfig (gcc-8): 6 errors, 1 warning
bmips_stb_defconfig (gcc-8): 6 errors, 1 warning
capcella_defconfig (gcc-8): 6 errors, 1 warning
cavium_octeon_defconfig (gcc-8): 6 errors, 3 warnings
ci20_defconfig (gcc-8): 6 errors, 2 warnings
cobalt_defconfig (gcc-8): 6 errors, 1 warning
db1xxx_defconfig (gcc-8): 6 errors, 1 warning
decstation_64_defconfig (gcc-8): 6 errors, 3 warnings
decstation_defconfig (gcc-8): 6 errors, 1 warning
decstation_r4k_defconfig (gcc-8): 6 errors, 1 warning
e55_defconfig (gcc-8): 2 warnings
fuloong2e_defconfig (gcc-8): 6 errors, 3 warnings
gcw0_defconfig (gcc-8): 6 errors, 1 warning
gpr_defconfig (gcc-8): 6 errors, 1 warning
ip22_defconfig (gcc-8): 6 errors, 2 warnings
ip27_defconfig (gcc-8): 6 errors, 3 warnings
ip28_defconfig (gcc-8): 6 errors, 4 warnings
ip32_defconfig (gcc-8): 6 errors, 3 warnings
jazz_defconfig (gcc-8): 6 errors, 1 warning
jmr3927_defconfig (gcc-8): 6 errors, 1 warning
lasat_defconfig (gcc-8): 6 errors, 1 warning
lemote2f_defconfig (gcc-8): 6 errors, 3 warnings
loongson1b_defconfig (gcc-8): 6 errors, 1 warning
loongson1c_defconfig (gcc-8): 6 errors, 1 warning
loongson3_defconfig (gcc-8): 6 errors, 3 warnings
malta_defconfig (gcc-8): 6 errors, 1 warning
malta_kvm_defconfig (gcc-8): 6 errors, 1 warning
malta_kvm_guest_defconfig (gcc-8): 6 errors, 1 warning
malta_qemu_32r6_defconfig (gcc-8): 6 errors, 2 warnings
maltaaprp_defconfig (gcc-8): 6 errors, 1 warning
maltasmvp_defconfig (gcc-8): 6 errors, 1 warning
maltasmvp_eva_defconfig (gcc-8): 6 errors, 1 warning
maltaup_defconfig (gcc-8): 6 errors, 1 warning
maltaup_xpa_defconfig (gcc-8): 6 errors, 1 warning
markeins_defconfig (gcc-8): 6 errors, 1 warning
mips_paravirt_defconfig (gcc-8): 6 errors, 3 warnings
mpc30x_defconfig (gcc-8): 6 errors, 1 warning
msp71xx_defconfig (gcc-8): 6 errors, 1 warning
mtx1_defconfig (gcc-8): 6 errors, 1 warning
nlm_xlp_defconfig (gcc-8): 6 errors, 3 warnings
nlm_xlr_defconfig (gcc-8): 6 errors, 1 warning
omega2p_defconfig (gcc-8): 6 errors, 1 warning
pic32mzda_defconfig (gcc-8): 2 warnings
pistachio_defconfig (gcc-8): 6 errors, 1 warning
pnx8335_stb225_defconfig (gcc-8): 6 errors, 1 warning
qi_lb60_defconfig (gcc-8): 6 errors, 3 warnings
rb532_defconfig (gcc-8): 6 errors, 1 warning
rbtx49xx_defconfig (gcc-8): 6 errors, 1 warning
rm200_defconfig (gcc-8): 6 errors, 1 warning
rt305x_defconfig (gcc-8): 6 errors, 1 warning
sb1250_swarm_defconfig (gcc-8): 6 errors, 2 warnings
tb0219_defconfig (gcc-8): 6 errors, 1 warning
tb0226_defconfig (gcc-8): 6 errors, 1 warning
tb0287_defconfig (gcc-8): 6 errors, 1 warning
tinyconfig (gcc-8): 1 warning
vocore2_defconfig (gcc-8): 6 errors, 1 warning
workpad_defconfig (gcc-8): 6 errors, 1 warning
xway_defconfig (gcc-8): 6 errors, 1 warning
riscv:
defconfig (gcc-8): 6 errors
rv32_defconfig (gcc-8): 6 errors, 3 warnings
x86_64:
tinyconfig (gcc-8): 1 warning
x86_64_defconfig (gcc-8): 6 errors
Errors summary:
178 include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
178 include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
178 include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
178 include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
178 fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
178 fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
Warnings summary:
105 <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
4 drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
4 drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
4 drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
3 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
3 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
3 drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
2 drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 {standard input}:131: Warning: macro instruction expanded into multiple instructions
1 drivers/video/fbdev/jz4740_fb.c:300:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 drivers/cpufreq/ti-cpufreq.c:79:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 <stdin>:830:2: warning: #warning syscall fstat64 not implemented [-Wcpp]
1 <stdin>:1127:2: warning: #warning syscall fstatat64 not implemented [-Wcpp]
1 .config:1168:warning: override: UNWINDER_GUESS changes choice state
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
32r2el_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
acs5k_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
allnoconfig (arc, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
allnoconfig (arm64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (riscv, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (mips, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
allnoconfig (i386, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (x86_64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ar7_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
aspeed_g4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
aspeed_g5_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
assabet_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
at91_dt_defconfig (arm, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ath25_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ath79_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
axm55xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
axs103_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
axs103_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
badge4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
bcm2835_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bigsur_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bmips_be_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bmips_stb_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
capcella_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
cerfcube_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ci20_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
--------------------------------------------------------------------------------
clps711x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cm_x300_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cobalt_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
collie_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
corgi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
davinci_all_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
db1xxx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
decstation_64_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
decstation_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
decstation_r4k_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
defconfig (riscv, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
defconfig (arm64, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
dove_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
e55_defconfig (mips, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ebsa110_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
efm32_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
em_x270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ep93xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
exynos_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ezx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
footbridge_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
gcw0_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
gemini_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
gpr_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
h3600_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
h5000_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
hackkit_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
haps_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
haps_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
hisi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
hsdk_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
i386_defconfig (i386, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
imote2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
integrator_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop13xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop32x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop33x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ip22_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ip27_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ip28_defconfig (mips, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ip32_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
jazz_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
jmr3927_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
jornada720_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
keystone_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ks8695_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lart_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lasat_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
lemote2f_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson1b_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson1c_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson3_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
lpc18xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lpd270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lubbock_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
magician_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mainstone_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
malta_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_qemu_32r6_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
{standard input}:131: Warning: macro instruction expanded into multiple instructions
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltaup_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltaup_xpa_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
markeins_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
milbeaut_m10v_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mini2440_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mmp2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
moxart_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mpc30x_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mps2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
msp71xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mtx1_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
multi_v4t_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 16 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mxs_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
neponset_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
netwinder_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
nhk8815_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsim_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsim_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsimosci_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsimosci_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nuc910_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc950_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc960_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omap1_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
omap2plus_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/cpufreq/ti-cpufreq.c:79:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
omega2p_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
orion5x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
oxnas_v6_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
palmz72_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pcm027_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pic32mzda_defconfig (mips, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
pistachio_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
pleb_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
prima2_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa168_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa910_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
qcom_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
drivers/video/fbdev/jz4740_fb.c:300:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
rb532_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
realview_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
rm200_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rpc_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
rt305x_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rv32_defconfig (riscv, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:830:2: warning: #warning syscall fstat64 not implemented [-Wcpp]
<stdin>:1127:2: warning: #warning syscall fstatat64 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
s3c2410_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
s3c6400_defconfig (arm, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
sama5_defconfig (arm, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
shannon_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
shmobile_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
simpad_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
socfpga_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
spear13xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
spear3xx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear6xx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spitz_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
stm32_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sunxi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tango4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tb0219_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tb0226_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tb0287_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
tegra_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tinyconfig (i386, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arm64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (x86_64, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
.config:1168:warning: override: UNWINDER_GUESS changes choice state
--------------------------------------------------------------------------------
tinyconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (mips, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tinyconfig (riscv, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
trizeps4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
u300_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
u8500_defconfig (arm, gcc-8) — FAIL, 6 errors, 6 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
vdk_hs38_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
vdk_hs38_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
versatile_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vexpress_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vf610m4_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
viper_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vocore2_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
workpad_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
xcep_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
xway_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
zeus_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
zx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
---
For more info write to <info(a)kernelci.org>
Because pids->limit can be changed concurrently (but we don't want to
take a lock because it would be needlessly expensive), use the
appropriate memory barriers.
Fixes: commit 49b786ea146f ("cgroup: implement the PIDs subsystem")
Cc: stable(a)vger.kernel.org # v4.3+
Signed-off-by: Aleksa Sarai <cyphar(a)cyphar.com>
---
kernel/cgroup/pids.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/cgroup/pids.c b/kernel/cgroup/pids.c
index 8e513a573fe9..a726e4a20177 100644
--- a/kernel/cgroup/pids.c
+++ b/kernel/cgroup/pids.c
@@ -152,7 +152,7 @@ static int pids_try_charge(struct pids_cgroup *pids, int num)
* p->limit is %PIDS_MAX then we know that this test will never
* fail.
*/
- if (new > p->limit)
+ if (new > READ_ONCE(p->limit))
goto revert;
}
@@ -277,7 +277,7 @@ static ssize_t pids_max_write(struct kernfs_open_file *of, char *buf,
* Limit updates don't need to be mutex'd, since it isn't
* critical that any racing fork()s follow the new limit.
*/
- pids->limit = limit;
+ WRITE_ONCE(pids->limit, limit);
return nbytes;
}
@@ -285,7 +285,7 @@ static int pids_max_show(struct seq_file *sf, void *v)
{
struct cgroup_subsys_state *css = seq_css(sf);
struct pids_cgroup *pids = css_pids(css);
- int64_t limit = pids->limit;
+ int64_t limit = READ_ONCE(pids->limit);
if (limit >= PIDS_MAX)
seq_printf(sf, "%s\n", PIDS_MAX_STR);
--
2.23.0
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: d8fee438c028 - Linux 5.3.7-rc1
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/229110
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/229091
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 62b9a201a516 commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
iio-light-opt3001-fix-mutex-unlock-race.patch
iio-light-add-missing-vcnl4040-of_compatible.patch
iio-accel-adxl372-fix-remove-limitation-for-fifo-samples.patch
iio-accel-adxl372-fix-push-to-buffers-lost-samples.patch
iio-accel-adxl372-perform-a-reset-at-start-up.patch
efivar-ssdt-don-t-iterate-over-efi-vars-if-no-ssdt-override-was-specified.patch
efi-tpm-don-t-access-event-count-when-it-isn-t-mapped.patch
efi-tpm-don-t-traverse-an-event-log-with-no-events.patch
efi-tpm-only-set-efi_tpm_final_log_size-after-successful-event-log-parsing.patch
perf-llvm-don-t-access-out-of-scope-array.patch
perf-inject-jit-fix-jit_code_move-filename.patch
drm-i915-perform-ggtt-restore-much-earlier-during-resume.patch
blk-wbt-fix-performance-regression-in-wbt-scale_up-scale_down.patch
selinux-fix-context-string-corruption-in-convert_context.patch
io_uring-only-flush-workqueues-on-fileset-removal.patch
cifs-gracefully-handle-queryinfo-errors-during-open.patch
cifs-force-revalidate-inode-when-dentry-is-stale.patch
cifs-force-reval-dentry-if-lookup_reval-flag-is-set.patch
cifs-use-cifsinodeinfo-open_file_lock-while-iterating-to-avoid-a-panic.patch
kernel-sysctl.c-do-not-override-max_threads-provided-by-userspace.patch
mm-z3fold.c-claim-page-in-the-beginning-of-free.patch
mm-page_alloc.c-fix-a-crash-in-free_pages_prepare.patch
mm-vmpressure.c-fix-a-signedness-bug-in-vmpressure_register_event.patch
ib-core-fix-wrong-iterating-on-ports.patch
firmware-google-increment-vpd-key_len-properly.patch
gpio-fix-getting-nonexclusive-gpiods-from-dt.patch
gpiolib-don-t-clear-flag_is_out-when-emulating-open-.patch
btrfs-relocation-fix-use-after-free-on-dead-relocation-roots.patch
btrfs-allocate-new-inode-in-nofs-context.patch
btrfs-fix-balance-convert-to-single-on-32-bit-host-cpus.patch
btrfs-fix-memory-leak-due-to-concurrent-append-writes-with-fiemap.patch
btrfs-fix-incorrect-updating-of-log-root-tree.patch
btrfs-fix-uninitialized-ret-in-ref-verify.patch
nfs-fix-o_direct-accounting-of-number-of-bytes-read-written.patch
mips-disable-loongson-mmi-instructions-for-kernel-build.patch
mips-elf_hwcap-export-userspace-ases.patch
rdma-vmw_pvrdma-free-srq-only-once.patch
acpi-pptt-add-support-for-acpi-6.3-thread-flag.patch
arm64-topology-use-pptt-to-determine-if-pe-is-a-thre.patch
iio-light-fix-vcnl4000-devicetree-hooks.patch
fix-the-locking-in-dcache_readdir-and-friends.patch
drm-i915-bump-skl-max-plane-width-to-5k-for-linear-x-tiled.patch
drm-i915-whitelist-common_slice_chicken2.patch
drm-i915-mark-contents-as-dirty-on-a-write-fault.patch
drm-msm-use-the-correct-dma_sync-calls-harder.patch
media-stkwebcam-fix-runtime-pm-after-driver-unbind.patch
arm64-sve-fix-wrong-free-for-task-thread.sve_state.patch
tracing-hwlat-report-total-time-spent-in-all-nmis-during-the-sample.patch
tracing-hwlat-don-t-ignore-outer-loop-duration-when-calculating-max_latency.patch
ftrace-get-a-reference-counter-for-the-trace_array-on-filter-files.patch
tracing-get-trace_array-reference-for-available_tracers-files.patch
hwmon-fix-hwmon_p_min_alarm-mask.patch
mtd-rawnand-au1550nd-fix-au_read_buf16-prototype.patch
x86-asm-fix-mwaitx-c-state-hint-value.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/229078
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 7528b45349fa commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
iio-light-opt3001-fix-mutex-unlock-race.patch
iio-light-add-missing-vcnl4040-of_compatible.patch
iio-accel-adxl372-fix-remove-limitation-for-fifo-samples.patch
iio-accel-adxl372-fix-push-to-buffers-lost-samples.patch
iio-accel-adxl372-perform-a-reset-at-start-up.patch
efivar-ssdt-don-t-iterate-over-efi-vars-if-no-ssdt-override-was-specified.patch
efi-tpm-don-t-access-event-count-when-it-isn-t-mapped.patch
efi-tpm-don-t-traverse-an-event-log-with-no-events.patch
efi-tpm-only-set-efi_tpm_final_log_size-after-successful-event-log-parsing.patch
perf-llvm-don-t-access-out-of-scope-array.patch
perf-inject-jit-fix-jit_code_move-filename.patch
drm-i915-perform-ggtt-restore-much-earlier-during-resume.patch
blk-wbt-fix-performance-regression-in-wbt-scale_up-scale_down.patch
selinux-fix-context-string-corruption-in-convert_context.patch
io_uring-only-flush-workqueues-on-fileset-removal.patch
cifs-gracefully-handle-queryinfo-errors-during-open.patch
cifs-force-revalidate-inode-when-dentry-is-stale.patch
cifs-force-reval-dentry-if-lookup_reval-flag-is-set.patch
cifs-use-cifsinodeinfo-open_file_lock-while-iterating-to-avoid-a-panic.patch
kernel-sysctl.c-do-not-override-max_threads-provided-by-userspace.patch
mm-z3fold.c-claim-page-in-the-beginning-of-free.patch
mm-page_alloc.c-fix-a-crash-in-free_pages_prepare.patch
mm-vmpressure.c-fix-a-signedness-bug-in-vmpressure_register_event.patch
ib-core-fix-wrong-iterating-on-ports.patch
firmware-google-increment-vpd-key_len-properly.patch
gpio-fix-getting-nonexclusive-gpiods-from-dt.patch
gpiolib-don-t-clear-flag_is_out-when-emulating-open-.patch
btrfs-relocation-fix-use-after-free-on-dead-relocation-roots.patch
btrfs-allocate-new-inode-in-nofs-context.patch
btrfs-fix-balance-convert-to-single-on-32-bit-host-cpus.patch
btrfs-fix-memory-leak-due-to-concurrent-append-writes-with-fiemap.patch
btrfs-fix-incorrect-updating-of-log-root-tree.patch
btrfs-fix-uninitialized-ret-in-ref-verify.patch
nfs-fix-o_direct-accounting-of-number-of-bytes-read-written.patch
mips-disable-loongson-mmi-instructions-for-kernel-build.patch
mips-elf_hwcap-export-userspace-ases.patch
rdma-vmw_pvrdma-free-srq-only-once.patch
acpi-pptt-add-support-for-acpi-6.3-thread-flag.patch
arm64-topology-use-pptt-to-determine-if-pe-is-a-thre.patch
iio-light-fix-vcnl4000-devicetree-hooks.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From dcb10920179ab74caf88a6f2afadecfc2743b910 Mon Sep 17 00:00:00 2001
From: Fabrice Gasnier <fabrice.gasnier(a)st.com>
Date: Tue, 17 Sep 2019 14:38:16 +0200
Subject: [PATCH] iio: adc: stm32-adc: fix a race when using several adcs with
dma and irq
End of conversion may be handled by using IRQ or DMA. There may be a
race when two conversions complete at the same time on several ADCs.
EOC can be read as 'set' for several ADCs, with:
- an ADC configured to use IRQs. EOCIE bit is set. The handler is normally
called in this case.
- an ADC configured to use DMA. EOCIE bit isn't set. EOC triggers the DMA
request instead. It's then automatically cleared by DMA read. But the
handler gets called due to status bit is temporarily set (IRQ triggered
by the other ADC).
So both EOC status bit in CSR and EOCIE control bit must be checked
before invoking the interrupt handler (e.g. call ISR only for
IRQ-enabled ADCs).
Fixes: 2763ea0585c9 ("iio: adc: stm32: add optional dma support")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier(a)st.com>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c
index 84ac326bb714..93a096a91f8c 100644
--- a/drivers/iio/adc/stm32-adc-core.c
+++ b/drivers/iio/adc/stm32-adc-core.c
@@ -44,6 +44,8 @@
* @eoc1: adc1 end of conversion flag in @csr
* @eoc2: adc2 end of conversion flag in @csr
* @eoc3: adc3 end of conversion flag in @csr
+ * @ier: interrupt enable register offset for each adc
+ * @eocie_msk: end of conversion interrupt enable mask in @ier
*/
struct stm32_adc_common_regs {
u32 csr;
@@ -51,6 +53,8 @@ struct stm32_adc_common_regs {
u32 eoc1_msk;
u32 eoc2_msk;
u32 eoc3_msk;
+ u32 ier;
+ u32 eocie_msk;
};
struct stm32_adc_priv;
@@ -276,6 +280,8 @@ static const struct stm32_adc_common_regs stm32f4_adc_common_regs = {
.eoc1_msk = STM32F4_EOC1,
.eoc2_msk = STM32F4_EOC2,
.eoc3_msk = STM32F4_EOC3,
+ .ier = STM32F4_ADC_CR1,
+ .eocie_msk = STM32F4_EOCIE,
};
/* STM32H7 common registers definitions */
@@ -284,8 +290,24 @@ static const struct stm32_adc_common_regs stm32h7_adc_common_regs = {
.ccr = STM32H7_ADC_CCR,
.eoc1_msk = STM32H7_EOC_MST,
.eoc2_msk = STM32H7_EOC_SLV,
+ .ier = STM32H7_ADC_IER,
+ .eocie_msk = STM32H7_EOCIE,
};
+static const unsigned int stm32_adc_offset[STM32_ADC_MAX_ADCS] = {
+ 0, STM32_ADC_OFFSET, STM32_ADC_OFFSET * 2,
+};
+
+static unsigned int stm32_adc_eoc_enabled(struct stm32_adc_priv *priv,
+ unsigned int adc)
+{
+ u32 ier, offset = stm32_adc_offset[adc];
+
+ ier = readl_relaxed(priv->common.base + offset + priv->cfg->regs->ier);
+
+ return ier & priv->cfg->regs->eocie_msk;
+}
+
/* ADC common interrupt for all instances */
static void stm32_adc_irq_handler(struct irq_desc *desc)
{
@@ -296,13 +318,28 @@ static void stm32_adc_irq_handler(struct irq_desc *desc)
chained_irq_enter(chip, desc);
status = readl_relaxed(priv->common.base + priv->cfg->regs->csr);
- if (status & priv->cfg->regs->eoc1_msk)
+ /*
+ * End of conversion may be handled by using IRQ or DMA. There may be a
+ * race here when two conversions complete at the same time on several
+ * ADCs. EOC may be read 'set' for several ADCs, with:
+ * - an ADC configured to use DMA (EOC triggers the DMA request, and
+ * is then automatically cleared by DR read in hardware)
+ * - an ADC configured to use IRQs (EOCIE bit is set. The handler must
+ * be called in this case)
+ * So both EOC status bit in CSR and EOCIE control bit must be checked
+ * before invoking the interrupt handler (e.g. call ISR only for
+ * IRQ-enabled ADCs).
+ */
+ if (status & priv->cfg->regs->eoc1_msk &&
+ stm32_adc_eoc_enabled(priv, 0))
generic_handle_irq(irq_find_mapping(priv->domain, 0));
- if (status & priv->cfg->regs->eoc2_msk)
+ if (status & priv->cfg->regs->eoc2_msk &&
+ stm32_adc_eoc_enabled(priv, 1))
generic_handle_irq(irq_find_mapping(priv->domain, 1));
- if (status & priv->cfg->regs->eoc3_msk)
+ if (status & priv->cfg->regs->eoc3_msk &&
+ stm32_adc_eoc_enabled(priv, 2))
generic_handle_irq(irq_find_mapping(priv->domain, 2));
chained_irq_exit(chip, desc);
diff --git a/drivers/iio/adc/stm32-adc-core.h b/drivers/iio/adc/stm32-adc-core.h
index 94aa2d2577dc..2579d514c2a3 100644
--- a/drivers/iio/adc/stm32-adc-core.h
+++ b/drivers/iio/adc/stm32-adc-core.h
@@ -25,6 +25,7 @@
* --------------------------------------------------------
*/
#define STM32_ADC_MAX_ADCS 3
+#define STM32_ADC_OFFSET 0x100
#define STM32_ADCX_COMN_OFFSET 0x300
/* STM32F4 - Registers for each ADC instance */
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 11a19a90870ea5496a8ded69b86f5b476b6d3355 Mon Sep 17 00:00:00 2001
From: Josef Bacik <josef(a)toxicpanda.com>
Date: Mon, 9 Sep 2019 10:12:04 -0400
Subject: [PATCH] btrfs: allocate new inode in NOFS context
A user reported a lockdep splat
======================================================
WARNING: possible circular locking dependency detected
5.2.11-gentoo #2 Not tainted
------------------------------------------------------
kswapd0/711 is trying to acquire lock:
000000007777a663 (sb_internal){.+.+}, at: start_transaction+0x3a8/0x500
but task is already holding lock:
000000000ba86300 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x0/0x30
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (fs_reclaim){+.+.}:
kmem_cache_alloc+0x1f/0x1c0
btrfs_alloc_inode+0x1f/0x260
alloc_inode+0x16/0xa0
new_inode+0xe/0xb0
btrfs_new_inode+0x70/0x610
btrfs_symlink+0xd0/0x420
vfs_symlink+0x9c/0x100
do_symlinkat+0x66/0xe0
do_syscall_64+0x55/0x1c0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
-> #0 (sb_internal){.+.+}:
__sb_start_write+0xf6/0x150
start_transaction+0x3a8/0x500
btrfs_commit_inode_delayed_inode+0x59/0x110
btrfs_evict_inode+0x19e/0x4c0
evict+0xbc/0x1f0
inode_lru_isolate+0x113/0x190
__list_lru_walk_one.isra.4+0x5c/0x100
list_lru_walk_one+0x32/0x50
prune_icache_sb+0x36/0x80
super_cache_scan+0x14a/0x1d0
do_shrink_slab+0x131/0x320
shrink_node+0xf7/0x380
balance_pgdat+0x2d5/0x640
kswapd+0x2ba/0x5e0
kthread+0x147/0x160
ret_from_fork+0x24/0x30
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(fs_reclaim);
lock(sb_internal);
lock(fs_reclaim);
lock(sb_internal);
*** DEADLOCK ***
3 locks held by kswapd0/711:
#0: 000000000ba86300 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x0/0x30
#1: 000000004a5100f8 (shrinker_rwsem){++++}, at: shrink_node+0x9a/0x380
#2: 00000000f956fa46 (&type->s_umount_key#30){++++}, at: super_cache_scan+0x35/0x1d0
stack backtrace:
CPU: 7 PID: 711 Comm: kswapd0 Not tainted 5.2.11-gentoo #2
Hardware name: Dell Inc. Precision Tower 3620/0MWYPT, BIOS 2.4.2 09/29/2017
Call Trace:
dump_stack+0x85/0xc7
print_circular_bug.cold.40+0x1d9/0x235
__lock_acquire+0x18b1/0x1f00
lock_acquire+0xa6/0x170
? start_transaction+0x3a8/0x500
__sb_start_write+0xf6/0x150
? start_transaction+0x3a8/0x500
start_transaction+0x3a8/0x500
btrfs_commit_inode_delayed_inode+0x59/0x110
btrfs_evict_inode+0x19e/0x4c0
? var_wake_function+0x20/0x20
evict+0xbc/0x1f0
inode_lru_isolate+0x113/0x190
? discard_new_inode+0xc0/0xc0
__list_lru_walk_one.isra.4+0x5c/0x100
? discard_new_inode+0xc0/0xc0
list_lru_walk_one+0x32/0x50
prune_icache_sb+0x36/0x80
super_cache_scan+0x14a/0x1d0
do_shrink_slab+0x131/0x320
shrink_node+0xf7/0x380
balance_pgdat+0x2d5/0x640
kswapd+0x2ba/0x5e0
? __wake_up_common_lock+0x90/0x90
kthread+0x147/0x160
? balance_pgdat+0x640/0x640
? __kthread_create_on_node+0x160/0x160
ret_from_fork+0x24/0x30
This is because btrfs_new_inode() calls new_inode() under the
transaction. We could probably move the new_inode() outside of this but
for now just wrap it in memalloc_nofs_save().
Reported-by: Zdenek Sojka <zsojka(a)seznam.cz>
Fixes: 712e36c5f2a7 ("btrfs: use GFP_KERNEL in btrfs_alloc_inode")
CC: stable(a)vger.kernel.org # 4.16+
Reviewed-by: Filipe Manana <fdmanana(a)suse.com>
Signed-off-by: Josef Bacik <josef(a)toxicpanda.com>
Reviewed-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a0546401bc0a..0f2754eaa05b 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6305,13 +6305,16 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,
u32 sizes[2];
int nitems = name ? 2 : 1;
unsigned long ptr;
+ unsigned int nofs_flag;
int ret;
path = btrfs_alloc_path();
if (!path)
return ERR_PTR(-ENOMEM);
+ nofs_flag = memalloc_nofs_save();
inode = new_inode(fs_info->sb);
+ memalloc_nofs_restore(nofs_flag);
if (!inode) {
btrfs_free_path(path);
return ERR_PTR(-ENOMEM);
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 4203e968947071586a98b5314fd7ffdea3b4f971 Mon Sep 17 00:00:00 2001
From: Josef Bacik <josef(a)toxicpanda.com>
Date: Mon, 30 Sep 2019 16:27:25 -0400
Subject: [PATCH] btrfs: fix incorrect updating of log root tree
We've historically had reports of being unable to mount file systems
because the tree log root couldn't be read. Usually this is the "parent
transid failure", but could be any of the related errors, including
"fsid mismatch" or "bad tree block", depending on which block got
allocated.
The modification of the individual log root items are serialized on the
per-log root root_mutex. This means that any modification to the
per-subvol log root_item is completely protected.
However we update the root item in the log root tree outside of the log
root tree log_mutex. We do this in order to allow multiple subvolumes
to be updated in each log transaction.
This is problematic however because when we are writing the log root
tree out we update the super block with the _current_ log root node
information. Since these two operations happen independently of each
other, you can end up updating the log root tree in between writing out
the dirty blocks and setting the super block to point at the current
root.
This means we'll point at the new root node that hasn't been written
out, instead of the one we should be pointing at. Thus whatever garbage
or old block we end up pointing at complains when we mount the file
system later and try to replay the log.
Fix this by copying the log's root item into a local root item copy.
Then once we're safely under the log_root_tree->log_mutex we update the
root item in the log_root_tree. This way we do not modify the
log_root_tree while we're committing it, fixing the problem.
CC: stable(a)vger.kernel.org # 4.4+
Reviewed-by: Chris Mason <clm(a)fb.com>
Reviewed-by: Filipe Manana <fdmanana(a)suse.com>
Signed-off-by: Josef Bacik <josef(a)toxicpanda.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 77b6797fcac3..2488eb4b70fc 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -2932,7 +2932,8 @@ static int walk_log_tree(struct btrfs_trans_handle *trans,
* in the tree of log roots
*/
static int update_log_root(struct btrfs_trans_handle *trans,
- struct btrfs_root *log)
+ struct btrfs_root *log,
+ struct btrfs_root_item *root_item)
{
struct btrfs_fs_info *fs_info = log->fs_info;
int ret;
@@ -2940,10 +2941,10 @@ static int update_log_root(struct btrfs_trans_handle *trans,
if (log->log_transid == 1) {
/* insert root item on the first sync */
ret = btrfs_insert_root(trans, fs_info->log_root_tree,
- &log->root_key, &log->root_item);
+ &log->root_key, root_item);
} else {
ret = btrfs_update_root(trans, fs_info->log_root_tree,
- &log->root_key, &log->root_item);
+ &log->root_key, root_item);
}
return ret;
}
@@ -3041,6 +3042,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_root *log = root->log_root;
struct btrfs_root *log_root_tree = fs_info->log_root_tree;
+ struct btrfs_root_item new_root_item;
int log_transid = 0;
struct btrfs_log_ctx root_log_ctx;
struct blk_plug plug;
@@ -3104,17 +3106,25 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
goto out;
}
+ /*
+ * We _must_ update under the root->log_mutex in order to make sure we
+ * have a consistent view of the log root we are trying to commit at
+ * this moment.
+ *
+ * We _must_ copy this into a local copy, because we are not holding the
+ * log_root_tree->log_mutex yet. This is important because when we
+ * commit the log_root_tree we must have a consistent view of the
+ * log_root_tree when we update the super block to point at the
+ * log_root_tree bytenr. If we update the log_root_tree here we'll race
+ * with the commit and possibly point at the new block which we may not
+ * have written out.
+ */
btrfs_set_root_node(&log->root_item, log->node);
+ memcpy(&new_root_item, &log->root_item, sizeof(new_root_item));
root->log_transid++;
log->log_transid = root->log_transid;
root->log_start_pid = 0;
- /*
- * Update or create log root item under the root's log_mutex to prevent
- * races with concurrent log syncs that can lead to failure to update
- * log root item because it was not created yet.
- */
- ret = update_log_root(trans, log);
/*
* IO has been started, blocks of the log tree have WRITTEN flag set
* in their headers. new modifications of the log will be written to
@@ -3135,6 +3145,14 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
mutex_unlock(&log_root_tree->log_mutex);
mutex_lock(&log_root_tree->log_mutex);
+
+ /*
+ * Now we are safe to update the log_root_tree because we're under the
+ * log_mutex, and we're a current writer so we're holding the commit
+ * open until we drop the log_mutex.
+ */
+ ret = update_log_root(trans, log, &new_root_item);
+
if (atomic_dec_and_test(&log_root_tree->log_writers)) {
/* atomic_dec_and_test implies a barrier */
cond_wake_up_nomb(&log_root_tree->log_writer_wait);
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 4203e968947071586a98b5314fd7ffdea3b4f971 Mon Sep 17 00:00:00 2001
From: Josef Bacik <josef(a)toxicpanda.com>
Date: Mon, 30 Sep 2019 16:27:25 -0400
Subject: [PATCH] btrfs: fix incorrect updating of log root tree
We've historically had reports of being unable to mount file systems
because the tree log root couldn't be read. Usually this is the "parent
transid failure", but could be any of the related errors, including
"fsid mismatch" or "bad tree block", depending on which block got
allocated.
The modification of the individual log root items are serialized on the
per-log root root_mutex. This means that any modification to the
per-subvol log root_item is completely protected.
However we update the root item in the log root tree outside of the log
root tree log_mutex. We do this in order to allow multiple subvolumes
to be updated in each log transaction.
This is problematic however because when we are writing the log root
tree out we update the super block with the _current_ log root node
information. Since these two operations happen independently of each
other, you can end up updating the log root tree in between writing out
the dirty blocks and setting the super block to point at the current
root.
This means we'll point at the new root node that hasn't been written
out, instead of the one we should be pointing at. Thus whatever garbage
or old block we end up pointing at complains when we mount the file
system later and try to replay the log.
Fix this by copying the log's root item into a local root item copy.
Then once we're safely under the log_root_tree->log_mutex we update the
root item in the log_root_tree. This way we do not modify the
log_root_tree while we're committing it, fixing the problem.
CC: stable(a)vger.kernel.org # 4.4+
Reviewed-by: Chris Mason <clm(a)fb.com>
Reviewed-by: Filipe Manana <fdmanana(a)suse.com>
Signed-off-by: Josef Bacik <josef(a)toxicpanda.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 77b6797fcac3..2488eb4b70fc 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -2932,7 +2932,8 @@ static int walk_log_tree(struct btrfs_trans_handle *trans,
* in the tree of log roots
*/
static int update_log_root(struct btrfs_trans_handle *trans,
- struct btrfs_root *log)
+ struct btrfs_root *log,
+ struct btrfs_root_item *root_item)
{
struct btrfs_fs_info *fs_info = log->fs_info;
int ret;
@@ -2940,10 +2941,10 @@ static int update_log_root(struct btrfs_trans_handle *trans,
if (log->log_transid == 1) {
/* insert root item on the first sync */
ret = btrfs_insert_root(trans, fs_info->log_root_tree,
- &log->root_key, &log->root_item);
+ &log->root_key, root_item);
} else {
ret = btrfs_update_root(trans, fs_info->log_root_tree,
- &log->root_key, &log->root_item);
+ &log->root_key, root_item);
}
return ret;
}
@@ -3041,6 +3042,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_root *log = root->log_root;
struct btrfs_root *log_root_tree = fs_info->log_root_tree;
+ struct btrfs_root_item new_root_item;
int log_transid = 0;
struct btrfs_log_ctx root_log_ctx;
struct blk_plug plug;
@@ -3104,17 +3106,25 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
goto out;
}
+ /*
+ * We _must_ update under the root->log_mutex in order to make sure we
+ * have a consistent view of the log root we are trying to commit at
+ * this moment.
+ *
+ * We _must_ copy this into a local copy, because we are not holding the
+ * log_root_tree->log_mutex yet. This is important because when we
+ * commit the log_root_tree we must have a consistent view of the
+ * log_root_tree when we update the super block to point at the
+ * log_root_tree bytenr. If we update the log_root_tree here we'll race
+ * with the commit and possibly point at the new block which we may not
+ * have written out.
+ */
btrfs_set_root_node(&log->root_item, log->node);
+ memcpy(&new_root_item, &log->root_item, sizeof(new_root_item));
root->log_transid++;
log->log_transid = root->log_transid;
root->log_start_pid = 0;
- /*
- * Update or create log root item under the root's log_mutex to prevent
- * races with concurrent log syncs that can lead to failure to update
- * log root item because it was not created yet.
- */
- ret = update_log_root(trans, log);
/*
* IO has been started, blocks of the log tree have WRITTEN flag set
* in their headers. new modifications of the log will be written to
@@ -3135,6 +3145,14 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
mutex_unlock(&log_root_tree->log_mutex);
mutex_lock(&log_root_tree->log_mutex);
+
+ /*
+ * Now we are safe to update the log_root_tree because we're under the
+ * log_mutex, and we're a current writer so we're holding the commit
+ * open until we drop the log_mutex.
+ */
+ ret = update_log_root(trans, log, &new_root_item);
+
if (atomic_dec_and_test(&log_root_tree->log_writers)) {
/* atomic_dec_and_test implies a barrier */
cond_wake_up_nomb(&log_root_tree->log_writer_wait);
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From c67d970f0ea8dcc423e112137d34334fa0abb8ec Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Mon, 30 Sep 2019 10:20:25 +0100
Subject: [PATCH] Btrfs: fix memory leak due to concurrent append writes with
fiemap
When we have a buffered write that starts at an offset greater than or
equals to the file's size happening concurrently with a full ranged
fiemap, we can end up leaking an extent state structure.
Suppose we have a file with a size of 1Mb, and before the buffered write
and fiemap are performed, it has a single extent state in its io tree
representing the range from 0 to 1Mb, with the EXTENT_DELALLOC bit set.
The following sequence diagram shows how the memory leak happens if a
fiemap a buffered write, starting at offset 1Mb and with a length of
4Kb, are performed concurrently.
CPU 1 CPU 2
extent_fiemap()
--> it's a full ranged fiemap
range from 0 to LLONG_MAX - 1
(9223372036854775807)
--> locks range in the inode's
io tree
--> after this we have 2 extent
states in the io tree:
--> 1 for range [0, 1Mb[ with
the bits EXTENT_LOCKED and
EXTENT_DELALLOC_BITS set
--> 1 for the range
[1Mb, LLONG_MAX[ with
the EXTENT_LOCKED bit set
--> start buffered write at offset
1Mb with a length of 4Kb
btrfs_file_write_iter()
btrfs_buffered_write()
--> cached_state is NULL
lock_and_cleanup_extent_if_need()
--> returns 0 and does not lock
range because it starts
at current i_size / eof
--> cached_state remains NULL
btrfs_dirty_pages()
btrfs_set_extent_delalloc()
(...)
__set_extent_bit()
--> splits extent state for range
[1Mb, LLONG_MAX[ and now we
have 2 extent states:
--> one for the range
[1Mb, 1Mb + 4Kb[ with
EXTENT_LOCKED set
--> another one for the range
[1Mb + 4Kb, LLONG_MAX[ with
EXTENT_LOCKED set as well
--> sets EXTENT_DELALLOC on the
extent state for the range
[1Mb, 1Mb + 4Kb[
--> caches extent state
[1Mb, 1Mb + 4Kb[ into
@cached_state because it has
the bit EXTENT_LOCKED set
--> btrfs_buffered_write() ends up
with a non-NULL cached_state and
never calls anything to release its
reference on it, resulting in a
memory leak
Fix this by calling free_extent_state() on cached_state if the range was
not locked by lock_and_cleanup_extent_if_need().
The same issue can happen if anything else other than fiemap locks a range
that covers eof and beyond.
This could be triggered, sporadically, by test case generic/561 from the
fstests suite, which makes duperemove run concurrently with fsstress, and
duperemove does plenty of calls to fiemap. When CONFIG_BTRFS_DEBUG is set
the leak is reported in dmesg/syslog when removing the btrfs module with
a message like the following:
[77100.039461] BTRFS: state leak: start 6574080 end 6582271 state 16402 in tree 0 refs 1
Otherwise (CONFIG_BTRFS_DEBUG not set) detectable with kmemleak.
CC: stable(a)vger.kernel.org # 4.16+
Reviewed-by: Josef Bacik <josef(a)toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
Reviewed-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 8fe4eb7e5045..27e5b269e729 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1591,7 +1591,6 @@ static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb,
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
struct btrfs_root *root = BTRFS_I(inode)->root;
struct page **pages = NULL;
- struct extent_state *cached_state = NULL;
struct extent_changeset *data_reserved = NULL;
u64 release_bytes = 0;
u64 lockstart;
@@ -1611,6 +1610,7 @@ static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb,
return -ENOMEM;
while (iov_iter_count(i) > 0) {
+ struct extent_state *cached_state = NULL;
size_t offset = offset_in_page(pos);
size_t sector_offset;
size_t write_bytes = min(iov_iter_count(i),
@@ -1758,9 +1758,20 @@ static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb,
if (copied > 0)
ret = btrfs_dirty_pages(inode, pages, dirty_pages,
pos, copied, &cached_state);
+
+ /*
+ * If we have not locked the extent range, because the range's
+ * start offset is >= i_size, we might still have a non-NULL
+ * cached extent state, acquired while marking the extent range
+ * as delalloc through btrfs_dirty_pages(). Therefore free any
+ * possible cached extent state to avoid a memory leak.
+ */
if (extents_locked)
unlock_extent_cached(&BTRFS_I(inode)->io_tree,
lockstart, lockend, &cached_state);
+ else
+ free_extent_state(cached_state);
+
btrfs_delalloc_release_extents(BTRFS_I(inode), reserve_bytes,
true);
if (ret) {
From: Marco Felsch <m.felsch(a)pengutronix.de>
Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
Currently the gpiolib uses the wrong flags variable for the check. We
need to check the gpiod_flags instead of the of_gpio_flags else we
return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
gpiod's.
Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
Cc: stable(a)vger.kernel.org
Signed-off-by: Marco Felsch <m.felsch(a)pengutronix.de>
[Bartosz: the function was moved to gpiolib-of.c so updated the patch]
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
[Bartosz: backported to v5.3.y]
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
---
drivers/gpio/gpiolib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index d9074191edef..e4203c1eb869 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -4303,7 +4303,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
transitory = flags & OF_GPIO_TRANSITORY;
ret = gpiod_request(desc, label);
- if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
+ if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
return desc;
if (ret)
return ERR_PTR(ret);
--
2.23.0
The patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 1436a78c63495dd94c8d4f84a76d78d5317d481b Mon Sep 17 00:00:00 2001
From: Marco Felsch <m.felsch(a)pengutronix.de>
Date: Tue, 17 Sep 2019 16:56:36 +0200
Subject: [PATCH] iio: light: fix vcnl4000 devicetree hooks
Since commit ebd457d55911 ("iio: light: vcnl4000 add devicetree hooks")
the of_match_table is supported but the data shouldn't be a string.
Instead it shall be one of 'enum vcnl4000_device_ids'. Also the matching
logic for the vcnl4020 was wrong. Since the data retrieve mechanism is
still based on the i2c_device_id no failures did appeared till now.
Fixes: ebd457d55911 ("iio: light: vcnl4000 add devicetree hooks")
Signed-off-by: Marco Felsch <m.felsch(a)pengutronix.de>
Reviewed-by: Angus Ainslie (Purism) angus(a)akkea.ca
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index 51421ac32517..f522cb863e8c 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -398,19 +398,19 @@ static int vcnl4000_probe(struct i2c_client *client,
static const struct of_device_id vcnl_4000_of_match[] = {
{
.compatible = "vishay,vcnl4000",
- .data = "VCNL4000",
+ .data = (void *)VCNL4000,
},
{
.compatible = "vishay,vcnl4010",
- .data = "VCNL4010",
+ .data = (void *)VCNL4010,
},
{
- .compatible = "vishay,vcnl4010",
- .data = "VCNL4020",
+ .compatible = "vishay,vcnl4020",
+ .data = (void *)VCNL4010,
},
{
.compatible = "vishay,vcnl4200",
- .data = "VCNL4200",
+ .data = (void *)VCNL4200,
},
{},
};
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/227878
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the c0708e42c6a2 commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
iio-light-opt3001-fix-mutex-unlock-race.patch
iio-light-add-missing-vcnl4040-of_compatible.patch
iio-accel-adxl372-fix-remove-limitation-for-fifo-samples.patch
iio-accel-adxl372-fix-push-to-buffers-lost-samples.patch
iio-accel-adxl372-perform-a-reset-at-start-up.patch
efivar-ssdt-don-t-iterate-over-efi-vars-if-no-ssdt-override-was-specified.patch
efi-tpm-don-t-access-event-count-when-it-isn-t-mapped.patch
efi-tpm-don-t-traverse-an-event-log-with-no-events.patch
efi-tpm-only-set-efi_tpm_final_log_size-after-successful-event-log-parsing.patch
perf-llvm-don-t-access-out-of-scope-array.patch
perf-inject-jit-fix-jit_code_move-filename.patch
drm-i915-perform-ggtt-restore-much-earlier-during-resume.patch
blk-wbt-fix-performance-regression-in-wbt-scale_up-scale_down.patch
selinux-fix-context-string-corruption-in-convert_context.patch
io_uring-only-flush-workqueues-on-fileset-removal.patch
cifs-gracefully-handle-queryinfo-errors-during-open.patch
cifs-force-revalidate-inode-when-dentry-is-stale.patch
cifs-force-reval-dentry-if-lookup_reval-flag-is-set.patch
cifs-use-cifsinodeinfo-open_file_lock-while-iterating-to-avoid-a-panic.patch
kernel-sysctl.c-do-not-override-max_threads-provided-by-userspace.patch
mm-z3fold.c-claim-page-in-the-beginning-of-free.patch
mm-page_alloc.c-fix-a-crash-in-free_pages_prepare.patch
mm-vmpressure.c-fix-a-signedness-bug-in-vmpressure_register_event.patch
ib-core-fix-wrong-iterating-on-ports.patch
firmware-google-increment-vpd-key_len-properly.patch
gpio-fix-getting-nonexclusive-gpiods-from-dt.patch
gpiolib-don-t-clear-flag_is_out-when-emulating-open-.patch
acpi-pptt-add-support-for-acpi-6.3-thread-flag.patch
arm64-topology-use-pptt-to-determine-if-pe-is-a-thre.patch
iio-light-fix-vcnl4000-devicetree-hooks.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
This series is a backport of the ACPI PPTT 6.3 thread flag feature for
supporting arm64 systems.
The background is that some arm64 implementations are broken, in that they
incorrectly advertise that a CPU is mutli-threaded, when it is not - the
HiSilicon Taishanv110 rev 2, aka tsv110, being an example.
This leads to the system topology being incorrect. The reason being that
arm64 topology code uses a combination of ACPI PPTT (Processor Properties
Topology Table) and the system MPIDR (Multiprocessor Affinity Register) MT
bit to determine the topology.
Until ACPI 6.3, the PPTT did not have any method to determine whether
a CPU was multi-threaded, so only the MT bit is used - hence the
broken topology for some systems.
In ACPI 6.3, a PPTT thread flag was introduced, which - when supported -
would be used by the kernel to determine really if a CPU is multi-threaded
or not, so that we don't get incorrect topology.
RFC originally sent for 4.19: https://lkml.org/lkml/2019/10/10/724
Jeremy Linton (2):
ACPI/PPTT: Add support for ACPI 6.3 thread flag
arm64: topology: Use PPTT to determine if PE is a thread
arch/arm64/kernel/topology.c | 19 ++++++++++---
drivers/acpi/pptt.c | 52 ++++++++++++++++++++++++++++++++++++
include/linux/acpi.h | 5 ++++
3 files changed, 72 insertions(+), 4 deletions(-)
--
2.17.1
Commit c312ef176399 "libata/ahci: Drop PCS quirk for Denverton and
beyond" got the polarity wrong on the check for which board-ids should
have the quirk applied. The board type board_ahci_pcs7 is defined at the
end of the list such that "pcs7" boards can be special cased in the
future if they need the quirk. All prior Intel board ids "<
board_ahci_pcs7" should proceed with applying the quirk.
Reported-by: Andreas Friedrich <afrie(a)gmx.net>
Reported-by: Stephen Douthit <stephend(a)silicom-usa.com>
Fixes: c312ef176399 ("libata/ahci: Drop PCS quirk for Denverton and beyond")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
---
drivers/ata/ahci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index dd92faf197d5..05c2b32dcc4d 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1600,7 +1600,9 @@ static void ahci_intel_pcs_quirk(struct pci_dev *pdev, struct ahci_host_priv *hp
*/
if (!id || id->vendor != PCI_VENDOR_ID_INTEL)
return;
- if (((enum board_ids) id->driver_data) < board_ahci_pcs7)
+
+ /* Skip applying the quirk on Denverton and beyond */
+ if (((enum board_ids) id->driver_data) >= board_ahci_pcs7)
return;
/*
The patch titled
Subject: zram: fix race between backing_dev_show and backing_dev_store
has been added to the -mm tree. Its filename is
zram-fix-race-between-backing_dev_show-and-backing_dev_store.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-fix-race-between-backing_dev_…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-fix-race-between-backing_dev_…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Chenwandun <chenwandun(a)huawei.com>
Subject: zram: fix race between backing_dev_show and backing_dev_store
CPU0: CPU1:
backing_dev_show backing_dev_store
...... ......
file = zram->backing_dev;
down_read(&zram->init_lock); down_read(&zram->init_init_lock)
file_path(file, ...); zram->backing_dev = backing_dev;
up_read(&zram->init_lock); up_read(&zram->init_lock);
gets the value of zram->backing_dev too early in backing_dev_show, which
resultin the value being NULL at the beginning, and not NULL later.
backtrace:
[<ffffff8570e0f3ec>] d_path+0xcc/0x174
[<ffffff8570decd90>] file_path+0x10/0x18
[<ffffff85712f7630>] backing_dev_show+0x40/0xb4
[<ffffff85712c776c>] dev_attr_show+0x20/0x54
[<ffffff8570e835e4>] sysfs_kf_seq_show+0x9c/0x10c
[<ffffff8570e82b98>] kernfs_seq_show+0x28/0x30
[<ffffff8570e1c580>] seq_read+0x184/0x488
[<ffffff8570e81ec4>] kernfs_fop_read+0x5c/0x1a4
[<ffffff8570dee0fc>] __vfs_read+0x44/0x128
[<ffffff8570dee310>] vfs_read+0xa0/0x138
[<ffffff8570dee860>] SyS_read+0x54/0xb4
Link: http://lkml.kernel.org/r/1571046839-16814-1-git-send-email-chenwandun@huawe…
Signed-off-by: Chenwandun <chenwandun(a)huawei.com>
Acked-by: Minchan Kim <minchan(a)kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: Jens Axboe <axboe(a)kernel.dk>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/block/zram/zram_drv.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/block/zram/zram_drv.c~zram-fix-race-between-backing_dev_show-and-backing_dev_store
+++ a/drivers/block/zram/zram_drv.c
@@ -413,13 +413,14 @@ static void reset_bdev(struct zram *zram
static ssize_t backing_dev_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
+ struct file *file;
struct zram *zram = dev_to_zram(dev);
- struct file *file = zram->backing_dev;
char *p;
ssize_t ret;
down_read(&zram->init_lock);
- if (!zram->backing_dev) {
+ file = zram->backing_dev;
+ if (!file) {
memcpy(buf, "none\n", 5);
up_read(&zram->init_lock);
return 5;
_
Patches currently in -mm which might be from chenwandun(a)huawei.com are
zram-fix-race-between-backing_dev_show-and-backing_dev_store.patch
On Mon, Oct 14, 2019 at 05:53:59PM +0800, Chen Wandun wrote:
> From: Chenwandun <chenwandun(a)huawei.com>
>
> CPU0: CPU1:
> backing_dev_show backing_dev_store
> ...... ......
> file = zram->backing_dev;
> down_read(&zram->init_lock); down_read(&zram->init_init_lock)
> file_path(file, ...); zram->backing_dev = backing_dev;
> up_read(&zram->init_lock); up_read(&zram->init_lock);
>
> get the value of zram->backing_dev too early in backing_dev_show,
> that will result the value may be NULL at the begining, and not
> NULL later.
>
> backtrace:
> [<ffffff8570e0f3ec>] d_path+0xcc/0x174
> [<ffffff8570decd90>] file_path+0x10/0x18
> [<ffffff85712f7630>] backing_dev_show+0x40/0xb4
> [<ffffff85712c776c>] dev_attr_show+0x20/0x54
> [<ffffff8570e835e4>] sysfs_kf_seq_show+0x9c/0x10c
> [<ffffff8570e82b98>] kernfs_seq_show+0x28/0x30
> [<ffffff8570e1c580>] seq_read+0x184/0x488
> [<ffffff8570e81ec4>] kernfs_fop_read+0x5c/0x1a4
> [<ffffff8570dee0fc>] __vfs_read+0x44/0x128
> [<ffffff8570dee310>] vfs_read+0xa0/0x138
> [<ffffff8570dee860>] SyS_read+0x54/0xb4
>
> Signed-off-by: Chenwandun <chenwandun(a)huawei.com>
It should be stable material.
Cc: <stable(a)vger.kernel.org> [4.14+]
Acked-by: Minchan Kim <minchan(a)kernel.org>
Thanks!
On Mon, 14 Oct 2019, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v5.3.5, v5.2.20, v4.19.78, v4.14.148, v4.9.196, v4.4.196.
>
> v5.3.5: Build OK!
> v5.2.20: Build OK!
> v4.19.78: Build OK!
> v4.14.148: Build OK!
> v4.9.196: Build OK!
> v4.4.196: Failed to apply! Possible dependencies:
> Unable to calculate
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
As far as I'm concerned, it's probably not worth the effort of
backporting this to 4.4.y.
Alan Stern
The patch titled
Subject: ocfs2: fix panic due to ocfs2_wq is null
has been added to the -mm tree. Its filename is
ocfs2-fix-panic-due-to-ocfs2_wq-is-null.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/ocfs2-fix-panic-due-to-ocfs2_wq-is…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/ocfs2-fix-panic-due-to-ocfs2_wq-is…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Yi Li <yilikernel(a)gmail.com>
Subject: ocfs2: fix panic due to ocfs2_wq is null
mount.ocfs2 failed when reading ocfs2 filesystem superblock encounters an
error. ocfs2_initialize_super() returns before allocating ocfs2_wq.
ocfs2_dismount_volume() triggers the following panic.
Oct 15 16:09:27 cnwarekv-205120 kernel: On-disk corruption
discovered.Please run fsck.ocfs2 once the filesystem is unmounted.
Oct 15 16:09:27 cnwarekv-205120 kernel: (mount.ocfs2,22804,44):
ocfs2_read_locked_inode:537 ERROR: status = -30
Oct 15 16:09:27 cnwarekv-205120 kernel: (mount.ocfs2,22804,44):
ocfs2_init_global_system_inodes:458 ERROR: status = -30
Oct 15 16:09:27 cnwarekv-205120 kernel: (mount.ocfs2,22804,44):
ocfs2_init_global_system_inodes:491 ERROR: status = -30
Oct 15 16:09:27 cnwarekv-205120 kernel: (mount.ocfs2,22804,44):
ocfs2_initialize_super:2313 ERROR: status = -30
Oct 15 16:09:27 cnwarekv-205120 kernel: (mount.ocfs2,22804,44):
ocfs2_fill_super:1033 ERROR: status = -30
------------[ cut here ]------------
Oops: 0002 [#1] SMP NOPTI
Modules linked in: ocfs2 rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs fscache
lockd grace ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager
ocfs2_stackglue configfs sunrpc ipt_REJECT nf_reject_ipv4
nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT
nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack
ip6table_filter ip6_tables ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad
rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ipv6 ovmapi ppdev
parport_pc parport fb_sys_fops sysimgblt sysfillrect syscopyarea
acpi_cpufreq pcspkr i2c_piix4 i2c_core sg ext4 jbd2 mbcache2 sr_mod cdrom
CPU: 1 PID: 11753 Comm: mount.ocfs2 Tainted: G E
4.14.148-200.ckv.x86_64 #1
Hardware name: Sugon H320-G30/35N16-US, BIOS 0SSDX017 12/21/2018
task: ffff967af0520000 task.stack: ffffa5f05484000
RIP: 0010:mutex_lock+0x19/0x20
Call Trace:
flush_workqueue+0x81/0x460
ocfs2_shutdown_local_alloc+0x47/0x440 [ocfs2]
ocfs2_dismount_volume+0x84/0x400 [ocfs2]
ocfs2_fill_super+0xa4/0x1270 [ocfs2]
? ocfs2_initialize_super.isa.211+0xf20/0xf20 [ocfs2]
mount_bdev+0x17f/0x1c0
mount_fs+0x3a/0x160
Link: http://lkml.kernel.org/r/1571139611-24107-1-git-send-email-yili@winhong.com
Signed-off-by: Yi Li <yilikernel(a)gmail.com>
Reviewed-by: Joseph Qi <joseph.qi(a)linux.alibaba.com>
Cc: Mark Fasheh <mark(a)fasheh.com>
Cc: Joel Becker <jlbec(a)evilplan.org>
Cc: Junxiao Bi <junxiao.bi(a)oracle.com>
Cc: Changwei Ge <gechangwei(a)live.cn>
Cc: Gang He <ghe(a)suse.com>
Cc: Jun Piao <piaojun(a)huawei.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
fs/ocfs2/journal.c | 3 ++-
fs/ocfs2/localalloc.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
--- a/fs/ocfs2/journal.c~ocfs2-fix-panic-due-to-ocfs2_wq-is-null
+++ a/fs/ocfs2/journal.c
@@ -217,7 +217,8 @@ void ocfs2_recovery_exit(struct ocfs2_su
/* At this point, we know that no more recovery threads can be
* launched, so wait for any recovery completion work to
* complete. */
- flush_workqueue(osb->ocfs2_wq);
+ if (osb->ocfs2_wq)
+ flush_workqueue(osb->ocfs2_wq);
/*
* Now that recovery is shut down, and the osb is about to be
--- a/fs/ocfs2/localalloc.c~ocfs2-fix-panic-due-to-ocfs2_wq-is-null
+++ a/fs/ocfs2/localalloc.c
@@ -377,7 +377,8 @@ void ocfs2_shutdown_local_alloc(struct o
struct ocfs2_dinode *alloc = NULL;
cancel_delayed_work(&osb->la_enable_wq);
- flush_workqueue(osb->ocfs2_wq);
+ if (osb->ocfs2_wq)
+ flush_workqueue(osb->ocfs2_wq);
if (osb->local_alloc_state == OCFS2_LA_UNUSED)
goto out;
_
Patches currently in -mm which might be from yilikernel(a)gmail.com are
ocfs2-fix-panic-due-to-ocfs2_wq-is-null.patch
The patch titled
Subject: hugetlbfs: don't access uninitialized memmaps in pfn_range_valid_gigantic()
has been added to the -mm tree. Its filename is
hugetlbfs-dont-access-uninitialized-memmaps-in-pfn_range_valid_gigantic.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/hugetlbfs-dont-access-uninitialize…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/hugetlbfs-dont-access-uninitialize…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: David Hildenbrand <david(a)redhat.com>
Subject: hugetlbfs: don't access uninitialized memmaps in pfn_range_valid_gigantic()
Uninitialized memmaps contain garbage and in the worst case trigger kernel
BUGs, especially with CONFIG_PAGE_POISONING. They should not get touched.
Let's make sure that we only consider online memory (managed by the buddy)
that has initialized memmaps. ZONE_DEVICE is not applicable.
page_zone() will call page_to_nid(), which will trigger
VM_BUG_ON_PGFLAGS(PagePoisoned(page), page) with CONFIG_PAGE_POISONING and
CONFIG_DEBUG_VM_PGFLAGS when called on uninitialized memmaps. This can be
the case when an offline memory block (e.g., never onlined) is spanned by
a zone.
Note: As explained by Michal in [1], alloc_contig_range() will verify the
range. So it boils down to the wrong access in this function.
[1] http://lkml.kernel.org/r/20180423000943.GO17484@dhcp22.suse.cz
Link: http://lkml.kernel.org/r/20191015120717.4858-1-david@redhat.com
Fixes: f1dd2cd13c4b ("mm, memory_hotplug: do not associate hotadded memory to zones until online") [visible after d0dc12e86b319]
Signed-off-by: David Hildenbrand <david(a)redhat.com>
Reported-by: Michal Hocko <mhocko(a)kernel.org>
Acked-by: Michal Hocko <mhocko(a)suse.com>
Cc: Anshuman Khandual <anshuman.khandual(a)arm.com>
Cc: Mike Kravetz <mike.kravetz(a)oracle.com>
Cc: <stable(a)vger.kernel.org> [4.13+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/hugetlb.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/mm/hugetlb.c~hugetlbfs-dont-access-uninitialized-memmaps-in-pfn_range_valid_gigantic
+++ a/mm/hugetlb.c
@@ -1084,11 +1084,10 @@ static bool pfn_range_valid_gigantic(str
struct page *page;
for (i = start_pfn; i < end_pfn; i++) {
- if (!pfn_valid(i))
+ page = pfn_to_online_page(i);
+ if (!page)
return false;
- page = pfn_to_page(i);
-
if (page_zone(page) != z)
return false;
_
Patches currently in -mm which might be from david(a)redhat.com are
drivers-base-memoryc-dont-access-uninitialized-memmaps-in-soft_offline_page_store.patch
mm-dont-access-uninitialized-memmaps-in-fs-proc-pagec.patch
mm-memory-failurec-dont-access-uninitialized-memmaps-in-memory_failure.patch
mm-memory_hotplug-dont-access-uninitialized-memmaps-in-shrink_pgdat_span.patch
hugetlbfs-dont-access-uninitialized-memmaps-in-pfn_range_valid_gigantic.patch
mm-memory_hotplug-export-generic_online_page.patch
hv_balloon-use-generic_online_page.patch
mm-memory_hotplug-remove-__online_page_free-and-__online_page_increment_counters.patch
mm-memory_hotplug-dont-access-uninitialized-memmaps-in-shrink_zone_span.patch
mm-memory_hotplug-shrink-zones-when-offlining-memory.patch
mm-memory_hotplug-poison-memmap-in-remove_pfn_range_from_zone.patch
mm-memory_hotplug-we-always-have-a-zone-in-find_smallestbiggest_section_pfn.patch
mm-memory_hotplug-dont-check-for-all-holes-in-shrink_zone_span.patch
mm-memory_hotplug-drop-local-variables-in-shrink_zone_span.patch
mm-memory_hotplug-cleanup-__remove_pages.patch
Uninitialized memmaps contain garbage and in the worst case trigger
kernel BUGs, especially with CONFIG_PAGE_POISONING. They should not get
touched.
Let's make sure that we only consider online memory (managed by the
buddy) that has initialized memmaps. ZONE_DEVICE is not applicable.
page_zone() will call page_to_nid(), which will trigger
VM_BUG_ON_PGFLAGS(PagePoisoned(page), page) with CONFIG_PAGE_POISONING
and CONFIG_DEBUG_VM_PGFLAGS when called on uninitialized memmaps. This
can be the case when an offline memory block (e.g., never onlined) is
spanned by a zone.
Note: As explained by Michal in [1], alloc_contig_range() will verify
the range. So it boils down to the wrong access in this function.
[1] http://lkml.kernel.org/r/20180423000943.GO17484@dhcp22.suse.cz
Reported-by: Michal Hocko <mhocko(a)kernel.org>
Fixes: f1dd2cd13c4b ("mm, memory_hotplug: do not associate hotadded memory to zones until online") # visible after d0dc12e86b319
Cc: stable(a)vger.kernel.org # v4.13+
Cc: Anshuman Khandual <anshuman.khandual(a)arm.com>
Cc: Mike Kravetz <mike.kravetz(a)oracle.com>
Cc: Andrew Morton <akpm(a)linux-foundation.org>
Cc: Michal Hocko <mhocko(a)kernel.org>
Signed-off-by: David Hildenbrand <david(a)redhat.com>
---
mm/hugetlb.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index ef37c85423a5..b45a95363a84 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1084,11 +1084,10 @@ static bool pfn_range_valid_gigantic(struct zone *z,
struct page *page;
for (i = start_pfn; i < end_pfn; i++) {
- if (!pfn_valid(i))
+ page = pfn_to_online_page(i);
+ if (!page)
return false;
- page = pfn_to_page(i);
-
if (page_zone(page) != z)
return false;
--
2.21.0
This is a note to let you know that I've just added the patch titled
USB: usblp: fix use-after-free on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 7a759197974894213621aa65f0571b51904733d6 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Tue, 15 Oct 2019 19:55:22 +0200
Subject: USB: usblp: fix use-after-free on disconnect
A recent commit addressing a runtime PM use-count regression, introduced
a use-after-free by not making sure we held a reference to the struct
usb_interface for the lifetime of the driver data.
Fixes: 9a31535859bf ("USB: usblp: fix runtime PM after driver unbind")
Cc: stable <stable(a)vger.kernel.org>
Reported-by: syzbot+cd24df4d075c319ebfc5(a)syzkaller.appspotmail.com
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191015175522.18490-1-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/class/usblp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index fb8bd60c83f4..0d8e3f3804a3 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -445,6 +445,7 @@ static void usblp_cleanup(struct usblp *usblp)
kfree(usblp->readbuf);
kfree(usblp->device_id_string);
kfree(usblp->statusbuf);
+ usb_put_intf(usblp->intf);
kfree(usblp);
}
@@ -1113,7 +1114,7 @@ static int usblp_probe(struct usb_interface *intf,
init_waitqueue_head(&usblp->wwait);
init_usb_anchor(&usblp->urbs);
usblp->ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
- usblp->intf = intf;
+ usblp->intf = usb_get_intf(intf);
/* Malloc device ID string buffer to the largest expected length,
* since we can re-query it on an ioctl and a dynamic string
@@ -1198,6 +1199,7 @@ static int usblp_probe(struct usb_interface *intf,
kfree(usblp->readbuf);
kfree(usblp->statusbuf);
kfree(usblp->device_id_string);
+ usb_put_intf(usblp->intf);
kfree(usblp);
abort_ret:
return retval;
--
2.23.0
The patch titled
Subject: mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
has been removed from the -mm tree. Its filename was
mm-memory-failure-poison-read-receives-sigkill-instead-of-sigbus-if-mmaped-more-than-once.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Jane Chu <jane.chu(a)oracle.com>
Subject: mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
Mmap /dev/dax more than once, then read the poison location using address
from one of the mappings. The other mappings due to not having the page
mapped in will cause SIGKILLs delivered to the process. SIGKILL succeeds
over SIGBUS, so user process loses the opportunity to handle the UE.
Although one may add MAP_POPULATE to mmap(2) to work around the issue,
MAP_POPULATE makes mapping 128GB of pmem several magnitudes slower, so
isn't always an option.
Details -
ndctl inject-error --block=10 --count=1 namespace6.0
./read_poison -x dax6.0 -o 5120 -m 2
mmaped address 0x7f5bb6600000
mmaped address 0x7f3cf3600000
doing local read at address 0x7f3cf3601400
Killed
Console messages in instrumented kernel -
mce: Uncorrected hardware memory error in user-access at edbe201400
Memory failure: tk->addr = 7f5bb6601000
Memory failure: address edbe201: call dev_pagemap_mapping_shift
dev_pagemap_mapping_shift: page edbe201: no PUD
Memory failure: tk->size_shift == 0
Memory failure: Unable to find user space address edbe201 in read_poison
Memory failure: tk->addr = 7f3cf3601000
Memory failure: address edbe201: call dev_pagemap_mapping_shift
Memory failure: tk->size_shift = 21
Memory failure: 0xedbe201: forcibly killing read_poison:22434 because of failure to unmap corrupted page
=> to deliver SIGKILL
Memory failure: 0xedbe201: Killing read_poison:22434 due to hardware memory corruption
=> to deliver SIGBUS
Link: http://lkml.kernel.org/r/1565112345-28754-3-git-send-email-jane.chu@oracle.…
Signed-off-by: Jane Chu <jane.chu(a)oracle.com>
Suggested-by: Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
Reviewed-by: Dan Williams <dan.j.williams(a)intel.com>
Acked-by: Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
Cc: Michal Hocko <mhocko(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/memory-failure.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
--- a/mm/memory-failure.c~mm-memory-failure-poison-read-receives-sigkill-instead-of-sigbus-if-mmaped-more-than-once
+++ a/mm/memory-failure.c
@@ -199,7 +199,6 @@ struct to_kill {
struct task_struct *tsk;
unsigned long addr;
short size_shift;
- char addr_valid;
};
/*
@@ -324,22 +323,27 @@ static void add_to_kill(struct task_stru
}
}
tk->addr = page_address_in_vma(p, vma);
- tk->addr_valid = 1;
if (is_zone_device_page(p))
tk->size_shift = dev_pagemap_mapping_shift(p, vma);
else
tk->size_shift = compound_order(compound_head(p)) + PAGE_SHIFT;
/*
- * In theory we don't have to kill when the page was
- * munmaped. But it could be also a mremap. Since that's
- * likely very rare kill anyways just out of paranoia, but use
- * a SIGKILL because the error is not contained anymore.
+ * Send SIGKILL if "tk->addr == -EFAULT". Also, as
+ * "tk->size_shift" is always non-zero for !is_zone_device_page(),
+ * so "tk->size_shift == 0" effectively checks no mapping on
+ * ZONE_DEVICE. Indeed, when a devdax page is mmapped N times
+ * to a process' address space, it's possible not all N VMAs
+ * contain mappings for the page, but at least one VMA does.
+ * Only deliver SIGBUS with payload derived from the VMA that
+ * has a mapping for the page.
*/
- if (tk->addr == -EFAULT || tk->size_shift == 0) {
+ if (tk->addr == -EFAULT) {
pr_info("Memory failure: Unable to find user space address %lx in %s\n",
page_to_pfn(p), tsk->comm);
- tk->addr_valid = 0;
+ } else if (tk->size_shift == 0) {
+ kfree(tk);
+ return;
}
get_task_struct(tsk);
tk->tsk = tsk;
@@ -366,7 +370,7 @@ static void kill_procs(struct list_head
* make sure the process doesn't catch the
* signal and then access the memory. Just kill it.
*/
- if (fail || tk->addr_valid == 0) {
+ if (fail || tk->addr == -EFAULT) {
pr_err("Memory failure: %#lx: forcibly killing %s:%d because of failure to unmap corrupted page\n",
pfn, tk->tsk->comm, tk->tsk->pid);
do_send_sig_info(SIGKILL, SEND_SIG_PRIV,
_
Patches currently in -mm which might be from jane.chu(a)oracle.com are
mm-memory-failurec-clean-up-around-tk-pre-allocation.patch
The patch titled
Subject: mm, compaction: fix wrong pfn handling in __reset_isolation_pfn()
has been removed from the -mm tree. Its filename was
mm-compaction-fix-wrong-pfn-handling-in-__reset_isolation_pfn.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Vlastimil Babka <vbabka(a)suse.cz>
Subject: mm, compaction: fix wrong pfn handling in __reset_isolation_pfn()
Florian and Dave reported [1] a NULL pointer dereference in
__reset_isolation_pfn(). While the exact cause is unclear, staring at the
code revealed two bugs, which might be related.
One bug is that if zone starts in the middle of pageblock, block_page
might correspond to different pfn than block_pfn, and then the
pfn_valid_within() checks will check different pfn's than those accessed
via struct page. This might result in acessing an unitialized page in
CONFIG_HOLES_IN_ZONE configs.
The other bug is that end_page refers to the first page of next pageblock
and not last page of current pageblock. The online and valid check is
then wrong and with sections, the while (page < end_page) loop might
wander off actual struct page arrays.
[1] https://lore.kernel.org/linux-xfs/87o8z1fvqu.fsf@mid.deneb.enyo.de/
Link: http://lkml.kernel.org/r/20191008152915.24704-1-vbabka@suse.cz
Fixes: 6b0868c820ff ("mm/compaction.c: correct zone boundary handling when resetting pageblock skip hints")
Signed-off-by: Vlastimil Babka <vbabka(a)suse.cz>
Reported-by: Florian Weimer <fw(a)deneb.enyo.de>
Reported-by: Dave Chinner <david(a)fromorbit.com>
Acked-by: Mel Gorman <mgorman(a)techsingularity.net>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/compaction.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/mm/compaction.c~mm-compaction-fix-wrong-pfn-handling-in-__reset_isolation_pfn
+++ a/mm/compaction.c
@@ -270,14 +270,15 @@ __reset_isolation_pfn(struct zone *zone,
/* Ensure the start of the pageblock or zone is online and valid */
block_pfn = pageblock_start_pfn(pfn);
- block_page = pfn_to_online_page(max(block_pfn, zone->zone_start_pfn));
+ block_pfn = max(block_pfn, zone->zone_start_pfn);
+ block_page = pfn_to_online_page(block_pfn);
if (block_page) {
page = block_page;
pfn = block_pfn;
}
/* Ensure the end of the pageblock or zone is online and valid */
- block_pfn += pageblock_nr_pages;
+ block_pfn = pageblock_end_pfn(pfn) - 1;
block_pfn = min(block_pfn, zone_end_pfn(zone) - 1);
end_page = pfn_to_online_page(block_pfn);
if (!end_page)
@@ -303,7 +304,7 @@ __reset_isolation_pfn(struct zone *zone,
page += (1 << PAGE_ALLOC_COSTLY_ORDER);
pfn += (1 << PAGE_ALLOC_COSTLY_ORDER);
- } while (page < end_page);
+ } while (page <= end_page);
return false;
}
_
Patches currently in -mm which might be from vbabka(a)suse.cz are
The patch titled
Subject: mm/slub: fix a deadlock in show_slab_objects()
has been removed from the -mm tree. Its filename was
mm-slub-fix-a-deadlock-in-show_slab_objects.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Qian Cai <cai(a)lca.pw>
Subject: mm/slub: fix a deadlock in show_slab_objects()
A long time ago we fixed a similar deadlock in show_slab_objects() [1].
However, it is apparently due to the commits like 01fb58bcba63 ("slab:
remove synchronous synchronize_sched() from memcg cache deactivation
path") and 03afc0e25f7f ("slab: get_online_mems for
kmem_cache_{create,destroy,shrink}"), this kind of deadlock is back by
just reading files in /sys/kernel/slab which will generate a lockdep splat
below.
Since the "mem_hotplug_lock" here is only to obtain a stable online node
mask while racing with NUMA node hotplug, in the worst case, the results
may me miscalculated while doing NUMA node hotplug, but they shall be
corrected by later reads of the same files.
WARNING: possible circular locking dependency detected
------------------------------------------------------
cat/5224 is trying to acquire lock:
ffff900012ac3120 (mem_hotplug_lock.rw_sem){++++}, at:
show_slab_objects+0x94/0x3a8
but task is already holding lock:
b8ff009693eee398 (kn->count#45){++++}, at: kernfs_seq_start+0x44/0xf0
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (kn->count#45){++++}:
lock_acquire+0x31c/0x360
__kernfs_remove+0x290/0x490
kernfs_remove+0x30/0x44
sysfs_remove_dir+0x70/0x88
kobject_del+0x50/0xb0
sysfs_slab_unlink+0x2c/0x38
shutdown_cache+0xa0/0xf0
kmemcg_cache_shutdown_fn+0x1c/0x34
kmemcg_workfn+0x44/0x64
process_one_work+0x4f4/0x950
worker_thread+0x390/0x4bc
kthread+0x1cc/0x1e8
ret_from_fork+0x10/0x18
-> #1 (slab_mutex){+.+.}:
lock_acquire+0x31c/0x360
__mutex_lock_common+0x16c/0xf78
mutex_lock_nested+0x40/0x50
memcg_create_kmem_cache+0x38/0x16c
memcg_kmem_cache_create_func+0x3c/0x70
process_one_work+0x4f4/0x950
worker_thread+0x390/0x4bc
kthread+0x1cc/0x1e8
ret_from_fork+0x10/0x18
-> #0 (mem_hotplug_lock.rw_sem){++++}:
validate_chain+0xd10/0x2bcc
__lock_acquire+0x7f4/0xb8c
lock_acquire+0x31c/0x360
get_online_mems+0x54/0x150
show_slab_objects+0x94/0x3a8
total_objects_show+0x28/0x34
slab_attr_show+0x38/0x54
sysfs_kf_seq_show+0x198/0x2d4
kernfs_seq_show+0xa4/0xcc
seq_read+0x30c/0x8a8
kernfs_fop_read+0xa8/0x314
__vfs_read+0x88/0x20c
vfs_read+0xd8/0x10c
ksys_read+0xb0/0x120
__arm64_sys_read+0x54/0x88
el0_svc_handler+0x170/0x240
el0_svc+0x8/0xc
other info that might help us debug this:
Chain exists of:
mem_hotplug_lock.rw_sem --> slab_mutex --> kn->count#45
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(kn->count#45);
lock(slab_mutex);
lock(kn->count#45);
lock(mem_hotplug_lock.rw_sem);
*** DEADLOCK ***
3 locks held by cat/5224:
#0: 9eff00095b14b2a0 (&p->lock){+.+.}, at: seq_read+0x4c/0x8a8
#1: 0eff008997041480 (&of->mutex){+.+.}, at: kernfs_seq_start+0x34/0xf0
#2: b8ff009693eee398 (kn->count#45){++++}, at:
kernfs_seq_start+0x44/0xf0
stack backtrace:
Call trace:
dump_backtrace+0x0/0x248
show_stack+0x20/0x2c
dump_stack+0xd0/0x140
print_circular_bug+0x368/0x380
check_noncircular+0x248/0x250
validate_chain+0xd10/0x2bcc
__lock_acquire+0x7f4/0xb8c
lock_acquire+0x31c/0x360
get_online_mems+0x54/0x150
show_slab_objects+0x94/0x3a8
total_objects_show+0x28/0x34
slab_attr_show+0x38/0x54
sysfs_kf_seq_show+0x198/0x2d4
kernfs_seq_show+0xa4/0xcc
seq_read+0x30c/0x8a8
kernfs_fop_read+0xa8/0x314
__vfs_read+0x88/0x20c
vfs_read+0xd8/0x10c
ksys_read+0xb0/0x120
__arm64_sys_read+0x54/0x88
el0_svc_handler+0x170/0x240
el0_svc+0x8/0xc
I think it is important to mention that this doesn't expose the
show_slab_objects to use-after-free. There is only a single path that
might really race here and that is the slab hotplug notifier callback
__kmem_cache_shrink (via slab_mem_going_offline_callback) but that path
doesn't really destroy kmem_cache_node data structures.
[1] http://lkml.iu.edu/hypermail/linux/kernel/1101.0/02850.html
[akpm(a)linux-foundation.org: add comment explaining why we don't need mem_hotplug_lock]
Link: http://lkml.kernel.org/r/1570192309-10132-1-git-send-email-cai@lca.pw
Fixes: 01fb58bcba63 ("slab: remove synchronous synchronize_sched() from memcg cache deactivation path")
Fixes: 03afc0e25f7f ("slab: get_online_mems for kmem_cache_{create,destroy,shrink}")
Signed-off-by: Qian Cai <cai(a)lca.pw>
Acked-by: Michal Hocko <mhocko(a)suse.com>
Cc: Christoph Lameter <cl(a)linux.com>
Cc: Pekka Enberg <penberg(a)kernel.org>
Cc: David Rientjes <rientjes(a)google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim(a)lge.com>
Cc: Tejun Heo <tj(a)kernel.org>
Cc: Vladimir Davydov <vdavydov.dev(a)gmail.com>
Cc: Roman Gushchin <guro(a)fb.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/slub.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
--- a/mm/slub.c~mm-slub-fix-a-deadlock-in-show_slab_objects
+++ a/mm/slub.c
@@ -4846,7 +4846,17 @@ static ssize_t show_slab_objects(struct
}
}
- get_online_mems();
+ /*
+ * It is impossible to take "mem_hotplug_lock" here with "kernfs_mutex"
+ * already held which will conflict with an existing lock order:
+ *
+ * mem_hotplug_lock->slab_mutex->kernfs_mutex
+ *
+ * We don't really need mem_hotplug_lock (to hold off
+ * slab_mem_going_offline_callback) here because slab's memory hot
+ * unplug code doesn't destroy the kmem_cache->node[] data.
+ */
+
#ifdef CONFIG_SLUB_DEBUG
if (flags & SO_ALL) {
struct kmem_cache_node *n;
@@ -4887,7 +4897,6 @@ static ssize_t show_slab_objects(struct
x += sprintf(buf + x, " N%d=%lu",
node, nodes[node]);
#endif
- put_online_mems();
kfree(nodes);
return x + sprintf(buf + x, "\n");
}
_
Patches currently in -mm which might be from cai(a)lca.pw are
mm-page_owner-dont-access-uninitialized-memmaps-when-reading-proc-pagetypeinfo.patch
z3fold-add-inter-page-compaction-fix.patch
hugetlb-remove-unused-hstate-in-hugetlb_fault_mutex_hash-fix-fix.patch
This is a note to let you know that I've just added the patch titled
USB: ldusb: fix memleak on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From b14a39048c1156cfee76228bf449852da2f14df8 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Thu, 10 Oct 2019 14:58:34 +0200
Subject: USB: ldusb: fix memleak on disconnect
If disconnect() races with release() after a process has been
interrupted, release() could end up returning early and the driver would
fail to free its driver data.
Fixes: 2824bd250f0b ("[PATCH] USB: add ldusb driver")
Cc: stable <stable(a)vger.kernel.org> # 2.6.13
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191010125835.27031-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/ldusb.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index f3108d85e768..147c90c2a4e5 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -380,10 +380,7 @@ static int ld_usb_release(struct inode *inode, struct file *file)
goto exit;
}
- if (mutex_lock_interruptible(&dev->mutex)) {
- retval = -ERESTARTSYS;
- goto exit;
- }
+ mutex_lock(&dev->mutex);
if (dev->open_count != 1) {
retval = -ENODEV;
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: legousbtower: fix memleak on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From b6c03e5f7b463efcafd1ce141bd5a8fc4e583ae2 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Thu, 10 Oct 2019 14:58:35 +0200
Subject: USB: legousbtower: fix memleak on disconnect
If disconnect() races with release() after a process has been
interrupted, release() could end up returning early and the driver would
fail to free its driver data.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191010125835.27031-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/legousbtower.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
index 9d4c52a7ebe0..62dab2441ec4 100644
--- a/drivers/usb/misc/legousbtower.c
+++ b/drivers/usb/misc/legousbtower.c
@@ -419,10 +419,7 @@ static int tower_release (struct inode *inode, struct file *file)
goto exit;
}
- if (mutex_lock_interruptible(&dev->lock)) {
- retval = -ERESTARTSYS;
- goto exit;
- }
+ mutex_lock(&dev->lock);
if (dev->open_count != 1) {
dev_dbg(&dev->udev->dev, "%s: device not opened exactly once\n",
--
2.23.0
A recent commit addressing a runtime PM use-count regression, introduced
a use-after-free by not making sure we held a reference to the struct
usb_interface for the lifetime of the driver data.
Fixes: 9a31535859bf ("USB: usblp: fix runtime PM after driver unbind")
Cc: stable <stable(a)vger.kernel.org>
Reported-by: syzbot+cd24df4d075c319ebfc5(a)syzkaller.appspotmail.com
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/class/usblp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index fb8bd60c83f4..0d8e3f3804a3 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -445,6 +445,7 @@ static void usblp_cleanup(struct usblp *usblp)
kfree(usblp->readbuf);
kfree(usblp->device_id_string);
kfree(usblp->statusbuf);
+ usb_put_intf(usblp->intf);
kfree(usblp);
}
@@ -1113,7 +1114,7 @@ static int usblp_probe(struct usb_interface *intf,
init_waitqueue_head(&usblp->wwait);
init_usb_anchor(&usblp->urbs);
usblp->ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
- usblp->intf = intf;
+ usblp->intf = usb_get_intf(intf);
/* Malloc device ID string buffer to the largest expected length,
* since we can re-query it on an ioctl and a dynamic string
@@ -1198,6 +1199,7 @@ static int usblp_probe(struct usb_interface *intf,
kfree(usblp->readbuf);
kfree(usblp->statusbuf);
kfree(usblp->device_id_string);
+ usb_put_intf(usblp->intf);
kfree(usblp);
abort_ret:
return retval;
--
2.23.0
While the static key is correctly initialized as being disabled, it will
remain forever enabled once turned on. This means that if we start with an
asymmetric system and hotplug out enough CPUs to end up with an SMP system,
the static key will remain set - which is obviously wrong. We should detect
this and turn off things like misfit migration and capacity aware wakeups.
As Quentin pointed out, having separate root domains makes this slightly
trickier. We could have exclusive cpusets that create an SMP island - IOW,
the domains within this root domain will not see any asymmetry. This means
we need to count how many asymmetric root domains we have.
Change the simple key enablement to an increment, and decrement the key
counter when destroying domains that cover asymmetric CPUs.
Cc: <stable(a)vger.kernel.org>
Fixes: df054e8445a4 ("sched/topology: Add static_key for asymmetric CPU capacity optimizations")
Signed-off-by: Valentin Schneider <valentin.schneider(a)arm.com>
---
Changes since v1:
Use static_branch_{inc,dec} rather than enable/disable
---
kernel/sched/topology.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index b5667a273bf6..79944e969bcf 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -2026,7 +2026,7 @@ build_sched_domains(const struct cpumask *cpu_map, struct sched_domain_attr *att
rcu_read_unlock();
if (has_asym)
- static_branch_enable_cpuslocked(&sched_asym_cpucapacity);
+ static_branch_inc_cpuslocked(&sched_asym_cpucapacity);
if (rq && sched_debug_enabled) {
pr_info("root domain span: %*pbl (max cpu_capacity = %lu)\n",
@@ -2124,8 +2124,17 @@ static void detach_destroy_domains(const struct cpumask *cpu_map)
int i;
rcu_read_lock();
+
+ if (static_key_enabled(&sched_asym_cpucapacity)) {
+ unsigned int cpu = cpumask_any(cpu_map);
+
+ if (rcu_dereference(per_cpu(sd_asym_cpucapacity, cpu)))
+ static_branch_dec_cpuslocked(&sched_asym_cpucapacity);
+ }
+
for_each_cpu(i, cpu_map)
cpu_attach_domain(NULL, &def_root_domain, i);
+
rcu_read_unlock();
}
--
2.22.0
While the static key is correctly initialized as being disabled, it will
remain forever enabled once turned on. This means that if we start with an
asymmetric system and hotplug out enough CPUs to end up with an SMP system,
the static key will remain set - which is obviously wrong. We should detect
this and turn off things like misfit migration and EAS wakeups.
Having that key enabled should also mandate
per_cpu(sd_asym_cpucapacity, cpu) != NULL
for all CPUs, but this is obviously not true with the above.
On top of that, sched domain rebuilds first lead to attaching the NULL
domain to the affected CPUs, which means there will be a window where the
static key is set but the sd_asym_cpucapacity shortcut points to NULL even
if asymmetry hasn't been hotplugged out.
Disable the static key when destroying domains, and let
build_sched_domains() (re) enable it as needed.
Cc: <stable(a)vger.kernel.org>
Fixes: df054e8445a4 ("sched/topology: Add static_key for asymmetric CPU capacity optimizations")
Signed-off-by: Valentin Schneider <valentin.schneider(a)arm.com>
---
kernel/sched/topology.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index b5667a273bf6..c49ae57a0611 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -2123,7 +2123,8 @@ static void detach_destroy_domains(const struct cpumask *cpu_map)
{
int i;
+ static_branch_disable_cpuslocked(&sched_asym_cpucapacity);
+
rcu_read_lock();
for_each_cpu(i, cpu_map)
cpu_attach_domain(NULL, &def_root_domain, i);
--
2.22.0
The device cannot be probed on !ACPI and gives this warning:
drivers/soundwire/slave.c:16:12: warning: ‘sdw_slave_add’ defined but
not used [-Wunused-function]
static int sdw_slave_add(struct sdw_bus *bus,
^~~~~~~~~~~~~
Cc: stable(a)vger.kernel.org
Fixes: 7c3cd189b86d ("soundwire: Add Master registration")
Signed-off-by: Michal Suchanek <msuchanek(a)suse.de>
---
drivers/soundwire/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soundwire/Kconfig b/drivers/soundwire/Kconfig
index f518273cfbe3..c73bfbaa2659 100644
--- a/drivers/soundwire/Kconfig
+++ b/drivers/soundwire/Kconfig
@@ -5,6 +5,7 @@
menuconfig SOUNDWIRE
tristate "SoundWire support"
+ depends on ACPI
help
SoundWire is a 2-Pin interface with data and clock line ratified
by the MIPI Alliance. SoundWire is used for transporting data
--
2.23.0
stable-rc/linux-5.3.y build: 208 builds: 178 failed, 30 passed, 1068 errors, 164 warnings (v5.3.6-84-g973b124921fc)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-5.3.y/kernel/v5.3.6-84-g9…
Tree: stable-rc
Branch: linux-5.3.y
Git Describe: v5.3.6-84-g973b124921fc
Git Commit: 973b124921fc639825ae455aa91ed9ce15167584
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 7 unique architectures
Build Failures Detected:
arc:
axs103_defconfig: (gcc-8) FAIL
axs103_smp_defconfig: (gcc-8) FAIL
haps_hs_defconfig: (gcc-8) FAIL
haps_hs_smp_defconfig: (gcc-8) FAIL
hsdk_defconfig: (gcc-8) FAIL
nsim_hs_defconfig: (gcc-8) FAIL
nsim_hs_smp_defconfig: (gcc-8) FAIL
nsimosci_hs_defconfig: (gcc-8) FAIL
nsimosci_hs_smp_defconfig: (gcc-8) FAIL
vdk_hs38_defconfig: (gcc-8) FAIL
vdk_hs38_smp_defconfig: (gcc-8) FAIL
arm64:
defconfig: (gcc-8) FAIL
arm:
acs5k_defconfig: (gcc-8) FAIL
acs5k_tiny_defconfig: (gcc-8) FAIL
am200epdkit_defconfig: (gcc-8) FAIL
aspeed_g4_defconfig: (gcc-8) FAIL
aspeed_g5_defconfig: (gcc-8) FAIL
assabet_defconfig: (gcc-8) FAIL
at91_dt_defconfig: (gcc-8) FAIL
axm55xx_defconfig: (gcc-8) FAIL
badge4_defconfig: (gcc-8) FAIL
bcm2835_defconfig: (gcc-8) FAIL
cerfcube_defconfig: (gcc-8) FAIL
clps711x_defconfig: (gcc-8) FAIL
cm_x2xx_defconfig: (gcc-8) FAIL
cm_x300_defconfig: (gcc-8) FAIL
colibri_pxa270_defconfig: (gcc-8) FAIL
colibri_pxa300_defconfig: (gcc-8) FAIL
collie_defconfig: (gcc-8) FAIL
corgi_defconfig: (gcc-8) FAIL
davinci_all_defconfig: (gcc-8) FAIL
dove_defconfig: (gcc-8) FAIL
ebsa110_defconfig: (gcc-8) FAIL
efm32_defconfig: (gcc-8) FAIL
em_x270_defconfig: (gcc-8) FAIL
ep93xx_defconfig: (gcc-8) FAIL
eseries_pxa_defconfig: (gcc-8) FAIL
exynos_defconfig: (gcc-8) FAIL
ezx_defconfig: (gcc-8) FAIL
footbridge_defconfig: (gcc-8) FAIL
gemini_defconfig: (gcc-8) FAIL
h3600_defconfig: (gcc-8) FAIL
h5000_defconfig: (gcc-8) FAIL
hackkit_defconfig: (gcc-8) FAIL
hisi_defconfig: (gcc-8) FAIL
imote2_defconfig: (gcc-8) FAIL
imx_v4_v5_defconfig: (gcc-8) FAIL
imx_v6_v7_defconfig: (gcc-8) FAIL
integrator_defconfig: (gcc-8) FAIL
iop13xx_defconfig: (gcc-8) FAIL
iop32x_defconfig: (gcc-8) FAIL
iop33x_defconfig: (gcc-8) FAIL
ixp4xx_defconfig: (gcc-8) FAIL
jornada720_defconfig: (gcc-8) FAIL
keystone_defconfig: (gcc-8) FAIL
ks8695_defconfig: (gcc-8) FAIL
lart_defconfig: (gcc-8) FAIL
lpc18xx_defconfig: (gcc-8) FAIL
lpc32xx_defconfig: (gcc-8) FAIL
lpd270_defconfig: (gcc-8) FAIL
lubbock_defconfig: (gcc-8) FAIL
magician_defconfig: (gcc-8) FAIL
mainstone_defconfig: (gcc-8) FAIL
mini2440_defconfig: (gcc-8) FAIL
mmp2_defconfig: (gcc-8) FAIL
moxart_defconfig: (gcc-8) FAIL
mps2_defconfig: (gcc-8) FAIL
multi_v5_defconfig: (gcc-8) FAIL
multi_v7_defconfig: (gcc-8) FAIL
mv78xx0_defconfig: (gcc-8) FAIL
mvebu_v5_defconfig: (gcc-8) FAIL
mvebu_v7_defconfig: (gcc-8) FAIL
mxs_defconfig: (gcc-8) FAIL
neponset_defconfig: (gcc-8) FAIL
netwinder_defconfig: (gcc-8) FAIL
nhk8815_defconfig: (gcc-8) FAIL
omap1_defconfig: (gcc-8) FAIL
omap2plus_defconfig: (gcc-8) FAIL
orion5x_defconfig: (gcc-8) FAIL
oxnas_v6_defconfig: (gcc-8) FAIL
palmz72_defconfig: (gcc-8) FAIL
pcm027_defconfig: (gcc-8) FAIL
pleb_defconfig: (gcc-8) FAIL
pxa168_defconfig: (gcc-8) FAIL
pxa255-idp_defconfig: (gcc-8) FAIL
pxa3xx_defconfig: (gcc-8) FAIL
pxa910_defconfig: (gcc-8) FAIL
pxa_defconfig: (gcc-8) FAIL
qcom_defconfig: (gcc-8) FAIL
realview_defconfig: (gcc-8) FAIL
rpc_defconfig: (gcc-8) FAIL
s3c2410_defconfig: (gcc-8) FAIL
s5pv210_defconfig: (gcc-8) FAIL
sama5_defconfig: (gcc-8) FAIL
shannon_defconfig: (gcc-8) FAIL
shmobile_defconfig: (gcc-8) FAIL
simpad_defconfig: (gcc-8) FAIL
socfpga_defconfig: (gcc-8) FAIL
spear13xx_defconfig: (gcc-8) FAIL
spitz_defconfig: (gcc-8) FAIL
sunxi_defconfig: (gcc-8) FAIL
tango4_defconfig: (gcc-8) FAIL
tct_hammer_defconfig: (gcc-8) FAIL
tegra_defconfig: (gcc-8) FAIL
trizeps4_defconfig: (gcc-8) FAIL
u8500_defconfig: (gcc-8) FAIL
versatile_defconfig: (gcc-8) FAIL
vexpress_defconfig: (gcc-8) FAIL
viper_defconfig: (gcc-8) FAIL
vt8500_v6_v7_defconfig: (gcc-8) FAIL
xcep_defconfig: (gcc-8) FAIL
zeus_defconfig: (gcc-8) FAIL
i386:
i386_defconfig: (gcc-8) FAIL
mips:
32r2el_defconfig: (gcc-8) FAIL
ar7_defconfig: (gcc-8) FAIL
ath25_defconfig: (gcc-8) FAIL
ath79_defconfig: (gcc-8) FAIL
bcm47xx_defconfig: (gcc-8) FAIL
bcm63xx_defconfig: (gcc-8) FAIL
bigsur_defconfig: (gcc-8) FAIL
bmips_be_defconfig: (gcc-8) FAIL
bmips_stb_defconfig: (gcc-8) FAIL
capcella_defconfig: (gcc-8) FAIL
cavium_octeon_defconfig: (gcc-8) FAIL
ci20_defconfig: (gcc-8) FAIL
cobalt_defconfig: (gcc-8) FAIL
db1xxx_defconfig: (gcc-8) FAIL
decstation_64_defconfig: (gcc-8) FAIL
decstation_defconfig: (gcc-8) FAIL
decstation_r4k_defconfig: (gcc-8) FAIL
fuloong2e_defconfig: (gcc-8) FAIL
gcw0_defconfig: (gcc-8) FAIL
gpr_defconfig: (gcc-8) FAIL
ip22_defconfig: (gcc-8) FAIL
ip27_defconfig: (gcc-8) FAIL
ip28_defconfig: (gcc-8) FAIL
ip32_defconfig: (gcc-8) FAIL
jazz_defconfig: (gcc-8) FAIL
jmr3927_defconfig: (gcc-8) FAIL
lasat_defconfig: (gcc-8) FAIL
lemote2f_defconfig: (gcc-8) FAIL
loongson1b_defconfig: (gcc-8) FAIL
loongson1c_defconfig: (gcc-8) FAIL
loongson3_defconfig: (gcc-8) FAIL
malta_defconfig: (gcc-8) FAIL
malta_kvm_defconfig: (gcc-8) FAIL
malta_kvm_guest_defconfig: (gcc-8) FAIL
malta_qemu_32r6_defconfig: (gcc-8) FAIL
maltaaprp_defconfig: (gcc-8) FAIL
maltasmvp_defconfig: (gcc-8) FAIL
maltasmvp_eva_defconfig: (gcc-8) FAIL
maltaup_defconfig: (gcc-8) FAIL
maltaup_xpa_defconfig: (gcc-8) FAIL
markeins_defconfig: (gcc-8) FAIL
mips_paravirt_defconfig: (gcc-8) FAIL
mpc30x_defconfig: (gcc-8) FAIL
msp71xx_defconfig: (gcc-8) FAIL
mtx1_defconfig: (gcc-8) FAIL
nlm_xlp_defconfig: (gcc-8) FAIL
nlm_xlr_defconfig: (gcc-8) FAIL
omega2p_defconfig: (gcc-8) FAIL
pistachio_defconfig: (gcc-8) FAIL
pnx8335_stb225_defconfig: (gcc-8) FAIL
qi_lb60_defconfig: (gcc-8) FAIL
rb532_defconfig: (gcc-8) FAIL
rbtx49xx_defconfig: (gcc-8) FAIL
rm200_defconfig: (gcc-8) FAIL
rt305x_defconfig: (gcc-8) FAIL
sb1250_swarm_defconfig: (gcc-8) FAIL
tb0219_defconfig: (gcc-8) FAIL
tb0226_defconfig: (gcc-8) FAIL
tb0287_defconfig: (gcc-8) FAIL
vocore2_defconfig: (gcc-8) FAIL
workpad_defconfig: (gcc-8) FAIL
xway_defconfig: (gcc-8) FAIL
riscv:
defconfig: (gcc-8) FAIL
rv32_defconfig: (gcc-8) FAIL
x86_64:
x86_64_defconfig: (gcc-8) FAIL
Errors and Warnings Detected:
arc:
allnoconfig (gcc-8): 1 warning
axs103_defconfig (gcc-8): 6 errors, 1 warning
axs103_smp_defconfig (gcc-8): 6 errors, 1 warning
haps_hs_defconfig (gcc-8): 6 errors, 1 warning
haps_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
hsdk_defconfig (gcc-8): 6 errors, 1 warning
nsim_hs_defconfig (gcc-8): 6 errors, 1 warning
nsim_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
nsimosci_hs_defconfig (gcc-8): 6 errors, 1 warning
nsimosci_hs_smp_defconfig (gcc-8): 6 errors, 1 warning
tinyconfig (gcc-8): 1 warning
vdk_hs38_defconfig (gcc-8): 6 errors, 1 warning
vdk_hs38_smp_defconfig (gcc-8): 6 errors, 1 warning
arm64:
defconfig (gcc-8): 6 errors, 3 warnings
arm:
acs5k_defconfig (gcc-8): 6 errors
acs5k_tiny_defconfig (gcc-8): 6 errors
am200epdkit_defconfig (gcc-8): 6 errors
aspeed_g4_defconfig (gcc-8): 6 errors
aspeed_g5_defconfig (gcc-8): 6 errors
assabet_defconfig (gcc-8): 6 errors
at91_dt_defconfig (gcc-8): 6 errors, 4 warnings
axm55xx_defconfig (gcc-8): 6 errors
badge4_defconfig (gcc-8): 6 errors
bcm2835_defconfig (gcc-8): 6 errors
cerfcube_defconfig (gcc-8): 6 errors
clps711x_defconfig (gcc-8): 6 errors
cm_x2xx_defconfig (gcc-8): 6 errors
cm_x300_defconfig (gcc-8): 6 errors
colibri_pxa270_defconfig (gcc-8): 6 errors
colibri_pxa300_defconfig (gcc-8): 6 errors
collie_defconfig (gcc-8): 6 errors
corgi_defconfig (gcc-8): 6 errors
davinci_all_defconfig (gcc-8): 6 errors
dove_defconfig (gcc-8): 6 errors
ebsa110_defconfig (gcc-8): 6 errors
efm32_defconfig (gcc-8): 6 errors
em_x270_defconfig (gcc-8): 6 errors
ep93xx_defconfig (gcc-8): 6 errors
eseries_pxa_defconfig (gcc-8): 6 errors
exynos_defconfig (gcc-8): 6 errors, 1 warning
ezx_defconfig (gcc-8): 6 errors
footbridge_defconfig (gcc-8): 6 errors
gemini_defconfig (gcc-8): 6 errors
h3600_defconfig (gcc-8): 6 errors
h5000_defconfig (gcc-8): 6 errors
hackkit_defconfig (gcc-8): 6 errors
hisi_defconfig (gcc-8): 6 errors
imote2_defconfig (gcc-8): 6 errors
imx_v4_v5_defconfig (gcc-8): 6 errors, 1 warning
imx_v6_v7_defconfig (gcc-8): 6 errors
integrator_defconfig (gcc-8): 6 errors
iop13xx_defconfig (gcc-8): 6 errors
iop32x_defconfig (gcc-8): 6 errors
iop33x_defconfig (gcc-8): 6 errors
ixp4xx_defconfig (gcc-8): 6 errors
jornada720_defconfig (gcc-8): 6 errors
keystone_defconfig (gcc-8): 6 errors
ks8695_defconfig (gcc-8): 6 errors
lart_defconfig (gcc-8): 6 errors
lpc18xx_defconfig (gcc-8): 6 errors
lpc32xx_defconfig (gcc-8): 6 errors
lpd270_defconfig (gcc-8): 6 errors
lubbock_defconfig (gcc-8): 6 errors
magician_defconfig (gcc-8): 6 errors
mainstone_defconfig (gcc-8): 6 errors
mini2440_defconfig (gcc-8): 6 errors, 2 warnings
mmp2_defconfig (gcc-8): 6 errors
moxart_defconfig (gcc-8): 6 errors
mps2_defconfig (gcc-8): 6 errors
multi_v5_defconfig (gcc-8): 6 errors, 3 warnings
multi_v7_defconfig (gcc-8): 6 errors, 16 warnings
mv78xx0_defconfig (gcc-8): 6 errors
mvebu_v5_defconfig (gcc-8): 6 errors
mvebu_v7_defconfig (gcc-8): 6 errors
mxs_defconfig (gcc-8): 6 errors
neponset_defconfig (gcc-8): 6 errors
netwinder_defconfig (gcc-8): 6 errors
nhk8815_defconfig (gcc-8): 6 errors
omap1_defconfig (gcc-8): 6 errors
omap2plus_defconfig (gcc-8): 6 errors, 1 warning
orion5x_defconfig (gcc-8): 6 errors
oxnas_v6_defconfig (gcc-8): 6 errors
palmz72_defconfig (gcc-8): 6 errors
pcm027_defconfig (gcc-8): 6 errors
pleb_defconfig (gcc-8): 6 errors
pxa168_defconfig (gcc-8): 6 errors
pxa255-idp_defconfig (gcc-8): 6 errors
pxa3xx_defconfig (gcc-8): 6 errors
pxa910_defconfig (gcc-8): 6 errors
pxa_defconfig (gcc-8): 6 errors
qcom_defconfig (gcc-8): 6 errors, 2 warnings
realview_defconfig (gcc-8): 6 errors
rpc_defconfig (gcc-8): 6 errors
s3c2410_defconfig (gcc-8): 6 errors
s3c6400_defconfig (gcc-8): 1 warning
s5pv210_defconfig (gcc-8): 6 errors, 1 warning
sama5_defconfig (gcc-8): 6 errors, 4 warnings
shannon_defconfig (gcc-8): 6 errors
shmobile_defconfig (gcc-8): 6 errors, 2 warnings
simpad_defconfig (gcc-8): 6 errors
socfpga_defconfig (gcc-8): 6 errors
spear13xx_defconfig (gcc-8): 6 errors
spitz_defconfig (gcc-8): 6 errors
sunxi_defconfig (gcc-8): 6 errors
tango4_defconfig (gcc-8): 6 errors
tct_hammer_defconfig (gcc-8): 6 errors, 2 warnings
tegra_defconfig (gcc-8): 6 errors
trizeps4_defconfig (gcc-8): 6 errors
u8500_defconfig (gcc-8): 6 errors, 6 warnings
versatile_defconfig (gcc-8): 6 errors
vexpress_defconfig (gcc-8): 6 errors
viper_defconfig (gcc-8): 6 errors
vt8500_v6_v7_defconfig (gcc-8): 6 errors
xcep_defconfig (gcc-8): 6 errors
zeus_defconfig (gcc-8): 6 errors
i386:
i386_defconfig (gcc-8): 6 errors
mips:
32r2el_defconfig (gcc-8): 6 errors, 1 warning
allnoconfig (gcc-8): 1 warning
ar7_defconfig (gcc-8): 6 errors, 1 warning
ath25_defconfig (gcc-8): 6 errors, 1 warning
ath79_defconfig (gcc-8): 6 errors, 1 warning
bcm47xx_defconfig (gcc-8): 6 errors, 1 warning
bcm63xx_defconfig (gcc-8): 6 errors, 1 warning
bigsur_defconfig (gcc-8): 6 errors, 3 warnings
bmips_be_defconfig (gcc-8): 6 errors, 1 warning
bmips_stb_defconfig (gcc-8): 6 errors, 1 warning
capcella_defconfig (gcc-8): 6 errors, 1 warning
cavium_octeon_defconfig (gcc-8): 6 errors, 3 warnings
ci20_defconfig (gcc-8): 6 errors, 2 warnings
cobalt_defconfig (gcc-8): 6 errors, 1 warning
db1xxx_defconfig (gcc-8): 6 errors, 2 warnings
decstation_64_defconfig (gcc-8): 6 errors, 3 warnings
decstation_defconfig (gcc-8): 6 errors, 1 warning
decstation_r4k_defconfig (gcc-8): 6 errors, 1 warning
e55_defconfig (gcc-8): 2 warnings
fuloong2e_defconfig (gcc-8): 6 errors, 3 warnings
gcw0_defconfig (gcc-8): 6 errors, 1 warning
gpr_defconfig (gcc-8): 6 errors, 1 warning
ip22_defconfig (gcc-8): 6 errors, 2 warnings
ip27_defconfig (gcc-8): 6 errors, 3 warnings
ip28_defconfig (gcc-8): 6 errors, 4 warnings
ip32_defconfig (gcc-8): 6 errors, 3 warnings
jazz_defconfig (gcc-8): 6 errors, 1 warning
jmr3927_defconfig (gcc-8): 6 errors, 1 warning
lasat_defconfig (gcc-8): 6 errors, 1 warning
lemote2f_defconfig (gcc-8): 6 errors, 3 warnings
loongson1b_defconfig (gcc-8): 6 errors, 1 warning
loongson1c_defconfig (gcc-8): 6 errors, 1 warning
loongson3_defconfig (gcc-8): 6 errors, 3 warnings
malta_defconfig (gcc-8): 6 errors, 1 warning
malta_kvm_defconfig (gcc-8): 6 errors, 1 warning
malta_kvm_guest_defconfig (gcc-8): 6 errors, 1 warning
malta_qemu_32r6_defconfig (gcc-8): 6 errors, 2 warnings
maltaaprp_defconfig (gcc-8): 6 errors, 1 warning
maltasmvp_defconfig (gcc-8): 6 errors, 1 warning
maltasmvp_eva_defconfig (gcc-8): 6 errors, 1 warning
maltaup_defconfig (gcc-8): 6 errors, 1 warning
maltaup_xpa_defconfig (gcc-8): 6 errors, 1 warning
markeins_defconfig (gcc-8): 6 errors, 1 warning
mips_paravirt_defconfig (gcc-8): 6 errors, 3 warnings
mpc30x_defconfig (gcc-8): 6 errors, 1 warning
msp71xx_defconfig (gcc-8): 6 errors, 1 warning
mtx1_defconfig (gcc-8): 6 errors, 1 warning
nlm_xlp_defconfig (gcc-8): 6 errors, 3 warnings
nlm_xlr_defconfig (gcc-8): 6 errors, 1 warning
omega2p_defconfig (gcc-8): 6 errors, 1 warning
pic32mzda_defconfig (gcc-8): 2 warnings
pistachio_defconfig (gcc-8): 6 errors, 1 warning
pnx8335_stb225_defconfig (gcc-8): 6 errors, 1 warning
qi_lb60_defconfig (gcc-8): 6 errors, 3 warnings
rb532_defconfig (gcc-8): 6 errors, 1 warning
rbtx49xx_defconfig (gcc-8): 6 errors, 1 warning
rm200_defconfig (gcc-8): 6 errors, 1 warning
rt305x_defconfig (gcc-8): 6 errors, 1 warning
sb1250_swarm_defconfig (gcc-8): 6 errors, 2 warnings
tb0219_defconfig (gcc-8): 6 errors, 1 warning
tb0226_defconfig (gcc-8): 6 errors, 1 warning
tb0287_defconfig (gcc-8): 6 errors, 1 warning
tinyconfig (gcc-8): 1 warning
vocore2_defconfig (gcc-8): 6 errors, 1 warning
workpad_defconfig (gcc-8): 6 errors, 1 warning
xway_defconfig (gcc-8): 6 errors, 1 warning
riscv:
defconfig (gcc-8): 6 errors
rv32_defconfig (gcc-8): 6 errors, 3 warnings
x86_64:
tinyconfig (gcc-8): 1 warning
x86_64_defconfig (gcc-8): 6 errors
Errors summary:
178 include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
178 include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
178 include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
178 include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
178 fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
178 fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
Warnings summary:
105 <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
4 drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
4 drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
4 drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
4 drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
3 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
3 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
2 drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
2 drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 {standard input}:131: Warning: macro instruction expanded into multiple instructions
1 drivers/video/fbdev/jz4740_fb.c:300:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 drivers/mtd/nand/raw/au1550nd.c:443:57: warning: pointer type mismatch in conditional expression
1 drivers/cpufreq/ti-cpufreq.c:79:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
1 <stdin>:830:2: warning: #warning syscall fstat64 not implemented [-Wcpp]
1 <stdin>:1127:2: warning: #warning syscall fstatat64 not implemented [-Wcpp]
1 .config:1168:warning: override: UNWINDER_GUESS changes choice state
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
32r2el_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
acs5k_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
allnoconfig (arc, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
allnoconfig (arm64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (mips, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
allnoconfig (riscv, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (i386, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (x86_64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ar7_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
aspeed_g4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
aspeed_g5_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
assabet_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
at91_dt_defconfig (arm, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ath25_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ath79_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
axm55xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
axs103_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
axs103_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
badge4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
bcm2835_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bigsur_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bmips_be_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
bmips_stb_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
capcella_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
cerfcube_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ci20_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
--------------------------------------------------------------------------------
clps711x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cm_x300_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cobalt_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
collie_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
corgi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
davinci_all_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
db1xxx_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/mtd/nand/raw/au1550nd.c:443:57: warning: pointer type mismatch in conditional expression
--------------------------------------------------------------------------------
decstation_64_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
decstation_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
decstation_r4k_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
defconfig (riscv, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
defconfig (arm64, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
dove_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
e55_defconfig (mips, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ebsa110_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
efm32_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
em_x270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ep93xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
exynos_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ezx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
footbridge_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
gcw0_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
gemini_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
gpr_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
h3600_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
h5000_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
hackkit_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
haps_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
haps_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
hisi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
hsdk_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
i386_defconfig (i386, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
imote2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
integrator_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop13xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop32x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
iop33x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ip22_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ip27_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ip28_defconfig (mips, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/scsi/wd33c93.c:1856:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
ip32_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
jazz_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
jmr3927_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
jornada720_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
keystone_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
ks8695_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lart_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lasat_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
lemote2f_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson1b_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson1c_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
loongson3_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
lpc18xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lpd270_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
lubbock_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
magician_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mainstone_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
malta_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
malta_qemu_32r6_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
{standard input}:131: Warning: macro instruction expanded into multiple instructions
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltaup_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
maltaup_xpa_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
markeins_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
milbeaut_m10v_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mini2440_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mmp2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
moxart_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mpc30x_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mps2_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
msp71xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
mtx1_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
multi_v4t_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 16 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/dma/imx-dma.c:542:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/pinctrl-rockchip.c:2783:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
mxs_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
neponset_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
netwinder_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
nhk8815_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsim_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsim_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsimosci_hs_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nsimosci_hs_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
nuc910_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc950_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc960_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omap1_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
omap2plus_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/cpufreq/ti-cpufreq.c:79:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
omega2p_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
orion5x_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
oxnas_v6_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
palmz72_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pcm027_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pic32mzda_defconfig (mips, gcc-8) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
pistachio_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
pleb_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
prima2_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa168_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa910_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
pxa_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
qcom_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:815:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c:820:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
drivers/video/fbdev/jz4740_fb.c:300:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/watchdog/jz4740_wdt.c:165:6: warning: unused variable 'ret' [-Wunused-variable]
--------------------------------------------------------------------------------
rb532_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
realview_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
rm200_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rpc_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
rt305x_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
rv32_defconfig (riscv, gcc-8) — FAIL, 6 errors, 3 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:830:2: warning: #warning syscall fstat64 not implemented [-Wcpp]
<stdin>:1127:2: warning: #warning syscall fstatat64 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
s3c2410_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
s3c6400_defconfig (arm, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/sdhci-s3c.c:613:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
sama5_defconfig (arm, gcc-8) — FAIL, 6 errors, 4 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/mmc/host/atmel-mci.c:2415:30: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2422:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/mmc/host/atmel-mci.c:2426:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/atmel_usba_udc.c:329:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
shannon_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
shmobile_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/video/fbdev/sh_mobile_lcdcfb.c:2086:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/video/fbdev/sh_mobile_lcdcfb.c:1596:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
simpad_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
socfpga_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
spear13xx_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
spear3xx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear6xx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spitz_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
stm32_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sunxi_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tango4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tb0219_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tb0226_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tb0287_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm, gcc-8) — FAIL, 6 errors, 2 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/gadget/udc/s3c2410_udc.c:314:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/gadget/udc/s3c2410_udc.c:418:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
tegra_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
tinyconfig (i386, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arm64, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (x86_64, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
.config:1168:warning: override: UNWINDER_GUESS changes choice state
--------------------------------------------------------------------------------
tinyconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (mips, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
tinyconfig (riscv, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc, gcc-8) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
trizeps4_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
u300_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
u8500_defconfig (arm, gcc-8) — FAIL, 6 errors, 6 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
drivers/usb/phy/phy-ab8500-usb.c:424:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:440:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:459:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:332:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:352:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/usb/phy/phy-ab8500-usb.c:370:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
--------------------------------------------------------------------------------
vdk_hs38_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
vdk_hs38_smp_defconfig (arc, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
versatile_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vexpress_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vf610m4_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
viper_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
vocore2_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
workpad_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
xcep_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
xway_defconfig (mips, gcc-8) — FAIL, 6 errors, 1 warning, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
Warnings:
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
--------------------------------------------------------------------------------
zeus_defconfig (arm, gcc-8) — FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
include/linux/kernel.h:47:52: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/kernel.h:47:52: error: dereferencing pointer to incomplete type 'struct workqueue_struct'
include/linux/compiler.h:357:67: error: invalid use of undefined type 'struct workqueue_struct'
include/linux/build_bug.h:16:45: error: bit-field '<anonymous>' width not an integer constant
fs/io_uring.c:2571:18: error: invalid use of undefined type 'struct workqueue_struct'
fs/io_uring.c:2572:31: error: invalid use of undefined type 'struct workqueue_struct'
--------------------------------------------------------------------------------
zx_defconfig (arm, gcc-8) — PASS, 0 errors, 0 warnings, 0 section mismatches
---
For more info write to <info(a)kernelci.org>
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: e211288b72f15259da86eed6eca680758dbe9e74
Gitweb: https://git.kernel.org/tip/e211288b72f15259da86eed6eca680758dbe9e74
Author: Roman Kagan <rkagan(a)virtuozzo.com>
AuthorDate: Thu, 10 Oct 2019 12:33:05
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Tue, 15 Oct 2019 10:57:09 +02:00
x86/hyperv: Make vapic support x2apic mode
Now that there's Hyper-V IOMMU driver, Linux can switch to x2apic mode
when supported by the vcpus.
However, the apic access functions for Hyper-V enlightened apic assume
xapic mode only.
As a result, Linux fails to bring up secondary cpus when run as a guest
in QEMU/KVM with both hv_apic and x2apic enabled.
According to Michael Kelley, when in x2apic mode, the Hyper-V synthetic
apic MSRs behave exactly the same as the corresponding architectural
x2apic MSRs, so there's no need to override the apic accessors. The
only exception is hv_apic_eoi_write, which benefits from lazy EOI when
available; however, its implementation works for both xapic and x2apic
modes.
Fixes: 29217a474683 ("iommu/hyper-v: Add Hyper-V stub IOMMU driver")
Fixes: 6b48cb5f8347 ("X86/Hyper-V: Enlighten APIC access")
Suggested-by: Michael Kelley <mikelley(a)microsoft.com>
Signed-off-by: Roman Kagan <rkagan(a)virtuozzo.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Reviewed-by: Vitaly Kuznetsov <vkuznets(a)redhat.com>
Reviewed-by: Michael Kelley <mikelley(a)microsoft.com>
Cc: stable(a)vger.kernel.org
Link: https://lkml.kernel.org/r/20191010123258.16919-1-rkagan@virtuozzo.com
---
arch/x86/hyperv/hv_apic.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index 5c056b8..e01078e 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -260,11 +260,21 @@ void __init hv_apic_init(void)
}
if (ms_hyperv.hints & HV_X64_APIC_ACCESS_RECOMMENDED) {
- pr_info("Hyper-V: Using MSR based APIC access\n");
+ pr_info("Hyper-V: Using enlightened APIC (%s mode)",
+ x2apic_enabled() ? "x2apic" : "xapic");
+ /*
+ * With x2apic, architectural x2apic MSRs are equivalent to the
+ * respective synthetic MSRs, so there's no need to override
+ * the apic accessors. The only exception is
+ * hv_apic_eoi_write, because it benefits from lazy EOI when
+ * available, but it works for both xapic and x2apic modes.
+ */
apic_set_eoi_write(hv_apic_eoi_write);
- apic->read = hv_apic_read;
- apic->write = hv_apic_write;
- apic->icr_write = hv_apic_icr_write;
- apic->icr_read = hv_apic_icr_read;
+ if (!x2apic_enabled()) {
+ apic->read = hv_apic_read;
+ apic->write = hv_apic_write;
+ apic->icr_write = hv_apic_icr_write;
+ apic->icr_read = hv_apic_icr_read;
+ }
}
}
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 7a22e03b0c02988e91003c505b34d752a51de344
Gitweb: https://git.kernel.org/tip/7a22e03b0c02988e91003c505b34d752a51de344
Author: Sean Christopherson <sean.j.christopherson(a)intel.com>
AuthorDate: Tue, 01 Oct 2019 13:50:19 -07:00
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Tue, 15 Oct 2019 10:57:09 +02:00
x86/apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
Check that the per-cpu cluster mask pointer has been set prior to
clearing a dying cpu's bit. The per-cpu pointer is not set until the
target cpu reaches smp_callin() during CPUHP_BRINGUP_CPU, whereas the
teardown function, x2apic_dead_cpu(), is associated with the earlier
CPUHP_X2APIC_PREPARE. If an error occurs before the cpu is awakened,
e.g. if do_boot_cpu() itself fails, x2apic_dead_cpu() will dereference
the NULL pointer and cause a panic.
smpboot: do_boot_cpu failed(-22) to wakeup CPU#1
BUG: kernel NULL pointer dereference, address: 0000000000000008
RIP: 0010:x2apic_dead_cpu+0x1a/0x30
Call Trace:
cpuhp_invoke_callback+0x9a/0x580
_cpu_up+0x10d/0x140
do_cpu_up+0x69/0xb0
smp_init+0x63/0xa9
kernel_init_freeable+0xd7/0x229
? rest_init+0xa0/0xa0
kernel_init+0xa/0x100
ret_from_fork+0x35/0x40
Fixes: 023a611748fd5 ("x86/apic/x2apic: Simplify cluster management")
Signed-off-by: Sean Christopherson <sean.j.christopherson(a)intel.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lkml.kernel.org/r/20191001205019.5789-1-sean.j.christopherson@intel…
---
arch/x86/kernel/apic/x2apic_cluster.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 45e92cb..b0889c4 100644
--- a/arch/x86/kernel/apic/x2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -156,7 +156,8 @@ static int x2apic_dead_cpu(unsigned int dead_cpu)
{
struct cluster_mask *cmsk = per_cpu(cluster_masks, dead_cpu);
- cpumask_clear_cpu(dead_cpu, &cmsk->mask);
+ if (cmsk)
+ cpumask_clear_cpu(dead_cpu, &cmsk->mask);
free_cpumask_var(per_cpu(ipi_mask, dead_cpu));
return 0;
}
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: e211288b72f15259da86eed6eca680758dbe9e74
Gitweb: https://git.kernel.org/tip/e211288b72f15259da86eed6eca680758dbe9e74
Author: Roman Kagan <rkagan(a)virtuozzo.com>
AuthorDate: Thu, 10 Oct 2019 12:33:05
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Tue, 15 Oct 2019 10:57:09 +02:00
x86/hyperv: Make vapic support x2apic mode
Now that there's Hyper-V IOMMU driver, Linux can switch to x2apic mode
when supported by the vcpus.
However, the apic access functions for Hyper-V enlightened apic assume
xapic mode only.
As a result, Linux fails to bring up secondary cpus when run as a guest
in QEMU/KVM with both hv_apic and x2apic enabled.
According to Michael Kelley, when in x2apic mode, the Hyper-V synthetic
apic MSRs behave exactly the same as the corresponding architectural
x2apic MSRs, so there's no need to override the apic accessors. The
only exception is hv_apic_eoi_write, which benefits from lazy EOI when
available; however, its implementation works for both xapic and x2apic
modes.
Fixes: 29217a474683 ("iommu/hyper-v: Add Hyper-V stub IOMMU driver")
Fixes: 6b48cb5f8347 ("X86/Hyper-V: Enlighten APIC access")
Suggested-by: Michael Kelley <mikelley(a)microsoft.com>
Signed-off-by: Roman Kagan <rkagan(a)virtuozzo.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Reviewed-by: Vitaly Kuznetsov <vkuznets(a)redhat.com>
Reviewed-by: Michael Kelley <mikelley(a)microsoft.com>
Cc: stable(a)vger.kernel.org
Link: https://lkml.kernel.org/r/20191010123258.16919-1-rkagan@virtuozzo.com
---
arch/x86/hyperv/hv_apic.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index 5c056b8..e01078e 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -260,11 +260,21 @@ void __init hv_apic_init(void)
}
if (ms_hyperv.hints & HV_X64_APIC_ACCESS_RECOMMENDED) {
- pr_info("Hyper-V: Using MSR based APIC access\n");
+ pr_info("Hyper-V: Using enlightened APIC (%s mode)",
+ x2apic_enabled() ? "x2apic" : "xapic");
+ /*
+ * With x2apic, architectural x2apic MSRs are equivalent to the
+ * respective synthetic MSRs, so there's no need to override
+ * the apic accessors. The only exception is
+ * hv_apic_eoi_write, because it benefits from lazy EOI when
+ * available, but it works for both xapic and x2apic modes.
+ */
apic_set_eoi_write(hv_apic_eoi_write);
- apic->read = hv_apic_read;
- apic->write = hv_apic_write;
- apic->icr_write = hv_apic_icr_write;
- apic->icr_read = hv_apic_icr_read;
+ if (!x2apic_enabled()) {
+ apic->read = hv_apic_read;
+ apic->write = hv_apic_write;
+ apic->icr_write = hv_apic_icr_write;
+ apic->icr_read = hv_apic_icr_read;
+ }
}
}
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 7a22e03b0c02988e91003c505b34d752a51de344
Gitweb: https://git.kernel.org/tip/7a22e03b0c02988e91003c505b34d752a51de344
Author: Sean Christopherson <sean.j.christopherson(a)intel.com>
AuthorDate: Tue, 01 Oct 2019 13:50:19 -07:00
Committer: Thomas Gleixner <tglx(a)linutronix.de>
CommitterDate: Tue, 15 Oct 2019 10:57:09 +02:00
x86/apic/x2apic: Fix a NULL pointer deref when handling a dying cpu
Check that the per-cpu cluster mask pointer has been set prior to
clearing a dying cpu's bit. The per-cpu pointer is not set until the
target cpu reaches smp_callin() during CPUHP_BRINGUP_CPU, whereas the
teardown function, x2apic_dead_cpu(), is associated with the earlier
CPUHP_X2APIC_PREPARE. If an error occurs before the cpu is awakened,
e.g. if do_boot_cpu() itself fails, x2apic_dead_cpu() will dereference
the NULL pointer and cause a panic.
smpboot: do_boot_cpu failed(-22) to wakeup CPU#1
BUG: kernel NULL pointer dereference, address: 0000000000000008
RIP: 0010:x2apic_dead_cpu+0x1a/0x30
Call Trace:
cpuhp_invoke_callback+0x9a/0x580
_cpu_up+0x10d/0x140
do_cpu_up+0x69/0xb0
smp_init+0x63/0xa9
kernel_init_freeable+0xd7/0x229
? rest_init+0xa0/0xa0
kernel_init+0xa/0x100
ret_from_fork+0x35/0x40
Fixes: 023a611748fd5 ("x86/apic/x2apic: Simplify cluster management")
Signed-off-by: Sean Christopherson <sean.j.christopherson(a)intel.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lkml.kernel.org/r/20191001205019.5789-1-sean.j.christopherson@intel…
---
arch/x86/kernel/apic/x2apic_cluster.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 45e92cb..b0889c4 100644
--- a/arch/x86/kernel/apic/x2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -156,7 +156,8 @@ static int x2apic_dead_cpu(unsigned int dead_cpu)
{
struct cluster_mask *cmsk = per_cpu(cluster_masks, dead_cpu);
- cpumask_clear_cpu(dead_cpu, &cmsk->mask);
+ if (cmsk)
+ cpumask_clear_cpu(dead_cpu, &cmsk->mask);
free_cpumask_var(per_cpu(ipi_mask, dead_cpu));
return 0;
}
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: 973b124921fc - Linux 5.3.7-rc1
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/226663
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/226573
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 63992e7542bd commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
iio-light-opt3001-fix-mutex-unlock-race.patch
iio-light-add-missing-vcnl4040-of_compatible.patch
iio-accel-adxl372-fix-remove-limitation-for-fifo-samples.patch
iio-accel-adxl372-fix-push-to-buffers-lost-samples.patch
iio-accel-adxl372-perform-a-reset-at-start-up.patch
efivar-ssdt-don-t-iterate-over-efi-vars-if-no-ssdt-override-was-specified.patch
efi-tpm-don-t-access-event-count-when-it-isn-t-mapped.patch
efi-tpm-don-t-traverse-an-event-log-with-no-events.patch
efi-tpm-only-set-efi_tpm_final_log_size-after-successful-event-log-parsing.patch
perf-llvm-don-t-access-out-of-scope-array.patch
perf-inject-jit-fix-jit_code_move-filename.patch
drm-i915-perform-ggtt-restore-much-earlier-during-resume.patch
blk-wbt-fix-performance-regression-in-wbt-scale_up-scale_down.patch
selinux-fix-context-string-corruption-in-convert_context.patch
io_uring-only-flush-workqueues-on-fileset-removal.patch
cifs-gracefully-handle-queryinfo-errors-during-open.patch
cifs-force-revalidate-inode-when-dentry-is-stale.patch
cifs-force-reval-dentry-if-lookup_reval-flag-is-set.patch
cifs-use-cifsinodeinfo-open_file_lock-while-iterating-to-avoid-a-panic.patch
kernel-sysctl.c-do-not-override-max_threads-provided-by-userspace.patch
mm-z3fold.c-claim-page-in-the-beginning-of-free.patch
mm-page_alloc.c-fix-a-crash-in-free_pages_prepare.patch
mm-vmpressure.c-fix-a-signedness-bug-in-vmpressure_register_event.patch
ib-core-fix-wrong-iterating-on-ports.patch
firmware-google-increment-vpd-key_len-properly.patch
gpio-fix-getting-nonexclusive-gpiods-from-dt.patch
gpiolib-don-t-clear-flag_is_out-when-emulating-open-.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bdea6060618cfcf1459dca137e89aee038ac8b9 Mon Sep 17 00:00:00 2001
From: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Date: Sun, 29 Sep 2019 22:09:45 -0500
Subject: [PATCH] Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
In fbtft_framebuffer_alloc the error handling path should take care of
releasing frame buffer after it is allocated via framebuffer_alloc, too.
Therefore, in two failure cases the goto destination is changed to
address this issue.
Fixes: c296d5f9957c ("staging: fbtft: core support")
Signed-off-by: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Link: https://lore.kernel.org/r/20190930030949.28615-1-navid.emamdoost@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index cf5700a2ea66..a0a67aa517f0 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -714,7 +714,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (par->gamma.curves && gamma) {
if (fbtft_gamma_parse_str(par, par->gamma.curves, gamma,
strlen(gamma)))
- goto alloc_fail;
+ goto release_framebuf;
}
/* Transmit buffer */
@@ -731,7 +731,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (txbuflen > 0) {
txbuf = devm_kzalloc(par->info->device, txbuflen, GFP_KERNEL);
if (!txbuf)
- goto alloc_fail;
+ goto release_framebuf;
par->txbuf.buf = txbuf;
par->txbuf.len = txbuflen;
}
@@ -753,6 +753,9 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
return info;
+release_framebuf:
+ framebuffer_release(info);
+
alloc_fail:
vfree(vmem);
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/226430
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 8e64a8ac69c5 commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
iio-light-opt3001-fix-mutex-unlock-race.patch
iio-light-add-missing-vcnl4040-of_compatible.patch
iio-accel-adxl372-fix-remove-limitation-for-fifo-samples.patch
iio-accel-adxl372-fix-push-to-buffers-lost-samples.patch
iio-accel-adxl372-perform-a-reset-at-start-up.patch
efivar-ssdt-don-t-iterate-over-efi-vars-if-no-ssdt-override-was-specified.patch
efi-tpm-don-t-access-event-count-when-it-isn-t-mapped.patch
efi-tpm-don-t-traverse-an-event-log-with-no-events.patch
efi-tpm-only-set-efi_tpm_final_log_size-after-successful-event-log-parsing.patch
perf-llvm-don-t-access-out-of-scope-array.patch
perf-inject-jit-fix-jit_code_move-filename.patch
drm-i915-perform-ggtt-restore-much-earlier-during-resume.patch
blk-wbt-fix-performance-regression-in-wbt-scale_up-scale_down.patch
selinux-fix-context-string-corruption-in-convert_context.patch
io_uring-only-flush-workqueues-on-fileset-removal.patch
cifs-gracefully-handle-queryinfo-errors-during-open.patch
cifs-force-revalidate-inode-when-dentry-is-stale.patch
cifs-force-reval-dentry-if-lookup_reval-flag-is-set.patch
cifs-use-cifsinodeinfo-open_file_lock-while-iterating-to-avoid-a-panic.patch
kernel-sysctl.c-do-not-override-max_threads-provided-by-userspace.patch
mm-z3fold.c-claim-page-in-the-beginning-of-free.patch
mm-page_alloc.c-fix-a-crash-in-free_pages_prepare.patch
mm-vmpressure.c-fix-a-signedness-bug-in-vmpressure_register_event.patch
ib-core-fix-wrong-iterating-on-ports.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
On Sun, Oct 13, 2019 at 8:54 PM Sasha Levin <sashal(a)kernel.org> wrote:
>
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v5.3.5, v5.2.20, v4.19.78, v4.14.148, v4.9.196, v4.4.196.
>
> v5.3.5: Build OK!
> v5.2.20: Build OK!
> v4.19.78: Failed to apply! Possible dependencies:
> 43cd97af70c65 ("HID: logitech: Stop setting drvdata to NULL on probe failure and remove")
>
> v4.14.148: Failed to apply! Possible dependencies:
> 43cd97af70c65 ("HID: logitech: Stop setting drvdata to NULL on probe failure and remove")
>
> v4.9.196: Failed to apply! Possible dependencies:
> 43cd97af70c65 ("HID: logitech: Stop setting drvdata to NULL on probe failure and remove")
>
> v4.4.196: Failed to apply! Possible dependencies:
> 43cd97af70c65 ("HID: logitech: Stop setting drvdata to NULL on probe failure and remove")
> 6c44b15e1c907 ("HID: logitech: check the return value of create_singlethread_workqueue")
> 7bfd2927adcac ("HID: hid-logitech-hidpp: Add basic support for Logitech G920")
> 7f4b49fef6ffb ("HID: hid-logitech-hidpp: Add range sysfs for Logitech G920")
> af2e628d6be7a ("HID: logitech-hidpp: limit visibility of init/deinit functions")
> ff21a635dd1a9 ("HID: logitech-hidpp: Force feedback support for the Logitech G920")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
Please ignore this series, since it will be superseded by upcoming v2
Thanks,
Andrey Smirnov
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From c82e5ac7fe3570a269c0929bf7899f62048e7dbc Mon Sep 17 00:00:00 2001
From: Pavel Shilovsky <piastryyy(a)gmail.com>
Date: Mon, 30 Sep 2019 10:06:19 -0700
Subject: [PATCH] CIFS: Force revalidate inode when dentry is stale
Currently the client indicates that a dentry is stale when inode
numbers or type types between a local inode and a remote file
don't match. If this is the case attributes is not being copied
from remote to local, so, it is already known that the local copy
has stale metadata. That's why the inode needs to be marked for
revalidation in order to tell the VFS to lookup the dentry again
before openning a file. This prevents unexpected stale errors
to be returned to the user space when openning a file.
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Pavel Shilovsky <pshilov(a)microsoft.com>
Signed-off-by: Steve French <stfrench(a)microsoft.com>
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 3bae2e53f0b8..5dcc95b38310 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -414,6 +414,7 @@ int cifs_get_inode_info_unix(struct inode **pinode,
/* if uniqueid is different, return error */
if (unlikely(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM &&
CIFS_I(*pinode)->uniqueid != fattr.cf_uniqueid)) {
+ CIFS_I(*pinode)->time = 0; /* force reval */
rc = -ESTALE;
goto cgiiu_exit;
}
@@ -421,6 +422,7 @@ int cifs_get_inode_info_unix(struct inode **pinode,
/* if filetype is different, return error */
if (unlikely(((*pinode)->i_mode & S_IFMT) !=
(fattr.cf_mode & S_IFMT))) {
+ CIFS_I(*pinode)->time = 0; /* force reval */
rc = -ESTALE;
goto cgiiu_exit;
}
@@ -933,6 +935,7 @@ cifs_get_inode_info(struct inode **inode, const char *full_path,
/* if uniqueid is different, return error */
if (unlikely(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM &&
CIFS_I(*inode)->uniqueid != fattr.cf_uniqueid)) {
+ CIFS_I(*inode)->time = 0; /* force reval */
rc = -ESTALE;
goto cgii_exit;
}
@@ -940,6 +943,7 @@ cifs_get_inode_info(struct inode **inode, const char *full_path,
/* if filetype is different, return error */
if (unlikely(((*inode)->i_mode & S_IFMT) !=
(fattr.cf_mode & S_IFMT))) {
+ CIFS_I(*inode)->time = 0; /* force reval */
rc = -ESTALE;
goto cgii_exit;
}
We have a test case as follow:
mdadm -CR /dev/md1 -l 1 -n 4 /dev/sd[a-d] --assume-clean --bitmap=internal
mdadm -S /dev/md1
mdadm -A /dev/md1 /dev/sd[b-c] --run --force
mdadm --zero /dev/sda
mdadm /dev/md1 -a /dev/sda
echo offline > /sys/block/sdc/device/state
echo offline > /sys/block/sdb/device/state
sleep 5
mdadm -S /dev/md1
echo running > /sys/block/sdb/device/state
echo running > /sys/block/sdc/device/state
mdadm -A /dev/md1 /dev/sd[a-c] --run --force
When we readd /dev/sda to the array, it started to do recovery.
After offline the other two disks in md1, the recovery have
been interrupted and superblock update info cannot be written
to the offline disks. While the spare disk (/dev/sda) can continue
to update superblock info.
After stopping the array and assemble it, we found the array
run fail, with the follow kernel message:
[ 172.986064] md: kicking non-fresh sdb from array!
[ 173.004210] md: kicking non-fresh sdc from array!
[ 173.022383] md/raid1:md1: active with 0 out of 4 mirrors
[ 173.022406] md1: failed to create bitmap (-5)
[ 173.023466] md: md1 stopped.
Since both sdb and sdc have the value of 'sb->events' smaller than
that in sda, they have been kicked from the array. However, the only
remained disk sda is in 'spare' state before stop and it cannot be
added to conf->mirrors[] array. In the end, raid array assemble and run fail.
In fact, we can use the older disk sdb or sdc to assemble the array.
That means we should not choose the 'spare' disk as the fresh disk in
analyze_sbs().
To fix the problem, we do not compare superblock events when it is
a spare disk, as same as validate_super.
Signed-off-by: Yufen Yu <yuyufen(a)huawei.com>
v1->v2:
fix wrong return value in super_90_load
---
drivers/md/md.c | 44 ++++++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 1be7abeb24fd..0a91c20071b3 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1097,7 +1097,7 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
{
char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
mdp_super_t *sb;
- int ret;
+ int ret = 0;
/*
* Calculate the position of the superblock (512byte sectors),
@@ -1111,14 +1111,12 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
if (ret)
return ret;
- ret = -EINVAL;
-
bdevname(rdev->bdev, b);
sb = page_address(rdev->sb_page);
if (sb->md_magic != MD_SB_MAGIC) {
pr_warn("md: invalid raid superblock magic on %s\n", b);
- goto abort;
+ return -EINVAL;
}
if (sb->major_version != 0 ||
@@ -1126,15 +1124,15 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
sb->minor_version > 91) {
pr_warn("Bad version number %d.%d on %s\n",
sb->major_version, sb->minor_version, b);
- goto abort;
+ return -EINVAL;
}
if (sb->raid_disks <= 0)
- goto abort;
+ return -EINVAL;
if (md_csum_fold(calc_sb_csum(sb)) != md_csum_fold(sb->sb_csum)) {
pr_warn("md: invalid superblock checksum on %s\n", b);
- goto abort;
+ return -EINVAL;
}
rdev->preferred_minor = sb->md_minor;
@@ -1156,19 +1154,22 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
if (!md_uuid_equal(refsb, sb)) {
pr_warn("md: %s has different UUID to %s\n",
b, bdevname(refdev->bdev,b2));
- goto abort;
+ return -EINVAL;
}
if (!md_sb_equal(refsb, sb)) {
pr_warn("md: %s has same UUID but different superblock to %s\n",
b, bdevname(refdev->bdev, b2));
- goto abort;
+ return -EINVAL;
}
ev1 = md_event(sb);
ev2 = md_event(refsb);
- if (ev1 > ev2)
- ret = 1;
- else
- ret = 0;
+
+ /* Insist on good event counter while assembling, except
+ * for spares (which don't need an event count) */
+ if (sb->disks[rdev->desc_nr].state & (
+ (1<<MD_DISK_SYNC) | (1 << MD_DISK_ACTIVE)))
+ if (ev1 > ev2)
+ ret = 1;
}
rdev->sectors = rdev->sb_start;
/* Limit to 4TB as metadata cannot record more than that.
@@ -1180,9 +1181,8 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1)
/* "this cannot possibly happen" ... */
- ret = -EINVAL;
+ return -EINVAL;
- abort:
return ret;
}
@@ -1520,7 +1520,7 @@ static __le32 calc_sb_1_csum(struct mdp_superblock_1 *sb)
static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_version)
{
struct mdp_superblock_1 *sb;
- int ret;
+ int ret = 0;
sector_t sb_start;
sector_t sectors;
char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
@@ -1676,10 +1676,14 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
ev1 = le64_to_cpu(sb->events);
ev2 = le64_to_cpu(refsb->events);
- if (ev1 > ev2)
- ret = 1;
- else
- ret = 0;
+ /* Insist of good event counter while assembling, except for
+ * spares (which don't need an event count) */
+ if (rdev->desc_nr >= 0 &&
+ rdev->desc_nr < le32_to_cpu(sb->max_dev) &&
+ (le16_to_cpu(sb->dev_roles[rdev->desc_nr]) < MD_DISK_ROLE_MAX ||
+ le16_to_cpu(sb->dev_roles[rdev->desc_nr]) == MD_DISK_ROLE_JOURNAL))
+ if (ev1 > ev2)
+ ret = 1;
}
if (minor_version) {
sectors = (i_size_read(rdev->bdev->bd_inode) >> 9);
--
2.17.2
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 4043ecfb5fc4355a090111e14faf7945ff0fdbd5 Mon Sep 17 00:00:00 2001
From: Andreas Klinger <ak(a)it-klinger.de>
Date: Mon, 9 Sep 2019 14:37:21 +0200
Subject: [PATCH] iio: adc: hx711: fix bug in sampling of data
Fix bug in sampling function hx711_cycle() when interrupt occures while
PD_SCK is high. If PD_SCK is high for at least 60 us power down mode of
the sensor is entered which in turn leads to a wrong measurement.
Switch off interrupts during a PD_SCK high period and move query of DOUT
to the latest point of time which is at the end of PD_SCK low period.
This bug exists in the driver since it's initial addition. The more
interrupts on the system the higher is the probability that it happens.
Fixes: c3b2fdd0ea7e ("iio: adc: hx711: Add IIO driver for AVIA HX711")
Signed-off-by: Andreas Klinger <ak(a)it-klinger.de>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index 88c7fe15003b..62e6c8badd22 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -100,14 +100,14 @@ struct hx711_data {
static int hx711_cycle(struct hx711_data *hx711_data)
{
- int val;
+ unsigned long flags;
/*
* if preempted for more then 60us while PD_SCK is high:
* hx711 is going in reset
* ==> measuring is false
*/
- preempt_disable();
+ local_irq_save(flags);
gpiod_set_value(hx711_data->gpiod_pd_sck, 1);
/*
@@ -117,7 +117,6 @@ static int hx711_cycle(struct hx711_data *hx711_data)
*/
ndelay(hx711_data->data_ready_delay_ns);
- val = gpiod_get_value(hx711_data->gpiod_dout);
/*
* here we are not waiting for 0.2 us as suggested by the datasheet,
* because the oscilloscope showed in a test scenario
@@ -125,7 +124,7 @@ static int hx711_cycle(struct hx711_data *hx711_data)
* and 0.56 us for PD_SCK low on TI Sitara with 800 MHz
*/
gpiod_set_value(hx711_data->gpiod_pd_sck, 0);
- preempt_enable();
+ local_irq_restore(flags);
/*
* make it a square wave for addressing cases with capacitance on
@@ -133,7 +132,8 @@ static int hx711_cycle(struct hx711_data *hx711_data)
*/
ndelay(hx711_data->data_ready_delay_ns);
- return val;
+ /* sample as late as possible */
+ return gpiod_get_value(hx711_data->gpiod_dout);
}
static int hx711_read(struct hx711_data *hx711_data)
The patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From a26e0fbe06e20077afdaa40d1a90092f16b0bc67 Mon Sep 17 00:00:00 2001
From: zhong jiang <zhongjiang(a)huawei.com>
Date: Mon, 23 Sep 2019 10:04:32 +0800
Subject: [PATCH] iio: Fix an undefied reference error in noa1305_probe
I hit the following error when compile the kernel.
drivers/iio/light/noa1305.o: In function `noa1305_probe':
noa1305.c:(.text+0x65): undefined reference to `__devm_regmap_init_i2c'
make: *** [vmlinux] Error 1
Signed-off-by: zhong jiang <zhongjiang(a)huawei.com>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
index 08d7e1ef2186..4a1a883dc061 100644
--- a/drivers/iio/light/Kconfig
+++ b/drivers/iio/light/Kconfig
@@ -314,6 +314,7 @@ config MAX44009
config NOA1305
tristate "ON Semiconductor NOA1305 ambient light sensor"
depends on I2C
+ select REGMAP_I2C
help
Say Y here if you want to build support for the ON Semiconductor
NOA1305 ambient light sensor.
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
[Bartosz: backported to v5.3, v4.19]
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
---
drivers/gpio/gpiolib.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index e4203c1eb869..74a77001b1bd 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -2775,8 +2775,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (value)
- return gpiod_direction_input(desc);
+ if (value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_config(gc, gpio_chip_hwgpio(desc),
@@ -2784,8 +2786,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!value)
- return gpiod_direction_input(desc);
+ if (!value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_config(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -2793,6 +2797,17 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
set_output_value:
return gpiod_direction_output_raw_commit(desc, value);
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
EXPORT_SYMBOL_GPL(gpiod_direction_output);
@@ -3153,8 +3168,6 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value)
if (value) {
err = chip->direction_input(chip, offset);
- if (!err)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
err = chip->direction_output(chip, offset, 0);
if (!err)
@@ -3184,8 +3197,6 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
err = chip->direction_input(chip, offset);
- if (!err)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, err);
if (err < 0)
--
2.23.0
This series fixes the issue with arm64_ftr_value() where the signed
fields are truncated to unsigned values corrupting the system wide
safe values.
Suzuki K Poulose (2):
arm64: capabilities: Handle sign of the feature bit
arm64: Rename cpuid_feature field extract routines
arch/arm64/include/asm/cpufeature.h | 29 +++++++++++++++---------
arch/arm64/kernel/cpufeature.c | 35 ++++++++++++++++-------------
arch/arm64/kernel/debug-monitors.c | 2 +-
arch/arm64/kvm/sys_regs.c | 2 +-
arch/arm64/mm/context.c | 3 ++-
5 files changed, 42 insertions(+), 29 deletions(-)
--
2.21.0
From: Dexuan Cui <decui(a)microsoft.com>
pci_pm_thaw_noirq() is supposed to return the device to D0 and restore its
configuration registers, but previously it only did that for devices whose
drivers implemented the new power management ops.
Hibernation, e.g., via "echo disk > /sys/power/state", involves freezing
devices, creating a hibernation image, thawing devices, writing the image,
and powering off. The fact that thawing did not return devices with legacy
power management to D0 caused errors, e.g., in this path:
pci_pm_thaw_noirq
if (pci_has_legacy_pm_support(pci_dev)) # true for Mellanox VF driver
return pci_legacy_resume_early(dev) # ... legacy PM skips the rest
pci_set_power_state(pci_dev, PCI_D0)
pci_restore_state(pci_dev)
pci_pm_thaw
if (pci_has_legacy_pm_support(pci_dev))
pci_legacy_resume
drv->resume
mlx4_resume
...
pci_enable_msix_range
...
if (dev->current_state != PCI_D0) # <---
return -EINVAL;
which caused these warnings:
mlx4_core a6d1:00:02.0: INTx is not supported in multi-function mode, aborting
PM: dpm_run_callback(): pci_pm_thaw+0x0/0xd7 returns -95
PM: Device a6d1:00:02.0 failed to thaw: error -95
Return devices to D0 and restore config registers for all devices, not just
those whose drivers support new power management.
[bhelgaas: also call pci_restore_state() before pci_legacy_resume_early(),
update comment, add stable tag, commit log]
Link: https://lore.kernel.org/r/KU1P153MB016637CAEAD346F0AA8E3801BFAD0@KU1P153MB0…
Signed-off-by: Dexuan Cui <decui(a)microsoft.com>
Signed-off-by: Bjorn Helgaas <bhelgaas(a)google.com>
Cc: stable(a)vger.kernel.org # v4.13+
---
drivers/pci/pci-driver.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index a8124e47bf6e..d4ac8ce8c1f9 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -1076,17 +1076,22 @@ static int pci_pm_thaw_noirq(struct device *dev)
return error;
}
- if (pci_has_legacy_pm_support(pci_dev))
- return pci_legacy_resume_early(dev);
-
/*
- * pci_restore_state() requires the device to be in D0 (because of MSI
- * restoration among other things), so force it into D0 in case the
- * driver's "freeze" callbacks put it into a low-power state directly.
+ * Both the legacy ->resume_early() and the new pm->thaw_noirq()
+ * callbacks assume the device has been returned to D0 and its
+ * config state has been restored.
+ *
+ * In addition, pci_restore_state() restores MSI-X state in MMIO
+ * space, which requires the device to be in D0, so return it to D0
+ * in case the driver's "freeze" callbacks put it into a low-power
+ * state.
*/
pci_set_power_state(pci_dev, PCI_D0);
pci_restore_state(pci_dev);
+ if (pci_has_legacy_pm_support(pci_dev))
+ return pci_legacy_resume_early(dev);
+
if (drv && drv->pm && drv->pm->thaw_noirq)
error = drv->pm->thaw_noirq(dev);
--
2.23.0.700.g56cf767bdb-goog
The patch titled
Subject: mm: memblock: do not enforce current limit for memblock_phys* family
has been added to the -mm tree. Its filename is
mm-memblock-do-not-enforce-current-limit-for-memblock_phys-family.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-memblock-do-not-enforce-current…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-memblock-do-not-enforce-current…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Mike Rapoport <rppt(a)linux.ibm.com>
Subject: mm: memblock: do not enforce current limit for memblock_phys* family
Until commit 92d12f9544b7 ("memblock: refactor internal allocation
functions") the maximal address for memblock allocations was forced to
memblock.current_limit only for the allocation functions returning virtual
address. The changes introduced by that commit moved the limit
enforcement into the allocation core and as a result the allocation
functions returning physical address also started to limit allocations to
memblock.current_limit.
This caused breakage of etnaviv GPU driver:
[ 3.682347] etnaviv etnaviv: bound 130000.gpu (ops gpu_ops)
[ 3.688669] etnaviv etnaviv: bound 134000.gpu (ops gpu_ops)
[ 3.695099] etnaviv etnaviv: bound 2204000.gpu (ops gpu_ops)
[ 3.700800] etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
[ 3.723013] etnaviv-gpu 130000.gpu: command buffer outside valid
memory window
[ 3.731308] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
[ 3.752437] etnaviv-gpu 134000.gpu: command buffer outside valid
memory window
[ 3.760583] etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
[ 3.766766] etnaviv-gpu 2204000.gpu: Ignoring GPU with VG and FE2.0
Restore the behaviour of memblock_phys* family so that these functions will
not enforce memblock.current_limit.
Link: http://lkml.kernel.org/r/1570915861-17633-1-git-send-email-rppt@kernel.org
Fixes: 92d12f9544b7 ("memblock: refactor internal allocation functions")
Signed-off-by: Mike Rapoport <rppt(a)linux.ibm.com>
Reported-by: Adam Ford <aford173(a)gmail.com>
Tested-by: Adam Ford <aford173(a)gmail.com> [imx6q-logicpd]
Cc: Catalin Marinas <catalin.marinas(a)arm.com>
Cc: Christoph Hellwig <hch(a)lst.de>
Cc: Fabio Estevam <festevam(a)gmail.com>
Cc: Lucas Stach <l.stach(a)pengutronix.de>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/memblock.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/mm/memblock.c~mm-memblock-do-not-enforce-current-limit-for-memblock_phys-family
+++ a/mm/memblock.c
@@ -1356,9 +1356,6 @@ static phys_addr_t __init memblock_alloc
align = SMP_CACHE_BYTES;
}
- if (end > memblock.current_limit)
- end = memblock.current_limit;
-
again:
found = memblock_find_in_range_node(size, align, start, end, nid,
flags);
@@ -1469,6 +1466,9 @@ static void * __init memblock_alloc_inte
if (WARN_ON_ONCE(slab_is_available()))
return kzalloc_node(size, GFP_NOWAIT, nid);
+ if (max_addr > memblock.current_limit)
+ max_addr = memblock.current_limit;
+
alloc = memblock_alloc_range_nid(size, align, min_addr, max_addr, nid);
/* retry allocation without lower limit */
_
Patches currently in -mm which might be from rppt(a)linux.ibm.com are
mm-memblock-do-not-enforce-current-limit-for-memblock_phys-family.patch
From: Jane Chu <jane.chu(a)oracle.com>
Subject: mm/memory-failure: poison read receives SIGKILL instead of SIGBUS if mmaped more than once
Mmap /dev/dax more than once, then read the poison location using address
from one of the mappings. The other mappings due to not having the page
mapped in will cause SIGKILLs delivered to the process. SIGKILL succeeds
over SIGBUS, so user process loses the opportunity to handle the UE.
Although one may add MAP_POPULATE to mmap(2) to work around the issue,
MAP_POPULATE makes mapping 128GB of pmem several magnitudes slower, so
isn't always an option.
Details -
ndctl inject-error --block=10 --count=1 namespace6.0
./read_poison -x dax6.0 -o 5120 -m 2
mmaped address 0x7f5bb6600000
mmaped address 0x7f3cf3600000
doing local read at address 0x7f3cf3601400
Killed
Console messages in instrumented kernel -
mce: Uncorrected hardware memory error in user-access at edbe201400
Memory failure: tk->addr = 7f5bb6601000
Memory failure: address edbe201: call dev_pagemap_mapping_shift
dev_pagemap_mapping_shift: page edbe201: no PUD
Memory failure: tk->size_shift == 0
Memory failure: Unable to find user space address edbe201 in read_poison
Memory failure: tk->addr = 7f3cf3601000
Memory failure: address edbe201: call dev_pagemap_mapping_shift
Memory failure: tk->size_shift = 21
Memory failure: 0xedbe201: forcibly killing read_poison:22434 because of failure to unmap corrupted page
=> to deliver SIGKILL
Memory failure: 0xedbe201: Killing read_poison:22434 due to hardware memory corruption
=> to deliver SIGBUS
Link: http://lkml.kernel.org/r/1565112345-28754-3-git-send-email-jane.chu@oracle.…
Signed-off-by: Jane Chu <jane.chu(a)oracle.com>
Suggested-by: Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
Reviewed-by: Dan Williams <dan.j.williams(a)intel.com>
Acked-by: Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
Cc: Michal Hocko <mhocko(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/memory-failure.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
--- a/mm/memory-failure.c~mm-memory-failure-poison-read-receives-sigkill-instead-of-sigbus-if-mmaped-more-than-once
+++ a/mm/memory-failure.c
@@ -199,7 +199,6 @@ struct to_kill {
struct task_struct *tsk;
unsigned long addr;
short size_shift;
- char addr_valid;
};
/*
@@ -324,22 +323,27 @@ static void add_to_kill(struct task_stru
}
}
tk->addr = page_address_in_vma(p, vma);
- tk->addr_valid = 1;
if (is_zone_device_page(p))
tk->size_shift = dev_pagemap_mapping_shift(p, vma);
else
tk->size_shift = compound_order(compound_head(p)) + PAGE_SHIFT;
/*
- * In theory we don't have to kill when the page was
- * munmaped. But it could be also a mremap. Since that's
- * likely very rare kill anyways just out of paranoia, but use
- * a SIGKILL because the error is not contained anymore.
+ * Send SIGKILL if "tk->addr == -EFAULT". Also, as
+ * "tk->size_shift" is always non-zero for !is_zone_device_page(),
+ * so "tk->size_shift == 0" effectively checks no mapping on
+ * ZONE_DEVICE. Indeed, when a devdax page is mmapped N times
+ * to a process' address space, it's possible not all N VMAs
+ * contain mappings for the page, but at least one VMA does.
+ * Only deliver SIGBUS with payload derived from the VMA that
+ * has a mapping for the page.
*/
- if (tk->addr == -EFAULT || tk->size_shift == 0) {
+ if (tk->addr == -EFAULT) {
pr_info("Memory failure: Unable to find user space address %lx in %s\n",
page_to_pfn(p), tsk->comm);
- tk->addr_valid = 0;
+ } else if (tk->size_shift == 0) {
+ kfree(tk);
+ return;
}
get_task_struct(tsk);
tk->tsk = tsk;
@@ -366,7 +370,7 @@ static void kill_procs(struct list_head
* make sure the process doesn't catch the
* signal and then access the memory. Just kill it.
*/
- if (fail || tk->addr_valid == 0) {
+ if (fail || tk->addr == -EFAULT) {
pr_err("Memory failure: %#lx: forcibly killing %s:%d because of failure to unmap corrupted page\n",
pfn, tk->tsk->comm, tk->tsk->pid);
do_send_sig_info(SIGKILL, SEND_SIG_PRIV,
_
From: Vlastimil Babka <vbabka(a)suse.cz>
Subject: mm, compaction: fix wrong pfn handling in __reset_isolation_pfn()
Florian and Dave reported [1] a NULL pointer dereference in
__reset_isolation_pfn(). While the exact cause is unclear, staring at the
code revealed two bugs, which might be related.
One bug is that if zone starts in the middle of pageblock, block_page
might correspond to different pfn than block_pfn, and then the
pfn_valid_within() checks will check different pfn's than those accessed
via struct page. This might result in acessing an unitialized page in
CONFIG_HOLES_IN_ZONE configs.
The other bug is that end_page refers to the first page of next pageblock
and not last page of current pageblock. The online and valid check is
then wrong and with sections, the while (page < end_page) loop might
wander off actual struct page arrays.
[1] https://lore.kernel.org/linux-xfs/87o8z1fvqu.fsf@mid.deneb.enyo.de/
Link: http://lkml.kernel.org/r/20191008152915.24704-1-vbabka@suse.cz
Fixes: 6b0868c820ff ("mm/compaction.c: correct zone boundary handling when resetting pageblock skip hints")
Signed-off-by: Vlastimil Babka <vbabka(a)suse.cz>
Reported-by: Florian Weimer <fw(a)deneb.enyo.de>
Reported-by: Dave Chinner <david(a)fromorbit.com>
Acked-by: Mel Gorman <mgorman(a)techsingularity.net>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/compaction.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/mm/compaction.c~mm-compaction-fix-wrong-pfn-handling-in-__reset_isolation_pfn
+++ a/mm/compaction.c
@@ -270,14 +270,15 @@ __reset_isolation_pfn(struct zone *zone,
/* Ensure the start of the pageblock or zone is online and valid */
block_pfn = pageblock_start_pfn(pfn);
- block_page = pfn_to_online_page(max(block_pfn, zone->zone_start_pfn));
+ block_pfn = max(block_pfn, zone->zone_start_pfn);
+ block_page = pfn_to_online_page(block_pfn);
if (block_page) {
page = block_page;
pfn = block_pfn;
}
/* Ensure the end of the pageblock or zone is online and valid */
- block_pfn += pageblock_nr_pages;
+ block_pfn = pageblock_end_pfn(pfn) - 1;
block_pfn = min(block_pfn, zone_end_pfn(zone) - 1);
end_page = pfn_to_online_page(block_pfn);
if (!end_page)
@@ -303,7 +304,7 @@ __reset_isolation_pfn(struct zone *zone,
page += (1 << PAGE_ALLOC_COSTLY_ORDER);
pfn += (1 << PAGE_ALLOC_COSTLY_ORDER);
- } while (page < end_page);
+ } while (page <= end_page);
return false;
}
_
From: Qian Cai <cai(a)lca.pw>
Subject: mm/slub: fix a deadlock in show_slab_objects()
A long time ago we fixed a similar deadlock in show_slab_objects() [1].
However, it is apparently due to the commits like 01fb58bcba63 ("slab:
remove synchronous synchronize_sched() from memcg cache deactivation
path") and 03afc0e25f7f ("slab: get_online_mems for
kmem_cache_{create,destroy,shrink}"), this kind of deadlock is back by
just reading files in /sys/kernel/slab which will generate a lockdep splat
below.
Since the "mem_hotplug_lock" here is only to obtain a stable online node
mask while racing with NUMA node hotplug, in the worst case, the results
may me miscalculated while doing NUMA node hotplug, but they shall be
corrected by later reads of the same files.
WARNING: possible circular locking dependency detected
------------------------------------------------------
cat/5224 is trying to acquire lock:
ffff900012ac3120 (mem_hotplug_lock.rw_sem){++++}, at:
show_slab_objects+0x94/0x3a8
but task is already holding lock:
b8ff009693eee398 (kn->count#45){++++}, at: kernfs_seq_start+0x44/0xf0
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (kn->count#45){++++}:
lock_acquire+0x31c/0x360
__kernfs_remove+0x290/0x490
kernfs_remove+0x30/0x44
sysfs_remove_dir+0x70/0x88
kobject_del+0x50/0xb0
sysfs_slab_unlink+0x2c/0x38
shutdown_cache+0xa0/0xf0
kmemcg_cache_shutdown_fn+0x1c/0x34
kmemcg_workfn+0x44/0x64
process_one_work+0x4f4/0x950
worker_thread+0x390/0x4bc
kthread+0x1cc/0x1e8
ret_from_fork+0x10/0x18
-> #1 (slab_mutex){+.+.}:
lock_acquire+0x31c/0x360
__mutex_lock_common+0x16c/0xf78
mutex_lock_nested+0x40/0x50
memcg_create_kmem_cache+0x38/0x16c
memcg_kmem_cache_create_func+0x3c/0x70
process_one_work+0x4f4/0x950
worker_thread+0x390/0x4bc
kthread+0x1cc/0x1e8
ret_from_fork+0x10/0x18
-> #0 (mem_hotplug_lock.rw_sem){++++}:
validate_chain+0xd10/0x2bcc
__lock_acquire+0x7f4/0xb8c
lock_acquire+0x31c/0x360
get_online_mems+0x54/0x150
show_slab_objects+0x94/0x3a8
total_objects_show+0x28/0x34
slab_attr_show+0x38/0x54
sysfs_kf_seq_show+0x198/0x2d4
kernfs_seq_show+0xa4/0xcc
seq_read+0x30c/0x8a8
kernfs_fop_read+0xa8/0x314
__vfs_read+0x88/0x20c
vfs_read+0xd8/0x10c
ksys_read+0xb0/0x120
__arm64_sys_read+0x54/0x88
el0_svc_handler+0x170/0x240
el0_svc+0x8/0xc
other info that might help us debug this:
Chain exists of:
mem_hotplug_lock.rw_sem --> slab_mutex --> kn->count#45
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(kn->count#45);
lock(slab_mutex);
lock(kn->count#45);
lock(mem_hotplug_lock.rw_sem);
*** DEADLOCK ***
3 locks held by cat/5224:
#0: 9eff00095b14b2a0 (&p->lock){+.+.}, at: seq_read+0x4c/0x8a8
#1: 0eff008997041480 (&of->mutex){+.+.}, at: kernfs_seq_start+0x34/0xf0
#2: b8ff009693eee398 (kn->count#45){++++}, at:
kernfs_seq_start+0x44/0xf0
stack backtrace:
Call trace:
dump_backtrace+0x0/0x248
show_stack+0x20/0x2c
dump_stack+0xd0/0x140
print_circular_bug+0x368/0x380
check_noncircular+0x248/0x250
validate_chain+0xd10/0x2bcc
__lock_acquire+0x7f4/0xb8c
lock_acquire+0x31c/0x360
get_online_mems+0x54/0x150
show_slab_objects+0x94/0x3a8
total_objects_show+0x28/0x34
slab_attr_show+0x38/0x54
sysfs_kf_seq_show+0x198/0x2d4
kernfs_seq_show+0xa4/0xcc
seq_read+0x30c/0x8a8
kernfs_fop_read+0xa8/0x314
__vfs_read+0x88/0x20c
vfs_read+0xd8/0x10c
ksys_read+0xb0/0x120
__arm64_sys_read+0x54/0x88
el0_svc_handler+0x170/0x240
el0_svc+0x8/0xc
I think it is important to mention that this doesn't expose the
show_slab_objects to use-after-free. There is only a single path that
might really race here and that is the slab hotplug notifier callback
__kmem_cache_shrink (via slab_mem_going_offline_callback) but that path
doesn't really destroy kmem_cache_node data structures.
[1] http://lkml.iu.edu/hypermail/linux/kernel/1101.0/02850.html
[akpm(a)linux-foundation.org: add comment explaining why we don't need mem_hotplug_lock]
Link: http://lkml.kernel.org/r/1570192309-10132-1-git-send-email-cai@lca.pw
Fixes: 01fb58bcba63 ("slab: remove synchronous synchronize_sched() from memcg cache deactivation path")
Fixes: 03afc0e25f7f ("slab: get_online_mems for kmem_cache_{create,destroy,shrink}")
Signed-off-by: Qian Cai <cai(a)lca.pw>
Acked-by: Michal Hocko <mhocko(a)suse.com>
Cc: Christoph Lameter <cl(a)linux.com>
Cc: Pekka Enberg <penberg(a)kernel.org>
Cc: David Rientjes <rientjes(a)google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim(a)lge.com>
Cc: Tejun Heo <tj(a)kernel.org>
Cc: Vladimir Davydov <vdavydov.dev(a)gmail.com>
Cc: Roman Gushchin <guro(a)fb.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/slub.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
--- a/mm/slub.c~mm-slub-fix-a-deadlock-in-show_slab_objects
+++ a/mm/slub.c
@@ -4846,7 +4846,17 @@ static ssize_t show_slab_objects(struct
}
}
- get_online_mems();
+ /*
+ * It is impossible to take "mem_hotplug_lock" here with "kernfs_mutex"
+ * already held which will conflict with an existing lock order:
+ *
+ * mem_hotplug_lock->slab_mutex->kernfs_mutex
+ *
+ * We don't really need mem_hotplug_lock (to hold off
+ * slab_mem_going_offline_callback) here because slab's memory hot
+ * unplug code doesn't destroy the kmem_cache->node[] data.
+ */
+
#ifdef CONFIG_SLUB_DEBUG
if (flags & SO_ALL) {
struct kmem_cache_node *n;
@@ -4887,7 +4897,6 @@ static ssize_t show_slab_objects(struct
x += sprintf(buf + x, " N%d=%lu",
node, nodes[node]);
#endif
- put_online_mems();
kfree(nodes);
return x + sprintf(buf + x, "\n");
}
_
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/225355
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 9f0df05e3c7b commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
gpio-eic-sprd-fix-the-incorrect-eic-offset-when-toggling.patch
staging-fbtft-depend-on-of.patch
staging-bcm2835-audio-fix-draining-behavior-regression.patch
staging-fbtft-fix-memory-leak-in-fbtft_framebuffer_alloc.patch
staging-rtl8188eu-fix-highestrate-check-in-odm_arfbrefresh_8188e.patch
staging-vt6655-fix-memory-leak-in-vt6655_probe.patch
iio-adc-hx711-fix-bug-in-sampling-of-data.patch
iio-adc-ad799x-fix-probe-error-handling.patch
iio-adc-axp288-override-ts-pin-bias-current-for-some-models.patch
iio-adc-stm32-adc-move-registers-definitions.patch
iio-adc-stm32-adc-fix-a-race-when-using-several-adcs-with-dma-and-irq.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
x86_64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/225296
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 2a712158cf24 commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
usb-usb-skeleton-fix-runtime-pm-after-driver-unbind.patch
usb-usb-skeleton-fix-null-deref-on-disconnect.patch
xhci-fix-false-warning-message-about-wrong-bounce-buffer-write-length.patch
xhci-prevent-device-initiated-u1-u2-link-pm-if-exit-latency-is-too-long.patch
xhci-check-all-endpoints-for-lpm-timeout.patch
xhci-fix-usb-3.1-capability-detection-on-early-xhci-1.1-spec-based-hosts.patch
usb-xhci-wait-for-cnr-controller-not-ready-bit-in-xhci-resume.patch
xhci-prevent-deadlock-when-xhci-adapter-breaks-during-init.patch
xhci-increase-sts_save-timeout-in-xhci_suspend.patch
xhci-fix-null-pointer-dereference-in-xhci_clear_tt_buffer_complete.patch
usb-adutux-fix-use-after-free-on-disconnect.patch
usb-adutux-fix-null-derefs-on-disconnect.patch
usb-adutux-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-on-disconnect.patch
usb-iowarrior-fix-use-after-free-on-release.patch
usb-iowarrior-fix-use-after-free-after-driver-unbind.patch
usb-usblp-fix-runtime-pm-after-driver-unbind.patch
usb-chaoskey-fix-use-after-free-on-release.patch
usb-ldusb-fix-null-derefs-on-driver-unbind.patch
serial-uartlite-fix-exit-path-null-pointer.patch
serial-uartps-fix-uartps_major-handling.patch
usb-serial-keyspan-fix-null-derefs-on-open-and-write.patch
usb-serial-ftdi_sio-add-device-ids-for-sienna-and-echelon-pl-20.patch
usb-serial-option-add-telit-fn980-compositions.patch
usb-serial-option-add-support-for-cinterion-cls8-devices.patch
usb-serial-fix-runtime-pm-after-driver-unbind.patch
usb-usblcd-fix-i-o-after-disconnect.patch
usb-microtek-fix-info-leak-at-probe.patch
usb-dummy-hcd-fix-power-budget-for-superspeed-mode.patch
usb-renesas_usbhs-gadget-do-not-discard-queues-in-usb_ep_set_-halt-wedge.patch
usb-renesas_usbhs-gadget-fix-usb_ep_set_-halt-wedge-behavior.patch
usb-typec-tcpm-usb-typec-tcpm-fix-a-signedness-bug-in-tcpm_fw_get_caps.patch
usb-typec-ucsi-ccg-remove-run_isr-flag.patch
usb-typec-ucsi-displayport-fix-for-the-mode-entering-routine.patch
usb-legousbtower-fix-slab-info-leak-at-probe.patch
usb-legousbtower-fix-deadlock-on-disconnect.patch
usb-legousbtower-fix-potential-null-deref-on-disconnect.patch
usb-legousbtower-fix-open-after-failed-reset-request.patch
usb-legousbtower-fix-use-after-free-on-release.patch
mei-me-add-comet-point-lake-lp-device-ids.patch
mei-avoid-fw-version-request-on-ibex-peak-and-earlier.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
x86_64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ⚡⚡⚡ LTP lite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/225134
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: d980f67059db - Linux 5.3.6
We grabbed the 50453c360f1b commit of the stable queue repository.
We then merged the patchset with `git am`:
panic-ensure-preemption-is-disabled-during-panic.patch
usb-rio500-remove-rio-500-kernel-driver.patch
usb-yurex-don-t-retry-on-unexpected-errors.patch
usb-yurex-fix-null-derefs-on-disconnect.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
ppc64le:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
x86_64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
[Bartosz: backported to v4.14]
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
---
drivers/gpio/gpiolib.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index f1809a54fcee..c7f5f0be2d74 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -2329,8 +2329,10 @@ static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (val)
- return gpiod_direction_input(desc);
+ if (val) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_drive_single_ended(gc, gpio_chip_hwgpio(desc),
@@ -2338,8 +2340,10 @@ static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!val)
- return gpiod_direction_input(desc);
+ if (!val) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_drive_single_ended(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -2359,6 +2363,17 @@ static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value)
trace_gpio_value(desc_to_gpio(desc), 0, val);
trace_gpio_direction(desc_to_gpio(desc), 0, ret);
return ret;
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
/**
@@ -2540,8 +2555,6 @@ static void _gpio_set_open_drain_value(struct gpio_desc *desc, bool value)
if (value) {
err = chip->direction_input(chip, offset);
- if (!err)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
err = chip->direction_output(chip, offset, 0);
if (!err)
@@ -2571,8 +2584,6 @@ static void _gpio_set_open_source_value(struct gpio_desc *desc, bool value)
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
err = chip->direction_input(chip, offset);
- if (!err)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, err);
if (err < 0)
--
2.23.0
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From dcb10920179ab74caf88a6f2afadecfc2743b910 Mon Sep 17 00:00:00 2001
From: Fabrice Gasnier <fabrice.gasnier(a)st.com>
Date: Tue, 17 Sep 2019 14:38:16 +0200
Subject: [PATCH] iio: adc: stm32-adc: fix a race when using several adcs with
dma and irq
End of conversion may be handled by using IRQ or DMA. There may be a
race when two conversions complete at the same time on several ADCs.
EOC can be read as 'set' for several ADCs, with:
- an ADC configured to use IRQs. EOCIE bit is set. The handler is normally
called in this case.
- an ADC configured to use DMA. EOCIE bit isn't set. EOC triggers the DMA
request instead. It's then automatically cleared by DMA read. But the
handler gets called due to status bit is temporarily set (IRQ triggered
by the other ADC).
So both EOC status bit in CSR and EOCIE control bit must be checked
before invoking the interrupt handler (e.g. call ISR only for
IRQ-enabled ADCs).
Fixes: 2763ea0585c9 ("iio: adc: stm32: add optional dma support")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier(a)st.com>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c
index 84ac326bb714..93a096a91f8c 100644
--- a/drivers/iio/adc/stm32-adc-core.c
+++ b/drivers/iio/adc/stm32-adc-core.c
@@ -44,6 +44,8 @@
* @eoc1: adc1 end of conversion flag in @csr
* @eoc2: adc2 end of conversion flag in @csr
* @eoc3: adc3 end of conversion flag in @csr
+ * @ier: interrupt enable register offset for each adc
+ * @eocie_msk: end of conversion interrupt enable mask in @ier
*/
struct stm32_adc_common_regs {
u32 csr;
@@ -51,6 +53,8 @@ struct stm32_adc_common_regs {
u32 eoc1_msk;
u32 eoc2_msk;
u32 eoc3_msk;
+ u32 ier;
+ u32 eocie_msk;
};
struct stm32_adc_priv;
@@ -276,6 +280,8 @@ static const struct stm32_adc_common_regs stm32f4_adc_common_regs = {
.eoc1_msk = STM32F4_EOC1,
.eoc2_msk = STM32F4_EOC2,
.eoc3_msk = STM32F4_EOC3,
+ .ier = STM32F4_ADC_CR1,
+ .eocie_msk = STM32F4_EOCIE,
};
/* STM32H7 common registers definitions */
@@ -284,8 +290,24 @@ static const struct stm32_adc_common_regs stm32h7_adc_common_regs = {
.ccr = STM32H7_ADC_CCR,
.eoc1_msk = STM32H7_EOC_MST,
.eoc2_msk = STM32H7_EOC_SLV,
+ .ier = STM32H7_ADC_IER,
+ .eocie_msk = STM32H7_EOCIE,
};
+static const unsigned int stm32_adc_offset[STM32_ADC_MAX_ADCS] = {
+ 0, STM32_ADC_OFFSET, STM32_ADC_OFFSET * 2,
+};
+
+static unsigned int stm32_adc_eoc_enabled(struct stm32_adc_priv *priv,
+ unsigned int adc)
+{
+ u32 ier, offset = stm32_adc_offset[adc];
+
+ ier = readl_relaxed(priv->common.base + offset + priv->cfg->regs->ier);
+
+ return ier & priv->cfg->regs->eocie_msk;
+}
+
/* ADC common interrupt for all instances */
static void stm32_adc_irq_handler(struct irq_desc *desc)
{
@@ -296,13 +318,28 @@ static void stm32_adc_irq_handler(struct irq_desc *desc)
chained_irq_enter(chip, desc);
status = readl_relaxed(priv->common.base + priv->cfg->regs->csr);
- if (status & priv->cfg->regs->eoc1_msk)
+ /*
+ * End of conversion may be handled by using IRQ or DMA. There may be a
+ * race here when two conversions complete at the same time on several
+ * ADCs. EOC may be read 'set' for several ADCs, with:
+ * - an ADC configured to use DMA (EOC triggers the DMA request, and
+ * is then automatically cleared by DR read in hardware)
+ * - an ADC configured to use IRQs (EOCIE bit is set. The handler must
+ * be called in this case)
+ * So both EOC status bit in CSR and EOCIE control bit must be checked
+ * before invoking the interrupt handler (e.g. call ISR only for
+ * IRQ-enabled ADCs).
+ */
+ if (status & priv->cfg->regs->eoc1_msk &&
+ stm32_adc_eoc_enabled(priv, 0))
generic_handle_irq(irq_find_mapping(priv->domain, 0));
- if (status & priv->cfg->regs->eoc2_msk)
+ if (status & priv->cfg->regs->eoc2_msk &&
+ stm32_adc_eoc_enabled(priv, 1))
generic_handle_irq(irq_find_mapping(priv->domain, 1));
- if (status & priv->cfg->regs->eoc3_msk)
+ if (status & priv->cfg->regs->eoc3_msk &&
+ stm32_adc_eoc_enabled(priv, 2))
generic_handle_irq(irq_find_mapping(priv->domain, 2));
chained_irq_exit(chip, desc);
diff --git a/drivers/iio/adc/stm32-adc-core.h b/drivers/iio/adc/stm32-adc-core.h
index 94aa2d2577dc..2579d514c2a3 100644
--- a/drivers/iio/adc/stm32-adc-core.h
+++ b/drivers/iio/adc/stm32-adc-core.h
@@ -25,6 +25,7 @@
* --------------------------------------------------------
*/
#define STM32_ADC_MAX_ADCS 3
+#define STM32_ADC_OFFSET 0x100
#define STM32_ADCX_COMN_OFFSET 0x300
/* STM32F4 - Registers for each ADC instance */
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: a2fc8ee66760 - Linux 5.3.6
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/224569
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking: igmp conformance test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ L2TP basic test
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ storage: dm/common
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
🚧 ✅ Networking ipsec: basic netns transport
🚧 ✅ Networking ipsec: basic netns tunnel
Host 2:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
ppc64le:
Host 1:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ L2TP basic test
🚧 ✅ Networking ipsec: basic netns tunnel
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ storage: dm/common
🚧 ⚡⚡⚡ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
x86_64:
Host 1:
✅ Boot test
🚧 ✅ IPMI driver test
🚧 ✅ IPMItool loop stress test
Host 2:
✅ Boot test
✅ Storage SAN device stress - megaraid_sas
Host 3:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Host 4:
✅ Boot test
✅ Storage SAN device stress - mpt3sas driver
Host 5:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking: igmp conformance test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
✅ stress: stress-ng
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ⚡⚡⚡ POSIX pjd-fstest suites
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ L2TP basic test
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ storage: dm/common
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
🚧 ✅ Networking ipsec: basic netns transport
🚧 ✅ Networking ipsec: basic netns tunnel
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
The patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From be7ae45cfea97e787234e00e1a9eb341acacd84e Mon Sep 17 00:00:00 2001
From: Marco Felsch <m.felsch(a)pengutronix.de>
Date: Tue, 1 Oct 2019 11:49:21 +0200
Subject: [PATCH] gpio: fix getting nonexclusive gpiods from DT
Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
Currently the gpiolib uses the wrong flags variable for the check. We
need to check the gpiod_flags instead of the of_gpio_flags else we
return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
gpiod's.
Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
Cc: stable(a)vger.kernel.org
Signed-off-by: Marco Felsch <m.felsch(a)pengutronix.de>
[Bartosz: the function was moved to gpiolib-of.c so updated the patch]
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 1eea2c6c2e1d..80ea49f570f4 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -317,7 +317,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
transitory = flags & OF_GPIO_TRANSITORY;
ret = gpiod_request(desc, label);
- if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
+ if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
return desc;
if (ret)
return ERR_PTR(ret);
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bdea6060618cfcf1459dca137e89aee038ac8b9 Mon Sep 17 00:00:00 2001
From: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Date: Sun, 29 Sep 2019 22:09:45 -0500
Subject: [PATCH] Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
In fbtft_framebuffer_alloc the error handling path should take care of
releasing frame buffer after it is allocated via framebuffer_alloc, too.
Therefore, in two failure cases the goto destination is changed to
address this issue.
Fixes: c296d5f9957c ("staging: fbtft: core support")
Signed-off-by: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Link: https://lore.kernel.org/r/20190930030949.28615-1-navid.emamdoost@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index cf5700a2ea66..a0a67aa517f0 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -714,7 +714,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (par->gamma.curves && gamma) {
if (fbtft_gamma_parse_str(par, par->gamma.curves, gamma,
strlen(gamma)))
- goto alloc_fail;
+ goto release_framebuf;
}
/* Transmit buffer */
@@ -731,7 +731,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (txbuflen > 0) {
txbuf = devm_kzalloc(par->info->device, txbuflen, GFP_KERNEL);
if (!txbuf)
- goto alloc_fail;
+ goto release_framebuf;
par->txbuf.buf = txbuf;
par->txbuf.len = txbuflen;
}
@@ -753,6 +753,9 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
return info;
+release_framebuf:
+ framebuffer_release(info);
+
alloc_fail:
vfree(vmem);
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bdea6060618cfcf1459dca137e89aee038ac8b9 Mon Sep 17 00:00:00 2001
From: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Date: Sun, 29 Sep 2019 22:09:45 -0500
Subject: [PATCH] Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
In fbtft_framebuffer_alloc the error handling path should take care of
releasing frame buffer after it is allocated via framebuffer_alloc, too.
Therefore, in two failure cases the goto destination is changed to
address this issue.
Fixes: c296d5f9957c ("staging: fbtft: core support")
Signed-off-by: Navid Emamdoost <navid.emamdoost(a)gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Link: https://lore.kernel.org/r/20190930030949.28615-1-navid.emamdoost@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index cf5700a2ea66..a0a67aa517f0 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -714,7 +714,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (par->gamma.curves && gamma) {
if (fbtft_gamma_parse_str(par, par->gamma.curves, gamma,
strlen(gamma)))
- goto alloc_fail;
+ goto release_framebuf;
}
/* Transmit buffer */
@@ -731,7 +731,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
if (txbuflen > 0) {
txbuf = devm_kzalloc(par->info->device, txbuflen, GFP_KERNEL);
if (!txbuf)
- goto alloc_fail;
+ goto release_framebuf;
par->txbuf.buf = txbuf;
par->txbuf.len = txbuflen;
}
@@ -753,6 +753,9 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
return info;
+release_framebuf:
+ framebuffer_release(info);
+
alloc_fail:
vfree(vmem);
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From e735244e2cf068f98b6384681a38993e0517a838 Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
Date: Tue, 1 Oct 2019 11:44:53 +0200
Subject: [PATCH] gpiolib: don't clear FLAG_IS_OUT when emulating
open-drain/open-source
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index bdbc1649eafa..5833e4f380d6 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3070,8 +3070,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (value)
- return gpiod_direction_input(desc);
+ if (value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_config(gc, gpio_chip_hwgpio(desc),
@@ -3079,8 +3081,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!value)
- return gpiod_direction_input(desc);
+ if (!value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_config(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -3088,6 +3092,17 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
set_output_value:
return gpiod_direction_output_raw_commit(desc, value);
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
EXPORT_SYMBOL_GPL(gpiod_direction_output);
@@ -3448,8 +3463,6 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value)
if (value) {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_output(chip, offset, 0);
if (!ret)
@@ -3479,8 +3492,6 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, ret);
if (ret < 0)
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From e735244e2cf068f98b6384681a38993e0517a838 Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
Date: Tue, 1 Oct 2019 11:44:53 +0200
Subject: [PATCH] gpiolib: don't clear FLAG_IS_OUT when emulating
open-drain/open-source
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index bdbc1649eafa..5833e4f380d6 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3070,8 +3070,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (value)
- return gpiod_direction_input(desc);
+ if (value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_config(gc, gpio_chip_hwgpio(desc),
@@ -3079,8 +3081,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!value)
- return gpiod_direction_input(desc);
+ if (!value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_config(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -3088,6 +3092,17 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
set_output_value:
return gpiod_direction_output_raw_commit(desc, value);
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
EXPORT_SYMBOL_GPL(gpiod_direction_output);
@@ -3448,8 +3463,6 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value)
if (value) {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_output(chip, offset, 0);
if (!ret)
@@ -3479,8 +3492,6 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, ret);
if (ret < 0)
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From e735244e2cf068f98b6384681a38993e0517a838 Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
Date: Tue, 1 Oct 2019 11:44:53 +0200
Subject: [PATCH] gpiolib: don't clear FLAG_IS_OUT when emulating
open-drain/open-source
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index bdbc1649eafa..5833e4f380d6 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3070,8 +3070,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (value)
- return gpiod_direction_input(desc);
+ if (value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_config(gc, gpio_chip_hwgpio(desc),
@@ -3079,8 +3081,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!value)
- return gpiod_direction_input(desc);
+ if (!value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_config(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -3088,6 +3092,17 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
set_output_value:
return gpiod_direction_output_raw_commit(desc, value);
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
EXPORT_SYMBOL_GPL(gpiod_direction_output);
@@ -3448,8 +3463,6 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value)
if (value) {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_output(chip, offset, 0);
if (!ret)
@@ -3479,8 +3492,6 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, ret);
if (ret < 0)
The patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From e735244e2cf068f98b6384681a38993e0517a838 Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
Date: Tue, 1 Oct 2019 11:44:53 +0200
Subject: [PATCH] gpiolib: don't clear FLAG_IS_OUT when emulating
open-drain/open-source
When emulating open-drain/open-source by not actively driving the output
lines - we're simply changing their mode to input. This is wrong as it
will then make it impossible to change the value of such line - it's now
considered to actually be in input mode. If we want to still use the
direction_input() callback for simplicity then we need to set FLAG_IS_OUT
manually in gpiod_direction_output() and not clear it in
gpio_set_open_drain_value_commit() and
gpio_set_open_source_value_commit().
Fixes: c663e5f56737 ("gpio: support native single-ended hardware drivers")
Cc: stable(a)vger.kernel.org
Reported-by: Kent Gibson <warthog618(a)gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index bdbc1649eafa..5833e4f380d6 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3070,8 +3070,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open drain by not actively driving the line high */
- if (value)
- return gpiod_direction_input(desc);
+ if (value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
}
else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) {
ret = gpio_set_config(gc, gpio_chip_hwgpio(desc),
@@ -3079,8 +3081,10 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
if (!ret)
goto set_output_value;
/* Emulate open source by not actively driving the line low */
- if (!value)
- return gpiod_direction_input(desc);
+ if (!value) {
+ ret = gpiod_direction_input(desc);
+ goto set_output_flag;
+ }
} else {
gpio_set_config(gc, gpio_chip_hwgpio(desc),
PIN_CONFIG_DRIVE_PUSH_PULL);
@@ -3088,6 +3092,17 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
set_output_value:
return gpiod_direction_output_raw_commit(desc, value);
+
+set_output_flag:
+ /*
+ * When emulating open-source or open-drain functionalities by not
+ * actively driving the line (setting mode to input) we still need to
+ * set the IS_OUT flag or otherwise we won't be able to set the line
+ * value anymore.
+ */
+ if (ret == 0)
+ set_bit(FLAG_IS_OUT, &desc->flags);
+ return ret;
}
EXPORT_SYMBOL_GPL(gpiod_direction_output);
@@ -3448,8 +3463,6 @@ static void gpio_set_open_drain_value_commit(struct gpio_desc *desc, bool value)
if (value) {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_output(chip, offset, 0);
if (!ret)
@@ -3479,8 +3492,6 @@ static void gpio_set_open_source_value_commit(struct gpio_desc *desc, bool value
set_bit(FLAG_IS_OUT, &desc->flags);
} else {
ret = chip->direction_input(chip, offset);
- if (!ret)
- clear_bit(FLAG_IS_OUT, &desc->flags);
}
trace_gpio_direction(desc_to_gpio(desc), !value, ret);
if (ret < 0)
This is a note to let you know that I've just added the patch titled
staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 153c5d8191c26165dbbd2646448ca7207f7796d0 Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.king(a)canonical.com>
Date: Mon, 14 Oct 2019 12:02:01 +0100
Subject: staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS
Currently the exit return path when sme->key_idx >= NUM_WEPKEYS is via
label 'exit' and this checks if result is non-zero, however result has
not been initialized and contains garbage. Fix this by replacing the
goto with a return with the error code.
Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: 0ca6d8e74489 ("Staging: wlan-ng: replace switch-case statements with macro")
Signed-off-by: Colin Ian King <colin.king(a)canonical.com>
Cc: stable <stable(a)vger.kernel.org>
Link: https://lore.kernel.org/r/20191014110201.9874-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/wlan-ng/cfg80211.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/wlan-ng/cfg80211.c b/drivers/staging/wlan-ng/cfg80211.c
index eee1998c4b18..fac38c842ac5 100644
--- a/drivers/staging/wlan-ng/cfg80211.c
+++ b/drivers/staging/wlan-ng/cfg80211.c
@@ -469,10 +469,8 @@ static int prism2_connect(struct wiphy *wiphy, struct net_device *dev,
/* Set the encryption - we only support wep */
if (is_wep) {
if (sme->key) {
- if (sme->key_idx >= NUM_WEPKEYS) {
- err = -EINVAL;
- goto exit;
- }
+ if (sme->key_idx >= NUM_WEPKEYS)
+ return -EINVAL;
result = prism2_domibset_uint32(wlandev,
DIDMIB_DOT11SMT_PRIVACYTABLE_WEPDEFAULTKEYID,
--
2.23.0
commit ef513be0a905 ("usb: xhci: Add Clear_TT_Buffer") schedules work
to clear TT buffer, but causes a use-after-free regression at the same time
Make sure hub_tt_work finishes before endpoint is disabled, otherwise
the work will dereference already freed endpoint and device related
pointers.
This was triggered when usb core failed to read the configuration
descriptor of a FS/LS device during enumeration.
xhci driver queued clear_tt_work while usb core freed and reallocated
a new device for the next enumeration attempt.
EHCI driver implents ehci_endpoint_disable() that makes sure
clear_tt_work has finished before it returns, but xhci lacks this support.
usb core will call hcd->driver->endpoint_disable() callback before
disabling endpoints, so we want this in xhci as well.
The added xhci_endpoint_disable() is based on ehci_endpoint_disable()
Fixes: ef513be0a905 ("usb: xhci: Add Clear_TT_Buffer")
Cc: <stable(a)vger.kernel.org> # v5.3
Reported-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
---
drivers/usb/host/xhci.c | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 5cfbf9a04494..6e817686d04f 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3071,6 +3071,48 @@ void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int ep_index,
}
}
+static void xhci_endpoint_disable(struct usb_hcd *hcd,
+ struct usb_host_endpoint *host_ep)
+{
+ struct xhci_hcd *xhci;
+ struct xhci_virt_device *vdev;
+ struct xhci_virt_ep *ep;
+ struct usb_device *udev;
+ unsigned long flags;
+ unsigned int ep_index;
+
+ xhci = hcd_to_xhci(hcd);
+rescan:
+ spin_lock_irqsave(&xhci->lock, flags);
+
+ udev = (struct usb_device *)host_ep->hcpriv;
+ if (!udev || !udev->slot_id)
+ goto done;
+
+ vdev = xhci->devs[udev->slot_id];
+ if (!vdev)
+ goto done;
+
+ ep_index = xhci_get_endpoint_index(&host_ep->desc);
+ ep = &vdev->eps[ep_index];
+ if (!ep)
+ goto done;
+
+ /* wait for hub_tt_work to finish clearing hub TT */
+ if (ep->ep_state & EP_CLEARING_TT) {
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ schedule_timeout_uninterruptible(1);
+ goto rescan;
+ }
+
+ if (ep->ep_state)
+ xhci_dbg(xhci, "endpoint disable with ep_state 0x%x\n",
+ ep->ep_state);
+done:
+ host_ep->hcpriv = NULL;
+ spin_unlock_irqrestore(&xhci->lock, flags);
+}
+
/*
* Called after usb core issues a clear halt control message.
* The host side of the halt should already be cleared by a reset endpoint
@@ -5290,6 +5332,7 @@ static const struct hc_driver xhci_hc_driver = {
.free_streams = xhci_free_streams,
.add_endpoint = xhci_add_endpoint,
.drop_endpoint = xhci_drop_endpoint,
+ .endpoint_disable = xhci_endpoint_disable,
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
--
2.7.4
This series is a backport of the ACPI PPTT 6.3 thread flag feature for
supporting arm64 systems.
The background is that some arm64 implementations are broken, in that they
incorrectly advertise that a CPU is mutli-threaded, when it is not - the
HiSilicon Taishanv110 rev 2, aka tsv110, being an example.
This leads to the system topology being incorrect. The reason being that
arm64 topology code uses a combination of ACPI PPTT (Processor Properties
Topology Table) and the system MPIDR (Multiprocessor Affinity Register) MT
bit to determine the topology.
Until ACPI 6.3, the PPTT did not have any method to determine whether
a CPU was multi-threaded, so only the MT bit is used - hence the
broken topology for some systems.
In ACPI 6.3, a PPTT thread flag was introduced, which - when supported -
would be used by the kernel to determine really if a CPU is multi-threaded
or not, so that we don't get incorrect topology.
RFC originally sent: https://lkml.org/lkml/2019/10/10/724
Erik Schmauss (1):
ACPICA: ACPI 6.3: PPTT add additional fields in Processor Structure
Flags
Jeremy Linton (2):
ACPI/PPTT: Add support for ACPI 6.3 thread flag
arm64: topology: Use PPTT to determine if PE is a thread
arch/arm64/kernel/topology.c | 19 ++++++++++---
drivers/acpi/pptt.c | 52 ++++++++++++++++++++++++++++++++++++
include/acpi/actbl2.h | 7 +++--
include/linux/acpi.h | 5 ++++
4 files changed, 77 insertions(+), 6 deletions(-)
--
2.17.1
Everyone:
This series contains patches to fix a couple of regressions in G920
wheel support by hid-logitech-hidpp driver. Without the patches the
wheel remains stuck in autocentering mode ("resisting" any attempt to
trun) as well as missing support for any FF action.
Thanks,
Andrey Smirnov
Andrey Smirnov (3):
HID: logitech-hidpp: use devres to manage FF private data
HID: logitech-hidpp: split g920_get_config()
HID: logitech-hidpp: add G920 device validation quirk
drivers/hid/hid-logitech-hidpp.c | 193 +++++++++++++++++++------------
1 file changed, 120 insertions(+), 73 deletions(-)
--
2.21.0
On Fri 11 Oct 04:57 PDT 2019, Kalle Valo wrote:
> Bjorn Andersson <bjorn.andersson(a)linaro.org> wrote:
>
> > The return value of dma_map_single() should be checked for errors using
> > dma_mapping_error(), rather than testing for NULL. Correct this.
> >
> > Fixes: 1807da49733e ("ath10k: wmi: add management tx by reference support over wmi")
> > Cc: stable(a)vger.kernel.org
> > Reported-by: Niklas Cassel <niklas.cassel(a)linaro.org>
> > Signed-off-by: Bjorn Andersson <bjorn.andersson(a)linaro.org>
>
> Did this fix any real bug? Or is this just something found during code review?
>
CONFIG_DMA_API_DEBUG screamed at us for calling dma_unmap_single()
without ever having called dma_mapping_error() on the return value.
But Govind just pointed out to me that I hastily missed the fact that
this code path leaks the dequeued skb. So I'll respin the patch to fix
both issues at once.
Regards,
Bjorn
> --
> https://patchwork.kernel.org/patch/11183923/
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatc…
>
>
> _______________________________________________
> ath10k mailing list
> ath10k(a)lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k
From: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
The first come first served apporoach to handling the VBT
child device AUX ch conflicts has backfired. We have machines
in the wild where the VBT specifies both port A eDP and
port E DP (in that order) with port E being the real one.
So let's try to flip the preference around and let the last
child device win once again.
Cc: stable(a)vger.kernel.org
Cc: Jani Nikula <jani.nikula(a)intel.com>
Cc: Masami Ichikawa <masami256(a)gmail.com>
Tested-by: Torsten <freedesktop201910(a)liggy.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111966
Fixes: 36a0f92020dc ("drm/i915/bios: make child device order the priority order")
Signed-off-by: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_bios.c | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 9628b485b179..f0307b04cc13 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -1270,7 +1270,7 @@ static void sanitize_ddc_pin(struct drm_i915_private *dev_priv,
DRM_DEBUG_KMS("port %c trying to use the same DDC pin (0x%x) as port %c, "
"disabling port %c DVI/HDMI support\n",
port_name(port), info->alternate_ddc_pin,
- port_name(p), port_name(port));
+ port_name(p), port_name(p));
/*
* If we have multiple ports supposedly sharing the
@@ -1278,9 +1278,14 @@ static void sanitize_ddc_pin(struct drm_i915_private *dev_priv,
* port. Otherwise they share the same ddc bin and
* system couldn't communicate with them separately.
*
- * Give child device order the priority, first come first
- * served.
+ * Give inverse child device order the priority,
+ * last one wins. Yes, there are real machines
+ * (eg. Asrock B250M-HDV) where VBT has both
+ * port A and port E with the same AUX ch and
+ * we must pick port E :(
*/
+ info = &dev_priv->vbt.ddi_port_info[p];
+
info->supports_dvi = false;
info->supports_hdmi = false;
info->alternate_ddc_pin = 0;
@@ -1316,7 +1321,7 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
DRM_DEBUG_KMS("port %c trying to use the same AUX CH (0x%x) as port %c, "
"disabling port %c DP support\n",
port_name(port), info->alternate_aux_channel,
- port_name(p), port_name(port));
+ port_name(p), port_name(p));
/*
* If we have multiple ports supposedlt sharing the
@@ -1324,9 +1329,14 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
* port. Otherwise they share the same aux channel
* and system couldn't communicate with them separately.
*
- * Give child device order the priority, first come first
- * served.
+ * Give inverse child device order the priority,
+ * last one wins. Yes, there are real machines
+ * (eg. Asrock B250M-HDV) where VBT has both
+ * port A and port E with the same AUX ch and
+ * we must pick port E :(
*/
+ info = &dev_priv->vbt.ddi_port_info[p];
+
info->supports_dp = false;
info->alternate_aux_channel = 0;
}
--
2.21.0
>From Tegra186 onwards OUTSTANDING_REQUESTS field is added in channel
configuration register(bits 7:4) which defines the maximum number of reads
from the source and writes to the destination that may be outstanding at
any given point of time. This field must be programmed with a value
between 1 and 8. A value of 0 will prevent any transfers from happening.
Thus added 'has_outstanding_reqs' bool member in chip data structure and is
set to false for Tegra210, since the field is not applicable. For Tegra186
it is set to true and channel configuration is updated with maximum
outstanding requests.
Fixes: 433de642a76c ("dmaengine: tegra210-adma: add support for Tegra186/Tegra194")
Cc: stable(a)vger.kernel.org
Signed-off-by: Sameer Pujar <spujar(a)nvidia.com>
---
drivers/dma/tegra210-adma.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c
index 5f8adf5..6e12685 100644
--- a/drivers/dma/tegra210-adma.c
+++ b/drivers/dma/tegra210-adma.c
@@ -40,6 +40,7 @@
#define ADMA_CH_CONFIG_MAX_BURST_SIZE 16
#define ADMA_CH_CONFIG_WEIGHT_FOR_WRR(val) ((val) & 0xf)
#define ADMA_CH_CONFIG_MAX_BUFS 8
+#define TEGRA186_ADMA_CH_CONFIG_OUTSTANDING_REQS(reqs) (reqs << 4)
#define ADMA_CH_FIFO_CTRL 0x2c
#define TEGRA210_ADMA_CH_FIFO_CTRL_TXSIZE(val) (((val) & 0xf) << 8)
@@ -77,6 +78,7 @@ struct tegra_adma;
* @ch_req_tx_shift: Register offset for AHUB transmit channel select.
* @ch_req_rx_shift: Register offset for AHUB receive channel select.
* @ch_base_offset: Register offset of DMA channel registers.
+ * @has_outstanding_reqs: If DMA channel can have outstanding requests.
* @ch_fifo_ctrl: Default value for channel FIFO CTRL register.
* @ch_req_mask: Mask for Tx or Rx channel select.
* @ch_req_max: Maximum number of Tx or Rx channels available.
@@ -95,6 +97,7 @@ struct tegra_adma_chip_data {
unsigned int ch_req_max;
unsigned int ch_reg_size;
unsigned int nr_channels;
+ bool has_outstanding_reqs;
};
/*
@@ -594,6 +597,8 @@ static int tegra_adma_set_xfer_params(struct tegra_adma_chan *tdc,
ADMA_CH_CTRL_FLOWCTRL_EN;
ch_regs->config |= cdata->adma_get_burst_config(burst_size);
ch_regs->config |= ADMA_CH_CONFIG_WEIGHT_FOR_WRR(1);
+ if (cdata->has_outstanding_reqs)
+ ch_regs->config |= TEGRA186_ADMA_CH_CONFIG_OUTSTANDING_REQS(8);
ch_regs->fifo_ctrl = cdata->ch_fifo_ctrl;
ch_regs->tc = desc->period_len & ADMA_CH_TC_COUNT_MASK;
@@ -778,6 +783,7 @@ static const struct tegra_adma_chip_data tegra210_chip_data = {
.ch_req_tx_shift = 28,
.ch_req_rx_shift = 24,
.ch_base_offset = 0,
+ .has_outstanding_reqs = false,
.ch_fifo_ctrl = TEGRA210_FIFO_CTRL_DEFAULT,
.ch_req_mask = 0xf,
.ch_req_max = 10,
@@ -792,6 +798,7 @@ static const struct tegra_adma_chip_data tegra186_chip_data = {
.ch_req_tx_shift = 27,
.ch_req_rx_shift = 22,
.ch_base_offset = 0x10000,
+ .has_outstanding_reqs = true,
.ch_fifo_ctrl = TEGRA186_FIFO_CTRL_DEFAULT,
.ch_req_mask = 0x1f,
.ch_req_max = 20,
--
2.7.4
If a process is interrupted while accessing the crypto device and the
global ap_perms_mutex is contented, release() could return early and
fail to free related resources.
Fixes: 00fab2350e6b ("s390/zcrypt: multiple zcrypt device nodes support")
Cc: stable <stable(a)vger.kernel.org> # 4.19
Cc: Harald Freudenberger <freude(a)linux.ibm.com>
Cc: Martin Schwidefsky <schwidefsky(a)de.ibm.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/s390/crypto/zcrypt_api.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c
index 45bdb47f84c1..9157e728a362 100644
--- a/drivers/s390/crypto/zcrypt_api.c
+++ b/drivers/s390/crypto/zcrypt_api.c
@@ -522,8 +522,7 @@ static int zcrypt_release(struct inode *inode, struct file *filp)
if (filp->f_inode->i_cdev == &zcrypt_cdev) {
struct zcdn_device *zcdndev;
- if (mutex_lock_interruptible(&ap_perms_mutex))
- return -ERESTARTSYS;
+ mutex_lock(&ap_perms_mutex);
zcdndev = find_zcdndev_by_devt(filp->f_inode->i_rdev);
mutex_unlock(&ap_perms_mutex);
if (zcdndev) {
--
2.23.0
This reverts commit 6f7fe9a93e6c09bf988c5059403f5f88e17e21e6.
This breaks some boards. Maybe just enable this on PPC for
now?
Bug: https://bugzilla.kernel.org/show_bug.cgi?id=205147
Signed-off-by: Alex Deucher <alexander.deucher(a)amd.com>
Cc: stable(a)vger.kernel.org
---
drivers/gpu/drm/radeon/radeon_drv.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 4267cb55bc33..2bc56f829bf7 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -378,19 +378,11 @@ radeon_pci_remove(struct pci_dev *pdev)
static void
radeon_pci_shutdown(struct pci_dev *pdev)
{
- struct drm_device *ddev = pci_get_drvdata(pdev);
-
/* if we are running in a VM, make sure the device
* torn down properly on reboot/shutdown
*/
if (radeon_device_is_virtual())
radeon_pci_remove(pdev);
-
- /* Some adapters need to be suspended before a
- * shutdown occurs in order to prevent an error
- * during kexec.
- */
- radeon_suspend_kms(ddev, true, true, false);
}
static int radeon_pmops_suspend(struct device *dev)
--
2.20.1
Commit aea447141c7e ("powerpc: Disable -Wbuiltin-requires-header when
setjmp is used") disabled -Wbuiltin-requires-header because of a warning
about the setjmp and longjmp declarations.
r367387 in clang added another diagnostic around this, complaining that
there is no jmp_buf declaration.
In file included from ../arch/powerpc/xmon/xmon.c:47:
../arch/powerpc/include/asm/setjmp.h:10:13: error: declaration of
built-in function 'setjmp' requires the declaration of the 'jmp_buf'
type, commonly provided in the header <setjmp.h>.
[-Werror,-Wincomplete-setjmp-declaration]
extern long setjmp(long *);
^
../arch/powerpc/include/asm/setjmp.h:11:13: error: declaration of
built-in function 'longjmp' requires the declaration of the 'jmp_buf'
type, commonly provided in the header <setjmp.h>.
[-Werror,-Wincomplete-setjmp-declaration]
extern void longjmp(long *, long);
^
2 errors generated.
We are not using the standard library's longjmp/setjmp implementations
for obvious reasons; make this clear to clang by using -ffreestanding
on these files.
Cc: stable(a)vger.kernel.org # 4.14+
Link: https://github.com/ClangBuiltLinux/linux/issues/625
Link: https://github.com/llvm/llvm-project/commit/3be25e79477db2d31ac46493d97eca8…
Link: https://godbolt.org/z/B2oQnl
Suggested-by: Segher Boessenkool <segher(a)kernel.crashing.org>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Nathan Chancellor <natechancellor(a)gmail.com>
---
v1 -> v3 (I skipped v2 because the first patch in the series already
had a v2):
* Use -ffreestanding instead of outright disabling the warning because
it is legitimate.
v3 -> v4:
* Rebase on v5.4-rc3
* Add Nick's reviewed-by and Compiler Explorer link.
arch/powerpc/kernel/Makefile | 4 ++--
arch/powerpc/xmon/Makefile | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index a7ca8fe62368..f1f362146135 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -5,8 +5,8 @@
CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
-# Disable clang warning for using setjmp without setjmp.h header
-CFLAGS_crash.o += $(call cc-disable-warning, builtin-requires-header)
+# Avoid clang warnings around longjmp/setjmp declarations
+CFLAGS_crash.o += -ffreestanding
ifdef CONFIG_PPC64
CFLAGS_prom_init.o += $(NO_MINIMAL_TOC)
diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
index f142570ad860..c3842dbeb1b7 100644
--- a/arch/powerpc/xmon/Makefile
+++ b/arch/powerpc/xmon/Makefile
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
# Makefile for xmon
-# Disable clang warning for using setjmp without setjmp.h header
-subdir-ccflags-y := $(call cc-disable-warning, builtin-requires-header)
+# Avoid clang warnings around longjmp/setjmp declarations
+subdir-ccflags-y := -ffreestanding
GCOV_PROFILE := n
KCOV_INSTRUMENT := n
--
2.23.0
From: "Srivatsa S. Bhat (VMware)" <srivatsa(a)csail.mit.edu>
max_latency is intended to record the maximum ever observed hardware
latency, which may occur in either part of the loop (inner/outer). So
we need to also consider the outer-loop sample when updating
max_latency.
Link: http://lkml.kernel.org/r/157073345463.17189.18124025522664682811.stgit@sriv…
Fixes: e7c15cd8a113 ("tracing: Added hardware latency tracer")
Cc: stable(a)vger.kernel.org
Signed-off-by: Srivatsa S. Bhat (VMware) <srivatsa(a)csail.mit.edu>
Signed-off-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
---
kernel/trace/trace_hwlat.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
index a0251a78807d..862f4b0139fc 100644
--- a/kernel/trace/trace_hwlat.c
+++ b/kernel/trace/trace_hwlat.c
@@ -256,6 +256,8 @@ static int get_sample(void)
/* Keep a running maximum ever recorded hardware latency */
if (sample > tr->max_latency)
tr->max_latency = sample;
+ if (outer_sample > tr->max_latency)
+ tr->max_latency = outer_sample;
}
out:
--
2.23.0
From: "Srivatsa S. Bhat (VMware)" <srivatsa(a)csail.mit.edu>
nmi_total_ts is supposed to record the total time spent in *all* NMIs
that occur on the given CPU during the (active portion of the)
sampling window. However, the code seems to be overwriting this
variable for each NMI, thereby only recording the time spent in the
most recent NMI. Fix it by accumulating the duration instead.
Link: http://lkml.kernel.org/r/157073343544.17189.13911783866738671133.stgit@sriv…
Fixes: 7b2c86250122 ("tracing: Add NMI tracing in hwlat detector")
Cc: stable(a)vger.kernel.org
Signed-off-by: Srivatsa S. Bhat (VMware) <srivatsa(a)csail.mit.edu>
Signed-off-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
---
kernel/trace/trace_hwlat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
index fa95139445b2..a0251a78807d 100644
--- a/kernel/trace/trace_hwlat.c
+++ b/kernel/trace/trace_hwlat.c
@@ -150,7 +150,7 @@ void trace_hwlat_callback(bool enter)
if (enter)
nmi_ts_start = time_get();
else
- nmi_total_ts = time_get() - nmi_ts_start;
+ nmi_total_ts += time_get() - nmi_ts_start;
}
if (enter)
--
2.23.0
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
Commit: 71e7fa7873ec - Merge branch 'stable-next' of ssh://chubbybox:/home/sasha/data/next into stable-next
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/222115
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
aarch64: FAILED (see build-aarch64.log.xz attachment)
ppc64le: FAILED (see build-ppc64le.log.xz attachment)
s390x: FAILED (see build-s390x.log.xz attachment)
x86_64: FAILED (see build-x86_64.log.xz attachment)
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
From: Gregory Greenman <gregory.greenman(a)intel.com>
[ Upstream commit 23babdf06779482a65c5072a145d826a62979534 ]
iwl_mvm_rs_tx_status can be called from two places in the code, but the
mutex is taken only on one of the calls. Split it into a wrapper taking
locks and an internal __iwl_mvm_rs_tx_status function.
Signed-off-by: Gregory Greenman <gregory.greenman(a)intel.com>
Signed-off-by: Luca Coelho <luciano.coelho(a)intel.com>
Signed-off-by: Johannes Berg <johannes.berg(a)intel.com>
---
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 28 ++++++++++++++-------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
index 01b032f18bc8..8a17b8e705e8 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -1218,8 +1218,10 @@ void iwl_mvm_rs_init_wk(struct work_struct *wk)
rcu_read_unlock();
}
-void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
- int tid, struct ieee80211_tx_info *info, bool ndp)
+static void __iwl_mvm_rs_tx_status(struct iwl_mvm *mvm,
+ struct ieee80211_sta *sta,
+ int tid, struct ieee80211_tx_info *info,
+ bool ndp)
{
int legacy_success;
int retries;
@@ -1452,6 +1454,21 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
rs_rate_scale_perform(mvm, sta, lq_sta, tid, ndp);
}
+void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
+ int tid, struct ieee80211_tx_info *info, bool ndp)
+{
+ struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
+
+ /* If it's locked we are in middle of init flow
+ * just wait for next tx status to update the lq_sta data
+ */
+ if (!mutex_trylock(&mvmsta->lq_sta.rs_drv.mutex))
+ return;
+
+ __iwl_mvm_rs_tx_status(mvm, sta, tid, info, ndp);
+ mutex_unlock(&mvmsta->lq_sta.rs_drv.mutex);
+}
+
/*
* mac80211 sends us Tx status
*/
@@ -1473,15 +1490,8 @@ static void rs_drv_mac80211_tx_status(void *mvm_r,
info->flags & IEEE80211_TX_CTL_NO_ACK)
return;
- /* If it's locked we are in middle of init flow
- * just wait for next tx status to update the lq_sta data
- */
- if (!mutex_trylock(&mvmsta->lq_sta.rs_drv.mutex))
- return;
-
iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info,
ieee80211_is_qos_nullfunc(hdr->frame_control));
- mutex_unlock(&mvmsta->lq_sta.rs_drv.mutex);
}
/*
--
2.23.0
I'm announcing the release of the 4.14.149 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.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/powerpc/kvm/book3s_hv.c | 9
arch/powerpc/kvm/book3s_xive.c | 18 +
arch/powerpc/mm/hash_utils_64.c | 9
arch/powerpc/platforms/powernv/opal.c | 11 -
arch/powerpc/platforms/pseries/lpar.c | 8
arch/s390/kernel/process.c | 22 +-
arch/s390/kernel/topology.c | 3
arch/s390/kvm/kvm-s390.c | 2
arch/x86/kvm/vmx.c | 2
crypto/skcipher.c | 42 ++--
drivers/block/nbd.c | 61 ++++--
drivers/crypto/caam/caamalg_desc.c | 9
drivers/crypto/caam/caamalg_desc.h | 2
drivers/crypto/cavium/zip/zip_main.c | 3
drivers/crypto/qat/qat_common/adf_common_drv.h | 2
drivers/devfreq/tegra-devfreq.c | 12 -
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3
drivers/gpu/drm/omapdrm/dss/dss.c | 2
drivers/hwtracing/coresight/coresight-etm4x.c | 14 +
drivers/mmc/host/sdhci-of-esdhc.c | 7
drivers/mmc/host/sdhci.c | 15 +
drivers/net/can/spi/mcp251x.c | 19 +-
drivers/net/ieee802154/atusb.c | 3
drivers/pwm/pwm-stm32-lp.c | 6
drivers/s390/cio/ccwgroup.c | 2
drivers/s390/cio/css.c | 2
drivers/thermal/thermal_core.c | 2
drivers/watchdog/aspeed_wdt.c | 4
drivers/watchdog/imx2_wdt.c | 4
drivers/xen/pci.c | 21 +-
drivers/xen/xenbus/xenbus_dev_frontend.c | 20 +-
fs/9p/vfs_file.c | 3
fs/ceph/inode.c | 7
fs/ceph/mds_client.c | 4
fs/fuse/cuse.c | 1
fs/nfs/nfs4xdr.c | 2
fs/nfs/pnfs.c | 9
fs/statfs.c | 17 -
include/linux/ieee80211.h | 53 +++++
include/sound/soc-dapm.h | 2
kernel/elfcore.c | 1
kernel/locking/qspinlock_paravirt.h | 2
kernel/sched/core.c | 4
kernel/time/tick-broadcast-hrtimer.c | 57 +++---
kernel/time/timer.c | 8
mm/usercopy.c | 8
net/netfilter/nf_tables_api.c | 7
net/netfilter/nft_lookup.c | 3
net/wireless/nl80211.c | 42 ++++
net/wireless/reg.c | 2
net/wireless/scan.c | 14 -
net/wireless/wext-compat.c | 2
security/integrity/ima/ima_crypto.c | 5
sound/soc/codecs/sgtl5000.c | 232 +++++++++++++++++++++----
tools/lib/traceevent/Makefile | 4
tools/lib/traceevent/event-parse.c | 3
tools/perf/Makefile.config | 2
tools/perf/arch/x86/util/unwind-libunwind.c | 2
tools/perf/builtin-stat.c | 5
tools/perf/util/header.c | 2
tools/perf/util/stat.c | 17 +
tools/perf/util/stat.h | 1
63 files changed, 656 insertions(+), 206 deletions(-)
Alexander Sverdlin (1):
crypto: qat - Silence smp_processor_id() warning
Andrew Donnellan (1):
powerpc/powernv: Restrict OPAL symbol map to only be readable by root
Andrew Murray (1):
coresight: etm4x: Use explicit barriers on enable/disable
Arnaldo Carvalho de Melo (1):
perf unwind: Fix libunwind build failure on i386 systems
Balasubramani Vivekanandan (1):
tick: broadcast-hrtimer: Fix a race in bc_set_next
Chengguang Xu (1):
9p: avoid attaching writeback_fid on mmap with type PRIVATE
Cédric Le Goater (1):
KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before disabling the VP
Dan Melnic (1):
block/ndb: add WQ_UNBOUND to the knbd-recv workqueue
Dmitry Osipenko (1):
PM / devfreq: tegra: Fix kHz to Hz conversion
Eric Sandeen (1):
vfs: Fix EOVERFLOW testing in put_compat_statfs64
Erqi Chen (1):
ceph: reconnect connection if session hang in opening state
Fabrice Gasnier (1):
pwm: stm32-lp: Add check in case requested period cannot be achieved
Florian Westphal (1):
netfilter: nf_tables: allow lookups in dynamic sets
Gautham R. Shenoy (1):
powerpc/pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
Greg Kroah-Hartman (1):
Linux 4.14.149
Herbert Xu (1):
crypto: skcipher - Unmap pages after an external error
Horia Geantă (1):
crypto: caam - fix concurrency issue in givencrypt descriptor
Ido Schimmel (1):
thermal: Fix use-after-free when unregistering thermal zone device
Igor Druzhinin (1):
xen/pci: reserve MCFG areas earlier
Jack Wang (1):
KVM: nVMX: handle page fault in vmread fix
Jia-Ju Bai (1):
fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
Jiri Olsa (1):
perf tools: Fix segfault in cpu_cache_level__read()
Johan Hovold (1):
ieee802154: atusb: fix use-after-free at disconnect
Johannes Berg (3):
cfg80211: initialize on-stack chandefs
cfg80211: add and use strongly typed element iteration macros
nl80211: validate beacon head
Jouni Malinen (1):
cfg80211: Use const more consistently in for_each_element macros
Juergen Gross (1):
xen/xenbus: fix self-deadlock after killing user process
KeMeng Shi (1):
sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
Kees Cook (1):
usercopy: Avoid HIGHMEM pfn warning
Li RongQing (1):
timer: Read jiffies once when forwarding base clk
Luis Henriques (1):
ceph: fix directories inode i_blkbits initialization
Marc Kleine-Budde (1):
can: mcp251x: mcp251x_hw_reset(): allow more time after a reset
Mike Christie (1):
nbd: fix max number of supported devs
Oleksandr Suvorov (2):
ASoC: Define a set of DAPM pre/post-up events
ASoC: sgtl5000: Improve VAG power and mute control
Paul Mackerras (1):
KVM: PPC: Book3S HV: Don't lose pending doorbell request on migration on P9
Rasmus Villemoes (1):
watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
Russell King (2):
mmc: sdhci: improve ADMA error reporting
mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence
Ryan Chen (1):
watchdog: aspeed: Add support for AST2600
Sascha Hauer (1):
ima: always return negative code for error
Srikar Dronamraju (2):
perf stat: Fix a segmentation fault when using repeat forever
perf stat: Reset previous counts on repeat with interval
Steven Rostedt (VMware) (2):
tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on failure
Thomas Huth (1):
KVM: s390: Test for bad access register and size at the start of S390_MEM_OP
Thomas Richter (1):
perf build: Add detection of java-11-openjdk-devel package
Tomi Valkeinen (1):
drm/omap: fix max fclk divider for omap36xx
Trek (1):
drm/amdgpu: Check for valid number of registers to read
Trond Myklebust (1):
pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors
Valdis Kletnieks (1):
kernel/elfcore.c: include proper prototypes
Vasily Gorbik (4):
s390/process: avoid potential reading of freed stack
s390/topology: avoid firing events before kobjs are created
s390/cio: avoid calling strlen on null pointer
s390/cio: exclude subchannels with no parent from pseudo check
Wanpeng Li (1):
Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
Wei Yongjun (1):
crypto: cavium/zip - Add missing single_release()
Xiubo Li (1):
nbd: fix crash when the blksize is zero
zhengbin (1):
fuse: fix memleak in cuse_channel_open
The patch titled
Subject: mm: memcg/slab: fix panic in __free_slab() caused by premature memcg pointer release
has been added to the -mm tree. Its filename is
mm-memcg-slab-fix-panic-in-__free_slab-caused-by-premature-memcg-pointer-release.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-memcg-slab-fix-panic-in-__free_…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-memcg-slab-fix-panic-in-__free_…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Roman Gushchin <guro(a)fb.com>
Subject: mm: memcg/slab: fix panic in __free_slab() caused by premature memcg pointer release
Karsten reported the following panic in __free_slab() happening on a s390x
machine:
349.361168¨ Unable to handle kernel pointer dereference in virtual kernel address space
349.361210¨ Failing address: 0000000000000000 TEID: 0000000000000483
349.361223¨ Fault in home space mode while using kernel ASCE.
349.361240¨ AS:00000000017d4007 R3:000000007fbd0007 S:000000007fbff000 P:000000000000003d
349.361340¨ Oops: 0004 ilc:3 Ý#1¨ PREEMPT SMP
349.361349¨ Modules linked in: tcp_diag inet_diag xt_tcpudp ip6t_rpfilter ip6t_REJECT \
nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat ip6table_mangle \
ip6table_raw ip6table_security iptable_at nf_nat
349.361436¨ CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.0-05872-g6133e3e4bada-dirty #14
349.361445¨ Hardware name: IBM 2964 NC9 702 (z/VM 6.4.0)
349.361450¨ Krnl PSW : 0704d00180000000 00000000003cadb6 (__free_slab+0x686/0x6b0)
349.361464¨ R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 RI:0 EA:3
349.361470¨ Krnl GPRS: 00000000f3a32928 0000000000000000 000000007fbf5d00 000000000117c4b8
349.361475¨ 0000000000000000 000000009e3291c1 0000000000000000 0000000000000000
349.361481¨ 0000000000000003 0000000000000008 000000002b478b00 000003d080a97600
349.361481¨ 0000000000000003 0000000000000008 000000002b478b00 000003d080a97600
349.361486¨ 000000000117ba00 000003e000057db0 00000000003cabcc 000003e000057c78
349.361500¨ Krnl Code: 00000000003cada6: e310a1400004 lg %r1,320(%r10)
349.361500¨ 00000000003cadac: c0e50046c286 brasl %r14,ca32b8
349.361500¨ #00000000003cadb2: a7f4fe36 brc 15,3caa1e
349.361500¨ >00000000003cadb6: e32060800024 stg %r2,128(%r6)
349.361500¨ 00000000003cadbc: a7f4fd9e brc 15,3ca8f8
349.361500¨ 00000000003cadc0: c0e50046790c brasl %r14,c99fd8
349.361500¨ 00000000003cadc6: a7f4fe2c brc 15,3caa
349.361500¨ 00000000003cadc6: a7f4fe2c brc 15,3caa1e
349.361500¨ 00000000003cadca: ecb1ffff00d9 aghik %r11,%r1,-1
349.361619¨ Call Trace:
349.361627¨ (Ý<00000000003cabcc>¨ __free_slab+0x49c/0x6b0)
349.361634¨ Ý<00000000001f5886>¨ rcu_core+0x5a6/0x7e0
349.361643¨ Ý<0000000000ca2dea>¨ __do_softirq+0xf2/0x5c0
349.361652¨ Ý<0000000000152644>¨ irq_exit+0x104/0x130
349.361659¨ Ý<000000000010d222>¨ do_IRQ+0x9a/0xf0
349.361667¨ Ý<0000000000ca2344>¨ ext_int_handler+0x130/0x134
349.361674¨ Ý<0000000000103648>¨ enabled_wait+0x58/0x128
349.361681¨ (Ý<0000000000103634>¨ enabled_wait+0x44/0x128)
349.361688¨ Ý<0000000000103b00>¨ arch_cpu_idle+0x40/0x58
349.361695¨ Ý<0000000000ca0544>¨ default_idle_call+0x3c/0x68
349.361704¨ Ý<000000000018eaa4>¨ do_idle+0xec/0x1c0
349.361748¨ Ý<000000000018ee0e>¨ cpu_startup_entry+0x36/0x40
349.361756¨ Ý<000000000122df34>¨ arch_call_rest_init+0x5c/0x88
349.361761¨ Ý<0000000000000000>¨ 0x0
349.361765¨ INFO: lockdep is turned off.
349.361769¨ Last Breaking-Event-Address:
349.361774¨ Ý<00000000003ca8f4>¨ __free_slab+0x1c4/0x6b0
349.361781¨ Kernel panic - not syncing: Fatal exception in interrupt
The kernel panics on an attempt to dereference the NULL memcg pointer.
When shutdown_cache() is called from the kmem_cache_destroy() context, a
memcg kmem_cache might have empty slab pages in a partial list, which are
still charged to the memory cgroup. These pages are released by
free_partial() at the beginning of shutdown_cache(): either directly or by
scheduling a RCU-delayed work (if the kmem_cache has the
SLAB_TYPESAFE_BY_RCU flag). The latter case is when the reported panic
can happen: memcg_unlink_cache() is called immediately after shrinking
partial lists, without waiting for scheduled RCU works. It sets the
kmem_cache->memcg_params.memcg pointer to NULL, and the following attempt
to dereference it by __free_slab() from the RCU work context causes the
panic.
To fix the issue, let's postpone the release of the memcg pointer to
destroy_memcg_params(). It's called from a separate work context by
slab_caches_to_rcu_destroy_workfn(), which contains a full RCU barrier.
This guarantees that all scheduled page release RCU works will complete
before the memcg pointer will be zeroed.
Big thanks for Karsten for the perfect report containing all necessary
information, his help with the analysis of the problem and testing of the
fix.
Link: http://lkml.kernel.org/r/20191010160549.1584316-1-guro@fb.com
Fixes: fb2f2b0adb98 ("mm: memcg/slab: reparent memcg kmem_caches on cgroup removal")
Signed-off-by: Roman Gushchin <guro(a)fb.com>
Reported-by: Karsten Graul <kgraul(a)linux.ibm.com>
Tested-by: Karsten Graul <kgraul(a)linux.ibm.com>
Acked-by: Vlastimil Babka <vbabka(a)suse.cz>
Reviewed-by: Shakeel Butt <shakeelb(a)google.com>
Cc: Karsten Graul <kgraul(a)linux.ibm.com>
Cc: Vladimir Davydov <vdavydov.dev(a)gmail.com>
Cc: David Rientjes <rientjes(a)google.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/slab_common.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--- a/mm/slab_common.c~mm-memcg-slab-fix-panic-in-__free_slab-caused-by-premature-memcg-pointer-release
+++ a/mm/slab_common.c
@@ -178,10 +178,13 @@ static int init_memcg_params(struct kmem
static void destroy_memcg_params(struct kmem_cache *s)
{
- if (is_root_cache(s))
+ if (is_root_cache(s)) {
kvfree(rcu_access_pointer(s->memcg_params.memcg_caches));
- else
+ } else {
+ mem_cgroup_put(s->memcg_params.memcg);
+ WRITE_ONCE(s->memcg_params.memcg, NULL);
percpu_ref_exit(&s->memcg_params.refcnt);
+ }
}
static void free_memcg_params(struct rcu_head *rcu)
@@ -253,8 +256,6 @@ static void memcg_unlink_cache(struct km
} else {
list_del(&s->memcg_params.children_node);
list_del(&s->memcg_params.kmem_caches_node);
- mem_cgroup_put(s->memcg_params.memcg);
- WRITE_ONCE(s->memcg_params.memcg, NULL);
}
}
#else
_
Patches currently in -mm which might be from guro(a)fb.com are
mm-memcg-slab-fix-panic-in-__free_slab-caused-by-premature-memcg-pointer-release.patch
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 2aa85f246c181b1fa89f27e8e20c5636426be624
Gitweb: https://git.kernel.org/tip/2aa85f246c181b1fa89f27e8e20c5636426be624
Author: Steve Wahl <steve.wahl(a)hpe.com>
AuthorDate: Tue, 24 Sep 2019 16:03:55 -05:00
Committer: Borislav Petkov <bp(a)suse.de>
CommitterDate: Fri, 11 Oct 2019 18:38:15 +02:00
x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area
Our hardware (UV aka Superdome Flex) has address ranges marked
reserved by the BIOS. Access to these ranges is caught as an error,
causing the BIOS to halt the system.
Initial page tables mapped a large range of physical addresses that
were not checked against the list of BIOS reserved addresses, and
sometimes included reserved addresses in part of the mapped range.
Including the reserved range in the map allowed processor speculative
accesses to the reserved range, triggering a BIOS halt.
Used early in booting, the page table level2_kernel_pgt addresses 1
GiB divided into 2 MiB pages, and it was set up to linearly map a full
1 GiB of physical addresses that included the physical address range
of the kernel image, as chosen by KASLR. But this also included a
large range of unused addresses on either side of the kernel image.
And unlike the kernel image's physical address range, this extra
mapped space was not checked against the BIOS tables of usable RAM
addresses. So there were times when the addresses chosen by KASLR
would result in processor accessible mappings of BIOS reserved
physical addresses.
The kernel code did not directly access any of this extra mapped
space, but having it mapped allowed the processor to issue speculative
accesses into reserved memory, causing system halts.
This was encountered somewhat rarely on a normal system boot, and much
more often when starting the crash kernel if "crashkernel=512M,high"
was specified on the command line (this heavily restricts the physical
address of the crash kernel, in our case usually within 1 GiB of
reserved space).
The solution is to invalidate the pages of this table outside the kernel
image's space before the page table is activated. It fixes this problem
on our hardware.
[ bp: Touchups. ]
Signed-off-by: Steve Wahl <steve.wahl(a)hpe.com>
Signed-off-by: Borislav Petkov <bp(a)suse.de>
Acked-by: Dave Hansen <dave.hansen(a)linux.intel.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Baoquan He <bhe(a)redhat.com>
Cc: Brijesh Singh <brijesh.singh(a)amd.com>
Cc: dimitri.sivanich(a)hpe.com
Cc: Feng Tang <feng.tang(a)intel.com>
Cc: "H. Peter Anvin" <hpa(a)zytor.com>
Cc: Ingo Molnar <mingo(a)redhat.com>
Cc: Jordan Borgner <mail(a)jordan-borgner.de>
Cc: Juergen Gross <jgross(a)suse.com>
Cc: mike.travis(a)hpe.com
Cc: russ.anderson(a)hpe.com
Cc: stable(a)vger.kernel.org
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: x86-ml <x86(a)kernel.org>
Cc: Zhenzhong Duan <zhenzhong.duan(a)oracle.com>
Link: https://lkml.kernel.org/r/9c011ee51b081534a7a15065b1681d200298b530.15693585…
---
arch/x86/kernel/head64.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 29ffa49..206a4b6 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -222,13 +222,31 @@ unsigned long __head __startup_64(unsigned long physaddr,
* we might write invalid pmds, when the kernel is relocated
* cleanup_highmap() fixes this up along with the mappings
* beyond _end.
+ *
+ * Only the region occupied by the kernel image has so far
+ * been checked against the table of usable memory regions
+ * provided by the firmware, so invalidate pages outside that
+ * region. A page table entry that maps to a reserved area of
+ * memory would allow processor speculation into that area,
+ * and on some hardware (particularly the UV platform) even
+ * speculative access to some reserved areas is caught as an
+ * error, causing the BIOS to halt the system.
*/
pmd = fixup_pointer(level2_kernel_pgt, physaddr);
- for (i = 0; i < PTRS_PER_PMD; i++) {
+
+ /* invalidate pages before the kernel image */
+ for (i = 0; i < pmd_index((unsigned long)_text); i++)
+ pmd[i] &= ~_PAGE_PRESENT;
+
+ /* fixup pages that are part of the kernel image */
+ for (; i <= pmd_index((unsigned long)_end); i++)
if (pmd[i] & _PAGE_PRESENT)
pmd[i] += load_delta;
- }
+
+ /* invalidate pages after the kernel image */
+ for (; i < PTRS_PER_PMD; i++)
+ pmd[i] &= ~_PAGE_PRESENT;
/*
* Fixup phys_base - remove the memory encryption mask to obtain
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 2aa85f246c181b1fa89f27e8e20c5636426be624
Gitweb: https://git.kernel.org/tip/2aa85f246c181b1fa89f27e8e20c5636426be624
Author: Steve Wahl <steve.wahl(a)hpe.com>
AuthorDate: Tue, 24 Sep 2019 16:03:55 -05:00
Committer: Borislav Petkov <bp(a)suse.de>
CommitterDate: Fri, 11 Oct 2019 18:38:15 +02:00
x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area
Our hardware (UV aka Superdome Flex) has address ranges marked
reserved by the BIOS. Access to these ranges is caught as an error,
causing the BIOS to halt the system.
Initial page tables mapped a large range of physical addresses that
were not checked against the list of BIOS reserved addresses, and
sometimes included reserved addresses in part of the mapped range.
Including the reserved range in the map allowed processor speculative
accesses to the reserved range, triggering a BIOS halt.
Used early in booting, the page table level2_kernel_pgt addresses 1
GiB divided into 2 MiB pages, and it was set up to linearly map a full
1 GiB of physical addresses that included the physical address range
of the kernel image, as chosen by KASLR. But this also included a
large range of unused addresses on either side of the kernel image.
And unlike the kernel image's physical address range, this extra
mapped space was not checked against the BIOS tables of usable RAM
addresses. So there were times when the addresses chosen by KASLR
would result in processor accessible mappings of BIOS reserved
physical addresses.
The kernel code did not directly access any of this extra mapped
space, but having it mapped allowed the processor to issue speculative
accesses into reserved memory, causing system halts.
This was encountered somewhat rarely on a normal system boot, and much
more often when starting the crash kernel if "crashkernel=512M,high"
was specified on the command line (this heavily restricts the physical
address of the crash kernel, in our case usually within 1 GiB of
reserved space).
The solution is to invalidate the pages of this table outside the kernel
image's space before the page table is activated. It fixes this problem
on our hardware.
[ bp: Touchups. ]
Signed-off-by: Steve Wahl <steve.wahl(a)hpe.com>
Signed-off-by: Borislav Petkov <bp(a)suse.de>
Acked-by: Dave Hansen <dave.hansen(a)linux.intel.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Baoquan He <bhe(a)redhat.com>
Cc: Brijesh Singh <brijesh.singh(a)amd.com>
Cc: dimitri.sivanich(a)hpe.com
Cc: Feng Tang <feng.tang(a)intel.com>
Cc: "H. Peter Anvin" <hpa(a)zytor.com>
Cc: Ingo Molnar <mingo(a)redhat.com>
Cc: Jordan Borgner <mail(a)jordan-borgner.de>
Cc: Juergen Gross <jgross(a)suse.com>
Cc: mike.travis(a)hpe.com
Cc: russ.anderson(a)hpe.com
Cc: stable(a)vger.kernel.org
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: x86-ml <x86(a)kernel.org>
Cc: Zhenzhong Duan <zhenzhong.duan(a)oracle.com>
Link: https://lkml.kernel.org/r/9c011ee51b081534a7a15065b1681d200298b530.15693585…
---
arch/x86/kernel/head64.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 29ffa49..206a4b6 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -222,13 +222,31 @@ unsigned long __head __startup_64(unsigned long physaddr,
* we might write invalid pmds, when the kernel is relocated
* cleanup_highmap() fixes this up along with the mappings
* beyond _end.
+ *
+ * Only the region occupied by the kernel image has so far
+ * been checked against the table of usable memory regions
+ * provided by the firmware, so invalidate pages outside that
+ * region. A page table entry that maps to a reserved area of
+ * memory would allow processor speculation into that area,
+ * and on some hardware (particularly the UV platform) even
+ * speculative access to some reserved areas is caught as an
+ * error, causing the BIOS to halt the system.
*/
pmd = fixup_pointer(level2_kernel_pgt, physaddr);
- for (i = 0; i < PTRS_PER_PMD; i++) {
+
+ /* invalidate pages before the kernel image */
+ for (i = 0; i < pmd_index((unsigned long)_text); i++)
+ pmd[i] &= ~_PAGE_PRESENT;
+
+ /* fixup pages that are part of the kernel image */
+ for (; i <= pmd_index((unsigned long)_end); i++)
if (pmd[i] & _PAGE_PRESENT)
pmd[i] += load_delta;
- }
+
+ /* invalidate pages after the kernel image */
+ for (; i < PTRS_PER_PMD; i++)
+ pmd[i] &= ~_PAGE_PRESENT;
/*
* Fixup phys_base - remove the memory encryption mask to obtain
Karsten reported the following panic in __free_slab() happening on a s390x
machine:
349.361168¨ Unable to handle kernel pointer dereference in virtual kernel address space
349.361210¨ Failing address: 0000000000000000 TEID: 0000000000000483
349.361223¨ Fault in home space mode while using kernel ASCE.
349.361240¨ AS:00000000017d4007 R3:000000007fbd0007 S:000000007fbff000 P:000000000000003d
349.361340¨ Oops: 0004 ilc:3 Ý#1¨ PREEMPT SMP
349.361349¨ Modules linked in: tcp_diag inet_diag xt_tcpudp ip6t_rpfilter ip6t_REJECT \
nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip6table_nat ip6table_mangle \
ip6table_raw ip6table_security iptable_at nf_nat
349.361436¨ CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.0-05872-g6133e3e4bada-dirty #14
349.361445¨ Hardware name: IBM 2964 NC9 702 (z/VM 6.4.0)
349.361450¨ Krnl PSW : 0704d00180000000 00000000003cadb6 (__free_slab+0x686/0x6b0)
349.361464¨ R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 RI:0 EA:3
349.361470¨ Krnl GPRS: 00000000f3a32928 0000000000000000 000000007fbf5d00 000000000117c4b8
349.361475¨ 0000000000000000 000000009e3291c1 0000000000000000 0000000000000000
349.361481¨ 0000000000000003 0000000000000008 000000002b478b00 000003d080a97600
349.361481¨ 0000000000000003 0000000000000008 000000002b478b00 000003d080a97600
349.361486¨ 000000000117ba00 000003e000057db0 00000000003cabcc 000003e000057c78
349.361500¨ Krnl Code: 00000000003cada6: e310a1400004 lg %r1,320(%r10)
349.361500¨ 00000000003cadac: c0e50046c286 brasl %r14,ca32b8
349.361500¨ #00000000003cadb2: a7f4fe36 brc 15,3caa1e
349.361500¨ >00000000003cadb6: e32060800024 stg %r2,128(%r6)
349.361500¨ 00000000003cadbc: a7f4fd9e brc 15,3ca8f8
349.361500¨ 00000000003cadc0: c0e50046790c brasl %r14,c99fd8
349.361500¨ 00000000003cadc6: a7f4fe2c brc 15,3caa
349.361500¨ 00000000003cadc6: a7f4fe2c brc 15,3caa1e
349.361500¨ 00000000003cadca: ecb1ffff00d9 aghik %r11,%r1,-1
349.361619¨ Call Trace:
349.361627¨ (Ý<00000000003cabcc>¨ __free_slab+0x49c/0x6b0)
349.361634¨ Ý<00000000001f5886>¨ rcu_core+0x5a6/0x7e0
349.361643¨ Ý<0000000000ca2dea>¨ __do_softirq+0xf2/0x5c0
349.361652¨ Ý<0000000000152644>¨ irq_exit+0x104/0x130
349.361659¨ Ý<000000000010d222>¨ do_IRQ+0x9a/0xf0
349.361667¨ Ý<0000000000ca2344>¨ ext_int_handler+0x130/0x134
349.361674¨ Ý<0000000000103648>¨ enabled_wait+0x58/0x128
349.361681¨ (Ý<0000000000103634>¨ enabled_wait+0x44/0x128)
349.361688¨ Ý<0000000000103b00>¨ arch_cpu_idle+0x40/0x58
349.361695¨ Ý<0000000000ca0544>¨ default_idle_call+0x3c/0x68
349.361704¨ Ý<000000000018eaa4>¨ do_idle+0xec/0x1c0
349.361748¨ Ý<000000000018ee0e>¨ cpu_startup_entry+0x36/0x40
349.361756¨ Ý<000000000122df34>¨ arch_call_rest_init+0x5c/0x88
349.361761¨ Ý<0000000000000000>¨ 0x0
349.361765¨ INFO: lockdep is turned off.
349.361769¨ Last Breaking-Event-Address:
349.361774¨ Ý<00000000003ca8f4>¨ __free_slab+0x1c4/0x6b0
349.361781¨ Kernel panic - not syncing: Fatal exception in interrupt
The kernel panics on an attempt to dereference the NULL memcg pointer.
When shutdown_cache() is called from the kmem_cache_destroy() context,
a memcg kmem_cache might have empty slab pages in a partial list,
which are still charged to the memory cgroup. These pages are released
by free_partial() at the beginning of shutdown_cache(): either
directly or by scheduling a RCU-delayed work (if the kmem_cache has
the SLAB_TYPESAFE_BY_RCU flag). The latter case is when the reported
panic can happen: memcg_unlink_cache() is called immediately after
shrinking partial lists, without waiting for scheduled RCU works.
It sets the kmem_cache->memcg_params.memcg pointer to NULL,
and the following attempt to dereference it by __free_slab()
from the RCU work context causes the panic.
To fix the issue, let's postpone the release of the memcg pointer
to destroy_memcg_params(). It's called from a separate work context
by slab_caches_to_rcu_destroy_workfn(), which contains a full RCU
barrier. This guarantees that all scheduled page release RCU works
will complete before the memcg pointer will be zeroed.
Big thanks for Karsten for the perfect report containing all necessary
information, his help with the analysis of the problem and testing
of the fix.
Fixes: fb2f2b0adb98 ("mm: memcg/slab: reparent memcg kmem_caches on cgroup removal")
Reported-by: Karsten Graul <kgraul(a)linux.ibm.com>
Tested-by: Karsten Graul <kgraul(a)linux.ibm.com>
Signed-off-by: Roman Gushchin <guro(a)fb.com>
Cc: Karsten Graul <kgraul(a)linux.ibm.com>
Cc: Shakeel Butt <shakeelb(a)google.com>
Cc: Vladimir Davydov <vdavydov.dev(a)gmail.com>
Cc: David Rientjes <rientjes(a)google.com>
Cc: stable(a)vger.kernel.org
---
mm/slab_common.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 0b94a37da531..8afa188f6e20 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -178,10 +178,13 @@ static int init_memcg_params(struct kmem_cache *s,
static void destroy_memcg_params(struct kmem_cache *s)
{
- if (is_root_cache(s))
+ if (is_root_cache(s)) {
kvfree(rcu_access_pointer(s->memcg_params.memcg_caches));
- else
+ } else {
+ mem_cgroup_put(s->memcg_params.memcg);
+ WRITE_ONCE(s->memcg_params.memcg, NULL);
percpu_ref_exit(&s->memcg_params.refcnt);
+ }
}
static void free_memcg_params(struct rcu_head *rcu)
@@ -253,8 +256,6 @@ static void memcg_unlink_cache(struct kmem_cache *s)
} else {
list_del(&s->memcg_params.children_node);
list_del(&s->memcg_params.kmem_caches_node);
- mem_cgroup_put(s->memcg_params.memcg);
- WRITE_ONCE(s->memcg_params.memcg, NULL);
}
}
#else
--
2.21.0
From: Sean Christopherson <sean.j.christopherson(a)intel.com>
James Harvey reported a livelock that was introduced by commit
d012a06ab1d23 ("Revert "KVM: x86/mmu: Zap only the relevant pages when
removing a memslot"").
The livelock occurs because kvm_mmu_zap_all() as it exists today will
voluntarily reschedule and drop KVM's mmu_lock, which allows other vCPUs
to add shadow pages. With enough vCPUs, kvm_mmu_zap_all() can get stuck
in an infinite loop as it can never zap all pages before observing lock
contention or the need to reschedule. The equivalent of kvm_mmu_zap_all()
that was in use at the time of the reverted commit (4e103134b8623, "KVM:
x86/mmu: Zap only the relevant pages when removing a memslot") employed
a fast invalidate mechanism and was not susceptible to the above livelock.
There are three ways to fix the livelock:
- Reverting the revert (commit d012a06ab1d23) is not a viable option as
the revert is needed to fix a regression that occurs when the guest has
one or more assigned devices. It's unlikely we'll root cause the device
assignment regression soon enough to fix the regression timely.
- Remove the conditional reschedule from kvm_mmu_zap_all(). However, although
removing the reschedule would be a smaller code change, it's less safe
in the sense that the resulting kvm_mmu_zap_all() hasn't been used in
the wild for flushing memslots since the fast invalidate mechanism was
introduced by commit 6ca18b6950f8d ("KVM: x86: use the fast way to
invalidate all pages"), back in 2013.
- Reintroduce the fast invalidate mechanism and use it when zapping shadow
pages in response to a memslot being deleted/moved, which is what this
patch does.
For all intents and purposes, this is a revert of commit ea145aacf4ae8
("Revert "KVM: MMU: fast invalidate all pages"") and a partial revert of
commit 7390de1e99a70 ("Revert "KVM: x86: use the fast way to invalidate
all pages""), i.e. restores the behavior of commit 5304b8d37c2a5 ("KVM:
MMU: fast invalidate all pages") and commit 6ca18b6950f8d ("KVM: x86:
use the fast way to invalidate all pages") respectively.
Fixes: d012a06ab1d23 ("Revert "KVM: x86/mmu: Zap only the relevant pages when removing a memslot"")
Reported-by: James Harvey <jamespharvey20(a)gmail.com>
Cc: Alex Willamson <alex.williamson(a)redhat.com>
Cc: Paolo Bonzini <pbonzini(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Sean Christopherson <sean.j.christopherson(a)intel.com>
Signed-off-by: Paolo Bonzini <pbonzini(a)redhat.com>
(cherry picked from commit 002c5f73c508f7df5681bda339831c27f3c1aef4)
---
arch/x86/include/asm/kvm_host.h | 2 +
arch/x86/kvm/mmu.c | 101 +++++++++++++++++++++++++++++++-
2 files changed, 101 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 7038e79b9851..58c03158fe5e 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -336,6 +336,7 @@ struct kvm_mmu_page {
int root_count; /* Currently serving as active root */
unsigned int unsync_children;
struct kvm_rmap_head parent_ptes; /* rmap pointers to parent sptes */
+ unsigned long mmu_valid_gen;
DECLARE_BITMAP(unsync_child_bitmap, 512);
#ifdef CONFIG_X86_32
@@ -850,6 +851,7 @@ struct kvm_arch {
unsigned long n_requested_mmu_pages;
unsigned long n_max_mmu_pages;
unsigned int indirect_shadow_pages;
+ unsigned long mmu_valid_gen;
struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES];
/*
* Hash table of struct kvm_mmu_page.
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d3ec7d3c0ed3..a8eeea5a2a18 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2060,6 +2060,12 @@ static struct kvm_mmu_page *kvm_mmu_alloc_page(struct kvm_vcpu *vcpu, int direct
if (!direct)
sp->gfns = mmu_memory_cache_alloc(&vcpu->arch.mmu_page_cache);
set_page_private(virt_to_page(sp->spt), (unsigned long)sp);
+
+ /*
+ * active_mmu_pages must be a FIFO list, as kvm_zap_obsolete_pages()
+ * depends on valid pages being added to the head of the list. See
+ * comments in kvm_zap_obsolete_pages().
+ */
list_add(&sp->link, &vcpu->kvm->arch.active_mmu_pages);
kvm_mod_used_mmu_pages(vcpu->kvm, +1);
return sp;
@@ -2209,7 +2215,7 @@ static void kvm_mmu_commit_zap_page(struct kvm *kvm,
#define for_each_valid_sp(_kvm, _sp, _gfn) \
hlist_for_each_entry(_sp, \
&(_kvm)->arch.mmu_page_hash[kvm_page_table_hashfn(_gfn)], hash_link) \
- if ((_sp)->role.invalid) { \
+ if (is_obsolete_sp((_kvm), (_sp)) || (_sp)->role.invalid) { \
} else
#define for_each_gfn_indirect_valid_sp(_kvm, _sp, _gfn) \
@@ -2266,6 +2272,11 @@ static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point) { }
static void mmu_audit_disable(void) { }
#endif
+static bool is_obsolete_sp(struct kvm *kvm, struct kvm_mmu_page *sp)
+{
+ return unlikely(sp->mmu_valid_gen != kvm->arch.mmu_valid_gen);
+}
+
static bool kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
struct list_head *invalid_list)
{
@@ -2490,6 +2501,7 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,
if (level > PT_PAGE_TABLE_LEVEL && need_sync)
flush |= kvm_sync_pages(vcpu, gfn, &invalid_list);
}
+ sp->mmu_valid_gen = vcpu->kvm->arch.mmu_valid_gen;
clear_page(sp->spt);
trace_kvm_mmu_get_page(sp, true);
@@ -4221,6 +4233,13 @@ static bool fast_cr3_switch(struct kvm_vcpu *vcpu, gpa_t new_cr3,
return false;
if (cached_root_available(vcpu, new_cr3, new_role)) {
+ /*
+ * It is possible that the cached previous root page is
+ * obsolete because of a change in the MMU generation
+ * number. However, changing the generation number is
+ * accompanied by KVM_REQ_MMU_RELOAD, which will free
+ * the root set here and allocate a new one.
+ */
kvm_make_request(KVM_REQ_LOAD_CR3, vcpu);
if (!skip_tlb_flush) {
kvm_make_request(KVM_REQ_MMU_SYNC, vcpu);
@@ -5637,11 +5656,89 @@ int kvm_mmu_create(struct kvm_vcpu *vcpu)
return alloc_mmu_pages(vcpu);
}
+
+static void kvm_zap_obsolete_pages(struct kvm *kvm)
+{
+ struct kvm_mmu_page *sp, *node;
+ LIST_HEAD(invalid_list);
+ int ign;
+
+restart:
+ list_for_each_entry_safe_reverse(sp, node,
+ &kvm->arch.active_mmu_pages, link) {
+ /*
+ * No obsolete valid page exists before a newly created page
+ * since active_mmu_pages is a FIFO list.
+ */
+ if (!is_obsolete_sp(kvm, sp))
+ break;
+
+ /*
+ * Do not repeatedly zap a root page to avoid unnecessary
+ * KVM_REQ_MMU_RELOAD, otherwise we may not be able to
+ * progress:
+ * vcpu 0 vcpu 1
+ * call vcpu_enter_guest():
+ * 1): handle KVM_REQ_MMU_RELOAD
+ * and require mmu-lock to
+ * load mmu
+ * repeat:
+ * 1): zap root page and
+ * send KVM_REQ_MMU_RELOAD
+ *
+ * 2): if (cond_resched_lock(mmu-lock))
+ *
+ * 2): hold mmu-lock and load mmu
+ *
+ * 3): see KVM_REQ_MMU_RELOAD bit
+ * on vcpu->requests is set
+ * then return 1 to call
+ * vcpu_enter_guest() again.
+ * goto repeat;
+ *
+ * Since we are reversely walking the list and the invalid
+ * list will be moved to the head, skip the invalid page
+ * can help us to avoid the infinity list walking.
+ */
+ if (sp->role.invalid)
+ continue;
+
+ if (need_resched() || spin_needbreak(&kvm->mmu_lock)) {
+ kvm_mmu_commit_zap_page(kvm, &invalid_list);
+ cond_resched_lock(&kvm->mmu_lock);
+ goto restart;
+ }
+
+ if (__kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list, &ign))
+ goto restart;
+ }
+
+ kvm_mmu_commit_zap_page(kvm, &invalid_list);
+}
+
+/*
+ * Fast invalidate all shadow pages and use lock-break technique
+ * to zap obsolete pages.
+ *
+ * It's required when memslot is being deleted or VM is being
+ * destroyed, in these cases, we should ensure that KVM MMU does
+ * not use any resource of the being-deleted slot or all slots
+ * after calling the function.
+ */
+static void kvm_mmu_zap_all_fast(struct kvm *kvm)
+{
+ spin_lock(&kvm->mmu_lock);
+ kvm->arch.mmu_valid_gen++;
+
+ kvm_zap_obsolete_pages(kvm);
+ spin_unlock(&kvm->mmu_lock);
+}
+
static void kvm_mmu_invalidate_zap_pages_in_memslot(struct kvm *kvm,
struct kvm_memory_slot *slot,
struct kvm_page_track_notifier_node *node)
{
- kvm_mmu_zap_all(kvm);
+ kvm_mmu_zap_all_fast(kvm);
}
void kvm_mmu_init_vm(struct kvm *kvm)
--
2.21.0
This is the start of the stable review cycle for the 4.14.149 release.
There are 61 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat 12 Oct 2019 08:29:51 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.149-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.14.149-rc1
Oleksandr Suvorov <oleksandr.suvorov(a)toradex.com>
ASoC: sgtl5000: Improve VAG power and mute control
Johannes Berg <johannes.berg(a)intel.com>
nl80211: validate beacon head
Jouni Malinen <j(a)w1.fi>
cfg80211: Use const more consistently in for_each_element macros
Johannes Berg <johannes.berg(a)intel.com>
cfg80211: add and use strongly typed element iteration macros
Andrew Murray <andrew.murray(a)arm.com>
coresight: etm4x: Use explicit barriers on enable/disable
Eric Sandeen <sandeen(a)redhat.com>
vfs: Fix EOVERFLOW testing in put_compat_statfs64
Chris Wilson <chris(a)chris-wilson.co.uk>
drm/i915/userptr: Acquire the page lock around set_page_dirty()
Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
perf stat: Reset previous counts on repeat with interval
Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
perf stat: Fix a segmentation fault when using repeat forever
Jiri Olsa <jolsa(a)kernel.org>
perf tools: Fix segfault in cpu_cache_level__read()
Balasubramani Vivekanandan <balasubramani_vivekanandan(a)mentor.com>
tick: broadcast-hrtimer: Fix a race in bc_set_next
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on failure
Gautham R. Shenoy <ego(a)linux.vnet.ibm.com>
powerpc/pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
Mike Christie <mchristi(a)redhat.com>
nbd: fix max number of supported devs
Dan Melnic <dmm(a)fb.com>
block/ndb: add WQ_UNBOUND to the knbd-recv workqueue
Xiubo Li <xiubli(a)redhat.com>
nbd: fix crash when the blksize is zero
Cédric Le Goater <clg(a)kaod.org>
KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before disabling the VP
Arnaldo Carvalho de Melo <acme(a)redhat.com>
perf unwind: Fix libunwind build failure on i386 systems
Valdis Kletnieks <valdis.kletnieks(a)vt.edu>
kernel/elfcore.c: include proper prototypes
Thomas Richter <tmricht(a)linux.ibm.com>
perf build: Add detection of java-11-openjdk-devel package
KeMeng Shi <shikemeng(a)huawei.com>
sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
zhengbin <zhengbin13(a)huawei.com>
fuse: fix memleak in cuse_channel_open
Ido Schimmel <idosch(a)mellanox.com>
thermal: Fix use-after-free when unregistering thermal zone device
Fabrice Gasnier <fabrice.gasnier(a)st.com>
pwm: stm32-lp: Add check in case requested period cannot be achieved
Trond Myklebust <trondmy(a)gmail.com>
pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors
Trek <trek00(a)inbox.ru>
drm/amdgpu: Check for valid number of registers to read
Florian Westphal <fw(a)strlen.de>
netfilter: nf_tables: allow lookups in dynamic sets
Ryan Chen <ryan_chen(a)aspeedtech.com>
watchdog: aspeed: Add support for AST2600
Erqi Chen <chenerqi(a)gmail.com>
ceph: reconnect connection if session hang in opening state
Luis Henriques <lhenriques(a)suse.com>
ceph: fix directories inode i_blkbits initialization
Igor Druzhinin <igor.druzhinin(a)citrix.com>
xen/pci: reserve MCFG areas earlier
Chengguang Xu <cgxu519(a)zoho.com.cn>
9p: avoid attaching writeback_fid on mmap with type PRIVATE
Jia-Ju Bai <baijiaju1990(a)gmail.com>
fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
Sascha Hauer <s.hauer(a)pengutronix.de>
ima: always return negative code for error
Johannes Berg <johannes.berg(a)intel.com>
cfg80211: initialize on-stack chandefs
Johan Hovold <johan(a)kernel.org>
ieee802154: atusb: fix use-after-free at disconnect
Juergen Gross <jgross(a)suse.com>
xen/xenbus: fix self-deadlock after killing user process
Wanpeng Li <wanpengli(a)tencent.com>
Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
Russell King <rmk+kernel(a)armlinux.org.uk>
mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence
Russell King <rmk+kernel(a)armlinux.org.uk>
mmc: sdhci: improve ADMA error reporting
Tomi Valkeinen <tomi.valkeinen(a)ti.com>
drm/omap: fix max fclk divider for omap36xx
Rasmus Villemoes <linux(a)rasmusvillemoes.dk>
watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
Li RongQing <lirongqing(a)baidu.com>
timer: Read jiffies once when forwarding base clk
Kees Cook <keescook(a)chromium.org>
usercopy: Avoid HIGHMEM pfn warning
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
MIPS: Treat Loongson Extensions as ASEs
Horia Geantă <horia.geanta(a)nxp.com>
crypto: caam - fix concurrency issue in givencrypt descriptor
Wei Yongjun <weiyongjun1(a)huawei.com>
crypto: cavium/zip - Add missing single_release()
Herbert Xu <herbert(a)gondor.apana.org.au>
crypto: skcipher - Unmap pages after an external error
Alexander Sverdlin <alexander.sverdlin(a)nokia.com>
crypto: qat - Silence smp_processor_id() warning
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: mcp251x: mcp251x_hw_reset(): allow more time after a reset
Andrew Donnellan <ajd(a)linux.ibm.com>
powerpc/powernv: Restrict OPAL symbol map to only be readable by root
Oleksandr Suvorov <oleksandr.suvorov(a)toradex.com>
ASoC: Define a set of DAPM pre/post-up events
Dmitry Osipenko <digetx(a)gmail.com>
PM / devfreq: tegra: Fix kHz to Hz conversion
Jack Wang <jinpu.wang(a)cloud.ionos.com>
KVM: nVMX: handle page fault in vmread fix
Paul Mackerras <paulus(a)ozlabs.org>
KVM: PPC: Book3S HV: Don't lose pending doorbell request on migration on P9
Vasily Gorbik <gor(a)linux.ibm.com>
s390/cio: exclude subchannels with no parent from pseudo check
Vasily Gorbik <gor(a)linux.ibm.com>
s390/cio: avoid calling strlen on null pointer
Vasily Gorbik <gor(a)linux.ibm.com>
s390/topology: avoid firing events before kobjs are created
Thomas Huth <thuth(a)redhat.com>
KVM: s390: Test for bad access register and size at the start of S390_MEM_OP
Vasily Gorbik <gor(a)linux.ibm.com>
s390/process: avoid potential reading of freed stack
-------------
Diffstat:
Makefile | 4 +-
arch/mips/include/asm/cpu-features.h | 16 ++
arch/mips/include/asm/cpu.h | 4 +
arch/mips/kernel/cpu-probe.c | 6 +
arch/mips/kernel/proc.c | 4 +
arch/powerpc/kvm/book3s_hv.c | 9 +-
arch/powerpc/kvm/book3s_xive.c | 18 +-
arch/powerpc/mm/hash_utils_64.c | 9 +-
arch/powerpc/platforms/powernv/opal.c | 11 +-
arch/powerpc/platforms/pseries/lpar.c | 8 +-
arch/s390/kernel/process.c | 22 ++-
arch/s390/kernel/topology.c | 3 +-
arch/s390/kvm/kvm-s390.c | 2 +-
arch/x86/kvm/vmx.c | 2 +-
crypto/skcipher.c | 42 +++--
drivers/block/nbd.c | 61 +++++--
drivers/crypto/caam/caamalg_desc.c | 9 +
drivers/crypto/caam/caamalg_desc.h | 2 +-
drivers/crypto/cavium/zip/zip_main.c | 3 +
drivers/crypto/qat/qat_common/adf_common_drv.h | 2 +-
drivers/devfreq/tegra-devfreq.c | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3 +
drivers/gpu/drm/i915/i915_gem_userptr.c | 10 +-
drivers/gpu/drm/omapdrm/dss/dss.c | 2 +-
drivers/hwtracing/coresight/coresight-etm4x.c | 14 +-
drivers/mmc/host/sdhci-of-esdhc.c | 7 +-
drivers/mmc/host/sdhci.c | 15 +-
drivers/net/can/spi/mcp251x.c | 19 +-
drivers/net/ieee802154/atusb.c | 3 +-
drivers/pwm/pwm-stm32-lp.c | 6 +
drivers/s390/cio/ccwgroup.c | 2 +-
drivers/s390/cio/css.c | 2 +
drivers/thermal/thermal_core.c | 2 +-
drivers/watchdog/aspeed_wdt.c | 4 +-
drivers/watchdog/imx2_wdt.c | 4 +-
drivers/xen/pci.c | 21 ++-
drivers/xen/xenbus/xenbus_dev_frontend.c | 20 ++-
fs/9p/vfs_file.c | 3 +
fs/ceph/inode.c | 7 +-
fs/ceph/mds_client.c | 4 +-
fs/fuse/cuse.c | 1 +
fs/nfs/nfs4xdr.c | 2 +-
fs/nfs/pnfs.c | 9 +-
fs/statfs.c | 17 +-
include/linux/ieee80211.h | 53 ++++++
include/sound/soc-dapm.h | 2 +
kernel/elfcore.c | 1 +
kernel/locking/qspinlock_paravirt.h | 2 +-
kernel/sched/core.c | 4 +-
kernel/time/tick-broadcast-hrtimer.c | 57 +++---
kernel/time/timer.c | 8 +-
mm/usercopy.c | 8 +-
net/netfilter/nf_tables_api.c | 7 +-
net/netfilter/nft_lookup.c | 3 -
net/wireless/nl80211.c | 42 ++++-
net/wireless/reg.c | 2 +-
net/wireless/scan.c | 14 +-
net/wireless/wext-compat.c | 2 +-
security/integrity/ima/ima_crypto.c | 5 +-
sound/soc/codecs/sgtl5000.c | 232 +++++++++++++++++++++----
tools/lib/traceevent/Makefile | 4 +-
tools/lib/traceevent/event-parse.c | 3 +-
tools/perf/Makefile.config | 2 +-
tools/perf/arch/x86/util/unwind-libunwind.c | 2 +-
tools/perf/builtin-stat.c | 5 +-
tools/perf/util/header.c | 2 +-
tools/perf/util/stat.c | 17 ++
tools/perf/util/stat.h | 1 +
68 files changed, 696 insertions(+), 208 deletions(-)
Fix races between closing a port and opening or closing another port on
the same device which could lead to a failure to start or stop the
shared interrupt URB. The latter could potentially cause a
use-after-free or worse in the completion handler on driver unbind.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/serial/ti_usb_3410_5052.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index dd0ad67aa71e..9174ba2e06da 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -776,7 +776,6 @@ static void ti_close(struct usb_serial_port *port)
struct ti_port *tport;
int port_number;
int status;
- int do_unlock;
unsigned long flags;
tdev = usb_get_serial_data(port->serial);
@@ -800,16 +799,13 @@ static void ti_close(struct usb_serial_port *port)
"%s - cannot send close port command, %d\n"
, __func__, status);
- /* if mutex_lock is interrupted, continue anyway */
- do_unlock = !mutex_lock_interruptible(&tdev->td_open_close_lock);
+ mutex_lock(&tdev->td_open_close_lock);
--tport->tp_tdev->td_open_port_count;
- if (tport->tp_tdev->td_open_port_count <= 0) {
+ if (tport->tp_tdev->td_open_port_count == 0) {
/* last port is closed, shut down interrupt urb */
usb_kill_urb(port->serial->port[0]->interrupt_in_urb);
- tport->tp_tdev->td_open_port_count = 0;
}
- if (do_unlock)
- mutex_unlock(&tdev->td_open_close_lock);
+ mutex_unlock(&tdev->td_open_close_lock);
}
--
2.23.0
nl80211 requires NL80211_CMD_ABORT_SCAN to have a wdev or netdev
attribute present and checks that if netdev is provided it is UP.
However, mac80211 does not check that an ongoing scan actually belongs
to the netdev/wdev provided by the user. In other words, it is possible
for an application to cancel scans on an interface it doesn't manage.
Signed-off-by: Denis Kenzior <denkenz(a)gmail.com>
Cc: stable(a)vger.kernel.org
---
net/mac80211/cfg.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 70739e746c13..ece344f9e9ca 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2333,7 +2333,13 @@ static int ieee80211_scan(struct wiphy *wiphy,
static void ieee80211_abort_scan(struct wiphy *wiphy, struct wireless_dev *wdev)
{
- ieee80211_scan_cancel(wiphy_priv(wiphy));
+ struct ieee80211_local *local = wiphy_priv(wiphy);
+ struct ieee80211_sub_if_data *sdata =
+ IEEE80211_WDEV_TO_SUB_IF(wdev);
+ bool cancel_scan = rcu_access_pointer(local->scan_sdata) == sdata;
+
+ if (cancel_scan)
+ ieee80211_scan_cancel(local);
}
static int
--
2.21.0
This is a note to let you know that I've just added the patch titled
firmware: google: increment VPD key_len properly
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 442f1e746e8187b9deb1590176f6b0ff19686b11 Mon Sep 17 00:00:00 2001
From: Brian Norris <briannorris(a)chromium.org>
Date: Mon, 30 Sep 2019 14:45:22 -0700
Subject: firmware: google: increment VPD key_len properly
Commit 4b708b7b1a2c ("firmware: google: check if size is valid when
decoding VPD data") adds length checks, but the new vpd_decode_entry()
function botched the logic -- it adds the key length twice, instead of
adding the key and value lengths separately.
On my local system, this means vpd.c's vpd_section_create_attribs() hits
an error case after the first attribute it parses, since it's no longer
looking at the correct offset. With this patch, I'm back to seeing all
the correct attributes in /sys/firmware/vpd/...
Fixes: 4b708b7b1a2c ("firmware: google: check if size is valid when decoding VPD data")
Cc: <stable(a)vger.kernel.org>
Cc: Hung-Te Lin <hungte(a)chromium.org>
Signed-off-by: Brian Norris <briannorris(a)chromium.org>
Reviewed-by: Stephen Boyd <swboyd(a)chromium.org>
Reviewed-by: Guenter Roeck <groeck(a)chromium.org>
Link: https://lore.kernel.org/r/20190930214522.240680-1-briannorris@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/firmware/google/vpd_decode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/google/vpd_decode.c b/drivers/firmware/google/vpd_decode.c
index dda525c0f968..5c6f2a74f104 100644
--- a/drivers/firmware/google/vpd_decode.c
+++ b/drivers/firmware/google/vpd_decode.c
@@ -52,7 +52,7 @@ static int vpd_decode_entry(const u32 max_len, const u8 *input_buf,
if (max_len - consumed < *entry_len)
return VPD_FAIL;
- consumed += decoded_len;
+ consumed += *entry_len;
*_consumed = consumed;
return VPD_OK;
}
--
2.23.0
Hello,
This series backports arm64 spectre patches to v4.4 stable kernel. I
have started this backport with Mark Rutland's backport of Spectre to
4.9 [1] and tried applying the upstream version of them over 4.4 and
resolved conflicts by checking how they have been resolved in 4.9.
The KVM changes are mostly dropped as the KVM code in v4.4 is quite
different and it makes backport more complex. This was suggested by the
ARM team.
I had to pick few extra upstream patches to avoid conflicts and to make
things work:
mm/kasan: add API to check memory regions
arm64: kasan: instrument user memory access API
arm64: cpufeature: Add scope for capability check
arm64: cputype info for Broadcom Vulcan
arm64: cputype: Add MIDR values for Cavium ThunderX2 CPUs
ARM: 8478/2: arm/arm64: add arm-smccc
arm64: cpufeature: Test 'matches' pointer to find the end of the list
arm64: Introduce cpu_die_early
arm64: Move cpu_die_early to smp.c
arm64: Verify CPU errata work arounds on hotplugged CPU
arm64: errata: Calling enable functions for CPU errata too
arm64: Rearrange CPU errata workaround checks
arm64: Add a helper for parking CPUs in a loop
I also had to drop few patches as they weren't getting applied properly
due to missing files/features or they were KVM related:
arm64: cpufeature: __this_cpu_has_cap() shouldn't stop early
arm64: KVM: Use per-CPU vector when BP hardening is enabled
arm64: KVM: Make PSCI_VERSION a fast path
mm: Introduce lm_alias
arm64: KVM: Increment PC after handling an SMC trap
arm/arm64: KVM: Consolidate the PSCI include files
arm/arm64: KVM: Add PSCI_VERSION helper
arm/arm64: KVM: Add smccc accessors to PSCI code
arm/arm64: KVM: Implement PSCI 1.0 support
arm/arm64: KVM: Turn kvm_psci_version into a static inline
arm64: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
The patches in this series are pushed here [2].
This is tested on Hikey board (octa A53) and I verified that BP
hardening code is getting hit for CPUs (had to hack a bit and enable
BP hardening support for A53 for this).
V2->V3:
- Included an extra patch and used the helper introduced by it:
arm64: Add a helper for parking CPUs in a loop
- Droped few extra blank lines added by mistake
- Avoid overlapping with SVE2 bits
V1->V2:
- Rebased over 4.4.184 (was 4.4.180 earlier).
- Fixed an build issue with CONFIG_KASAN (Julien).
- Dropped few patches, mostly KVM stuff (Julien):
arm64: remove duplicate macro __KERNEL__ check
mm: Introduce lm_alias
arm64: KVM: Increment PC after handling an SMC trap
arm/arm64: KVM: Consolidate the PSCI include files
arm/arm64: KVM: Add PSCI_VERSION helper
arm/arm64: KVM: Add smccc accessors to PSCI code
arm/arm64: KVM: Implement PSCI 1.0 support
arm/arm64: KVM: Turn kvm_psci_version into a static inline
arm64: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
- Added few patches to fix issues reported by Julien:
arm64: cpufeature: Test 'matches' pointer to find the end of the list
arm64: Introduce cpu_die_early
arm64: Move cpu_die_early to smp.c
arm64: Verify CPU errata work arounds on hotplugged CPU
arm64: errata: Calling enable functions for CPU errata too
arm64: Rearrange CPU errata workaround checks
--
viresh
[1] https://patches.linaro.org/cover/133195/ with top commit in 4.9 stable tree:
a3b292fe0560 arm64: futex: Mask __user pointers prior to dereference
[2] https://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git stable/arm64/v4.4.y/spectre
-------------------------8<-------------------------
Andre Przywara (1):
arm64: errata: Calling enable functions for CPU errata too
Andrey Ryabinin (1):
mm/kasan: add API to check memory regions
Catalin Marinas (1):
arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm
macro
James Morse (1):
arm64: cpufeature: Test 'matches' pointer to find the end of the list
Jayachandran C (3):
arm64: cputype info for Broadcom Vulcan
arm64: cputype: Add MIDR values for Cavium ThunderX2 CPUs
arm64: Branch predictor hardening for Cavium ThunderX2
Jens Wiklander (1):
ARM: 8478/2: arm/arm64: add arm-smccc
Marc Zyngier (11):
arm64: Move post_ttbr_update_workaround to C code
arm64: Move BP hardening to check_and_switch_context
arm64: cpu_errata: Allow an erratum to be match for all revisions of a
core
arm/arm64: KVM: Advertise SMCCC v1.1
arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
firmware/psci: Expose PSCI conduit
firmware/psci: Expose SMCCC version through psci_ops
arm/arm64: smccc: Make function identifiers an unsigned quantity
arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
arm64: Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support
arm64: Kill PSCI_GET_VERSION as a variant-2 workaround
Robin Murphy (3):
arm64: Implement array_index_mask_nospec()
arm64: Make USER_DS an inclusive limit
arm64: Use pointer masking to limit uaccess speculation
Suzuki K Poulose (7):
arm64: cpufeature: Add scope for capability check
arm64: Introduce cpu_die_early
arm64: Add a helper for parking CPUs in a loop
arm64: Move cpu_die_early to smp.c
arm64: Verify CPU errata work arounds on hotplugged CPU
arm64: Rearrange CPU errata workaround checks
arm64: Run enable method for errata work arounds on late CPUs
Will Deacon (13):
arm64: barrier: Add CSDB macros to control data-value prediction
arm64: entry: Ensure branch through syscall table is bounded under
speculation
arm64: uaccess: Prevent speculative use of the current addr_limit
arm64: uaccess: Don't bother eliding access_ok checks in __{get,
put}_user
arm64: uaccess: Mask __user pointers for __arch_{clear, copy_*}_user
arm64: cpufeature: Pass capability structure to ->enable callback
drivers/firmware: Expose psci_get_version through psci_ops structure
arm64: Add skeleton to harden the branch predictor against aliasing
attacks
arm64: entry: Apply BP hardening for high-priority synchronous
exceptions
arm64: entry: Apply BP hardening for suspicious interrupts from EL0
arm64: cputype: Add missing MIDR values for Cortex-A72 and Cortex-A75
arm64: Implement branch predictor hardening for affected Cortex-A CPUs
arm64: futex: Mask __user pointers prior to dereference
Yang Shi (1):
arm64: kasan: instrument user memory access API
Yury Norov (1):
arm64: move TASK_* definitions to <asm/processor.h>
MAINTAINERS | 14 ++
arch/arm64/Kconfig | 17 ++
arch/arm64/include/asm/assembler.h | 18 ++
arch/arm64/include/asm/barrier.h | 23 +++
arch/arm64/include/asm/cpufeature.h | 24 ++-
arch/arm64/include/asm/cputype.h | 12 ++
arch/arm64/include/asm/futex.h | 9 +-
arch/arm64/include/asm/memory.h | 15 --
arch/arm64/include/asm/mmu.h | 39 ++++
arch/arm64/include/asm/processor.h | 24 +++
arch/arm64/include/asm/smp.h | 9 +
arch/arm64/include/asm/sysreg.h | 2 +
arch/arm64/include/asm/uaccess.h | 173 ++++++++++++------
arch/arm64/kernel/Makefile | 5 +
arch/arm64/kernel/arm64ksyms.c | 8 +-
arch/arm64/kernel/bpi.S | 75 ++++++++
arch/arm64/kernel/cpu_errata.c | 213 +++++++++++++++++++++-
arch/arm64/kernel/cpufeature.c | 186 +++++++++----------
arch/arm64/kernel/cpuinfo.c | 2 -
arch/arm64/kernel/entry.S | 26 ++-
arch/arm64/kernel/smp.c | 30 +++-
arch/arm64/lib/clear_user.S | 6 +-
arch/arm64/lib/copy_from_user.S | 4 +-
arch/arm64/lib/copy_in_user.S | 4 +-
arch/arm64/lib/copy_to_user.S | 4 +-
arch/arm64/mm/context.c | 12 ++
arch/arm64/mm/fault.c | 31 ++++
arch/arm64/mm/proc.S | 12 +-
drivers/firmware/Kconfig | 3 +
drivers/firmware/psci.c | 58 +++++-
include/linux/arm-smccc.h | 267 ++++++++++++++++++++++++++++
include/linux/kasan-checks.h | 12 ++
include/linux/psci.h | 14 ++
mm/kasan/kasan.c | 12 ++
34 files changed, 1150 insertions(+), 213 deletions(-)
create mode 100644 arch/arm64/kernel/bpi.S
create mode 100644 include/linux/arm-smccc.h
create mode 100644 include/linux/kasan-checks.h
--
2.21.0.rc0.269.g1a574e7a288b
Hello,
Here is an attempt to backport arm32 spectre patches to v4.4 stable
tree. This was last tried around an year back by David Long [1]. He was
backporting only a subset (18) of patches and this series include a lot
of other patches present in Russell's spectre branch.
Just like arm64 backport [2], KVM patches are dropped and they can be
backported separately if required.
Dropped patches (compared to Russell's spectre branch):
KVM related:
3f7e8e2e1ebd ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17
0c47ac8cd157 ARM: KVM: invalidate icache on guest exit for Cortex-A15
3c908e16396d ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15
b800acfc70d9 ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
add5609877c6 ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1
Dropped in 4.9 backport as well:
73839798af7e ARM: 8790/1: signal: always use __copy_to_user to save iwmmxt context
Additional patches picked to avoid rebase conflicts and build issues:
9f73bd8bb445 ARM: uaccess: remove put_user() code duplication
122e022eebb3 arch: Introduce post-init read-only memory
7b90ba3eb4af ARM: 8595/2: apply more __ro_after_init
SMCCC related patches, are part of arm64 backport [2] as well and all
KVM related changes are dropped from them:
56b35dfda10c ARM: 8478/2: arm/arm64: add arm-smccc
e6e9cc47cea9 arm/arm64: KVM: Advertise SMCCC v1.1
91958fe7a4eb arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
1b232ad7ca05 drivers/firmware: Expose psci_get_version through psci_ops structure
df2030616c6f firmware/psci: Expose PSCI conduit
30f8c32765fd firmware/psci: Expose SMCCC version through psci_ops
17f6f98d5069 arm/arm64: smccc: Make function identifiers an unsigned quantity
e6d9b2fef81e arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
All the patches are pushed here [3].
This is tested in Linaro Lava on Qemu_arm and X15 platforms and the
results are here [4]. Lava also check for some Spectre tests and one of
the test fails on x15 with this message:
CVE-2018-3640: VULN (an up-to-date CPU microcode is needed to mitigate
this vulnerability).
Perhaps this is an issue with x15 setup and not the patches themselves ?
I have also pushed this to be tested by kernel-ci, looks like my branch
isn't getting tested there currently. I am co-ordinating with them to
get it tested soon, we can start the review process until that time
though.
--
Viresh
[1] https://lore.kernel.org/stable/20181031140436.2964-1-dave.long@linaro.org/
[2] https://lore.kernel.org/stable/cover.1562908074.git.viresh.kumar@linaro.org/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git stable/arm32/v4.4.y/spectre
[4] https://staging-qa-reports.linaro.org/lkft/vishal.bhoj-stable-arm32-v4.4.y-…
Ard Biesheuvel (1):
ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
Jens Wiklander (1):
ARM: 8478/2: arm/arm64: add arm-smccc
Julien Thierry (9):
ARM: 8789/1: signal: copy registers using __copy_to_user()
ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
ARM: 8793/1: signal: replace __put_user_error with __put_user
ARM: 8794/1: uaccess: Prevent speculative use of the current
addr_limit
ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
ARM: 8797/1: spectre-v1.1: harden __copy_to_user
ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
Kees Cook (2):
arch: Introduce post-init read-only memory
ARM: 8595/2: apply more __ro_after_init
Marc Zyngier (6):
arm/arm64: KVM: Advertise SMCCC v1.1
arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
firmware/psci: Expose PSCI conduit
firmware/psci: Expose SMCCC version through psci_ops
arm/arm64: smccc: Make function identifiers an unsigned quantity
arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
Russell King (27):
ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs
ARM: bugs: prepare processor bug infrastructure
ARM: bugs: hook processor bug checking into SMP and suspend paths
ARM: bugs: add support for per-processor bug checking
ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre
ARM: spectre-v2: harden branch predictor on context switches
ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit
ARM: spectre-v2: harden user aborts in kernel space
ARM: spectre-v2: add firmware based hardening
ARM: spectre-v2: warn about incorrect context switching functions
ARM: spectre-v1: add speculation barrier (csdb) macros
ARM: spectre-v1: add array_index_mask_nospec() implementation
ARM: spectre-v1: fix syscall entry
ARM: signal: copy registers using __copy_from_user()
ARM: vfp: use __copy_from_user() when restoring VFP state
ARM: oabi-compat: copy semops using __copy_from_user()
ARM: use __inttype() in get_user()
ARM: spectre-v1: use get_user() for __get_user()
ARM: spectre-v1: mitigate user accesses
ARM: uaccess: remove put_user() code duplication
ARM: make lookup_processor_type() non-__init
ARM: split out processor lookup
ARM: clean up per-processor check_bugs method call
ARM: add PROC_VTABLE and PROC_TABLE macros
ARM: spectre-v2: per-CPU vtables to work around big.Little systems
ARM: ensure that processor vtables is not lost after boot
ARM: fix the cockup in the previous patch
Will Deacon (1):
drivers/firmware: Expose psci_get_version through psci_ops structure
arch/arm/include/asm/assembler.h | 23 +++
arch/arm/include/asm/barrier.h | 32 ++++
arch/arm/include/asm/bugs.h | 6 +-
arch/arm/include/asm/cp15.h | 18 ++
arch/arm/include/asm/cputype.h | 9 +
arch/arm/include/asm/proc-fns.h | 65 +++++--
arch/arm/include/asm/system_misc.h | 15 ++
arch/arm/include/asm/thread_info.h | 8 +-
arch/arm/include/asm/uaccess.h | 176 +++++++++++--------
arch/arm/kernel/Makefile | 1 +
arch/arm/kernel/bugs.c | 18 ++
arch/arm/kernel/cpuidle.c | 2 +-
arch/arm/kernel/entry-common.S | 18 +-
arch/arm/kernel/entry-header.S | 25 +++
arch/arm/kernel/head-common.S | 6 +-
arch/arm/kernel/setup.c | 50 +++---
arch/arm/kernel/signal.c | 126 +++++++-------
arch/arm/kernel/smp.c | 38 +++-
arch/arm/kernel/suspend.c | 2 +
arch/arm/kernel/sys_oabi-compat.c | 16 +-
arch/arm/lib/copy_from_user.S | 5 +
arch/arm/lib/copy_to_user.S | 6 +-
arch/arm/lib/delay.c | 2 +-
arch/arm/lib/uaccess_with_memcpy.c | 3 +-
arch/arm/mm/Kconfig | 23 +++
arch/arm/mm/Makefile | 2 +-
arch/arm/mm/fault.c | 3 +
arch/arm/mm/mmu.c | 2 +-
arch/arm/mm/proc-macros.S | 13 +-
arch/arm/mm/proc-v7-2level.S | 6 -
arch/arm/mm/proc-v7-bugs.c | 161 +++++++++++++++++
arch/arm/mm/proc-v7.S | 154 +++++++++++++----
arch/arm/vfp/vfpmodule.c | 37 ++--
arch/parisc/include/asm/cache.h | 3 +
drivers/firmware/Kconfig | 3 +
drivers/firmware/psci.c | 58 ++++++-
include/asm-generic/vmlinux.lds.h | 1 +
include/linux/arm-smccc.h | 267 +++++++++++++++++++++++++++++
include/linux/cache.h | 14 ++
include/linux/psci.h | 14 ++
40 files changed, 1174 insertions(+), 257 deletions(-)
create mode 100644 arch/arm/kernel/bugs.c
create mode 100644 arch/arm/mm/proc-v7-bugs.c
create mode 100644 include/linux/arm-smccc.h
--
2.21.0.rc0.269.g1a574e7a288b
During kexec some adapters hit an EEH since they are not properly
shut down in the radeon_pci_shutdown() function. Adding
radeon_suspend_kms() fixes this issue.
Enabled only on PPC because this patch causes issues on some other
boards.
Signed-off-by: Kyle Mahlkuch <Kyle.Mahlkuch at ibm.com>
---
drivers/gpu/drm/radeon/radeon_drv.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 9e55076..4528f4d 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -379,11 +379,25 @@ static int radeon_pci_probe(struct pci_dev *pdev,
static void
radeon_pci_shutdown(struct pci_dev *pdev)
{
+#ifdef CONFIG_PPC64
+ struct drm_device *ddev = pci_get_drvdata(pdev);
+#endif
+
/* if we are running in a VM, make sure the device
* torn down properly on reboot/shutdown
*/
if (radeon_device_is_virtual())
radeon_pci_remove(pdev);
+
+#ifdef CONFIG_PPC64
+ /* Some adapters need to be suspended before a
+ * shutdown occurs in order to prevent an error
+ * during kexec.
+ * Make this power specific becauase it breaks
+ * some non-power boards.
+ */
+ radeon_suspend_kms(ddev, true, true, false);
+#endif
}
static int radeon_pmops_suspend(struct device *dev)
--
1.8.3.1
We got a null pointer deference BUG_ON in blk_mq_rq_timed_out()
as following:
[ 108.825472] BUG: kernel NULL pointer dereference, address: 0000000000000040
[ 108.827059] PGD 0 P4D 0
[ 108.827313] Oops: 0000 [#1] SMP PTI
[ 108.827657] CPU: 6 PID: 198 Comm: kworker/6:1H Not tainted 5.3.0-rc8+ #431
[ 108.829503] Workqueue: kblockd blk_mq_timeout_work
[ 108.829913] RIP: 0010:blk_mq_check_expired+0x258/0x330
[ 108.838191] Call Trace:
[ 108.838406] bt_iter+0x74/0x80
[ 108.838665] blk_mq_queue_tag_busy_iter+0x204/0x450
[ 108.839074] ? __switch_to_asm+0x34/0x70
[ 108.839405] ? blk_mq_stop_hw_queue+0x40/0x40
[ 108.839823] ? blk_mq_stop_hw_queue+0x40/0x40
[ 108.840273] ? syscall_return_via_sysret+0xf/0x7f
[ 108.840732] blk_mq_timeout_work+0x74/0x200
[ 108.841151] process_one_work+0x297/0x680
[ 108.841550] worker_thread+0x29c/0x6f0
[ 108.841926] ? rescuer_thread+0x580/0x580
[ 108.842344] kthread+0x16a/0x1a0
[ 108.842666] ? kthread_flush_work+0x170/0x170
[ 108.843100] ret_from_fork+0x35/0x40
The bug is caused by the race between timeout handle and completion for
flush request.
When timeout handle function blk_mq_rq_timed_out() try to read
'req->q->mq_ops', the 'req' have completed and reinitiated by next
flush request, which would call blk_rq_init() to clear 'req' as 0.
After commit 12f5b93145 ("blk-mq: Remove generation seqeunce"),
normal requests lifetime are protected by refcount. Until 'rq->ref'
drop to zero, the request can really be free. Thus, these requests
cannot been reused before timeout handle finish.
However, flush request has defined .end_io and rq->end_io() is still
called even if 'rq->ref' doesn't drop to zero. After that, the 'flush_rq'
can be reused by the next flush request handle, resulting in null
pointer deference BUG ON.
We fix this problem by covering flush request with 'rq->ref'.
If the refcount is not zero, flush_end_io() return and wait the
last holder recall it. To record the request status, we add a new
entry 'rq_status', which will be used in flush_end_io().
Cc: Ming Lei <ming.lei(a)redhat.com>
Cc: Christoph Hellwig <hch(a)infradead.org>
Cc: Keith Busch <keith.busch(a)intel.com>
Cc: Bart Van Assche <bvanassche(a)acm.org>
Cc: stable(a)vger.kernel.org # v4.18+
Signed-off-by: Yufen Yu <yuyufen(a)huawei.com>
-------
v2:
- move rq_status from struct request to struct blk_flush_queue
v3:
- remove unnecessary '{}' pair.
v4:
- let spinlock to protect 'fq->rq_status'
---
block/blk-flush.c | 10 ++++++++++
block/blk-mq.c | 5 ++++-
block/blk.h | 7 +++++++
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/block/blk-flush.c b/block/blk-flush.c
index aedd9320e605..1eec9cbe5a0a 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -214,6 +214,16 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error)
/* release the tag's ownership to the req cloned from */
spin_lock_irqsave(&fq->mq_flush_lock, flags);
+
+ if (!refcount_dec_and_test(&flush_rq->ref)) {
+ fq->rq_status = error;
+ spin_unlock_irqrestore(&fq->mq_flush_lock, flags);
+ return;
+ }
+
+ if (fq->rq_status != BLK_STS_OK)
+ error = fq->rq_status;
+
hctx = flush_rq->mq_hctx;
if (!q->elevator) {
blk_mq_tag_set_rq(hctx, flush_rq->tag, fq->orig_rq);
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 20a49be536b5..e04fa9ab5574 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -912,7 +912,10 @@ static bool blk_mq_check_expired(struct blk_mq_hw_ctx *hctx,
*/
if (blk_mq_req_expired(rq, next))
blk_mq_rq_timed_out(rq, reserved);
- if (refcount_dec_and_test(&rq->ref))
+
+ if (is_flush_rq(rq, hctx))
+ rq->end_io(rq, 0);
+ else if (refcount_dec_and_test(&rq->ref))
__blk_mq_free_request(rq);
return true;
diff --git a/block/blk.h b/block/blk.h
index ed347f7a97b1..de258e7b9db8 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -30,6 +30,7 @@ struct blk_flush_queue {
*/
struct request *orig_rq;
spinlock_t mq_flush_lock;
+ blk_status_t rq_status;
};
extern struct kmem_cache *blk_requestq_cachep;
@@ -47,6 +48,12 @@ static inline void __blk_get_queue(struct request_queue *q)
kobject_get(&q->kobj);
}
+static inline bool
+is_flush_rq(struct request *req, struct blk_mq_hw_ctx *hctx)
+{
+ return hctx->fq->flush_rq == req;
+}
+
struct blk_flush_queue *blk_alloc_flush_queue(struct request_queue *q,
int node, int cmd_size, gfp_t flags);
void blk_free_flush_queue(struct blk_flush_queue *q);
--
2.17.2
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/217889
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
We grabbed the 3a42bb1b1b1a commit of the stable queue repository.
We then merged the patchset with `git am`:
s390-process-avoid-potential-reading-of-freed-stack.patch
s390-sclp-fix-bit-checked-for-has_sipl.patch
kvm-s390-test-for-bad-access-register-and-size-at-the-start-of-s390_mem_op.patch
s390-topology-avoid-firing-events-before-kobjs-are-created.patch
s390-cio-avoid-calling-strlen-on-null-pointer.patch
s390-cio-exclude-subchannels-with-no-parent-from-pseudo-check.patch
s390-dasd-fix-error-handling-during-online-processing.patch
revert-s390-dasd-add-discard-support-for-ese-volumes.patch
kvm-s390-fix-__insn32_query-inline-assembly.patch
kvm-ppc-book3s-enable-xive-native-capability-only-if-opal-has-required-functions.patch
kvm-ppc-book3s-hv-xive-free-escalation-interrupts-before-disabling-the-vp.patch
kvm-ppc-book3s-hv-don-t-push-xive-context-when-not-using-xive-device.patch
kvm-ppc-book3s-hv-fix-race-in-re-enabling-xive-escalation-interrupts.patch
kvm-ppc-book3s-hv-check-for-mmu-ready-on-piggybacked-virtual-cores.patch
kvm-ppc-book3s-hv-don-t-lose-pending-doorbell-request-on-migration-on-p9.patch
kvm-x86-fix-userspace-set-invalid-cr4.patch
nbd-fix-max-number-of-supported-devs.patch
pm-devfreq-tegra-fix-khz-to-hz-conversion.patch
asoc-define-a-set-of-dapm-pre-post-up-events.patch
asoc-sgtl5000-improve-vag-power-and-mute-control.patch
powerpc-xive-implement-get_irqchip_state-method-for-xive-to-fix-shutdown-race.patch
powerpc-mce-fix-mce-handling-for-huge-pages.patch
powerpc-mce-schedule-work-from-irq_work.patch
powerpc-603-fix-handling-of-the-dirty-flag.patch
powerpc-32s-fix-boot-failure-with-debug_pagealloc-without-kasan.patch
powerpc-ptdump-fix-addresses-display-on-ppc32.patch
powerpc-powernv-restrict-opal-symbol-map-to-only-be-readable-by-root.patch
powerpc-pseries-fix-cpu_hotplug_lock-acquisition-in-resize_hpt.patch
powerpc-powernv-ioda-fix-race-in-tce-level-allocation.patch
powerpc-kasan-fix-parallel-loading-of-modules.patch
powerpc-kasan-fix-shadow-area-set-up-for-modules.patch
powerpc-book3s64-mm-don-t-do-tlbie-fixup-for-some-hardware-revisions.patch
powerpc-book3s64-radix-rename-cpu_ftr_p9_tlbie_bug-feature-flag.patch
powerpc-mm-add-a-helper-to-select-page_kernel_ro-or-page_readonly.patch
powerpc-mm-fix-an-oops-in-kasan_mmu_init.patch
powerpc-mm-fixup-tlbie-vs-mtpidr-mtlpidr-ordering-issue-on-power9.patch
can-mcp251x-mcp251x_hw_reset-allow-more-time-after-a-reset.patch
tools-lib-traceevent-fix-robust-test-of-do_generate_dynamic_list_file.patch
tools-lib-traceevent-do-not-free-tep-cmdlines-in-add_new_comm-on-failure.patch
crypto-qat-silence-smp_processor_id-warning.patch
crypto-skcipher-unmap-pages-after-an-external-error.patch
crypto-cavium-zip-add-missing-single_release.patch
crypto-caam-qi-fix-error-handling-in-ern-handler.patch
crypto-caam-fix-concurrency-issue-in-givencrypt-descriptor.patch
crypto-ccree-account-for-tee-not-ready-to-report.patch
crypto-ccree-use-the-full-crypt-length-value.patch
mips-treat-loongson-extensions-as-ases.patch
power-supply-sbs-battery-use-correct-flags-field.patch
power-supply-sbs-battery-only-return-health-when-battery-present.patch
tracing-make-sure-variable-reference-alias-has-correct-var_ref_idx.patch
usercopy-avoid-highmem-pfn-warning.patch
timer-read-jiffies-once-when-forwarding-base-clk.patch
pci-vmd-fix-config-addressing-when-using-bus-offsets.patch
pci-hv-avoid-use-of-hv_pci_dev-pci_slot-after-freeing-it.patch
pci-vmd-fix-shadow-offsets-to-reflect-spec-changes.patch
pci-restore-resizable-bar-size-bits-correctly-for-1mb-bars.patch
selftests-tpm2-add-the-missing-test_files-assignment.patch
selftests-pidfd-fix-undefined-reference-to-pthread_create.patch
watchdog-imx2_wdt-fix-min-calculation-in-imx2_wdt_set_timeout.patch
perf-tools-fix-segfault-in-cpu_cache_level__read.patch
perf-stat-fix-a-segmentation-fault-when-using-repeat-forever.patch
drm-i915-dp-fix-dsc-bpp-calculations-v5.patch
drm-atomic-reject-flip_async-unconditionally.patch
drm-atomic-take-the-atomic-toys-away-from-x.patch
drm-mali-dp-mark-expected-switch-fall-through.patch
drm-omap-fix-max-fclk-divider-for-omap36xx.patch
drm-msm-dsi-fix-return-value-check-for-clk_get_parent.patch
drm-nouveau-kms-nv50-don-t-create-mstms-for-edp-connectors.patch
drm-amd-powerplay-change-metrics-update-period-from-1ms-to-100ms.patch
drm-i915-gvt-update-vgpu-workload-head-pointer-correctly.patch
drm-i915-to-make-vgpu-ppgtt-notificaiton-as-atomic-operation.patch
mac80211-keep-bhs-disabled-while-calling-drv_tx_wake_queue.patch
mmc-tegra-implement-set_dma_mask.patch
mmc-sdhci-improve-adma-error-reporting.patch
mmc-sdhci-of-esdhc-set-dma-snooping-based-on-dma-coherence.patch
mmc-sdhci-let-drivers-define-their-dma-mask.patch
revert-locking-pvqspinlock-don-t-wait-if-vcpu-is-preempted.patch
libnvdimm-altmap-track-namespace-boundaries-in-altmap.patch
sched-add-__assembly__-guards-around-struct-clone_args.patch
dts-arm-gta04-introduce-legacy-spi-cs-high-to-make-display-work-again.patch
xen-balloon-set-pages-pageoffline-in-balloon_add_region.patch
xen-xenbus-fix-self-deadlock-after-killing-user-process.patch
ieee802154-atusb-fix-use-after-free-at-disconnect.patch
nl80211-validate-beacon-head.patch
cfg80211-validate-ssid-mbssid-element-ordering-assumption.patch
cfg80211-initialize-on-stack-chandefs.patch
drivers-thermal-qcom-tsens-fix-memory-leak-from-qfpr.patch
ima-always-return-negative-code-for-error.patch
ima-fix-freeing-ongoing-ahash_request.patch
fs-nfs-fix-possible-null-pointer-dereferences-in-enc.patch
xprtrdma-toggle-xprt_congested-in-xprtrdma-s-slot-me.patch
xprtrdma-send-queue-size-grows-after-a-reconnect.patch
9p-transport-error-uninitialized.patch
9p-avoid-attaching-writeback_fid-on-mmap-with-type-p.patch
xen-pci-reserve-mcfg-areas-earlier.patch
fuse-fix-request-limit.patch
ceph-fix-directories-inode-i_blkbits-initialization.patch
ceph-fetch-cap_gen-under-spinlock-in-ceph_add_cap.patch
ceph-reconnect-connection-if-session-hang-in-opening.patch
sunrpc-rpc-level-errors-should-always-set-task-tk_rp.patch
watchdog-aspeed-add-support-for-ast2600.patch
netfilter-nf_tables-allow-lookups-in-dynamic-sets.patch
drm-amdgpu-fix-kfd-related-kernel-oops-on-hawaii.patch
drm-amdgpu-check-for-valid-number-of-registers-to-re.patch
perf-probe-fix-to-clear-tev-nargs-in-clear_probe_tra.patch
pnfs-ensure-we-do-clear-the-return-on-close-layout-s.patch
sunrpc-don-t-try-to-parse-incomplete-rpc-messages.patch
pwm-stm32-lp-add-check-in-case-requested-period-cann.patch
selftests-seccomp-fix-build-on-older-kernels.patch
x86-purgatory-disable-the-stackleak-gcc-plugin-for-t.patch
ntb-point-to-right-memory-window-index.patch
thermal-fix-use-after-free-when-unregistering-therma.patch
thermal_hwmon-sanitize-thermal_zone-type.patch
iommu-amd-fix-downgrading-default-page-sizes-in-allo.patch
libnvdimm-region-initialize-bad-block-for-volatile-n.patch
libnvdimm-fix-endian-conversion-issues.patch
fuse-fix-memleak-in-cuse_channel_open.patch
libnvdimm-nfit_test-fix-acpi_handle-redefinition.patch
sched-membarrier-call-sync_core-only-before-usermode.patch
sched-membarrier-fix-private-expedited-registration-.patch
sched-core-fix-migration-to-invalid-cpu-in-__set_cpu.patch
perf-build-add-detection-of-java-11-openjdk-devel-pa.patch
include-trace-events-writeback.h-fix-wstringop-trunc.patch
selftests-bpf-adjust-strobemeta-loop-to-satisfy-late.patch
kernel-elfcore.c-include-proper-prototypes.patch
libbpf-fix-false-uninitialized-variable-warning.patch
blk-mq-move-lockdep_assert_held-into-elevator_exit.patch
bpf-fix-bpf_event_output-re-entry-issue.patch
net-dsa-microchip-always-set-regmap-stride-to-1.patch
i2c-qcom-geni-disable-dma-processing-on-the-lenovo-y.patch
perf-unwind-fix-libunwind-build-failure-on-i386-syst.patch
mlxsw-spectrum_flower-fail-in-case-user-specifies-mu.patch
nfp-abm-fix-memory-leak-in-nfp_abm_u32_knode_replace.patch
drm-radeon-bail-earlier-when-radeon.cik_-si_support-.patch
btrfs-fix-selftests-failure-due-to-uninitialized-i_m.patch
kvm-nvmx-fix-consistency-check-on-injected-exception.patch
tick-broadcast-hrtimer-fix-a-race-in-bc_set_next.patch
perf-stat-reset-previous-counts-on-repeat-with-inter.patch
riscv-avoid-interrupts-being-erroneously-enabled-in-.patch
vfs-fix-eoverflow-testing-in-put_compat_statfs64.patch
coresight-etm4x-use-explicit-barriers-on-enable-disable.patch
staging-erofs-fix-an-error-handling-in-erofs_readdir.patch
staging-erofs-some-compressed-cluster-should-be-submitted-for-corrupted-images.patch
staging-erofs-add-two-missing-erofs_workgroup_put-for-corrupted-images.patch
staging-erofs-avoid-endless-loop-of-invalid-lookback-distance-0.patch
staging-erofs-detect-potential-multiref-due-to-corrupted-images.patch
libnvdimm-prevent-nvdimm-from-requesting-key-when-se.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
⚡⚡⚡ Boot test
⚡⚡⚡ xfstests: xfs
⚡⚡⚡ selinux-policy: serge-testsuite
⚡⚡⚡ lvm thinp sanity
⚡⚡⚡ storage: software RAID testing
🚧 ⚡⚡⚡ Storage blktests
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
⚡⚡⚡ Boot test
⚡⚡⚡ Podman system integration test (as root)
⚡⚡⚡ Podman system integration test (as user)
⚡⚡⚡ Loopdev Sanity
⚡⚡⚡ jvm test suite
⚡⚡⚡ AMTU (Abstract Machine Test Utility)
⚡⚡⚡ LTP: openposix test suite
⚡⚡⚡ Ethernet drivers sanity
⚡⚡⚡ Networking socket: fuzz
⚡⚡⚡ audit: audit testsuite test
⚡⚡⚡ httpd: mod_ssl smoke sanity
⚡⚡⚡ iotop: sanity
⚡⚡⚡ tuned: tune-processes-through-perf
⚡⚡⚡ Usex - version 1.9-29
⚡⚡⚡ stress: stress-ng
🚧 ⚡⚡⚡ LTP lite
🚧 ⚡⚡⚡ POSIX pjd-fstest suites
🚧 ⚡⚡⚡ ALSA PCM loopback test
🚧 ⚡⚡⚡ ALSA Control (mixer) Userspace Element test
🚧 ⚡⚡⚡ trace: ftrace/tracer
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ❌ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
Host 2:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
x86_64:
Host 1:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
Host 3:
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 4:
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 5:
✅ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 6:
✅ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
On Thu, Oct 10, 2019 at 04:22:20PM +0000, niveditas98 . wrote:
>Is it applied to 5.2 as well? Only saw mails for 4.19 and 5.3.
5.2 is EOL.
--
Thanks,
Sasha
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
Commit: 30411ad78f03 - dm snapshot: introduce account_start_copy() and account_end_copy()
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/217121
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ L2TP basic test
🚧 ✅ Networking ipsec: basic netns tunnel
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ storage: dm/common
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
Host 2:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
x86_64:
Host 1:
✅ Boot test
🚧 ✅ IPMI driver test
🚧 ✅ IPMItool loop stress test
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking: igmp conformance test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
✅ stress: stress-ng
🚧 ❌ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ L2TP basic test
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ storage: dm/common
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
🚧 ✅ Networking ipsec: basic netns transport
🚧 ✅ Networking ipsec: basic netns tunnel
Host 3:
✅ Boot test
✅ Storage SAN device stress - mpt3sas driver
Host 4:
✅ Boot test
✅ Storage SAN device stress - megaraid_sas
Host 5:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
GCC 9.x automatically enables support for Loongson MMI instructions when
using some -march= flags, and then errors out when -msoft-float is
specified with:
cc1: error: ‘-mloongson-mmi’ must be used with ‘-mhard-float’
The kernel shouldn't be using these MMI instructions anyway, just as it
doesn't use floating point instructions. Explicitly disable them in
order to fix the build with GCC 9.x.
Signed-off-by: Paul Burton <paul.burton(a)mips.com>
Fixes: 3702bba5eb4f ("MIPS: Loongson: Add GCC 4.4 support for Loongson2E")
Fixes: 6f7a251a259e ("MIPS: Loongson: Add basic Loongson 2F support")
Fixes: 5188129b8c9f ("MIPS: Loongson-3: Improve -march option and move it to Platform")
Cc: Huacai Chen <chenhc(a)lemote.com>
Cc: Jiaxun Yang <jiaxun.yang(a)flygoat.com>
Cc: stable(a)vger.kernel.org # v2.6.32+
---
arch/mips/loongson64/Platform | 4 ++++
arch/mips/vdso/Makefile | 1 +
2 files changed, 5 insertions(+)
diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
index 28172500f95a..2855daf92fe8 100644
--- a/arch/mips/loongson64/Platform
+++ b/arch/mips/loongson64/Platform
@@ -66,6 +66,10 @@ else
$(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
endif
+# Some -march= flags enable MMI instructions, and GCC complains about that
+# support being enabled alongside -msoft-float. Thus explicitly disable MMI.
+cflags-y += $(call cc-option,-mno-loongson-mmi)
+
#
# Loongson Machines' Support
#
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 807f0f782f75..996a934ece7d 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -15,6 +15,7 @@ ccflags-vdso := \
$(filter -mmicromips,$(KBUILD_CFLAGS)) \
$(filter -march=%,$(KBUILD_CFLAGS)) \
$(filter -m%-float,$(KBUILD_CFLAGS)) \
+ $(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \
-D__VDSO__
ifdef CONFIG_CC_IS_CLANG
--
2.23.0
If a process is interrupted while accessing the video device and the
device lock is contended, release() could return early and fail to free
related resources.
Note that the return value of the v4l2 release file operation is
ignored.
Fixes: 28ffeebbb7bd ("[media] bdisp: 2D blitter driver using v4l2 mem2mem framework")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Fabien Dessenne <fabien.dessenne(a)st.com>
Cc: Hans Verkuil <hans.verkuil(a)cisco.com>
Cc: Mauro Carvalho Chehab <mchehab(a)osg.samsung.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/media/platform/sti/bdisp/bdisp-v4l2.c b/drivers/media/platform/sti/bdisp/bdisp-v4l2.c
index e90f1ba30574..675b5f2b4c2e 100644
--- a/drivers/media/platform/sti/bdisp/bdisp-v4l2.c
+++ b/drivers/media/platform/sti/bdisp/bdisp-v4l2.c
@@ -651,8 +651,7 @@ static int bdisp_release(struct file *file)
dev_dbg(bdisp->dev, "%s\n", __func__);
- if (mutex_lock_interruptible(&bdisp->lock))
- return -ERESTARTSYS;
+ mutex_lock(&bdisp->lock);
v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);
--
2.23.0
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: OK
Tests: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/215962
One or more kernel tests failed:
x86_64:
❌ Boot test
❌ Boot test
❌ Boot test
❌ Boot test
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
We grabbed the 0a9f51931637 commit of the stable queue repository.
We then merged the patchset with `git am`:
s390-process-avoid-potential-reading-of-freed-stack.patch
s390-sclp-fix-bit-checked-for-has_sipl.patch
kvm-s390-test-for-bad-access-register-and-size-at-the-start-of-s390_mem_op.patch
s390-topology-avoid-firing-events-before-kobjs-are-created.patch
s390-cio-avoid-calling-strlen-on-null-pointer.patch
s390-cio-exclude-subchannels-with-no-parent-from-pseudo-check.patch
s390-dasd-fix-error-handling-during-online-processing.patch
revert-s390-dasd-add-discard-support-for-ese-volumes.patch
kvm-s390-fix-__insn32_query-inline-assembly.patch
kvm-ppc-book3s-enable-xive-native-capability-only-if-opal-has-required-functions.patch
kvm-ppc-book3s-hv-xive-free-escalation-interrupts-before-disabling-the-vp.patch
kvm-ppc-book3s-hv-don-t-push-xive-context-when-not-using-xive-device.patch
kvm-ppc-book3s-hv-fix-race-in-re-enabling-xive-escalation-interrupts.patch
kvm-ppc-book3s-hv-check-for-mmu-ready-on-piggybacked-virtual-cores.patch
kvm-ppc-book3s-hv-don-t-lose-pending-doorbell-request-on-migration-on-p9.patch
kvm-x86-fix-userspace-set-invalid-cr4.patch
nbd-fix-max-number-of-supported-devs.patch
pm-devfreq-tegra-fix-khz-to-hz-conversion.patch
asoc-define-a-set-of-dapm-pre-post-up-events.patch
asoc-sgtl5000-improve-vag-power-and-mute-control.patch
powerpc-xive-implement-get_irqchip_state-method-for-xive-to-fix-shutdown-race.patch
powerpc-mce-fix-mce-handling-for-huge-pages.patch
powerpc-mce-schedule-work-from-irq_work.patch
powerpc-603-fix-handling-of-the-dirty-flag.patch
powerpc-32s-fix-boot-failure-with-debug_pagealloc-without-kasan.patch
powerpc-ptdump-fix-addresses-display-on-ppc32.patch
powerpc-powernv-restrict-opal-symbol-map-to-only-be-readable-by-root.patch
powerpc-pseries-fix-cpu_hotplug_lock-acquisition-in-resize_hpt.patch
powerpc-powernv-ioda-fix-race-in-tce-level-allocation.patch
powerpc-kasan-fix-parallel-loading-of-modules.patch
powerpc-kasan-fix-shadow-area-set-up-for-modules.patch
powerpc-book3s64-mm-don-t-do-tlbie-fixup-for-some-hardware-revisions.patch
powerpc-book3s64-radix-rename-cpu_ftr_p9_tlbie_bug-feature-flag.patch
powerpc-mm-add-a-helper-to-select-page_kernel_ro-or-page_readonly.patch
powerpc-mm-fix-an-oops-in-kasan_mmu_init.patch
powerpc-mm-fixup-tlbie-vs-mtpidr-mtlpidr-ordering-issue-on-power9.patch
can-mcp251x-mcp251x_hw_reset-allow-more-time-after-a-reset.patch
tools-lib-traceevent-fix-robust-test-of-do_generate_dynamic_list_file.patch
tools-lib-traceevent-do-not-free-tep-cmdlines-in-add_new_comm-on-failure.patch
crypto-qat-silence-smp_processor_id-warning.patch
crypto-skcipher-unmap-pages-after-an-external-error.patch
crypto-cavium-zip-add-missing-single_release.patch
crypto-caam-qi-fix-error-handling-in-ern-handler.patch
crypto-caam-fix-concurrency-issue-in-givencrypt-descriptor.patch
crypto-ccree-account-for-tee-not-ready-to-report.patch
crypto-ccree-use-the-full-crypt-length-value.patch
mips-treat-loongson-extensions-as-ases.patch
power-supply-sbs-battery-use-correct-flags-field.patch
power-supply-sbs-battery-only-return-health-when-battery-present.patch
tracing-make-sure-variable-reference-alias-has-correct-var_ref_idx.patch
usercopy-avoid-highmem-pfn-warning.patch
timer-read-jiffies-once-when-forwarding-base-clk.patch
pci-vmd-fix-config-addressing-when-using-bus-offsets.patch
pci-hv-avoid-use-of-hv_pci_dev-pci_slot-after-freeing-it.patch
pci-vmd-fix-shadow-offsets-to-reflect-spec-changes.patch
pci-restore-resizable-bar-size-bits-correctly-for-1mb-bars.patch
selftests-tpm2-add-the-missing-test_files-assignment.patch
selftests-pidfd-fix-undefined-reference-to-pthread_create.patch
watchdog-imx2_wdt-fix-min-calculation-in-imx2_wdt_set_timeout.patch
perf-tools-fix-segfault-in-cpu_cache_level__read.patch
perf-stat-fix-a-segmentation-fault-when-using-repeat-forever.patch
drm-i915-dp-fix-dsc-bpp-calculations-v5.patch
drm-atomic-reject-flip_async-unconditionally.patch
drm-atomic-take-the-atomic-toys-away-from-x.patch
drm-mali-dp-mark-expected-switch-fall-through.patch
drm-omap-fix-max-fclk-divider-for-omap36xx.patch
drm-msm-dsi-fix-return-value-check-for-clk_get_parent.patch
drm-nouveau-kms-nv50-don-t-create-mstms-for-edp-connectors.patch
drm-amd-powerplay-change-metrics-update-period-from-1ms-to-100ms.patch
drm-i915-gvt-update-vgpu-workload-head-pointer-correctly.patch
drm-i915-userptr-acquire-the-page-lock-around-set_page_dirty.patch
drm-i915-to-make-vgpu-ppgtt-notificaiton-as-atomic-operation.patch
mac80211-keep-bhs-disabled-while-calling-drv_tx_wake_queue.patch
mmc-tegra-implement-set_dma_mask.patch
mmc-sdhci-improve-adma-error-reporting.patch
mmc-sdhci-of-esdhc-set-dma-snooping-based-on-dma-coherence.patch
mmc-sdhci-let-drivers-define-their-dma-mask.patch
revert-locking-pvqspinlock-don-t-wait-if-vcpu-is-preempted.patch
libnvdimm-altmap-track-namespace-boundaries-in-altmap.patch
sched-add-__assembly__-guards-around-struct-clone_args.patch
dts-arm-gta04-introduce-legacy-spi-cs-high-to-make-display-work-again.patch
xen-balloon-set-pages-pageoffline-in-balloon_add_region.patch
xen-xenbus-fix-self-deadlock-after-killing-user-process.patch
ieee802154-atusb-fix-use-after-free-at-disconnect.patch
nl80211-validate-beacon-head.patch
cfg80211-validate-ssid-mbssid-element-ordering-assumption.patch
cfg80211-initialize-on-stack-chandefs.patch
drivers-thermal-qcom-tsens-fix-memory-leak-from-qfpr.patch
ima-always-return-negative-code-for-error.patch
ima-fix-freeing-ongoing-ahash_request.patch
fs-nfs-fix-possible-null-pointer-dereferences-in-enc.patch
xprtrdma-toggle-xprt_congested-in-xprtrdma-s-slot-me.patch
xprtrdma-send-queue-size-grows-after-a-reconnect.patch
9p-transport-error-uninitialized.patch
9p-avoid-attaching-writeback_fid-on-mmap-with-type-p.patch
xen-pci-reserve-mcfg-areas-earlier.patch
fuse-fix-request-limit.patch
ceph-fix-directories-inode-i_blkbits-initialization.patch
ceph-fetch-cap_gen-under-spinlock-in-ceph_add_cap.patch
ceph-reconnect-connection-if-session-hang-in-opening.patch
sunrpc-rpc-level-errors-should-always-set-task-tk_rp.patch
watchdog-aspeed-add-support-for-ast2600.patch
netfilter-nf_tables-allow-lookups-in-dynamic-sets.patch
drm-amdgpu-fix-kfd-related-kernel-oops-on-hawaii.patch
drm-amdgpu-check-for-valid-number-of-registers-to-re.patch
perf-probe-fix-to-clear-tev-nargs-in-clear_probe_tra.patch
pnfs-ensure-we-do-clear-the-return-on-close-layout-s.patch
sunrpc-don-t-try-to-parse-incomplete-rpc-messages.patch
pwm-stm32-lp-add-check-in-case-requested-period-cann.patch
selftests-seccomp-fix-build-on-older-kernels.patch
x86-purgatory-disable-the-stackleak-gcc-plugin-for-t.patch
ntb-point-to-right-memory-window-index.patch
thermal-fix-use-after-free-when-unregistering-therma.patch
thermal_hwmon-sanitize-thermal_zone-type.patch
iommu-amd-fix-downgrading-default-page-sizes-in-allo.patch
libnvdimm-region-initialize-bad-block-for-volatile-n.patch
libnvdimm-fix-endian-conversion-issues.patch
fuse-fix-memleak-in-cuse_channel_open.patch
libnvdimm-nfit_test-fix-acpi_handle-redefinition.patch
sched-membarrier-call-sync_core-only-before-usermode.patch
sched-membarrier-fix-private-expedited-registration-.patch
sched-core-fix-migration-to-invalid-cpu-in-__set_cpu.patch
perf-build-add-detection-of-java-11-openjdk-devel-pa.patch
include-trace-events-writeback.h-fix-wstringop-trunc.patch
selftests-bpf-adjust-strobemeta-loop-to-satisfy-late.patch
kernel-elfcore.c-include-proper-prototypes.patch
libbpf-fix-false-uninitialized-variable-warning.patch
blk-mq-move-lockdep_assert_held-into-elevator_exit.patch
bpf-fix-bpf_event_output-re-entry-issue.patch
net-dsa-microchip-always-set-regmap-stride-to-1.patch
i2c-qcom-geni-disable-dma-processing-on-the-lenovo-y.patch
perf-unwind-fix-libunwind-build-failure-on-i386-syst.patch
mlxsw-spectrum_flower-fail-in-case-user-specifies-mu.patch
nfp-abm-fix-memory-leak-in-nfp_abm_u32_knode_replace.patch
drm-radeon-bail-earlier-when-radeon.cik_-si_support-.patch
btrfs-fix-selftests-failure-due-to-uninitialized-i_m.patch
kvm-nvmx-fix-consistency-check-on-injected-exception.patch
tick-broadcast-hrtimer-fix-a-race-in-bc_set_next.patch
perf-stat-reset-previous-counts-on-repeat-with-inter.patch
riscv-avoid-interrupts-being-erroneously-enabled-in-.patch
vfs-fix-eoverflow-testing-in-put_compat_statfs64.patch
coresight-etm4x-use-explicit-barriers-on-enable-disable.patch
staging-erofs-fix-an-error-handling-in-erofs_readdir.patch
staging-erofs-some-compressed-cluster-should-be-submitted-for-corrupted-images.patch
staging-erofs-add-two-missing-erofs_workgroup_put-for-corrupted-images.patch
staging-erofs-avoid-endless-loop-of-invalid-lookback-distance-0.patch
staging-erofs-detect-potential-multiref-due-to-corrupted-images.patch
libnvdimm-prevent-nvdimm-from-requesting-key-when-se.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
ppc64le:
Host 1:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
x86_64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ❌ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
Host 2:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Host 3:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 4:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 5:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 6:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
If a process is interrupted while accessing the radio device and the
core lock is contended, release() could return early and fail to update
the interrupt mask.
Note that the return value of the v4l2 release file operation is
ignored.
Fixes: 87d1a50ce451 ("[media] V4L2: WL1273 FM Radio: TI WL1273 FM radio driver")
Cc: stable <stable(a)vger.kernel.org> # 2.6.38
Cc: Matti Aaltonen <matti.j.aaltonen(a)nokia.com>
Cc: Mauro Carvalho Chehab <mchehab(a)redhat.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/media/radio/radio-wl1273.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/media/radio/radio-wl1273.c b/drivers/media/radio/radio-wl1273.c
index 104ac41c6f96..112376873167 100644
--- a/drivers/media/radio/radio-wl1273.c
+++ b/drivers/media/radio/radio-wl1273.c
@@ -1148,8 +1148,7 @@ static int wl1273_fm_fops_release(struct file *file)
if (radio->rds_users > 0) {
radio->rds_users--;
if (radio->rds_users == 0) {
- if (mutex_lock_interruptible(&core->lock))
- return -EINTR;
+ mutex_lock(&core->lock);
radio->irq_flags &= ~WL1273_RDS_EVENT;
--
2.23.0
If disconnect() races with release() after a process has been
interrupted, release() could end up returning early and the driver would
fail to free its driver data.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/misc/legousbtower.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
index 9d4c52a7ebe0..62dab2441ec4 100644
--- a/drivers/usb/misc/legousbtower.c
+++ b/drivers/usb/misc/legousbtower.c
@@ -419,10 +419,7 @@ static int tower_release (struct inode *inode, struct file *file)
goto exit;
}
- if (mutex_lock_interruptible(&dev->lock)) {
- retval = -ERESTARTSYS;
- goto exit;
- }
+ mutex_lock(&dev->lock);
if (dev->open_count != 1) {
dev_dbg(&dev->udev->dev, "%s: device not opened exactly once\n",
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: yurex: fix NULL-derefs on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From aafb00a977cf7d81821f7c9d12e04c558c22dc3c Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 17:38:48 +0200
Subject: USB: yurex: fix NULL-derefs on disconnect
The driver was using its struct usb_interface pointer as an inverted
disconnected flag, but was setting it to NULL without making sure all
code paths that used it were done with it.
Before commit ef61eb43ada6 ("USB: yurex: Fix protection fault after
device removal") this included the interrupt-in completion handler, but
there are further accesses in dev_err and dev_dbg statements in
yurex_write() and the driver-data destructor (sic!).
Fix this by unconditionally stopping also the control URB at disconnect
and by using a dedicated disconnected flag.
Note that we need to take a reference to the struct usb_interface to
avoid a use-after-free in the destructor whenever the device was
disconnected while the character device was still open.
Fixes: aadd6472d904 ("USB: yurex.c: remove dbg() usage")
Fixes: 45714104b9e8 ("USB: yurex.c: remove err() usage")
Cc: stable <stable(a)vger.kernel.org> # 3.5: ef61eb43ada6
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009153848.8664-6-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/yurex.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 8d52d4336c29..be0505b8b5d4 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -60,6 +60,7 @@ struct usb_yurex {
struct kref kref;
struct mutex io_mutex;
+ unsigned long disconnected:1;
struct fasync_struct *async_queue;
wait_queue_head_t waitq;
@@ -107,6 +108,7 @@ static void yurex_delete(struct kref *kref)
dev->int_buffer, dev->urb->transfer_dma);
usb_free_urb(dev->urb);
}
+ usb_put_intf(dev->interface);
usb_put_dev(dev->udev);
kfree(dev);
}
@@ -205,7 +207,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
init_waitqueue_head(&dev->waitq);
dev->udev = usb_get_dev(interface_to_usbdev(interface));
- dev->interface = interface;
+ dev->interface = usb_get_intf(interface);
/* set up the endpoint information */
iface_desc = interface->cur_altsetting;
@@ -316,8 +318,9 @@ static void yurex_disconnect(struct usb_interface *interface)
/* prevent more I/O from starting */
usb_poison_urb(dev->urb);
+ usb_poison_urb(dev->cntl_urb);
mutex_lock(&dev->io_mutex);
- dev->interface = NULL;
+ dev->disconnected = 1;
mutex_unlock(&dev->io_mutex);
/* wakeup waiters */
@@ -405,7 +408,7 @@ static ssize_t yurex_read(struct file *file, char __user *buffer, size_t count,
dev = file->private_data;
mutex_lock(&dev->io_mutex);
- if (!dev->interface) { /* already disconnected */
+ if (dev->disconnected) { /* already disconnected */
mutex_unlock(&dev->io_mutex);
return -ENODEV;
}
@@ -440,7 +443,7 @@ static ssize_t yurex_write(struct file *file, const char __user *user_buffer,
goto error;
mutex_lock(&dev->io_mutex);
- if (!dev->interface) { /* already disconnected */
+ if (dev->disconnected) { /* already disconnected */
mutex_unlock(&dev->io_mutex);
retval = -ENODEV;
goto error;
--
2.23.0
The driver was using its struct usb_interface pointer as an inverted
disconnected flag, but was setting it to NULL without making sure all
code paths that used it were done with it.
Before commit ef61eb43ada6 ("USB: yurex: Fix protection fault after
device removal") this included the interrupt-in completion handler, but
there are further accesses in dev_err and dev_dbg statements in
yurex_write() and the driver-data destructor (sic!).
Fix this by unconditionally stopping also the control URB at disconnect
and by using a dedicated disconnected flag.
Note that we need to take a reference to the struct usb_interface to
avoid a use-after-free in the destructor whenever the device was
disconnected while the character device was still open.
Fixes: aadd6472d904 ("USB: yurex.c: remove dbg() usage")
Fixes: 45714104b9e8 ("USB: yurex.c: remove err() usage")
Cc: stable <stable(a)vger.kernel.org> # 3.5: ef61eb43ada6
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/misc/yurex.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 8d52d4336c29..be0505b8b5d4 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -60,6 +60,7 @@ struct usb_yurex {
struct kref kref;
struct mutex io_mutex;
+ unsigned long disconnected:1;
struct fasync_struct *async_queue;
wait_queue_head_t waitq;
@@ -107,6 +108,7 @@ static void yurex_delete(struct kref *kref)
dev->int_buffer, dev->urb->transfer_dma);
usb_free_urb(dev->urb);
}
+ usb_put_intf(dev->interface);
usb_put_dev(dev->udev);
kfree(dev);
}
@@ -205,7 +207,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
init_waitqueue_head(&dev->waitq);
dev->udev = usb_get_dev(interface_to_usbdev(interface));
- dev->interface = interface;
+ dev->interface = usb_get_intf(interface);
/* set up the endpoint information */
iface_desc = interface->cur_altsetting;
@@ -316,8 +318,9 @@ static void yurex_disconnect(struct usb_interface *interface)
/* prevent more I/O from starting */
usb_poison_urb(dev->urb);
+ usb_poison_urb(dev->cntl_urb);
mutex_lock(&dev->io_mutex);
- dev->interface = NULL;
+ dev->disconnected = 1;
mutex_unlock(&dev->io_mutex);
/* wakeup waiters */
@@ -405,7 +408,7 @@ static ssize_t yurex_read(struct file *file, char __user *buffer, size_t count,
dev = file->private_data;
mutex_lock(&dev->io_mutex);
- if (!dev->interface) { /* already disconnected */
+ if (dev->disconnected) { /* already disconnected */
mutex_unlock(&dev->io_mutex);
return -ENODEV;
}
@@ -440,7 +443,7 @@ static ssize_t yurex_write(struct file *file, const char __user *user_buffer,
goto error;
mutex_lock(&dev->io_mutex);
- if (!dev->interface) { /* already disconnected */
+ if (dev->disconnected) { /* already disconnected */
mutex_unlock(&dev->io_mutex);
retval = -ENODEV;
goto error;
--
2.23.0
If the rx-offload skb_queue is full can_rx_offload_queue_sorted() will
not queue the skb and return with an error.
None of the callers of this function, issue a kfree_skb() to free the
not queued skb. This results in a memory leak.
This patch fixes the problem by freeing the skb in case of a full queue.
The return value is adjusted to -ENOBUFS to better reflect the actual
problem.
The device stats handling is left to the callers, as this function
mightbe used in both the rx and tx path.
Fixes: 55059f2b7f86 ("can: rx-offload: introduce can_rx_offload_get_echo_skb() and can_rx_offload_queue_sorted() functions")
Cc: linux-stable <stable(a)vger.kernel.org>
Cc: Martin Hundebøll <martin(a)geanix.com>
Reported-by: Martin Hundebøll <martin(a)geanix.com>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/rx-offload.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/can/rx-offload.c b/drivers/net/can/rx-offload.c
index e6a668ee7730..663697439d1c 100644
--- a/drivers/net/can/rx-offload.c
+++ b/drivers/net/can/rx-offload.c
@@ -207,8 +207,10 @@ int can_rx_offload_queue_sorted(struct can_rx_offload *offload,
unsigned long flags;
if (skb_queue_len(&offload->skb_queue) >
- offload->skb_queue_len_max)
- return -ENOMEM;
+ offload->skb_queue_len_max) {
+ kfree_skb(skb);
+ return -ENOBUFS;
+ }
cb = can_rx_offload_get_cb(skb);
cb->timestamp = timestamp;
--
2.23.0
From: Kurt Van Dijck <dev.kurt(a)vandijck-laurijssen.be>
When the status register is read without the status IRQ pending, the
chip may not raise the interrupt line for an upcoming status interrupt
and the driver may miss a status interrupt.
It is critical that the BUSOFF status interrupt is forwarded to the
higher layers, since no more interrupts will follow without
intervention.
Thanks to Wolfgang and Joe for bringing up the first idea.
Signed-off-by: Kurt Van Dijck <dev.kurt(a)vandijck-laurijssen.be>
Cc: Wolfgang Grandegger <wg(a)grandegger.com>
Cc: Joe Burmeister <joe.burmeister(a)devtank.co.uk>
Fixes: fa39b54ccf28 ("can: c_can: Get rid of pointless interrupts")
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/c_can/c_can.c | 25 ++++++++++++++++++++-----
drivers/net/can/c_can/c_can.h | 1 +
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
index 606b7d8ffe13..9b61bfbea6cd 100644
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -97,6 +97,9 @@
#define BTR_TSEG2_SHIFT 12
#define BTR_TSEG2_MASK (0x7 << BTR_TSEG2_SHIFT)
+/* interrupt register */
+#define INT_STS_PENDING 0x8000
+
/* brp extension register */
#define BRP_EXT_BRPE_MASK 0x0f
#define BRP_EXT_BRPE_SHIFT 0
@@ -1029,10 +1032,16 @@ static int c_can_poll(struct napi_struct *napi, int quota)
u16 curr, last = priv->last_status;
int work_done = 0;
- priv->last_status = curr = priv->read_reg(priv, C_CAN_STS_REG);
- /* Ack status on C_CAN. D_CAN is self clearing */
- if (priv->type != BOSCH_D_CAN)
- priv->write_reg(priv, C_CAN_STS_REG, LEC_UNUSED);
+ /* Only read the status register if a status interrupt was pending */
+ if (atomic_xchg(&priv->sie_pending, 0)) {
+ priv->last_status = curr = priv->read_reg(priv, C_CAN_STS_REG);
+ /* Ack status on C_CAN. D_CAN is self clearing */
+ if (priv->type != BOSCH_D_CAN)
+ priv->write_reg(priv, C_CAN_STS_REG, LEC_UNUSED);
+ } else {
+ /* no change detected ... */
+ curr = last;
+ }
/* handle state changes */
if ((curr & STATUS_EWARN) && (!(last & STATUS_EWARN))) {
@@ -1083,10 +1092,16 @@ static irqreturn_t c_can_isr(int irq, void *dev_id)
{
struct net_device *dev = (struct net_device *)dev_id;
struct c_can_priv *priv = netdev_priv(dev);
+ int reg_int;
- if (!priv->read_reg(priv, C_CAN_INT_REG))
+ reg_int = priv->read_reg(priv, C_CAN_INT_REG);
+ if (!reg_int)
return IRQ_NONE;
+ /* save for later use */
+ if (reg_int & INT_STS_PENDING)
+ atomic_set(&priv->sie_pending, 1);
+
/* disable all interrupts and schedule the NAPI */
c_can_irq_control(priv, false);
napi_schedule(&priv->napi);
diff --git a/drivers/net/can/c_can/c_can.h b/drivers/net/can/c_can/c_can.h
index 8acdc7fa4792..d5567a7c1c6d 100644
--- a/drivers/net/can/c_can/c_can.h
+++ b/drivers/net/can/c_can/c_can.h
@@ -198,6 +198,7 @@ struct c_can_priv {
struct net_device *dev;
struct device *device;
atomic_t tx_active;
+ atomic_t sie_pending;
unsigned long tx_dir;
int last_status;
u16 (*read_reg) (const struct c_can_priv *priv, enum reg index);
--
2.23.0
From: Stephane Grosjean <s.grosjean(a)peak-system.com>
When decoding a buffer received from PCAN-USB, the first timestamp read in
a packet is a 16-bit coded time base, and the next ones are an 8-bit
offset to this base, regardless of the type of packet read.
This patch corrects a potential loss of synchronization by using a
timestamp index read from the buffer, rather than an index of received
data packets, to determine on the sizeof the timestamp to be read from the
packet being decoded.
Signed-off-by: Stephane Grosjean <s.grosjean(a)peak-system.com>
Fixes: 46be265d3388 ("can: usb: PEAK-System Technik PCAN-USB specific part")
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/usb/peak_usb/pcan_usb.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c
index 617da295b6c1..5a66c9f53aae 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb.c
@@ -100,7 +100,7 @@ struct pcan_usb_msg_context {
u8 *end;
u8 rec_cnt;
u8 rec_idx;
- u8 rec_data_idx;
+ u8 rec_ts_idx;
struct net_device *netdev;
struct pcan_usb *pdev;
};
@@ -547,10 +547,15 @@ static int pcan_usb_decode_status(struct pcan_usb_msg_context *mc,
mc->ptr += PCAN_USB_CMD_ARGS;
if (status_len & PCAN_USB_STATUSLEN_TIMESTAMP) {
- int err = pcan_usb_decode_ts(mc, !mc->rec_idx);
+ int err = pcan_usb_decode_ts(mc, !mc->rec_ts_idx);
if (err)
return err;
+
+ /* Next packet in the buffer will have a timestamp on a single
+ * byte
+ */
+ mc->rec_ts_idx++;
}
switch (f) {
@@ -632,10 +637,13 @@ static int pcan_usb_decode_data(struct pcan_usb_msg_context *mc, u8 status_len)
cf->can_dlc = get_can_dlc(rec_len);
- /* first data packet timestamp is a word */
- if (pcan_usb_decode_ts(mc, !mc->rec_data_idx))
+ /* Only first packet timestamp is a word */
+ if (pcan_usb_decode_ts(mc, !mc->rec_ts_idx))
goto decode_failed;
+ /* Next packet in the buffer will have a timestamp on a single byte */
+ mc->rec_ts_idx++;
+
/* read data */
memset(cf->data, 0x0, sizeof(cf->data));
if (status_len & PCAN_USB_STATUSLEN_RTR) {
@@ -688,7 +696,6 @@ static int pcan_usb_decode_msg(struct peak_usb_device *dev, u8 *ibuf, u32 lbuf)
/* handle normal can frames here */
} else {
err = pcan_usb_decode_data(&mc, sl);
- mc.rec_data_idx++;
}
}
--
2.23.0
From: Joakim Zhang <qiangqing.zhang(a)nxp.com>
The ECC (memory error detection and correction) mechanism can be
activated or not, controlled by the ECCDIS bit in CAN_MECR. When
disabled, updates on indications and reporting registers are stopped.
So if want to disable ECC completely, had better assert ECCDIS bit, not
just mask the related interrupts.
Fixes: cdce844865be ("can: flexcan: add vf610 support for FlexCAN")
Signed-off-by: Joakim Zhang <qiangqing.zhang(a)nxp.com>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/flexcan.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index dc5695dffc2e..1cd5179cb876 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1188,6 +1188,7 @@ static int flexcan_chip_start(struct net_device *dev)
reg_mecr = priv->read(®s->mecr);
reg_mecr &= ~FLEXCAN_MECR_ECRWRDIS;
priv->write(reg_mecr, ®s->mecr);
+ reg_mecr |= FLEXCAN_MECR_ECCDIS;
reg_mecr &= ~(FLEXCAN_MECR_NCEFAFRZ | FLEXCAN_MECR_HANCEI_MSK |
FLEXCAN_MECR_FANCEI_MSK);
priv->write(reg_mecr, ®s->mecr);
--
2.23.0
From: Wen Yang <wenyang(a)linux.alibaba.com>
of_node_put() needs to be called when the device node which is got
from of_get_child_by_name() finished using.
Fixes: 2290aefa2e90 ("can: dev: Add support for limiting configured bitrate")
Cc: Franklin S Cooper Jr <fcooper(a)ti.com>
Signed-off-by: Wen Yang <wenyang(a)linux.alibaba.com>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/dev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index ac86be52b461..1c88c361938c 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -848,6 +848,7 @@ void of_can_transceiver(struct net_device *dev)
return;
ret = of_property_read_u32(dn, "max-bitrate", &priv->bitrate_max);
+ of_node_put(dn);
if ((ret && ret != -EINVAL) || (!ret && !priv->bitrate_max))
netdev_warn(dev, "Invalid value for transceiver max bitrate. Ignoring bitrate limit.\n");
}
--
2.23.0
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: OK
Tests: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/215692
One or more kernel tests failed:
x86_64:
❌ Boot test
❌ Boot test
❌ Boot test
❌ Boot test
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 52020d3f6633 - Linux 5.3.5
We grabbed the e67a4dc5be0c commit of the stable queue repository.
We then merged the patchset with `git am`:
s390-process-avoid-potential-reading-of-freed-stack.patch
s390-sclp-fix-bit-checked-for-has_sipl.patch
kvm-s390-test-for-bad-access-register-and-size-at-the-start-of-s390_mem_op.patch
s390-topology-avoid-firing-events-before-kobjs-are-created.patch
s390-cio-avoid-calling-strlen-on-null-pointer.patch
s390-cio-exclude-subchannels-with-no-parent-from-pseudo-check.patch
s390-dasd-fix-error-handling-during-online-processing.patch
revert-s390-dasd-add-discard-support-for-ese-volumes.patch
kvm-s390-fix-__insn32_query-inline-assembly.patch
kvm-ppc-book3s-enable-xive-native-capability-only-if-opal-has-required-functions.patch
kvm-ppc-book3s-hv-xive-free-escalation-interrupts-before-disabling-the-vp.patch
kvm-ppc-book3s-hv-don-t-push-xive-context-when-not-using-xive-device.patch
kvm-ppc-book3s-hv-fix-race-in-re-enabling-xive-escalation-interrupts.patch
kvm-ppc-book3s-hv-check-for-mmu-ready-on-piggybacked-virtual-cores.patch
kvm-ppc-book3s-hv-don-t-lose-pending-doorbell-request-on-migration-on-p9.patch
kvm-x86-fix-userspace-set-invalid-cr4.patch
nbd-fix-max-number-of-supported-devs.patch
pm-devfreq-tegra-fix-khz-to-hz-conversion.patch
asoc-define-a-set-of-dapm-pre-post-up-events.patch
asoc-sgtl5000-improve-vag-power-and-mute-control.patch
powerpc-xive-implement-get_irqchip_state-method-for-xive-to-fix-shutdown-race.patch
powerpc-mce-fix-mce-handling-for-huge-pages.patch
powerpc-mce-schedule-work-from-irq_work.patch
powerpc-603-fix-handling-of-the-dirty-flag.patch
powerpc-32s-fix-boot-failure-with-debug_pagealloc-without-kasan.patch
powerpc-ptdump-fix-addresses-display-on-ppc32.patch
powerpc-powernv-restrict-opal-symbol-map-to-only-be-readable-by-root.patch
powerpc-pseries-fix-cpu_hotplug_lock-acquisition-in-resize_hpt.patch
powerpc-powernv-ioda-fix-race-in-tce-level-allocation.patch
powerpc-kasan-fix-parallel-loading-of-modules.patch
powerpc-kasan-fix-shadow-area-set-up-for-modules.patch
powerpc-book3s64-mm-don-t-do-tlbie-fixup-for-some-hardware-revisions.patch
powerpc-book3s64-radix-rename-cpu_ftr_p9_tlbie_bug-feature-flag.patch
powerpc-mm-add-a-helper-to-select-page_kernel_ro-or-page_readonly.patch
powerpc-mm-fix-an-oops-in-kasan_mmu_init.patch
powerpc-mm-fixup-tlbie-vs-mtpidr-mtlpidr-ordering-issue-on-power9.patch
can-mcp251x-mcp251x_hw_reset-allow-more-time-after-a-reset.patch
tools-lib-traceevent-fix-robust-test-of-do_generate_dynamic_list_file.patch
tools-lib-traceevent-do-not-free-tep-cmdlines-in-add_new_comm-on-failure.patch
crypto-qat-silence-smp_processor_id-warning.patch
crypto-skcipher-unmap-pages-after-an-external-error.patch
crypto-cavium-zip-add-missing-single_release.patch
crypto-caam-qi-fix-error-handling-in-ern-handler.patch
crypto-caam-fix-concurrency-issue-in-givencrypt-descriptor.patch
crypto-ccree-account-for-tee-not-ready-to-report.patch
crypto-ccree-use-the-full-crypt-length-value.patch
mips-treat-loongson-extensions-as-ases.patch
power-supply-sbs-battery-use-correct-flags-field.patch
power-supply-sbs-battery-only-return-health-when-battery-present.patch
tracing-make-sure-variable-reference-alias-has-correct-var_ref_idx.patch
usercopy-avoid-highmem-pfn-warning.patch
timer-read-jiffies-once-when-forwarding-base-clk.patch
pci-vmd-fix-config-addressing-when-using-bus-offsets.patch
pci-hv-avoid-use-of-hv_pci_dev-pci_slot-after-freeing-it.patch
pci-vmd-fix-shadow-offsets-to-reflect-spec-changes.patch
pci-restore-resizable-bar-size-bits-correctly-for-1mb-bars.patch
selftests-tpm2-add-the-missing-test_files-assignment.patch
selftests-pidfd-fix-undefined-reference-to-pthread_create.patch
watchdog-imx2_wdt-fix-min-calculation-in-imx2_wdt_set_timeout.patch
perf-tools-fix-segfault-in-cpu_cache_level__read.patch
perf-stat-fix-a-segmentation-fault-when-using-repeat-forever.patch
drm-i915-dp-fix-dsc-bpp-calculations-v5.patch
drm-atomic-reject-flip_async-unconditionally.patch
drm-atomic-take-the-atomic-toys-away-from-x.patch
drm-mali-dp-mark-expected-switch-fall-through.patch
drm-omap-fix-max-fclk-divider-for-omap36xx.patch
drm-msm-dsi-fix-return-value-check-for-clk_get_parent.patch
drm-nouveau-kms-nv50-don-t-create-mstms-for-edp-connectors.patch
drm-amd-powerplay-change-metrics-update-period-from-1ms-to-100ms.patch
drm-i915-gvt-update-vgpu-workload-head-pointer-correctly.patch
drm-i915-userptr-acquire-the-page-lock-around-set_page_dirty.patch
drm-i915-to-make-vgpu-ppgtt-notificaiton-as-atomic-operation.patch
mac80211-keep-bhs-disabled-while-calling-drv_tx_wake_queue.patch
mmc-tegra-implement-set_dma_mask.patch
mmc-sdhci-improve-adma-error-reporting.patch
mmc-sdhci-of-esdhc-set-dma-snooping-based-on-dma-coherence.patch
mmc-sdhci-let-drivers-define-their-dma-mask.patch
revert-locking-pvqspinlock-don-t-wait-if-vcpu-is-preempted.patch
libnvdimm-altmap-track-namespace-boundaries-in-altmap.patch
sched-add-__assembly__-guards-around-struct-clone_args.patch
dts-arm-gta04-introduce-legacy-spi-cs-high-to-make-display-work-again.patch
xen-balloon-set-pages-pageoffline-in-balloon_add_region.patch
xen-xenbus-fix-self-deadlock-after-killing-user-process.patch
ieee802154-atusb-fix-use-after-free-at-disconnect.patch
nl80211-validate-beacon-head.patch
cfg80211-validate-ssid-mbssid-element-ordering-assumption.patch
cfg80211-initialize-on-stack-chandefs.patch
drivers-thermal-qcom-tsens-fix-memory-leak-from-qfpr.patch
ima-always-return-negative-code-for-error.patch
ima-fix-freeing-ongoing-ahash_request.patch
fs-nfs-fix-possible-null-pointer-dereferences-in-enc.patch
xprtrdma-toggle-xprt_congested-in-xprtrdma-s-slot-me.patch
xprtrdma-send-queue-size-grows-after-a-reconnect.patch
9p-transport-error-uninitialized.patch
9p-avoid-attaching-writeback_fid-on-mmap-with-type-p.patch
xen-pci-reserve-mcfg-areas-earlier.patch
fuse-fix-request-limit.patch
ceph-fix-directories-inode-i_blkbits-initialization.patch
ceph-fetch-cap_gen-under-spinlock-in-ceph_add_cap.patch
ceph-reconnect-connection-if-session-hang-in-opening.patch
sunrpc-rpc-level-errors-should-always-set-task-tk_rp.patch
watchdog-aspeed-add-support-for-ast2600.patch
netfilter-nf_tables-allow-lookups-in-dynamic-sets.patch
drm-amdgpu-fix-kfd-related-kernel-oops-on-hawaii.patch
drm-amdgpu-check-for-valid-number-of-registers-to-re.patch
perf-probe-fix-to-clear-tev-nargs-in-clear_probe_tra.patch
pnfs-ensure-we-do-clear-the-return-on-close-layout-s.patch
sunrpc-don-t-try-to-parse-incomplete-rpc-messages.patch
pwm-stm32-lp-add-check-in-case-requested-period-cann.patch
selftests-seccomp-fix-build-on-older-kernels.patch
x86-purgatory-disable-the-stackleak-gcc-plugin-for-t.patch
ntb-point-to-right-memory-window-index.patch
thermal-fix-use-after-free-when-unregistering-therma.patch
thermal_hwmon-sanitize-thermal_zone-type.patch
iommu-amd-fix-downgrading-default-page-sizes-in-allo.patch
libnvdimm-region-initialize-bad-block-for-volatile-n.patch
libnvdimm-fix-endian-conversion-issues.patch
fuse-fix-memleak-in-cuse_channel_open.patch
libnvdimm-nfit_test-fix-acpi_handle-redefinition.patch
sched-membarrier-call-sync_core-only-before-usermode.patch
sched-membarrier-fix-private-expedited-registration-.patch
sched-core-fix-migration-to-invalid-cpu-in-__set_cpu.patch
perf-build-add-detection-of-java-11-openjdk-devel-pa.patch
include-trace-events-writeback.h-fix-wstringop-trunc.patch
selftests-bpf-adjust-strobemeta-loop-to-satisfy-late.patch
kernel-elfcore.c-include-proper-prototypes.patch
libbpf-fix-false-uninitialized-variable-warning.patch
blk-mq-move-lockdep_assert_held-into-elevator_exit.patch
bpf-fix-bpf_event_output-re-entry-issue.patch
net-dsa-microchip-always-set-regmap-stride-to-1.patch
i2c-qcom-geni-disable-dma-processing-on-the-lenovo-y.patch
perf-unwind-fix-libunwind-build-failure-on-i386-syst.patch
mlxsw-spectrum_flower-fail-in-case-user-specifies-mu.patch
nfp-abm-fix-memory-leak-in-nfp_abm_u32_knode_replace.patch
drm-radeon-bail-earlier-when-radeon.cik_-si_support-.patch
btrfs-fix-selftests-failure-due-to-uninitialized-i_m.patch
kvm-nvmx-fix-consistency-check-on-injected-exception.patch
tick-broadcast-hrtimer-fix-a-race-in-bc_set_next.patch
perf-stat-reset-previous-counts-on-repeat-with-inter.patch
riscv-avoid-interrupts-being-erroneously-enabled-in-.patch
vfs-fix-eoverflow-testing-in-put_compat_statfs64.patch
coresight-etm4x-use-explicit-barriers-on-enable-disable.patch
staging-erofs-fix-an-error-handling-in-erofs_readdir.patch
staging-erofs-some-compressed-cluster-should-be-submitted-for-corrupted-images.patch
staging-erofs-add-two-missing-erofs_workgroup_put-for-corrupted-images.patch
staging-erofs-avoid-endless-loop-of-invalid-lookback-distance-0.patch
staging-erofs-detect-potential-multiref-due-to-corrupted-images.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
Host 2:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
x86_64:
Host 1:
✅ Boot test
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ❌ LTP lite
🚧 ✅ POSIX pjd-fstest suites
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
Host 3:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 4:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 5:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 6:
❌ Boot test
🚧 ❌ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
This is a note to let you know that I've just added the patch titled
USB: iowarrior: fix use-after-free after driver unbind
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From b5f8d46867ca233d773408ffbe691a8062ed718f Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 12:48:43 +0200
Subject: USB: iowarrior: fix use-after-free after driver unbind
Make sure to stop also the asynchronous write URBs on disconnect() to
avoid use-after-free in the completion handler after driver unbind.
Fixes: 946b960d13c1 ("USB: add driver for iowarrior devices.")
Cc: stable <stable(a)vger.kernel.org> # 2.6.21: 51a2f077c44e ("USB: introduce usb_anchor")
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009104846.5925-4-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/iowarrior.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index 6841267820c6..f405fa734bcc 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -87,6 +87,7 @@ struct iowarrior {
char chip_serial[9]; /* the serial number string of the chip connected */
int report_size; /* number of bytes in a report */
u16 product_id;
+ struct usb_anchor submitted;
};
/*--------------*/
@@ -425,11 +426,13 @@ static ssize_t iowarrior_write(struct file *file,
retval = -EFAULT;
goto error;
}
+ usb_anchor_urb(int_out_urb, &dev->submitted);
retval = usb_submit_urb(int_out_urb, GFP_KERNEL);
if (retval) {
dev_dbg(&dev->interface->dev,
"submit error %d for urb nr.%d\n",
retval, atomic_read(&dev->write_busy));
+ usb_unanchor_urb(int_out_urb);
goto error;
}
/* submit was ok */
@@ -770,6 +773,8 @@ static int iowarrior_probe(struct usb_interface *interface,
iface_desc = interface->cur_altsetting;
dev->product_id = le16_to_cpu(udev->descriptor.idProduct);
+ init_usb_anchor(&dev->submitted);
+
res = usb_find_last_int_in_endpoint(iface_desc, &dev->int_in_endpoint);
if (res) {
dev_err(&interface->dev, "no interrupt-in endpoint found\n");
@@ -885,6 +890,7 @@ static void iowarrior_disconnect(struct usb_interface *interface)
Deleting the device is postponed until close() was called.
*/
usb_kill_urb(dev->int_in_urb);
+ usb_kill_anchored_urbs(&dev->submitted);
wake_up_interruptible(&dev->read_wait);
wake_up_interruptible(&dev->write_wait);
mutex_unlock(&dev->mutex);
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: iowarrior: fix use-after-free on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From edc4746f253d907d048de680a621e121517f484b Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 12:48:41 +0200
Subject: USB: iowarrior: fix use-after-free on disconnect
A recent fix addressing a deadlock on disconnect introduced a new bug
by moving the present flag out of the critical section protected by the
driver-data mutex. This could lead to a racing release() freeing the
driver data before disconnect() is done with it.
Due to insufficient locking a related use-after-free could be triggered
also before the above mentioned commit. Specifically, the driver needs
to hold the driver-data mutex also while checking the opened flag at
disconnect().
Fixes: c468a8aa790e ("usb: iowarrior: fix deadlock on disconnect")
Fixes: 946b960d13c1 ("USB: add driver for iowarrior devices.")
Cc: stable <stable(a)vger.kernel.org> # 2.6.21
Reported-by: syzbot+0761012cebf7bdb38137(a)syzkaller.appspotmail.com
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009104846.5925-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/iowarrior.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index f5bed9f29e56..4fe1d3267b3c 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -866,8 +866,6 @@ static void iowarrior_disconnect(struct usb_interface *interface)
dev = usb_get_intfdata(interface);
mutex_lock(&iowarrior_open_disc_lock);
usb_set_intfdata(interface, NULL);
- /* prevent device read, write and ioctl */
- dev->present = 0;
minor = dev->minor;
mutex_unlock(&iowarrior_open_disc_lock);
@@ -878,8 +876,7 @@ static void iowarrior_disconnect(struct usb_interface *interface)
mutex_lock(&dev->mutex);
/* prevent device read, write and ioctl */
-
- mutex_unlock(&dev->mutex);
+ dev->present = 0;
if (dev->opened) {
/* There is a process that holds a filedescriptor to the device ,
@@ -889,8 +886,10 @@ static void iowarrior_disconnect(struct usb_interface *interface)
usb_kill_urb(dev->int_in_urb);
wake_up_interruptible(&dev->read_wait);
wake_up_interruptible(&dev->write_wait);
+ mutex_unlock(&dev->mutex);
} else {
/* no process is using the device, cleanup now */
+ mutex_unlock(&dev->mutex);
iowarrior_delete(dev);
}
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: iowarrior: fix use-after-free on release
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 80cd5479b525093a56ef768553045741af61b250 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 12:48:42 +0200
Subject: USB: iowarrior: fix use-after-free on release
The driver was accessing its struct usb_interface from its release()
callback without holding a reference. This would lead to a
use-after-free whenever debugging was enabled and the device was
disconnected while its character device was open.
Fixes: 549e83500b80 ("USB: iowarrior: Convert local dbg macro to dev_dbg")
Cc: stable <stable(a)vger.kernel.org> # 3.16
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009104846.5925-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/iowarrior.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index 4fe1d3267b3c..6841267820c6 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -243,6 +243,7 @@ static inline void iowarrior_delete(struct iowarrior *dev)
kfree(dev->int_in_buffer);
usb_free_urb(dev->int_in_urb);
kfree(dev->read_queue);
+ usb_put_intf(dev->interface);
kfree(dev);
}
@@ -764,7 +765,7 @@ static int iowarrior_probe(struct usb_interface *interface,
init_waitqueue_head(&dev->write_wait);
dev->udev = udev;
- dev->interface = interface;
+ dev->interface = usb_get_intf(interface);
iface_desc = interface->cur_altsetting;
dev->product_id = le16_to_cpu(udev->descriptor.idProduct);
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: chaoskey: fix use-after-free on release
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 93ddb1f56ae102f14f9e46a9a9c8017faa970003 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 17:38:45 +0200
Subject: USB: chaoskey: fix use-after-free on release
The driver was accessing its struct usb_interface in its release()
callback without holding a reference. This would lead to a
use-after-free whenever the device was disconnected while the character
device was still open.
Fixes: 66e3e591891d ("usb: Add driver for Altus Metrum ChaosKey device (v2)")
Cc: stable <stable(a)vger.kernel.org> # 4.1
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009153848.8664-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/chaoskey.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/misc/chaoskey.c b/drivers/usb/misc/chaoskey.c
index cf5828ce927a..34e6cd6f40d3 100644
--- a/drivers/usb/misc/chaoskey.c
+++ b/drivers/usb/misc/chaoskey.c
@@ -98,6 +98,7 @@ static void chaoskey_free(struct chaoskey *dev)
usb_free_urb(dev->urb);
kfree(dev->name);
kfree(dev->buf);
+ usb_put_intf(dev->interface);
kfree(dev);
}
}
@@ -145,6 +146,8 @@ static int chaoskey_probe(struct usb_interface *interface,
if (dev == NULL)
goto out;
+ dev->interface = usb_get_intf(interface);
+
dev->buf = kmalloc(size, GFP_KERNEL);
if (dev->buf == NULL)
@@ -174,8 +177,6 @@ static int chaoskey_probe(struct usb_interface *interface,
goto out;
}
- dev->interface = interface;
-
dev->in_ep = in_ep;
if (le16_to_cpu(udev->descriptor.idVendor) != ALEA_VENDOR_ID)
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: ldusb: fix NULL-derefs on driver unbind
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 58ecf131e74620305175a7aa103f81350bb37570 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 17:38:46 +0200
Subject: USB: ldusb: fix NULL-derefs on driver unbind
The driver was using its struct usb_interface pointer as an inverted
disconnected flag, but was setting it to NULL before making sure all
completion handlers had run. This could lead to a NULL-pointer
dereference in a number of dev_dbg, dev_warn and dev_err statements in
the completion handlers which relies on said pointer.
Fix this by unconditionally stopping all I/O and preventing
resubmissions by poisoning the interrupt URBs at disconnect and using a
dedicated disconnected flag.
This also makes sure that all I/O has completed by the time the
disconnect callback returns.
Fixes: 2824bd250f0b ("[PATCH] USB: add ldusb driver")
Cc: stable <stable(a)vger.kernel.org> # 2.6.13
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009153848.8664-4-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/ldusb.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index 6581774bdfa4..f3108d85e768 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -153,6 +153,7 @@ MODULE_PARM_DESC(min_interrupt_out_interval, "Minimum interrupt out interval in
struct ld_usb {
struct mutex mutex; /* locks this structure */
struct usb_interface *intf; /* save off the usb interface pointer */
+ unsigned long disconnected:1;
int open_count; /* number of times this port has been opened */
@@ -192,12 +193,10 @@ static void ld_usb_abort_transfers(struct ld_usb *dev)
/* shutdown transfer */
if (dev->interrupt_in_running) {
dev->interrupt_in_running = 0;
- if (dev->intf)
- usb_kill_urb(dev->interrupt_in_urb);
+ usb_kill_urb(dev->interrupt_in_urb);
}
if (dev->interrupt_out_busy)
- if (dev->intf)
- usb_kill_urb(dev->interrupt_out_urb);
+ usb_kill_urb(dev->interrupt_out_urb);
}
/**
@@ -205,8 +204,6 @@ static void ld_usb_abort_transfers(struct ld_usb *dev)
*/
static void ld_usb_delete(struct ld_usb *dev)
{
- ld_usb_abort_transfers(dev);
-
/* free data structures */
usb_free_urb(dev->interrupt_in_urb);
usb_free_urb(dev->interrupt_out_urb);
@@ -263,7 +260,7 @@ static void ld_usb_interrupt_in_callback(struct urb *urb)
resubmit:
/* resubmit if we're still running */
- if (dev->interrupt_in_running && !dev->buffer_overflow && dev->intf) {
+ if (dev->interrupt_in_running && !dev->buffer_overflow) {
retval = usb_submit_urb(dev->interrupt_in_urb, GFP_ATOMIC);
if (retval) {
dev_err(&dev->intf->dev,
@@ -392,7 +389,7 @@ static int ld_usb_release(struct inode *inode, struct file *file)
retval = -ENODEV;
goto unlock_exit;
}
- if (dev->intf == NULL) {
+ if (dev->disconnected) {
/* the device was unplugged before the file was released */
mutex_unlock(&dev->mutex);
/* unlock here as ld_usb_delete frees dev */
@@ -423,7 +420,7 @@ static __poll_t ld_usb_poll(struct file *file, poll_table *wait)
dev = file->private_data;
- if (!dev->intf)
+ if (dev->disconnected)
return EPOLLERR | EPOLLHUP;
poll_wait(file, &dev->read_wait, wait);
@@ -462,7 +459,7 @@ static ssize_t ld_usb_read(struct file *file, char __user *buffer, size_t count,
}
/* verify that the device wasn't unplugged */
- if (dev->intf == NULL) {
+ if (dev->disconnected) {
retval = -ENODEV;
printk(KERN_ERR "ldusb: No device or device unplugged %d\n", retval);
goto unlock_exit;
@@ -542,7 +539,7 @@ static ssize_t ld_usb_write(struct file *file, const char __user *buffer,
}
/* verify that the device wasn't unplugged */
- if (dev->intf == NULL) {
+ if (dev->disconnected) {
retval = -ENODEV;
printk(KERN_ERR "ldusb: No device or device unplugged %d\n", retval);
goto unlock_exit;
@@ -764,6 +761,9 @@ static void ld_usb_disconnect(struct usb_interface *intf)
/* give back our minor */
usb_deregister_dev(intf, &ld_usb_class);
+ usb_poison_urb(dev->interrupt_in_urb);
+ usb_poison_urb(dev->interrupt_out_urb);
+
mutex_lock(&dev->mutex);
/* if the device is not opened, then we clean up right now */
@@ -771,7 +771,7 @@ static void ld_usb_disconnect(struct usb_interface *intf)
mutex_unlock(&dev->mutex);
ld_usb_delete(dev);
} else {
- dev->intf = NULL;
+ dev->disconnected = 1;
/* wake up pollers */
wake_up_interruptible_all(&dev->read_wait);
wake_up_interruptible_all(&dev->write_wait);
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: adutux: fix use-after-free on release
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 123a0f125fa3d2104043697baa62899d9e549272 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 17:38:44 +0200
Subject: USB: adutux: fix use-after-free on release
The driver was accessing its struct usb_device in its release()
callback without holding a reference. This would lead to a
use-after-free whenever the device was disconnected while the character
device was still open.
Fixes: 66d4bc30d128 ("USB: adutux: remove custom debug macro")
Cc: stable <stable(a)vger.kernel.org> # 3.12
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009153848.8664-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/adutux.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c
index f9efec719359..6f5edb9fc61e 100644
--- a/drivers/usb/misc/adutux.c
+++ b/drivers/usb/misc/adutux.c
@@ -149,6 +149,7 @@ static void adu_delete(struct adu_device *dev)
kfree(dev->read_buffer_secondary);
kfree(dev->interrupt_in_buffer);
kfree(dev->interrupt_out_buffer);
+ usb_put_dev(dev->udev);
kfree(dev);
}
@@ -664,7 +665,7 @@ static int adu_probe(struct usb_interface *interface,
mutex_init(&dev->mtx);
spin_lock_init(&dev->buflock);
- dev->udev = udev;
+ dev->udev = usb_get_dev(udev);
init_waitqueue_head(&dev->read_wait);
init_waitqueue_head(&dev->write_wait);
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: legousbtower: fix use-after-free on release
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 726b55d0e22ca72c69c947af87785c830289ddbc Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 17:38:47 +0200
Subject: USB: legousbtower: fix use-after-free on release
The driver was accessing its struct usb_device in its release()
callback without holding a reference. This would lead to a
use-after-free whenever the device was disconnected while the character
device was still open.
Fixes: fef526cae700 ("USB: legousbtower: remove custom debug macro")
Cc: stable <stable(a)vger.kernel.org> # 3.12
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009153848.8664-5-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/misc/legousbtower.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
index 44d6a3381804..9d4c52a7ebe0 100644
--- a/drivers/usb/misc/legousbtower.c
+++ b/drivers/usb/misc/legousbtower.c
@@ -296,6 +296,7 @@ static inline void tower_delete (struct lego_usb_tower *dev)
kfree (dev->read_buffer);
kfree (dev->interrupt_in_buffer);
kfree (dev->interrupt_out_buffer);
+ usb_put_dev(dev->udev);
kfree (dev);
}
@@ -810,7 +811,7 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device
mutex_init(&dev->lock);
- dev->udev = udev;
+ dev->udev = usb_get_dev(udev);
dev->open_count = 0;
dev->disconnected = 0;
--
2.23.0
This is a note to let you know that I've just added the patch titled
USB: usb-skeleton: fix NULL-deref on disconnect
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From bed5ef230943863b9abf5eae226a20fad9a8ff71 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Wed, 9 Oct 2019 19:09:42 +0200
Subject: USB: usb-skeleton: fix NULL-deref on disconnect
The driver was using its struct usb_interface pointer as an inverted
disconnected flag and was setting it to NULL before making sure all
completion handlers had run. This could lead to NULL-pointer
dereferences in the dev_err() statements in the completion handlers
which relies on said pointer.
Fix this by using a dedicated disconnected flag.
Note that this is also addresses a NULL-pointer dereference at release()
and a struct usb_interface reference leak introduced by a recent runtime
PM fix, which depends on and should have been submitted together with
this patch.
Fixes: 4212cd74ca6f ("USB: usb-skeleton.c: remove err() usage")
Fixes: 5c290a5e42c3 ("USB: usb-skeleton: fix runtime PM after driver unbind")
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Link: https://lore.kernel.org/r/20191009170944.30057-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/usb-skeleton.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
index 8001d6384c73..c2843fcfa52d 100644
--- a/drivers/usb/usb-skeleton.c
+++ b/drivers/usb/usb-skeleton.c
@@ -61,6 +61,7 @@ struct usb_skel {
spinlock_t err_lock; /* lock for errors */
struct kref kref;
struct mutex io_mutex; /* synchronize I/O with disconnect */
+ unsigned long disconnected:1;
wait_queue_head_t bulk_in_wait; /* to wait for an ongoing read */
};
#define to_skel_dev(d) container_of(d, struct usb_skel, kref)
@@ -238,7 +239,7 @@ static ssize_t skel_read(struct file *file, char *buffer, size_t count,
if (rv < 0)
return rv;
- if (!dev->interface) { /* disconnect() was called */
+ if (dev->disconnected) { /* disconnect() was called */
rv = -ENODEV;
goto exit;
}
@@ -420,7 +421,7 @@ static ssize_t skel_write(struct file *file, const char *user_buffer,
/* this lock makes sure we don't submit URBs to gone devices */
mutex_lock(&dev->io_mutex);
- if (!dev->interface) { /* disconnect() was called */
+ if (dev->disconnected) { /* disconnect() was called */
mutex_unlock(&dev->io_mutex);
retval = -ENODEV;
goto error;
@@ -571,7 +572,7 @@ static void skel_disconnect(struct usb_interface *interface)
/* prevent more I/O from starting */
mutex_lock(&dev->io_mutex);
- dev->interface = NULL;
+ dev->disconnected = 1;
mutex_unlock(&dev->io_mutex);
usb_kill_anchored_urbs(&dev->submitted);
--
2.23.0
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: usbvision: Fix races among open, close, and disconnect
Author: Alan Stern <stern(a)rowland.harvard.edu>
Date: Mon Oct 7 12:09:53 2019 -0300
Visual inspection of the usbvision driver shows that it suffers from
three races between its open, close, and disconnect handlers. In
particular, the driver is careful to update its usbvision->user and
usbvision->remove_pending flags while holding the private mutex, but:
usbvision_v4l2_close() and usbvision_radio_close() don't hold
the mutex while they check the value of
usbvision->remove_pending;
usbvision_disconnect() doesn't hold the mutex while checking
the value of usbvision->user; and
also, usbvision_v4l2_open() and usbvision_radio_open() don't
check whether the device has been unplugged before allowing
the user to open the device files.
Each of these can potentially lead to usbvision_release() being called
twice and use-after-free errors.
This patch fixes the races by reading the flags while the mutex is
still held and checking for pending removes before allowing an open to
succeed.
Signed-off-by: Alan Stern <stern(a)rowland.harvard.edu>
CC: <stable(a)vger.kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/usb/usbvision/usbvision-video.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/media/usb/usbvision/usbvision-video.c
index 62dec73aec6e..93d36aab824f 100644
--- a/drivers/media/usb/usbvision/usbvision-video.c
+++ b/drivers/media/usb/usbvision/usbvision-video.c
@@ -314,6 +314,10 @@ static int usbvision_v4l2_open(struct file *file)
if (mutex_lock_interruptible(&usbvision->v4l2_lock))
return -ERESTARTSYS;
+ if (usbvision->remove_pending) {
+ err_code = -ENODEV;
+ goto unlock;
+ }
if (usbvision->user) {
err_code = -EBUSY;
} else {
@@ -377,6 +381,7 @@ unlock:
static int usbvision_v4l2_close(struct file *file)
{
struct usb_usbvision *usbvision = video_drvdata(file);
+ int r;
PDEBUG(DBG_IO, "close");
@@ -391,9 +396,10 @@ static int usbvision_v4l2_close(struct file *file)
usbvision_scratch_free(usbvision);
usbvision->user--;
+ r = usbvision->remove_pending;
mutex_unlock(&usbvision->v4l2_lock);
- if (usbvision->remove_pending) {
+ if (r) {
printk(KERN_INFO "%s: Final disconnect\n", __func__);
usbvision_release(usbvision);
return 0;
@@ -1064,6 +1070,11 @@ static int usbvision_radio_open(struct file *file)
if (mutex_lock_interruptible(&usbvision->v4l2_lock))
return -ERESTARTSYS;
+
+ if (usbvision->remove_pending) {
+ err_code = -ENODEV;
+ goto out;
+ }
err_code = v4l2_fh_open(file);
if (err_code)
goto out;
@@ -1096,6 +1107,7 @@ out:
static int usbvision_radio_close(struct file *file)
{
struct usb_usbvision *usbvision = video_drvdata(file);
+ int r;
PDEBUG(DBG_IO, "");
@@ -1109,9 +1121,10 @@ static int usbvision_radio_close(struct file *file)
usbvision_audio_off(usbvision);
usbvision->radio = 0;
usbvision->user--;
+ r = usbvision->remove_pending;
mutex_unlock(&usbvision->v4l2_lock);
- if (usbvision->remove_pending) {
+ if (r) {
printk(KERN_INFO "%s: Final disconnect\n", __func__);
v4l2_fh_release(file);
usbvision_release(usbvision);
@@ -1543,6 +1556,7 @@ err_usb:
static void usbvision_disconnect(struct usb_interface *intf)
{
struct usb_usbvision *usbvision = to_usbvision(usb_get_intfdata(intf));
+ int u;
PDEBUG(DBG_PROBE, "");
@@ -1559,13 +1573,14 @@ static void usbvision_disconnect(struct usb_interface *intf)
v4l2_device_disconnect(&usbvision->v4l2_dev);
usbvision_i2c_unregister(usbvision);
usbvision->remove_pending = 1; /* Now all ISO data will be ignored */
+ u = usbvision->user;
usb_put_dev(usbvision->dev);
usbvision->dev = NULL; /* USB device is no more */
mutex_unlock(&usbvision->v4l2_lock);
- if (usbvision->user) {
+ if (u) {
printk(KERN_INFO "%s: In use, disconnect pending\n",
__func__);
wake_up_interruptible(&usbvision->wait_frame);
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: usbvision: Fix invalid accesses after device disconnect
Author: Alan Stern <stern(a)rowland.harvard.edu>
Date: Mon Oct 7 12:09:04 2019 -0300
The syzbot fuzzer found two invalid-access bugs in the usbvision
driver. These bugs occur when userspace keeps the device file open
after the device has been disconnected and usbvision_disconnect() has
set usbvision->dev to NULL:
When the device file is closed, usbvision_radio_close() tries
to issue a usb_set_interface() call, passing the NULL pointer
as its first argument.
If userspace performs a querycap ioctl call, vidioc_querycap()
calls usb_make_path() with the same NULL pointer.
This patch fixes the problems by making the appropriate tests
beforehand. Note that vidioc_querycap() is protected by
usbvision->v4l2_lock, acquired in a higher layer of the V4L2
subsystem.
Reported-and-tested-by: syzbot+7fa38a608b1075dfd634(a)syzkaller.appspotmail.com
Signed-off-by: Alan Stern <stern(a)rowland.harvard.edu>
CC: <stable(a)vger.kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/usb/usbvision/usbvision-video.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/media/usb/usbvision/usbvision-video.c
index cdc66adda755..62dec73aec6e 100644
--- a/drivers/media/usb/usbvision/usbvision-video.c
+++ b/drivers/media/usb/usbvision/usbvision-video.c
@@ -453,6 +453,9 @@ static int vidioc_querycap(struct file *file, void *priv,
{
struct usb_usbvision *usbvision = video_drvdata(file);
+ if (!usbvision->dev)
+ return -ENODEV;
+
strscpy(vc->driver, "USBVision", sizeof(vc->driver));
strscpy(vc->card,
usbvision_device_data[usbvision->dev_model].model_string,
@@ -1099,8 +1102,9 @@ static int usbvision_radio_close(struct file *file)
mutex_lock(&usbvision->v4l2_lock);
/* Set packet size to 0 */
usbvision->iface_alt = 0;
- usb_set_interface(usbvision->dev, usbvision->iface,
- usbvision->iface_alt);
+ if (usbvision->dev)
+ usb_set_interface(usbvision->dev, usbvision->iface,
+ usbvision->iface_alt);
usbvision_audio_off(usbvision);
usbvision->radio = 0;
This is a note to let you know that I've just added the patch titled
iio: light: opt3001: fix mutex unlock race
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 82f3015635249a8c8c45bac303fd84905066f04f Mon Sep 17 00:00:00 2001
From: David Frey <dpfrey(a)gmail.com>
Date: Thu, 19 Sep 2019 15:54:18 -0700
Subject: iio: light: opt3001: fix mutex unlock race
When an end-of-conversion interrupt is received after performing a
single-shot reading of the light sensor, the driver was waking up the
result ready queue before checking opt->ok_to_ignore_lock to determine
if it should unlock the mutex. The problem occurred in the case where
the other thread woke up and changed the value of opt->ok_to_ignore_lock
to false prior to the interrupt thread performing its read of the
variable. In this case, the mutex would be unlocked twice.
Signed-off-by: David Frey <dpfrey(a)gmail.com>
Reviewed-by: Andreas Dannenberg <dannenberg(a)ti.com>
Fixes: 94a9b7b1809f ("iio: light: add support for TI's opt3001 light sensor")
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
---
drivers/iio/light/opt3001.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c
index e666879007d2..92004a2563ea 100644
--- a/drivers/iio/light/opt3001.c
+++ b/drivers/iio/light/opt3001.c
@@ -686,6 +686,7 @@ static irqreturn_t opt3001_irq(int irq, void *_iio)
struct iio_dev *iio = _iio;
struct opt3001 *opt = iio_priv(iio);
int ret;
+ bool wake_result_ready_queue = false;
if (!opt->ok_to_ignore_lock)
mutex_lock(&opt->lock);
@@ -720,13 +721,16 @@ static irqreturn_t opt3001_irq(int irq, void *_iio)
}
opt->result = ret;
opt->result_ready = true;
- wake_up(&opt->result_ready_queue);
+ wake_result_ready_queue = true;
}
out:
if (!opt->ok_to_ignore_lock)
mutex_unlock(&opt->lock);
+ if (wake_result_ready_queue)
+ wake_up(&opt->result_ready_queue);
+
return IRQ_HANDLED;
}
--
2.23.0
This is a note to let you know that I've just added the patch titled
iio: Fix an undefied reference error in noa1305_probe
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From a26e0fbe06e20077afdaa40d1a90092f16b0bc67 Mon Sep 17 00:00:00 2001
From: zhong jiang <zhongjiang(a)huawei.com>
Date: Mon, 23 Sep 2019 10:04:32 +0800
Subject: iio: Fix an undefied reference error in noa1305_probe
I hit the following error when compile the kernel.
drivers/iio/light/noa1305.o: In function `noa1305_probe':
noa1305.c:(.text+0x65): undefined reference to `__devm_regmap_init_i2c'
make: *** [vmlinux] Error 1
Signed-off-by: zhong jiang <zhongjiang(a)huawei.com>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
---
drivers/iio/light/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
index 08d7e1ef2186..4a1a883dc061 100644
--- a/drivers/iio/light/Kconfig
+++ b/drivers/iio/light/Kconfig
@@ -314,6 +314,7 @@ config MAX44009
config NOA1305
tristate "ON Semiconductor NOA1305 ambient light sensor"
depends on I2C
+ select REGMAP_I2C
help
Say Y here if you want to build support for the ON Semiconductor
NOA1305 ambient light sensor.
--
2.23.0
This is a note to let you know that I've just added the patch titled
iio: adc: ad799x: fix probe error handling
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From c62dd44901cfff12acc5792bf3d2dec20bcaf392 Mon Sep 17 00:00:00 2001
From: Marco Felsch <m.felsch(a)pengutronix.de>
Date: Tue, 17 Sep 2019 18:09:23 +0200
Subject: iio: adc: ad799x: fix probe error handling
Since commit 0f7ddcc1bff1 ("iio:adc:ad799x: Write default config on probe
and reset alert status on probe") the error path is wrong since it
leaves the vref regulator on. Fix this by disabling both regulators.
Fixes: 0f7ddcc1bff1 ("iio:adc:ad799x: Write default config on probe and reset alert status on probe")
Signed-off-by: Marco Felsch <m.felsch(a)pengutronix.de>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean(a)analog.com>
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
---
drivers/iio/adc/ad799x.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c
index 5a3ca5904ded..f658012baad8 100644
--- a/drivers/iio/adc/ad799x.c
+++ b/drivers/iio/adc/ad799x.c
@@ -810,10 +810,10 @@ static int ad799x_probe(struct i2c_client *client,
ret = ad799x_write_config(st, st->chip_config->default_config);
if (ret < 0)
- goto error_disable_reg;
+ goto error_disable_vref;
ret = ad799x_read_config(st);
if (ret < 0)
- goto error_disable_reg;
+ goto error_disable_vref;
st->config = ret;
ret = iio_triggered_buffer_setup(indio_dev, NULL,
--
2.23.0
This is a note to let you know that I've just added the patch titled
iio: light: add missing vcnl4040 of_compatible
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 7fd1c2606508eb384992251e87d50591393a48d0 Mon Sep 17 00:00:00 2001
From: Marco Felsch <m.felsch(a)pengutronix.de>
Date: Tue, 17 Sep 2019 16:56:37 +0200
Subject: iio: light: add missing vcnl4040 of_compatible
Commit 5a441aade5b3 ("iio: light: vcnl4000 add support for the VCNL4040
proximity and light sensor") added the support for the vcnl4040 but
forgot to add the of_compatible. Fix this by adding it now.
Signed-off-by: Marco Felsch <m.felsch(a)pengutronix.de>
Fixes: 5a441aade5b3 ("iio: light: vcnl4000 add support for the VCNL4040 proximity and light sensor")
Reviewed-by: Angus Ainslie (Purism) angus(a)akkea.ca
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
---
drivers/iio/light/vcnl4000.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index f522cb863e8c..16dacea9eadf 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -408,6 +408,10 @@ static const struct of_device_id vcnl_4000_of_match[] = {
.compatible = "vishay,vcnl4020",
.data = (void *)VCNL4010,
},
+ {
+ .compatible = "vishay,vcnl4040",
+ .data = (void *)VCNL4040,
+ },
{
.compatible = "vishay,vcnl4200",
.data = (void *)VCNL4200,
--
2.23.0