/boot kernels are filtered using the has_modpath function.
This change just moves the test later, which has no effect
here but makes subsequent cleanups simpler.
---
src/format_ext2_kernel.ml | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
index e2f8e4b..c44ae23 100644
--- a/src/format_ext2_kernel.ml
+++ b/src/format_ext2_kernel.ml
@@ -121,17 +121,22 @@ and find_kernel_from_boot debug host_cpu =
(* In original: ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen *)
kernel_filter ["vmlinu?-*"] is_arm all_files in
- if files = [] then None
- else (
- let files = List.sort (fun a b -> compare_version b a) files in
- let kernel_name = List.hd files in
- let kernel_version = get_kernel_version kernel_name in
+ let files = List.sort (fun a b -> compare_version b a) files in
+ let kernels =
+ List.map (
+ fun kernel_name ->
+ let kernel_version = get_kernel_version kernel_name in
+ let kernel_file = "/boot" // kernel_name in
+ let modpath = find_modpath debug kernel_version in
+ (kernel_file, kernel_name, kernel_version, modpath)
+ ) files in
- (* Get the kernel modules. *)
- let modpath = find_modpath debug kernel_version in
+ let kernels =
+ List.filter (fun (_, kernel_name, _, _) -> has_modpath kernel_name) kernels in
- Some (("/boot" // kernel_name), kernel_name, kernel_version, modpath)
- )
+ match kernels with
+ | kernel :: _ -> Some kernel
+ | [] -> None
and kernel_filter patterns is_arm all_files =
let files =
@@ -149,7 +154,7 @@ and kernel_filter patterns is_arm all_files =
find filename "tegra" = -1
) files
) in
- List.filter (fun filename -> has_modpath filename) files
+ files
and patt_of_cpu host_cpu =
let models =
--
2.13.1