Tree/Branch: v4.19.48
Git describe: v4.19.48
Commit: e109a984cf Linux 4.19.48
Build Time: 2 min 9 sec
Passed: 3 / 11 ( 27.27 %)
Failed: 8 / 11 ( 72.73 %)
Errors: 10
Warnings: 3
Section Mismatches: 0
Failed defconfigs:
arm64-allnoconfig
arm64-allmodconfig
arm-multi_v7_defconfig
arm-allmodconfig
arm64-defconfig
Errors:
arm64-allnoconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
arm64-allmodconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
arm64-defconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
1 warnings 0 mismatches : arm64-allnoconfig
1 warnings 0 mismatches : arm64-allmodconfig
1 warnings 0 mismatches : arm-multi_v7_defconfig
2 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : x86_64-allmodconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 10
15 ../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
15 ../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
15 ../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
3 ../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
3 ../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
3 ../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings Summary: 3
3 ../include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
3 ../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
1 ../drivers/staging/erofs/unzip_vle.c:198:29: warning: array subscript is above array bounds [-Warray-bounds]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : FAIL, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../drivers/staging/erofs/unzip_vle.c:198:29: warning: array subscript is above array bounds [-Warray-bounds]
../include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
x86_64-allmodconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm-multi_v4t_defconfig
arm-allnoconfig
arm-multi_v5_defconfig
x86_64-defconfig
On Tue, 4 Jun 2019, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: 8b00c3d5d40d ncr5380: Implement new eh_abort_handler.
>
> The bot has tested the following trees: v5.1.6, v5.0.20, v4.19.47, v4.14.123, v4.9.180.
>
> v5.1.6: Build OK!
> v5.0.20: Build OK!
> v4.19.47: Failed to apply! Possible dependencies:
> 6a162836997c ("scsi: NCR5380: Reduce goto statements in NCR5380_select()")
>
> v4.14.123: Failed to apply! Possible dependencies:
> 6a162836997c ("scsi: NCR5380: Reduce goto statements in NCR5380_select()")
>
> v4.9.180: Failed to apply! Possible dependencies:
> 6a162836997c ("scsi: NCR5380: Reduce goto statements in NCR5380_select()")
>
>
> How should we proceed with this patch?
>
Please cherry-pick the dependency, as it does not alter functionality.
$
$ git checkout v4.9
HEAD is now at 69973b830859 Linux 4.9
$ git cherry-pick 6a162836997c
[detached HEAD 0e33d17b7b50] scsi: NCR5380: Reduce goto statements in
NCR5380_select()
Date: Thu Sep 27 11:17:11 2018 +1000
1 file changed, 12 insertions(+), 9 deletions(-)
$ git cherry-pick 61f0c0f6aaf8
[detached HEAD 8ae61212c888] scsi: NCR5380: Always re-enable reselection
interrupt
Date: Mon Mar 25 15:45:51 2019 +1100
1 file changed, 2 insertions(+), 10 deletions(-)
$
You could instead apply the patch using more fuzz...
$
$ git checkout v4.9
HEAD is now at 69973b830859 Linux 4.9
$ git show 61f0c0f6aaf8 | patch -p1 -F3
patching file drivers/scsi/NCR5380.c
Hunk #1 succeeded at 813 (offset 104 lines).
Hunk #2 succeeded at 1210 (offset 98 lines).
Hunk #3 succeeded at 1217 with fuzz 3 (offset 98 lines).
Hunk #4 succeeded at 1251 (offset 95 lines).
Hunk #5 succeeded at 1901 (offset 77 lines).
Hunk #6 succeeded at 1932 (offset 77 lines).
Hunk #7 succeeded at 2039 (offset 82 lines).
$
This also works but would seem to undermine future backporting.
Thanks.
--
> --
> Thanks,
> Sasha
>
Tree/Branch: v4.14.123
Git describe: v4.14.123
Commit: 8cb1239889 Linux 4.14.123
Build Time: 1 min 44 sec
Passed: 3 / 11 ( 27.27 %)
Failed: 8 / 11 ( 72.73 %)
Errors: 154
Warnings: 2
Section Mismatches: 0
Failed defconfigs:
arm64-allnoconfig
arm64-allmodconfig
arm-allmodconfig
arm64-defconfig
Errors:
arm64-allnoconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
arm64-allmodconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
arm-allmodconfig
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:202.1-6 Label or path cpu1 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:206.1-6 Label or path cpu2 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:210.1-6 Label or path cpu3 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:238.1-5 Label or path gpu not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:705.1-6 Label or path vop0 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:709.1-10 Label or path vop0_out not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:715.1-6 Label or path vop1 not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:30.1-18 Label or path reset_controller not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:34.1-21 Label or path shutdown_controller not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:157.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-wb45n.dts:30.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/at91-wb50n.dtsi:25.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-wb50n.dts:61.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/imx51-zii-scu2-mezz.dts:346.1-5 Label or path vpu not found
Error: ../arch/arm/boot/dts/imx6ull-colibri.dtsi:490.4-5 syntax error
Error: ../arch/arm/boot/dts/meson8m2.dtsi:25.19-20 syntax error
Error: ../arch/arm/boot/dts/imx6dl-mamoj.dts:491.10-492.1 syntax error
Error: ../arch/arm/boot/dts/imx53-ppd.dts:596.1-5 Label or path pmu not found
Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:29.1-5 Label or path cpu not found
Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:37.1-6 Label or path i2c0 not found
Error: ../arch/arm/boot/dts/iwg20d-q7-common.dtsi:80.21-22 syntax error
../arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:109.1-6 Label or path btif not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:254.1-6 Label or path pcie not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:268.1-11 Label or path pcie0_phy not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:272.1-11 Label or path pcie1_phy not found
Error: ../arch/arm/boot/dts/at91-som60.dtsi:34.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi:50.1-9 Label or path pinctrl not found
../arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts:7:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/mt7623a.dtsi:9:45: fatal error: dt-bindings/power/mt7623a-power.h: No such file or directory
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:29.1-6 Label or path cmt0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:60.1-8 Label or path mmcif0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:70.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:91.1-6 Label or path rwdt not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:96.1-7 Label or path sdhi1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:106.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:84.1-5 Label or path avb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:103.1-6 Label or path can0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:118.1-7 Label or path hsusb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:124.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:141.1-6 Label or path pci1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:195.1-12 Label or path rcar_sound not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:219.1-7 Label or path sdhi0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:229.1-6 Label or path ssi4 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:233.1-8 Label or path usbphy not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:39.1-4 Label or path du not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:54.1-6 Label or path can1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:68.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
../arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi:2:47: fatal error: dt-bindings/net/microchip-lan78xx.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6qdl-emcon.dtsi:813.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts:75.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/bcm2836-rpi.dtsi:4.1-7 Label or path vchiq not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:93.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:122.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:126.1-10 Label or path hdmi_out not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:231.1-6 Label or path ssp1 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:235.1-6 Label or path ssp2 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:239.1-17 Label or path nand_controller not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:343.4-5 syntax error
../arch/arm/boot/dts/r9a06g032.dtsi:10:49: fatal error: dt-bindings/clock/r9a06g032-sysctrl.h: No such file or directory
Error: ../arch/arm/boot/dts/am335x-guardian.dts:246.48-49 syntax error
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:127.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:131.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:151.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:158.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:162.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r7s9210.dtsi:10:48: fatal error: dt-bindings/clock/r7s9210-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:146.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:178.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/imx51-zii-scu3-esb.dts:354.1-5 Label or path vpu not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:127.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:131.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:151.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:158.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:162.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r8a7744.dtsi:10:48: fatal error: dt-bindings/clock/r8a7744-cpg-mssr.h: No such file or directory
../arch/arm/boot/dts/imx7ulp.dtsi:8:45: fatal error: dt-bindings/clock/imx7ulp-clock.h: No such file or directory
Error: ../arch/arm/boot/dts/at91-wb50n.dtsi:25.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-gatwick.dts:72.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:134.1-6 Label or path i2c0 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:141.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:203.1-6 Label or path i2c2 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:265.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:272.1-6 Label or path i2c4 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:279.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:286.1-6 Label or path i2c6 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:293.1-6 Label or path i2c7 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:300.1-6 Label or path i2c8 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:362.1-7 Label or path i2c13 not found
../arch/arm/boot/dts/stm32mp157c.dtsi:7:45: fatal error: dt-bindings/clock/stm32mp1-clks.h: No such file or directory
../arch/arm/boot/dts/imx6sll.dtsi:8:45: fatal error: dt-bindings/clock/imx6sll-clock.h: No such file or directory
Error: ../arch/arm/boot/dts/bcm2836-rpi.dtsi:4.1-7 Label or path vchiq not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:38.1-5 Label or path ata not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:42.1-5 Label or path nfc not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:49.1-8 Label or path sdhci1 not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:56.1-6 Label or path spi2 not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:157.1-6 Label or path weim not found
../arch/arm/boot/dts/aspeed-bmc-opp-lanyang.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6q-icore-mipi.dts:27.1-8 Label or path ov5640 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:29.1-6 Label or path cmt0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:60.1-8 Label or path mmcif0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:70.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:91.1-6 Label or path rwdt not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:96.1-7 Label or path sdhi1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:106.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:84.1-5 Label or path avb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:103.1-6 Label or path can0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:118.1-7 Label or path hsusb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:124.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:141.1-6 Label or path pci1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:195.1-12 Label or path rcar_sound not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:219.1-7 Label or path sdhi0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:229.1-6 Label or path ssi4 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:233.1-8 Label or path usbphy not found
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/r8a7744.dtsi:10:48: fatal error: dt-bindings/clock/r8a7744-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6ul-14x14-evk.dtsi:519.4-5 syntax error
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:131.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:135.1-8 Label or path cpu100 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:139.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:197.1-5 Label or path pwm not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:388.1-7 Label or path tcon0 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:393.1-11 Label or path tcon0_out not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:407.1-7 Label or path uart1 not found
../arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/aspeed-bmc-portwell-neptune.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/stm32mp157c.dtsi:7:45: fatal error: dt-bindings/clock/stm32mp1-clks.h: No such file or directory
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:565.1-15 Label or path ipu_di0_disp1 not found
Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:569.1-5 Label or path pmu not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:88.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:92.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:96.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:415.1-7 Label or path gpio3 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:423.1-7 Label or path gpio4 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:482.1-8 Label or path mcspi3 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:489.1-8 Label or path mcspi4 not found
Error: ../arch/arm/boot/dts/r8a7790-stout.dts:96.17-18 syntax error
../arch/arm/boot/dts/aspeed-bmc-arm-centriq2400-rep.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:82.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:86.1-6 Label or path i2c2 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:90.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:94.1-6 Label or path i2c4 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:98.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:102.1-6 Label or path i2c6 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:106.1-6 Label or path i2c7 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:110.1-7 Label or path i2c13 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:122.1-11 Label or path pwm_tacho not found
Error: ../arch/arm/boot/dts/meson8b-ec100.dts:216.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/meson8b-ec100.dts:268.1-6 Label or path sdio not found
Error: ../arch/arm/boot/dts/sun8i-h3-mapleboard-mp130.dts:78.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:111.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:127.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:137.1-15 Label or path external_mdio not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:144.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:148.1-10 Label or path hdmi_out not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi:29.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/rv1108-elgin-r1.dts:51.1-6 Label or path gmac not found
../arch/arm/boot/dts/mt7623a.dtsi:9:45: fatal error: dt-bindings/power/mt7623a-power.h: No such file or directory
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:231.1-6 Label or path ssp1 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:235.1-6 Label or path ssp2 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:239.1-17 Label or path nand_controller not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:343.4-5 syntax error
Error: ../arch/arm/boot/dts/imx6qdl-var-dart.dtsi:213.4-5 syntax error
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:93.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:122.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:126.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r8a77470.dtsi:10:49: fatal error: dt-bindings/clock/r8a77470-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
Error: ../arch/arm/boot/dts/am335x-osd3358-sm-red.dts:459.48-49 syntax error
Error: ../arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts:200.21-22 syntax error
Error: ../arch/arm/boot/dts/imx6ull-colibri.dtsi:490.4-5 syntax error
../arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts:206.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/armada-385-db-88f6820-amc.dts:94.1-17 Label or path nand_controller not found
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
arm64-defconfig
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
1 warnings 0 mismatches : arm64-allnoconfig
1 warnings 0 mismatches : arm64-allmodconfig
1 warnings 0 mismatches : x86_64-defconfig
1 warnings 0 mismatches : x86_64-allmodconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 154
18 ERROR: Input tree has errors, aborting (use -f to force output)
15 ../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
15 ../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
15 ../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
12 ../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
4 ../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
3 Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
3 ../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
3 ../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
3 ../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
2 Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:162.1-10 Label or path hdmi_out not found
2 Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:158.1-6 Label or path hdmi not found
2 Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:151.1-6 Label or path emac not found
2 Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:131.1-4 Label or path de not found
2 Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:127.1-6 Label or path cpu0 not found
2 Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:93.1-4 Label or path de not found
2 Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:126.1-10 Label or path hdmi_out not found
2 Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:122.1-6 Label or path hdmi not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:96.1-7 Label or path sdhi1 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:91.1-6 Label or path rwdt not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:70.1-6 Label or path qspi not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:60.1-8 Label or path mmcif0 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:29.1-6 Label or path cmt0 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:106.1-6 Label or path i2c3 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:84.1-5 Label or path avb not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:233.1-8 Label or path usbphy not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:229.1-6 Label or path ssi4 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:219.1-7 Label or path sdhi0 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:195.1-12 Label or path rcar_sound not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:141.1-6 Label or path pci1 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:124.1-6 Label or path i2c5 not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:118.1-7 Label or path hsusb not found
2 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:103.1-6 Label or path can0 not found
2 Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:343.4-5 syntax error
2 Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:239.1-17 Label or path nand_controller not found
2 Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:235.1-6 Label or path ssp2 not found
2 Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:231.1-6 Label or path ssp1 not found
2 Error: ../arch/arm/boot/dts/imx6ull-colibri.dtsi:490.4-5 syntax error
2 Error: ../arch/arm/boot/dts/bcm2836-rpi.dtsi:4.1-7 Label or path vchiq not found
2 Error: ../arch/arm/boot/dts/at91-wb50n.dtsi:25.1-9 Label or path pinctrl not found
2 ../arch/arm/boot/dts/stm32mp157c.dtsi:7:45: fatal error: dt-bindings/clock/stm32mp1-clks.h: No such file or directory
2 ../arch/arm/boot/dts/r8a7744.dtsi:10:48: fatal error: dt-bindings/clock/r8a7744-cpg-mssr.h: No such file or directory
2 ../arch/arm/boot/dts/mt7623a.dtsi:9:45: fatal error: dt-bindings/power/mt7623a-power.h: No such file or directory
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:148.1-10 Label or path hdmi_out not found
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:144.1-6 Label or path hdmi not found
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:137.1-15 Label or path external_mdio not found
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:127.1-6 Label or path emac not found
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:111.1-4 Label or path de not found
1 Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi:29.1-6 Label or path cpu0 not found
1 Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:96.1-10 Label or path hdmi_out not found
1 Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:92.1-6 Label or path hdmi not found
1 Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:88.1-4 Label or path de not found
1 Error: ../arch/arm/boot/dts/sun8i-h3-mapleboard-mp130.dts:78.1-6 Label or path emac not found
1 Error: ../arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts:75.1-6 Label or path cpu0 not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:407.1-7 Label or path uart1 not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:393.1-11 Label or path tcon0_out not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:388.1-7 Label or path tcon0 not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:197.1-5 Label or path pwm not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:139.1-4 Label or path de not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:135.1-8 Label or path cpu100 not found
1 Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:131.1-6 Label or path cpu0 not found
1 Error: ../arch/arm/boot/dts/rv1108-elgin-r1.dts:51.1-6 Label or path gmac not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:715.1-6 Label or path vop1 not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:709.1-10 Label or path vop0_out not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:705.1-6 Label or path vop0 not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:238.1-5 Label or path gpu not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:210.1-6 Label or path cpu3 not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:206.1-6 Label or path cpu2 not found
1 Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:202.1-6 Label or path cpu1 not found
1 Error: ../arch/arm/boot/dts/r8a7790-stout.dts:96.17-18 syntax error
1 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:68.1-6 Label or path i2c1 not found
1 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:54.1-6 Label or path can1 not found
1 Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:39.1-4 Label or path du not found
1 Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:272.1-11 Label or path pcie1_phy not found
1 Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:268.1-11 Label or path pcie0_phy not found
1 Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:254.1-6 Label or path pcie not found
1 Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:109.1-6 Label or path btif not found
1 Error: ../arch/arm/boot/dts/meson8m2.dtsi:25.19-20 syntax error
1 Error: ../arch/arm/boot/dts/meson8b-ec100.dts:268.1-6 Label or path sdio not found
1 Error: ../arch/arm/boot/dts/meson8b-ec100.dts:216.1-6 Label or path cpu0 not found
1 Error: ../arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts:206.1-6 Label or path qspi not found
1 Error: ../arch/arm/boot/dts/iwg20d-q7-common.dtsi:80.21-22 syntax error
1 Error: ../arch/arm/boot/dts/imx6ul-14x14-evk.dtsi:519.4-5 syntax error
1 Error: ../arch/arm/boot/dts/imx6qdl-var-dart.dtsi:213.4-5 syntax error
1 Error: ../arch/arm/boot/dts/imx6qdl-emcon.dtsi:813.1-6 Label or path cpu0 not found
1 Error: ../arch/arm/boot/dts/imx6q-icore-mipi.dts:27.1-8 Label or path ov5640 not found
1 Error: ../arch/arm/boot/dts/imx6dl-mamoj.dts:491.10-492.1 syntax error
1 Error: ../arch/arm/boot/dts/imx53-ppd.dts:596.1-5 Label or path pmu not found
1 Error: ../arch/arm/boot/dts/imx51-zii-scu3-esb.dts:354.1-5 Label or path vpu not found
1 Error: ../arch/arm/boot/dts/imx51-zii-scu2-mezz.dts:346.1-5 Label or path vpu not found
1 Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:569.1-5 Label or path pmu not found
1 Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:565.1-15 Label or path ipu_di0_disp1 not found
1 Error: ../arch/arm/boot/dts/imx31-lite.dts:56.1-6 Label or path spi2 not found
1 Error: ../arch/arm/boot/dts/imx31-lite.dts:49.1-8 Label or path sdhci1 not found
1 Error: ../arch/arm/boot/dts/imx31-lite.dts:42.1-5 Label or path nfc not found
1 Error: ../arch/arm/boot/dts/imx31-lite.dts:38.1-5 Label or path ata not found
1 Error: ../arch/arm/boot/dts/imx31-lite.dts:157.1-6 Label or path weim not found
1 Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:37.1-6 Label or path i2c0 not found
1 Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:29.1-5 Label or path cpu not found
1 Error: ../arch/arm/boot/dts/at91-wb50n.dts:61.1-10 Label or path watchdog not found
1 Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:34.1-21 Label or path shutdown_controller not found
1 Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:30.1-18 Label or path reset_controller not found
1 Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:157.1-9 Label or path pinctrl not found
1 Error: ../arch/arm/boot/dts/at91-wb45n.dts:30.1-10 Label or path watchdog not found
1 Error: ../arch/arm/boot/dts/at91-som60.dtsi:34.1-9 Label or path pinctrl not found
1 Error: ../arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts:200.21-22 syntax error
1 Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:178.1-10 Label or path watchdog not found
1 Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:146.1-9 Label or path pinctrl not found
1 Error: ../arch/arm/boot/dts/at91-gatwick.dts:72.1-9 Label or path pinctrl not found
1 Error: ../arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi:50.1-9 Label or path pinctrl not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:98.1-6 Label or path i2c5 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:94.1-6 Label or path i2c4 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:90.1-6 Label or path i2c3 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:86.1-6 Label or path i2c2 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:82.1-6 Label or path i2c1 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:122.1-11 Label or path pwm_tacho not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:110.1-7 Label or path i2c13 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:106.1-6 Label or path i2c7 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:102.1-6 Label or path i2c6 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:362.1-7 Label or path i2c13 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:300.1-6 Label or path i2c8 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:293.1-6 Label or path i2c7 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:286.1-6 Label or path i2c6 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:279.1-6 Label or path i2c5 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:272.1-6 Label or path i2c4 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:265.1-6 Label or path i2c3 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:203.1-6 Label or path i2c2 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:141.1-6 Label or path i2c1 not found
1 Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:134.1-6 Label or path i2c0 not found
1 Error: ../arch/arm/boot/dts/armada-385-db-88f6820-amc.dts:94.1-17 Label or path nand_controller not found
1 Error: ../arch/arm/boot/dts/am3874-iceboard.dts:489.1-8 Label or path mcspi4 not found
1 Error: ../arch/arm/boot/dts/am3874-iceboard.dts:482.1-8 Label or path mcspi3 not found
1 Error: ../arch/arm/boot/dts/am3874-iceboard.dts:423.1-7 Label or path gpio4 not found
1 Error: ../arch/arm/boot/dts/am3874-iceboard.dts:415.1-7 Label or path gpio3 not found
1 Error: ../arch/arm/boot/dts/am335x-osd3358-sm-red.dts:459.48-49 syntax error
1 Error: ../arch/arm/boot/dts/am335x-guardian.dts:246.48-49 syntax error
1 ../arch/arm/boot/dts/r9a06g032.dtsi:10:49: fatal error: dt-bindings/clock/r9a06g032-sysctrl.h: No such file or directory
1 ../arch/arm/boot/dts/r8a77470.dtsi:10:49: fatal error: dt-bindings/clock/r8a77470-cpg-mssr.h: No such file or directory
1 ../arch/arm/boot/dts/r7s9210.dtsi:10:48: fatal error: dt-bindings/clock/r7s9210-cpg-mssr.h: No such file or directory
1 ../arch/arm/boot/dts/imx7ulp.dtsi:8:45: fatal error: dt-bindings/clock/imx7ulp-clock.h: No such file or directory
1 ../arch/arm/boot/dts/imx6sll.dtsi:8:45: fatal error: dt-bindings/clock/imx6sll-clock.h: No such file or directory
1 ../arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi:2:47: fatal error: dt-bindings/net/microchip-lan78xx.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-portwell-neptune.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-opp-lanyang.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts:7:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
1 ../arch/arm/boot/dts/aspeed-bmc-arm-centriq2400-rep.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Warnings Summary: 2
3 ../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
2 ../fs/proc/task_mmu.c:761:7: warning: 'last_vma' may be used uninitialized in this function [-Wmaybe-uninitialized]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../fs/proc/task_mmu.c:761:7: warning: 'last_vma' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 199 errors, 0 warnings, 0 section mismatches
Errors:
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:202.1-6 Label or path cpu1 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:206.1-6 Label or path cpu2 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:210.1-6 Label or path cpu3 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:238.1-5 Label or path gpu not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:705.1-6 Label or path vop0 not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:709.1-10 Label or path vop0_out not found
Error: ../arch/arm/boot/dts/rk3188-bqedison2qc.dts:715.1-6 Label or path vop1 not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:30.1-18 Label or path reset_controller not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:34.1-21 Label or path shutdown_controller not found
Error: ../arch/arm/boot/dts/at91-wb45n.dtsi:157.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-wb45n.dts:30.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/at91-wb50n.dtsi:25.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-wb50n.dts:61.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/imx51-zii-scu2-mezz.dts:346.1-5 Label or path vpu not found
Error: ../arch/arm/boot/dts/imx6ull-colibri.dtsi:490.4-5 syntax error
Error: ../arch/arm/boot/dts/meson8m2.dtsi:25.19-20 syntax error
Error: ../arch/arm/boot/dts/imx6dl-mamoj.dts:491.10-492.1 syntax error
Error: ../arch/arm/boot/dts/imx53-ppd.dts:596.1-5 Label or path pmu not found
Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:29.1-5 Label or path cpu not found
Error: ../arch/arm/boot/dts/berlin2cd-valve-steamlink.dts:37.1-6 Label or path i2c0 not found
Error: ../arch/arm/boot/dts/iwg20d-q7-common.dtsi:80.21-22 syntax error
../arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:109.1-6 Label or path btif not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:254.1-6 Label or path pcie not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:268.1-11 Label or path pcie0_phy not found
Error: ../arch/arm/boot/dts/mt7623n-rfb-emmc.dts:272.1-11 Label or path pcie1_phy not found
Error: ../arch/arm/boot/dts/at91-som60.dtsi:34.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi:50.1-9 Label or path pinctrl not found
../arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts:7:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/mt7623a.dtsi:9:45: fatal error: dt-bindings/power/mt7623a-power.h: No such file or directory
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:29.1-6 Label or path cmt0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:60.1-8 Label or path mmcif0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:70.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:91.1-6 Label or path rwdt not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:96.1-7 Label or path sdhi1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:106.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:84.1-5 Label or path avb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:103.1-6 Label or path can0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:118.1-7 Label or path hsusb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:124.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:141.1-6 Label or path pci1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:195.1-12 Label or path rcar_sound not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:219.1-7 Label or path sdhi0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:229.1-6 Label or path ssi4 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:233.1-8 Label or path usbphy not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:39.1-4 Label or path du not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:54.1-6 Label or path can1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts:68.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
../arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi:2:47: fatal error: dt-bindings/net/microchip-lan78xx.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6qdl-emcon.dtsi:813.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts:75.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/bcm2836-rpi.dtsi:4.1-7 Label or path vchiq not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:93.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:122.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:126.1-10 Label or path hdmi_out not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:231.1-6 Label or path ssp1 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:235.1-6 Label or path ssp2 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:239.1-17 Label or path nand_controller not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:343.4-5 syntax error
../arch/arm/boot/dts/r9a06g032.dtsi:10:49: fatal error: dt-bindings/clock/r9a06g032-sysctrl.h: No such file or directory
Error: ../arch/arm/boot/dts/am335x-guardian.dts:246.48-49 syntax error
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:127.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:131.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:151.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:158.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:162.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r7s9210.dtsi:10:48: fatal error: dt-bindings/clock/r7s9210-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:146.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-nattis-2-natte-2.dts:178.1-10 Label or path watchdog not found
Error: ../arch/arm/boot/dts/imx51-zii-scu3-esb.dts:354.1-5 Label or path vpu not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:127.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:131.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:151.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:158.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi:162.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r8a7744.dtsi:10:48: fatal error: dt-bindings/clock/r8a7744-cpg-mssr.h: No such file or directory
../arch/arm/boot/dts/imx7ulp.dtsi:8:45: fatal error: dt-bindings/clock/imx7ulp-clock.h: No such file or directory
Error: ../arch/arm/boot/dts/at91-wb50n.dtsi:25.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/at91-gatwick.dts:72.1-9 Label or path pinctrl not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:134.1-6 Label or path i2c0 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:141.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:203.1-6 Label or path i2c2 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:265.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:272.1-6 Label or path i2c4 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:279.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:286.1-6 Label or path i2c6 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:293.1-6 Label or path i2c7 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:300.1-6 Label or path i2c8 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-facebook-cmm.dts:362.1-7 Label or path i2c13 not found
../arch/arm/boot/dts/stm32mp157c.dtsi:7:45: fatal error: dt-bindings/clock/stm32mp1-clks.h: No such file or directory
../arch/arm/boot/dts/imx6sll.dtsi:8:45: fatal error: dt-bindings/clock/imx6sll-clock.h: No such file or directory
Error: ../arch/arm/boot/dts/bcm2836-rpi.dtsi:4.1-7 Label or path vchiq not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:38.1-5 Label or path ata not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:42.1-5 Label or path nfc not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:49.1-8 Label or path sdhci1 not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:56.1-6 Label or path spi2 not found
Error: ../arch/arm/boot/dts/imx31-lite.dts:157.1-6 Label or path weim not found
../arch/arm/boot/dts/aspeed-bmc-opp-lanyang.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6q-icore-mipi.dts:27.1-8 Label or path ov5640 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:29.1-6 Label or path cmt0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:60.1-8 Label or path mmcif0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:70.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:91.1-6 Label or path rwdt not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:96.1-7 Label or path sdhi1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22m.dtsi:106.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:84.1-5 Label or path avb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:103.1-6 Label or path can0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:118.1-7 Label or path hsusb not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:124.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:141.1-6 Label or path pci1 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:195.1-12 Label or path rcar_sound not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:219.1-7 Label or path sdhi0 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:229.1-6 Label or path ssi4 not found
Error: ../arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts:233.1-8 Label or path usbphy not found
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/r8a7744.dtsi:10:48: fatal error: dt-bindings/clock/r8a7744-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/imx6ul-14x14-evk.dtsi:519.4-5 syntax error
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:131.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:135.1-8 Label or path cpu100 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:139.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:197.1-5 Label or path pwm not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:388.1-7 Label or path tcon0 not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:393.1-11 Label or path tcon0_out not found
Error: ../arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts:407.1-7 Label or path uart1 not found
../arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/aspeed-bmc-portwell-neptune.dts:6:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/stm32mp157c.dtsi:7:45: fatal error: dt-bindings/clock/stm32mp1-clks.h: No such file or directory
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:565.1-15 Label or path ipu_di0_disp1 not found
Error: ../arch/arm/boot/dts/imx51-zii-rdu1.dts:569.1-5 Label or path pmu not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:88.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:92.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts:96.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
../arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:415.1-7 Label or path gpio3 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:423.1-7 Label or path gpio4 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:482.1-8 Label or path mcspi3 not found
Error: ../arch/arm/boot/dts/am3874-iceboard.dts:489.1-8 Label or path mcspi4 not found
Error: ../arch/arm/boot/dts/r8a7790-stout.dts:96.17-18 syntax error
../arch/arm/boot/dts/aspeed-bmc-arm-centriq2400-rep.dts:5:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
../arch/arm/boot/dts/pxa300-raumfeld-tuneable-clock.dtsi:3:45: fatal error: dt-bindings/clock/maxim,max9485.h: No such file or directory
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:82.1-6 Label or path i2c1 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:86.1-6 Label or path i2c2 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:90.1-6 Label or path i2c3 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:94.1-6 Label or path i2c4 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:98.1-6 Label or path i2c5 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:102.1-6 Label or path i2c6 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:106.1-6 Label or path i2c7 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:110.1-7 Label or path i2c13 not found
Error: ../arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts:122.1-11 Label or path pwm_tacho not found
Error: ../arch/arm/boot/dts/meson8b-ec100.dts:216.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/meson8b-ec100.dts:268.1-6 Label or path sdio not found
Error: ../arch/arm/boot/dts/sun8i-h3-mapleboard-mp130.dts:78.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:111.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:127.1-6 Label or path emac not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:137.1-15 Label or path external_mdio not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:144.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi:148.1-10 Label or path hdmi_out not found
Error: ../arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi:29.1-6 Label or path cpu0 not found
Error: ../arch/arm/boot/dts/rv1108-elgin-r1.dts:51.1-6 Label or path gmac not found
../arch/arm/boot/dts/mt7623a.dtsi:9:45: fatal error: dt-bindings/power/mt7623a-power.h: No such file or directory
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:231.1-6 Label or path ssp1 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:235.1-6 Label or path ssp2 not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:239.1-17 Label or path nand_controller not found
Error: ../arch/arm/boot/dts/pxa300-raumfeld-common.dtsi:343.4-5 syntax error
Error: ../arch/arm/boot/dts/imx6qdl-var-dart.dtsi:213.4-5 syntax error
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:93.1-4 Label or path de not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:122.1-6 Label or path hdmi not found
Error: ../arch/arm/boot/dts/sun7i-a20-olimex-som204-evb.dts:126.1-10 Label or path hdmi_out not found
../arch/arm/boot/dts/r8a77470.dtsi:10:49: fatal error: dt-bindings/clock/r8a77470-cpg-mssr.h: No such file or directory
Error: ../arch/arm/boot/dts/exynos4412-midas.dtsi:337.1-8 Label or path camera not found
Error: ../arch/arm/boot/dts/am335x-osd3358-sm-red.dts:459.48-49 syntax error
Error: ../arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts:200.21-22 syntax error
Error: ../arch/arm/boot/dts/imx6ull-colibri.dtsi:490.4-5 syntax error
../arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts:4:42: fatal error: dt-bindings/gpio/aspeed-gpio.h: No such file or directory
Error: ../arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts:206.1-6 Label or path qspi not found
Error: ../arch/arm/boot/dts/armada-385-db-88f6820-amc.dts:94.1-17 Label or path nand_controller not found
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
ERROR: Input tree has errors, aborting (use -f to force output)
-------------------------------------------------------------------------------
x86_64-allmodconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../fs/proc/task_mmu.c:761:7: warning: 'last_vma' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : FAIL, 34 errors, 1 warnings, 0 section mismatches
Errors:
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:12:40: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:18:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:31:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:36:23: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:41:31: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:46:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:48:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:53:42: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:55:34: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
../arch/arm64/include/asm/preempt.h:64:15: error: 'struct thread_info' has no member named 'preempt'; did you mean 'preempt_count'?
Warnings:
../arch/arm64/include/asm/preempt.h:7:0: warning: "PREEMPT_NEED_RESCHED" redefined
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm-multi_v7_defconfig
arm-allnoconfig
arm-multi_v4t_defconfig
arm-multi_v5_defconfig
The patch titled
Subject: signal: remove the wrong signal_pending() check in restore_user_sigmask()
has been added to the -mm tree. Its filename is
signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/signal-remove-the-wrong-signal_pen…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/signal-remove-the-wrong-signal_pen…
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: Oleg Nesterov <oleg(a)redhat.com>
Subject: signal: remove the wrong signal_pending() check in restore_user_sigmask()
This is the minimal fix for stable, I'll send cleanups later.
854a6ed56839a40f6b5 ("signal: Add restore_user_sigmask()") introduced the
visible change which breaks user-space: a signal temporary unblocked by
set_user_sigmask() can be delivered even if the caller returns success or
timeout.
Change restore_user_sigmask() to accept the additional "interrupted"
argument which should be used instead of signal_pending() check, and
update the callers.
Eric said:
: For clarity. I don't think this is required by posix, or fundamentally to
: remove the races in select. It is what linux has always done and we have
: applications who care so I agree this fix is needed.
:
: Further in any case where the semantic change that this patch rolls back
: (aka where allowing a signal to be delivered and the select like call to
: complete) would be advantage we can do as well if not better by using
: signalfd.
:
: Michael is there any chance we can get this guarantee of the linux
: implementation of pselect and friends clearly documented. The guarantee
: that if the system call completes successfully we are guaranteed that no
: signal that is unblocked by using sigmask will be delivered?
Link: http://lkml.kernel.org/r/20190604134117.GA29963@redhat.com
Fixes: 854a6ed56839a40f6b5d02a2962f48841482eec4 ("signal: Add restore_user_sigmask()")
Signed-off-by: Oleg Nesterov <oleg(a)redhat.com>
Reported-by: Eric Wong <e(a)80x24.org>
Tested-by: Eric Wong <e(a)80x24.org>
Acked-by: "Eric W. Biederman" <ebiederm(a)xmission.com>
Acked-by: Arnd Bergmann <arnd(a)arndb.de>
Acked-by: Deepa Dinamani <deepa.kernel(a)gmail.com>
Cc: Michael Kerrisk <mtk.manpages(a)gmail.com>
Cc: Jens Axboe <axboe(a)kernel.dk>
Cc: Davidlohr Bueso <dave(a)stgolabs.net>
Cc: Jason Baron <jbaron(a)akamai.com>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Al Viro <viro(a)ZenIV.linux.org.uk>
Cc: David Laight <David.Laight(a)ACULAB.COM>
Cc: <stable(a)vger.kernel.org> [5.0+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
fs/aio.c | 28 ++++++++++++++++++++--------
fs/eventpoll.c | 4 ++--
fs/io_uring.c | 7 ++++---
fs/select.c | 18 ++++++------------
include/linux/signal.h | 2 +-
kernel/signal.c | 5 +++--
6 files changed, 36 insertions(+), 28 deletions(-)
--- a/fs/aio.c~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/fs/aio.c
@@ -2095,6 +2095,7 @@ SYSCALL_DEFINE6(io_pgetevents,
struct __aio_sigset ksig = { NULL, };
sigset_t ksigmask, sigsaved;
struct timespec64 ts;
+ bool interrupted;
int ret;
if (timeout && unlikely(get_timespec64(&ts, timeout)))
@@ -2108,8 +2109,10 @@ SYSCALL_DEFINE6(io_pgetevents,
return ret;
ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL);
- restore_user_sigmask(ksig.sigmask, &sigsaved);
- if (signal_pending(current) && !ret)
+
+ interrupted = signal_pending(current);
+ restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
+ if (interrupted && !ret)
ret = -ERESTARTNOHAND;
return ret;
@@ -2128,6 +2131,7 @@ SYSCALL_DEFINE6(io_pgetevents_time32,
struct __aio_sigset ksig = { NULL, };
sigset_t ksigmask, sigsaved;
struct timespec64 ts;
+ bool interrupted;
int ret;
if (timeout && unlikely(get_old_timespec32(&ts, timeout)))
@@ -2142,8 +2146,10 @@ SYSCALL_DEFINE6(io_pgetevents_time32,
return ret;
ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &ts : NULL);
- restore_user_sigmask(ksig.sigmask, &sigsaved);
- if (signal_pending(current) && !ret)
+
+ interrupted = signal_pending(current);
+ restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
+ if (interrupted && !ret)
ret = -ERESTARTNOHAND;
return ret;
@@ -2193,6 +2199,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents,
struct __compat_aio_sigset ksig = { NULL, };
sigset_t ksigmask, sigsaved;
struct timespec64 t;
+ bool interrupted;
int ret;
if (timeout && get_old_timespec32(&t, timeout))
@@ -2206,8 +2213,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents,
return ret;
ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL);
- restore_user_sigmask(ksig.sigmask, &sigsaved);
- if (signal_pending(current) && !ret)
+
+ interrupted = signal_pending(current);
+ restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
+ if (interrupted && !ret)
ret = -ERESTARTNOHAND;
return ret;
@@ -2226,6 +2235,7 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_tim
struct __compat_aio_sigset ksig = { NULL, };
sigset_t ksigmask, sigsaved;
struct timespec64 t;
+ bool interrupted;
int ret;
if (timeout && get_timespec64(&t, timeout))
@@ -2239,8 +2249,10 @@ COMPAT_SYSCALL_DEFINE6(io_pgetevents_tim
return ret;
ret = do_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL);
- restore_user_sigmask(ksig.sigmask, &sigsaved);
- if (signal_pending(current) && !ret)
+
+ interrupted = signal_pending(current);
+ restore_user_sigmask(ksig.sigmask, &sigsaved, interrupted);
+ if (interrupted && !ret)
ret = -ERESTARTNOHAND;
return ret;
--- a/fs/eventpoll.c~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/fs/eventpoll.c
@@ -2325,7 +2325,7 @@ SYSCALL_DEFINE6(epoll_pwait, int, epfd,
error = do_epoll_wait(epfd, events, maxevents, timeout);
- restore_user_sigmask(sigmask, &sigsaved);
+ restore_user_sigmask(sigmask, &sigsaved, error == -EINTR);
return error;
}
@@ -2350,7 +2350,7 @@ COMPAT_SYSCALL_DEFINE6(epoll_pwait, int,
err = do_epoll_wait(epfd, events, maxevents, timeout);
- restore_user_sigmask(sigmask, &sigsaved);
+ restore_user_sigmask(sigmask, &sigsaved, err == -EINTR);
return err;
}
--- a/fs/io_uring.c~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/fs/io_uring.c
@@ -2201,11 +2201,12 @@ static int io_cqring_wait(struct io_ring
}
ret = wait_event_interruptible(ctx->wait, io_cqring_events(ring) >= min_events);
- if (ret == -ERESTARTSYS)
- ret = -EINTR;
if (sig)
- restore_user_sigmask(sig, &sigsaved);
+ restore_user_sigmask(sig, &sigsaved, ret == -ERESTARTSYS);
+
+ if (ret == -ERESTARTSYS)
+ ret = -EINTR;
return READ_ONCE(ring->r.head) == READ_ONCE(ring->r.tail) ? ret : 0;
}
--- a/fs/select.c~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/fs/select.c
@@ -758,10 +758,9 @@ static long do_pselect(int n, fd_set __u
return ret;
ret = core_sys_select(n, inp, outp, exp, to);
+ restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND);
ret = poll_select_copy_remaining(&end_time, tsp, type, ret);
- restore_user_sigmask(sigmask, &sigsaved);
-
return ret;
}
@@ -1106,8 +1105,7 @@ SYSCALL_DEFINE5(ppoll, struct pollfd __u
ret = do_sys_poll(ufds, nfds, to);
- restore_user_sigmask(sigmask, &sigsaved);
-
+ restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
/* We can restart this syscall, usually */
if (ret == -EINTR)
ret = -ERESTARTNOHAND;
@@ -1142,8 +1140,7 @@ SYSCALL_DEFINE5(ppoll_time32, struct pol
ret = do_sys_poll(ufds, nfds, to);
- restore_user_sigmask(sigmask, &sigsaved);
-
+ restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
/* We can restart this syscall, usually */
if (ret == -EINTR)
ret = -ERESTARTNOHAND;
@@ -1350,10 +1347,9 @@ static long do_compat_pselect(int n, com
return ret;
ret = compat_core_sys_select(n, inp, outp, exp, to);
+ restore_user_sigmask(sigmask, &sigsaved, ret == -ERESTARTNOHAND);
ret = poll_select_copy_remaining(&end_time, tsp, type, ret);
- restore_user_sigmask(sigmask, &sigsaved);
-
return ret;
}
@@ -1425,8 +1421,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time32, str
ret = do_sys_poll(ufds, nfds, to);
- restore_user_sigmask(sigmask, &sigsaved);
-
+ restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
/* We can restart this syscall, usually */
if (ret == -EINTR)
ret = -ERESTARTNOHAND;
@@ -1461,8 +1456,7 @@ COMPAT_SYSCALL_DEFINE5(ppoll_time64, str
ret = do_sys_poll(ufds, nfds, to);
- restore_user_sigmask(sigmask, &sigsaved);
-
+ restore_user_sigmask(sigmask, &sigsaved, ret == -EINTR);
/* We can restart this syscall, usually */
if (ret == -EINTR)
ret = -ERESTARTNOHAND;
--- a/include/linux/signal.h~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/include/linux/signal.h
@@ -276,7 +276,7 @@ extern int sigprocmask(int, sigset_t *,
extern int set_user_sigmask(const sigset_t __user *usigmask, sigset_t *set,
sigset_t *oldset, size_t sigsetsize);
extern void restore_user_sigmask(const void __user *usigmask,
- sigset_t *sigsaved);
+ sigset_t *sigsaved, bool interrupted);
extern void set_current_blocked(sigset_t *);
extern void __set_current_blocked(const sigset_t *);
extern int show_unhandled_signals;
--- a/kernel/signal.c~signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask
+++ a/kernel/signal.c
@@ -2912,7 +2912,8 @@ EXPORT_SYMBOL(set_compat_user_sigmask);
* This is useful for syscalls such as ppoll, pselect, io_pgetevents and
* epoll_pwait where a new sigmask is passed in from userland for the syscalls.
*/
-void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved)
+void restore_user_sigmask(const void __user *usigmask, sigset_t *sigsaved,
+ bool interrupted)
{
if (!usigmask)
@@ -2922,7 +2923,7 @@ void restore_user_sigmask(const void __u
* Restoring sigmask here can lead to delivering signals that the above
* syscalls are intended to block because of the sigmask passed in.
*/
- if (signal_pending(current)) {
+ if (interrupted) {
current->saved_sigmask = *sigsaved;
set_restore_sigmask();
return;
_
Patches currently in -mm which might be from oleg(a)redhat.com are
signal-remove-the-wrong-signal_pending-check-in-restore_user_sigmask.patch
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
drm-nouveau-i2c-disable-i2c-bus-access-after-fini.patch
i2c-mlxcpld-fix-wrong-initialization-order-in-probe.patch
i2c-synquacer-fix-synquacer_i2c_doxfer-return-value.patch
tty-serial-msm_serial-fix-xon-xoff.patch
tty-max310x-fix-external-crystal-register-setup.patch
memcg-make-it-work-on-sparse-non-0-node-systems.patch
kernel-signal.c-trace_signal_deliver-when-signal_group_exit.patch
arm64-fix-the-arm64_personality-syscall-wrapper-redirection.patch
docs-fix-conf.py-for-sphinx-2.0.patch
doc-cope-with-the-deprecation-of-autoreporter.patch
doc-cope-with-sphinx-logging-deprecations.patch
ima-show-rules-with-ima_inmask-correctly.patch
evm-check-hash-algorithm-passed-to-init_desc.patch
vt-fbcon-deinitialize-resources-in-visual_init-after-failed-memory-allocation.patch
serial-sh-sci-disable-dma-for-uart_console.patch
staging-vc04_services-prevent-integer-overflow-in-create_pagelist.patch
staging-wlan-ng-fix-adapter-initialization-failure.patch
cifs-fix-memory-leak-of-pneg_inbuf-on-eopnotsupp-ioctl-case.patch
cifs-cifs_read_allocate_pages-don-t-iterate-through-whole-page-array-on-enomem.patch
revert-lockd-show-pid-of-lockd-for-remote-locks.patch
gcc-plugins-fix-build-failures-under-darwin-host.patch
drm-tegra-gem-fix-cpu-cache-maintenance-for-bo-s-allocated-using-get_pages.patch
drm-vmwgfx-don-t-send-drm-sysfs-hotplug-events-on-initial-master-set.patch
drm-sun4i-fix-sun8i-hdmi-phy-clock-initialization.patch
drm-sun4i-fix-sun8i-hdmi-phy-configuration-for-148.5-mhz.patch
drm-rockchip-shutdown-drm-subsystem-on-shutdown.patch
drm-lease-make-sure-implicit-planes-are-leased.patch
compiler-attributes-add-support-for-__copy-gcc-9.patch
include-linux-module.h-copy-__init-__exit-attrs-to-init-cleanup_module.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ stress: stress-ng [10]
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
🚧 ✅ stress: stress-ng [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
x86_64:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ stress: stress-ng [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#stress/stres…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. 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.
To print the pathname that will be used by shell in the current
environment, 'command -v' is a standardized way. [1]
'which' is also often used in scripting, but it is not portable.
When I worked on commit bd55f96fa9fc ("kbuild: refactor cc-cross-prefix
implementation"), I was eager to use 'command -v' but it did not work.
(The reason is explained below.)
I kept 'which' as before but got rid of '> /dev/null 2>&1' as I
thought it was no longer needed. Sorry, I was wrong.
It works well on my Ubuntu machine, but Alexey Brodkin reports annoying
warnings from the 'which' on CentOS 7 when the given command is not
found in the PATH environment.
$ which foo
which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
Given that behavior of 'which' is different on environment, I want
to try 'command -v' again.
The specification [1] clearly describes the behavior of 'command -v'
when the given command is not found:
Otherwise, no output shall be written and the exit status shall reflect
that the name was not found.
However, we need a little magic to use 'command -v' from Make.
$(shell ...) passes the argument to a subshell for execution, and
returns the standard output of the command.
Here is a trick. GNU Make may optimize this by executing the command
directly instead of forking a subshell, if no shell special characters
are found in the command line and omitting the subshell will not
change the behavior.
In this case, no shell special character is used. So, Make will try
to run the command directly. However, 'command' is a shell-builtin
command. In fact, Make has a table of shell-builtin commands because
it must spawn a subshell to execute them.
Until recently, 'command' was missing in the table.
This issue was fixed by the following commit:
| commit 1af314465e5dfe3e8baa839a32a72e83c04f26ef
| Author: Paul Smith <psmith(a)gnu.org>
| Date: Sun Nov 12 18:10:28 2017 -0500
|
| * job.c: Add "command" as a known shell built-in.
|
| This is not a POSIX shell built-in but it's common in UNIX shells.
| Reported by Nick Bowler <nbowler(a)draconx.ca>.
This is not included in any released versions of Make yet.
(But, some distributions may have back-ported the fix-up.)
To trick Make and let it fork the subshell, I added a shell special
character '~'. We may be able to get rid of this workaround someday,
but it is very far into the future.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
Fixes: bd55f96fa9fc ("kbuild: refactor cc-cross-prefix implementation")
Cc: linux-stable <stable(a)vger.kernel.org> # 5.1
Reported-by: Alexey Brodkin <abrodkin(a)synopsys.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro(a)socionext.com>
---
scripts/Kbuild.include | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 85d758233483..5a32ca80c3f6 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -74,8 +74,11 @@ endef
# Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-)
# Return first <prefix> where a <prefix>gcc is found in PATH.
# If no gcc found in PATH with listed prefixes return nothing
+#
+# Note: the special character '~' forces Make to invoke a shell. This workaround
+# is needed because this issue was only fixed after GNU Make 4.2.1 release.
cc-cross-prefix = $(firstword $(foreach c, $(filter-out -%, $(1)), \
- $(if $(shell which $(c)gcc), $(c))))
+ $(if $(shell command -v $(c)gcc ~), $(c))))
# output directory for tests below
TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/)
--
2.17.1
Hello,
CVE-2019-12380 was fixed in the upstream linux kernel with the commit :-
* 4e78921ba4dd ("efi/x86/Add missing error handling to old_memmap 1:1 mapping code")
Could the patch be applied in order to v4.19.y?
Tests run:
* Chrome OS tryjob
Thanks,
- Zubin
When people set a writeback percent via sysfs file,
/sys/block/bcache<N>/bcache/writeback_percent
current code directly sets BCACHE_DEV_WB_RUNNING to dc->disk.flags
and schedules kworker dc->writeback_rate_update.
If there is no cache set attached to, the writebac kernel thread is
not running indeed, running dc->writeback_rate_update does not make
sense and may cause NULL pointer deference when reference cache set
pointer inside update_writeback_rate().
This patch checks whether the cache set point (dc->disk.c) is NULL in
sysfs interface handler, and only set BCACHE_DEV_WB_RUNNING and
schedule dc->writeback_rate_update when dc->disk.c is not NULL (it
means the cache device is attached to a cache set).
This problem might be introduced from initial bcache commit, but
commit 3fd47bfe55b0 ("bcache: stop dc->writeback_rate_update properly")
changes part of the orignal code piece, so I add 'Fixes: 3fd47bfe55b0'
to indicate from which commit this patch can be applied.
Fixes: 3fd47bfe55b0 ("bcache: stop dc->writeback_rate_update properly")
Reported-by: Bjørn Forsman <bjorn.forsman(a)gmail.com>
Signed-off-by: Coly Li <colyli(a)suse.de>
Cc: stable(a)vger.kernel.org
---
drivers/md/bcache/sysfs.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
index 129031663cc8..eb678e43ac00 100644
--- a/drivers/md/bcache/sysfs.c
+++ b/drivers/md/bcache/sysfs.c
@@ -430,8 +430,13 @@ STORE(bch_cached_dev)
bch_writeback_queue(dc);
}
+ /*
+ * Only set BCACHE_DEV_WB_RUNNING when cached device attached to
+ * a cache set, otherwise it doesn't make sense.
+ */
if (attr == &sysfs_writeback_percent)
- if (!test_and_set_bit(BCACHE_DEV_WB_RUNNING, &dc->disk.flags))
+ if ((dc->disk.c != NULL) &&
+ (!test_and_set_bit(BCACHE_DEV_WB_RUNNING, &dc->disk.flags)))
schedule_delayed_work(&dc->writeback_rate_update,
dc->writeback_rate_update_seconds * HZ);
--
2.16.4
When md raid device (e.g. raid456) is used as backing device, read-ahead
requests on a degrading and recovering md raid device might be failured
immediately by md raid code, but indeed this md raid array can still be
read or write for normal I/O requests. Therefore such failed read-ahead
request are not real hardware failure. Further more, after degrading and
recovering accomplished, read-ahead requests will be handled by md raid
array again.
For such condition, I/O failures of read-ahead requests don't indicate
real health status (because normal I/O still be served), they should not
be counted into I/O error counter dc->io_errors.
Since there is no simple way to detect whether the backing divice is a
md raid device, this patch simply ignores I/O failures for read-ahead
bios on backing device, to avoid bogus backing device failure on a
degrading md raid array.
Suggested-and-tested-by: Thorsten Knabe <linux(a)thorsten-knabe.de>
Signed-off-by: Coly Li <colyli(a)suse.de>
Cc: stable(a)vger.kernel.org
---
drivers/md/bcache/io.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/md/bcache/io.c b/drivers/md/bcache/io.c
index c25097968319..4d93f07f63e5 100644
--- a/drivers/md/bcache/io.c
+++ b/drivers/md/bcache/io.c
@@ -58,6 +58,18 @@ void bch_count_backing_io_errors(struct cached_dev *dc, struct bio *bio)
WARN_ONCE(!dc, "NULL pointer of struct cached_dev");
+ /*
+ * Read-ahead requests on a degrading and recovering md raid
+ * (e.g. raid6) device might be failured immediately by md
+ * raid code, which is not a real hardware media failure. So
+ * we shouldn't count failed REQ_RAHEAD bio to dc->io_errors.
+ */
+ if (bio->bi_opf & REQ_RAHEAD) {
+ pr_warn_ratelimited("%s: Read-ahead I/O failed on backing device, ignore",
+ dc->backing_dev_name);
+ return;
+ }
+
errors = atomic_add_return(1, &dc->io_errors);
if (errors < dc->error_limit)
pr_err("%s: IO error on backing device, unrecoverable",
--
2.16.4
This reverts commit 6147305c73e4511ca1a975b766b97a779d442567.
Although this patch helps the failed bcache device to stop faster when
too many I/O errors detected on corresponding cached device, setting
CACHE_SET_IO_DISABLE bit to cache set c->flags was not a good idea. This
operation will disable all I/Os on cache set, which means other attached
bcache devices won't work neither.
Without this patch, the failed bcache device can also be stopped
eventually if internal I/O accomplished (e.g. writeback). Therefore here
I revert it.
Fixes: 6147305c73e4 ("bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()")
Reported-by: Yong Li <mr.liyong(a)qq.com>
Signed-off-by: Coly Li <colyli(a)suse.de>
Cc: stable(a)vger.kernel.org
---
drivers/md/bcache/super.c | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 1b63ac876169..eaaa046fd95d 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1437,8 +1437,6 @@ int bch_flash_dev_create(struct cache_set *c, uint64_t size)
bool bch_cached_dev_error(struct cached_dev *dc)
{
- struct cache_set *c;
-
if (!dc || test_bit(BCACHE_DEV_CLOSING, &dc->disk.flags))
return false;
@@ -1449,21 +1447,6 @@ bool bch_cached_dev_error(struct cached_dev *dc)
pr_err("stop %s: too many IO errors on backing device %s\n",
dc->disk.disk->disk_name, dc->backing_dev_name);
- /*
- * If the cached device is still attached to a cache set,
- * even dc->io_disable is true and no more I/O requests
- * accepted, cache device internal I/O (writeback scan or
- * garbage collection) may still prevent bcache device from
- * being stopped. So here CACHE_SET_IO_DISABLE should be
- * set to c->flags too, to make the internal I/O to cache
- * device rejected and stopped immediately.
- * If c is NULL, that means the bcache device is not attached
- * to any cache set, then no CACHE_SET_IO_DISABLE bit to set.
- */
- c = dc->disk.c;
- if (c && test_and_set_bit(CACHE_SET_IO_DISABLE, &c->flags))
- pr_info("CACHE_SET_IO_DISABLE already set");
-
bcache_device_stop(&dc->disk);
return true;
}
--
2.16.4
I've attached the following fixes to 4.4, as an mbox:
- binder: Replace "%p" with "%pK" for stable
- binder: replace "%p" with "%pK"
- net: create skb_gso_validate_mac_len()
- bnx2x: disable GSO where gso_size is too big for hardware
- brcmfmac: Add length checks on firmware events
- brcmfmac: screening firmware event packet
- brcmfmac: revise handling events in receive path
- brcmfmac: fix incorrect event channel deduction
- brcmfmac: add length checks in scheduled scan result handler
- brcmfmac: add subtype check for event handling in data path
- userfaultfd: don't pin the user memory in userfaultfd_file_create()
- coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping
The userfaultfd commit might not be a security fix but the next one
depends on it.
Ben.
--
Ben Hutchings, Software Developer Codethink Ltd
https://www.codethink.co.uk/ Dale House, 35 Dale Street
Manchester, M1 2HF, United Kingdom
I've attached the following fixes to 4.9, as an mbox:
- brcmfmac: add length checks in scheduled scan result handler
- brcmfmac: assure SSID length from firmware is limited
- brcmfmac: add subtype check for event handling in data path
- binder: Replace "%p" with "%pK" for stable
- binder: replace "%p" with "%pK"
- fs: prevent page refcount overflow in pipe_buf_get
- mm, gup: remove broken VM_BUG_ON_PAGE compound check for hugepages
- mm, gup: ensure real head page is ref-counted when using hugepages
- mm: prevent get_user_pages() from overflowing page refcount
- mm: make page ref count overflow check tighter and more explicit
- coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping
The first two "mm, gup" commits might not be strictly security fixes
but the next one depends on them.
Ben.
--
Ben Hutchings, Software Developer Codethink Ltd
https://www.codethink.co.uk/ Dale House, 35 Dale Street
Manchester, M1 2HF, United Kingdom
From: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
[ Upstream commit c0d9782f5b6d7157635ae2fd782a4b27d55a6013 ]
>From the GCC manual:
copy
copy(function)
The copy attribute applies the set of attributes with which function
has been declared to the declaration of the function to which
the attribute is applied. The attribute is designed for libraries
that define aliases or function resolvers that are expected
to specify the same set of attributes as their targets. The copy
attribute can be used with functions, variables, or types. However,
the kind of symbol to which the attribute is applied (either
function or variable) must match the kind of symbol to which
the argument refers. The copy attribute copies only syntactic and
semantic attributes but not attributes that affect a symbol’s
linkage or visibility such as alias, visibility, or weak.
The deprecated attribute is also not copied.
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target, e.g.:
void __cold f(void) {}
void __alias("f") g(void);
diagnoses:
warning: 'g' specifies less restrictive attribute than
its target 'f': 'cold' [-Wmissing-attributes]
Using __copy(f) we can copy the __cold attribute from f to g:
void __cold f(void) {}
void __copy(f) __alias("f") g(void);
This attribute is most useful to deal with situations where an alias
is declared but we don't know the exact attributes the target has.
For instance, in the kernel, the widely used module_init/exit macros
define the init/cleanup_module aliases, but those cannot be marked
always as __init/__exit since some modules do not have their
functions marked as such.
Cc: <stable(a)vger.kernel.org> # 4.14+
Suggested-by: Martin Sebor <msebor(a)gcc.gnu.org>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
Signed-off-by: Stefan Agner <stefan(a)agner.ch>
---
include/linux/compiler-gcc.h | 4 ++++
include/linux/compiler_types.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index a8ff0ca0c321..3ebee1ce6f98 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -201,6 +201,10 @@
#define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
#endif
+#if GCC_VERSION >= 90100
+#define __copy(symbol) __attribute__((__copy__(symbol)))
+#endif
+
#if !defined(__noclone)
#define __noclone /* not needed */
#endif
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index c2ded31a4cec..2b8ed70c4c77 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -180,6 +180,10 @@ struct ftrace_likely_data {
#define __diag_GCC(version, severity, string)
#endif
+#ifndef __copy
+# define __copy(symbol)
+#endif
+
#define __diag_push() __diag(push)
#define __diag_pop() __diag(pop)
--
2.21.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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
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)
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
drm-nouveau-i2c-disable-i2c-bus-access-after-fini.patch
i2c-mlxcpld-fix-wrong-initialization-order-in-probe.patch
i2c-synquacer-fix-synquacer_i2c_doxfer-return-value.patch
tty-serial-msm_serial-fix-xon-xoff.patch
tty-max310x-fix-external-crystal-register-setup.patch
memcg-make-it-work-on-sparse-non-0-node-systems.patch
kernel-signal.c-trace_signal_deliver-when-signal_group_exit.patch
arm64-fix-the-arm64_personality-syscall-wrapper-redirection.patch
docs-fix-conf.py-for-sphinx-2.0.patch
doc-cope-with-the-deprecation-of-autoreporter.patch
doc-cope-with-sphinx-logging-deprecations.patch
ima-show-rules-with-ima_inmask-correctly.patch
evm-check-hash-algorithm-passed-to-init_desc.patch
vt-fbcon-deinitialize-resources-in-visual_init-after-failed-memory-allocation.patch
serial-sh-sci-disable-dma-for-uart_console.patch
staging-vc04_services-prevent-integer-overflow-in-create_pagelist.patch
staging-wlan-ng-fix-adapter-initialization-failure.patch
cifs-fix-memory-leak-of-pneg_inbuf-on-eopnotsupp-ioctl-case.patch
cifs-cifs_read_allocate_pages-don-t-iterate-through-whole-page-array-on-enomem.patch
revert-lockd-show-pid-of-lockd-for-remote-locks.patch
gcc-plugins-fix-build-failures-under-darwin-host.patch
drm-tegra-gem-fix-cpu-cache-maintenance-for-bo-s-allocated-using-get_pages.patch
drm-vmwgfx-don-t-send-drm-sysfs-hotplug-events-on-initial-master-set.patch
drm-sun4i-fix-sun8i-hdmi-phy-clock-initialization.patch
drm-sun4i-fix-sun8i-hdmi-phy-configuration-for-148.5-mhz.patch
drm-rockchip-shutdown-drm-subsystem-on-shutdown.patch
drm-lease-make-sure-implicit-planes-are-leased.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-correct-zstd-workspace-manager-lock-to-use-spin_lock_bh.patch
btrfs-qgroup-check-bg-while-resuming-relocation-to-avoid-null-pointer-dereference.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
btrfs-reloc-also-queue-orphan-reloc-tree-for-cleanup-to-avoid-bug_on.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ads124-avoid-buffer-overflow.patch
iio-adc-modify-npcm-adc-read-reference-voltage.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
kvm-ppc-book3s-hv-fix-lockdep-warning-when-entering-guest-on-power9.patch
kvm-ppc-book3s-hv-restore-sprg3-in-kvmhv_p9_guest_entry.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
powerpc-kexec-fix-loading-of-kernel-initramfs-with-kexec_file_load.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
drm-nouveau-i2c-disable-i2c-bus-access-after-fini.patch
i2c-mlxcpld-fix-wrong-initialization-order-in-probe.patch
i2c-synquacer-fix-synquacer_i2c_doxfer-return-value.patch
tty-serial-msm_serial-fix-xon-xoff.patch
tty-max310x-fix-external-crystal-register-setup.patch
mm-memcg-consider-subtrees-in-memory.events.patch
memcg-make-it-work-on-sparse-non-0-node-systems.patch
kasan-initialize-tag-to-0xff-in-__kasan_kmalloc.patch
kernel-signal.c-trace_signal_deliver-when-signal_group_exit.patch
signal-arm64-use-force_sig-not-force_sig_fault-for-sigkill.patch
mm-compaction-make-sure-we-isolate-a-valid-pfn.patch
arm64-fix-the-arm64_personality-syscall-wrapper-redirection.patch
docs-fix-conf.py-for-sphinx-2.0.patch
doc-cope-with-the-deprecation-of-autoreporter.patch
doc-cope-with-sphinx-logging-deprecations.patch
x86-ima-check-efi_runtime_services-before-using.patch
ima-fix-wrong-signed-policy-requirement-when-not-appraising.patch
ima-show-rules-with-ima_inmask-correctly.patch
evm-check-hash-algorithm-passed-to-init_desc.patch
clk-imx-imx8mm-fix-int-pll-clk-gate.patch
vt-fbcon-deinitialize-resources-in-visual_init-after-failed-memory-allocation.patch
serial-sh-sci-disable-dma-for-uart_console.patch
staging-vc04_services-prevent-integer-overflow-in-create_pagelist.patch
staging-wlan-ng-fix-adapter-initialization-failure.patch
cifs-fix-memory-leak-of-pneg_inbuf-on-eopnotsupp-ioctl-case.patch
cifs-cifs_read_allocate_pages-don-t-iterate-through-whole-page-array-on-enomem.patch
revert-lockd-show-pid-of-lockd-for-remote-locks.patch
gcc-plugins-fix-build-failures-under-darwin-host.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
s390x:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
🚧 ✅ stress: stress-ng [10]
x86_64:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ stress: stress-ng [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#stress/stres…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. 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.
While this backport proposal is based on the 4.4.y stable tree, it
might also apply in some form to any stable tree which backported
05c0b86b96: "ipv6: frags: rewrite ip6_expire_frag_queue()"
While this made ip6_expire_frag_queue() similar to ip_exire(),
it did not follow the additional changes to ip_expire() which
were also backported:
fa0f527358: "ip: use rb trees for IP frag queue."
a4fd284a1f: "ip: process in-order fragments efficiently"
The former of the two not only adds handling for rb trees, but
also modifies ip_expire() to take the first skb off the queue
before using it for the sending the icmp message. This also got
rid of the need to protect the skb by incrementing its reference
count (which is the reason for the crash in ip6_expire_frag_queue()).
My first approach was do those changes in ip6_expire_frag_queue(),
but only the former of the two can be done without problems. The
latter uses code which is only locally defined in ipv4/ip_fragment.c.
This was changed upstream in 5.1 when moving code around to be shared
c23f35d19d: "net: IP defrag: encapsulate rbtree defrag code into
callable functions"
And while backporting that I found the two other changes which sounded
like one might want them backported, too. Maybe even more since the
second (ip: fail fast on IP defrag errors) is already partially
included in the backport of "net: ipv4: do not handle duplicate
fragments as overlapping".
Though I do realize that "net: IP defrag: encapsulate rbtree
defrag code into callable functions" is rather large and for
that reason maybe not qualifying as a stable backport.
So I would like to ask what the net-developers think about
this.
Thanks,
Stefan
0001: v4.20: ipv4: ipv6: netfilter: Adjust the frag mem limit when
truesize changes
0002: v4.20: ip: fail fast on IP defrag errors
0003: v5.1 : net: IP defrag: encapsulate rbtree defrag code into
callable functions
0004: n/a : ipv6: frags: Use inet_frag_pull_head() in
ip6_expire_frag_queue()
Jiri Wiesner (1):
ipv4: ipv6: netfilter: Adjust the frag mem limit when truesize changes
Peter Oskolkov (2):
ip: fail fast on IP defrag errors
net: IP defrag: encapsulate rbtree defrag code into callable functions
Stefan Bader (1):
ipv6: frags: Use inet_frag_pull_head() in ip6_expire_frag_queue()
include/net/inet_frag.h | 16 +-
net/ipv4/inet_fragment.c | 293 +++++++++++++++++++++++
net/ipv4/ip_fragment.c | 294 +++---------------------
net/ipv6/netfilter/nf_conntrack_reasm.c | 8 +-
net/ipv6/reassembly.c | 20 +-
5 files changed, 359 insertions(+), 272 deletions(-)
--
2.17.1
From: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
[ Upstream commit c0d9782f5b6d7157635ae2fd782a4b27d55a6013 ]
>From the GCC manual:
copy
copy(function)
The copy attribute applies the set of attributes with which function
has been declared to the declaration of the function to which
the attribute is applied. The attribute is designed for libraries
that define aliases or function resolvers that are expected
to specify the same set of attributes as their targets. The copy
attribute can be used with functions, variables, or types. However,
the kind of symbol to which the attribute is applied (either
function or variable) must match the kind of symbol to which
the argument refers. The copy attribute copies only syntactic and
semantic attributes but not attributes that affect a symbol’s
linkage or visibility such as alias, visibility, or weak.
The deprecated attribute is also not copied.
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target, e.g.:
void __cold f(void) {}
void __alias("f") g(void);
diagnoses:
warning: 'g' specifies less restrictive attribute than
its target 'f': 'cold' [-Wmissing-attributes]
Using __copy(f) we can copy the __cold attribute from f to g:
void __cold f(void) {}
void __copy(f) __alias("f") g(void);
This attribute is most useful to deal with situations where an alias
is declared but we don't know the exact attributes the target has.
For instance, in the kernel, the widely used module_init/exit macros
define the init/cleanup_module aliases, but those cannot be marked
always as __init/__exit since some modules do not have their
functions marked as such.
Cc: <stable(a)vger.kernel.org> # 4.14+
Suggested-by: Martin Sebor <msebor(a)gcc.gnu.org>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
Signed-off-by: Stefan Agner <stefan(a)agner.ch>
---
Changes in v2:
- Fix define of compatibility __copy macro (add symbol argument)
include/linux/compiler-gcc.h | 4 ++++
include/linux/compiler_types.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 4816355b9875..6d7ead22c1b4 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -343,6 +343,10 @@
#define __designated_init __attribute__((designated_init))
#endif
+#if GCC_VERSION >= 90100
+#define __copy(symbol) __attribute__((__copy__(symbol)))
+#endif
+
#endif /* gcc version >= 40000 specific checks */
#if !defined(__noclone)
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 4be464a07612..222fcefaa6a7 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -230,6 +230,10 @@ struct ftrace_likely_data {
# define __latent_entropy
#endif
+#ifndef __copy
+# define __copy(symbol)
+#endif
+
#ifndef __randomize_layout
# define __randomize_layout __designated_init
#endif
--
2.21.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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
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)
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
drm-nouveau-i2c-disable-i2c-bus-access-after-fini.patch
i2c-mlxcpld-fix-wrong-initialization-order-in-probe.patch
i2c-synquacer-fix-synquacer_i2c_doxfer-return-value.patch
tty-serial-msm_serial-fix-xon-xoff.patch
tty-max310x-fix-external-crystal-register-setup.patch
memcg-make-it-work-on-sparse-non-0-node-systems.patch
kernel-signal.c-trace_signal_deliver-when-signal_group_exit.patch
arm64-fix-the-arm64_personality-syscall-wrapper-redirection.patch
docs-fix-conf.py-for-sphinx-2.0.patch
doc-cope-with-the-deprecation-of-autoreporter.patch
doc-cope-with-sphinx-logging-deprecations.patch
ima-show-rules-with-ima_inmask-correctly.patch
evm-check-hash-algorithm-passed-to-init_desc.patch
vt-fbcon-deinitialize-resources-in-visual_init-after-failed-memory-allocation.patch
serial-sh-sci-disable-dma-for-uart_console.patch
staging-vc04_services-prevent-integer-overflow-in-create_pagelist.patch
staging-wlan-ng-fix-adapter-initialization-failure.patch
cifs-fix-memory-leak-of-pneg_inbuf-on-eopnotsupp-ioctl-case.patch
cifs-cifs_read_allocate_pages-don-t-iterate-through-whole-page-array-on-enomem.patch
revert-lockd-show-pid-of-lockd-for-remote-locks.patch
gcc-plugins-fix-build-failures-under-darwin-host.patch
efi-x86-add-missing-error-handling-to-old_memmap-1-1-mapping-code.patch
drm-tegra-gem-fix-cpu-cache-maintenance-for-bo-s-allocated-using-get_pages.patch
drm-vmwgfx-don-t-send-drm-sysfs-hotplug-events-on-initial-master-set.patch
drm-sun4i-fix-sun8i-hdmi-phy-clock-initialization.patch
drm-sun4i-fix-sun8i-hdmi-phy-configuration-for-148.5-mhz.patch
drm-rockchip-shutdown-drm-subsystem-on-shutdown.patch
drm-lease-make-sure-implicit-planes-are-leased.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hi Sasha,
On 04/06/19 6:20 PM, 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.1.6, v5.0.20, v4.19.47, v4.14.123, v4.9.180, v4.4.180.
>
> v5.1.6: Build OK!
> v5.0.20: Build OK!
Please apply it only to the above two releases. I guess this script
could detect that the file was not even present before this and not try
to apply to those.
> v4.19.47: Failed to apply! Possible dependencies:
> 06b23ca021c4 ("mmc: sdhci-of-arasan: Add a single data structure to incorporate pdata and soc_ctl_map")
> 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver")
> f0061fed1f8a ("mmc: sdhci-of-arasan: Add Support for AM654 MMC and PHY")
>
> v4.14.123: Failed to apply! Possible dependencies:
> 06b23ca021c4 ("mmc: sdhci-of-arasan: Add a single data structure to incorporate pdata and soc_ctl_map")
> 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver")
> 7d326930d352 ("mmc: sdhci-omap: Add OMAP SDHCI driver")
> 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1")
> f0061fed1f8a ("mmc: sdhci-of-arasan: Add Support for AM654 MMC and PHY")
>
> v4.9.180: Failed to apply! Possible dependencies:
> 06b23ca021c4 ("mmc: sdhci-of-arasan: Add a single data structure to incorporate pdata and soc_ctl_map")
> 3a3748dba881 ("mmc: sdhci-xenon: Add Marvell Xenon SDHC core functionality")
> 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver")
> 7d326930d352 ("mmc: sdhci-omap: Add OMAP SDHCI driver")
> 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1")
> d38dcad4e7b4 ("mmc: sdhci: Let drivers decide whether to use mmc_retune_needed() with pm")
> f0061fed1f8a ("mmc: sdhci-of-arasan: Add Support for AM654 MMC and PHY")
>
> v4.4.180: Failed to apply! Possible dependencies:
> 06b23ca021c4 ("mmc: sdhci-of-arasan: Add a single data structure to incorporate pdata and soc_ctl_map")
> 0c7fe32e847f ("mmc: sdhci-of-arasan: fix clk issue in sdhci_arasan_remove()")
> 278d09624eda ("mmc: sdhci-of-arasan: fix missing sdhci_pltfm_free for err handling")
> 3a3748dba881 ("mmc: sdhci-xenon: Add Marvell Xenon SDHC core functionality")
> 3ea4666e8d42 ("mmc: sdhci-of-arasan: Properly set corecfg_baseclkfreq on rk3399")
> 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver")
> 476bf3d62d5c ("mmc: sdhci-brcmstb: Add driver for Broadcom BRCMSTB SoCs")
> 5d9460d74ce5 ("mmc: sdhci-pic32: Add PIC32 SDHCI host controller driver")
> 7d326930d352 ("mmc: sdhci-omap: Add OMAP SDHCI driver")
> 802ac39a5566 ("mmc: sdhci-of-arasan: fix set_clock when a phy is supported")
> 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1")
> 89211418cb71 ("mmc: sdhci-of-arasan: use sdhci_pltfm_init for private allocation")
> 91aa366109e8 ("mmc: sdhci-of-arasan: add phy support for sdhci-of-arasan")
> a05c84651145 ("mmc: sdhci-of-arasan: implement enhanced strobe callback")
> c390f2110adf ("mmc: sdhci-of-arasan: Add ability to export card clock")
> ca572f4636aa ("mmc: sdhci-of-arasan: Always power the PHY off/on when clock changes")
> f0061fed1f8a ("mmc: sdhci-of-arasan: Add Support for AM654 MMC and PHY")
>
>
> How should we proceed with this patch?
>
Thanks,
Faiz
If we have to drop the seqcount & rcu lock to perform a krealloc, we
have to restart the loop. In doing so, be careful not to lose track of
the already acquired exclusive fence.
Fixes: fedf54132d24 ("dma-buf: Restart reservation_object_get_fences_rcu() after writes") #v4.10
Signed-off-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter(a)ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst(a)linux.intel.com>
Cc: Christian König <christian.koenig(a)amd.com>
Cc: Alex Deucher <alexander.deucher(a)amd.com>
Cc: Sumit Semwal <sumit.semwal(a)linaro.org>
Cc: stable(a)vger.kernel.org
---
drivers/dma-buf/reservation.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
index 4d32e2c67862..704503df4892 100644
--- a/drivers/dma-buf/reservation.c
+++ b/drivers/dma-buf/reservation.c
@@ -365,6 +365,12 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
GFP_NOWAIT | __GFP_NOWARN);
if (!nshared) {
rcu_read_unlock();
+
+ if (fence_excl) {
+ dma_fence_put(fence_excl);
+ fence_excl = NULL;
+ }
+
nshared = krealloc(shared, sz, GFP_KERNEL);
if (nshared) {
shared = nshared;
--
2.20.1
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 6e3f17ee73f7e3c2ef0e2c8fd8624b2ece8ef2c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf(a)tronnes.org>
Date: Mon, 1 Apr 2019 16:13:58 +0200
Subject: [PATCH] drm/fb-helper: generic: Call drm_client_add() after setup is
done
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Hotplug can happen while drm_fbdev_generic_setup() is running so move
drm_client_add() call after setup is done to avoid
drm_fbdev_client_hotplug() running in two threads at the same time.
Fixes: 9060d7f49376 ("drm/fb-helper: Finish the generic fbdev emulation")
Cc: stable(a)vger.kernel.org
Reported-by: Daniel Vetter <daniel.vetter(a)ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf(a)tronnes.org>
Reviewed-by: Daniel Vetter <daniel.vetter(a)ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190401141358.25309-1-noralf…
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 0d8384e30e16..84791dd4a90d 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -3312,8 +3312,6 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
return ret;
}
- drm_client_add(&fb_helper->client);
-
if (!preferred_bpp)
preferred_bpp = dev->mode_config.preferred_depth;
if (!preferred_bpp)
@@ -3324,6 +3322,8 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
if (ret)
DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret);
+ drm_client_add(&fb_helper->client);
+
return 0;
}
EXPORT_SYMBOL(drm_fbdev_generic_setup);
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 5ed7f4b5eca11c3c69e7c8b53e4321812bc1ee1e Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Mon, 20 May 2019 21:57:34 +1200
Subject: [PATCH] drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader()
leading to an invalid read
If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID
of SVGA3D_INVALID_ID, and a shader type of
SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot
will be 4294967295, leading to an out-of-bounds read in vmw_binding_loc()
when the offset is calculated.
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index b4c7553d2814..33533d126277 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2206,7 +2206,8 @@ static int vmw_cmd_dx_set_shader(struct vmw_private *dev_priv,
cmd = container_of(header, typeof(*cmd), header);
- if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX) {
+ if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX ||
+ cmd->body.type < SVGA3D_SHADERTYPE_MIN) {
VMW_DEBUG_USER("Illegal shader type %u.\n",
(unsigned int) cmd->body.type);
return -EINVAL;
The patch below does not apply to the 5.1-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 5ed7f4b5eca11c3c69e7c8b53e4321812bc1ee1e Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Mon, 20 May 2019 21:57:34 +1200
Subject: [PATCH] drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader()
leading to an invalid read
If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID
of SVGA3D_INVALID_ID, and a shader type of
SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot
will be 4294967295, leading to an out-of-bounds read in vmw_binding_loc()
when the offset is calculated.
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index b4c7553d2814..33533d126277 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2206,7 +2206,8 @@ static int vmw_cmd_dx_set_shader(struct vmw_private *dev_priv,
cmd = container_of(header, typeof(*cmd), header);
- if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX) {
+ if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX ||
+ cmd->body.type < SVGA3D_SHADERTYPE_MIN) {
VMW_DEBUG_USER("Illegal shader type %u.\n",
(unsigned int) cmd->body.type);
return -EINVAL;
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 5ed7f4b5eca11c3c69e7c8b53e4321812bc1ee1e Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Mon, 20 May 2019 21:57:34 +1200
Subject: [PATCH] drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader()
leading to an invalid read
If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID
of SVGA3D_INVALID_ID, and a shader type of
SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot
will be 4294967295, leading to an out-of-bounds read in vmw_binding_loc()
when the offset is calculated.
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index b4c7553d2814..33533d126277 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2206,7 +2206,8 @@ static int vmw_cmd_dx_set_shader(struct vmw_private *dev_priv,
cmd = container_of(header, typeof(*cmd), header);
- if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX) {
+ if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX ||
+ cmd->body.type < SVGA3D_SHADERTYPE_MIN) {
VMW_DEBUG_USER("Illegal shader type %u.\n",
(unsigned int) cmd->body.type);
return -EINVAL;
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 5ed7f4b5eca11c3c69e7c8b53e4321812bc1ee1e Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Mon, 20 May 2019 21:57:34 +1200
Subject: [PATCH] drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader()
leading to an invalid read
If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID
of SVGA3D_INVALID_ID, and a shader type of
SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot
will be 4294967295, leading to an out-of-bounds read in vmw_binding_loc()
when the offset is calculated.
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index b4c7553d2814..33533d126277 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2206,7 +2206,8 @@ static int vmw_cmd_dx_set_shader(struct vmw_private *dev_priv,
cmd = container_of(header, typeof(*cmd), header);
- if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX) {
+ if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX ||
+ cmd->body.type < SVGA3D_SHADERTYPE_MIN) {
VMW_DEBUG_USER("Illegal shader type %u.\n",
(unsigned int) cmd->body.type);
return -EINVAL;
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 bcd6aa7b6cbfd6f985f606c6f76046d782905820 Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Sat, 11 May 2019 18:01:37 +1200
Subject: [PATCH] drm/vmwgfx: NULL pointer dereference from
vmw_cmd_dx_view_define()
If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface
ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after
vmw_cmd_res_check(), leading to a null pointer dereference in
vmw_view_add().
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 315f9efce765..b4c7553d2814 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2427,6 +2427,10 @@ static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
return -EINVAL;
cmd = container_of(header, typeof(*cmd), header);
+ if (unlikely(cmd->sid == SVGA3D_INVALID_ID)) {
+ VMW_DEBUG_USER("Invalid surface id.\n");
+ return -EINVAL;
+ }
ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
VMW_RES_DIRTY_NONE, user_surface_converter,
&cmd->sid, &srf);
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 bcd6aa7b6cbfd6f985f606c6f76046d782905820 Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Sat, 11 May 2019 18:01:37 +1200
Subject: [PATCH] drm/vmwgfx: NULL pointer dereference from
vmw_cmd_dx_view_define()
If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface
ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after
vmw_cmd_res_check(), leading to a null pointer dereference in
vmw_view_add().
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 315f9efce765..b4c7553d2814 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2427,6 +2427,10 @@ static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
return -EINVAL;
cmd = container_of(header, typeof(*cmd), header);
+ if (unlikely(cmd->sid == SVGA3D_INVALID_ID)) {
+ VMW_DEBUG_USER("Invalid surface id.\n");
+ return -EINVAL;
+ }
ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
VMW_RES_DIRTY_NONE, user_surface_converter,
&cmd->sid, &srf);
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 bcd6aa7b6cbfd6f985f606c6f76046d782905820 Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Sat, 11 May 2019 18:01:37 +1200
Subject: [PATCH] drm/vmwgfx: NULL pointer dereference from
vmw_cmd_dx_view_define()
If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface
ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after
vmw_cmd_res_check(), leading to a null pointer dereference in
vmw_view_add().
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 315f9efce765..b4c7553d2814 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2427,6 +2427,10 @@ static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
return -EINVAL;
cmd = container_of(header, typeof(*cmd), header);
+ if (unlikely(cmd->sid == SVGA3D_INVALID_ID)) {
+ VMW_DEBUG_USER("Invalid surface id.\n");
+ return -EINVAL;
+ }
ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
VMW_RES_DIRTY_NONE, user_surface_converter,
&cmd->sid, &srf);
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 bcd6aa7b6cbfd6f985f606c6f76046d782905820 Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Sat, 11 May 2019 18:01:37 +1200
Subject: [PATCH] drm/vmwgfx: NULL pointer dereference from
vmw_cmd_dx_view_define()
If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface
ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after
vmw_cmd_res_check(), leading to a null pointer dereference in
vmw_view_add().
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 315f9efce765..b4c7553d2814 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2427,6 +2427,10 @@ static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
return -EINVAL;
cmd = container_of(header, typeof(*cmd), header);
+ if (unlikely(cmd->sid == SVGA3D_INVALID_ID)) {
+ VMW_DEBUG_USER("Invalid surface id.\n");
+ return -EINVAL;
+ }
ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
VMW_RES_DIRTY_NONE, user_surface_converter,
&cmd->sid, &srf);
The patch below does not apply to the 5.1-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 bcd6aa7b6cbfd6f985f606c6f76046d782905820 Mon Sep 17 00:00:00 2001
From: Murray McAllister <murray.mcallister(a)gmail.com>
Date: Sat, 11 May 2019 18:01:37 +1200
Subject: [PATCH] drm/vmwgfx: NULL pointer dereference from
vmw_cmd_dx_view_define()
If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface
ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after
vmw_cmd_res_check(), leading to a null pointer dereference in
vmw_view_add().
Cc: <stable(a)vger.kernel.org>
Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support")
Signed-off-by: Murray McAllister <murray.mcallister(a)gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom(a)vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom(a)vmware.com>
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 315f9efce765..b4c7553d2814 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2427,6 +2427,10 @@ static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv,
return -EINVAL;
cmd = container_of(header, typeof(*cmd), header);
+ if (unlikely(cmd->sid == SVGA3D_INVALID_ID)) {
+ VMW_DEBUG_USER("Invalid surface id.\n");
+ return -EINVAL;
+ }
ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
VMW_RES_DIRTY_NONE, user_surface_converter,
&cmd->sid, &srf);
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-correct-zstd-workspace-manager-lock-to-use-spin_lock_bh.patch
btrfs-qgroup-check-bg-while-resuming-relocation-to-avoid-null-pointer-dereference.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
btrfs-reloc-also-queue-orphan-reloc-tree-for-cleanup-to-avoid-bug_on.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ads124-avoid-buffer-overflow.patch
iio-adc-modify-npcm-adc-read-reference-voltage.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
kvm-ppc-book3s-hv-fix-lockdep-warning-when-entering-guest-on-power9.patch
kvm-ppc-book3s-hv-restore-sprg3-in-kvmhv_p9_guest_entry.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
powerpc-kexec-fix-loading-of-kernel-initramfs-with-kexec_file_load.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
🚧 ✅ stress: stress-ng [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
x86_64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ stress: stress-ng [10]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#stress/stres…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. 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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-correct-zstd-workspace-manager-lock-to-use-spin_lock_bh.patch
btrfs-qgroup-check-bg-while-resuming-relocation-to-avoid-null-pointer-dereference.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
btrfs-reloc-also-queue-orphan-reloc-tree-for-cleanup-to-avoid-bug_on.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ads124-avoid-buffer-overflow.patch
iio-adc-modify-npcm-adc-read-reference-voltage.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
kvm-ppc-book3s-hv-fix-lockdep-warning-when-entering-guest-on-power9.patch
kvm-ppc-book3s-hv-restore-sprg3-in-kvmhv_p9_guest_entry.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
powerpc-kexec-fix-loading-of-kernel-initramfs-with-kexec_file_load.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
s390x:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
kvm-s390-do-not-report-unusabled-ids-via-kvm_cap_max_vcpu_id.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
s390x:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
s390x:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-correct-zstd-workspace-manager-lock-to-use-spin_lock_bh.patch
btrfs-qgroup-check-bg-while-resuming-relocation-to-avoid-null-pointer-dereference.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
btrfs-reloc-also-queue-orphan-reloc-tree-for-cleanup-to-avoid-bug_on.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ads124-avoid-buffer-overflow.patch
iio-adc-modify-npcm-adc-read-reference-voltage.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
kvm-ppc-book3s-hv-fix-lockdep-warning-when-entering-guest-on-power9.patch
kvm-ppc-book3s-hv-restore-sprg3-in-kvmhv_p9_guest_entry.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
powerpc-kexec-fix-loading-of-kernel-initramfs-with-kexec_file_load.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
🚧 ✅ stress: stress-ng [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
x86_64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ tuned: tune-processes-through-perf [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ stress: stress-ng [10]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#stress/stres…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. 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: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
[ Upstream commit c0d9782f5b6d7157635ae2fd782a4b27d55a6013
>From the GCC manual:
copy
copy(function)
The copy attribute applies the set of attributes with which function
has been declared to the declaration of the function to which
the attribute is applied. The attribute is designed for libraries
that define aliases or function resolvers that are expected
to specify the same set of attributes as their targets. The copy
attribute can be used with functions, variables, or types. However,
the kind of symbol to which the attribute is applied (either
function or variable) must match the kind of symbol to which
the argument refers. The copy attribute copies only syntactic and
semantic attributes but not attributes that affect a symbol’s
linkage or visibility such as alias, visibility, or weak.
The deprecated attribute is also not copied.
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target, e.g.:
void __cold f(void) {}
void __alias("f") g(void);
diagnoses:
warning: 'g' specifies less restrictive attribute than
its target 'f': 'cold' [-Wmissing-attributes]
Using __copy(f) we can copy the __cold attribute from f to g:
void __cold f(void) {}
void __copy(f) __alias("f") g(void);
This attribute is most useful to deal with situations where an alias
is declared but we don't know the exact attributes the target has.
For instance, in the kernel, the widely used module_init/exit macros
define the init/cleanup_module aliases, but those cannot be marked
always as __init/__exit since some modules do not have their
functions marked as such.
Cc: <stable(a)vger.kernel.org> # 4.14+
Suggested-by: Martin Sebor <msebor(a)gcc.gnu.org>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis(a)gmail.com>
Signed-off-by: Stefan Agner <stefan(a)agner.ch>
---
include/linux/compiler-gcc.h | 4 ++++
include/linux/compiler_types.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 4816355b9875..6d7ead22c1b4 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -343,6 +343,10 @@
#define __designated_init __attribute__((designated_init))
#endif
+#if GCC_VERSION >= 90100
+#define __copy(symbol) __attribute__((__copy__(symbol)))
+#endif
+
#endif /* gcc version >= 40000 specific checks */
#if !defined(__noclone)
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 4be464a07612..20112bb1a8f9 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -230,6 +230,10 @@ struct ftrace_likely_data {
# define __latent_entropy
#endif
+#ifndef __copy
+# define __copy
+#endif
+
#ifndef __randomize_layout
# define __randomize_layout __designated_init
#endif
--
2.21.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 d76cac67db40c172791ce07948367b96a758e45b Mon Sep 17 00:00:00 2001
From: "Eric W. Biederman" <ebiederm(a)xmission.com>
Date: Thu, 23 May 2019 11:11:19 -0500
Subject: [PATCH] signal/arm64: Use force_sig not force_sig_fault for SIGKILL
I don't think this is userspace visible but SIGKILL does not have
any si_codes that use the fault member of the siginfo union. Correct
this the simple way and call force_sig instead of force_sig_fault when
the signal is SIGKILL.
The two know places where synchronous SIGKILL are generated are
do_bad_area and fpsimd_save. The call paths to force_sig_fault are:
do_bad_area
arm64_force_sig_fault
force_sig_fault
force_signal_inject
arm64_notify_die
arm64_force_sig_fault
force_sig_fault
Which means correcting this in arm64_force_sig_fault is enough
to ensure the arm64 code is not misusing the generic code, which
could lead to maintenance problems later.
Cc: stable(a)vger.kernel.org
Cc: Dave Martin <Dave.Martin(a)arm.com>
Cc: James Morse <james.morse(a)arm.com>
Cc: Will Deacon <will.deacon(a)arm.com>
Fixes: af40ff687bc9 ("arm64: signal: Ensure si_code is valid for all fault signals")
Signed-off-by: "Eric W. Biederman" <ebiederm(a)xmission.com>
Signed-off-by: Will Deacon <will.deacon(a)arm.com>
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index e6be1a6efc0a..177c0f6ebabf 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -252,7 +252,10 @@ void arm64_force_sig_fault(int signo, int code, void __user *addr,
const char *str)
{
arm64_show_signal(signo, str);
- force_sig_fault(signo, code, addr, current);
+ if (signo == SIGKILL)
+ force_sig(SIGKILL, current);
+ else
+ force_sig_fault(signo, code, addr, current);
}
void arm64_force_sig_mceerr(int code, void __user *addr, short lsb,
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 2f7d9d47575e - Linux 5.1.7
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-correct-zstd-workspace-manager-lock-to-use-spin_lock_bh.patch
btrfs-qgroup-check-bg-while-resuming-relocation-to-avoid-null-pointer-dereference.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
btrfs-reloc-also-queue-orphan-reloc-tree-for-cleanup-to-avoid-bug_on.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
s390x:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: FAILED
We attempted to compile the kernel for multiple architectures, but the compile
failed on one or more architectures:
ppc64le: FAILED (see build-ppc64le.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: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: e109a984cf38 - Linux 4.19.48
We then merged the patchset with `git am`:
sparc64-fix-regression-in-non-hypervisor-tlb-flush-xcall.patch
include-linux-bitops.h-sanitize-rotate-primitives.patch
xhci-update-bounce-buffer-with-correct-sg-num.patch
xhci-use-zu-for-printing-size_t-type.patch
xhci-convert-xhci_handshake-to-use-readl_poll_timeout_atomic.patch
usb-xhci-avoid-null-pointer-deref-when-bos-field-is-null.patch
usbip-usbip_host-fix-bug-sleeping-function-called-from-invalid-context.patch
usbip-usbip_host-fix-stub_dev-lock-context-imbalance-regression.patch
usb-fix-slab-out-of-bounds-write-in-usb_get_bos_descriptor.patch
usb-sisusbvga-fix-oops-in-error-path-of-sisusb_probe.patch
usb-add-lpm-quirk-for-surface-dock-gige-adapter.patch
usb-rio500-refuse-more-than-one-device-at-a-time.patch
usb-rio500-fix-memory-leak-in-close-after-disconnect.patch
media-usb-siano-fix-general-protection-fault-in-smsusb.patch
media-usb-siano-fix-false-positive-uninitialized-variable-warning.patch
media-smsusb-better-handle-optional-alignment.patch
brcmfmac-fix-null-pointer-derefence-during-usb-disconnect.patch
scsi-zfcp-fix-missing-zfcp_port-reference-put-on-ebusy-from-port_remove.patch
scsi-zfcp-fix-to-prevent-port_remove-with-pure-auto-scan-luns-only-sdevs.patch
tracing-avoid-memory-leak-in-predicate_parse.patch
btrfs-fix-wrong-ctime-and-mtime-of-a-directory-after-log-replay.patch
btrfs-fix-race-updating-log-root-item-during-fsync.patch
btrfs-fix-fsync-not-persisting-changed-attributes-of-a-directory.patch
btrfs-incremental-send-fix-file-corruption-when-no-holes-feature-is-enabled.patch
iio-dac-ds4422-ds4424-fix-chip-verification.patch
iio-adc-ti-ads8688-fix-timestamp-is-not-updated-in-buffer.patch
s390-crypto-fix-gcm-aes-s390-selftest-failures.patch
s390-crypto-fix-possible-sleep-during-spinlock-aquired.patch
kvm-ppc-book3s-hv-xive-do-not-clear-irq-data-of-passthrough-interrupts.patch
powerpc-perf-fix-mmcra-corruption-by-bhrb_filter.patch
powerpc-kexec-fix-loading-of-kernel-initramfs-with-kexec_file_load.patch
alsa-line6-assure-canceling-delayed-work-at-disconnection.patch
alsa-hda-realtek-set-default-power-save-node-to-0.patch
alsa-hda-realtek-improve-the-headset-mic-for-acer-aspire-laptops.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
The patch below does not apply to the 5.1-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 a86cb413f4bf273a9d341a3ab2c2ca44e12eb317 Mon Sep 17 00:00:00 2001
From: Thomas Huth <thuth(a)redhat.com>
Date: Thu, 23 May 2019 18:43:08 +0200
Subject: [PATCH] KVM: s390: Do not report unusabled IDs via
KVM_CAP_MAX_VCPU_ID
KVM_CAP_MAX_VCPU_ID is currently always reporting KVM_MAX_VCPU_ID on all
architectures. However, on s390x, the amount of usable CPUs is determined
during runtime - it is depending on the features of the machine the code
is running on. Since we are using the vcpu_id as an index into the SCA
structures that are defined by the hardware (see e.g. the sca_add_vcpu()
function), it is not only the amount of CPUs that is limited by the hard-
ware, but also the range of IDs that we can use.
Thus KVM_CAP_MAX_VCPU_ID must be determined during runtime on s390x, too.
So the handling of KVM_CAP_MAX_VCPU_ID has to be moved from the common
code into the architecture specific code, and on s390x we have to return
the same value here as for KVM_CAP_MAX_VCPUS.
This problem has been discovered with the kvm_create_max_vcpus selftest.
With this change applied, the selftest now passes on s390x, too.
Reviewed-by: Andrew Jones <drjones(a)redhat.com>
Reviewed-by: Cornelia Huck <cohuck(a)redhat.com>
Reviewed-by: David Hildenbrand <david(a)redhat.com>
Signed-off-by: Thomas Huth <thuth(a)redhat.com>
Message-Id: <20190523164309.13345-9-thuth(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Christian Borntraeger <borntraeger(a)de.ibm.com>
diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
index 6d0517ac18e5..0369f26ab96d 100644
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -1122,6 +1122,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_MIPS_FPU:
/* We don't handle systems with inconsistent cpu_has_fpu */
r = !!raw_cpu_has_fpu;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 3393b166817a..aa3a678711be 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -657,6 +657,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
#ifdef CONFIG_PPC_BOOK3S_64
case KVM_CAP_PPC_GET_SMMU_INFO:
r = 1;
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index e5e8eb29e68e..28ebd647784c 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -539,6 +539,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
break;
case KVM_CAP_NR_VCPUS:
case KVM_CAP_MAX_VCPUS:
+ case KVM_CAP_MAX_VCPU_ID:
r = KVM_S390_BSCA_CPU_SLOTS;
if (!kvm_s390_use_sca_entries())
r = KVM_MAX_VCPUS;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index acb179f78fdc..83aefd759846 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3122,6 +3122,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_PV_MMU: /* obsolete */
r = 0;
break;
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
index 90cedebaeb94..7eeebe5e9da2 100644
--- a/virt/kvm/arm/arm.c
+++ b/virt/kvm/arm/arm.c
@@ -224,6 +224,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_MSI_DEVID:
if (!kvm)
r = -EINVAL;
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 301089a462c4..ca54b09adf5b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3151,8 +3151,6 @@ static long kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
case KVM_CAP_MULTI_ADDRESS_SPACE:
return KVM_ADDRESS_SPACE_NUM;
#endif
- case KVM_CAP_MAX_VCPU_ID:
- return KVM_MAX_VCPU_ID;
case KVM_CAP_NR_MEMSLOTS:
return KVM_USER_MEM_SLOTS;
default:
Since commit d26c25a9d19b ("arm64: KVM: Tighten guest core register
access from userspace"), KVM_{GET,SET}_ONE_REG rejects register IDs
that do not correspond to a single underlying architectural register.
KVM_GET_REG_LIST was not changed to match however: instead, it
simply yields a list of 32-bit register IDs that together cover the
whole kvm_regs struct. This means that if userspace tries to use
the resulting list of IDs directly to drive calls to KVM_*_ONE_REG,
some of those calls will now fail.
This was not the intention. Instead, iterating KVM_*_ONE_REG over
the list of IDs returned by KVM_GET_REG_LIST should be guaranteed
to work.
This patch fixes the problem by splitting validate_core_offset()
into a backend core_reg_size_from_offset() which does all of the
work except for checking that the size field in the register ID
matches, and kvm_arm_copy_reg_indices() and num_core_regs() are
converted to use this to enumerate the valid offsets.
kvm_arm_copy_reg_indices() now also sets the register ID size field
appropriately based on the value returned, so the register ID
supplied to userspace is fully qualified for use with the register
access ioctls.
Cc: stable(a)vger.kernel.org
Fixes: d26c25a9d19b ("arm64: KVM: Tighten guest core register access from userspace")
Signed-off-by: Dave Martin <Dave.Martin(a)arm.com>
---
Changes since v3:
* Rebased onto v5.2-rc1.
* Tested with qemu by migrating from one qemu instance to another on
ThunderX2.
---
arch/arm64/kvm/guest.c | 53 +++++++++++++++++++++++++++++++++++++-------------
1 file changed, 40 insertions(+), 13 deletions(-)
diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
index 3ae2f82..6527c76 100644
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -70,10 +70,8 @@ static u64 core_reg_offset_from_id(u64 id)
return id & ~(KVM_REG_ARCH_MASK | KVM_REG_SIZE_MASK | KVM_REG_ARM_CORE);
}
-static int validate_core_offset(const struct kvm_vcpu *vcpu,
- const struct kvm_one_reg *reg)
+static int core_reg_size_from_offset(const struct kvm_vcpu *vcpu, u64 off)
{
- u64 off = core_reg_offset_from_id(reg->id);
int size;
switch (off) {
@@ -103,8 +101,7 @@ static int validate_core_offset(const struct kvm_vcpu *vcpu,
return -EINVAL;
}
- if (KVM_REG_SIZE(reg->id) != size ||
- !IS_ALIGNED(off, size / sizeof(__u32)))
+ if (!IS_ALIGNED(off, size / sizeof(__u32)))
return -EINVAL;
/*
@@ -115,6 +112,21 @@ static int validate_core_offset(const struct kvm_vcpu *vcpu,
if (vcpu_has_sve(vcpu) && core_reg_offset_is_vreg(off))
return -EINVAL;
+ return size;
+}
+
+static int validate_core_offset(const struct kvm_vcpu *vcpu,
+ const struct kvm_one_reg *reg)
+{
+ u64 off = core_reg_offset_from_id(reg->id);
+ int size = core_reg_size_from_offset(vcpu, off);
+
+ if (size < 0)
+ return -EINVAL;
+
+ if (KVM_REG_SIZE(reg->id) != size)
+ return -EINVAL;
+
return 0;
}
@@ -453,19 +465,34 @@ static int copy_core_reg_indices(const struct kvm_vcpu *vcpu,
{
unsigned int i;
int n = 0;
- const u64 core_reg = KVM_REG_ARM64 | KVM_REG_SIZE_U64 | KVM_REG_ARM_CORE;
for (i = 0; i < sizeof(struct kvm_regs) / sizeof(__u32); i++) {
- /*
- * The KVM_REG_ARM64_SVE regs must be used instead of
- * KVM_REG_ARM_CORE for accessing the FPSIMD V-registers on
- * SVE-enabled vcpus:
- */
- if (vcpu_has_sve(vcpu) && core_reg_offset_is_vreg(i))
+ u64 reg = KVM_REG_ARM64 | KVM_REG_ARM_CORE | i;
+ int size = core_reg_size_from_offset(vcpu, i);
+
+ if (size < 0)
+ continue;
+
+ switch (size) {
+ case sizeof(__u32):
+ reg |= KVM_REG_SIZE_U32;
+ break;
+
+ case sizeof(__u64):
+ reg |= KVM_REG_SIZE_U64;
+ break;
+
+ case sizeof(__uint128_t):
+ reg |= KVM_REG_SIZE_U128;
+ break;
+
+ default:
+ WARN_ON(1);
continue;
+ }
if (uindices) {
- if (put_user(core_reg | i, uindices))
+ if (put_user(reg, uindices))
return -EFAULT;
uindices++;
}
--
2.1.4
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 9cb40eb184c4220d244a532bd940c6345ad9dbd9 Mon Sep 17 00:00:00 2001
From: Hui Wang <hui.wang(a)canonical.com>
Date: Wed, 29 May 2019 12:41:38 +0800
Subject: [PATCH] ALSA: hda/realtek - Improve the headset mic for Acer Aspire
laptops
We met another Acer Aspire laptop which has the problem on the
headset-mic, the Pin 0x19 is not set the corret configuration for a
mic and the pin presence can't be detected too after plugging a
headset. Kailang suggested that we should set the coeff to enable the
mic and apply the ALC269_FIXUP_LIFEBOOK_EXTMIC. After doing that,
both headset-mic presence and headset-mic work well.
The existing ALC255_FIXUP_ACER_MIC_NO_PRESENCE set the headset-mic
jack to be a phantom jack. Now since the jack can support presence
unsol event, let us imporve it to set the jack to be a normal jack.
https://bugs.launchpad.net/bugs/1821269
Fixes: 5824ce8de7b1c ("ALSA: hda/realtek - Add support for Acer Aspire E5-475 headset mic")
Cc: Chris Chiu <chiu(a)endlessm.com>
CC: Daniel Drake <drake(a)endlessm.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Kailang Yang <kailang(a)realtek.com>
Signed-off-by: Hui Wang <hui.wang(a)canonical.com>
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index f1bac03e954b..18cb48054e54 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6223,13 +6223,15 @@ static const struct hda_fixup alc269_fixups[] = {
.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
},
[ALC255_FIXUP_ACER_MIC_NO_PRESENCE] = {
- .type = HDA_FIXUP_PINS,
- .v.pins = (const struct hda_pintbl[]) {
- { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
- { }
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ /* Enable the Mic */
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
+ {}
},
.chained = true,
- .chain_id = ALC255_FIXUP_HEADSET_MODE
+ .chain_id = ALC269_FIXUP_LIFEBOOK_EXTMIC
},
[ALC255_FIXUP_ASUS_MIC_NO_PRESENCE] = {
.type = HDA_FIXUP_PINS,
@@ -7273,6 +7275,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
{0x18, 0x02a11030},
{0x19, 0x0181303F},
{0x21, 0x0221102f}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1025, "Acer", ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
+ {0x12, 0x90a60140},
+ {0x14, 0x90170120},
+ {0x21, 0x02211030}),
SND_HDA_PIN_QUIRK(0x10ec0255, 0x1025, "Acer", ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
{0x12, 0x90a601c0},
{0x14, 0x90171120},
Hello,
CVE-2019-12378 was fixed in the upstream linux kernel with the following commit.
* 95baa60a0da8 ("ipv6_sockglue: Fix a missing-check bug in ip6_ra_control()")
Could the patch be applied to v4.19.y, v4.14.y, v4.9.y and v4.4.y?
Tests run:
* Chrome OS tryjobs
Thanks,
- Zubin
Currently, ima_appraise_measurement() ignores the EVM status when
evm_verifyxattr() returns INTEGRITY_UNKNOWN. If a file has a valid
security.ima xattr with type IMA_XATTR_DIGEST or IMA_XATTR_DIGEST_NG,
ima_appraise_measurement() returns INTEGRITY_PASS regardless of the EVM
status. The problem is that the EVM status is overwritten with the
appraisal status.
This patch mitigates the issue by selecting signature verification as the
only method allowed for appraisal when EVM is not initialized. Since the
new behavior might break user space, it must be turned on by adding the
'-evm' suffix to the value of the ima_appraise= kernel option.
Fixes: 2fe5d6def1672 ("ima: integrity appraisal extension")
Signed-off-by: Roberto Sassu <roberto.sassu(a)huawei.com>
Cc: stable(a)vger.kernel.org
---
Documentation/admin-guide/kernel-parameters.txt | 3 ++-
security/integrity/ima/ima_appraise.c | 8 ++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 138f6664b2e2..d84a2e612b93 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1585,7 +1585,8 @@
Set number of hash buckets for inode cache.
ima_appraise= [IMA] appraise integrity measurements
- Format: { "off" | "enforce" | "fix" | "log" }
+ Format: { "off" | "enforce" | "fix" | "log" |
+ "enforce-evm" | "log-evm" }
default: "enforce"
ima_appraise_tcb [IMA] Deprecated. Use ima_policy= instead.
diff --git a/security/integrity/ima/ima_appraise.c b/security/integrity/ima/ima_appraise.c
index 5fb7127bbe68..afef06e10fb9 100644
--- a/security/integrity/ima/ima_appraise.c
+++ b/security/integrity/ima/ima_appraise.c
@@ -18,6 +18,7 @@
#include "ima.h"
+static bool ima_appraise_req_evm __ro_after_init;
static int __init default_appraise_setup(char *str)
{
#ifdef CONFIG_IMA_APPRAISE_BOOTPARAM
@@ -28,6 +29,9 @@ static int __init default_appraise_setup(char *str)
else if (strncmp(str, "fix", 3) == 0)
ima_appraise = IMA_APPRAISE_FIX;
#endif
+ if (strcmp(str, "enforce-evm") == 0 ||
+ strcmp(str, "log-evm") == 0)
+ ima_appraise_req_evm = true;
return 1;
}
@@ -245,7 +249,11 @@ int ima_appraise_measurement(enum ima_hooks func,
switch (status) {
case INTEGRITY_PASS:
case INTEGRITY_PASS_IMMUTABLE:
+ break;
case INTEGRITY_UNKNOWN:
+ if (ima_appraise_req_evm &&
+ xattr_value->type != EVM_IMA_XATTR_DIGSIG)
+ goto out;
break;
case INTEGRITY_NOXATTRS: /* No EVM protected xattrs. */
case INTEGRITY_NOLABEL: /* No security.evm xattr. */
--
2.17.1
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 a86cb413f4bf273a9d341a3ab2c2ca44e12eb317 Mon Sep 17 00:00:00 2001
From: Thomas Huth <thuth(a)redhat.com>
Date: Thu, 23 May 2019 18:43:08 +0200
Subject: [PATCH] KVM: s390: Do not report unusabled IDs via
KVM_CAP_MAX_VCPU_ID
KVM_CAP_MAX_VCPU_ID is currently always reporting KVM_MAX_VCPU_ID on all
architectures. However, on s390x, the amount of usable CPUs is determined
during runtime - it is depending on the features of the machine the code
is running on. Since we are using the vcpu_id as an index into the SCA
structures that are defined by the hardware (see e.g. the sca_add_vcpu()
function), it is not only the amount of CPUs that is limited by the hard-
ware, but also the range of IDs that we can use.
Thus KVM_CAP_MAX_VCPU_ID must be determined during runtime on s390x, too.
So the handling of KVM_CAP_MAX_VCPU_ID has to be moved from the common
code into the architecture specific code, and on s390x we have to return
the same value here as for KVM_CAP_MAX_VCPUS.
This problem has been discovered with the kvm_create_max_vcpus selftest.
With this change applied, the selftest now passes on s390x, too.
Reviewed-by: Andrew Jones <drjones(a)redhat.com>
Reviewed-by: Cornelia Huck <cohuck(a)redhat.com>
Reviewed-by: David Hildenbrand <david(a)redhat.com>
Signed-off-by: Thomas Huth <thuth(a)redhat.com>
Message-Id: <20190523164309.13345-9-thuth(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Christian Borntraeger <borntraeger(a)de.ibm.com>
diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
index 6d0517ac18e5..0369f26ab96d 100644
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -1122,6 +1122,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_MIPS_FPU:
/* We don't handle systems with inconsistent cpu_has_fpu */
r = !!raw_cpu_has_fpu;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 3393b166817a..aa3a678711be 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -657,6 +657,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
#ifdef CONFIG_PPC_BOOK3S_64
case KVM_CAP_PPC_GET_SMMU_INFO:
r = 1;
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index e5e8eb29e68e..28ebd647784c 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -539,6 +539,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
break;
case KVM_CAP_NR_VCPUS:
case KVM_CAP_MAX_VCPUS:
+ case KVM_CAP_MAX_VCPU_ID:
r = KVM_S390_BSCA_CPU_SLOTS;
if (!kvm_s390_use_sca_entries())
r = KVM_MAX_VCPUS;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index acb179f78fdc..83aefd759846 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3122,6 +3122,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_PV_MMU: /* obsolete */
r = 0;
break;
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
index 90cedebaeb94..7eeebe5e9da2 100644
--- a/virt/kvm/arm/arm.c
+++ b/virt/kvm/arm/arm.c
@@ -224,6 +224,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS;
break;
+ case KVM_CAP_MAX_VCPU_ID:
+ r = KVM_MAX_VCPU_ID;
+ break;
case KVM_CAP_MSI_DEVID:
if (!kvm)
r = -EINVAL;
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 301089a462c4..ca54b09adf5b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3151,8 +3151,6 @@ static long kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
case KVM_CAP_MULTI_ADDRESS_SPACE:
return KVM_ADDRESS_SPACE_NUM;
#endif
- case KVM_CAP_MAX_VCPU_ID:
- return KVM_MAX_VCPU_ID;
case KVM_CAP_NR_MEMSLOTS:
return KVM_USER_MEM_SLOTS;
default:
I'm announcing the release of the 5.0.21 kernel.
All users of the 5.0 kernel series must upgrade.
Note, this is the LAST 5.0.y kernel to be released. It is now
end-of-life. Please move to the 5.1.y kernel tree at this point in
time.
The updated 5.0.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.0.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
drivers/crypto/vmx/ghash.c | 212 ++++++-----------
drivers/net/bonding/bond_main.c | 15 -
drivers/net/dsa/mv88e6xxx/chip.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 -
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 5
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11
drivers/net/ethernet/freescale/fec_main.c | 2
drivers/net/ethernet/marvell/mvneta.c | 4
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 +
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 6
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11
drivers/net/ethernet/realtek/r8169.c | 3
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 4
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3
drivers/net/phy/marvell10g.c | 13 +
drivers/net/usb/usbnet.c | 6
drivers/xen/xen-pciback/pciback_ops.c | 2
include/linux/siphash.h | 5
include/net/netns/ipv4.h | 2
include/uapi/linux/tipc_config.h | 10
net/core/dev.c | 2
net/core/skbuff.c | 6
net/ipv4/igmp.c | 47 ++-
net/ipv4/ip_output.c | 4
net/ipv4/route.c | 12
net/ipv6/ip6_output.c | 4
net/ipv6/output_core.c | 30 +-
net/ipv6/raw.c | 2
net/ipv6/route.c | 6
net/llc/llc_output.c | 2
net/sched/act_api.c | 3
net/tipc/core.c | 32 +-
net/tipc/subscr.h | 5
net/tipc/topsrv.c | 14 -
net/tls/tls_device.c | 9
41 files changed, 312 insertions(+), 244 deletions(-)
Andy Duan (1):
net: fec: fix the clk mismatch in failed_reset path
Antoine Tenart (1):
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
Chris Packham (1):
tipc: Avoid copying bytes beyond the supplied data
Daniel Axtens (1):
crypto: vmx - ghash: do nosimd fallback manually
David Ahern (1):
ipv6: Fix redirect with VRF
David S. Miller (1):
Revert "tipc: fix modprobe tipc failed after switch order of device registration"
Eric Dumazet (5):
inet: switch IP ID generator to siphash
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
llc: fix skb leak in llc_build_and_send_ui_pkt()
net-gro: fix use-after-free read in napi_gro_frags()
Greg Kroah-Hartman (1):
Linux 5.0.21
Heiner Kallweit (1):
r8169: fix MAC address being lost in PCI D3
Jakub Kicinski (2):
net/tls: fix state removal with feature flags off
net/tls: don't ignore netdev notifications if no TLS features
Jarod Wilson (1):
bonding/802.3ad: fix slave link initialization transition states
Jiri Pirko (1):
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
Jisheng Zhang (2):
net: mvneta: Fix err code path of probe
net: stmmac: fix reset gpio free missing
Junwei Hu (1):
tipc: fix modprobe tipc failed after switch order of device registration
Kloetzke Jan (1):
usbnet: fix kernel crash after disconnect
Konrad Rzeszutek Wilk (1):
xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
Michael Chan (3):
bnxt_en: Fix aggregation buffer leak under OOM condition.
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
bnxt_en: Reduce memory usage when running in kdump kernel.
Mike Manning (1):
ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
Parav Pandit (2):
net/mlx5: Avoid double free in fs init error unwinding path
net/mlx5: Allocate root ns memory using kzalloc to match kfree
Raju Rangoju (1):
cxgb4: offload VLAN flows regardless of VLAN ethtype
Rasmus Villemoes (1):
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
Russell King (1):
net: phy: marvell10g: report if the PHY fails to boot firmware
Saeed Mahameed (1):
net/mlx5e: Disable rxhash when CQE compress is enabled
Tan, Tee Min (1):
net: stmmac: fix ethtool flow control not able to get/set
Vishal Kulkarni (1):
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
Vlad Buslov (1):
net: sched: don't use tc_action->order during action dump
Weifeng Voon (1):
net: stmmac: dma channel control register need to be init first
Willem de Bruijn (1):
net: correct zerocopy refcnt with udp MSG_MORE
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 debd1c065d2037919a7da67baf55cc683fee09f0 Mon Sep 17 00:00:00 2001
From: Nikolay Borisov <nborisov(a)suse.com>
Date: Fri, 17 May 2019 10:44:25 +0300
Subject: [PATCH] btrfs: Ensure replaced device doesn't have pending chunk
allocation
Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update
operations during transaction commit") combined the way certain
operations are recoded in a transaction. As a result an ASSERT was added
in dev_replace_finish to ensure the new code works correctly.
Unfortunately I got reports that it's possible to trigger the assert,
meaning that during a device replace it's possible to have an unfinished
chunk allocation on the source device.
This is supposed to be prevented by the fact that a transaction is
committed before finishing the replace oepration and alter acquiring the
chunk mutex. This is not sufficient since by the time the transaction is
committed and the chunk mutex acquired it's possible to allocate a chunk
depending on the workload being executed on the replaced device. This
bug has been present ever since device replace was introduced but there
was never code which checks for it.
The correct way to fix is to ensure that there is no pending device
modification operation when the chunk mutex is acquire and if there is
repeat transaction commit. Unfortunately it's not possible to just
exclude the source device from btrfs_fs_devices::dev_alloc_list since
this causes ENOSPC to be hit in transaction commit.
Fixing that in another way would need to add special cases to handle the
last writes and forbid new ones. The looped transaction fix is more
obvious, and can be easily backported. The runtime of dev-replace is
long so there's no noticeable delay caused by that.
Reported-by: David Sterba <dsterba(a)suse.com>
Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Nikolay Borisov <nborisov(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/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
}
btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
- trans = btrfs_start_transaction(root, 0);
- if (IS_ERR(trans)) {
- mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
- return PTR_ERR(trans);
+ /*
+ * We have to use this loop approach because at this point src_device
+ * has to be available for transaction commit to complete, yet new
+ * chunks shouldn't be allocated on the device.
+ */
+ while (1) {
+ trans = btrfs_start_transaction(root, 0);
+ if (IS_ERR(trans)) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return PTR_ERR(trans);
+ }
+ ret = btrfs_commit_transaction(trans);
+ WARN_ON(ret);
+
+ /* Prevent write_all_supers() during the finishing procedure */
+ mutex_lock(&fs_info->fs_devices->device_list_mutex);
+ /* Prevent new chunks being allocated on the source device */
+ mutex_lock(&fs_info->chunk_mutex);
+
+ if (!list_empty(&src_device->post_commit_list)) {
+ mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+ mutex_unlock(&fs_info->chunk_mutex);
+ } else {
+ break;
+ }
}
- ret = btrfs_commit_transaction(trans);
- WARN_ON(ret);
- /* keep away write_all_supers() during the finishing procedure */
- mutex_lock(&fs_info->fs_devices->device_list_mutex);
- mutex_lock(&fs_info->chunk_mutex);
down_write(&dev_replace->rwsem);
dev_replace->replace_state =
scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
btrfs_device_set_disk_total_bytes(tgt_device,
src_device->disk_total_bytes);
btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
- ASSERT(list_empty(&src_device->post_commit_list));
tgt_device->commit_total_bytes = src_device->commit_total_bytes;
tgt_device->commit_bytes_used = src_device->bytes_used;
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 debd1c065d2037919a7da67baf55cc683fee09f0 Mon Sep 17 00:00:00 2001
From: Nikolay Borisov <nborisov(a)suse.com>
Date: Fri, 17 May 2019 10:44:25 +0300
Subject: [PATCH] btrfs: Ensure replaced device doesn't have pending chunk
allocation
Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update
operations during transaction commit") combined the way certain
operations are recoded in a transaction. As a result an ASSERT was added
in dev_replace_finish to ensure the new code works correctly.
Unfortunately I got reports that it's possible to trigger the assert,
meaning that during a device replace it's possible to have an unfinished
chunk allocation on the source device.
This is supposed to be prevented by the fact that a transaction is
committed before finishing the replace oepration and alter acquiring the
chunk mutex. This is not sufficient since by the time the transaction is
committed and the chunk mutex acquired it's possible to allocate a chunk
depending on the workload being executed on the replaced device. This
bug has been present ever since device replace was introduced but there
was never code which checks for it.
The correct way to fix is to ensure that there is no pending device
modification operation when the chunk mutex is acquire and if there is
repeat transaction commit. Unfortunately it's not possible to just
exclude the source device from btrfs_fs_devices::dev_alloc_list since
this causes ENOSPC to be hit in transaction commit.
Fixing that in another way would need to add special cases to handle the
last writes and forbid new ones. The looped transaction fix is more
obvious, and can be easily backported. The runtime of dev-replace is
long so there's no noticeable delay caused by that.
Reported-by: David Sterba <dsterba(a)suse.com>
Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Nikolay Borisov <nborisov(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/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
}
btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
- trans = btrfs_start_transaction(root, 0);
- if (IS_ERR(trans)) {
- mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
- return PTR_ERR(trans);
+ /*
+ * We have to use this loop approach because at this point src_device
+ * has to be available for transaction commit to complete, yet new
+ * chunks shouldn't be allocated on the device.
+ */
+ while (1) {
+ trans = btrfs_start_transaction(root, 0);
+ if (IS_ERR(trans)) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return PTR_ERR(trans);
+ }
+ ret = btrfs_commit_transaction(trans);
+ WARN_ON(ret);
+
+ /* Prevent write_all_supers() during the finishing procedure */
+ mutex_lock(&fs_info->fs_devices->device_list_mutex);
+ /* Prevent new chunks being allocated on the source device */
+ mutex_lock(&fs_info->chunk_mutex);
+
+ if (!list_empty(&src_device->post_commit_list)) {
+ mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+ mutex_unlock(&fs_info->chunk_mutex);
+ } else {
+ break;
+ }
}
- ret = btrfs_commit_transaction(trans);
- WARN_ON(ret);
- /* keep away write_all_supers() during the finishing procedure */
- mutex_lock(&fs_info->fs_devices->device_list_mutex);
- mutex_lock(&fs_info->chunk_mutex);
down_write(&dev_replace->rwsem);
dev_replace->replace_state =
scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
btrfs_device_set_disk_total_bytes(tgt_device,
src_device->disk_total_bytes);
btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
- ASSERT(list_empty(&src_device->post_commit_list));
tgt_device->commit_total_bytes = src_device->commit_total_bytes;
tgt_device->commit_bytes_used = src_device->bytes_used;
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 debd1c065d2037919a7da67baf55cc683fee09f0 Mon Sep 17 00:00:00 2001
From: Nikolay Borisov <nborisov(a)suse.com>
Date: Fri, 17 May 2019 10:44:25 +0300
Subject: [PATCH] btrfs: Ensure replaced device doesn't have pending chunk
allocation
Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update
operations during transaction commit") combined the way certain
operations are recoded in a transaction. As a result an ASSERT was added
in dev_replace_finish to ensure the new code works correctly.
Unfortunately I got reports that it's possible to trigger the assert,
meaning that during a device replace it's possible to have an unfinished
chunk allocation on the source device.
This is supposed to be prevented by the fact that a transaction is
committed before finishing the replace oepration and alter acquiring the
chunk mutex. This is not sufficient since by the time the transaction is
committed and the chunk mutex acquired it's possible to allocate a chunk
depending on the workload being executed on the replaced device. This
bug has been present ever since device replace was introduced but there
was never code which checks for it.
The correct way to fix is to ensure that there is no pending device
modification operation when the chunk mutex is acquire and if there is
repeat transaction commit. Unfortunately it's not possible to just
exclude the source device from btrfs_fs_devices::dev_alloc_list since
this causes ENOSPC to be hit in transaction commit.
Fixing that in another way would need to add special cases to handle the
last writes and forbid new ones. The looped transaction fix is more
obvious, and can be easily backported. The runtime of dev-replace is
long so there's no noticeable delay caused by that.
Reported-by: David Sterba <dsterba(a)suse.com>
Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Nikolay Borisov <nborisov(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/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
}
btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
- trans = btrfs_start_transaction(root, 0);
- if (IS_ERR(trans)) {
- mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
- return PTR_ERR(trans);
+ /*
+ * We have to use this loop approach because at this point src_device
+ * has to be available for transaction commit to complete, yet new
+ * chunks shouldn't be allocated on the device.
+ */
+ while (1) {
+ trans = btrfs_start_transaction(root, 0);
+ if (IS_ERR(trans)) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return PTR_ERR(trans);
+ }
+ ret = btrfs_commit_transaction(trans);
+ WARN_ON(ret);
+
+ /* Prevent write_all_supers() during the finishing procedure */
+ mutex_lock(&fs_info->fs_devices->device_list_mutex);
+ /* Prevent new chunks being allocated on the source device */
+ mutex_lock(&fs_info->chunk_mutex);
+
+ if (!list_empty(&src_device->post_commit_list)) {
+ mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+ mutex_unlock(&fs_info->chunk_mutex);
+ } else {
+ break;
+ }
}
- ret = btrfs_commit_transaction(trans);
- WARN_ON(ret);
- /* keep away write_all_supers() during the finishing procedure */
- mutex_lock(&fs_info->fs_devices->device_list_mutex);
- mutex_lock(&fs_info->chunk_mutex);
down_write(&dev_replace->rwsem);
dev_replace->replace_state =
scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
btrfs_device_set_disk_total_bytes(tgt_device,
src_device->disk_total_bytes);
btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
- ASSERT(list_empty(&src_device->post_commit_list));
tgt_device->commit_total_bytes = src_device->commit_total_bytes;
tgt_device->commit_bytes_used = src_device->bytes_used;
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 debd1c065d2037919a7da67baf55cc683fee09f0 Mon Sep 17 00:00:00 2001
From: Nikolay Borisov <nborisov(a)suse.com>
Date: Fri, 17 May 2019 10:44:25 +0300
Subject: [PATCH] btrfs: Ensure replaced device doesn't have pending chunk
allocation
Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update
operations during transaction commit") combined the way certain
operations are recoded in a transaction. As a result an ASSERT was added
in dev_replace_finish to ensure the new code works correctly.
Unfortunately I got reports that it's possible to trigger the assert,
meaning that during a device replace it's possible to have an unfinished
chunk allocation on the source device.
This is supposed to be prevented by the fact that a transaction is
committed before finishing the replace oepration and alter acquiring the
chunk mutex. This is not sufficient since by the time the transaction is
committed and the chunk mutex acquired it's possible to allocate a chunk
depending on the workload being executed on the replaced device. This
bug has been present ever since device replace was introduced but there
was never code which checks for it.
The correct way to fix is to ensure that there is no pending device
modification operation when the chunk mutex is acquire and if there is
repeat transaction commit. Unfortunately it's not possible to just
exclude the source device from btrfs_fs_devices::dev_alloc_list since
this causes ENOSPC to be hit in transaction commit.
Fixing that in another way would need to add special cases to handle the
last writes and forbid new ones. The looped transaction fix is more
obvious, and can be easily backported. The runtime of dev-replace is
long so there's no noticeable delay caused by that.
Reported-by: David Sterba <dsterba(a)suse.com>
Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Nikolay Borisov <nborisov(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/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
}
btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
- trans = btrfs_start_transaction(root, 0);
- if (IS_ERR(trans)) {
- mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
- return PTR_ERR(trans);
+ /*
+ * We have to use this loop approach because at this point src_device
+ * has to be available for transaction commit to complete, yet new
+ * chunks shouldn't be allocated on the device.
+ */
+ while (1) {
+ trans = btrfs_start_transaction(root, 0);
+ if (IS_ERR(trans)) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return PTR_ERR(trans);
+ }
+ ret = btrfs_commit_transaction(trans);
+ WARN_ON(ret);
+
+ /* Prevent write_all_supers() during the finishing procedure */
+ mutex_lock(&fs_info->fs_devices->device_list_mutex);
+ /* Prevent new chunks being allocated on the source device */
+ mutex_lock(&fs_info->chunk_mutex);
+
+ if (!list_empty(&src_device->post_commit_list)) {
+ mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+ mutex_unlock(&fs_info->chunk_mutex);
+ } else {
+ break;
+ }
}
- ret = btrfs_commit_transaction(trans);
- WARN_ON(ret);
- /* keep away write_all_supers() during the finishing procedure */
- mutex_lock(&fs_info->fs_devices->device_list_mutex);
- mutex_lock(&fs_info->chunk_mutex);
down_write(&dev_replace->rwsem);
dev_replace->replace_state =
scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
btrfs_device_set_disk_total_bytes(tgt_device,
src_device->disk_total_bytes);
btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
- ASSERT(list_empty(&src_device->post_commit_list));
tgt_device->commit_total_bytes = src_device->commit_total_bytes;
tgt_device->commit_bytes_used = src_device->bytes_used;
The patch below does not apply to the 5.1-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 debd1c065d2037919a7da67baf55cc683fee09f0 Mon Sep 17 00:00:00 2001
From: Nikolay Borisov <nborisov(a)suse.com>
Date: Fri, 17 May 2019 10:44:25 +0300
Subject: [PATCH] btrfs: Ensure replaced device doesn't have pending chunk
allocation
Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update
operations during transaction commit") combined the way certain
operations are recoded in a transaction. As a result an ASSERT was added
in dev_replace_finish to ensure the new code works correctly.
Unfortunately I got reports that it's possible to trigger the assert,
meaning that during a device replace it's possible to have an unfinished
chunk allocation on the source device.
This is supposed to be prevented by the fact that a transaction is
committed before finishing the replace oepration and alter acquiring the
chunk mutex. This is not sufficient since by the time the transaction is
committed and the chunk mutex acquired it's possible to allocate a chunk
depending on the workload being executed on the replaced device. This
bug has been present ever since device replace was introduced but there
was never code which checks for it.
The correct way to fix is to ensure that there is no pending device
modification operation when the chunk mutex is acquire and if there is
repeat transaction commit. Unfortunately it's not possible to just
exclude the source device from btrfs_fs_devices::dev_alloc_list since
this causes ENOSPC to be hit in transaction commit.
Fixing that in another way would need to add special cases to handle the
last writes and forbid new ones. The looped transaction fix is more
obvious, and can be easily backported. The runtime of dev-replace is
long so there's no noticeable delay caused by that.
Reported-by: David Sterba <dsterba(a)suse.com>
Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Nikolay Borisov <nborisov(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/dev-replace.c b/fs/btrfs/dev-replace.c
index 55c15f31d00d..ee0989c7e3a9 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -603,17 +603,33 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
}
btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
- trans = btrfs_start_transaction(root, 0);
- if (IS_ERR(trans)) {
- mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
- return PTR_ERR(trans);
+ /*
+ * We have to use this loop approach because at this point src_device
+ * has to be available for transaction commit to complete, yet new
+ * chunks shouldn't be allocated on the device.
+ */
+ while (1) {
+ trans = btrfs_start_transaction(root, 0);
+ if (IS_ERR(trans)) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return PTR_ERR(trans);
+ }
+ ret = btrfs_commit_transaction(trans);
+ WARN_ON(ret);
+
+ /* Prevent write_all_supers() during the finishing procedure */
+ mutex_lock(&fs_info->fs_devices->device_list_mutex);
+ /* Prevent new chunks being allocated on the source device */
+ mutex_lock(&fs_info->chunk_mutex);
+
+ if (!list_empty(&src_device->post_commit_list)) {
+ mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+ mutex_unlock(&fs_info->chunk_mutex);
+ } else {
+ break;
+ }
}
- ret = btrfs_commit_transaction(trans);
- WARN_ON(ret);
- /* keep away write_all_supers() during the finishing procedure */
- mutex_lock(&fs_info->fs_devices->device_list_mutex);
- mutex_lock(&fs_info->chunk_mutex);
down_write(&dev_replace->rwsem);
dev_replace->replace_state =
scrub_ret ? BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
@@ -662,7 +678,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
btrfs_device_set_disk_total_bytes(tgt_device,
src_device->disk_total_bytes);
btrfs_device_set_bytes_used(tgt_device, src_device->bytes_used);
- ASSERT(list_empty(&src_device->post_commit_list));
tgt_device->commit_total_bytes = src_device->commit_total_bytes;
tgt_device->commit_bytes_used = src_device->bytes_used;
The patch titled
Subject: mm: mmu_gather: remove __tlb_reset_range() for force flush
has been added to the -mm tree. Its filename is
mm-mmu_gather-remove-__tlb_reset_range-for-force-flush.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-mmu_gather-remove-__tlb_reset_r…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-mmu_gather-remove-__tlb_reset_r…
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: Yang Shi <yang.shi(a)linux.alibaba.com>
Subject: mm: mmu_gather: remove __tlb_reset_range() for force flush
A few new fields were added to mmu_gather to make TLB flush smarter for
huge page by telling what level of page table is changed.
__tlb_reset_range() is used to reset all these page table state to
unchanged, which is called by TLB flush for parallel mapping changes for
the same range under non-exclusive lock (i.e. read mmap_sem). Before
commit dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap"),
the syscalls (e.g. MADV_DONTNEED, MADV_FREE) which may update PTEs in
parallel don't remove page tables. But, the forementioned commit may do
munmap() under read mmap_sem and free page tables. This may result in
program hang on aarch64 reported by Jan Stancek. The problem could be
reproduced by his test program with slightly modified below.
---8<---
static int map_size = 4096;
static int num_iter = 500;
static long threads_total;
static void *distant_area;
void *map_write_unmap(void *ptr)
{
int *fd = ptr;
unsigned char *map_address;
int i, j = 0;
for (i = 0; i < num_iter; i++) {
map_address = mmap(distant_area, (size_t) map_size, PROT_WRITE | PROT_READ,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
if (map_address == MAP_FAILED) {
perror("mmap");
exit(1);
}
for (j = 0; j < map_size; j++)
map_address[j] = 'b';
if (munmap(map_address, map_size) == -1) {
perror("munmap");
exit(1);
}
}
return NULL;
}
void *dummy(void *ptr)
{
return NULL;
}
int main(void)
{
pthread_t thid[2];
/* hint for mmap in map_write_unmap() */
distant_area = mmap(0, DISTANT_MMAP_SIZE, PROT_WRITE | PROT_READ,
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
munmap(distant_area, (size_t)DISTANT_MMAP_SIZE);
distant_area += DISTANT_MMAP_SIZE / 2;
while (1) {
pthread_create(&thid[0], NULL, map_write_unmap, NULL);
pthread_create(&thid[1], NULL, dummy, NULL);
pthread_join(thid[0], NULL);
pthread_join(thid[1], NULL);
}
}
---8<---
The program may bring in parallel execution like below:
t1 t2
munmap(map_address)
downgrade_write(&mm->mmap_sem);
unmap_region()
tlb_gather_mmu()
inc_tlb_flush_pending(tlb->mm);
free_pgtables()
tlb->freed_tables = 1
tlb->cleared_pmds = 1
pthread_exit()
madvise(thread_stack, 8M, MADV_DONTNEED)
zap_page_range()
tlb_gather_mmu()
inc_tlb_flush_pending(tlb->mm);
tlb_finish_mmu()
if (mm_tlb_flush_nested(tlb->mm))
__tlb_reset_range()
__tlb_reset_range() would reset freed_tables and cleared_* bits, but this
may cause inconsistency for munmap() which do free page tables. Then it
may result in some architectures, e.g. aarch64, may not flush TLB
completely as expected to have stale TLB entries remained.
Use fullmm flush since it yields much better performance on aarch64 and
non-fullmm doesn't yields significant difference on x86.
The original proposed fix came from Jan Stancek who mainly debugged this
issue, I just wrapped up everything together.
Link: http://lkml.kernel.org/r/1558322252-113575-1-git-send-email-yang.shi@linux.…
Fixes: dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap")
Signed-off-by: Yang Shi <yang.shi(a)linux.alibaba.com>
Signed-off-by: Jan Stancek <jstancek(a)redhat.com>
Reported-by: Jan Stancek <jstancek(a)redhat.com>
Tested-by: Jan Stancek <jstancek(a)redhat.com>
Suggested-by: Will Deacon <will.deacon(a)arm.com>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Nick Piggin <npiggin(a)gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar(a)linux.ibm.com>
Cc: Nadav Amit <namit(a)vmware.com>
Cc: Minchan Kim <minchan(a)kernel.org>
Cc: Mel Gorman <mgorman(a)suse.de>
Cc: <stable(a)vger.kernel.org> [4.20+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/mmu_gather.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
--- a/mm/mmu_gather.c~mm-mmu_gather-remove-__tlb_reset_range-for-force-flush
+++ a/mm/mmu_gather.c
@@ -245,14 +245,28 @@ void tlb_finish_mmu(struct mmu_gather *t
{
/*
* If there are parallel threads are doing PTE changes on same range
- * under non-exclusive lock(e.g., mmap_sem read-side) but defer TLB
- * flush by batching, a thread has stable TLB entry can fail to flush
- * the TLB by observing pte_none|!pte_dirty, for example so flush TLB
- * forcefully if we detect parallel PTE batching threads.
+ * under non-exclusive lock (e.g., mmap_sem read-side) but defer TLB
+ * flush by batching, one thread may end up seeing inconsistent PTEs
+ * and result in having stale TLB entries. So flush TLB forcefully
+ * if we detect parallel PTE batching threads.
+ *
+ * However, some syscalls, e.g. munmap(), may free page tables, this
+ * needs force flush everything in the given range. Otherwise this
+ * may result in having stale TLB entries for some architectures,
+ * e.g. aarch64, that could specify flush what level TLB.
*/
if (mm_tlb_flush_nested(tlb->mm)) {
+ /*
+ * The aarch64 yields better performance with fullmm by
+ * avoiding multiple CPUs spamming TLBI messages at the
+ * same time.
+ *
+ * On x86 non-fullmm doesn't yield significant difference
+ * against fullmm.
+ */
+ tlb->fullmm = 1;
__tlb_reset_range(tlb);
- __tlb_adjust_range(tlb, start, end - start);
+ tlb->freed_tables = 1;
}
tlb_flush_mmu(tlb);
_
Patches currently in -mm which might be from yang.shi(a)linux.alibaba.com are
mm-mmu_gather-remove-__tlb_reset_range-for-force-flush.patch
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 6b1f72e5b82a5c2a4da4d1ebb8cc01913ddbea21 Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Mon, 20 May 2019 09:55:42 +0100
Subject: [PATCH] Btrfs: incremental send, fix file corruption when no-holes
feature is enabled
When using the no-holes feature, if we have a file with prealloc extents
with a start offset beyond the file's eof, doing an incremental send can
cause corruption of the file due to incorrect hole detection. Such case
requires that the prealloc extent(s) exist in both the parent and send
snapshots, and that a hole is punched into the file that covers all its
extents that do not cross the eof boundary.
Example reproducer:
$ mkfs.btrfs -f -O no-holes /dev/sdb
$ mount /dev/sdb /mnt/sdb
$ xfs_io -f -c "pwrite -S 0xab 0 500K" /mnt/sdb/foobar
$ xfs_io -c "falloc -k 1200K 800K" /mnt/sdb/foobar
$ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/base
$ btrfs send -f /tmp/base.snap /mnt/sdb/base
$ xfs_io -c "fpunch 0 500K" /mnt/sdb/foobar
$ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/incr
$ btrfs send -p /mnt/sdb/base -f /tmp/incr.snap /mnt/sdb/incr
$ md5sum /mnt/sdb/incr/foobar
816df6f64deba63b029ca19d880ee10a /mnt/sdb/incr/foobar
$ mkfs.btrfs -f /dev/sdc
$ mount /dev/sdc /mnt/sdc
$ btrfs receive -f /tmp/base.snap /mnt/sdc
$ btrfs receive -f /tmp/incr.snap /mnt/sdc
$ md5sum /mnt/sdc/incr/foobar
cf2ef71f4a9e90c2f6013ba3b2257ed2 /mnt/sdc/incr/foobar
--> Different checksum, because the prealloc extent beyond the
file's eof confused the hole detection code and it assumed
a hole starting at offset 0 and ending at the offset of the
prealloc extent (1200Kb) instead of ending at the offset
500Kb (the file's size).
Fix this by ensuring we never cross the file's size when issuing the
write operations for a hole.
Fixes: 16e7549f045d33 ("Btrfs: incompatible format change to remove hole extents")
CC: stable(a)vger.kernel.org # 3.14+
Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index dd38dfe174df..ca30b1f06e2d 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4999,6 +4999,12 @@ static int send_hole(struct send_ctx *sctx, u64 end)
if (offset >= sctx->cur_inode_size)
return 0;
+ /*
+ * Don't go beyond the inode's i_size due to prealloc extents that start
+ * after the i_size.
+ */
+ end = min_t(u64, end, sctx->cur_inode_size);
+
if (sctx->flags & BTRFS_SEND_FLAG_NO_FILE_DATA)
return send_update_extent(sctx, offset, end - offset);
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 6b1f72e5b82a5c2a4da4d1ebb8cc01913ddbea21 Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Mon, 20 May 2019 09:55:42 +0100
Subject: [PATCH] Btrfs: incremental send, fix file corruption when no-holes
feature is enabled
When using the no-holes feature, if we have a file with prealloc extents
with a start offset beyond the file's eof, doing an incremental send can
cause corruption of the file due to incorrect hole detection. Such case
requires that the prealloc extent(s) exist in both the parent and send
snapshots, and that a hole is punched into the file that covers all its
extents that do not cross the eof boundary.
Example reproducer:
$ mkfs.btrfs -f -O no-holes /dev/sdb
$ mount /dev/sdb /mnt/sdb
$ xfs_io -f -c "pwrite -S 0xab 0 500K" /mnt/sdb/foobar
$ xfs_io -c "falloc -k 1200K 800K" /mnt/sdb/foobar
$ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/base
$ btrfs send -f /tmp/base.snap /mnt/sdb/base
$ xfs_io -c "fpunch 0 500K" /mnt/sdb/foobar
$ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/incr
$ btrfs send -p /mnt/sdb/base -f /tmp/incr.snap /mnt/sdb/incr
$ md5sum /mnt/sdb/incr/foobar
816df6f64deba63b029ca19d880ee10a /mnt/sdb/incr/foobar
$ mkfs.btrfs -f /dev/sdc
$ mount /dev/sdc /mnt/sdc
$ btrfs receive -f /tmp/base.snap /mnt/sdc
$ btrfs receive -f /tmp/incr.snap /mnt/sdc
$ md5sum /mnt/sdc/incr/foobar
cf2ef71f4a9e90c2f6013ba3b2257ed2 /mnt/sdc/incr/foobar
--> Different checksum, because the prealloc extent beyond the
file's eof confused the hole detection code and it assumed
a hole starting at offset 0 and ending at the offset of the
prealloc extent (1200Kb) instead of ending at the offset
500Kb (the file's size).
Fix this by ensuring we never cross the file's size when issuing the
write operations for a hole.
Fixes: 16e7549f045d33 ("Btrfs: incompatible format change to remove hole extents")
CC: stable(a)vger.kernel.org # 3.14+
Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index dd38dfe174df..ca30b1f06e2d 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4999,6 +4999,12 @@ static int send_hole(struct send_ctx *sctx, u64 end)
if (offset >= sctx->cur_inode_size)
return 0;
+ /*
+ * Don't go beyond the inode's i_size due to prealloc extents that start
+ * after the i_size.
+ */
+ end = min_t(u64, end, sctx->cur_inode_size);
+
if (sctx->flags & BTRFS_SEND_FLAG_NO_FILE_DATA)
return send_update_extent(sctx, offset, end - offset);
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 60d9f50308e5df19bc18c2fefab0eba4a843900a Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Thu, 16 May 2019 15:48:55 +0100
Subject: [PATCH] Btrfs: fix fsync not persisting changed attributes of a
directory
While logging an inode we follow its ancestors and for each one we mark
it as logged in the current transaction, even if we have not logged it.
As a consequence if we change an attribute of an ancestor, such as the
UID or GID for example, and then explicitly fsync it, we end up not
logging the inode at all despite returning success to user space, which
results in the attribute being lost if a power failure happens after
the fsync.
Sample reproducer:
$ mkfs.btrfs -f /dev/sdb
$ mount /dev/sdb /mnt
$ mkdir /mnt/dir
$ chown 6007:6007 /mnt/dir
$ sync
$ chown 9003:9003 /mnt/dir
$ touch /mnt/dir/file
$ xfs_io -c fsync /mnt/dir/file
# fsync our directory after fsync'ing the new file, should persist the
# new values for the uid and gid.
$ xfs_io -c fsync /mnt/dir
<power failure>
$ mount /dev/sdb /mnt
$ stat -c %u:%g /mnt/dir
6007:6007
--> should be 9003:9003, the uid and gid were not persisted, despite
the explicit fsync on the directory prior to the power failure
Fix this by not updating the logged_trans field of ancestor inodes when
logging an inode, since we have not logged them. Let only future calls to
btrfs_log_inode() to mark inodes as logged.
This could be triggered by my recent fsync fuzz tester for fstests, for
which an fstests patch exists titled "fstests: generic, fsync fuzz tester
with fsstress".
Fixes: 12fcfd22fe5b ("Btrfs: tree logging unlink/rename fixes")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Filipe Manana <fdmanana(a)suse.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 6c47f6ed3e94..de729acee738 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -5478,7 +5478,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
{
int ret = 0;
struct dentry *old_parent = NULL;
- struct btrfs_inode *orig_inode = inode;
/*
* for regular files, if its inode is already on disk, we don't
@@ -5498,16 +5497,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
}
while (1) {
- /*
- * If we are logging a directory then we start with our inode,
- * not our parent's inode, so we need to skip setting the
- * logged_trans so that further down in the log code we don't
- * think this inode has already been logged.
- */
- if (inode != orig_inode)
- inode->logged_trans = trans->transid;
- smp_mb();
-
if (btrfs_must_commit_transaction(trans, inode)) {
ret = 1;
break;
@@ -6384,7 +6373,6 @@ void btrfs_record_unlink_dir(struct btrfs_trans_handle *trans,
* if this directory was already logged any new
* names for this file/dir will get recorded
*/
- smp_mb();
if (dir->logged_trans == trans->transid)
return;
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 60d9f50308e5df19bc18c2fefab0eba4a843900a Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Thu, 16 May 2019 15:48:55 +0100
Subject: [PATCH] Btrfs: fix fsync not persisting changed attributes of a
directory
While logging an inode we follow its ancestors and for each one we mark
it as logged in the current transaction, even if we have not logged it.
As a consequence if we change an attribute of an ancestor, such as the
UID or GID for example, and then explicitly fsync it, we end up not
logging the inode at all despite returning success to user space, which
results in the attribute being lost if a power failure happens after
the fsync.
Sample reproducer:
$ mkfs.btrfs -f /dev/sdb
$ mount /dev/sdb /mnt
$ mkdir /mnt/dir
$ chown 6007:6007 /mnt/dir
$ sync
$ chown 9003:9003 /mnt/dir
$ touch /mnt/dir/file
$ xfs_io -c fsync /mnt/dir/file
# fsync our directory after fsync'ing the new file, should persist the
# new values for the uid and gid.
$ xfs_io -c fsync /mnt/dir
<power failure>
$ mount /dev/sdb /mnt
$ stat -c %u:%g /mnt/dir
6007:6007
--> should be 9003:9003, the uid and gid were not persisted, despite
the explicit fsync on the directory prior to the power failure
Fix this by not updating the logged_trans field of ancestor inodes when
logging an inode, since we have not logged them. Let only future calls to
btrfs_log_inode() to mark inodes as logged.
This could be triggered by my recent fsync fuzz tester for fstests, for
which an fstests patch exists titled "fstests: generic, fsync fuzz tester
with fsstress".
Fixes: 12fcfd22fe5b ("Btrfs: tree logging unlink/rename fixes")
CC: stable(a)vger.kernel.org # 4.4+
Signed-off-by: Filipe Manana <fdmanana(a)suse.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 6c47f6ed3e94..de729acee738 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -5478,7 +5478,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
{
int ret = 0;
struct dentry *old_parent = NULL;
- struct btrfs_inode *orig_inode = inode;
/*
* for regular files, if its inode is already on disk, we don't
@@ -5498,16 +5497,6 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
}
while (1) {
- /*
- * If we are logging a directory then we start with our inode,
- * not our parent's inode, so we need to skip setting the
- * logged_trans so that further down in the log code we don't
- * think this inode has already been logged.
- */
- if (inode != orig_inode)
- inode->logged_trans = trans->transid;
- smp_mb();
-
if (btrfs_must_commit_transaction(trans, inode)) {
ret = 1;
break;
@@ -6384,7 +6373,6 @@ void btrfs_record_unlink_dir(struct btrfs_trans_handle *trans,
* if this directory was already logged any new
* names for this file/dir will get recorded
*/
- smp_mb();
if (dir->logged_trans == trans->transid)
return;
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 5338e43abbab13791144d37fd8846847062351c6 Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Wed, 15 May 2019 16:02:47 +0100
Subject: [PATCH] Btrfs: fix wrong ctime and mtime of a directory after log
replay
When replaying a log that contains a new file or directory name that needs
to be added to its parent directory, we end up updating the mtime and the
ctime of the parent directory to the current time after we have set their
values to the correct ones (set at fsync time), efectivelly losing them.
Sample reproducer:
$ mkfs.btrfs -f /dev/sdb
$ mount /dev/sdb /mnt
$ mkdir /mnt/dir
$ touch /mnt/dir/file
# fsync of the directory is optional, not needed
$ xfs_io -c fsync /mnt/dir
$ xfs_io -c fsync /mnt/dir/file
$ stat -c %Y /mnt/dir
1557856079
<power failure>
$ sleep 3
$ mount /dev/sdb /mnt
$ stat -c %Y /mnt/dir
1557856082
--> should have been 1557856079, the mtime is updated to the current
time when replaying the log
Fix this by not updating the mtime and ctime to the current time at
btrfs_add_link() when we are replaying a log tree.
This could be triggered by my recent fsync fuzz tester for fstests, for
which an fstests patch exists titled "fstests: generic, fsync fuzz tester
with fsstress".
Fixes: e02119d5a7b43 ("Btrfs: Add a write ahead tree log to optimize synchronous operations")
CC: stable(a)vger.kernel.org # 4.4+
Reviewed-by: Nikolay Borisov <nborisov(a)suse.com>
Signed-off-by: Filipe Manana <fdmanana(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 b6d549c993f6..6bebc0ca751d 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6433,8 +6433,18 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
btrfs_i_size_write(parent_inode, parent_inode->vfs_inode.i_size +
name_len * 2);
inode_inc_iversion(&parent_inode->vfs_inode);
- parent_inode->vfs_inode.i_mtime = parent_inode->vfs_inode.i_ctime =
- current_time(&parent_inode->vfs_inode);
+ /*
+ * If we are replaying a log tree, we do not want to update the mtime
+ * and ctime of the parent directory with the current time, since the
+ * log replay procedure is responsible for setting them to their correct
+ * values (the ones it had when the fsync was done).
+ */
+ if (!test_bit(BTRFS_FS_LOG_RECOVERING, &root->fs_info->flags)) {
+ struct timespec64 now = current_time(&parent_inode->vfs_inode);
+
+ parent_inode->vfs_inode.i_mtime = now;
+ parent_inode->vfs_inode.i_ctime = now;
+ }
ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode);
if (ret)
btrfs_abort_transaction(trans, 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 5338e43abbab13791144d37fd8846847062351c6 Mon Sep 17 00:00:00 2001
From: Filipe Manana <fdmanana(a)suse.com>
Date: Wed, 15 May 2019 16:02:47 +0100
Subject: [PATCH] Btrfs: fix wrong ctime and mtime of a directory after log
replay
When replaying a log that contains a new file or directory name that needs
to be added to its parent directory, we end up updating the mtime and the
ctime of the parent directory to the current time after we have set their
values to the correct ones (set at fsync time), efectivelly losing them.
Sample reproducer:
$ mkfs.btrfs -f /dev/sdb
$ mount /dev/sdb /mnt
$ mkdir /mnt/dir
$ touch /mnt/dir/file
# fsync of the directory is optional, not needed
$ xfs_io -c fsync /mnt/dir
$ xfs_io -c fsync /mnt/dir/file
$ stat -c %Y /mnt/dir
1557856079
<power failure>
$ sleep 3
$ mount /dev/sdb /mnt
$ stat -c %Y /mnt/dir
1557856082
--> should have been 1557856079, the mtime is updated to the current
time when replaying the log
Fix this by not updating the mtime and ctime to the current time at
btrfs_add_link() when we are replaying a log tree.
This could be triggered by my recent fsync fuzz tester for fstests, for
which an fstests patch exists titled "fstests: generic, fsync fuzz tester
with fsstress".
Fixes: e02119d5a7b43 ("Btrfs: Add a write ahead tree log to optimize synchronous operations")
CC: stable(a)vger.kernel.org # 4.4+
Reviewed-by: Nikolay Borisov <nborisov(a)suse.com>
Signed-off-by: Filipe Manana <fdmanana(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 b6d549c993f6..6bebc0ca751d 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6433,8 +6433,18 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
btrfs_i_size_write(parent_inode, parent_inode->vfs_inode.i_size +
name_len * 2);
inode_inc_iversion(&parent_inode->vfs_inode);
- parent_inode->vfs_inode.i_mtime = parent_inode->vfs_inode.i_ctime =
- current_time(&parent_inode->vfs_inode);
+ /*
+ * If we are replaying a log tree, we do not want to update the mtime
+ * and ctime of the parent directory with the current time, since the
+ * log replay procedure is responsible for setting them to their correct
+ * values (the ones it had when the fsync was done).
+ */
+ if (!test_bit(BTRFS_FS_LOG_RECOVERING, &root->fs_info->flags)) {
+ struct timespec64 now = current_time(&parent_inode->vfs_inode);
+
+ parent_inode->vfs_inode.i_mtime = now;
+ parent_inode->vfs_inode.i_ctime = now;
+ }
ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode);
if (ret)
btrfs_abort_transaction(trans, ret);
I'm announcing the release of the 5.1.7 kernel.
All users of the 5.1 kernel series must upgrade.
The updated 5.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.1.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
drivers/crypto/vmx/ghash.c | 212 ++++++-----------
drivers/net/bonding/bond_main.c | 15 -
drivers/net/dsa/mv88e6xxx/chip.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 -
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 5
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11
drivers/net/ethernet/freescale/fec_main.c | 2
drivers/net/ethernet/marvell/mvneta.c | 4
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 +
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 6
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11
drivers/net/ethernet/realtek/r8169.c | 3
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 4
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3
drivers/net/phy/marvell10g.c | 13 +
drivers/net/usb/usbnet.c | 6
include/linux/siphash.h | 5
include/net/netns/ipv4.h | 2
include/uapi/linux/tipc_config.h | 10
net/core/dev.c | 2
net/core/ethtool.c | 8
net/core/skbuff.c | 6
net/ipv4/igmp.c | 47 ++-
net/ipv4/ip_output.c | 4
net/ipv4/route.c | 12
net/ipv6/ip6_output.c | 4
net/ipv6/output_core.c | 30 +-
net/ipv6/raw.c | 2
net/ipv6/route.c | 6
net/llc/llc_output.c | 2
net/sched/act_api.c | 3
net/tipc/core.c | 32 +-
net/tipc/subscr.h | 5
net/tipc/topsrv.c | 14 -
net/tls/tls_device.c | 9
net/tls/tls_sw.c | 19 -
tools/testing/selftests/net/tls.c | 34 ++
43 files changed, 359 insertions(+), 256 deletions(-)
Andy Duan (1):
net: fec: fix the clk mismatch in failed_reset path
Antoine Tenart (1):
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
Chris Packham (1):
tipc: Avoid copying bytes beyond the supplied data
Daniel Axtens (1):
crypto: vmx - ghash: do nosimd fallback manually
David Ahern (1):
ipv6: Fix redirect with VRF
David S. Miller (1):
Revert "tipc: fix modprobe tipc failed after switch order of device registration"
Eric Dumazet (5):
inet: switch IP ID generator to siphash
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
llc: fix skb leak in llc_build_and_send_ui_pkt()
net-gro: fix use-after-free read in napi_gro_frags()
Greg Kroah-Hartman (1):
Linux 5.1.7
Heiner Kallweit (1):
r8169: fix MAC address being lost in PCI D3
Jakub Kicinski (6):
net/tls: fix lowat calculation if some data came from previous record
selftests/tls: test for lowat overshoot with multiple records
net/tls: fix no wakeup on partial reads
selftests/tls: add test for sleeping even though there is data
net/tls: fix state removal with feature flags off
net/tls: don't ignore netdev notifications if no TLS features
Jarod Wilson (1):
bonding/802.3ad: fix slave link initialization transition states
Jiri Pirko (1):
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
Jisheng Zhang (2):
net: mvneta: Fix err code path of probe
net: stmmac: fix reset gpio free missing
Junwei Hu (1):
tipc: fix modprobe tipc failed after switch order of device registration
Kloetzke Jan (1):
usbnet: fix kernel crash after disconnect
Maxime Chevallier (1):
ethtool: Check for vlan etype or vlan tci when parsing flow_rule
Michael Chan (3):
bnxt_en: Fix aggregation buffer leak under OOM condition.
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
bnxt_en: Reduce memory usage when running in kdump kernel.
Mike Manning (1):
ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
Parav Pandit (2):
net/mlx5: Avoid double free in fs init error unwinding path
net/mlx5: Allocate root ns memory using kzalloc to match kfree
Raju Rangoju (1):
cxgb4: offload VLAN flows regardless of VLAN ethtype
Rasmus Villemoes (1):
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
Russell King (1):
net: phy: marvell10g: report if the PHY fails to boot firmware
Saeed Mahameed (1):
net/mlx5e: Disable rxhash when CQE compress is enabled
Tan, Tee Min (1):
net: stmmac: fix ethtool flow control not able to get/set
Vishal Kulkarni (1):
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
Vlad Buslov (1):
net: sched: don't use tc_action->order during action dump
Weifeng Voon (1):
net: stmmac: dma channel control register need to be init first
Willem de Bruijn (1):
net: correct zerocopy refcnt with udp MSG_MORE
Hi Sasha,
On Wed, May 29, 2019 at 07:52:27PM -0400, Sasha Levin wrote:
> brcmfmac: fix Oops when bringing up interface during USB disconnect
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable(a)vger.kernel.org> know about it.
I see you taken the brcmfmac fixes to stable, if I recall correctly the
following commit was also pretty relevant and I don't think it was picked-up.
It's in the upstream:
commit 5cdb0ef6144f47440850553579aa923c20a63f23
Author: Piotr Figiel <p.figiel(a)camlintechnologies.com>
Date: Mon Mar 4 15:42:52 2019 +0000
brcmfmac: fix NULL pointer derefence during USB disconnect
Maybe you could consider also taking this.
Best regards,
--
Piotr Figiel
Changes since v7 [1]:
- Make subsection helpers pfn based rather than physical-address based
(Oscar and Pavel)
- Make subsection bitmap definition scalable for different section and
sub-section sizes across architectures. As a result:
unsigned long map_active
...is converted to:
DECLARE_BITMAP(subsection_map, SUBSECTIONS_PER_SECTION)
...and the helpers are renamed with a 'subsection' prefix. (Pavel)
- New in this version is a touch of arch/powerpc/include/asm/sparsemem.h
in "[PATCH v8 01/12] mm/sparsemem: Introduce struct mem_section_usage"
to define ARCH_SUBSECTION_SHIFT.
- Drop "mm/sparsemem: Introduce common definitions for the size and mask
of a section" in favor of Robin's "mm/memremap: Rename and consolidate
SECTION_SIZE" (Pavel)
- Collect some more Reviewed-by tags. Patches that still lack review
tags: 1, 3, 9 - 12
[1]: https://lore.kernel.org/lkml/155677652226.2336373.8700273400832001094.stgit…
---
[merge logistics]
Hi Andrew,
These are too late for v5.2, I'm posting this v8 during the merge window
to maintain the review momentum.
---
[cover letter]
The memory hotplug section is an arbitrary / convenient unit for memory
hotplug. 'Section-size' units have bled into the user interface
('memblock' sysfs) and can not be changed without breaking existing
userspace. The section-size constraint, while mostly benign for typical
memory hotplug, has and continues to wreak havoc with 'device-memory'
use cases, persistent memory (pmem) in particular. Recall that pmem uses
devm_memremap_pages(), and subsequently arch_add_memory(), to allocate a
'struct page' memmap for pmem. However, it does not use the 'bottom
half' of memory hotplug, i.e. never marks pmem pages online and never
exposes the userspace memblock interface for pmem. This leaves an
opening to redress the section-size constraint.
To date, the libnvdimm subsystem has attempted to inject padding to
satisfy the internal constraints of arch_add_memory(). Beyond
complicating the code, leading to bugs [2], wasting memory, and limiting
configuration flexibility, the padding hack is broken when the platform
changes this physical memory alignment of pmem from one boot to the
next. Device failure (intermittent or permanent) and physical
reconfiguration are events that can cause the platform firmware to
change the physical placement of pmem on a subsequent boot, and device
failure is an everyday event in a data-center.
It turns out that sections are only a hard requirement of the
user-facing interface for memory hotplug and with a bit more
infrastructure sub-section arch_add_memory() support can be added for
kernel internal usages like devm_memremap_pages(). Here is an analysis
of the current design assumptions in the current code and how they are
addressed in the new implementation:
Current design assumptions:
- Sections that describe boot memory (early sections) are never
unplugged / removed.
- pfn_valid(), in the CONFIG_SPARSEMEM_VMEMMAP=y, case devolves to a
valid_section() check
- __add_pages() and helper routines assume all operations occur in
PAGES_PER_SECTION units.
- The memblock sysfs interface only comprehends full sections
New design assumptions:
- Sections are instrumented with a sub-section bitmask to track (on x86)
individual 2MB sub-divisions of a 128MB section.
- Partially populated early sections can be extended with additional
sub-sections, and those sub-sections can be removed with
arch_remove_memory(). With this in place we no longer lose usable memory
capacity to padding.
- pfn_valid() is updated to look deeper than valid_section() to also check the
active-sub-section mask. This indication is in the same cacheline as
the valid_section() so the performance impact is expected to be
negligible. So far the lkp robot has not reported any regressions.
- Outside of the core vmemmap population routines which are replaced,
other helper routines like shrink_{zone,pgdat}_span() are updated to
handle the smaller granularity. Core memory hotplug routines that deal
with online memory are not touched.
- The existing memblock sysfs user api guarantees / assumptions are
not touched since this capability is limited to !online
!memblock-sysfs-accessible sections.
Meanwhile the issue reports continue to roll in from users that do not
understand when and how the 128MB constraint will bite them. The current
implementation relied on being able to support at least one misaligned
namespace, but that immediately falls over on any moderately complex
namespace creation attempt. Beyond the initial problem of 'System RAM'
colliding with pmem, and the unsolvable problem of physical alignment
changes, Linux is now being exposed to platforms that collide pmem
ranges with other pmem ranges by default [3]. In short,
devm_memremap_pages() has pushed the venerable section-size constraint
past the breaking point, and the simplicity of section-aligned
arch_add_memory() is no longer tenable.
These patches are exposed to the kbuild robot on my libnvdimm-pending
branch [4], and a preview of the unit test for this functionality is
available on the 'subsection-pending' branch of ndctl [5].
[2]: https://lore.kernel.org/r/155000671719.348031.2347363160141119237.stgit@dwi…
[3]: https://github.com/pmem/ndctl/issues/76
[4]: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/log/?h=libn…
[5]: https://github.com/pmem/ndctl/commit/7c59b4867e1c
---
Dan Williams (11):
mm/sparsemem: Introduce struct mem_section_usage
mm/sparsemem: Add helpers track active portions of a section at boot
mm/hotplug: Prepare shrink_{zone,pgdat}_span for sub-section removal
mm/sparsemem: Convert kmalloc_section_memmap() to populate_section_memmap()
mm/hotplug: Kill is_dev_zone() usage in __remove_pages()
mm: Kill is_dev_zone() helper
mm/sparsemem: Prepare for sub-section ranges
mm/sparsemem: Support sub-section hotplug
mm/devm_memremap_pages: Enable sub-section remap
libnvdimm/pfn: Fix fsdax-mode namespace info-block zero-fields
libnvdimm/pfn: Stop padding pmem namespaces to section alignment
Robin Murphy (1):
mm/memremap: Rename and consolidate SECTION_SIZE
arch/powerpc/include/asm/sparsemem.h | 3
arch/x86/mm/init_64.c | 4
drivers/nvdimm/dax_devs.c | 2
drivers/nvdimm/pfn.h | 15 -
drivers/nvdimm/pfn_devs.c | 95 +++------
include/linux/memory_hotplug.h | 7 -
include/linux/mm.h | 4
include/linux/mmzone.h | 93 +++++++--
kernel/memremap.c | 63 ++----
mm/hmm.c | 2
mm/memory_hotplug.c | 172 +++++++++-------
mm/page_alloc.c | 8 -
mm/sparse-vmemmap.c | 21 +-
mm/sparse.c | 369 +++++++++++++++++++++++-----------
14 files changed, 511 insertions(+), 347 deletions(-)
Processing SDIO interrupts while dw_mmc is suspended (or partly
suspended) seems like a bad idea. We really don't want to be
processing them until we've gotten ourselves fully powered up.
You might be wondering how it's even possible to become suspended when
an SDIO interrupt is active. As can be seen in
dw_mci_enable_sdio_irq(), we explicitly keep dw_mmc out of runtime
suspend when the SDIO interrupt is enabled. ...but even though we
stop normal runtime suspend transitions when SDIO interrupts are
enabled, the dw_mci_runtime_suspend() can still get called for a full
system suspend.
Let's handle all this by explicitly masking SDIO interrupts in the
suspend call and unmasking them later in the resume call. To do this
cleanly I'll keep track of whether the client requested that SDIO
interrupts be enabled so that we can reliably restore them regardless
of whether we're masking them for one reason or another.
It should be noted that if dw_mci_enable_sdio_irq() is never called
(for instance, if we don't have an SDIO card plugged in) that
"client_sdio_enb" will always be false. In those cases this patch
adds a tiny bit of overhead to suspend/resume (a spinlock and a
read/write of INTMASK) but other than that is a no-op. The
SDMMC_INT_SDIO bit should always be clear and clearing it again won't
hurt.
Without this fix it can be seen that rk3288-veyron Chromebooks with
Marvell WiFi would sometimes fail to resume WiFi even after picking my
recent mwifiex patch [1]. Specifically you'd see messages like this:
mwifiex_sdio mmc1:0001:1: Firmware wakeup failed
mwifiex_sdio mmc1:0001:1: PREP_CMD: FW in reset state
...and tracing through the resume code in the failing cases showed
that we were processing a SDIO interrupt really early in the resume
call.
NOTE: downstream in Chrome OS 3.14 and 3.18 kernels (both of which
support the Marvell SDIO WiFi card) we had a patch ("CHROMIUM: sdio:
Defer SDIO interrupt handling until after resume") [2]. Presumably
this is the same problem that was solved by that patch.
[1] https://lkml.kernel.org/r/20190404040106.40519-1-dianders@chromium.org
[2] https://crrev.com/c/230765
Cc: <stable(a)vger.kernel.org> # 4.14.x
Signed-off-by: Douglas Anderson <dianders(a)chromium.org>
---
I didn't put any "Fixes" tag here, but presumably this could be
backported to whichever kernels folks found it useful for. I have at
least confirmed that kernels v4.14 and v4.19 (as well as v5.1-rc2)
show the problem. It is very easy to pick this to v4.19 and it
definitely fixes the problem there.
I haven't spent the time to pick this to 4.14 myself, but presumably
it wouldn't be too hard to backport this as far as v4.13 since that
contains commit 32dba73772f8 ("mmc: dw_mmc: Convert to use
MMC_CAP2_SDIO_IRQ_NOTHREAD for SDIO IRQs"). Prior to that it might
make sense for anyone experiencing this problem to just pick the old
CHROMIUM patch to fix them.
Changes in v2:
- Suggested 4.14+ in the stable tag (Sasha-bot)
- Extra note that this is a noop on non-SDIO (Shawn / Emil)
- Make boolean logic cleaner as per https://crrev.com/c/1586207/1
- Hopefully clear comments as per https://crrev.com/c/1586207/1
drivers/mmc/host/dw_mmc.c | 27 +++++++++++++++++++++++----
drivers/mmc/host/dw_mmc.h | 3 +++
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 80dc2fd6576c..480067b87a94 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1664,7 +1664,8 @@ static void dw_mci_init_card(struct mmc_host *mmc, struct mmc_card *card)
}
}
-static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, int enb)
+static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, bool enb,
+ bool client_requested)
{
struct dw_mci *host = slot->host;
unsigned long irqflags;
@@ -1672,6 +1673,20 @@ static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, int enb)
spin_lock_irqsave(&host->irq_lock, irqflags);
+ /*
+ * If we're being called directly from dw_mci_enable_sdio_irq()
+ * (which means that the client driver actually wants to enable or
+ * disable interrupts) then save the request. Otherwise this
+ * wasn't directly requested by the client and we should logically
+ * AND it with the client request since we want to disable if
+ * _either_ the client disabled OR we have some other reason to
+ * disable temporarily.
+ */
+ if (client_requested)
+ host->client_sdio_enb = enb;
+ else
+ enb &= host->client_sdio_enb;
+
/* Enable/disable Slot Specific SDIO interrupt */
int_mask = mci_readl(host, INTMASK);
if (enb)
@@ -1688,7 +1703,7 @@ static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb)
struct dw_mci_slot *slot = mmc_priv(mmc);
struct dw_mci *host = slot->host;
- __dw_mci_enable_sdio_irq(slot, enb);
+ __dw_mci_enable_sdio_irq(slot, enb, true);
/* Avoid runtime suspending the device when SDIO IRQ is enabled */
if (enb)
@@ -1701,7 +1716,7 @@ static void dw_mci_ack_sdio_irq(struct mmc_host *mmc)
{
struct dw_mci_slot *slot = mmc_priv(mmc);
- __dw_mci_enable_sdio_irq(slot, 1);
+ __dw_mci_enable_sdio_irq(slot, true, false);
}
static int dw_mci_execute_tuning(struct mmc_host *mmc, u32 opcode)
@@ -2734,7 +2749,7 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
if (pending & SDMMC_INT_SDIO(slot->sdio_id)) {
mci_writel(host, RINTSTS,
SDMMC_INT_SDIO(slot->sdio_id));
- __dw_mci_enable_sdio_irq(slot, 0);
+ __dw_mci_enable_sdio_irq(slot, false, false);
sdio_signal_irq(slot->mmc);
}
@@ -3424,6 +3439,8 @@ int dw_mci_runtime_suspend(struct device *dev)
{
struct dw_mci *host = dev_get_drvdata(dev);
+ __dw_mci_enable_sdio_irq(host->slot, false, false);
+
if (host->use_dma && host->dma_ops->exit)
host->dma_ops->exit(host);
@@ -3490,6 +3507,8 @@ int dw_mci_runtime_resume(struct device *dev)
/* Now that slots are all setup, we can enable card detect */
dw_mci_enable_cd(host);
+ __dw_mci_enable_sdio_irq(host->slot, true, false);
+
return 0;
err:
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 46e9f8ec5398..dfbace0f5043 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -127,6 +127,7 @@ struct dw_mci_dma_slave {
* @cmd11_timer: Timer for SD3.0 voltage switch over scheme.
* @cto_timer: Timer for broken command transfer over scheme.
* @dto_timer: Timer for broken data transfer over scheme.
+ * @client_sdio_enb: The value last passed to enable_sdio_irq.
*
* Locking
* =======
@@ -234,6 +235,8 @@ struct dw_mci {
struct timer_list cmd11_timer;
struct timer_list cto_timer;
struct timer_list dto_timer;
+
+ bool client_sdio_enb;
};
/* DMA ops for Internal/External DMAC interface */
--
2.21.0.593.g511ec345e18-goog
Hi Sasha,
i have (back)ported the patch to the older kernels mentioned below
where the original patch failed.
The patch appended to this mail applies to v4.14.121, v4.9.178, v4.4.180 and v3.18.140.
Some changes within the xhci driver prevented git from finding the correct position.
Hope this helps :-)
Best regards
Carsten
________________________________________
Von: Sasha Levin <sashal(a)kernel.org>
Gesendet: Mittwoch, 29. Mai 2019 15:14
An: Sasha Levin; Mathias Nyman; Schmid, Carsten; gregkh(a)linuxfoundation.org
Cc: linux-usb(a)vger.kernel.org; Stable; stable(a)vger.kernel.org
Betreff: Re: [PATCH 3/5] usb: xhci: avoid null pointer deref when bos field is NULL
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.1.4, v5.0.18, v4.19.45, v4.14.121, v4.9.178, v4.4.180, v3.18.140.
v5.1.4: Build OK!
v5.0.18: Build OK!
v4.19.45: Build OK!
v4.14.121: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
b1fc2839d2f92 ("drm/msm: Implement preemption for A5XX targets")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
cd414f3d93168 ("drm/msm: Move memptrs to msm_gpu")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
eec874ce5ff1f ("drm/msm/adreno: load gpu at probe/bind time")
f7de15450e906 ("drm/msm: Add per-instance submit queues")
f97decac5f4c2 ("drm/msm: Support multiple ringbuffers")
v4.9.178: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
cf43e6be865a5 ("block: add scalable completion tracking of requests")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e806402130c9c ("block: split out request-only flags into a new namespace")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
v4.4.180: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
37f895d7e85e7 ("NFC: pn533: Fix socket deadlock")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
80c1bce9aa315 ("[media] au0828: Refactoring for start_urb_transfer()")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
9815c7cf22dac ("NFC: pn533: Separate physical layer from the core implementation")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e997ebbe46fe4 ("NFC: pn533: Send ATR_REQ only if NFC_PROTO_NFC_DEP bit is set")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
v3.18.140: Failed to apply! Possible dependencies:
0a5942c8e1480 ("NFC: Add ACPI support for NXP PN544")
34ac49664149d ("NFC: nci: remove current SLEEP mode management")
3590ebc040c9e ("NFC: logging neatening")
3682f49f32051 ("NFC: netlink: Add new netlink command NFC_CMD_ACTIVATE_TARGET")
37f895d7e85e7 ("NFC: pn533: Fix socket deadlock")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
5df848f37b1d2 ("NFC: pn533: fix error return code")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
80c1bce9aa315 ("[media] au0828: Refactoring for start_urb_transfer()")
9295b5b569fc4 ("NFC: nci: Add support for different NCI_DEACTIVATE_TYPE")
96d4581f0b371 ("NFC: netlink: Add mode parameter to deactivate_target functions")
9815c7cf22dac ("NFC: pn533: Separate physical layer from the core implementation")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
d7979e130ebb0 ("NFC: NCI: Signal deactivation in Target mode")
e997ebbe46fe4 ("NFC: pn533: Send ATR_REQ only if NFC_PROTO_NFC_DEP bit is set")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
How should we proceed with this patch?
--
Thanks,
Sasha
This is the start of the stable review cycle for the 5.1.7 release.
There are 40 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 Wed 05 Jun 2019 09:04:46 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/v5.x/stable-review/patch-5.1.7-rc1.…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.1.7-rc1
Junwei Hu <hujunwei4(a)huawei.com>
tipc: fix modprobe tipc failed after switch order of device registration
David S. Miller <davem(a)davemloft.net>
Revert "tipc: fix modprobe tipc failed after switch order of device registration"
Daniel Axtens <dja(a)axtens.net>
crypto: vmx - ghash: do nosimd fallback manually
Willem de Bruijn <willemb(a)google.com>
net: correct zerocopy refcnt with udp MSG_MORE
Vishal Kulkarni <vishal(a)chelsio.com>
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: don't ignore netdev notifications if no TLS features
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix state removal with feature flags off
Jakub Kicinski <jakub.kicinski(a)netronome.com>
selftests/tls: add test for sleeping even though there is data
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix no wakeup on partial reads
Jakub Kicinski <jakub.kicinski(a)netronome.com>
selftests/tls: test for lowat overshoot with multiple records
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix lowat calculation if some data came from previous record
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Reduce memory usage when running in kdump kernel.
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix aggregation buffer leak under OOM condition.
Weifeng Voon <weifeng.voon(a)intel.com>
net: stmmac: dma channel control register need to be init first
Tan, Tee Min <tee.min.tan(a)intel.com>
net: stmmac: fix ethtool flow control not able to get/set
Saeed Mahameed <saeedm(a)mellanox.com>
net/mlx5e: Disable rxhash when CQE compress is enabled
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Allocate root ns memory using kzalloc to match kfree
Chris Packham <chris.packham(a)alliedtelesis.co.nz>
tipc: Avoid copying bytes beyond the supplied data
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Avoid double free in fs init error unwinding path
Kloetzke Jan <Jan.Kloetzke(a)preh.de>
usbnet: fix kernel crash after disconnect
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: fix MAC address being lost in PCI D3
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: stmmac: fix reset gpio free missing
Vlad Buslov <vladbu(a)mellanox.com>
net: sched: don't use tc_action->order during action dump
Russell King <rmk+kernel(a)armlinux.org.uk>
net: phy: marvell10g: report if the PHY fails to boot firmware
Antoine Tenart <antoine.tenart(a)bootlin.com>
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: mvneta: Fix err code path of probe
Eric Dumazet <edumazet(a)google.com>
net-gro: fix use-after-free read in napi_gro_frags()
Andy Duan <fugang.duan(a)nxp.com>
net: fec: fix the clk mismatch in failed_reset path
Rasmus Villemoes <rasmus.villemoes(a)prevas.dk>
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
Jiri Pirko <jiri(a)mellanox.com>
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
Eric Dumazet <edumazet(a)google.com>
llc: fix skb leak in llc_build_and_send_ui_pkt()
David Ahern <dsahern(a)gmail.com>
ipv6: Fix redirect with VRF
Mike Manning <mmanning(a)vyatta.att-mail.com>
ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
Eric Dumazet <edumazet(a)google.com>
inet: switch IP ID generator to siphash
Maxime Chevallier <maxime.chevallier(a)bootlin.com>
ethtool: Check for vlan etype or vlan tci when parsing flow_rule
Raju Rangoju <rajur(a)chelsio.com>
cxgb4: offload VLAN flows regardless of VLAN ethtype
Jarod Wilson <jarod(a)redhat.com>
bonding/802.3ad: fix slave link initialization transition states
-------------
Diffstat:
Makefile | 4 +-
drivers/crypto/vmx/ghash.c | 212 +++++++++------------
drivers/net/bonding/bond_main.c | 15 +-
drivers/net/dsa/mv88e6xxx/chip.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 5 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11 ++
drivers/net/ethernet/freescale/fec_main.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 ++
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 6 +-
.../net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11 +-
drivers/net/ethernet/realtek/r8169.c | 3 +
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3 +-
drivers/net/phy/marvell10g.c | 13 ++
drivers/net/usb/usbnet.c | 6 +
include/linux/siphash.h | 5 +
include/net/netns/ipv4.h | 2 +
include/uapi/linux/tipc_config.h | 10 +-
net/core/dev.c | 2 +-
net/core/ethtool.c | 8 +-
net/core/skbuff.c | 6 +-
net/ipv4/igmp.c | 47 +++--
net/ipv4/ip_output.c | 4 +-
net/ipv4/route.c | 12 +-
net/ipv6/ip6_output.c | 4 +-
net/ipv6/output_core.c | 30 +--
net/ipv6/raw.c | 2 +
net/ipv6/route.c | 6 +
net/llc/llc_output.c | 2 +
net/sched/act_api.c | 3 +-
net/tipc/core.c | 32 ++--
net/tipc/subscr.h | 5 +-
net/tipc/topsrv.c | 14 +-
net/tls/tls_device.c | 9 +-
net/tls/tls_sw.c | 19 +-
tools/testing/selftests/net/tls.c | 34 ++++
43 files changed, 360 insertions(+), 257 deletions(-)
I'm looking at CVE-2015-8553 which is fixed by:
commit 7681f31ec9cdacab4fd10570be924f2cef6669ba
Author: Konrad Rzeszutek Wilk <konrad.wilk(a)oracle.com>
Date: Wed Feb 13 18:21:31 2019 -0500
xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
I'm aware that this change is incompatible with qemu < 2.5, but that's
now quite old. Do you think it makes sense to apply this change to
some stable branches?
Ben.
--
Ben Hutchings, Software Developer Codethink Ltd
https://www.codethink.co.uk/ Dale House, 35 Dale Street
Manchester, M1 2HF, United Kingdom
Among other improvements, this patch series fixes a data corruption bug
in the mac_scsi driver and a bug in the EH abort routine in the core
5380 driver.
For consistency I have ignored certain checkpatch.pl complaints about
the indentation in mac_scsi.c. The remaining complaints seem to be
false positives.
Some of these patches are not trivial to backport. Those patches have
been nominated for recent -stable branches only.
Finn Thain (7):
Revert "scsi: ncr5380: Increase register polling limit"
scsi: NCR5380: Always re-enable reselection interrupt
scsi: NCR5380: Handle PDMA failure reliably
scsi: mac_scsi: Increase PIO/PDMA transfer length threshold
scsi: mac_scsi: Fix pseudo DMA implementation, take 2
scsi: mac_scsi: Enable PDMA on Mac IIfx
scsi: mac_scsi: Treat Last Byte Sent time-out as failure
arch/m68k/include/asm/mac_pdma.h | 179 ++++++++++++++++++++++
arch/m68k/mac/config.c | 10 +-
drivers/scsi/NCR5380.c | 18 +--
drivers/scsi/NCR5380.h | 2 +-
drivers/scsi/mac_scsi.c | 249 +++++++++++--------------------
5 files changed, 280 insertions(+), 178 deletions(-)
create mode 100644 arch/m68k/include/asm/mac_pdma.h
--
2.21.0
Note, this is going to be the LAST 5.0.y kernel release. After this one, it is
end-of-life, please move to 5.1.y at this point in time. If there is anything
wrong with the 5.1.y tree, preventing you from moving to 5.1.y, please let me
know.
This is the start of the stable review cycle for the 5.0.21 release.
There are 36 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 Wed 05 Jun 2019 09:04:48 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/v5.x/stable-review/patch-5.0.21-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.0.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.0.21-rc1
Junwei Hu <hujunwei4(a)huawei.com>
tipc: fix modprobe tipc failed after switch order of device registration
David S. Miller <davem(a)davemloft.net>
Revert "tipc: fix modprobe tipc failed after switch order of device registration"
Konrad Rzeszutek Wilk <konrad.wilk(a)oracle.com>
xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
Daniel Axtens <dja(a)axtens.net>
crypto: vmx - ghash: do nosimd fallback manually
Willem de Bruijn <willemb(a)google.com>
net: correct zerocopy refcnt with udp MSG_MORE
Vishal Kulkarni <vishal(a)chelsio.com>
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: don't ignore netdev notifications if no TLS features
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix state removal with feature flags off
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Reduce memory usage when running in kdump kernel.
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix aggregation buffer leak under OOM condition.
Weifeng Voon <weifeng.voon(a)intel.com>
net: stmmac: dma channel control register need to be init first
Tan, Tee Min <tee.min.tan(a)intel.com>
net: stmmac: fix ethtool flow control not able to get/set
Saeed Mahameed <saeedm(a)mellanox.com>
net/mlx5e: Disable rxhash when CQE compress is enabled
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Allocate root ns memory using kzalloc to match kfree
Chris Packham <chris.packham(a)alliedtelesis.co.nz>
tipc: Avoid copying bytes beyond the supplied data
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Avoid double free in fs init error unwinding path
Kloetzke Jan <Jan.Kloetzke(a)preh.de>
usbnet: fix kernel crash after disconnect
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: fix MAC address being lost in PCI D3
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: stmmac: fix reset gpio free missing
Vlad Buslov <vladbu(a)mellanox.com>
net: sched: don't use tc_action->order during action dump
Russell King <rmk+kernel(a)armlinux.org.uk>
net: phy: marvell10g: report if the PHY fails to boot firmware
Antoine Tenart <antoine.tenart(a)bootlin.com>
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: mvneta: Fix err code path of probe
Eric Dumazet <edumazet(a)google.com>
net-gro: fix use-after-free read in napi_gro_frags()
Andy Duan <fugang.duan(a)nxp.com>
net: fec: fix the clk mismatch in failed_reset path
Rasmus Villemoes <rasmus.villemoes(a)prevas.dk>
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
Jiri Pirko <jiri(a)mellanox.com>
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
Eric Dumazet <edumazet(a)google.com>
llc: fix skb leak in llc_build_and_send_ui_pkt()
David Ahern <dsahern(a)gmail.com>
ipv6: Fix redirect with VRF
Mike Manning <mmanning(a)vyatta.att-mail.com>
ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
Eric Dumazet <edumazet(a)google.com>
inet: switch IP ID generator to siphash
Raju Rangoju <rajur(a)chelsio.com>
cxgb4: offload VLAN flows regardless of VLAN ethtype
Jarod Wilson <jarod(a)redhat.com>
bonding/802.3ad: fix slave link initialization transition states
-------------
Diffstat:
Makefile | 4 +-
drivers/crypto/vmx/ghash.c | 212 +++++++++------------
drivers/net/bonding/bond_main.c | 15 +-
drivers/net/dsa/mv88e6xxx/chip.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 5 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11 ++
drivers/net/ethernet/freescale/fec_main.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 ++
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 6 +-
.../net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11 +-
drivers/net/ethernet/realtek/r8169.c | 3 +
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3 +-
drivers/net/phy/marvell10g.c | 13 ++
drivers/net/usb/usbnet.c | 6 +
drivers/xen/xen-pciback/pciback_ops.c | 2 -
include/linux/siphash.h | 5 +
include/net/netns/ipv4.h | 2 +
include/uapi/linux/tipc_config.h | 10 +-
net/core/dev.c | 2 +-
net/core/skbuff.c | 6 +-
net/ipv4/igmp.c | 47 +++--
net/ipv4/ip_output.c | 4 +-
net/ipv4/route.c | 12 +-
net/ipv6/ip6_output.c | 4 +-
net/ipv6/output_core.c | 30 +--
net/ipv6/raw.c | 2 +
net/ipv6/route.c | 6 +
net/llc/llc_output.c | 2 +
net/sched/act_api.c | 3 +-
net/tipc/core.c | 32 ++--
net/tipc/subscr.h | 5 +-
net/tipc/topsrv.c | 14 +-
net/tls/tls_device.c | 9 +-
41 files changed, 313 insertions(+), 245 deletions(-)
Commit 0a1eb2d474ed ("fs/proc: Stop reporting eip and esp in
/proc/PID/stat") stopped reporting eip/esp and commit fd7d56270b52
("fs/proc: Report eip/esp in /prod/PID/stat for coredumping")
reintroduced the feature to fix a regression with userspace core dump
handlers (such as minicoredumper).
Because PF_DUMPCORE is only set for the primary thread, this didn't fix
the original problem for secondary threads. Allow reporting the eip/esp
for all threads by checking for PF_EXITING as well. This is set for all
the other threads when they are killed. coredump_wait() waits for all
the tasks to become inactive before proceeding to invoke a core dumper.
Fixes: fd7d56270b526ca3 ("fs/proc: Report eip/esp in /prod/PID/stat for coredumping")
Reported-by: Jan Luebbe <jlu(a)pengutronix.de>
Signed-off-by: John Ogness <john.ogness(a)linutronix.de>
---
This is a rework of Jan's v1 patch that allows accessing eip/esp of all
the threads without risk of the task still executing on a CPU.
The code chagnes are the same as v2. With v3 I included a "Fixes" tag,
fixed a typo in the commit message, and Cc'd stable.
fs/proc/array.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 2edbb657f859..55180501b915 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -462,7 +462,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
* a program is not able to use ptrace(2) in that case. It is
* safe because the task has stopped executing permanently.
*/
- if (permitted && (task->flags & PF_DUMPCORE)) {
+ if (permitted && (task->flags & (PF_EXITING|PF_DUMPCORE))) {
if (try_get_task_stack(task)) {
eip = KSTK_EIP(task);
esp = KSTK_ESP(task);
--
2.11.0
The patch titled
Subject: mm, compaction: make sure we isolate a valid PFN
has been removed from the -mm tree. Its filename was
mm-compaction-make-sure-we-isolate-a-valid-pfn.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Suzuki K Poulose <suzuki.poulose(a)arm.com>
Subject: mm, compaction: make sure we isolate a valid PFN
When we have holes in a normal memory zone, we could endup having
cached_migrate_pfns which may not necessarily be valid, under heavy memory
pressure with swapping enabled ( via __reset_isolation_suitable(),
triggered by kswapd).
Later if we fail to find a page via fast_isolate_freepages(), we may end
up using the migrate_pfn we started the search with, as valid page. This
could lead to accessing NULL pointer derefernces like below, due to an
invalid mem_section pointer.
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 [47/1825]
Mem abort info:
ESR = 0x96000004
Exception class = DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
Data abort info:
ISV = 0, ISS = 0x00000004
CM = 0, WnR = 0
user pgtable: 4k pages, 48-bit VAs, pgdp = 0000000082f94ae9
[0000000000000008] pgd=0000000000000000
Internal error: Oops: 96000004 [#1] SMP
...
CPU: 10 PID: 6080 Comm: qemu-system-aar Not tainted 510-rc1+ #6
Hardware name: AmpereComputing(R) OSPREY EV-883832-X3-0001/OSPREY, BIOS 4819 09/25/2018
pstate: 60000005 (nZCv daif -PAN -UAO)
pc : set_pfnblock_flags_mask+0x58/0xe8
lr : compaction_alloc+0x300/0x950
[...]
Process qemu-system-aar (pid: 6080, stack limit = 0x0000000095070da5)
Call trace:
set_pfnblock_flags_mask+0x58/0xe8
compaction_alloc+0x300/0x950
migrate_pages+0x1a4/0xbb0
compact_zone+0x750/0xde8
compact_zone_order+0xd8/0x118
try_to_compact_pages+0xb4/0x290
__alloc_pages_direct_compact+0x84/0x1e0
__alloc_pages_nodemask+0x5e0/0xe18
alloc_pages_vma+0x1cc/0x210
do_huge_pmd_anonymous_page+0x108/0x7c8
__handle_mm_fault+0xdd4/0x1190
handle_mm_fault+0x114/0x1c0
__get_user_pages+0x198/0x3c0
get_user_pages_unlocked+0xb4/0x1d8
__gfn_to_pfn_memslot+0x12c/0x3b8
gfn_to_pfn_prot+0x4c/0x60
kvm_handle_guest_abort+0x4b0/0xcd8
handle_exit+0x140/0x1b8
kvm_arch_vcpu_ioctl_run+0x260/0x768
kvm_vcpu_ioctl+0x490/0x898
do_vfs_ioctl+0xc4/0x898
ksys_ioctl+0x8c/0xa0
__arm64_sys_ioctl+0x28/0x38
el0_svc_common+0x74/0x118
el0_svc_handler+0x38/0x78
el0_svc+0x8/0xc
Code: f8607840 f100001f 8b011401 9a801020 (f9400400)
---[ end trace af6a35219325a9b6 ]---
The issue was reported on an arm64 server with 128GB with holes in the
zone (e.g, [32GB@4GB, 96GB@544GB]), with a swap device enabled, while
running 100 KVM guest instances.
This patch fixes the issue by ensuring that the page belongs to a valid
PFN when we fallback to using the lower limit of the scan range upon
failure in fast_isolate_freepages().
Link: http://lkml.kernel.org/r/1558711908-15688-1-git-send-email-suzuki.poulose@a…
Fixes: 5a811889de10f1eb ("mm, compaction: use free lists to quickly locate a migration target")
Signed-off-by: Suzuki K Poulose <suzuki.poulose(a)arm.com>
Reported-by: Marc Zyngier <marc.zyngier(a)arm.com>
Reviewed-by: Mel Gorman <mgorman(a)techsingularity.net>
Reviewed-by: Anshuman Khandual <anshuman.khandual(a)arm.com>
Cc: Michal Hocko <mhocko(a)suse.com>
Cc: Qian Cai <cai(a)lca.pw>
Cc: Marc Zyngier <marc.zyngier(a)arm.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/compaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/compaction.c~mm-compaction-make-sure-we-isolate-a-valid-pfn
+++ a/mm/compaction.c
@@ -1399,7 +1399,7 @@ fast_isolate_freepages(struct compact_co
page = pfn_to_page(highest);
cc->free_pfn = highest;
} else {
- if (cc->direct_compaction) {
+ if (cc->direct_compaction && pfn_valid(min_pfn)) {
page = pfn_to_page(min_pfn);
cc->free_pfn = min_pfn;
}
_
Patches currently in -mm which might be from suzuki.poulose(a)arm.com are
The patch titled
Subject: kernel/signal.c: trace_signal_deliver when signal_group_exit
has been removed from the -mm tree. Its filename was
signal-trace_signal_deliver-when-signal_group_exit.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Zhenliang Wei <weizhenliang(a)huawei.com>
Subject: kernel/signal.c: trace_signal_deliver when signal_group_exit
In the fixes commit, removing SIGKILL from each thread signal mask and
executing "goto fatal" directly will skip the call to
"trace_signal_deliver". At this point, the delivery tracking of the
SIGKILL signal will be inaccurate.
Therefore, we need to add trace_signal_deliver before "goto fatal" after
executing sigdelset.
Note: SEND_SIG_NOINFO matches the fact that SIGKILL doesn't have any info.
Link: http://lkml.kernel.org/r/20190425025812.91424-1-weizhenliang@huawei.com
Fixes: cf43a757fd4944 ("signal: Restore the stop PTRACE_EVENT_EXIT")
Signed-off-by: Zhenliang Wei <weizhenliang(a)huawei.com>
Reviewed-by: Christian Brauner <christian(a)brauner.io>
Reviewed-by: Oleg Nesterov <oleg(a)redhat.com>
Cc: Eric W. Biederman <ebiederm(a)xmission.com>
Cc: Ivan Delalande <colona(a)arista.com>
Cc: Arnd Bergmann <arnd(a)arndb.de>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Deepa Dinamani <deepa.kernel(a)gmail.com>
Cc: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
kernel/signal.c | 2 ++
1 file changed, 2 insertions(+)
--- a/kernel/signal.c~signal-trace_signal_deliver-when-signal_group_exit
+++ a/kernel/signal.c
@@ -2485,6 +2485,8 @@ relock:
if (signal_group_exit(signal)) {
ksig->info.si_signo = signr = SIGKILL;
sigdelset(¤t->pending.signal, SIGKILL);
+ trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO,
+ &sighand->action[SIGKILL - 1]);
recalc_sigpending();
goto fatal;
}
_
Patches currently in -mm which might be from weizhenliang(a)huawei.com are