mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
livepatch/klp-build: report patch validation fuzz
Capture the output of the patch command to detect when a patch applies with fuzz or line offsets. If such "fuzz" is detected during the validation phase, warn the user and display the details. This helps identify input patches that may need refreshing against the target source tree. Ensure that internal patch operations (such as those in refresh_patch or during the final build phase) can still run quietly. Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com> Acked-by: Song Liu <song@kernel.org> Link: https://patch.msgid.link/20260310203751.1479229-13-joe.lawrence@redhat.com Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
This commit is contained in:
committed by
Josh Poimboeuf
parent
1fbc9b855f
commit
51a0b7c4ed
@@ -360,11 +360,24 @@ check_unsupported_patches() {
|
||||
|
||||
apply_patch() {
|
||||
local patch="$1"
|
||||
shift
|
||||
local extra_args=("$@")
|
||||
local drift_regex="with fuzz|offset [0-9]+ line"
|
||||
local output
|
||||
local status
|
||||
|
||||
[[ ! -f "$patch" ]] && die "$patch doesn't exist"
|
||||
patch -d "$SRC" -p1 --dry-run --silent --no-backup-if-mismatch -r /dev/null < "$patch"
|
||||
patch -d "$SRC" -p1 --silent --no-backup-if-mismatch -r /dev/null < "$patch"
|
||||
status=0
|
||||
output=$(patch -d "$SRC" -p1 --dry-run --no-backup-if-mismatch -r /dev/null "${extra_args[@]}" < "$patch" 2>&1) || status=$?
|
||||
if [[ "$status" -ne 0 ]]; then
|
||||
echo "$output" >&2
|
||||
die "$patch did not apply"
|
||||
elif [[ "$output" =~ $drift_regex ]]; then
|
||||
echo "$output" >&2
|
||||
warn "${patch} applied with fuzz"
|
||||
fi
|
||||
|
||||
patch -d "$SRC" -p1 --no-backup-if-mismatch -r /dev/null "${extra_args[@]}" --silent < "$patch"
|
||||
APPLIED_PATCHES+=("$patch")
|
||||
}
|
||||
|
||||
@@ -383,10 +396,11 @@ revert_patch() {
|
||||
}
|
||||
|
||||
apply_patches() {
|
||||
local extra_args=("$@")
|
||||
local patch
|
||||
|
||||
for patch in "${PATCHES[@]}"; do
|
||||
apply_patch "$patch"
|
||||
apply_patch "$patch" "${extra_args[@]}"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -444,7 +458,7 @@ refresh_patch() {
|
||||
( cd "$SRC" && echo "${input_files[@]}" | xargs cp --parents --target-directory="$tmpdir/a" )
|
||||
|
||||
# Copy patched source files to 'b'
|
||||
apply_patch "$patch"
|
||||
apply_patch "$patch" "--silent"
|
||||
( cd "$SRC" && echo "${output_files[@]}" | xargs cp --parents --target-directory="$tmpdir/b" )
|
||||
revert_patch "$patch"
|
||||
|
||||
@@ -817,7 +831,7 @@ fi
|
||||
if (( SHORT_CIRCUIT <= 2 )); then
|
||||
status "Fixing patch(es)"
|
||||
fix_patches
|
||||
apply_patches
|
||||
apply_patches "--silent"
|
||||
status "Building patched kernel"
|
||||
build_kernel "patched"
|
||||
revert_patches
|
||||
|
||||
Reference in New Issue
Block a user